(function(undefined){var console,nil,BasicObject,_Object,Module,Class,global_object=this;if(“undefined”!=typeof global&&(global_object=global),“undefined”!=typeof window&&(global_object=window),“log”in(console=“object”==typeof global_object.console?global_object.console:null==global_object.console?global_object.console={}:{})||(console.log=function(){}),“warn”in console||(console.warn=console.log),void 0!==this.Opal)return console.warn(“Opal already loaded. Loading twice can cause troubles, please fix your setup.”),this.Opal;var Opal=this.Opal={};((Opal.global=global_object).Opal=Opal).config={missing_require_severity:“error”,unsupported_features_severity:“warning”,enable_stack_trace:!0};var $hasOwn=Object.hasOwnProperty,$bind=Function.prototype.bind,$setPrototype=Object.setPrototypeOf,$slice=Array.prototype.slice,$splice=Array.prototype.splice,unique_id=4;function $defineProperty(object,name,initialValue){“string”==typeof object?object=initialValue:Object.defineProperty(object,name,{value:initialValue,enumerable:!1,configurable:!0,writable:!0})}function const_get_name(cref,name){if(cref)return cref.$$const}function const_lookup_ancestors(cref,name){var i,ii,ancestors;if(null!=cref)for(i=0,ii=(ancestors=Opal.ancestors(cref)).length;i.$$const&&$hasOwn.call(ancestors.$$const,name))return ancestors.$$const}function const_missing(cref,name,skip_missing){if(!skip_missing)return(cref||_Object).$const_missing(name)}function isRoot(proto){return proto.hasOwnProperty(“$$iclass”)&&proto.hasOwnProperty(“$$root”)}function create_iclass(module){var iclass=create_dummy_iclass(module);return module.$$is_module&&module.$$iclasses.push(iclass),iclass}function create_dummy_iclass(module){var iclass={},proto=module.$$prototype;proto.hasOwnProperty(“$$dummy”)&&(proto=proto.$$define_methods_on);var i,props=Object.getOwnPropertyNames(proto),length=props.length;for(i=0;i<length;i++){var prop=props;$defineProperty(iclass,prop,proto)}return $defineProperty(iclass,“$$iclass”,!0),$defineProperty(iclass,“$$module”,module),iclass}function chain_iclasses(iclasses){var length=iclasses.length,first=iclasses;if($defineProperty(first,“$$root”,!0),1===length)return{first:first,last:first};for(var previous=first,i=1;i<length;i++){var current=iclasses;$setPrototype(previous,current),previous=current}return{first:iclasses,last:iclasses}}function protoToModule(proto){if(!proto.hasOwnProperty(“$$dummy”))return proto.hasOwnProperty(“$$iclass”)?proto.$$module:proto.hasOwnProperty(“$$class”)?proto.$$class:void 0}function is_method_body(body){return“function”==typeof body&&!body.$$stub}Opal.uid=function(){return unique_id+=2},Opal.id=function(obj){return obj.$$is_number?2*obj+1:(null!=obj.$$id||$defineProperty(obj,“$$id”,Opal.uid()),obj.$$id)},Opal.gvars={},Opal.exit=function(status){Opal.gvars.DEBUG&&console.log(“Exited with status ”+status)},Opal.exceptions=[],Opal.pop_exception=function(){Opal.gvars=Opal.exceptions.pop()||nil},Opal.inspect=function(obj){return obj===undefined?“undefined”:null===obj?“null”:obj.$$class?obj.$inspect():obj.toString()},Opal.defineProperty=$defineProperty,Opal.slice=$slice,Opal.truthy=function(val){return val!==nil&&null!=val&&(!val.$$is_boolean||1==val)},Opal.falsy=function(val){return val===nil||null==val||val.$$is_boolean&&0==val},Opal.const_get_local=function(cref,name,skip_missing){var result;if(null!=cref){if(“::”===cref&&(cref=_Object),!cref.$$is_module&&!cref.$$is_class)throw new Opal.TypeError(cref.toString()+“ is not a class/module”);return null!=(result=const_get_name(cref,name))?result:null!=(result=const_missing(cref,name,skip_missing))?result:void 0}},Opal.const_get_qualified=function(cref,name,skip_missing){var result,cache,cached,current_version=Opal.const_cache_version;if(null!=cref){if(“::”===cref&&(cref=_Object),!cref.$$is_module&&!cref.$$is_class)throw new Opal.TypeError(cref.toString()+“ is not a class/module”);return null==(cache=cref.$$const_cache)&&($defineProperty(cref,“$$const_cache”,Object.create(null)),cache=cref.$$const_cache),null==(cached=cache)||cached!==current_version?(null!=(result=const_get_name(cref,name))||(result=const_lookup_ancestors(cref,name)),cache=[current_version,result]):result=cached,null!=result?result:const_missing(cref,name,skip_missing)}},Opal.const_cache_version=1,Opal.const_get_relative=function(nesting,name,skip_missing){var result,cache,cached,cref=nesting,current_version=Opal.const_cache_version;return null==(cache=nesting.$$const_cache)&&($defineProperty(nesting,“$$const_cache”,Object.create(null)),cache=nesting.$$const_cache),null==(cached=cache)||cached!==current_version?(null!=(result=const_get_name(cref,name))||null!=(result=function(nesting,name){var i,ii,constant;if(0!==nesting.length)for(i=0,ii=nesting.length;i.$$const))return constant}(nesting,name))||null!=(result=const_lookup_ancestors(cref,name))||(result=function(cref,name){if(null==cref||cref.$$is_module)return const_lookup_ancestors(_Object,name)}(cref,name)),cache=[current_version,result]):result=cached,null!=result?result:const_missing(cref,name,skip_missing)},Opal.const_set=function(cref,name,value){return null!=cref&&“::”!==cref||(cref=_Object),value.$$is_a_module&&(null!=value.$$name&&value.$$name!==nil||(value.$$name=name),null==value.$$base_module&&(value.$$base_module=cref)),cref.$$const=cref.$$const||Object.create(null),cref.$$const=value,cref.$$=cref.$$const,Opal.const_cache_version++,cref===_Object&&(Opal=value),$defineProperty(cref,name,value),value},Opal.constants=function(cref,inherit){null==inherit&&(inherit=!0);var module,i,ii,constant,modules=,constants={};for(inherit&&(modules=modules.concat(Opal.ancestors(cref))),inherit&&cref.$$is_module&&(modules=modules.concat().concat(Opal.ancestors(Opal.Object))),i=0,ii=modules.length;i,cref===_Object||module!=_Object);i++)for(constant in module.$$const)constants=!0;return Object.keys(constants)},Opal.const_remove=function(cref,name){if(Opal.const_cache_version++,null!=cref.$$const){var old=cref.$$const;return delete cref.$$const,old}if(null!=cref.$$autoload&&null!=cref.$$autoload)return delete cref.$$autoload,nil;throw Opal.NameError.$new(“constant ”cref“::”+cref.$name()+“ not defined”)},Opal.allocate_class=function(name,superclass){var klass,constructor;return constructor=null!=superclass&&superclass.$$bridge?function(){var args=$slice.call(arguments),self=new($bind.apply(superclass.$$constructor,.concat(args)));return $setPrototype(self,klass.$$prototype),self}:function(){},name&&$defineProperty(constructor,“displayName”,“::”+name),$defineProperty(klass=constructor,“$$name”,name),$defineProperty(klass,“$$constructor”,constructor),$defineProperty(klass,“$$prototype”,constructor.prototype),$defineProperty(klass,“$$const”,{}),$defineProperty(klass,“$$is_class”,!0),$defineProperty(klass,“$$is_a_module”,!0),$defineProperty(klass,“$$super”,superclass),$defineProperty(klass,“$$cvars”,{}),$defineProperty(klass,“$$own_included_modules”,[]),$defineProperty(klass,“$$own_prepended_modules”,),$defineProperty(klass,“$$ancestors”,[]),$defineProperty(klass,“$$ancestors_cache_version”,null),$defineProperty(klass.$$prototype,“$$class”,klass),Opal.Class&&$setPrototype(klass,Opal.Class.prototype),null!=superclass&&($setPrototype(klass.$$prototype,superclass.$$prototype),superclass.$$meta&&Opal.build_class_singleton_class(klass)),klass},Opal.klass=function(scope,superclass,name){var bridged;null==scope?scope=_Object:scope.$$is_class||scope.$$is_module||(scope=scope.$$class),null==superclass||superclass.hasOwnProperty(“$$is_class”)||(bridged=superclass,superclass=_Object);var klass=function(scope,name){var klass=const_get_name(scope,name);if(klass){if(!klass.$$is_class)throw Opal.TypeError.$new(name+“ is not a class”);return klass}}(scope,name);return klass?superclass&&function(klass,superclass){if(klass.$$super!==superclass)throw Opal.TypeError.$new(“superclass mismatch for class ”+klass.$$name)}(klass,superclass):(null==superclass&&(superclass=_Object),klass=Opal.allocate_class(name,superclass),Opal.const_set(scope,name,klass),superclass.$inherited&&superclass.$inherited(klass),bridged&&Opal.bridge(bridged,klass)),klass},Opal.allocate_module=function(name){var constructor=function(){};name&&$defineProperty(constructor,“displayName”,name+“.$$constructor”);var module=constructor;return name&&$defineProperty(constructor,“displayName”,name+“.constructor”),$defineProperty(module,“$$name”,name),$defineProperty(module,“$$prototype”,constructor.prototype),$defineProperty(module,“$$const”,{}),$defineProperty(module,“$$is_module”,!0),$defineProperty(module,“$$is_a_module”,!0),$defineProperty(module,“$$cvars”,{}),$defineProperty(module,“$$iclasses”,[]),$defineProperty(module,“$$own_included_modules”,),$defineProperty(module,“$$own_prepended_modules”,[]),$defineProperty(module,“$$ancestors”,),$defineProperty(module,“$$ancestors_cache_version”,null),$setPrototype(module,Opal.Module.prototype),module},Opal.module=function(scope,name){var module;return null==scope?scope=_Object:scope.$$is_class||scope.$$is_module||(scope=scope.$$class),(module=function(scope,name){var module=const_get_name(scope,name);if(null==module&&scope===_Object&&(module=const_lookup_ancestors(_Object,name)),module&&!module.$$is_module&&module!==_Object)throw Opal.TypeError.$new(name+“ is not a module”);return module}(scope,name))||(module=Opal.allocate_module(name),Opal.const_set(scope,name,module)),module},Opal.get_singleton_class=function(object){return object.$$meta?object.$$meta:object.hasOwnProperty(“$$is_class”)?Opal.build_class_singleton_class(object):object.hasOwnProperty(“$$is_module”)?Opal.build_module_singletin_class(object):Opal.build_object_singleton_class(object)},Opal.build_class_singleton_class=function(klass){var superclass,meta;return klass.$$meta?klass.$$meta:(superclass=klass===BasicObject?Class:Opal.get_singleton_class(klass.$$super),$defineProperty(meta=Opal.allocate_class(null,superclass,function(){}),“$$is_singleton”,!0),$defineProperty(meta,“$$singleton_of”,klass),$defineProperty(klass,“$$meta”,meta),$setPrototype(klass,meta.$$prototype),$defineProperty(klass,“$$class”,Opal.Class),meta)},Opal.build_module_singletin_class=function(mod){if(mod.$$meta)return mod.$$meta;var meta=Opal.allocate_class(null,Opal.Module,function(){});return $defineProperty(meta,“$$is_singleton”,!0),$defineProperty(meta,“$$singleton_of”,mod),$defineProperty(mod,“$$meta”,meta),$setPrototype(mod,meta.$$prototype),$defineProperty(mod,“$$class”,Opal.Module),meta},Opal.build_object_singleton_class=function(object){var superclass=object.$$class,klass=Opal.allocate_class(nil,superclass,function(){});return $defineProperty(klass,“$$is_singleton”,!0),$defineProperty(klass,“$$singleton_of”,object),delete klass.$$prototype.$$class,$defineProperty(object,“$$meta”,klass),$setPrototype(object,object.$$meta.$$prototype),klass},Opal.is_method=function(prop){return“$”===prop&&“$”!==prop},Opal.instance_methods=function(mod){for(var exclude=[],results=,ancestors=Opal.ancestors(mod),i=0,l=ancestors.length;i<l;i++){var proto=ancestors.$$prototype;proto.hasOwnProperty(“$$dummy”)&&(proto=proto.$$define_methods_on);for(var props=Object.getOwnPropertyNames(proto),j=0,ll=props.length;j<ll;j++){var prop=props;if(Opal.is_method(prop)){var method_name=prop.slice(1),method=proto;method.$$stub&&-1===exclude.indexOf(method_name)&&exclude.push(method_name),method.$$stub||-1!==results.indexOf(method_name)||-1!==exclude.indexOf(method_name)||results.push(method_name)}}}return results},Opal.own_instance_methods=function(mod){var results=[],proto=mod.$$prototype;proto.hasOwnProperty(“$$dummy”)&&(proto=proto.$$define_methods_on);for(var props=Object.getOwnPropertyNames(proto),i=0,length=props.length;i<length;i++){var prop=props;if(Opal.is_method(prop))if(!proto.$$stub){var method_name=prop.slice(1);results.push(method_name)}}return results},Opal.methods=function(obj){return Opal.instance_methods(Opal.get_singleton_class(obj))},Opal.own_methods=function(obj){return Opal.own_instance_methods(Opal.get_singleton_class(obj))},Opal.receiver_methods=function(obj){var mod=Opal.get_singleton_class(obj),singleton_methods=Opal.own_instance_methods(mod),instance_methods=Opal.own_instance_methods(mod.$$super);return singleton_methods.concat(instance_methods)},Opal.class_variables=function(module){var i,ancestors=Opal.ancestors(module),result={};for(i=ancestors.length-1;0<=i;i–){var ancestor=ancestors;for(var cvar in ancestor.$$cvars)result=ancestor.$$cvars}return result},Opal.class_variable_set=function(module,name,value){var i,ancestors=Opal.ancestors(module);for(i=ancestors.length-2;0<=i;i–){var ancestor=ancestors;if($hasOwn.call(ancestor.$$cvars,name))return ancestor.$$cvars=value}return module.$$cvars=value},Opal.append_features=function(module,includer){var module_ancestors=Opal.ancestors(module),iclasses=[];if(-1!==module_ancestors.indexOf(includer))throw Opal.ArgumentError.$new(“cyclic include detected”);for(var i=0,length=module_ancestors.length;i<length;i++){var iclass=create_iclass(module_ancestors);$defineProperty(iclass,“$$included”,!0),iclasses.push(iclass)}var start_chain_after,end_chain_on,includer_ancestors=Opal.ancestors(includer),chain=chain_iclasses(iclasses);if(-1===includer_ancestors.indexOf(module))start_chain_after=includer.$$prototype,end_chain_on=Object.getPrototypeOf(includer.$$prototype);else{for(var parent=includer.$$prototype,module_iclass=Object.getPrototypeOf(parent);null!=module_iclass&&(!isRoot(module_iclass)||module_iclass.$$module!==module);)parent=module_iclass,module_iclass=Object.getPrototypeOf(module_iclass);for(var next_ancestor=Object.getPrototypeOf(module_iclass);next_ancestor.hasOwnProperty(“$$iclass”)&&!isRoot(next_ancestor);)next_ancestor=Object.getPrototypeOf(next_ancestor);start_chain_after=parent,end_chain_on=next_ancestor}$setPrototype(start_chain_after,chain.first),$setPrototype(chain.last,end_chain_on),includer.$$own_included_modules=function(module){for(var mod,result=[],proto=Object.getPrototypeOf(module.$$prototype);proto&&!proto.hasOwnProperty(“$$class”);)(mod=protoToModule(proto))&&result.push(mod),proto=Object.getPrototypeOf(proto);return result}(includer),Opal.const_cache_version++},Opal.prepend_features=function(module,prepender){var module_ancestors=Opal.ancestors(module),iclasses=[];if(-1!==module_ancestors.indexOf(prepender))throw Opal.ArgumentError.$new(“cyclic prepend detected”);for(var i=0,length=module_ancestors.length;i<length;i++){var iclass=create_iclass(module_ancestors);$defineProperty(iclass,“$$prepended”,!0),iclasses.push(iclass)}var prepender_iclass,start_chain_after,end_chain_on,chain=chain_iclasses(iclasses),dummy_prepender=prepender.$$prototype,previous_parent=Object.getPrototypeOf(dummy_prepender);if(dummy_prepender.hasOwnProperty(“$$dummy”)?prepender_iclass=dummy_prepender.$$define_methods_on:(prepender_iclass=create_dummy_iclass(prepender),function(module){for(var proto=module.$$prototype,props=Object.getOwnPropertyNames(proto),i=0;i<props.length;i++){var prop=props;Opal.is_method(prop)&&delete proto}}(prepender),$defineProperty(dummy_prepender,“$$dummy”,!0),$defineProperty(dummy_prepender,“$$define_methods_on”,prepender_iclass),$setPrototype(dummy_prepender,prepender_iclass),$setPrototype(prepender_iclass,previous_parent)),-1!==Opal.ancestors(prepender).indexOf(module))throw Opal.RuntimeError.$new(“Prepending a module multiple times is not supported”);for(start_chain_after=dummy_prepender,end_chain_on=Object.getPrototypeOf(dummy_prepender);null!=end_chain_on&&!end_chain_on.hasOwnProperty(“$$root”)&&end_chain_on!==prepender_iclass&&end_chain_on.hasOwnProperty(“$$iclass”);)end_chain_on=Object.getPrototypeOf(end_chain_on);$setPrototype(start_chain_after,chain.first),$setPrototype(chain.last,end_chain_on),prepender.$$own_prepended_modules=function(module){var mod,result=[],proto=Object.getPrototypeOf(module.$$prototype);if(module.$$prototype.hasOwnProperty(“$$dummy”))for(;proto&&proto!==module.$$prototype.$$define_methods_on;)(mod=protoToModule(proto))&&result.push(mod),proto=Object.getPrototypeOf(proto);return result}(prepender),Opal.const_cache_version++},Opal.bridge=function(native_klass,klass){if(native_klass.hasOwnProperty(“$$bridge”))throw Opal.ArgumentError.$new(“already bridged”);klass.$$super||Opal.Object;klass.$$prototype;$defineProperty(native_klass,“$$bridge”,klass),$setPrototype(native_klass.prototype,(klass.$$super||Opal.Object).$$prototype),$defineProperty(klass,“$$prototype”,native_klass.prototype),$defineProperty(klass.$$prototype,“$$class”,klass),$defineProperty(klass,“$$constructor”,native_klass),$defineProperty(klass,“$$bridge”,!0)},Opal.ancestors=function(module){if(!module)return[];if(module.$$ancestors_cache_version===Opal.const_cache_version)return module.$$ancestors;var i,mods,length,result=[];for(i=0,length=(mods=function(module){return module.$$own_prepended_modules.concat().concat(module.$$own_included_modules)}(module)).length;i);if(module.$$super)for(i=0,length=(mods=Opal.ancestors(module.$$super)).length;i);return module.$$ancestors_cache_version=Opal.const_cache_version,module.$$ancestors=result},Opal.included_modules=function(module){for(var result=[],mod=null,proto=Object.getPrototypeOf(module.$$prototype);proto&&Object.getPrototypeOf(proto);proto=Object.getPrototypeOf(proto))(mod=protoToModule(proto))&&mod.$$is_module&&proto.$$iclass&&proto.$$included&&result.push(mod);return result},Opal.add_stubs=function(stubs){for(var proto=Opal.BasicObject.$$prototype,i=0,length=stubs.length;i<length;i++){var stub=stubs,existing_method=proto;(null==existing_method||existing_method.$$stub)&&Opal.add_stub_for(proto,stub)}},Opal.add_stub_for=function(prototype,stub){$defineProperty(prototype,stub,Opal.stub_for(stub))},Opal.stub_for=function(method_name){function method_missing_stub(){this.$method_missing.$$p=method_missing_stub.$$p,method_missing_stub.$$p=null;for(var args_ary=new Array(arguments.length),i=0,l=args_ary.length;i=arguments;return this.$method_missing.apply(this,.concat(args_ary))}return method_missing_stub.$$stub=!0,method_missing_stub},Opal.ac=function(actual,expected,object,meth){var inspect=“”;throw object.$$is_a_module?inspect+=object.$$name+“.”:inspect+=object.$$class.$$name+“#”,inspect+=meth,Opal.ArgumentError.$new(“[”inspect“] wrong number of arguments(”actual“ for ”expected“)”)},Opal.block_ac=function(actual,expected,context){var inspect=“`block in ”context“'”;throw Opal.ArgumentError.$new(inspect+“: wrong number of arguments (”actual“ for ”expected“)”)},Opal.find_super_dispatcher=function(obj,mid,current_func,defcheck,defs){for(var ancestors,super_method,jsid=“$”+mid,i=(ancestors=obj.hasOwnProperty(“$$meta”)?Opal.ancestors(obj.$$meta):Opal.ancestors(obj.$$class)).indexOf(current_func.$$owner)+1;i<ancestors.length;i++){var proto=ancestors.$$prototype;if(proto.hasOwnProperty(“$$dummy”)&&(proto=proto.$$define_methods_on),proto.hasOwnProperty(jsid)){var method=proto;method.$$stub||(super_method=method);break}}if(!defcheck&&null==super_method&&Opal.Kernel.$method_missing===obj.$method_missing)throw Opal.NoMethodError.$new(“super: no superclass method `”mid“' for ”+obj,mid);return super_method},Opal.find_iter_super_dispatcher=function(obj,jsid,current_func,defcheck,implicit){var call_jsid=jsid;if(!current_func)throw Opal.RuntimeError.$new(“super called outside of method”);if(implicit&&current_func.$$define_meth)throw Opal.RuntimeError.$new(“implicit argument passing of super from method defined by define_method() is not supported. Specify all arguments explicitly”);return current_func.$$def&&(call_jsid=current_func.$$jsid),Opal.find_super_dispatcher(obj,call_jsid,current_func,defcheck)},Opal.ret=function(val){throw Opal.returner.$v=val,Opal.returner},Opal.brk=function(val,breaker){throw breaker.$v=val,breaker},Opal.new_brk=function(){return new Error(“unexpected break”)},Opal.yield1=function(block,arg){if(“function”!=typeof block)throw Opal.LocalJumpError.$new(“no block given”);var has_mlhs=block.$$has_top_level_mlhs_arg,has_trailing_comma=block.$$has_trailing_comma_in_args;return(1<block.length||(has_mlhs||has_trailing_comma)&&1===block.length)&&(arg=Opal.to_ary(arg)),(1<block.length||has_trailing_comma&&1===block.length)&&arg.$$is_array?block.apply(null,arg):block(arg)},Opal.yieldX=function(block,args){if(“function”!=typeof block)throw Opal.LocalJumpError.$new(“no block given”);if(1.$$is_array)return block.apply(null,args);if(args.$$is_array)return block.apply(null,args);for(var args_ary=new Array(args.length),i=0,l=args_ary.length;i=args;return block.apply(null,args_ary)},Opal.rescue=function(exception,candidates){for(var i=0;i<candidates.length;i++){var candidate=candidates;if(candidate.$$is_array){var result=Opal.rescue(exception,candidate);if(result)return result}else{if(candidate===Opal.JS.Error)return candidate;if(candidate(exception))return candidate}}return null},Opal.is_a=function(object,klass){if(null!=klass&&object.$$meta===klass||object.$$class===klass)return!0;if(object.$$is_number&&klass.$$is_number_class)return!0;var i,length,ancestors=Opal.ancestors(object.$$is_class?Opal.get_singleton_class(object):object.$$meta||object.$$class);for(i=0,length=ancestors.length;i===klass)return!0;return!1},Opal.to_hash=function(value){if(value.$$is_hash)return value;if(value(“to_hash”,!0)){var hash=value.$to_hash();if(hash.$$is_hash)return hash;throw Opal.TypeError.$new(“Can't convert ”+value.$$class+“ to Hash (”+value.$$class+“#to_hash gives ”+hash.$$class+“)”)}throw Opal.TypeError.$new(“no implicit conversion of ”+value.$$class+“ into Hash”)},Opal.to_ary=function(value){if(value.$$is_array)return value;if(value(“to_ary”,!0)){var ary=value.$to_ary();if(ary===nil)return;if(ary.$$is_array)return ary;throw Opal.TypeError.$new(“Can't convert ”+value.$$class+“ to Array (”+value.$$class+“#to_ary gives ”+ary.$$class+“)”)}return},Opal.to_a=function(value){if(value.$$is_array)return value.slice();if(value(“to_a”,!0)){var ary=value.$to_a();if(ary===nil)return;if(ary.$$is_array)return ary;throw Opal.TypeError.$new(“Can't convert ”+value.$$class+“ to Array (”+value.$$class+“#to_a gives ”+ary.$$class+“)”)}return},Opal.extract_kwargs=function(parameters){var kwargs=parameters;return null!=kwargs&&kwargs(“to_hash”,!0)?($splice.call(parameters,parameters.length-1,1),kwargs.$to_hash()):Opal.hash2([],{})},Opal.kwrestargs=function(given_args,used_args){var key,keys=[],map={},given_map=given_args.$$smap;for(key in given_map)used_args||(keys.push(key),map=given_map);return Opal.hash2(keys,map)},Opal.send=function(recv,method,args,block){var body=“string”==typeof method?recv:method;return null!=body?(“function”==typeof block&&(body.$$p=block),body.apply(recv,args)):recv.$method_missing.apply(recv,.concat(args))},Opal.lambda=function(block){return block.$$is_lambda=!0,block},Opal.def=function(obj,jsid,body){obj===Opal.top?Opal.defn(Opal.Object,jsid,body):!obj.$$eval&&obj.$$is_a_module?Opal.defn(obj,jsid,body):Opal.defs(obj,jsid,body)},Opal.defn=function(module,jsid,body){body.displayName=jsid;var proto=(body.$$owner=module).$$prototype;if(proto.hasOwnProperty(“$$dummy”)&&(proto=proto.$$define_methods_on),$defineProperty(proto,jsid,body),module.$$is_module){module.$$module_function&&Opal.defs(module,jsid,body);for(var i=0,iclasses=module.$$iclasses,length=iclasses.length;i<length;i++){$defineProperty(iclasses,jsid,body)}}var singleton_of=module.$$singleton_of;!module.$method_added||module.$method_added.$$stub||singleton_of?singleton_of&&singleton_of.$singleton_method_added&&!singleton_of.$singleton_method_added.$$stub&&singleton_of.$singleton_method_added(jsid.substr(1)):module.$method_added(jsid.substr(1))},Opal.defs=function(obj,jsid,body){if(obj.$$is_string||obj.$$is_number)throw Opal.TypeError.$new(“can't define singleton”);Opal.defn(Opal.get_singleton_class(obj),jsid,body)},Opal.rdef=function(obj,jsid){if(!$hasOwn.call(obj.$$prototype,jsid))throw Opal.NameError.$new(“method '”+jsid.substr(1)+“' not defined in ”+obj.$name());delete obj.$$prototype,obj.$$is_singleton?obj.$$prototype.$singleton_method_removed&&!obj.$$prototype.$singleton_method_removed.$$stub&&obj.$$prototype.$singleton_method_removed(jsid.substr(1)):obj.$method_removed&&!obj.$method_removed.$$stub&&obj.$method_removed(jsid.substr(1))},Opal.udef=function(obj,jsid){if(!obj.$$prototype||obj.$$prototype.$$stub)throw Opal.NameError.$new(“method '”+jsid.substr(1)+“' not defined in ”+obj.$name());Opal.add_stub_for(obj.$$prototype,jsid),obj.$$is_singleton?obj.$$prototype.$singleton_method_undefined&&!obj.$$prototype.$singleton_method_undefined.$$stub&&obj.$$prototype.$singleton_method_undefined(jsid.substr(1)):obj.$method_undefined&&!obj.$method_undefined.$$stub&&obj.$method_undefined(jsid.substr(1))},Opal.alias=function(obj,name,old){var alias,id=“$”+name,old_id=“$”+old,body=obj.$$prototype;if(obj.$$eval)return Opal.alias(Opal.get_singleton_class(obj),name,old);if(!is_method_body(body)){for(var ancestor=obj.$$super;“function”!=typeof body&&ancestor;)body=ancestor,ancestor=ancestor.$$super;if(!is_method_body(body)&&obj.$$is_module&&(body=Opal.Object.$$prototype),!is_method_body(body))throw Opal.NameError.$new(“undefined method `”old“' for class `”+obj.$name()+“'”)}return body.$$alias_of&&(body=body.$$alias_of),(alias=function(){var args,i,ii,block=alias.$$p;for(args=new Array(arguments.length),i=0,ii=arguments.length;i=arguments;return null!=block&&(alias.$$p=null),Opal.send(this,body,args,block)}).displayName=name,alias.length=body.length,alias.$$arity=body.$$arity,alias.$$parameters=body.$$parameters,alias.$$source_location=body.$$source_location,alias.$$alias_of=body,alias.$$alias_name=name,Opal.defn(obj,id,alias),obj},Opal.alias_native=function(obj,name,native_name){var id=“$”+name,body=obj.$$prototype;if(“function”!=typeof body||body.$$stub)throw Opal.NameError.$new(“undefined native method `”native_name“' for class `”+obj.$name()+“'”);return Opal.defn(obj,id,body),obj},Opal.hash_init=function(hash){hash.$$smap=Object.create(null),hash.$$map=Object.create(null),hash.$$keys=[]},Opal.hash_clone=function(from_hash,to_hash){to_hash.$$none=from_hash.$$none,to_hash.$$proc=from_hash.$$proc;for(var key,value,i=0,keys=from_hash.$$keys,smap=from_hash.$$smap,len=keys.length;i).$$is_string?value=smap:(value=key.value,key=key.key),Opal.hash_put(to_hash,key,value)},Opal.hash_put=function(hash,key,value){if(key.$$is_string)return $hasOwn.call(hash.$$smap,key)||hash.$$keys.push(key),void(hash.$$smap=value);var key_hash,bucket,last_bucket;if(key_hash=hash.$$by_identity?Opal.id(key):key.$hash(),!$hasOwn.call(hash.$$map,key_hash))return bucket={key:key,key_hash:key_hash,value:value},hash.$$keys.push(bucket),void(hash.$$map=bucket);for(bucket=hash.$$map;bucket;){if(key===bucket.key||key(bucket.key)){last_bucket=undefined,bucket.value=value;break}bucket=(last_bucket=bucket).next}last_bucket&&(bucket={key:key,key_hash:key_hash,value:value},hash.$$keys.push(bucket),last_bucket.next=bucket)},Opal.hash_get=function(hash,key){if(key.$$is_string)return $hasOwn.call(hash.$$smap,key)?hash.$$smap:void 0;var key_hash,bucket;if(key_hash=hash.$$by_identity?Opal.id(key):key.$hash(),$hasOwn.call(hash.$$map,key_hash))for(bucket=hash.$$map;bucket;){if(key===bucket.key||key(bucket.key))return bucket.value;bucket=bucket.next}},Opal.hash_delete=function(hash,key){var i,value,keys=hash.$$keys,length=keys.length;if(key.$$is_string){if(!$hasOwn.call(hash.$$smap,key))return;for(i=0;i===key){keys.splice(i,1);break}return value=hash.$$smap,delete hash.$$smap,value}var key_hash=key.$hash();if($hasOwn.call(hash.$$map,key_hash))for(var last_bucket,bucket=hash.$$map;bucket;){if(key===bucket.key||key(bucket.key)){for(value=bucket.value,i=0;i===bucket){keys.splice(i,1);break}return last_bucket&&bucket.next?last_bucket.next=bucket.next:last_bucket?delete last_bucket.next:bucket.next?hash.$$map=bucket.next:delete hash.$$map,value}bucket=(last_bucket=bucket).next}},Opal.hash_rehash=function(hash){for(var key_hash,bucket,last_bucket,i=0,length=hash.$$keys.length;i.$$is_string&&(key_hash=hash.$$keys.key.$hash())!==hash.$$keys.key_hash){for(bucket=hash.$$map[hash.$$keys.key_hash],last_bucket=undefined;bucket;){if(bucket===hash.$$keys){last_bucket&&bucket.next?last_bucket.next=bucket.next:last_bucket?delete last_bucket.next:bucket.next?hash.$$map[hash.$$keys.key_hash]=bucket.next:delete hash.$$map[hash.$$keys.key_hash];break}bucket=(last_bucket=bucket).next}if(hash.$$keys.key_hash=key_hash,$hasOwn.call(hash.$$map,key_hash)){for(bucket=hash.$$map,last_bucket=undefined;bucket;){if(bucket===hash.$$keys){last_bucket=undefined;break}bucket=(last_bucket=bucket).next}last_bucket&&(last_bucket.next=hash.$$keys)}else hash.$$map=hash.$$keys}},Opal.hash=function(){var args,hash,i,length,key,value,arguments_length=arguments.length;if(1===arguments_length&&arguments.$$is_hash)return arguments;if(hash=new Opal.Hash,Opal.hash_init(hash),1===arguments_length&&arguments.$$is_array){for(length=(args=arguments).length,i=0;i<length;i++){if(2!==args.length)throw Opal.ArgumentError.$new(“value not of length 2: ”+args.$inspect());key=args[0],value=args[1],Opal.hash_put(hash,key,value)}return hash}if(1===arguments_length){for(key in args=arguments)$hasOwn.call(args,key)&&(value=args,Opal.hash_put(hash,key,value));return hash}if(arguments_length%2!=0)throw Opal.ArgumentError.$new(“odd number of arguments for Hash”);for(i=0;i,value=arguments,Opal.hash_put(hash,key,value);return hash},Opal.hash2=function(keys,smap){var hash=new Opal.Hash;return hash.$$smap=smap,hash.$$map=Object.create(null),hash.$$keys=keys,hash},Opal.range=function(first,last,exc){var range=new Opal.Range;return range.begin=first,range.end=last,range.excl=exc,range},Opal.ivar=function(name){return“constructor”===name||“displayName”===name||“__count__”===name||“__noSuchMethod__”===name||“__parent__”===name||“__proto__”===name||“hasOwnProperty”===name||“valueOf”===name?name+“$”:name},Opal.escape_regexp=function(str){return str.replace(/([-/{}()*+?.^$\| ])/g,“\$1”).replace(//g,“\n”).replace(//g,“\r”).replace(//g,“\f”).replace(//g,“\t”)},Opal.global_regexp=function(pattern){return pattern.global?pattern:(null==pattern.$$g?pattern.$$g=new RegExp(pattern.source,(pattern.multiline?“gm”:“g”)+(pattern.ignoreCase?“i”:“”)):pattern.$$g.lastIndex=null,pattern.$$g)},Opal.global_multiline_regexp=function(pattern){var result;if(pattern.multiline){if(pattern.global)return pattern;result=null!=pattern.$$g?pattern.$$g:pattern.$$g=new RegExp(pattern.source,“gm”+(pattern.ignoreCase?“i”:“”))}else result=null!=pattern.$$gm?pattern.$$gm:pattern.$$gm=new RegExp(pattern.source,“gm”+(pattern.ignoreCase?“i”:“”));return result.lastIndex=null,result},Opal.modules={},Opal.loaded_features=,Opal.current_dir=“.”,Opal.require_table={“corelib/runtime”:!0},Opal.normalize=function(path){var parts,part,new_parts=[];“.”!==Opal.current_dir&&(path=Opal.current_dir.replace(//*$/,“/”)+path);for(var i=0,ii=(parts=(path=(path=path.replace(/^.//,“”)).replace(/.(rb|opal|js)$/,“”)).split(“/”)).length;i)&&(“..”===part?new_parts.pop():new_parts.push(part));return new_parts.join(“/”)},Opal.loaded=function(paths){var i,l,path;for(i=0,l=paths.length;i),Opal.require_table||(Opal.loaded_features.push(path),Opal.require_table=!0)},Opal.load=function(path){path=Opal.normalize(path),Opal.loaded();var module=Opal.modules;if(module)module(Opal);else{var severity=Opal.config.missing_require_severity,message=“cannot load such file – ”+path;if(“error”===severity)throw Opal.LoadError?Opal.LoadError.$new(message):message;“warning”===severity&&console.warn(“WARNING: LoadError: ”+message)}return!0},Opal.require=function(path){return path=Opal.normalize(path),!Opal.require_table&&Opal.load(path)},Opal.BasicObject=BasicObject=Opal.allocate_class(“BasicObject”,null,function(){}),Opal.Object=_Object=Opal.allocate_class(“Object”,Opal.BasicObject,function(){}),Opal.Module=Module=Opal.allocate_class(“Module”,Opal.Object,function(){}),Opal.Class=Class=Opal.allocate_class(“Class”,Opal.Module,function(){}),$setPrototype(Opal.BasicObject,Opal.Class.$$prototype),$setPrototype(Opal.Object,Opal.Class.$$prototype),$setPrototype(Opal.Module,Opal.Class.$$prototype),$setPrototype(Opal.Class,Opal.Class.$$prototype),BasicObject.$$const.BasicObject=BasicObject,Opal.const_set(_Object,“BasicObject”,BasicObject),Opal.const_set(_Object,“Object”,_Object),Opal.const_set(_Object,“Module”,Module),Opal.const_set(_Object,“Class”,Class),BasicObject.$$class=Class,_Object.$$class=Class,(Module.$$class=Class).$$class=Class,$defineProperty(_Object.$$prototype,“toString”,function(){var to_s=this.$to_s();return to_s.$$is_string&&“object”==typeof to_s?to_s.valueOf():to_s}),$defineProperty(_Object.$$prototype,“$require”,Opal.require),Opal.$$=_Object.$$,Opal.top=new _Object,Opal.top.$to_s=Opal.top.$inspect=function(){return“main”},Opal.NilClass=Opal.allocate_class(“NilClass”,Opal.Object,function(){}),Opal.const_set(_Object,“NilClass”,Opal.NilClass),(nil=Opal.nil=new Opal.NilClass).$$id=4,nil.call=nil.apply=function(){throw Opal.LocalJumpError.$new(“no block given”)},Opal.breaker=new Error(“unexpected break (old)”),Opal.returner=new Error(“unexpected return”),TypeError.$$super=Error}).call(this),Opal.loaded(),Opal.modules=function(Opal){Opal.top;var $nesting=[],nil=Opal.nil,$$=(Opal.const_get_qualified,Opal.const_get_relative),$module=(Opal.breaker,Opal.slice,Opal.module),$truthy=Opal.truthy;return Opal.add_stubs([“$new”,“$class”,“$===”,“$respond_to?”,“$raise”,“$type_error”,“$__send__”,“$coerce_to”,“$nil?”,“$<=>”,“$coerce_to!”,“$!=”,“$”,“$upcase”]),function($base,$parent_nesting){var $Opal_bridge$1,$Opal_type_error$2,$Opal_coerce_to$3,$Opal_coerce_to$excl$4,$Opal_coerce_to$ques$5,$Opal_try_convert$6,$Opal_compare$7,$Opal_destructure$8,$Opal_respond_to$ques$9,$Opal_inspect_obj$10,$Opal_instance_variable_name$excl$11,$Opal_class_variable_name$excl$12,$Opal_const_name$excl$13,$Opal_pristine$14,self=$module($base,“Opal”),$nesting=.concat($parent_nesting);Opal.defs(self,“$bridge”,$Opal_bridge$1=function(constructor,klass){return Opal.bridge(constructor,klass)},$Opal_bridge$1.$$arity=2),Opal.defs(self,“$type_error”,$Opal_type_error$2=function(object,type,method,coerced){var $a;return null==method&&(method=nil),null==coerced&&(coerced=nil),$truthy($truthy($a=method)?coerced:$a)?$$($nesting,“TypeError”).$new(“can't convert ”+object.$class()+“ into ”type“ (”+object.$class()+“#”method“ gives ”+coerced.$class()+“)”):$$($nesting,“TypeError”).$new(“no implicit conversion of ”+object.$class()+“ into ”+type)},$Opal_type_error$2.$$arity=-3),Opal.defs(self,“$coerce_to”,$Opal_coerce_to$3=function(object,type,method){return $truthy(type(object))?object:($truthy(object(method))||this.$raise(this.$type_error(object,type)),object.$__send__(method))},$Opal_coerce_to$3.$$arity=3),Opal.defs(self,“$coerce_to!”,$Opal_coerce_to$excl$4=function(object,type,method){var coerced;return coerced=this.$coerce_to(object,type,method),$truthy(type(coerced))||this.$raise(this.$type_error(object,type,method,coerced)),coerced},$Opal_coerce_to$excl$4.$$arity=3),Opal.defs(self,“$coerce_to?”,$Opal_coerce_to$ques$5=function(object,type,method){var coerced=nil;return $truthy(object(method))?(coerced=this.$coerce_to(object,type,method),$truthy(coerced())?nil:($truthy(type(coerced))||this.$raise(this.$type_error(object,type,method,coerced)),coerced)):nil},$Opal_coerce_to$ques$5.$$arity=3),Opal.defs(self,“$try_convert”,$Opal_try_convert$6=function(object,type,method){return $truthy(type(object))?object:$truthy(object(method))?object.$__send__(method):nil},$Opal_try_convert$6.$$arity=3),Opal.defs(self,“$compare”,$Opal_compare$7=function(a,b){var compare;return “”>compare=a(b),$truthy(compare===nil)&&this.$raise($$($nesting,“ArgumentError”),“comparison of ”+a.$class()+“ with ”+b.$class()+“ failed”),compare},$Opal_compare$7.$$arity=2),Opal.defs(self,“$destructure”,$Opal_destructure$8=function(args){if(1==args.length)return args;if(args.$$is_array)return args;for(var args_ary=new Array(args.length),i=0,l=args_ary.length;i=args;return args_ary},$Opal_destructure$8.$$arity=1),Opal.defs(self,“$respond_to?”,$Opal_respond_to$ques$9=function(obj,method,include_all){return null==include_all&&(include_all=!1),!(null==obj||!obj.$$class)&&obj(method,include_all)},$Opal_respond_to$ques$9.$$arity=-3),Opal.defs(self,“$inspect_obj”,$Opal_inspect_obj$10=function(obj){return Opal.inspect(obj)},$Opal_inspect_obj$10.$$arity=1),Opal.defs(self,“$instance_variable_name!”,$Opal_instance_variable_name$excl$11=function(name){return name=$$($nesting,“Opal”)(name,$$($nesting,“String”),“to_str”),$truthy(/^@[a-zA-Z0-9_]*?$/.test(name))||this.$raise($$($nesting,“NameError”).$new(“'”name“' is not allowed as an instance variable name”,name)),name},$Opal_instance_variable_name$excl$11.$$arity=1),Opal.defs(self,“$class_variable_name!”,$Opal_class_variable_name$excl$12=function(name){return name=$$($nesting,“Opal”)(name,$$($nesting,“String”),“to_str”),$truthy(name.length<3||“@@”!==name.slice(0,2))&&this.$raise($$($nesting,“NameError”).$new(“`”name“' is not allowed as a class variable name”,name)),name},$Opal_class_variable_name$excl$12.$$arity=1),Opal.defs(self,“$const_name!”,$Opal_const_name$excl$13=function(const_name){return const_name=$$($nesting,“Opal”)(const_name,$$($nesting,“String”),“to_str”),$truthy(const_name[“$”](0)(const_name[“$”](0).$upcase()))&&this.$raise($$($nesting,“NameError”),“wrong constant name ”+const_name),const_name},$Opal_const_name$excl$13.$$arity=1),Opal.defs(self,“$pristine”,$Opal_pristine$14=function(owner_class,$a){for(var method_names,method_name,method,i=(method_names=Opal.slice.call(arguments,1,arguments.length)).length-1;0<=i;i--)method_name=method_names,(method=owner_class.$$prototype)&&!method.$$stub&&(method.$$pristine=!0);return nil},$Opal_pristine$14.$$arity=-2)}($nesting,$nesting)},Opal.modules=function(Opal){function $rb_lt(lhs,rhs){return“number”==typeof lhs&&“number”==typeof rhs?lhs(rhs)}function $rb_gt(lhs,rhs){return“number”==typeof lhs&&“number”==typeof “”>rhs?rhs(rhs)}var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.const_get_qualified,$$=Opal.const_get_relative,$breaker=Opal.breaker,$slice=Opal.slice,$klass=Opal.klass,$send=Opal.send,$truthy=Opal.truthy,$lambda=Opal.lambda,$range=Opal.range,$hash2=Opal.hash2;return “,”$nil?“,”$attr_reader“,”$attr_writer“,”$class_variable_name!“,”$new“,”$const_name!“,”$=~“,”$inject“,”$split“,”$const_get“,”$==“,”$!~“,”$start_with?“,”$bind“,”$call“,”$class“,”$append_features“,”$included“,”$name“,”$cover?“,”$size“,”$merge“,”$compile“,”$proc“,”$any?“,”$prepend_features“,”$prepended“,”$to_s“,”$__id__“,”$constants“,”$include?“,”$copy_class_variables“,”$copy_constants“”>Opal.add_stubs(),function($base,$super,$parent_nesting){var self=$klass($base,$super,“Module”),$nesting=.concat($parent_nesting),$Module_allocate$1,$Module_initialize$2,$Module_$eq_eq_eq$3,$Module_$lt$4,$Module_$lt_eq$5,$Module_$gt$6,$Module_$gt_eq$7,$Module_$lt_eq_gt$8,$Module_alias_method$9,$Module_alias_native$10,$Module_ancestors$11,$Module_append_features$12,$Module_attr_accessor$13,$Module_attr_reader$14,$Module_attr_writer$15,$Module_autoload$16,$Module_class_variables$17,$Module_class_variable_get$18,$Module_class_variable_set$19,$Module_class_variable_defined$ques$20,$Module_remove_class_variable$21,$Module_constants$22,$Module_constants$23,$Module_nesting$24,$Module_const_defined$ques$25,$Module_const_get$26,$Module_const_missing$28,$Module_const_set$29,$Module_public_constant$30,$Module_define_method$31,$Module_remove_method$33,$Module_singleton_class$ques$34,$Module_include$35,$Module_included_modules$36,$Module_include$ques$37,$Module_instance_method$38,$Module_instance_methods$39,$Module_included$40,$Module_extended$41,$Module_extend_object$42,$Module_method_added$43,$Module_method_removed$44,$Module_method_undefined$45,$Module_module_eval$46,$Module_module_exec$48,$Module_method_defined$ques$49,$Module_module_function$50,$Module_name$51,$Module_prepend$52,$Module_prepend_features$53,$Module_prepended$54,$Module_remove_const$55,$Module_to_s$56,$Module_undef_method$57,$Module_instance_variables$58,$Module_dup$59,$Module_copy_class_variables$60,$Module_copy_constants$61;return Opal.defs(self,“$allocate”,$Module_allocate$1=function(){var module=Opal.allocate_module(nil,function(){});return this!==Opal.Module&&Object.setPrototypeOf(module,this.$$prototype),module},$Module_allocate$1.$$arity=0),Opal.def(self,“$initialize”,$Module_initialize$2=function(){var $iter=$Module_initialize$2.$$p,block=$iter||nil;return $iter&&($Module_initialize$2.$$p=null),$iter&&($Module_initialize$2.$$p=null),block!==nil?$send(this,“module_eval”,[],block.$to_proc()):nil},$Module_initialize$2.$$arity=0),Opal.def(self,“$===”,$Module_$eq_eq_eq$3=function(object){return!$truthy(null==object)&&Opal.is_a(object,this)},$Module_$eq_eq_eq$3.$$arity=1),Opal.def(self,“$<",$Module_$lt$4=function(other){$truthy($$($nesting,"Module")(other))||this.$raise($$($nesting,”TypeError“),”compared with non class/module“);var ancestors,i,length;if(this===other)return!1;for(i=0,length=(ancestors=Opal.ancestors(this)).length;i===other)return!0;for(i=0,length=(ancestors=Opal.ancestors(other)).length;i===this)return!1;return nil},$Module_$lt$4.$$arity=1),Opal.def(self,”$<=“,$Module_$lt_eq$5=function(other){var $a;return $truthy($a=this(other))?$a:$rb_lt(this,other)},$Module_$lt_eq$5.$$arity=1),Opal.def(self,”$>“,$Module_$gt$6=function(other){return $truthy($$($nesting,”Module“)(other))||this.$raise($$($nesting,”TypeError“),”compared with non class/module“),$rb_lt(other,this)},$Module_$gt$6.$$arity=1),Opal.def(self,”$>=“,$Module_$gt_eq$7=function(other){var $a;return $truthy($a=this(other))?$a:$rb_gt(this,other)},$Module_$gt_eq$7.$$arity=1),Opal.def(self,”$<=>“,$Module_$lt_eq_gt$8=function(other){var lt=nil;return this===other?0:$truthy($$($nesting,”Module“)(other))?(lt=$rb_lt(this,other),$truthy(lt())?nil:$truthy(lt)?-1:1):nil},$Module_$lt_eq_gt$8.$$arity=1),Opal.def(self,”$alias_method“,$Module_alias_method$9=function(newname,oldname){return Opal.alias(this,newname,oldname),this},$Module_alias_method$9.$$arity=2),Opal.def(self,”$alias_native“,$Module_alias_native$10=function(mid,jsid){return null==jsid&&(jsid=mid),Opal.alias_native(this,mid,jsid),this},$Module_alias_native$10.$$arity=-2),Opal.def(self,”$ancestors“,$Module_ancestors$11=function(){return Opal.ancestors(this)},$Module_ancestors$11.$$arity=0),Opal.def(self,”$append_features“,$Module_append_features$12=function(includer){return Opal.append_features(this,includer),this},$Module_append_features$12.$$arity=1),Opal.def(self,”$attr_accessor“,$Module_attr_accessor$13=function($a){var names;return names=Opal.slice.call(arguments,0,arguments.length),$send(this,”attr_reader“,Opal.to_a(names)),$send(this,”attr_writer“,Opal.to_a(names))},$Module_attr_accessor$13.$$arity=-1),Opal.alias(self,”attr“,”attr_accessor“),Opal.def(self,”$attr_reader“,$Module_attr_reader$14=function($a){var names;names=Opal.slice.call(arguments,0,arguments.length);for(var proto=this.$$prototype,i=names.length-1;0<=i;i–){var name=names,id=”$“+name,ivar=Opal.ivar(name),body=function(ivar){return function(){return null==this?nil:this}}(ivar);Opal.defineProperty(proto,ivar,nil),body.$$parameters=[],body.$$arity=0,Opal.defn(this,id,body)}return nil},$Module_attr_reader$14.$$arity=-1),Opal.def(self,”$attr_writer“,$Module_attr_writer$15=function($a){var names;names=Opal.slice.call(arguments,0,arguments.length);for(var proto=this.$$prototype,i=names.length-1;0<=i;i–){var name=names,id=”$“name”=“,ivar=Opal.ivar(name),body=function(ivar){return function(value){return this=value}}(ivar);body.$$parameters=[],body.$$arity=1,Opal.defineProperty(proto,ivar,nil),Opal.defn(this,id,body)}return nil},$Module_attr_writer$15.$$arity=-1),Opal.def(self,”$autoload“,$Module_autoload$16=function(const$,path){return null==this.$$autoload&&(this.$$autoload={}),Opal.const_cache_version++,this.$$autoload=path,nil},$Module_autoload$16.$$arity=2),Opal.def(self,”$class_variables“,$Module_class_variables$17=function(){return Object.keys(Opal.class_variables(this))},$Module_class_variables$17.$$arity=0),Opal.def(self,”$class_variable_get“,$Module_class_variable_get$18=function(name){name=$$($nesting,”Opal“)(name);var value=Opal.class_variables(this);return null==value&&this.$raise($$($nesting,”NameError“).$new(”uninitialized class variable “name” in “+this,name)),value},$Module_class_variable_get$18.$$arity=1),Opal.def(self,”$class_variable_set“,$Module_class_variable_set$19=function(name,value){return name=$$($nesting,”Opal“)(name),Opal.class_variable_set(this,name,value)},$Module_class_variable_set$19.$$arity=2),Opal.def(self,”$class_variable_defined?“,$Module_class_variable_defined$ques$20=function(name){return name=$$($nesting,”Opal“)(name),Opal.class_variables(this).hasOwnProperty(name)},$Module_class_variable_defined$ques$20.$$arity=1),Opal.def(self,”$remove_class_variable“,$Module_remove_class_variable$21=function(name){if(name=$$($nesting,”Opal“)(name),Opal.hasOwnProperty.call(this.$$cvars,name)){var value=this.$$cvars;return delete this.$$cvars,value}this.$raise($$($nesting,”NameError“),”cannot remove “name” for “+this)},$Module_remove_class_variable$21.$$arity=1),Opal.def(self,”$constants“,$Module_constants$22=function(inherit){return null==inherit&&(inherit=!0),Opal.constants(this,inherit)},$Module_constants$22.$$arity=-1),Opal.defs(self,”$constants“,$Module_constants$23=function(inherit){if(null!=inherit)return Opal.constants(this,inherit);var constant,i,ii,nesting=(this.$$nesting||[]).concat(Opal.Object),constants={};for(i=0,ii=nesting.length;i<ii;i++)for(constant in nesting.$$const)constants=!0;return Object.keys(constants)},$Module_constants$23.$$arity=-1),Opal.defs(self,”$nesting“,$Module_nesting$24=function(){return this.$$nesting||[]},$Module_nesting$24.$$arity=0),Opal.def(self,”$const_defined?“,$Module_const_defined$ques$25=function(name,inherit){null==inherit&&(inherit=!0),name=$$($nesting,”Opal“)(name),$truthy(name($$$($$($nesting,”Opal“),”CONST_NAME_REGEXP“)))||this.$raise($$($nesting,”NameError“).$new(”wrong constant name “+name,name));var i,ii,modules=;for(inherit&&(modules=modules.concat(Opal.ancestors(this)),this.$$is_module&&(modules=modules.concat().concat(Opal.ancestors(Opal.Object)))),i=0,ii=modules.length;i.$$const)return!0;return!1},$Module_const_defined$ques$25.$$arity=-2),Opal.def(self,”$const_get“,$Module_const_get$26=function(name,inherit){var $$27;return null==inherit&&(inherit=!0),0===(name=$$($nesting,”Opal“)(name)).indexOf(”::“)&&”::“!==name&&(name=name.slice(2)),$truthy(-1!=name.indexOf(”::“)&&”::“!=name)?$send(name.$split(”::“),”inject“,,(($$27=function(o,c){$$27.$$s;return null==o&&(o=nil),null==c&&(c=nil),o.$const_get©}).$$s=this,$$27.$$arity=2,$$27)):($truthy(name($$$($$($nesting,”Opal“),”CONST_NAME_REGEXP“)))||this.$raise($$($nesting,”NameError“).$new(”wrong constant name “+name,name)),inherit?$$(,name):Opal.const_get_local(this,name))},$Module_const_get$26.$$arity=-2),Opal.def(self,”$const_missing“,$Module_const_missing$28=function(name){var full_const_name,self=this;if(self.$$autoload){var file=self.$$autoload;if(file)return self.$require(file),self.$const_get(name)}return full_const_name=self($$($nesting,”Object“))?name:self+”::“+name,self.$raise($$($nesting,”NameError“).$new(”uninitialized constant “+full_const_name,name))},$Module_const_missing$28.$$arity=1),Opal.def(self,”$const_set“,$Module_const_set$29=function(name,value){var $a;return name=$$($nesting,”Opal“)(name),$truthy($truthy($a=name($$$($$($nesting,”Opal“),”CONST_NAME_REGEXP“)))?$a:name(”::“))&&this.$raise($$($nesting,”NameError“).$new(”wrong constant name “+name,name)),Opal.const_set(this,name,value),value},$Module_const_set$29.$$arity=2),Opal.def(self,”$public_constant“,$Module_public_constant$30=function(const_name){return nil},$Module_public_constant$30.$$arity=1),Opal.def(self,”$define_method“,$Module_define_method$31=function(name,method){var $a,$$32,$iter=$Module_define_method$31.$$p,block=$iter||nil,self=this,$case=nil;$iter&&($Module_define_method$31.$$p=null),$iter&&($Module_define_method$31.$$p=null),$truthy(void 0===method&&block===nil)&&self.$raise($$($nesting,”ArgumentError“),”tried to create a Proc object without a block“);var id=”$“+name;return(block=$truthy($a=block)?$a:($case=method,$$($nesting,”Proc“)($case)?method:$$($nesting,”Method“)($case)?method.$to_proc().$$unbound:$$($nesting,”UnboundMethod“)($case)?$lambda((($$32=function($b){var args,bound,self=$$32.$$s||this;return args=Opal.slice.call(arguments,0,arguments.length),bound=method.$bind(self),$send(bound,”call“,Opal.to_a(args))}).$$s=self,$$32.$$arity=-1,$$32)):self.$raise($$($nesting,”TypeError“),”wrong argument type “+block.$class()+” (expected Proc/Method)“))).$$jsid=name,block.$$s=null,(block.$$def=block).$$define_meth=!0,Opal.defn(self,id,block),name},$Module_define_method$31.$$arity=-2),Opal.def(self,”$remove_method“,$Module_remove_method$33=function($a){for(var names,i=0,length=(names=Opal.slice.call(arguments,0,arguments.length)).length;i);return this},$Module_remove_method$33.$$arity=-1),Opal.def(self,”$singleton_class?“,$Module_singleton_class$ques$34=function(){return!!this.$$is_singleton},$Module_singleton_class$ques$34.$$arity=0),Opal.def(self,”$include“,$Module_include$35=function($a){for(var mods,i=(mods=Opal.slice.call(arguments,0,arguments.length)).length-1;0<=i;i–){var mod=mods;mod.$$is_module||this.$raise($$($nesting,”TypeError“),”wrong argument type “+mod.$class()+” (expected Module)“),mod.$append_features(this),mod.$included(this)}return this},$Module_include$35.$$arity=-1),Opal.def(self,”$included_modules“,$Module_included_modules$36=function(){return Opal.included_modules(this)},$Module_included_modules$36.$$arity=0),Opal.def(self,”$include?“,$Module_include$ques$37=function(mod){mod.$$is_module||this.$raise($$($nesting,”TypeError“),”wrong argument type “+mod.$class()+” (expected Module)“);var i,ii,mod2,ancestors=Opal.ancestors(this);for(i=0,ii=ancestors.length;i)===mod&&mod2!==this)return!0;return!1},$Module_include$ques$37.$$arity=1),Opal.def(self,”$instance_method“,$Module_instance_method$38=function(name){var meth=this.$$prototype;return meth&&!meth.$$stub||this.$raise($$($nesting,”NameError“).$new(”undefined method `“name”' for class `“+this.$name()+”'“,name)),$$($nesting,”UnboundMethod“).$new(this,meth.$$owner||this,meth,name)},$Module_instance_method$38.$$arity=1),Opal.def(self,”$instance_methods“,$Module_instance_methods$39=function(include_super){return null==include_super&&(include_super=!0),$truthy(include_super)?Opal.instance_methods(this):Opal.own_instance_methods(this)},$Module_instance_methods$39.$$arity=-1),Opal.def(self,”$included“,$Module_included$40=function(mod){return nil},$Module_included$40.$$arity=1),Opal.def(self,”$extended“,$Module_extended$41=function(mod){return nil},$Module_extended$41.$$arity=1),Opal.def(self,”$extend_object“,$Module_extend_object$42=function(object){return nil},$Module_extend_object$42.$$arity=1),Opal.def(self,”$method_added“,$Module_method_added$43=function($a){return Opal.slice.call(arguments,0,arguments.length),nil},$Module_method_added$43.$$arity=-1),Opal.def(self,”$method_removed“,$Module_method_removed$44=function($a){return Opal.slice.call(arguments,0,arguments.length),nil},$Module_method_removed$44.$$arity=-1),Opal.def(self,”$method_undefined“,$Module_method_undefined$45=function($a){return Opal.slice.call(arguments,0,arguments.length),nil},$Module_method_undefined$45.$$arity=-1),Opal.def(self,”$module_eval“,$Module_module_eval$46=function $$module_eval($a){var $iter=$Module_module_eval$46.$$p,block=$iter||nil,$post_args,args,$b,$$47,self=this,string=nil,file=nil,_lineno=nil,default_eval_options=nil,compiling_options=nil,compiled=nil;$iter&&($Module_module_eval$46.$$p=null),$iter&&($Module_module_eval$46.$$p=null),$post_args=Opal.slice.call(arguments,0,arguments.length),args=$post_args,$truthy($truthy($b=block())?!!Opal.compile:$b)?($truthy($range(1,3,!1)(args.$size()))||$$($nesting,”Kernel“).$raise($$($nesting,”ArgumentError“),”wrong number of arguments (0 for 1..3)“),$b=[].concat(Opal.to_a(args)),string=null==$b?nil:$b,file=null==$b?nil:$b,_lineno=null==$b?nil:$b,default_eval_options=$hash2(,{file:$truthy($b=file)?$b:”(eval)“,eval:!0}),compiling_options=Opal.hash({arity_check:!1}).$merge(default_eval_options),compiled=$$($nesting,”Opal“).$compile(string,compiling_options),block=$send($$($nesting,”Kernel“),”proc“,[],($$47=function(){var self=$$47.$$s||this;return function(self){return eval(compiled)}(self)},$$47.$$s=self,$$47.$$arity=0,$$47))):$truthy(args())&&$$($nesting,”Kernel“).$raise($$($nesting,”ArgumentError“),”wrong number of arguments (“+args.$size()+” for 0)nn NOTE:If you want to enable passing a String argument please add "require 'opal-parser'" to your scriptn“);var old=block.$$s,result;return block.$$s=null,result=block.apply(self,),block.$$s=old,result},$Module_module_eval$46.$$arity=-1),Opal.alias(self,”class_eval“,”module_eval“),Opal.def(self,”$module_exec“,$Module_module_exec$48=function($a){var args,$iter=$Module_module_exec$48.$$p,block=$iter||nil;$iter&&($Module_module_exec$48.$$p=null),$iter&&($Module_module_exec$48.$$p=null),args=Opal.slice.call(arguments,0,arguments.length),block===nil&&this.$raise($$($nesting,”LocalJumpError“),”no block given“);var result,block_self=block.$$s;return block.$$s=null,result=block.apply(this,args),block.$$s=block_self,result},$Module_module_exec$48.$$arity=-1),Opal.alias(self,”class_exec“,”module_exec“),Opal.def(self,”$method_defined?“,$Module_method_defined$ques$49=function(method){var body=this.$$prototype;return!!body&&!body.$$stub},$Module_method_defined$ques$49.$$arity=1),Opal.def(self,”$module_function“,$Module_module_function$50=function($a){var methods;if(0===(methods=Opal.slice.call(arguments,0,arguments.length)).length)this.$$module_function=!0;else for(var i=0,length=methods.length;i<length;i++){var id=”$“+methods,func=this.$$prototype;Opal.defs(this,id,func)}return this},$Module_module_function$50.$$arity=-1),Opal.def(self,”$name“,$Module_name$51=function(){if(this.$$full_name)return this.$$full_name;for(var result=[],base=this;base;){if(base.$$name===nil||null==base.$$name)return nil;if(result.unshift(base.$$name),(base=base.$$base_module)===Opal.Object)break}return 0===result.length?nil:this.$$full_name=result.join(”::“)},$Module_name$51.$$arity=0),Opal.def(self,”$prepend“,$Module_prepend$52=function($a){var mods;0===(mods=Opal.slice.call(arguments,0,arguments.length)).length&&this.$raise($$($nesting,”ArgumentError“),”wrong number of arguments (given 0, expected 1+)“);for(var i=mods.length-1;0<=i;i–){var mod=mods;mod.$$is_module||this.$raise($$($nesting,”TypeError“),”wrong argument type “+mod.$class()+” (expected Module)“),mod.$prepend_features(this),mod.$prepended(this)}return this},$Module_prepend$52.$$arity=-1),Opal.def(self,”$prepend_features“,$Module_prepend_features$53=function(prepender){return this.$$is_module||this.$raise($$($nesting,”TypeError“),”wrong argument type “+this.$class()+” (expected Module)“),Opal.prepend_features(this,prepender),this},$Module_prepend_features$53.$$arity=1),Opal.def(self,”$prepended“,$Module_prepended$54=function(mod){return nil},$Module_prepended$54.$$arity=1),Opal.def(self,”$remove_const“,$Module_remove_const$55=function(name){return Opal.const_remove(this,name)},$Module_remove_const$55.$$arity=1),Opal.def(self,”$to_s“,$Module_to_s$56=function(){var $a;return $truthy($a=Opal.Module.$name.call(this))?$a:”#<“+(this.$$is_module?”Module“:”Class“)+”:0x“+this.$__id__().$to_s(16)+”>“},$Module_to_s$56.$$arity=0),Opal.def(self,”$undef_method“,$Module_undef_method$57=function($a){for(var names,i=0,length=(names=Opal.slice.call(arguments,0,arguments.length)).length;i);return this},$Module_undef_method$57.$$arity=-1),Opal.def(self,”$instance_variables“,$Module_instance_variables$58=function(){var consts=nil;Opal.Module.$$nesting=$nesting,consts=this.$constants();var result=[];for(var name in this)this.hasOwnProperty(name)&&”$“!==name.charAt(0)&&”constructor“!==name&&!consts(name)&&result.push(”@“+name);return result},$Module_instance_variables$58.$$arity=0),Opal.def(self,”$dup“,$Module_dup$59=function(){var $zuper_ii,$iter=$Module_dup$59.$$p,copy=nil,$zuper=nil,$zuper_i=nil;for($iter&&($Module_dup$59.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper=arguments;return(copy=$send(this,Opal.find_super_dispatcher(this,”dup“,$Module_dup$59,!1),$zuper,$iter)).$copy_class_variables(this),copy.$copy_constants(this),copy},$Module_dup$59.$$arity=0),Opal.def(self,”$copy_class_variables“,$Module_copy_class_variables$60=function(other){for(var name in other.$$cvars)this.$$cvars=other.$$cvars},$Module_copy_class_variables$60.$$arity=1),Opal.def(self,”$copy_constants“,$Module_copy_constants$61=function(other){var name,other_constants=other.$$const;for(name in other_constants)Opal.const_set(this,name,other_constants)},$Module_copy_constants$61.$$arity=1),nil&&”copy_constants“}($nesting,null,$nesting)},Opal.modules=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.const_get_qualified,Opal.const_get_relative),$klass=(Opal.breaker,Opal.slice,Opal.klass),$send=Opal.send;return Opal.add_stubs(),self.$require(”corelib/module“),function($base,$super,$parent_nesting){var $Class_new$1,$Class_allocate$2,$Class_inherited$3,$Class_initialize_dup$4,$Class_new$5,$Class_superclass$6,$Class_to_s$7,self=$klass($base,null,”Class“),$nesting=.concat($parent_nesting);return Opal.defs(self,”$new“,$Class_new$1=function(superclass){var $iter=$Class_new$1.$$p,block=$iter||nil;if($iter&&($Class_new$1.$$p=null),$iter&&($Class_new$1.$$p=null),null==superclass&&(superclass=$$($nesting,”Object“)),!superclass.$$is_class)throw Opal.TypeError.$new(”superclass must be a Class“);var klass=Opal.allocate_class(nil,superclass);return superclass.$inherited(klass),block!==nil&&$send(klass,”class_eval“,[],block.$to_proc()),klass},$Class_new$1.$$arity=-1),Opal.def(self,”$allocate“,$Class_allocate$2=function(){var obj=new this.$$constructor;return obj.$$id=Opal.uid(),obj},$Class_allocate$2.$$arity=0),Opal.def(self,”$inherited“,$Class_inherited$3=function(cls){return nil},$Class_inherited$3.$$arity=1),Opal.def(self,”$initialize_dup“,$Class_initialize_dup$4=function(original){this.$initialize_copy(original),this.$$name=null,this.$$full_name=null},$Class_initialize_dup$4.$$arity=1),Opal.def(self,”$new“,$Class_new$5=function($a){var args,$iter=$Class_new$5.$$p,block=$iter||nil;$iter&&($Class_new$5.$$p=null),$iter&&($Class_new$5.$$p=null),args=Opal.slice.call(arguments,0,arguments.length);var object=this.$allocate();return Opal.send(object,object.$initialize,args,block),object},$Class_new$5.$$arity=-1),Opal.def(self,”$superclass“,$Class_superclass$6=function(){return this.$$super||nil},$Class_superclass$6.$$arity=0),Opal.def(self,”$to_s“,$Class_to_s$7=function(){var $iter=$Class_to_s$7.$$p;$iter&&($Class_to_s$7.$$p=null);var singleton_of=this.$$singleton_of;return singleton_of&&singleton_of.$$is_a_module?”#“:singleton_of?”#>“:$send(this,Opal.find_super_dispatcher(this,”to_s“,$Class_to_s$7,!1),[],null)},$Class_to_s$7.$$arity=0),nil&&”to_s“}($nesting,0,$nesting)},Opal.modules=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.const_get_qualified,$$=Opal.const_get_relative,$breaker=Opal.breaker,$slice=Opal.slice,$klass=Opal.klass,$truthy=Opal.truthy,$range=Opal.range,$hash2=Opal.hash2,$send=Opal.send;return Opal.add_stubs(),function($base,$super,$parent_nesting){var self=$klass($base,$super,”BasicObject“),$nesting=.concat($parent_nesting),$BasicObject_initialize$1,$BasicObject_$eq_eq$2,$BasicObject_eql$ques$3,$BasicObject___id__$4,$BasicObject___send__$5,$BasicObject_$excl$6,$BasicObject_$not_eq$7,$BasicObject_instance_eval$8,$BasicObject_instance_exec$10,$BasicObject_singleton_method_added$11,$BasicObject_singleton_method_removed$12,$BasicObject_singleton_method_undefined$13,$BasicObject_class$14,$BasicObject_method_missing$15;return Opal.def(self,”$initialize“,$BasicObject_initialize$1=function($a){return Opal.slice.call(arguments,0,arguments.length),nil},$BasicObject_initialize$1.$$arity=-1),Opal.def(self,”$==“,$BasicObject_$eq_eq$2=function(other){return this===other},$BasicObject_$eq_eq$2.$$arity=1),Opal.def(self,”$eql?“,$BasicObject_eql$ques$3=function(other){return this(other)},$BasicObject_eql$ques$3.$$arity=1),Opal.alias(self,”equal?“,”==“),Opal.def(self,”$__id__“,$BasicObject___id__$4=function(){return null!=this.$$id||Opal.defineProperty(this,”$$id“,Opal.uid()),this.$$id},$BasicObject___id__$4.$$arity=0),Opal.def(self,”$__send__“,$BasicObject___send__$5=function(symbol,$a){var args,$iter=$BasicObject___send__$5.$$p,block=$iter||nil;$iter&&($BasicObject___send__$5.$$p=null),$iter&&($BasicObject___send__$5.$$p=null),args=Opal.slice.call(arguments,1,arguments.length);var func=this;return func?(block!==nil&&(func.$$p=block),func.apply(this,args)):(block!==nil&&(this.$method_missing.$$p=block),this.$method_missing.apply(this,.concat(args)))},$BasicObject___send__$5.$$arity=-2),Opal.def(self,”$!“,$BasicObject_$excl$6=function(){return!1},$BasicObject_$excl$6.$$arity=0),Opal.def(self,”$!=“,$BasicObject_$not_eq$7=function(other){return this(other)()},$BasicObject_$not_eq$7.$$arity=1),Opal.def(self,”$instance_eval“,$BasicObject_instance_eval$8=function $$instance_eval($a){var $iter=$BasicObject_instance_eval$8.$$p,block=$iter||nil,$post_args,args,$b,$$9,self=this,string=nil,file=nil,_lineno=nil,default_eval_options=nil,compiling_options=nil,compiled=nil;$iter&&($BasicObject_instance_eval$8.$$p=null),$iter&&($BasicObject_instance_eval$8.$$p=null),$post_args=Opal.slice.call(arguments,0,arguments.length),args=$post_args,$truthy($truthy($b=block())?!!Opal.compile:$b)?($truthy($range(1,3,!1)(args.$size()))||$$$(”::“,”Kernel“).$raise($$$(”::“,”ArgumentError“),”wrong number of arguments (0 for 1..3)“),$b=[].concat(Opal.to_a(args)),string=null==$b?nil:$b,file=null==$b?nil:$b,_lineno=null==$b?nil:$b,default_eval_options=$hash2(,{file:$truthy($b=file)?$b:”(eval)“,eval:!0}),compiling_options=Opal.hash({arity_check:!1}).$merge(default_eval_options),compiled=$$$(”::“,”Opal“).$compile(string,compiling_options),block=$send($$$(”::“,”Kernel“),”proc“,[],($$9=function(){var self=$$9.$$s||this;return function(self){return eval(compiled)}(self)},$$9.$$s=self,$$9.$$arity=0,$$9))):$truthy(args())&&$$$(”::“,”Kernel“).$raise($$$(”::“,”ArgumentError“),”wrong number of arguments (“+args.$size()+” for 0)“);var old=block.$$s,result;if(block.$$s=null,self.$$is_a_module){self.$$eval=!0;try{result=block.call(self,self)}finally{self.$$eval=!1}}else result=block.call(self,self);return block.$$s=old,result},$BasicObject_instance_eval$8.$$arity=-1),Opal.def(self,”$instance_exec“,$BasicObject_instance_exec$10=function($a){var args,$iter=$BasicObject_instance_exec$10.$$p,block=$iter||nil;$iter&&($BasicObject_instance_exec$10.$$p=null),$iter&&($BasicObject_instance_exec$10.$$p=null),args=Opal.slice.call(arguments,0,arguments.length),$truthy(block)||$$$(”::“,”Kernel“).$raise($$$(”::“,”ArgumentError“),”no block given“);var result,block_self=block.$$s;if(block.$$s=null,this.$$is_a_module){this.$$eval=!0;try{result=block.apply(this,args)}finally{this.$$eval=!1}}else result=block.apply(this,args);return block.$$s=block_self,result},$BasicObject_instance_exec$10.$$arity=-1),Opal.def(self,”$singleton_method_added“,$BasicObject_singleton_method_added$11=function($a){return Opal.slice.call(arguments,0,arguments.length),nil},$BasicObject_singleton_method_added$11.$$arity=-1),Opal.def(self,”$singleton_method_removed“,$BasicObject_singleton_method_removed$12=function($a){return Opal.slice.call(arguments,0,arguments.length),nil},$BasicObject_singleton_method_removed$12.$$arity=-1),Opal.def(self,”$singleton_method_undefined“,$BasicObject_singleton_method_undefined$13=function($a){return Opal.slice.call(arguments,0,arguments.length),nil},$BasicObject_singleton_method_undefined$13.$$arity=-1),Opal.def(self,”$class“,$BasicObject_class$14=function(){return this.$$class},$BasicObject_class$14.$$arity=0),Opal.def(self,”$method_missing“,$BasicObject_method_missing$15=function(symbol,$a){var message,$iter=$BasicObject_method_missing$15.$$p,self=this;return $iter&&($BasicObject_method_missing$15.$$p=null),$iter&&($BasicObject_method_missing$15.$$p=null),Opal.slice.call(arguments,1,arguments.length),message=$truthy(self.$inspect&&!self.$inspect.$$stub)?”undefined method `“symbol”' for “+self.$inspect()+”:“+self.$$class:”undefined method `“symbol”' for “+self.$$class,$$$(”::“,”Kernel“).$raise($$$(”::“,”NoMethodError“).$new(message,symbol))},$BasicObject_method_missing$15.$$arity=-2),nil&&”method_missing“}($nesting,null,$nesting)},Opal.modules=function(Opal){Opal.top;var $nesting=[],nil=Opal.nil,$$$=Opal.const_get_qualified,$$=Opal.const_get_relative,$module=(Opal.breaker,Opal.slice,Opal.module),$truthy=Opal.truthy,$gvars=Opal.gvars,$hash2=Opal.hash2,$send=Opal.send,$klass=Opal.klass;return Opal.add_stubs([”$raise“,”$new“,”$inspect“,”$!“,”$=~“,”$==“,”$object_id“,”$class“,”$coerce_to?“,”$<<","$allocate","$copy_instance_variables","$copy_singleton_methods","$initialize_clone","$initialize_copy","$define_method","$singleton_class","$to_proc","$initialize_dup","$for","$empty?","$pop","$call","$coerce_to","$append_features","$extend_object","$extended","$__id__","$to_s","$instance_variable_name!","$respond_to?","$to_int","$coerce_to!","$Integer","$nil?","$===","$enum_for","$result","$any?","$print","$format","$puts","$each","$<=","$length","$“,”$exception“,”$is_a?“,”$rand“,”$respond_to_missing?“,”$try_convert!“,”$expand_path“,”$join“,”$start_with?“,”$new_seed“,”$srand“,”$sym“,”$arg“,”$open“,”$include“]),function($base,$parent_nesting){var $Kernel_method_missing$1,$Kernel_$eq_tilde$2,$Kernel_$excl_tilde$3,$Kernel_$eq_eq_eq$4,$Kernel_$lt_eq_gt$5,$Kernel_method$6,$Kernel_methods$7,$Kernel_public_methods$8,$Kernel_Array$9,$Kernel_at_exit$10,$Kernel_caller$11,$Kernel_class$12,$Kernel_copy_instance_variables$13,$Kernel_copy_singleton_methods$14,$Kernel_clone$15,$Kernel_initialize_clone$16,$Kernel_define_singleton_method$17,$Kernel_dup$18,$Kernel_initialize_dup$19,$Kernel_enum_for$20,$Kernel_equal$ques$21,$Kernel_exit$22,$Kernel_extend$23,$Kernel_hash$24,$Kernel_initialize_copy$25,$Kernel_inspect$26,$Kernel_instance_of$ques$27,$Kernel_instance_variable_defined$ques$28,$Kernel_instance_variable_get$29,$Kernel_instance_variable_set$30,$Kernel_remove_instance_variable$31,$Kernel_instance_variables$32,$Kernel_Integer$33,$Kernel_Float$34,$Kernel_Hash$35,$Kernel_is_a$ques$36,$Kernel_itself$37,$Kernel_lambda$38,$Kernel_load$39,$Kernel_loop$40,$Kernel_nil$ques$42,$Kernel_printf$43,$Kernel_proc$44,$Kernel_puts$45,$Kernel_p$46,$Kernel_print$48,$Kernel_warn$49,$Kernel_raise$50,$Kernel_rand$51,$Kernel_respond_to$ques$52,$Kernel_respond_to_missing$ques$53,$Kernel_require$54,$Kernel_require_relative$55,$Kernel_require_tree$56,$Kernel_singleton_class$57,$Kernel_sleep$58,$Kernel_srand$59,$Kernel_String$60,$Kernel_tap$61,$Kernel_to_proc$62,$Kernel_to_s$63,$Kernel_catch$64,$Kernel_throw$65,$Kernel_open$66,$Kernel_yield_self$67,self=$module($base,”Kernel“),$nesting=.concat($parent_nesting);Opal.def(self,”$method_missing“,$Kernel_method_missing$1=function(symbol,$a){var args,$iter=$Kernel_method_missing$1.$$p;return $iter&&($Kernel_method_missing$1.$$p=null),$iter&&($Kernel_method_missing$1.$$p=null),args=Opal.slice.call(arguments,1,arguments.length),this.$raise($$($nesting,”NoMethodError“).$new(”undefined method `“symbol”' for “+this.$inspect(),symbol,args))},$Kernel_method_missing$1.$$arity=-2),Opal.def(self,”$=~“,$Kernel_$eq_tilde$2=function(obj){return!1},$Kernel_$eq_tilde$2.$$arity=1),Opal.def(self,”$!~“,$Kernel_$excl_tilde$3=function(obj){return this(obj)()},$Kernel_$excl_tilde$3.$$arity=1),Opal.def(self,”$===“,$Kernel_$eq_eq_eq$4=function(other){var $a;return $truthy($a=this.$object_id()(other.$object_id()))?$a:this(other)},$Kernel_$eq_eq_eq$4.$$arity=1),Opal.def(self,”$<=>“,$Kernel_$lt_eq_gt$5=function(other){this.$$comparable=!0;var x=this(other);return x&&x!==nil?0:nil},$Kernel_$lt_eq_gt$5.$$arity=1),Opal.def(self,”$method“,$Kernel_method$6=function(name){var meth=this;return meth&&!meth.$$stub||this.$raise($$($nesting,”NameError“).$new(”undefined method `“name”' for class `“+this.$class()+”'“,name)),$$($nesting,”Method“).$new(this,meth.$$owner||this.$class(),meth,name)},$Kernel_method$6.$$arity=1),Opal.def(self,”$methods“,$Kernel_methods$7=function(all){return null==all&&(all=!0),$truthy(all)?Opal.methods(this):Opal.own_methods(this)},$Kernel_methods$7.$$arity=-1),Opal.def(self,”$public_methods“,$Kernel_public_methods$8=function(all){return null==all&&(all=!0),$truthy(all)?Opal.methods(this):Opal.receiver_methods(this)},$Kernel_public_methods$8.$$arity=-1),Opal.def(self,”$Array“,$Kernel_Array$9=function(object){var coerced;return object===nil?[]:object.$$is_array?object:(coerced=$$($nesting,”Opal“)(object,$$($nesting,”Array“),”to_ary“))!==nil?coerced:(coerced=$$($nesting,”Opal“)(object,$$($nesting,”Array“),”to_a“))!==nil?coerced:},$Kernel_Array$9.$$arity=1),Opal.def(self,”$at_exit“,$Kernel_at_exit$10=function(){var $a,$iter=$Kernel_at_exit$10.$$p,block=$iter||nil;return null==$gvars.at_exit&&($gvars.at_exit=nil),$iter&&($Kernel_at_exit$10.$$p=null),$iter&&($Kernel_at_exit$10.$$p=null),$gvars.at_exit=$truthy($a=$gvars.at_exit)?$a:[],$gvars.at_exit[”$<<"](block)},$Kernel_at_exit$10.$$arity=0),Opal.def(self,"$caller",$Kernel_caller$11=function($a){return Opal.slice.call(arguments,0,arguments.length),[]},$Kernel_caller$11.$$arity=-1),Opal.def(self,"$class",$Kernel_class$12=function(){return this.$$class},$Kernel_class$12.$$arity=0),Opal.def(self,"$copy_instance_variables",$Kernel_copy_instance_variables$13=function(other){var i,ii,name,keys=Object.keys(other);for(i=0,ii=keys.length;i).charAt(0)&&other.hasOwnProperty(name)&&(this=other)},$Kernel_copy_instance_variables$13.$$arity=1),Opal.def(self,“$copy_singleton_methods”,$Kernel_copy_singleton_methods$14=function(other){var i,name,names,length;if(other.hasOwnProperty(“$$meta”)){var other_singleton_class=Opal.get_singleton_class(other),self_singleton_class=Opal.get_singleton_class(this);for(i=0,length=(names=Object.getOwnPropertyNames(other_singleton_class.$$prototype)).length;i,Opal.is_method(name)&&(self_singleton_class.$$prototype=other_singleton_class.$$prototype);self_singleton_class.$$const=Object.assign({},other_singleton_class.$$const),Object.setPrototypeOf(self_singleton_class.$$prototype,Object.getPrototypeOf(other_singleton_class.$$prototype))}for(i=0,length=(names=Object.getOwnPropertyNames(other)).length;i).charAt(0)&&“$”!==name.charAt(1)&&other.hasOwnProperty(name)&&(this=other)},$Kernel_copy_singleton_methods$14.$$arity=1),Opal.def(self,“$clone”,$Kernel_clone$15=function($kwargs){var copy=nil;if(null==$kwargs)$kwargs=$hash2([],{});else if(!$kwargs.$$is_hash)throw Opal.ArgumentError.$new(“expected kwargs”);return null==$kwargs.$$smap.freeze&&!0,(copy=this.$class().$allocate()).$copy_instance_variables(this),copy.$copy_singleton_methods(this),copy.$initialize_clone(this),copy},$Kernel_clone$15.$$arity=-1),Opal.def(self,“$initialize_clone”,$Kernel_initialize_clone$16=function(other){return this.$initialize_copy(other)},$Kernel_initialize_clone$16.$$arity=1),Opal.def(self,“$define_singleton_method”,$Kernel_define_singleton_method$17=function(name,method){var $iter=$Kernel_define_singleton_method$17.$$p,block=$iter||nil;return $iter&&($Kernel_define_singleton_method$17.$$p=null),$iter&&($Kernel_define_singleton_method$17.$$p=null),$send(this.$singleton_class(),“define_method”,,block.$to_proc())},$Kernel_define_singleton_method$17.$$arity=-2),Opal.def(self,“$dup”,$Kernel_dup$18=function(){var copy=nil;return(copy=this.$class().$allocate()).$copy_instance_variables(this),copy.$initialize_dup(this),copy},$Kernel_dup$18.$$arity=0),Opal.def(self,“$initialize_dup”,$Kernel_initialize_dup$19=function(other){return this.$initialize_copy(other)},$Kernel_initialize_dup$19.$$arity=1),Opal.def(self,“$enum_for”,$Kernel_enum_for$20=function($a,$b){var $post_args,method,args,$iter=$Kernel_enum_for$20.$$p,block=$iter||nil,self=this;return $iter&&($Kernel_enum_for$20.$$p=null),$iter&&($Kernel_enum_for$20.$$p=null),0<($post_args=Opal.slice.call(arguments,0,arguments.length)).length&&(method=$post_args,$post_args.splice(0,1)),null==method&&(method=“each”),args=$post_args,$send($$($nesting,“Enumerator”),“for”,.concat(Opal.to_a(args)),block.$to_proc())},$Kernel_enum_for$20.$$arity=-1),Opal.alias(self,“to_enum”,“enum_for”),Opal.def(self,“$equal?”,$Kernel_equal$ques$21=function(other){return this===other},$Kernel_equal$ques$21.$$arity=1),Opal.def(self,“$exit”,$Kernel_exit$22=function(status){var $a;for(null==$gvars.at_exit&&($gvars.at_exit=nil),null==status&&(status=!0),$gvars.at_exit=$truthy($a=$gvars.at_exit)?$a:[];!$truthy($gvars.at_exit[“$empty?”]());)$gvars.at_exit.$pop().$call();return status=status.$$is_boolean?status?0:1:$$($nesting,“Opal”).$coerce_to(status,$$($nesting,“Integer”),“to_int”),Opal.exit(status),nil},$Kernel_exit$22.$$arity=-1),Opal.def(self,“$extend”,$Kernel_extend$23=function($a){var mods;mods=Opal.slice.call(arguments,0,arguments.length);for(var singleton=this.$singleton_class(),i=mods.length-1;0<=i;i–){var mod=mods;mod.$$is_module||this.$raise($$($nesting,“TypeError”),“wrong argument type ”+mod.$class()+“ (expected Module)”),mod.$append_features(singleton),mod.$extend_object(this),mod.$extended(this)}return this},$Kernel_extend$23.$$arity=-1),Opal.def(self,“$hash”,$Kernel_hash$24=function(){return this.$__id__()},$Kernel_hash$24.$$arity=0),Opal.def(self,“$initialize_copy”,$Kernel_initialize_copy$25=function(other){return nil},$Kernel_initialize_copy$25.$$arity=1),Opal.def(self,“$inspect”,$Kernel_inspect$26=function(){return this.$to_s()},$Kernel_inspect$26.$$arity=0),Opal.def(self,“$instance_of?”,$Kernel_instance_of$ques$27=function(klass){return klass.$$is_class||klass.$$is_module||this.$raise($$($nesting,“TypeError”),“class or module required”),this.$$class===klass},$Kernel_instance_of$ques$27.$$arity=1),Opal.def(self,“$instance_variable_defined?”,$Kernel_instance_variable_defined$ques$28=function(name){return name=$$($nesting,“Opal”)(name),Opal.hasOwnProperty.call(this,name.substr(1))},$Kernel_instance_variable_defined$ques$28.$$arity=1),Opal.def(self,“$instance_variable_get”,$Kernel_instance_variable_get$29=function(name){name=$$($nesting,“Opal”)(name);var ivar=this;return null==ivar?nil:ivar},$Kernel_instance_variable_get$29.$$arity=1),Opal.def(self,“$instance_variable_set”,$Kernel_instance_variable_set$30=function(name,value){return name=$$($nesting,“Opal”)(name),this=value},$Kernel_instance_variable_set$30.$$arity=2),Opal.def(self,“$remove_instance_variable”,$Kernel_remove_instance_variable$31=function(name){name=$$($nesting,“Opal”)(name);var val,key=Opal.ivar(name.substr(1));return this.hasOwnProperty(key)?(val=this,delete this,val):this.$raise($$($nesting,“NameError”),“instance variable ”name“ not defined”)},$Kernel_remove_instance_variable$31.$$arity=1),Opal.def(self,“$instance_variables”,$Kernel_instance_variables$32=function(){var ivar,result=[];for(var name in this)this.hasOwnProperty(name)&&“$”!==name.charAt(0)&&(ivar=“$”===name.substr(-1)?name.slice(0,name.length-1):name,result.push(“@”+ivar));return result},$Kernel_instance_variables$32.$$arity=0),Opal.def(self,“$Integer”,$Kernel_Integer$33=function(value,base){var i,str,base_digits,self=this;return value.$$is_string?“0”===value?0:(void 0===base?base=0:(1===(base=$$($nesting,“Opal”).$coerce_to(base,$$($nesting,“Integer”),“to_int”))||base<0||36<base)&&self.$raise($$($nesting,“ArgumentError”),“invalid radix ”+base),str=(str=(str=value.toLowerCase()).replace(/(d)_(?=d)/g,“$1”)).replace(/^(s*?)(0?)/,function(_,head,flag){switch(flag){case“0b”:if(0===base||2===base)return base=2,head;case“0”:case“0o”:if(0===base||8===base)return base=8,head;case“0d”:if(0===base||10===base)return base=10,head;case“0x”:if(0===base||16===base)return base=16,head}self.$raise($$($nesting,“ArgumentError”),'invalid value for Integer(): “'value'”')}),base_digits=“0-”+((base=0===base?10:base)<=10?base-1:“9a-”+String.fromCharCode(base-11+97)),new RegExp(“^\s*?[”base_digits“]+\s*$”).test(str)||self.$raise($$($nesting,“ArgumentError”),'invalid value for Integer(): “'value'”'),i=parseInt(str,base),isNaN(i)&&self.$raise($$($nesting,“ArgumentError”),'invalid value for Integer(): “'value'”'),i):(void 0!==base&&self.$raise($$($nesting,“ArgumentError”),“base specified for non string value”),value===nil&&self.$raise($$($nesting,“TypeError”),“can't convert nil into Integer”),value.$$is_number?((value===1/0||value===-1/0||isNaN(value))&&self.$raise($$($nesting,“FloatDomainError”),value),Math.floor(value)):value(“to_int”)&&(i=value.$to_int())!==nil?i:$$($nesting,“Opal”)(value,$$($nesting,“Integer”),“to_i”))},$Kernel_Integer$33.$$arity=-2),Opal.def(self,“$Float”,$Kernel_Float$34=function(value){var str;return value===nil&&this.$raise($$($nesting,“TypeError”),“can't convert nil into Float”),value.$$is_string?(str=(str=value.toString()).replace(/(d)_(?=d)/g,“$1”),/^s*?0[0-9a-fA-F]+s*$/.test(str)?this.$Integer(str):(/^s*?[0-9]*.?+([eE]?[0-9]+)?s*$/.test(str)||this.$raise($$($nesting,“ArgumentError”),'invalid value for Float(): “'value‘”’),parseFloat(str))):$$($nesting,“Opal”)(value,$$($nesting,“Float”),“to_f”)},$Kernel_Float$34.$$arity=1),Opal.def(self,“$Hash”,$Kernel_Hash$35=function(arg){var $a;return $truthy($truthy($a=arg())?$a:arg([]))?$hash2([],{}):$truthy($$($nesting,“Hash”)(arg))?arg:$$($nesting,“Opal”)(arg,$$($nesting,“Hash”),“to_hash”)},$Kernel_Hash$35.$$arity=1),Opal.def(self,“$is_a?”,$Kernel_is_a$ques$36=function(klass){return klass.$$is_class||klass.$$is_module||this.$raise($$($nesting,“TypeError”),“class or module required”),Opal.is_a(this,klass)},$Kernel_is_a$ques$36.$$arity=1),Opal.def(self,“$itself”,$Kernel_itself$37=function(){return this},$Kernel_itself$37.$$arity=0),Opal.alias(self,“kind_of?”,“is_a?”),Opal.def(self,“$lambda”,$Kernel_lambda$38=function(){var $iter=$Kernel_lambda$38.$$p,block=$iter||nil;return $iter&&($Kernel_lambda$38.$$p=null),$iter&&($Kernel_lambda$38.$$p=null),Opal.lambda(block)},$Kernel_lambda$38.$$arity=0),Opal.def(self,“$load”,$Kernel_load$39=function(file){return file=$$($nesting,“Opal”)(file,$$($nesting,“String”),“to_str”),Opal.load(file)},$Kernel_load$39.$$arity=1),Opal.def(self,“$loop”,$Kernel_loop$40=function(){var $$41,$iter=$Kernel_loop$40.$$p,$yield=$iter||nil,e=nil;if($iter&&($Kernel_loop$40.$$p=null),$yield===nil)return $send(this,“enum_for”,,(($$41=function(){$$41.$$s;return $$$($$($nesting,“Float”),“INFINITY”)}).$$s=this,$$41.$$arity=0,$$41));for(;$truthy(!0);)try{Opal.yieldX($yield,[])}catch($err){if(!Opal.rescue($err,))throw $err;e=$err;try{return e.$result()}finally{Opal.pop_exception()}}return this},$Kernel_loop$40.$$arity=0),Opal.def(self,“$nil?”,$Kernel_nil$ques$42=function(){return!1},$Kernel_nil$ques$42.$$arity=0),Opal.alias(self,“object_id”,“__id__”),Opal.def(self,“$printf”,$Kernel_printf$43=function($a){var $post_args,args;return $post_args=Opal.slice.call(arguments,0,arguments.length),$truthy((args=$post_args)())&&this.$print($send(this,“format”,Opal.to_a(args))),nil},$Kernel_printf$43.$$arity=-1),Opal.def(self,“$proc”,$Kernel_proc$44=function(){var $iter=$Kernel_proc$44.$$p,block=$iter||nil;return $iter&&($Kernel_proc$44.$$p=null),$iter&&($Kernel_proc$44.$$p=null),$truthy(block)||this.$raise($$($nesting,“ArgumentError”),“tried to create Proc object without a block”),block.$$is_lambda=!1,block},$Kernel_proc$44.$$arity=0),Opal.def(self,“$puts”,$Kernel_puts$45=function($a){var strs;return null==$gvars.stdout&&($gvars.stdout=nil),strs=Opal.slice.call(arguments,0,arguments.length),$send($gvars.stdout,“puts”,Opal.to_a(strs))},$Kernel_puts$45.$$arity=-1),Opal.def(self,“$p”,$Kernel_p$46=function($a){var $post_args,args,$$47,lhs,rhs;return $post_args=Opal.slice.call(arguments,0,arguments.length),$send(args=$post_args,“each”,[],(($$47=function(obj){$$47.$$s;return null==$gvars.stdout&&($gvars.stdout=nil),null==obj&&(obj=nil),$gvars.stdout.$puts(obj.$inspect())}).$$s=this,$$47.$$arity=1,$$47)),$truthy((lhs=args.$length(),rhs=1,“number”==typeof lhs&&“number”==typeof rhs?lhs<=rhs:lhs(rhs)))?args[“$”](0):args},$Kernel_p$46.$$arity=-1),Opal.def(self,“$print”,$Kernel_print$48=function($a){var strs;return null==$gvars.stdout&&($gvars.stdout=nil),strs=Opal.slice.call(arguments,0,arguments.length),$send($gvars.stdout,“print”,Opal.to_a(strs))},$Kernel_print$48.$$arity=-1),Opal.def(self,“$warn”,$Kernel_warn$49=function($a){var strs,$b;return null==$gvars.VERBOSE&&($gvars.VERBOSE=nil),null==$gvars.stderr&&($gvars.stderr=nil),strs=Opal.slice.call(arguments,0,arguments.length),$truthy($truthy($b=$gvars.VERBOSE())?$b:strs())?nil:$send($gvars.stderr,“puts”,Opal.to_a(strs))},$Kernel_warn$49.$$arity=-1),Opal.def(self,“$raise”,$Kernel_raise$50=function(exception,string,_backtrace){if(null==$gvars&&($gvars=nil),null==string&&(string=nil),null==_backtrace&&(_backtrace=nil),null==exception&&$gvars!==nil)throw $gvars;throw null==exception?exception=$$($nesting,“RuntimeError”).$new():exception.$$is_string?exception=$$($nesting,“RuntimeError”).$new(exception):exception.$$is_class&&exception(“exception”)?exception=exception.$exception(string):exception($$($nesting,“Exception”))||(exception=$$($nesting,“TypeError”).$new(“exception class/object expected”)),$gvars!==nil&&Opal.exceptions.push($gvars),$gvars=exception},$Kernel_raise$50.$$arity=-1),Opal.alias(self,“fail”,“raise”),Opal.def(self,“$rand”,$Kernel_rand$51=function(max){return void 0===max?$$$($$($nesting,“Random”),“DEFAULT”).$rand():(max.$$is_number&&(max<0&&(max=Math.abs(max)),max%1!=0&&(max=max.$to_i()),0===max&&(max=void 0)),$$$($$($nesting,“Random”),“DEFAULT”).$rand(max))},$Kernel_rand$51.$$arity=-1),Opal.def(self,“$respond_to?”,$Kernel_respond_to$ques$52=function(name,include_all){if(null==include_all&&(include_all=!1),$truthy(this(name,include_all)))return!0;var body=this;return“function”==typeof body&&!body.$$stub},$Kernel_respond_to$ques$52.$$arity=-2),Opal.def(self,“$respond_to_missing?”,$Kernel_respond_to_missing$ques$53=function(method_name,include_all){return null==include_all&&(include_all=!1),!1},$Kernel_respond_to_missing$ques$53.$$arity=-2),Opal.def(self,“$require”,$Kernel_require$54=function(file){return file=$$($nesting,“Opal”)(file,$$($nesting,“String”),“to_str”),Opal.require(file)},$Kernel_require$54.$$arity=1),Opal.def(self,“$require_relative”,$Kernel_require_relative$55=function(file){return $$($nesting,“Opal”)(file,$$($nesting,“String”),“to_str”),file=$$($nesting,“File”).$expand_path($$($nesting,“File”).$join(Opal.current_file,“..”,file)),Opal.require(file)},$Kernel_require_relative$55.$$arity=1),Opal.def(self,“$require_tree”,$Kernel_require_tree$56=function(path){var result=[];for(var name in path=$$($nesting,“File”).$expand_path(path),“.”===(path=Opal.normalize(path))&&(path=“”),Opal.modules)name(path)&&result.push();return result},$Kernel_require_tree$56.$$arity=1),Opal.alias(self,“send”,“__send__”),Opal.alias(self,“public_send”,“__send__”),Opal.def(self,“$singleton_class”,$Kernel_singleton_class$57=function(){return Opal.get_singleton_class(this)},$Kernel_singleton_class$57.$$arity=0),Opal.def(self,“$sleep”,$Kernel_sleep$58=function(seconds){null==seconds&&(seconds=nil),seconds===nil&&this.$raise($$($nesting,“TypeError”),“can't convert NilClass into time interval”),seconds.$$is_number||this.$raise($$($nesting,“TypeError”),“can't convert ”+seconds.$class()+“ into time interval”),seconds<0&&this.$raise($$($nesting,“ArgumentError”),“time interval must be positive”);for(var get_time=Opal.global.performance?function(){return performance.now()}:function(){return new Date},t=get_time();get_time()-t<=1e3*seconds;);return seconds},$Kernel_sleep$58.$$arity=-1),Opal.def(self,“$srand”,$Kernel_srand$59=function(seed){return null==seed&&(seed=$$($nesting,“Random”).$new_seed()),$$($nesting,“Random”).$srand(seed)},$Kernel_srand$59.$$arity=-1),Opal.def(self,“$String”,$Kernel_String$60=function(str){var $a;return $truthy($a=$$($nesting,“Opal”)(str,$$($nesting,“String”),“to_str”))?$a:$$($nesting,“Opal”)(str,$$($nesting,“String”),“to_s”)},$Kernel_String$60.$$arity=1),Opal.def(self,“$tap”,$Kernel_tap$61=function(){var $iter=$Kernel_tap$61.$$p,block=$iter||nil;return $iter&&($Kernel_tap$61.$$p=null),$iter&&($Kernel_tap$61.$$p=null),Opal.yield1(block,this),this},$Kernel_tap$61.$$arity=0),Opal.def(self,“$to_proc”,$Kernel_to_proc$62=function(){return this},$Kernel_to_proc$62.$$arity=0),Opal.def(self,“$to_s”,$Kernel_to_s$63=function(){return“#<”+this.$class()+“:0x”+this.$__id__().$to_s(16)+“>”},$Kernel_to_s$63.$$arity=0),Opal.def(self,“$catch”,$Kernel_catch$64=function(sym){var $iter=$Kernel_catch$64.$$p,$yield=$iter||nil,self=this,e=nil;$iter&&($Kernel_catch$64.$$p=null);try{return Opal.yieldX($yield,[])}catch($err){if(!Opal.rescue($err,))throw $err;e=$err;try{return e.$sym()(sym)?e.$arg():self.$raise()}finally{Opal.pop_exception()}}},$Kernel_catch$64.$$arity=1),Opal.def(self,“$throw”,$Kernel_throw$65=function($a){var args;return args=Opal.slice.call(arguments,0,arguments.length),this.$raise($$($nesting,“UncaughtThrowError”),args)},$Kernel_throw$65.$$arity=-1),Opal.def(self,“$open”,$Kernel_open$66=function($a){var args,$iter=$Kernel_open$66.$$p,block=$iter||nil;return $iter&&($Kernel_open$66.$$p=null),$iter&&($Kernel_open$66.$$p=null),args=Opal.slice.call(arguments,0,arguments.length),$send($$($nesting,“File”),“open”,Opal.to_a(args),block.$to_proc())},$Kernel_open$66.$$arity=-1),Opal.def(self,“$yield_self”,$Kernel_yield_self$67=function(){var $$68,$iter=$Kernel_yield_self$67.$$p,$yield=$iter||nil;return $iter&&($Kernel_yield_self$67.$$p=null),$yield===nil?$send(this,“enum_for”,,(($$68=function(){$$68.$$s;return 1}).$$s=this,$$68.$$arity=0,$$68)):Opal.yield1($yield,this)},$Kernel_yield_self$67.$$arity=0)}($nesting,$nesting),function($base,$super,$parent_nesting){var self=$klass($base,null,“Object”),$nesting=.concat($parent_nesting);return self.$include($$($nesting,“Kernel”))}($nesting,0,$nesting)},Opal.modules=function(Opal){Opal.top;var $base,$super,$parent_nesting,$nesting=[],nil=Opal.nil,$$=(Opal.const_get_qualified,Opal.const_get_relative),$klass=(Opal.breaker,Opal.slice,Opal.klass),$send=Opal.send,$truthy=Opal.truthy,$module=Opal.module,$hash2=Opal.hash2;return Opal.add_stubs([“$new”,“$clone”,“$to_s”,“$empty?”,“$class”,“$raise”,“$+”,“$attr_reader”,“$”,“$>”,“$length”,“$inspect”]),function($base,$super,$parent_nesting){var $Exception_new$1,$Exception_exception$2,$Exception_initialize$3,$Exception_backtrace$4,$Exception_exception$5,$Exception_message$6,$Exception_inspect$7,$Exception_set_backtrace$8,$Exception_to_s$9,stack_trace_limit,self=$klass($base,$super,“Exception”),$nesting=.concat($parent_nesting);self.$$prototype.message=nil,Opal.defs(self,“$new”,$Exception_new$1=function($a){var args,message=0<(args=Opal.slice.call(arguments,0,arguments.length)).length?args:nil,error=new this.$$constructor(message);return error.name=this.$$name,error.message=message,Opal.send(error,error.$initialize,args),Opal.config.enable_stack_trace&&Error.captureStackTrace&&Error.captureStackTrace(error,stack_trace_limit),error},$Exception_new$1.$$arity=-1),stack_trace_limit=self.$new,Opal.defs(self,“$exception”,$Exception_exception$2=function($a){var args;return args=Opal.slice.call(arguments,0,arguments.length),$send(this,“new”,Opal.to_a(args))},$Exception_exception$2.$$arity=-1),Opal.def(self,“$initialize”,$Exception_initialize$3=function($a){var args;return args=Opal.slice.call(arguments,0,arguments.length),this.message=0:nil},$Exception_initialize$3.$$arity=-1),Opal.def(self,“$backtrace”,$Exception_backtrace$4=function(){if(this.backtrace)return this.backtrace;var backtrace=this.stack;return“string”==typeof backtrace?backtrace.split(“n”).slice(0,15):backtrace?backtrace.slice(0,15):[]},$Exception_backtrace$4.$$arity=0),Opal.def(self,“$exception”,$Exception_exception$5=function(str){if(null==str&&(str=nil),str===nil||this===str)return this;var cloned=this.$clone();return cloned.message=str,cloned.stack=this.stack,cloned},$Exception_exception$5.$$arity=-1),Opal.def(self,“$message”,$Exception_message$6=function(){return this.$to_s()},$Exception_message$6.$$arity=0),Opal.def(self,“$inspect”,$Exception_inspect$7=function(){var as_str=nil;return as_str=this.$to_s(),$truthy(as_str())?this.$class().$to_s():“#<”+this.$class().$to_s()+“: ”+this.$to_s()+“>”},$Exception_inspect$7.$$arity=0),Opal.def(self,“$set_backtrace”,$Exception_set_backtrace$8=function(backtrace){var i,ii,valid=!0;if(backtrace===nil)this.backtrace=nil,this.stack=“”;else if(backtrace.$$is_string)this.backtrace=,this.stack=backtrace;else{if(backtrace.$$is_array){for(i=0,ii=backtrace.length;i.$$is_string){valid=!1;break}}else valid=!1;!1===valid&&this.$raise($$($nesting,“TypeError”),“backtrace must be Array of String”),this.backtrace=backtrace,this.stack=backtrace.join(“n”)}return backtrace},$Exception_set_backtrace$8.$$arity=1),Opal.def(self,“$to_s”,$Exception_to_s$9=function(){var $a,$b;return $truthy($a=$truthy($b=this.message)?this.message.$to_s():$b)?$a:this.$class().$to_s()},$Exception_to_s$9.$$arity=0)}($nesting,Error,$nesting),$base=$nesting,$super=$$($nesting,“Exception”),$parent_nesting=$nesting,.concat($parent_nesting),function($base,$super,$parent_nesting){[$klass($base,$super,“SyntaxError”)].concat($parent_nesting)}($nesting,$$($nesting,“ScriptError”),$nesting),function($base,$super,$parent_nesting){[$klass($base,$super,“LoadError”)].concat($parent_nesting)}($nesting,$$($nesting,“ScriptError”),$nesting),function($base,$super,$parent_nesting){[$klass($base,$super,“NotImplementedError”)].concat($parent_nesting)}($nesting,$$($nesting,“ScriptError”),$nesting),function($base,$super,$parent_nesting){[$klass($base,$super,“SystemExit”)].concat($parent_nesting)}($nesting,$$($nesting,“Exception”),$nesting),function($base,$super,$parent_nesting){[$klass($base,$super,“NoMemoryError”)].concat($parent_nesting)}($nesting,$$($nesting,“Exception”),$nesting),function($base,$super,$parent_nesting){[$klass($base,$super,“SignalException”)].concat($parent_nesting)}($nesting,$$($nesting,“Exception”),$nesting),function($base,$super,$parent_nesting){[$klass($base,$super,“Interrupt”)].concat($parent_nesting)}($nesting,$$($nesting,“Exception”),$nesting),function($base,$super,$parent_nesting){[$klass($base,$super,“SecurityError”)].concat($parent_nesting)}($nesting,$$($nesting,“Exception”),$nesting),function($base,$super,$parent_nesting){[$klass($base,$super,“StandardError”)].concat($parent_nesting)}($nesting,$$($nesting,“Exception”),$nesting),function($base,$super,$parent_nesting){[$klass($base,$super,“EncodingError”)].concat($parent_nesting)}($nesting,$$($nesting,“StandardError”),$nesting),function($base,$super,$parent_nesting){[$klass($base,$super,“ZeroDivisionError”)].concat($parent_nesting)}($nesting,$$($nesting,“StandardError”),$nesting),function($base,$super,$parent_nesting){[$klass($base,$super,“NameError”)].concat($parent_nesting)}($nesting,$$($nesting,“StandardError”),$nesting),function($base,$super,$parent_nesting){[$klass($base,$super,“NoMethodError”)].concat($parent_nesting)}($nesting,$$($nesting,“NameError”),$nesting),function($base,$super,$parent_nesting){[$klass($base,$super,“RuntimeError”)].concat($parent_nesting)}($nesting,$$($nesting,“StandardError”),$nesting),function($base,$super,$parent_nesting){[$klass($base,$super,“FrozenError”)].concat($parent_nesting)}($nesting,$$($nesting,“RuntimeError”),$nesting),function($base,$super,$parent_nesting){[$klass($base,$super,“LocalJumpError”)].concat($parent_nesting)}($nesting,$$($nesting,“StandardError”),$nesting),function($base,$super,$parent_nesting){[$klass($base,$super,“TypeError”)].concat($parent_nesting)}($nesting,$$($nesting,“StandardError”),$nesting),function($base,$super,$parent_nesting){[$klass($base,$super,“ArgumentError”)].concat($parent_nesting)}($nesting,$$($nesting,“StandardError”),$nesting),function($base,$super,$parent_nesting){[$klass($base,$super,“IndexError”)].concat($parent_nesting)}($nesting,$$($nesting,“StandardError”),$nesting),function($base,$super,$parent_nesting){[$klass($base,$super,“StopIteration”)].concat($parent_nesting)}($nesting,$$($nesting,“IndexError”),$nesting),function($base,$super,$parent_nesting){[$klass($base,$super,“KeyError”)].concat($parent_nesting)}($nesting,$$($nesting,“IndexError”),$nesting),function($base,$super,$parent_nesting){[$klass($base,$super,“RangeError”)].concat($parent_nesting)}($nesting,$$($nesting,“StandardError”),$nesting),function($base,$super,$parent_nesting){[$klass($base,$super,“FloatDomainError”)].concat($parent_nesting)}($nesting,$$($nesting,“RangeError”),$nesting),function($base,$super,$parent_nesting){[$klass($base,$super,“IOError”)].concat($parent_nesting)}($nesting,$$($nesting,“StandardError”),$nesting),function($base,$super,$parent_nesting){[$klass($base,$super,“SystemCallError”)].concat($parent_nesting)}($nesting,$$($nesting,“StandardError”),$nesting),function($base,$parent_nesting){var $nesting=.concat($parent_nesting);!function($base,$super,$parent_nesting){var $EINVAL_new$10,self=$klass($base,$super,“EINVAL”);.concat($parent_nesting);Opal.defs(self,“$new”,$EINVAL_new$10=function(name){var lhs,rhs,$iter=$EINVAL_new$10.$$p,message=nil;return $iter&&($EINVAL_new$10.$$p=null),null==name&&(name=nil),message=“Invalid argument”,$truthy(name)&&(rhs=“ - ”+name,message=“number”==typeof(lhs=message)&&“number”==typeof rhs?lhs+rhs:lhs(rhs)),$send(this,Opal.find_super_dispatcher(this,“new”,$EINVAL_new$10,!1,this.$$class.$$prototype),,null)},$EINVAL_new$10.$$arity=-1)}($nesting,$$($nesting,“SystemCallError”),$nesting)}($nesting,$nesting),function($base,$super,$parent_nesting){var $UncaughtThrowError_initialize$11,self=$klass($base,$super,“UncaughtThrowError”);.concat($parent_nesting);self.$$prototype.sym=nil,self.$attr_reader(“sym”,“arg”),Opal.def(self,“$initialize”,$UncaughtThrowError_initialize$11=function(args){var lhs,rhs,$iter=$UncaughtThrowError_initialize$11.$$p;return $iter&&($UncaughtThrowError_initialize$11.$$p=null),this.sym=args[“$”](0),$truthy((lhs=args.$length(),rhs=1,“number”==typeof lhs&&“number”==typeof “”>rhs?rhs(rhs)))&&(this.arg=args[“$”](1)),$send(this,Opal.find_super_dispatcher(this,“initialize”,$UncaughtThrowError_initialize$11,!1),[“uncaught throw ”+this.sym.$inspect()],null)},$UncaughtThrowError_initialize$11.$$arity=1)}($nesting,$$($nesting,“ArgumentError”),$nesting),function($base,$super,$parent_nesting){var $NameError_initialize$12,self=$klass($base,null,“NameError”);.concat($parent_nesting);self.$attr_reader(“name”),Opal.def(self,“$initialize”,$NameError_initialize$12=function(message,name){var $iter=$NameError_initialize$12.$$p;return $iter&&($NameError_initialize$12.$$p=null),null==name&&(name=nil),$send(this,Opal.find_super_dispatcher(this,“initialize”,$NameError_initialize$12,!1),,null),this.name=name},$NameError_initialize$12.$$arity=-2)}($nesting,0,$nesting),function($base,$super,$parent_nesting){var $NoMethodError_initialize$13,self=$klass($base,null,“NoMethodError”);.concat($parent_nesting);self.$attr_reader(“args”),Opal.def(self,“$initialize”,$NoMethodError_initialize$13=function(message,name,args){var $iter=$NoMethodError_initialize$13.$$p;return $iter&&($NoMethodError_initialize$13.$$p=null),null==name&&(name=nil),null==args&&(args=[]),$send(this,Opal.find_super_dispatcher(this,“initialize”,$NoMethodError_initialize$13,!1),,null),this.args=args},$NoMethodError_initialize$13.$$arity=-2)}($nesting,0,$nesting),function($base,$super,$parent_nesting){var self=$klass($base,null,“StopIteration”);.concat($parent_nesting);self.$attr_reader(“result”)}($nesting,0,$nesting),function($base,$super,$parent_nesting){var $KeyError_initialize$14,$KeyError_receiver$15,$KeyError_key$16,self=$klass($base,null,“KeyError”),$nesting=.concat($parent_nesting);self.$$prototype.receiver=self.$$prototype.key=nil,Opal.def(self,“$initialize”,$KeyError_initialize$14=function(message,$kwargs){var receiver,key,$iter=$KeyError_initialize$14.$$p;if($iter&&($KeyError_initialize$14.$$p=null),null==$kwargs)$kwargs=$hash2([],{});else if(!$kwargs.$$is_hash)throw Opal.ArgumentError.$new(“expected kwargs”);return null==(receiver=$kwargs.$$smap.receiver)&&(receiver=nil),null==(key=$kwargs.$$smap.key)&&(key=nil),$send(this,Opal.find_super_dispatcher(this,“initialize”,$KeyError_initialize$14,!1),,null),this.receiver=receiver,this.key=key},$KeyError_initialize$14.$$arity=-2),Opal.def(self,“$receiver”,$KeyError_receiver$15=function(){var $a;return $truthy($a=this.receiver)?$a:this.$raise($$($nesting,“ArgumentError”),“no receiver is available”)},$KeyError_receiver$15.$$arity=0),Opal.def(self,“$key”,$KeyError_key$16=function(){var $a;return $truthy($a=this.key)?$a:this.$raise($$($nesting,“ArgumentError”),“no key is available”)},$KeyError_key$16.$$arity=0)}($nesting,0,$nesting),function($base,$parent_nesting){var $nesting=.concat($parent_nesting);!function($base,$super,$parent_nesting){[$klass($base,null,“Error”)].concat($parent_nesting)}($nesting,0,$nesting)}($nesting,$nesting)},Opal.modules=function(Opal){Opal.top;var $nesting=[],$$=(Opal.nil,Opal.const_get_qualified,Opal.const_get_relative);Opal.breaker,Opal.slice;return Opal.const_set($nesting,“RUBY_PLATFORM”,“opal”),Opal.const_set($nesting,“RUBY_ENGINE”,“opal”),Opal.const_set($nesting,“RUBY_VERSION”,“2.5.3”),Opal.const_set($nesting,“RUBY_ENGINE_VERSION”,“1.0.0”),Opal.const_set($nesting,“RUBY_RELEASE_DATE”,“2019-05-12”),Opal.const_set($nesting,“RUBY_PATCHLEVEL”,0),Opal.const_set($nesting,“RUBY_REVISION”,0),Opal.const_set($nesting,“RUBY_COPYRIGHT”,“opal - Copyright (C) 2013-2019 Adam Beynon and the Opal contributors”),Opal.const_set($nesting,“RUBY_DESCRIPTION”,“opal ”+$$($nesting,“RUBY_ENGINE_VERSION”)+“ (”+$$($nesting,“RUBY_RELEASE_DATE”)+“ revision ”+$$($nesting,“RUBY_REVISION”)+“)”)},Opal.modules=function(Opal){var self=Opal.top;Opal.nil,Opal.const_get_qualified,Opal.const_get_relative,Opal.breaker,Opal.slice;return Opal.add_stubs(),self.$require(“corelib/runtime”),self.$require(“corelib/helpers”),self.$require(“corelib/module”),self.$require(“corelib/class”),self.$require(“corelib/basic_object”),self.$require(“corelib/kernel”),self.$require(“corelib/error”),self.$require(“corelib/constants”)},Opal.modules=function(Opal){Opal.top;var $nesting=[],nil=Opal.nil,$$=(Opal.const_get_qualified,Opal.const_get_relative),$klass=(Opal.breaker,Opal.slice,Opal.klass),$hash2=Opal.hash2,$truthy=Opal.truthy;return “,”$length“,”$Rational“”>Opal.add_stubs(),function($base,$super,$parent_nesting){var $NilClass_$excl$2,$NilClass_$$3,$NilClass_$$4,$NilClass_$$5,$NilClass_$eq_eq$6,$NilClass_dup$7,$NilClass_clone$8,$NilClass_inspect$9,$NilClass_nil$ques$10,$NilClass_singleton_class$11,$NilClass_to_a$12,$NilClass_to_h$13,$NilClass_to_i$14,$NilClass_to_s$15,$NilClass_to_c$16,$NilClass_rationalize$17,$NilClass_to_r$18,$NilClass_instance_variables$19,self=$klass($base,null,“NilClass”),$nesting=.concat($parent_nesting);self.$$prototype.$$meta=self,function(self,$parent_nesting){var $allocate$1,$nesting=.concat($parent_nesting);Opal.def(self,“$allocate”,$allocate$1=function(){return this.$raise($$($nesting,“TypeError”),“allocator undefined for ”+this.$name())},$allocate$1.$$arity=0),Opal.udef(self,“$new”)}(Opal.get_singleton_class(self),$nesting),Opal.def(self,“$!”,$NilClass_$excl$2=function(){return!0},$NilClass_$excl$2.$$arity=0),Opal.def(self,“$&”,$NilClass_$$3=function(other){return!1},$NilClass_$$3.$$arity=1),Opal.def(self,“$|”,$NilClass_$$4=function(other){return!1!==other&&other!==nil},$NilClass_$$4.$$arity=1),Opal.def(self,“$^”,$NilClass_$$5=function(other){return!1!==other&&other!==nil},$NilClass_$$5.$$arity=1),Opal.def(self,“$==”,$NilClass_$eq_eq$6=function(other){return other===nil},$NilClass_$eq_eq$6.$$arity=1),Opal.def(self,“$dup”,$NilClass_dup$7=function(){return nil},$NilClass_dup$7.$$arity=0),Opal.def(self,“$clone”,$NilClass_clone$8=function($kwargs){if(null==$kwargs)$kwargs=$hash2([],{});else if(!$kwargs.$$is_hash)throw Opal.ArgumentError.$new(“expected kwargs”);return null==$kwargs.$$smap.freeze&&!0,nil},$NilClass_clone$8.$$arity=-1),Opal.def(self,“$inspect”,$NilClass_inspect$9=function(){return“nil”},$NilClass_inspect$9.$$arity=0),Opal.def(self,“$nil?”,$NilClass_nil$ques$10=function(){return!0},$NilClass_nil$ques$10.$$arity=0),Opal.def(self,“$singleton_class”,$NilClass_singleton_class$11=function(){return $$($nesting,“NilClass”)},$NilClass_singleton_class$11.$$arity=0),Opal.def(self,“$to_a”,$NilClass_to_a$12=function(){return[]},$NilClass_to_a$12.$$arity=0),Opal.def(self,“$to_h”,$NilClass_to_h$13=function(){return Opal.hash()},$NilClass_to_h$13.$$arity=0),Opal.def(self,“$to_i”,$NilClass_to_i$14=function(){return 0},$NilClass_to_i$14.$$arity=0),Opal.alias(self,“to_f”,“to_i”),Opal.def(self,“$to_s”,$NilClass_to_s$15=function(){return“”},$NilClass_to_s$15.$$arity=0),Opal.def(self,“$to_c”,$NilClass_to_c$16=function(){return $$($nesting,“Complex”).$new(0,0)},$NilClass_to_c$16.$$arity=0),Opal.def(self,“$rationalize”,$NilClass_rationalize$17=function($a){var $post_args,lhs,rhs;return $post_args=Opal.slice.call(arguments,0,arguments.length),$truthy((lhs=$post_args.$length(),rhs=1,“number”==typeof lhs&&“number”==typeof “”>rhs?rhs(rhs)))&&this.$raise($$($nesting,“ArgumentError”)),this.$Rational(0,1)},$NilClass_rationalize$17.$$arity=-1),Opal.def(self,“$to_r”,$NilClass_to_r$18=function(){return this.$Rational(0,1)},$NilClass_to_r$18.$$arity=0),Opal.def(self,“$instance_variables”,$NilClass_instance_variables$19=function(){return[]},$NilClass_instance_variables$19.$$arity=0)}($nesting,0,$nesting),Opal.const_set($nesting,“NIL”,nil)},Opal.modules=function(Opal){Opal.top;var $nesting=[],nil=Opal.nil,$$=(Opal.const_get_qualified,Opal.const_get_relative),$klass=(Opal.breaker,Opal.slice,Opal.klass),$hash2=Opal.hash2;return Opal.add_stubs(),function($base,$super,$parent_nesting){var $Boolean___id__$2,$Boolean_$excl$3,$Boolean_$$4,$Boolean_$$5,$Boolean_$$6,$Boolean_$eq_eq$7,$Boolean_singleton_class$8,$Boolean_to_s$9,$Boolean_dup$10,$Boolean_clone$11,self=$klass($base,$super,“Boolean”),$nesting=.concat($parent_nesting);Opal.defineProperty(self.$$prototype,“$$is_boolean”,!0),Opal.defineProperty(self.$$prototype,“$$meta”,self),function(self,$parent_nesting){var $allocate$1,$nesting=.concat($parent_nesting);Opal.def(self,“$allocate”,$allocate$1=function(){return this.$raise($$($nesting,“TypeError”),“allocator undefined for ”+this.$name())},$allocate$1.$$arity=0),Opal.udef(self,“$new”)}(Opal.get_singleton_class(self),$nesting),Opal.def(self,“$__id__”,$Boolean___id__$2=function(){return this.valueOf()?2:0},$Boolean___id__$2.$$arity=0),Opal.alias(self,“object_id”,“__id__”),Opal.def(self,“$!”,$Boolean_$excl$3=function(){return 1!=this},$Boolean_$excl$3.$$arity=0),Opal.def(self,“$&”,$Boolean_$$4=function(other){return 1==this&&(!1!==other&&other!==nil)},$Boolean_$$4.$$arity=1),Opal.def(self,“$|”,$Boolean_$$5=function(other){return 1==this||!1!==other&&other!==nil},$Boolean_$$5.$$arity=1),Opal.def(self,“$^”,$Boolean_$$6=function(other){return 1==this?!1===other||other===nil:!1!==other&&other!==nil},$Boolean_$$6.$$arity=1),Opal.def(self,“$==”,$Boolean_$eq_eq$7=function(other){return 1==this===other.valueOf()},$Boolean_$eq_eq$7.$$arity=1),Opal.alias(self,“equal?”,“==”),Opal.alias(self,“eql?”,“==”),Opal.def(self,“$singleton_class”,$Boolean_singleton_class$8=function(){return $$($nesting,“Boolean”)},$Boolean_singleton_class$8.$$arity=0),Opal.def(self,“$to_s”,$Boolean_to_s$9=function(){return 1==this?“true”:“false”},$Boolean_to_s$9.$$arity=0),Opal.def(self,“$dup”,$Boolean_dup$10=function(){return this},$Boolean_dup$10.$$arity=0),Opal.def(self,“$clone”,$Boolean_clone$11=function($kwargs){if(null==$kwargs)$kwargs=$hash2([],{});else if(!$kwargs.$$is_hash)throw Opal.ArgumentError.$new(“expected kwargs”);return null==$kwargs.$$smap.freeze&&!0,this},$Boolean_clone$11.$$arity=-1)}($nesting,Boolean,$nesting),Opal.const_set($nesting,“TrueClass”,$$($nesting,“Boolean”)),Opal.const_set($nesting,“FalseClass”,$$($nesting,“Boolean”)),Opal.const_set($nesting,“TRUE”,!0),Opal.const_set($nesting,“FALSE”,!1)},Opal.modules=function(Opal){function $rb_gt(lhs,rhs){return“number”==typeof lhs&&“number”==typeof “”>rhs?rhs(rhs)}function $rb_lt(lhs,rhs){return“number”==typeof lhs&&“number”==typeof rhs?lhs(rhs)}Opal.top;var $nesting=[],nil=Opal.nil,$$=(Opal.const_get_qualified,Opal.const_get_relative),$module=(Opal.breaker,Opal.slice,Opal.module),$truthy=Opal.truthy;return “,”$<","$===","$raise","$class","$equal?","$<=>“”>Opal.add_stubs(),function($base,$parent_nesting){var $Comparable_$eq_eq$1,$Comparable_$gt$2,$Comparable_$gt_eq$3,$Comparable_$lt$4,$Comparable_$lt_eq$5,$Comparable_between$ques$6,$Comparable_clamp$7,self=$module($base,“Comparable”),$nesting=.concat($parent_nesting),$case=nil;function normalize(what){return Opal.is_a(what,Opal.Integer)?what:$rb_gt(what,0)?1:$rb_lt(what,0)?-1:0}function fail_comparison(lhs,rhs){var class_name;$case=rhs,class_name=nil($case)||(!0)($case)||(!1)($case)||$$($nesting,“Integer”)($case)||$$($nesting,“Float”)($case)?rhs.$inspect():rhs.$$class,self.$raise($$($nesting,“ArgumentError”),“comparison of ”+lhs.$class()+“ with ”class_name“ failed”)}Opal.def(self,“$==”,$Comparable_$eq_eq$1=function(other){var cmp;return!!$truthy(this(“”>other))||this!=“”>Opal.Kernel&&(this.$$comparable?(delete “”>this.$$comparable,!1):!!$truthy(cmp=this(other))&&0==normalize(cmp))},$Comparable_$eq_eq$1.$$arity=1),Opal.def(self,“$>”,$Comparable_$gt$2=function(other){var cmp;return $“”>truthy(cmp=this(other))||fail_comparison(this,other),0<normalize(cmp)},$Comparable_$gt$2.$$arity=1),Opal.def(self,“$>=”,$Comparable_$gt_eq$3=function(other){var cmp;return $“”>truthy(cmp=this(other))||fail_comparison(this,other),0<=normalize(cmp)},$Comparable_$gt_eq$3.$$arity=1),Opal.def(self,“$<”,$Comparable_$lt$4=function(other){var cmp;return $“”>truthy(cmp=this(other))||fail_comparison(this,other),normalize(cmp)<0},$Comparable_$lt$4.$$arity=1),Opal.def(self,“$<=”,$Comparable_$lt_eq$5=function(other){var cmp;return $“”>truthy(cmp=this(other))||fail_comparison(this,other),normalize(cmp)<=0},$Comparable_$lt_eq$5.$$arity=1),Opal.def(self,“$between?”,$Comparable_between$ques$6=function(min,max){return!$rb_lt(this,min)&&!$rb_gt(this,max)},$Comparable_between$ques$6.$$arity=2),Opal.def(self,“$clamp”,$Comparable_clamp$7=function(min,max){var cmp;return “”>cmp=min(max),$truthy(cmp)||fail_comparison(min,max),$truthy(0<normalize(cmp))&&this.$raise($$($nesting,“ArgumentError”),“min argument must be smaller than max ”“>argument”),$truthy(normalize(this(“”>min))<0)?min:$truthy(0(max)))?max:this},$Comparable_clamp$7.$$arity=2)}($nesting,$nesting)},Opal.modules=function(Opal){Opal.top;var $base,$super,$parent_nesting,$nesting=[],nil=Opal.nil,$$=(Opal.const_get_qualified,Opal.const_get_relative),$klass=(Opal.breaker,Opal.slice,Opal.klass),$send=Opal.send,$truthy=Opal.truthy,$gvars=Opal.gvars;return Opal.add_stubs([“$nil?”,“$”,“$raise”,“$escape”,“$options”,“$to_str”,“$new”,“$join”,“$coerce_to!”,“$!”,“$match”,“$coerce_to?”,“$begin”,“$coerce_to”,“$=~”,“$attr_reader”,“$===”,“$inspect”,“$to_a”]),$base=$nesting,$super=$$($nesting,“StandardError”),$parent_nesting=$nesting,.concat($parent_nesting),function($base,$super,$parent_nesting){var $Regexp_$eq_eq$6,$Regexp_$eq_eq_eq$7,$Regexp_$eq_tilde$8,$Regexp_inspect$9,$Regexp_match$10,$Regexp_match$ques$11,$Regexp_$$12,$Regexp_source$13,$Regexp_options$14,$Regexp_casefold$ques$15,self=$klass($base,$super,“Regexp”),$nesting=.concat($parent_nesting);Opal.const_set($nesting,“IGNORECASE”,1),Opal.const_set($nesting,“EXTENDED”,2),Opal.const_set($nesting,“MULTILINE”,4),Opal.defineProperty(self.$$prototype,“$$is_regexp”,!0),function(self,$parent_nesting){var $allocate$1,$escape$2,$last_match$3,$union$4,$new$5,$nesting=.concat($parent_nesting);Opal.def(self,“$allocate”,$allocate$1=function(){var $zuper_ii,$iter=$allocate$1.$$p,allocated=nil,$zuper=nil,$zuper_i=nil;for($iter&&($allocate$1.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper=arguments;return(allocated=$send(this,Opal.find_super_dispatcher(this,“allocate”,$allocate$1,!1),$zuper,$iter)).uninitialized=!0,allocated},$allocate$1.$$arity=0),Opal.def(self,“$escape”,$escape$2=function(string){return Opal.escape_regexp(string)},$escape$2.$$arity=1),Opal.def(self,“$last_match”,$last_match$3=function(n){return null==$gvars&&($gvars=nil),null==n&&(n=nil),$truthy(n())?$gvars:$gvars[“$[]”](n)},$last_match$3.$$arity=-1),Opal.alias(self,“quote”,“escape”),Opal.def(self,“$union”,$union$4=function($a){var parts,is_first_part_array,quoted_validated,part,options,each_part_options;if(0==(parts=Opal.slice.call(arguments,0,arguments.length)).length)return/(?!)/;if(1==parts.length&&parts.$$is_regexp)return parts;is_first_part_array=parts.$$is_array,1<parts.length&&is_first_part_array&&this.$raise($$($nesting,“TypeError”),“no implicit conversion of Array into String”),is_first_part_array&&(parts=parts),options=void 0,quoted_validated=[];for(var i=0;i).$$is_string?quoted_validated.push(this.$escape(part)):part.$$is_regexp?(each_part_options=part.$options(),null!=options&&options!=each_part_options&&this.$raise($$($nesting,“TypeError”),“All expressions must use the same options”),options=each_part_options,quoted_validated.push(“(”part.source“)”)):quoted_validated.push(this.$escape(part.$to_str()));return this.$new(quoted_validated.$join(“|”),options)},$union$4.$$arity=-1),Opal.def(self,“$new”,$new$5=function(regexp,options){if(regexp.$$is_regexp)return new RegExp(regexp);if(“\”===(regexp=$$($nesting,“Opal”)(regexp,$$($nesting,“String”),“to_str”)).charAt(regexp.length-1)&&“\”!==regexp.charAt(regexp.length-2)&&this.$raise($$($nesting,“RegexpError”),“too short escape sequence: /”regexp“/”),void 0===options||options())return new RegExp(regexp);if(options.$$is_number){var temp=“”;$$($nesting,“IGNORECASE”)&options&&(temp+=“i”),$$($nesting,“MULTILINE”)&options&&(temp+=“m”),options=temp}else options=“i”;return new RegExp(regexp,options)},$new$5.$$arity=-2)}(Opal.get_singleton_class(self),$nesting),Opal.def(self,“$==”,$Regexp_$eq_eq$6=function(other){return other instanceof RegExp&&this.toString()===other.toString()},$Regexp_$eq_eq$6.$$arity=1),Opal.def(self,“$===”,$Regexp_$eq_eq_eq$7=function(string){return this.$match($$($nesting,“Opal”)(string,$$($nesting,“String”),“to_str”))!==nil},$Regexp_$eq_eq_eq$7.$$arity=1),Opal.def(self,“$=~”,$Regexp_$eq_tilde$8=function(string){var $a;return null==$gvars&&($gvars=nil),$truthy($a=this.$match(string))?$gvars.$begin(0):$a},$Regexp_$eq_tilde$8.$$arity=1),Opal.alias(self,“eql?”,“==”),Opal.def(self,“$inspect”,$Regexp_inspect$9=function(){var value=this.toString(),matches=/^/(.*)/(*)$/.exec(value);if(matches){for(var regexp_pattern=matches,regexp_flags=matches,chars=regexp_pattern.split(“”),chars_length=chars.length,char_escaped=!1,regexp_pattern_escaped=“”,i=0;i<chars_length;i++){var current_char=chars;char_escaped||“/”!=current_char||(regexp_pattern_escaped=regexp_pattern_escaped.concat(“\”)),regexp_pattern_escaped=regexp_pattern_escaped.concat(current_char),char_escaped=“\”==current_char&&!char_escaped}return“/”regexp_pattern_escaped“/”+regexp_flags}return value},$Regexp_inspect$9.$$arity=0),Opal.def(self,“$match”,$Regexp_match$10=function(string,pos){var $iter=$Regexp_match$10.$$p,block=$iter||nil;if(null==$gvars&&($gvars=nil),$iter&&($Regexp_match$10.$$p=null),$iter&&($Regexp_match$10.$$p=null),this.uninitialized&&this.$raise($$($nesting,“TypeError”),“uninitialized Regexp”),void 0===pos){if(string===nil)return $gvars=nil;var m=this.exec($$($nesting,“Opal”).$coerce_to(string,$$($nesting,“String”),“to_str”));return m?($gvars=$$($nesting,“MatchData”).$new(this,m),block===nil?$gvars:Opal.yield1(block,$gvars)):$gvars=nil}if(pos=$$($nesting,“Opal”).$coerce_to(pos,$$($nesting,“Integer”),“to_int”),string===nil)return $gvars=nil;if(string=$$($nesting,“Opal”).$coerce_to(string,$$($nesting,“String”),“to_str”),pos<0&&(pos+=string.length)<0)return $gvars=nil;for(var md,re=Opal.global_regexp(this);;){if(null===(md=re.exec(string)))return $gvars=nil;if(md.index>=pos)return $gvars=$$($nesting,“MatchData”).$new(re,md),block===nil?$gvars:Opal.yield1(block,$gvars);re.lastIndex=md.index+1}},$Regexp_match$10.$$arity=-2),Opal.def(self,“$match?”,$Regexp_match$ques$11=function(string,pos){var md;return this.uninitialized&&this.$raise($$($nesting,“TypeError”),“uninitialized Regexp”),void 0===pos?string!==nil&&this.test($$($nesting,“Opal”).$coerce_to(string,$$($nesting,“String”),“to_str”)):(pos=$$($nesting,“Opal”).$coerce_to(pos,$$($nesting,“Integer”),“to_int”),string!==nil&&(string=$$($nesting,“Opal”).$coerce_to(string,$$($nesting,“String”),“to_str”),!(pos<0&&(pos+=string.length)<0)&&!(null===(md=Opal.global_regexp(this).exec(string))||md.index<pos)))},$Regexp_match$ques$11.$$arity=-2),Opal.def(self,“$~”,$Regexp_$$12=function(){return null==$gvars._&&($gvars._=nil),this($gvars._)},$Regexp_$$12.$$arity=0),Opal.def(self,“$source”,$Regexp_source$13=function(){return this.source},$Regexp_source$13.$$arity=0),Opal.def(self,“$options”,$Regexp_options$14=function(){this.uninitialized&&this.$raise($$($nesting,“TypeError”),“uninitialized Regexp”);var result=0;return this.multiline&&(result|=$$($nesting,“MULTILINE”)),this.ignoreCase&&(result|=$$($nesting,“IGNORECASE”)),result},$Regexp_options$14.$$arity=0),Opal.def(self,“$casefold?”,$Regexp_casefold$ques$15=function(){return this.ignoreCase},$Regexp_casefold$ques$15.$$arity=0),Opal.alias(self,“to_s”,“source”)}($nesting,RegExp,$nesting),function($base,$super,$parent_nesting){var $MatchData_initialize$16,$MatchData_$$$17,$MatchData_offset$18,$MatchData_$eq_eq$19,$MatchData_begin$20,$MatchData_end$21,$MatchData_captures$22,$MatchData_inspect$23,$MatchData_length$24,$MatchData_to_a$25,$MatchData_to_s$26,$MatchData_values_at$27,self=$klass($base,null,“MatchData”),$nesting=.concat($parent_nesting);return self.$$prototype.matches=nil,self.$attr_reader(“post_match”,“pre_match”,“regexp”,“string”),Opal.def(self,“$initialize”,$MatchData_initialize$16=function(regexp,match_groups){($gvars=this).regexp=regexp,this.begin=match_groups.index,this.string=match_groups.input,this.pre_match=match_groups.input.slice(0,match_groups.index),this.post_match=match_groups.input.slice(match_groups.index+match_groups.length),this.matches=[];for(var i=0,length=match_groups.length;i<length;i++){var group=match_groups;null==group?this.matches.push(nil):this.matches.push(group)}},$MatchData_initialize$16.$$arity=2),Opal.def(self,“$[]”,$MatchData_$$$17=function($a){var args;return args=Opal.slice.call(arguments,0,arguments.length),$send(this.matches,“[]”,Opal.to_a(args))},$MatchData_$$$17.$$arity=-1),Opal.def(self,“$offset”,$MatchData_offset$18=function(n){return 0!==n&&this.$raise($$($nesting,“ArgumentError”),“MatchData#offset only supports 0th element”),[this.begin,this.begin+this.matches.length]},$MatchData_offset$18.$$arity=1),Opal.def(self,“$==”,$MatchData_$eq_eq$19=function(other){var $a,$b,$c,$d;return!!$truthy($$($nesting,“MatchData”)(other))&&($truthy($a=$truthy($b=$truthy($c=$truthy($d=this.string==other.string)?this.regexp.toString()==other.regexp.toString():$d)?this.pre_match==other.pre_match:$c)?this.post_match==other.post_match:$b)?this.begin==other.begin:$a)},$MatchData_$eq_eq$19.$$arity=1),Opal.alias(self,“eql?”,“==”),Opal.def(self,“$begin”,$MatchData_begin$20=function(n){return 0!==n&&this.$raise($$($nesting,“ArgumentError”),“MatchData#begin only supports 0th element”),this.begin},$MatchData_begin$20.$$arity=1),Opal.def(self,“$end”,$MatchData_end$21=function(n){return 0!==n&&this.$raise($$($nesting,“ArgumentError”),“MatchData#end only supports 0th element”),this.begin+this.matches.length},$MatchData_end$21.$$arity=1),Opal.def(self,“$captures”,$MatchData_captures$22=function(){return this.matches.slice(1)},$MatchData_captures$22.$$arity=0),Opal.def(self,“$inspect”,$MatchData_inspect$23=function(){for(var str=“#<MatchData ”+this.matches.$inspect(),i=1,length=this.matches.length;i<length;i++)str+=“ ”i“:”+this.matches.$inspect();return str+“>”},$MatchData_inspect$23.$$arity=0),Opal.def(self,“$length”,$MatchData_length$24=function(){return this.matches.length},$MatchData_length$24.$$arity=0),Opal.alias(self,“size”,“length”),Opal.def(self,“$to_a”,$MatchData_to_a$25=function(){return this.matches},$MatchData_to_a$25.$$arity=0),Opal.def(self,“$to_s”,$MatchData_to_s$26=function(){return this.matches},$MatchData_to_s$26.$$arity=0),Opal.def(self,“$values_at”,$MatchData_values_at$27=function($a){var args;args=Opal.slice.call(arguments,0,arguments.length);var i,a,index,values=[];for(i=0;i.$$is_range&&((a=args.$to_a()).unshift(i,1),Array.prototype.splice.apply(args,a)),(index=$$($nesting,“Opal”)(args,$$($nesting,“Integer”),“to_int”))<0&&(index+=this.matches.length)<0?values.push(nil):values.push(this.matches);return values},$MatchData_values_at$27.$$arity=-1),nil&&“values_at”}($nesting,0,$nesting)},Opal.modules=function(Opal){function $rb_divide(lhs,rhs){return“number”==typeof lhs&&“number”==typeof rhs?lhs/rhs:lhs(rhs)}function $rb_plus(lhs,rhs){return“number”==typeof lhs&&“number”==typeof rhs?lhs+rhs:lhs(rhs)}var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.const_get_qualified,$$=Opal.const_get_relative,$klass=(Opal.breaker,Opal.slice,Opal.klass),$truthy=Opal.truthy,$send=Opal.send,$gvars=Opal.gvars;return Opal.add_stubs([“$require”,“$include”,“$coerce_to?”,“$coerce_to”,“$raise”,“$===”,“$format”,“$to_s”,“$respond_to?”,“$to_str”,“$<=>”,“$==”,“$=~”,“$new”,“$force_encoding”,“$casecmp”,“$empty?”,“$ljust”,“$ceil”,“$/”,“$+”,“$rjust”,“$floor”,“$to_a”,“$each_char”,“$to_proc”,“$coerce_to!”,“$copy_singleton_methods”,“$initialize_clone”,“$initialize_dup”,“$enum_for”,“$size”,“$chomp”,“$”,“$to_i”,“$each_line”,“$encoding”,“$class”,“$match”,“$match?”,“$captures”,“$proc”,“$succ”,“$escape”]),self.$require(“corelib/comparable”),self.$require(“corelib/regexp”),function($base,$super,$parent_nesting){var $String___id__$1,$String_try_convert$2,$String_new$3,$String_initialize$4,$String_$percent$5,$String_$$6,$String_$plus$7,$String_$lt_eq_gt$8,$String_$eq_eq$9,$String_$eq_tilde$10,$String_$$$11,$String_b$12,$String_capitalize$13,$String_casecmp$14,$String_casecmp$ques$15,$String_center$16,$String_chars$17,$String_chomp$18,$String_chop$19,$String_chr$20,$String_clone$21,$String_dup$22,$String_count$23,$String_delete$24,$String_delete_prefix$25,$String_delete_suffix$26,$String_downcase$27,$String_each_char$28,$String_each_line$30,$String_empty$ques$31,$String_end_with$ques$32,$String_gsub$33,$String_hash$34,$String_hex$35,$String_include$ques$36,$String_index$37,$String_inspect$38,$String_intern$39,$String_lines$40,$String_length$41,$String_ljust$42,$String_lstrip$43,$String_ascii_only$ques$44,$String_match$45,$String_match$ques$46,$String_next$47,$String_oct$48,$String_ord$49,$String_partition$50,$String_reverse$51,$String_rindex$52,$String_rjust$53,$String_rpartition$54,$String_rstrip$55,$String_scan$56,$String_split$57,$String_squeeze$58,$String_start_with$ques$59,$String_strip$60,$String_sub$61,$String_sum$62,$String_swapcase$63,$String_to_f$64,$String_to_i$65,$String_to_proc$66,$String_to_s$68,$String_tr$69,$String_tr_s$70,$String_upcase$71,$String_upto$72,$String_instance_variables$73,$String__load$74,$String_unicode_normalize$75,$String_unicode_normalized$ques$76,$String_unpack$77,$String_unpack1$78,self=$klass($base,$super,“String”),$nesting=.concat($parent_nesting);function char_class_from_char_sets(sets){function explode_sequences_in_character_set(set){var i,curr_char,skip_next_dash,char_code_from,char_code_upto,char_code,result=“”,len=set.length;for(i=0;i<len;i++)if(“-”===(curr_char=set.charAt(i))&&0<i&&i<len-1&&!skip_next_dash){for(char_code_from=set.charCodeAt(i-1),(char_code_upto=set.charCodeAt(i+1))<char_code_from&&self.$raise($$($nesting,“ArgumentError”),'invalid range “'char_code_from”-“char_code_upto'” in string transliteration'),char_code=char_code_from+1;char_code<char_code_upto+1;char_code++)result+=String.fromCharCode(char_code);skip_next_dash=!0,i++}else skip_next_dash=“\”===curr_char,result+=curr_char;return result}function intersection(setA,setB){if(0===setA.length)return setB;var i,chr,result=“”,len=setA.length;for(i=0;i<len;i++)chr=setA.charAt(i),-1!==setB.indexOf(chr)&&(result+=chr);return result}var i,len,set,neg,chr,tmp,pos_intersection=“”,neg_intersection=“”;for(i=0,len=sets.length;i,$$($nesting,“String”),“to_str”)).charAt(0)&&1<set.length)?set.slice(1):set),neg?neg_intersection=intersection(neg_intersection,set):pos_intersection=intersection(pos_intersection,set);if(0<pos_intersection.length&&0<neg_intersection.length){for(tmp=“”,i=0,len=pos_intersection.length;i<len;i++)chr=pos_intersection.charAt(i),-1===neg_intersection.indexOf(chr)&&(tmp+=chr);pos_intersection=tmp,neg_intersection=“”}return 0“:0”:null}self.$include($$($nesting,“Comparable”)),Opal.defineProperty(self.$$prototype,“$$is_string”,!0),Opal.defineProperty(self.$$prototype,“$$cast”,function(string){var klass=this.$$class;return klass.$$constructor===String?string:new klass.$$constructor(string)}),Opal.def(self,“$__id__”,$String___id__$1=function(){return this.toString()},$String___id__$1.$$arity=0),Opal.alias(self,“object_id”,“__id__”),Opal.defs(self,“$try_convert”,$String_try_convert$2=function(what){return $$($nesting,“Opal”)(what,$$($nesting,“String”),“to_str”)},$String_try_convert$2.$$arity=1),Opal.defs(self,“$new”,$String_new$3=function(str){return null==str&&(str=“”),str=$$($nesting,“Opal”).$coerce_to(str,$$($nesting,“String”),“to_str”),new this.$$constructor(str)},$String_new$3.$$arity=-1),Opal.def(self,“$initialize”,$String_initialize$4=function(str){return void 0===str?this:this.$raise($$($nesting,“NotImplementedError”),“Mutable strings are not supported in Opal.”)},$String_initialize$4.$$arity=-1),Opal.def(self,“$%”,$String_$percent$5=function(data){var self=this;return $truthy($$($nesting,“Array”)(data))?$send(self,“format”,.concat(Opal.to_a(data))):self.$format(self,data)},$String_$percent$5.$$arity=1),Opal.def(self,“$*”,$String_$$6=function(count){if((count=$$($nesting,“Opal”).$coerce_to(count,$$($nesting,“Integer”),“to_int”))<0&&this.$raise($$($nesting,“ArgumentError”),“negative argument”),0===count)return this.$$cast(“”);var result=“”,string=this.toString();for(string.length*count>=1<<28&&this.$raise($$($nesting,“RangeError”),“multiply count must not overflow maximum string size”);1==(1&count)&&(result+=string),0!==(count>>>=1);)string+=string;return this.$$cast(result)},$String_$$6.$$arity=1),Opal.def(self,“$+”,$String_$plus$7=function(other){return this+(other=$$($nesting,“Opal”).$coerce_to(other,$$($nesting,“String”),“to_str”)).$to_s()},$String_$plus$7.$$arity=1),Opal.def(self,“$<=>”,$String_$lt_eq_gt$8=function(other){if($truthy(other(“to_str”)))return(other=other.$to_str().$to_s())<this?1:this<other?-1:0;var “”>cmp=other(this);return cmp===nil?nil:0<cmp?-1:cmp<0?1:0},$String_$lt_eq_gt$8.$$arity=1),Opal.def(self,“$==”,$String_$eq_eq$9=function(other){return other.$$is_string?this.toString()===other.toString():!!$$($nesting,“Opal”)(other,“to_str”)&&other(this)},$String_$eq_eq$9.$$arity=1),Opal.alias(self,“eql?”,“==”),Opal.alias(self,“===”,“==”),Opal.def(self,“$=~”,$String_$eq_tilde$10=function(other){return other.$$is_string&&this.$raise($$($nesting,“TypeError”),“type mismatch: String given”),other(this)},$String_$eq_tilde$10.$$arity=1),Opal.def(self,“$[]”,$String_$$$11=function(index,length){var exclude,size=this.length;if(index.$$is_range)return exclude=index.excl,length=$$($nesting,“Opal”).$coerce_to(index.end,$$($nesting,“Integer”),“to_int”),index=$$($nesting,“Opal”).$coerce_to(index.begin,$$($nesting,“Integer”),“to_int”),Math.abs(index)>size?nil:(index<0&&(index+=size),length<0&&(length+=size),exclude||(length+=1),(length-=index)<0&&(length=0),this.$$cast(this.substr(index,length)));if(index.$$is_string)return null!=length&&this.$raise($$($nesting,“TypeError”)),-1!==this.indexOf(index)?this.$$cast(index):nil;if(index.$$is_regexp){var match=this.match(index);return null===match?$gvars=nil:($gvars=$$($nesting,“MatchData”).$new(index,match),null==length?this.$$cast(match):(length=$$($nesting,“Opal”).$coerce_to(length,$$($nesting,“Integer”),“to_int”))<0&&-length):0<=length&&length):nil)}return(index=$$($nesting,“Opal”).$coerce_to(index,$$($nesting,“Integer”),“to_int”))<0&&(index+=size),null==length?size<=index||index<0?nil:this.$$cast(this.substr(index,1)):(length=$$($nesting,“Opal”).$coerce_to(length,$$($nesting,“Integer”),“to_int”))<0?nil:size<index||index<0?nil:this.$$cast(this.substr(index,length))},$String_$$$11.$$arity=-2),Opal.alias(self,“byteslice”,“[]”),Opal.def(self,“$b”,$String_b$12=function(){return this.$force_encoding(“binary”)},$String_b$12.$$arity=0),Opal.def(self,“$capitalize”,$String_capitalize$13=function(){return this.$$cast(this.charAt(0).toUpperCase()+this.substr(1).toLowerCase())},$String_capitalize$13.$$arity=0),Opal.def(self,“$casecmp”,$String_casecmp$14=function(other){var self=this;if(!$truthy(other(“to_str”)))return nil;other=$$($nesting,“Opal”).$coerce_to(other,$$($nesting,“String”),“to_str”).$to_s();var ascii_only=/^*$/;return “”>ascii_only.test(self)&&ascii_only.test(other)&&(self=self.toLowerCase(),other=other.toLowerCase()),self(other)},$String_casecmp$14.$$arity=1),Opal.def(self,“$casecmp?”,$String_casecmp$ques$15=function(other){var cmp=this.$casecmp(other);return cmp===nil?nil:0===cmp},$String_casecmp$ques$15.$$arity=1),Opal.def(self,“$center”,$String_center$16=function(width,padstr){if(null==padstr&&(padstr=“ ”),width=$$($nesting,“Opal”).$coerce_to(width,$$($nesting,“Integer”),“to_int”),padstr=$$($nesting,“Opal”).$coerce_to(padstr,$$($nesting,“String”),“to_str”).$to_s(),$truthy(padstr())&&this.$raise($$($nesting,“ArgumentError”),“zero width padding”),$truthy(width<=this.length))return this;var ljustified=this.$ljust($rb_divide($rb_plus(width,this.length),2).$ceil(),padstr),rjustified=this.$rjust($rb_divide($rb_plus(width,this.length),2).$floor(),padstr);return this.$$cast(rjustified+ljustified.slice(this.length))},$String_center$16.$$arity=-2),Opal.def(self,“$chars”,$String_chars$17=function(){var $iter=$String_chars$17.$$p,block=$iter||nil;return $iter&&($String_chars$17.$$p=null),$iter&&($String_chars$17.$$p=null),$truthy(block)?$send(this,“each_char”,[],block.$to_proc()):this.$each_char().$to_a()},$String_chars$17.$$arity=0),Opal.def(self,“$chomp”,$String_chomp$18=function(separator){var result;if(null==$gvars&&($gvars=nil),null==separator&&(separator=$gvars),$truthy(separator===nil||0===this.length))return this;if(“n”===(separator=$$($nesting,“Opal”)(separator,$$($nesting,“String”),“to_str”).$to_s()))result=this.replace(/r?n?$/,“”);else if(“”===separator)result=this.replace(/(r?n)+$/,“”);else if(this.length>=separator.length){this.substr(this.length-separator.length,separator.length)===separator&&(result=this.substr(0,this.length-separator.length))}return null!=result?this.$$cast(result):this},$String_chomp$18.$$arity=-1),Opal.def(self,“$chop”,$String_chop$19=function(){var result,length=this.length;return result=length<=1?“”:“n”===this.charAt(length-1)&&“r”===this.charAt(length-2)?this.substr(0,length-2):this.substr(0,length-1),this.$$cast(result)},$String_chop$19.$$arity=0),Opal.def(self,“$chr”,$String_chr$20=function(){return this.charAt(0)},$String_chr$20.$$arity=0),Opal.def(self,“$clone”,$String_clone$21=function(){var copy=nil;return(copy=this.slice()).$copy_singleton_methods(this),copy.$initialize_clone(this),copy},$String_clone$21.$$arity=0),Opal.def(self,“$dup”,$String_dup$22=function(){var copy=nil;return(copy=this.slice()).$initialize_dup(this),copy},$String_dup$22.$$arity=0),Opal.def(self,“$count”,$String_count$23=function($a){var sets;0===(sets=Opal.slice.call(arguments,0,arguments.length)).length&&this.$raise($$($nesting,“ArgumentError”),“ArgumentError: wrong number of arguments (0 for 1+)”);var char_class=char_class_from_char_sets(sets);return null===char_class?0:this.length-this.replace(new RegExp(char_class,“g”),“”).length},$String_count$23.$$arity=-1),Opal.def(self,“$delete”,$String_delete$24=function($a){var sets;0===(sets=Opal.slice.call(arguments,0,arguments.length)).length&&this.$raise($$($nesting,“ArgumentError”),“ArgumentError: wrong number of arguments (0 for 1+)”);var char_class=char_class_from_char_sets(sets);return null===char_class?this:this.$$cast(this.replace(new RegExp(char_class,“g”),“”))},$String_delete$24.$$arity=-1),Opal.def(self,“$delete_prefix”,$String_delete_prefix$25=function(prefix){return prefix.$$is_string||(prefix=$$($nesting,“Opal”).$coerce_to(prefix,$$($nesting,“String”),“to_str”)),this.slice(0,prefix.length)===prefix?this.$$cast(this.slice(prefix.length)):this},$String_delete_prefix$25.$$arity=1),Opal.def(self,“$delete_suffix”,$String_delete_suffix$26=function(suffix){return suffix.$$is_string||(suffix=$$($nesting,“Opal”).$coerce_to(suffix,$$($nesting,“String”),“to_str”)),this.slice(this.length-suffix.length)===suffix?this.$$cast(this.slice(0,this.length-suffix.length)):this},$String_delete_suffix$26.$$arity=1),Opal.def(self,“$downcase”,$String_downcase$27=function(){return this.$$cast(this.toLowerCase())},$String_downcase$27.$$arity=0),Opal.def(self,“$each_char”,$String_each_char$28=function(){var $$29,$iter=$String_each_char$28.$$p,block=$iter||nil;if($iter&&($String_each_char$28.$$p=null),$iter&&($String_each_char$28.$$p=null),block===nil)return $send(this,“enum_for”,,(($$29=function(){return($$29.$$s||this).$size()}).$$s=this,$$29.$$arity=0,$$29));for(var i=0,length=this.length;i<length;i++)Opal.yield1(block,this.charAt(i));return this},$String_each_char$28.$$arity=0),Opal.def(self,“$each_line”,$String_each_line$30=function(separator){var a,i,n,length,chomped,trailing,splitted,$iter=$String_each_line$30.$$p,block=$iter||nil;if(null==$gvars&&($gvars=nil),$iter&&($String_each_line$30.$$p=null),$iter&&($String_each_line$30.$$p=null),null==separator&&(separator=$gvars),block===nil)return this.$enum_for(“each_line”,separator);if(separator===nil)return Opal.yield1(block,this),this;if(0===(separator=$$($nesting,“Opal”).$coerce_to(separator,$$($nesting,“String”),“to_str”)).length){for(i=0,n=(a=this.split(/(n{2,})/)).length;i||a){var value=(a||“”)+(a||“”);Opal.yield1(block,this.$$cast(value))}return this}for(chomped=this.$chomp(separator),trailing=this.length!=chomped.length,i=0,length=(splitted=chomped.split(separator)).length;i+separator)):Opal.yield1(block,this.$$cast(splitted));return this},$String_each_line$30.$$arity=-1),Opal.def(self,“$empty?”,$String_empty$ques$31=function(){return 0===this.length},$String_empty$ques$31.$$arity=0),Opal.def(self,“$end_with?”,$String_end_with$ques$32=function($a){for(var suffixes,i=0,length=(suffixes=Opal.slice.call(arguments,0,arguments.length)).length;i<length;i++){var suffix=$$($nesting,“Opal”).$coerce_to(suffixes,$$($nesting,“String”),“to_str”).$to_s();if(this.length>=suffix.length&&this.substr(this.length-suffix.length,suffix.length)==suffix)return!0}return!1},$String_end_with$ques$32.$$arity=-1),Opal.alias(self,“equal?”,“===”),Opal.def(self,“$gsub”,$String_gsub$33=function(pattern,replacement){var $iter=$String_gsub$33.$$p,block=$iter||nil,self=this;if($iter&&($String_gsub$33.$$p=null),$iter&&($String_gsub$33.$$p=null),void 0===replacement&&block===nil)return self.$enum_for(“gsub”,pattern);var match,_replacement,lastIndex,result=“”,match_data=nil,index=0;for(pattern=pattern.$$is_regexp?Opal.global_multiline_regexp(pattern):(pattern=$$($nesting,“Opal”).$coerce_to(pattern,$$($nesting,“String”),“to_str”),new RegExp(pattern.replace(/[.*+?^${}()|\]/g,“\$&”),“gm”));;){if(null===(match=pattern.exec(self))){$gvars=nil,result+=self.slice(index);break}match_data=$$($nesting,“MatchData”).$new(pattern,match),void 0===replacement?(lastIndex=pattern.lastIndex,_replacement=block(match),pattern.lastIndex=lastIndex):_replacement=replacement.$$is_hash?replacement[“$”](match).$to_s():(replacement.$$is_string||(replacement=$$($nesting,“Opal”).$coerce_to(replacement,$$($nesting,“String”),“to_str”)),replacement.replace(/(+)([0-9+&`'])/g,function(original,slashes,command){if(slashes.length%2==0)return original;switch(command){case“+”:for(var i=match.length-1;0<i;i–)if(void 0!==match)return slashes.slice(1)+match;return“”;case“&”:return slashes.slice(1)+match;case“`”:return slashes.slice(1)+self.slice(0,match.index);case“'”:return slashes.slice(1)+self.slice(match.index+match.length);default:return slashes.slice(1)+(match||“”)}}).replace(/\\/g,“\”)),pattern.lastIndex===match.index?(result+=_replacement+self.slice(index,match.index+1),pattern.lastIndex+=1):result+=self.slice(index,match.index)+_replacement,index=pattern.lastIndex}return $gvars=match_data,self.$$cast(result)},$String_gsub$33.$$arity=-2),Opal.def(self,“$hash”,$String_hash$34=function(){return this.toString()},$String_hash$34.$$arity=0),Opal.def(self,“$hex”,$String_hex$35=function(){return this.$to_i(16)},$String_hex$35.$$arity=0),Opal.def(self,“$include?”,$String_include$ques$36=function(other){return other.$$is_string||(other=$$($nesting,“Opal”).$coerce_to(other,$$($nesting,“String”),“to_str”)),-1!==this.indexOf(other)},$String_include$ques$36.$$arity=1),Opal.def(self,“$index”,$String_index$37=function(search,offset){var index,match,regex;if(void 0===offset)offset=0;else if((offset=$$($nesting,“Opal”).$coerce_to(offset,$$($nesting,“Integer”),“to_int”))<0&&(offset+=this.length)<0)return nil;if(search.$$is_regexp)for(regex=Opal.global_multiline_regexp(search);;){if(null===(match=regex.exec(this))){$gvars=nil,index=-1;break}if(match.index>=offset){$gvars=$$($nesting,“MatchData”).$new(regex,match),index=match.index;break}regex.lastIndex=match.index+1}else index=0===(search=$$($nesting,“Opal”).$coerce_to(search,$$($nesting,“String”),“to_str”)).length&&offset>this.length?-1:this.indexOf(search,offset);return-1===index?nil:index},$String_index$37.$$arity=-2),Opal.def(self,“$inspect”,$String_inspect$38=function(){var meta={“”:“\a”,“”:“\e”,“b”:“\b”,“t”:“\t”,“n”:“\n”,“f”:“\f”,“r”:“\r”,“v”:“\v”,'“':'\”',“\”:“\\”};return’“‘+this.replace(//g,function(chr){return meta||”\u“+(”0000“+chr.charCodeAt(0).toString(16).toUpperCase()).slice(-4)}).replace(/#/g,”\$&“)+'”'},$String_inspect$38.$$arity=0),Opal.def(self,“$intern”,$String_intern$39=function(){return this.toString()},$String_intern$39.$$arity=0),Opal.def(self,“$lines”,$String_lines$40=function(separator){var $iter=$String_lines$40.$$p,block=$iter||nil,e=nil;return null==$gvars&&($gvars=nil),$iter&&($String_lines$40.$$p=null),$iter&&($String_lines$40.$$p=null),null==separator&&(separator=$gvars),e=$send(this,“each_line”,,block.$to_proc()),$truthy(block)?this:e.$to_a()},$String_lines$40.$$arity=-1),Opal.def(self,“$length”,$String_length$41=function(){return this.length},$String_length$41.$$arity=0),Opal.def(self,“$ljust”,$String_ljust$42=function(width,padstr){if(null==padstr&&(padstr=“ ”),width=$$($nesting,“Opal”).$coerce_to(width,$$($nesting,“Integer”),“to_int”),padstr=$$($nesting,“Opal”).$coerce_to(padstr,$$($nesting,“String”),“to_str”).$to_s(),$truthy(padstr())&&this.$raise($$($nesting,“ArgumentError”),“zero width padding”),$truthy(width<=this.length))return this;var index=-1,result=“”;for(width-=this.length;++index<width;)result+=padstr;return this.$$cast(this+result.slice(0,width))},$String_ljust$42.$$arity=-2),Opal.def(self,“$lstrip”,$String_lstrip$43=function(){return this.replace(/^s*/,“”)},$String_lstrip$43.$$arity=0),Opal.def(self,“$ascii_only?”,$String_ascii_only$ques$44=function(){return!this.$encoding()($$$($$($nesting,“Encoding”),“UTF_16BE”))&&/^*$/.test(this)},$String_ascii_only$ques$44.$$arity=0),Opal.def(self,“$match”,$String_match$45=function(pattern,pos){var $a,$iter=$String_match$45.$$p,block=$iter||nil;return $iter&&($String_match$45.$$p=null),$iter&&($String_match$45.$$p=null),$truthy($truthy($a=$$($nesting,“String”)(pattern))?$a:pattern(“to_str”))&&(pattern=$$($nesting,“Regexp”).$new(pattern.$to_str())),$truthy($$($nesting,“Regexp”)(pattern))||this.$raise($$($nesting,“TypeError”),“wrong argument type ”+pattern.$class()+“ (expected Regexp)”),$send(pattern,“match”,,block.$to_proc())},$String_match$45.$$arity=-2),Opal.def(self,“$match?”,$String_match$ques$46=function(pattern,pos){var $a;return $truthy($truthy($a=$$($nesting,“String”)(pattern))?$a:pattern(“to_str”))&&(pattern=$$($nesting,“Regexp”).$new(pattern.$to_str())),$truthy($$($nesting,“Regexp”)(pattern))||this.$raise($$($nesting,“TypeError”),“wrong argument type ”+pattern.$class()+“ (expected Regexp)”),pattern(this,pos)},$String_match$ques$46.$$arity=-2),Opal.def(self,“$next”,$String_next$47=function(){var i=this.length;if(0===i)return this.$$cast(“”);for(var code,result=this,first_alphanum_char_index=this.search(//),carry=!1;i–;){if(48<=(code=this.charCodeAt(i))&&code<=57||65<=code&&code<=90||97<=code&&code<=122)switch(code){case 57:carry=!0,code=48;break;case 90:carry=!0,code=65;break;case 122:carry=!0,code=97;break;default:carry=!1,code+=1}else-1===first_alphanum_char_index?255===code?(carry=!0,code=0):(carry=!1,code+=1):carry=!0;if(result=result.slice(0,i)+String.fromCharCode(code)+result.slice(i+1),carry&&(0===i||i===first_alphanum_char_index)){switch(code){case 65:case 97:break;default:code+=1}result=0===i?String.fromCharCode(code)+result:result.slice(0,i)+String.fromCharCode(code)+result.slice(i),carry=!1}if(!carry)break}return this.$$cast(result)},$String_next$47.$$arity=0),Opal.def(self,“$oct”,$String_oct$48=function(){var result,string=this,radix=8;return/^s*_/.test(string)?0:(string=string.replace(/^(s*?)(0?)(.+)$/i,function(original,head,flag,tail){switch(tail.charAt(0)){case“+”:case“-”:return original;case“0”:if(“x”===tail.charAt(1)&&“0x”===flag)return original}switch(flag){case“0b”:radix=2;break;case“0”:case“0o”:radix=8;break;case“0d”:radix=10;break;case“0x”:radix=16}return head+tail}),result=parseInt(string.replace(/_(?!_)/g,“”),radix),isNaN(result)?0:result)},$String_oct$48.$$arity=0),Opal.def(self,“$ord”,$String_ord$49=function(){return this.charCodeAt(0)},$String_ord$49.$$arity=0),Opal.def(self,“$partition”,$String_partition$50=function(sep){var i,m;return-1===(i=sep.$$is_regexp?null===(m=sep.exec(this))?-1:($$($nesting,“MatchData”).$new(sep,m),sep=m,m.index):(sep=$$($nesting,“Opal”).$coerce_to(sep,$$($nesting,“String”),“to_str”),this.indexOf(sep)))?:[this.slice(0,i),this.slice(i,i+sep.length),this.slice(i+sep.length)]},$String_partition$50.$$arity=1),Opal.def(self,“$reverse”,$String_reverse$51=function(){return this.split(“”).reverse().join(“”)},$String_reverse$51.$$arity=0),Opal.def(self,“$rindex”,$String_rindex$52=function(search,offset){var i,m,r,_m;if(void 0===offset)offset=this.length;else if((offset=$$($nesting,“Opal”).$coerce_to(offset,$$($nesting,“Integer”),“to_int”))<0&&(offset+=this.length)<0)return nil;if(search.$$is_regexp){for(m=null,r=Opal.global_multiline_regexp(search);!(null===(_m=r.exec(this))||_m.index>offset);)m=_m,r.lastIndex=m.index+1;i=null===m?($gvars=nil,-1):($$($nesting,“MatchData”).$new(r,m),m.index)}else search=$$($nesting,“Opal”).$coerce_to(search,$$($nesting,“String”),“to_str”),i=this.lastIndexOf(search,offset);return-1===i?nil:i},$String_rindex$52.$$arity=-2),Opal.def(self,“$rjust”,$String_rjust$53=function(width,padstr){if(null==padstr&&(padstr=“ ”),width=$$($nesting,“Opal”).$coerce_to(width,$$($nesting,“Integer”),“to_int”),padstr=$$($nesting,“Opal”).$coerce_to(padstr,$$($nesting,“String”),“to_str”).$to_s(),$truthy(padstr())&&this.$raise($$($nesting,“ArgumentError”),“zero width padding”),$truthy(width<=this.length))return this;var chars=Math.floor(width-this.length),patterns=Math.floor(chars/padstr.length),result=Array(patterns+1).join(padstr),remaining=chars-result.length;return this.$$cast(result+padstr.slice(0,remaining)+this)},$String_rjust$53.$$arity=-2),Opal.def(self,“$rpartition”,$String_rpartition$54=function(sep){var i,m,r,_m;if(sep.$$is_regexp){for(m=null,r=Opal.global_multiline_regexp(sep);null!==(_m=r.exec(this));)m=_m,r.lastIndex=m.index+1;i=null===m?-1:($$($nesting,“MatchData”).$new(r,m),sep=m,m.index)}else sep=$$($nesting,“Opal”).$coerce_to(sep,$$($nesting,“String”),“to_str”),i=this.lastIndexOf(sep);return-1===i?:[this.slice(0,i),this.slice(i,i+sep.length),this.slice(i+sep.length)]},$String_rpartition$54.$$arity=1),Opal.def(self,“$rstrip”,$String_rstrip$55=function(){return this.replace(/*$/,“”)},$String_rstrip$55.$$arity=0),Opal.def(self,“$scan”,$String_scan$56=function(pattern){var $iter=$String_scan$56.$$p,block=$iter||nil;$iter&&($String_scan$56.$$p=null),$iter&&($String_scan$56.$$p=null);var match,result=[],match_data=nil;for(pattern=pattern.$$is_regexp?Opal.global_multiline_regexp(pattern):(pattern=$$($nesting,“Opal”).$coerce_to(pattern,$$($nesting,“String”),“to_str”),new RegExp(pattern.replace(/[.*+?^${}()|\]/g,“\$&”),“gm”));null!=(match=pattern.exec(this));)match_data=$$($nesting,“MatchData”).$new(pattern,match),block===nil?1==match.length?result.push(match):result.push(match_data.$captures()):1==match.length?block(match):block.call(this,match_data.$captures()),pattern.lastIndex===match.index&&(pattern.lastIndex+=1);return $gvars=match_data,block!==nil?this:result},$String_scan$56.$$arity=1),Opal.alias(self,“size”,“length”),Opal.alias(self,“slice”,“[]”),Opal.def(self,“$split”,$String_split$57=function(pattern,limit){var $a,self=this;if(null==$gvars&&($gvars=nil),0===self.length)return[];if(void 0===limit)limit=0;else if(1===(limit=$$($nesting,“Opal”)(limit,$$($nesting,“Integer”),“to_int”)))return;void 0!==pattern&&pattern!==nil||(pattern=$truthy($a=$gvars)?$a:“ ”);var match,i,ii,result=[],string=self.toString(),index=0;if(pattern.$$is_regexp?pattern=Opal.global_multiline_regexp(pattern):“ ”===(pattern=$$($nesting,“Opal”).$coerce_to(pattern,$$($nesting,“String”),“to_str”).$to_s())?(pattern=/s+/gm,string=string.replace(/^s+/,“”)):pattern=new RegExp(pattern.replace(/[.*+?^${}()|\]/g,“\$&”),“gm”),1===(result=string.split(pattern)).length&&result===string)return[self.$$cast(result)];for(;-1!==(i=result.indexOf(void 0));)result.splice(i,1);function castResult(){for(i=0;i=self.$$cast(result)}if(0===limit){for(;“”===result;)result.length-=1;return castResult(),result}if(match=pattern.exec(string),limit<0){if(null!==match&&“”===match&&-1===pattern.source.indexOf(“(?=”))for(i=0,ii=match.length;i<ii;i++)result.push(“”);return castResult(),result}if(null!==match&&“”===match)return result.splice(limit-1,result.length-1,result.slice(limit-1).join(“”)),castResult(),result;if(limit>=result.length)return castResult(),result;for(i=0;null!==match&&(i++,index=pattern.lastIndex,i+1!==limit);)match=pattern.exec(string);return result.splice(limit-1,result.length-1,string.slice(index)),castResult(),result},$String_split$57.$$arity=-1),Opal.def(self,“$squeeze”,$String_squeeze$58=function($a){var sets;if(0===(sets=Opal.slice.call(arguments,0,arguments.length)).length)return this.$$cast(this.replace(/(.)1+/g,“$1”));var char_class=char_class_from_char_sets(sets);return null===char_class?this:this.$$cast(this.replace(new RegExp(“(”char_class“)\1+”,“g”),“$1”))},$String_squeeze$58.$$arity=-1),Opal.def(self,“$start_with?”,$String_start_with$ques$59=function($a){for(var prefixes,i=0,length=(prefixes=Opal.slice.call(arguments,0,arguments.length)).length;i<length;i++){var prefix=$$($nesting,“Opal”).$coerce_to(prefixes,$$($nesting,“String”),“to_str”).$to_s();if(0===this.indexOf(prefix))return!0}return!1},$String_start_with$ques$59.$$arity=-1),Opal.def(self,“$strip”,$String_strip$60=function(){return this.replace(/^s*/,“”).replace(/*$/,“”)},$String_strip$60.$$arity=0),Opal.def(self,“$sub”,$String_sub$61=function(pattern,replacement){var $iter=$String_sub$61.$$p,block=$iter||nil,self=this;$iter&&($String_sub$61.$$p=null),$iter&&($String_sub$61.$$p=null),pattern.$$is_regexp||(pattern=$$($nesting,“Opal”).$coerce_to(pattern,$$($nesting,“String”),“to_str”),pattern=new RegExp(pattern.replace(/[.*+?^${}()|\]/g,“\$&”)));var result,match=pattern.exec(self);return result=null===match?($gvars=nil,self.toString()):($$($nesting,“MatchData”).$new(pattern,match),void 0===replacement?(block===nil&&self.$raise($$($nesting,“ArgumentError”),“wrong number of arguments (1 for 2)”),self.slice(0,match.index)+block(match)+self.slice(match.index+match.length)):replacement.$$is_hash?self.slice(0,match.index)+replacement[“$”](match).$to_s()+self.slice(match.index+match.length):(replacement=(replacement=$$($nesting,“Opal”).$coerce_to(replacement,$$($nesting,“String”),“to_str”)).replace(/(+)([0-9+&`'])/g,function(original,slashes,command){if(slashes.length%2==0)return original;switch(command){case“+”:for(var i=match.length-1;0<i;i–)if(void 0!==match)return slashes.slice(1)+match;return“”;case“&”:return slashes.slice(1)+match;case“`”:return slashes.slice(1)+self.slice(0,match.index);case“'”:return slashes.slice(1)+self.slice(match.index+match.length);default:return slashes.slice(1)+(match||“”)}}).replace(/\\/g,“\”),self.slice(0,match.index)+replacement+self.slice(match.index+match.length))),self.$$cast(result)},$String_sub$61.$$arity=-2),Opal.alias(self,“succ”,“next”),Opal.def(self,“$sum”,$String_sum$62=function(n){null==n&&(n=16),n=$$($nesting,“Opal”).$coerce_to(n,$$($nesting,“Integer”),“to_int”);for(var result=0,length=this.length,i=0;i<length;i++)result+=this.charCodeAt(i);return n<=0?result:result&Math.pow(2,n)-1},$String_sum$62.$$arity=-1),Opal.def(self,“$swapcase”,$String_swapcase$63=function(){var str=this.replace(/(+)|([A-Z]+)/g,function($0,$1,$2){return $1?$0.toUpperCase():$0.toLowerCase()});return this.constructor===String?str:this.$class().$new(str)},$String_swapcase$63.$$arity=0),Opal.def(self,“$to_f”,$String_to_f$64=function(){if(“_”===this.charAt(0))return 0;var result=parseFloat(this.replace(/_/g,“”));return isNaN(result)||result==1/0||result==-1/0?0:result},$String_to_f$64.$$arity=0),Opal.def(self,“$to_i”,$String_to_i$65=function(base){null==base&&(base=10);var result,string=this.toLowerCase(),radix=$$($nesting,“Opal”).$coerce_to(base,$$($nesting,“Integer”),“to_int”);return(1===radix||radix<0||36<radix)&&this.$raise($$($nesting,“ArgumentError”),“invalid radix ”+radix),/^s*_/.test(string)?0:(string=string.replace(/^(s*?)(0?)(.+)$/,function(original,head,flag,tail){switch(tail.charAt(0)){case“+”:case“-”:return original;case“0”:if(“x”===tail.charAt(1)&&“0x”===flag&&(0===radix||16===radix))return original}switch(flag){case“0b”:if(0===radix||2===radix)return radix=2,head+tail;break;case“0”:case“0o”:if(0===radix||8===radix)return radix=8,head+tail;break;case“0d”:if(0===radix||10===radix)return radix=10,head+tail;break;case“0x”:if(0===radix||16===radix)return radix=16,head+tail}return original}),result=parseInt(string.replace(/_(?!_)/g,“”),radix),isNaN(result)?0:result)},$String_to_i$65.$$arity=-1),Opal.def(self,“$to_proc”,$String_to_proc$66=function(){var $$67,method_name,$iter=$String_to_proc$66.$$p;return $iter&&($String_to_proc$66.$$p=null),method_name=$rb_plus(“$”,this.valueOf()),$send(this,“proc”,[],(($$67=function($a){var args,self=$$67.$$s||this,$iter=$$67.$$p,block=$iter||nil;$iter&&($$67.$$p=null),0===(args=Opal.slice.call(arguments,0,arguments.length)).length&&self.$raise($$($nesting,“ArgumentError”),“no receiver given”);var recv=args;null==recv&&(recv=nil);var body=recv;return body?(“function”==typeof block&&(body.$$p=block),1===args.length?body.call(recv):body.apply(recv,args.slice(1))):recv.$method_missing.apply(recv,args)}).$$s=this,$$67.$$arity=-1,$$67))},$String_to_proc$66.$$arity=0),Opal.def(self,“$to_s”,$String_to_s$68=function(){return this.toString()},$String_to_s$68.$$arity=0),Opal.alias(self,“to_str”,“to_s”),Opal.alias(self,“to_sym”,“intern”),Opal.def(self,“$tr”,$String_tr$69=function(from,to){var i,in_range,c,ch,start,end,length;if(from=$$($nesting,“Opal”).$coerce_to(from,$$($nesting,“String”),“to_str”).$to_s(),to=$$($nesting,“Opal”).$coerce_to(to,$$($nesting,“String”),“to_str”).$to_s(),0==from.length||from===to)return this;var subs={},from_chars=from.split(“”),from_length=from_chars.length,to_chars=to.split(“”),to_length=to_chars.length,inverse=!1,global_sub=null;“^”===from_chars&&1,from_length-=1);var from_chars_expanded=[],last_from=null;for(in_range=!1,i=0;i,null==last_from)last_from=ch,from_chars_expanded.push(ch);else if(“-”===ch)“-”===last_from?(from_chars_expanded.push(“-”),from_chars_expanded.push(“-”)):i==from_length-1?from_chars_expanded.push(“-”):in_range=!0;else if(in_range){for(start=last_from.charCodeAt(0),(end=ch.charCodeAt(0))<start&&this.$raise($$($nesting,“ArgumentError”),'invalid range “'+String.fromCharCode(start)+”-“+String.fromCharCode(end)+'” in string transliteration'),c=start+1;c<end;c++)from_chars_expanded.push(String.fromCharCode©);from_chars_expanded.push(ch),last_from=in_range=null}else from_chars_expanded.push(ch);if(from_length=(from_chars=from_chars_expanded).length,inverse)for(i=0;i]=!0;else{if(0<to_length){var to_chars_expanded=[],last_to=null;for(in_range=!1,i=0;i,null==last_to)last_to=ch,to_chars_expanded.push(ch);else if(“-”===ch)“-”===last_to?(to_chars_expanded.push(“-”),to_chars_expanded.push(“-”)):i==to_length-1?to_chars_expanded.push(“-”):in_range=!0;else if(in_range){for(start=last_to.charCodeAt(0),(end=ch.charCodeAt(0))<start&&this.$raise($$($nesting,“ArgumentError”),'invalid range “'+String.fromCharCode(start)+”-“+String.fromCharCode(end)+'” in string transliteration'),c=start+1;c<end;c++)to_chars_expanded.push(String.fromCharCode©);to_chars_expanded.push(ch),last_to=in_range=null}else to_chars_expanded.push(ch);to_length=(to_chars=to_chars_expanded).length}var length_diff=from_length-to_length;if(0<length_diff){var pad_char=0:“”;for(i=0;i<length_diff;i++)to_chars.push(pad_char)}for(i=0;i]=to_chars}var new_str=“”;for(i=0,length=this.length;i<length;i++){var sub=subs;new_str+=inverse?null==sub?global_sub:ch:null!=sub?sub:ch}return this.$$cast(new_str)},$String_tr$69.$$arity=2),Opal.def(self,“$tr_s”,$String_tr_s$70=function(from,to){var i,in_range,c,ch,start,end,length;if(from=$$($nesting,“Opal”).$coerce_to(from,$$($nesting,“String”),“to_str”).$to_s(),to=$$($nesting,“Opal”).$coerce_to(to,$$($nesting,“String”),“to_str”).$to_s(),0==from.length)return this;var subs={},from_chars=from.split(“”),from_length=from_chars.length,to_chars=to.split(“”),to_length=to_chars.length,inverse=!1,global_sub=null;“^”===from_chars&&1,from_length-=1);var from_chars_expanded=[],last_from=null;for(in_range=!1,i=0;i,null==last_from)last_from=ch,from_chars_expanded.push(ch);else if(“-”===ch)“-”===last_from?(from_chars_expanded.push(“-”),from_chars_expanded.push(“-”)):i==from_length-1?from_chars_expanded.push(“-”):in_range=!0;else if(in_range){for(start=last_from.charCodeAt(0),(end=ch.charCodeAt(0))<start&&this.$raise($$($nesting,“ArgumentError”),'invalid range “'+String.fromCharCode(start)+”-“+String.fromCharCode(end)+'” in string transliteration'),c=start+1;c<end;c++)from_chars_expanded.push(String.fromCharCode©);from_chars_expanded.push(ch),last_from=in_range=null}else from_chars_expanded.push(ch);if(from_length=(from_chars=from_chars_expanded).length,inverse)for(i=0;i]=!0;else{if(0<to_length){var to_chars_expanded=[];for(in_range=!1,i=0;i,null==last_from)last_from=ch,to_chars_expanded.push(ch);else if(“-”===ch)i==to_length-1?to_chars_expanded.push(“-”):in_range=!0;else if(in_range){for(start=last_from.charCodeAt(0),(end=ch.charCodeAt(0))<start&&this.$raise($$($nesting,“ArgumentError”),'invalid range “'+String.fromCharCode(start)+”-“+String.fromCharCode(end)+'” in string transliteration'),c=start+1;c<end;c++)to_chars_expanded.push(String.fromCharCode©);to_chars_expanded.push(ch),last_from=in_range=null}else to_chars_expanded.push(ch);to_length=(to_chars=to_chars_expanded).length}var length_diff=from_length-to_length;if(0<length_diff){var pad_char=0:“”;for(i=0;i<length_diff;i++)to_chars.push(pad_char)}for(i=0;i]=to_chars}var new_str=“”,last_substitute=null;for(i=0,length=this.length;i<length;i++){var sub=subs;inverse?null==sub?null==last_substitute&&(new_str+=global_sub,last_substitute=!0):(new_str+=ch,last_substitute=null):null!=sub?null!=last_substitute&&last_substitute===sub||(new_str+=sub,last_substitute=sub):(new_str+=ch,last_substitute=null)}return this.$$cast(new_str)},$String_tr_s$70.$$arity=2),Opal.def(self,“$upcase”,$String_upcase$71=function(){return this.$$cast(this.toUpperCase())},$String_upcase$71.$$arity=0),Opal.def(self,“$upto”,$String_upto$72=function(stop,excl){var $iter=$String_upto$72.$$p,block=$iter||nil;if($iter&&($String_upto$72.$$p=null),$iter&&($String_upto$72.$$p=null),null==excl&&(excl=!1),block===nil)return this.$enum_for(“upto”,stop,excl);stop=$$($nesting,“Opal”).$coerce_to(stop,$$($nesting,“String”),“to_str”);var a,b,s=this.toString();if(1===s.length&&1===stop.length)for(a=s.charCodeAt(0),b=stop.charCodeAt(0);a<=b&&(!excl||a!==b);)block(String.fromCharCode(a)),a+=1;else if(parseInt(s,10).toString()===s&&parseInt(stop,10).toString()===stop)for(a=parseInt(s,10),b=parseInt(stop,10);a<=b&&(!excl||a!==b);)block(a.toString()),a+=1;else for(;s.length<=stop.length&&s<=stop&&(!excl||s!==stop);)block(s),s=s.$succ();return this},$String_upto$72.$$arity=-2),Opal.def(self,“$instance_variables”,$String_instance_variables$73=function(){return[]},$String_instance_variables$73.$$arity=0),Opal.defs(self,“$_load”,$String__load$74=function($a){var args;return args=Opal.slice.call(arguments,0,arguments.length),$send(this,“new”,Opal.to_a(args))},$String__load$74.$$arity=-1),Opal.def(self,“$unicode_normalize”,$String_unicode_normalize$75=function(form){return this.toString()},$String_unicode_normalize$75.$$arity=-1),Opal.def(self,“$unicode_normalized?”,$String_unicode_normalized$ques$76=function(form){return!0},$String_unicode_normalized$ques$76.$$arity=-1),Opal.def(self,“$unpack”,$String_unpack$77=function(format){return this.$raise(“To use String#unpack, you must first require 'corelib/string/unpack'.”)},$String_unpack$77.$$arity=1),Opal.def(self,“$unpack1”,$String_unpack1$78=function(format){return this.$raise(“To use String#unpack1, you must first require 'corelib/string/unpack'.”)},$String_unpack1$78.$$arity=1)}($nesting,String,$nesting),Opal.const_set($nesting,“Symbol”,$$($nesting,“String”))},Opal.modules=function(Opal){function $rb_gt(lhs,rhs){return“number”==typeof lhs&&“number”==typeof “”>rhs?rhs(rhs)}function $rb_plus(lhs,rhs){return“number”==typeof lhs&&“number”==typeof rhs?lhs+rhs:lhs(rhs)}function $rb_minus(lhs,rhs){return“number”==typeof lhs&&“number”==typeof rhs?lhs-rhs:lhs(rhs)}function $rb_le(lhs,rhs){return“number”==typeof lhs&&“number”==typeof rhs?lhs<=rhs:lhs(rhs)}Opal.top;var $nesting=[],nil=Opal.nil,$$$=Opal.const_get_qualified,$$=Opal.const_get_relative,$module=(Opal.breaker,Opal.slice,Opal.module),$truthy=Opal.truthy,$send=Opal.send,$falsy=Opal.falsy,$hash2=Opal.hash2,$lambda=Opal.lambda;return Opal.add_stubs([“$each”,“$public_send”,“$destructure”,“$to_enum”,“$enumerator_size”,“$new”,“$yield”,“$raise”,“$slice_when”,“$!”,“$enum_for”,“$flatten”,“$map”,“$warn”,“$proc”,“$==”,“$nil?”,“$respond_to?”,“$coerce_to!”,“$>”,“$*”,“$coerce_to”,“$try_convert”,“$<","$+","$-","$ceil","$/","$size","$__send__","$length","$<=","$”,“$”,“$first”,“$reverse”,“$sort”,“$to_proc”,“$compare”,“$call”,“$dup”,“$to_a”,“$sort!”,“$map!”,“$key?”,“$values”,“$zip”“>push”,“$<<","$),function($base,$parent_nesting){var $Enumerable_all$ques$1,$Enumerable_any$ques$5,$Enumerable_chunk$9,$Enumerable_chunk_while$12,$Enumerable_collect$14,$Enumerable_collect_concat$16,$Enumerable_count$19,$Enumerable_cycle$23,$Enumerable_detect$25,$Enumerable_drop$27,$Enumerable_drop_while$28,$Enumerable_each_cons$29,$Enumerable_each_entry$31,$Enumerable_each_slice$33,$Enumerable_each_with_index$35,$Enumerable_each_with_object$37,$Enumerable_entries$39,$Enumerable_find_all$40,$Enumerable_find_index$42,$Enumerable_first$45,$Enumerable_grep$48,$Enumerable_grep_v$50,$Enumerable_group_by$52,$Enumerable_include$ques$54,$Enumerable_inject$56,$Enumerable_lazy$57,$Enumerable_enumerator_size$59,$Enumerable_max$60,$Enumerable_max_by$61,$Enumerable_min$63,$Enumerable_min_by$64,$Enumerable_minmax$66,$Enumerable_minmax_by$68,$Enumerable_none$ques$69,$Enumerable_one$ques$73,$Enumerable_partition$77,$Enumerable_reject$79,$Enumerable_reverse_each$81,$Enumerable_slice_before$83,$Enumerable_slice_after$85,$Enumerable_slice_when$88,$Enumerable_sort$90,$Enumerable_sort_by$92,$Enumerable_sum$97,$Enumerable_take$99,$Enumerable_take_while$100,$Enumerable_uniq$102,$Enumerable_zip$104,self=$module($base,”Enumerable“),$nesting=.concat($parent_nesting);function comparableForPattern(value){return 0===value.length&&(value=),1),value}Opal.def(self,”$all?“,$Enumerable_all$ques$1=function(pattern){try{var $$2,$$3,$$4,$iter=$Enumerable_all$ques$1.$$p,block=$iter||nil;return $iter&&($Enumerable_all$ques$1.$$p=null),$iter&&($Enumerable_all$ques$1.$$p=null),$truthy(void 0!==pattern)?$send(this,”each“,[],(($$2=function($a){var comparable;$$2.$$s;if(comparable=comparableForPattern(Opal.slice.call(arguments,0,arguments.length)),$truthy($send(pattern,”public_send“,.concat(Opal.to_a(comparable)))))return nil;Opal.ret(!1)}).$$s=this,$$2.$$arity=-1,$$2)):$send(this,”each“,[],block!==nil?(($$3=function($a){var value;$$3.$$s;if(value=Opal.slice.call(arguments,0,arguments.length),$truthy(Opal.yieldX(block,Opal.to_a(value))))return nil;Opal.ret(!1)}).$$s=this,$$3.$$arity=-1,$$3):(($$4=function($a){var value;$$4.$$s;if(value=Opal.slice.call(arguments,0,arguments.length),$truthy($$($nesting,”Opal“).$destructure(value)))return nil;Opal.ret(!1)}).$$s=this,$$4.$$arity=-1,$$4)),!0}catch($returner){if($returner===Opal.returner)return $returner.$v;throw $returner}},$Enumerable_all$ques$1.$$arity=-1),Opal.def(self,”$any?“,$Enumerable_any$ques$5=function(pattern){try{var $$6,$$7,$$8,$iter=$Enumerable_any$ques$5.$$p,block=$iter||nil;return $iter&&($Enumerable_any$ques$5.$$p=null),$iter&&($Enumerable_any$ques$5.$$p=null),$truthy(void 0!==pattern)?$send(this,”each“,[],(($$6=function($a){var comparable;$$6.$$s;if(comparable=comparableForPattern(Opal.slice.call(arguments,0,arguments.length)),!$truthy($send(pattern,”public_send“,.concat(Opal.to_a(comparable)))))return nil;Opal.ret(!0)}).$$s=this,$$6.$$arity=-1,$$6)):$send(this,”each“,[],block!==nil?(($$7=function($a){var value;$$7.$$s;if(value=Opal.slice.call(arguments,0,arguments.length),!$truthy(Opal.yieldX(block,Opal.to_a(value))))return nil;Opal.ret(!0)}).$$s=this,$$7.$$arity=-1,$$7):(($$8=function($a){var value;$$8.$$s;if(value=Opal.slice.call(arguments,0,arguments.length),!$truthy($$($nesting,”Opal“).$destructure(value)))return nil;Opal.ret(!0)}).$$s=this,$$8.$$arity=-1,$$8)),!1}catch($returner){if($returner===Opal.returner)return $returner.$v;throw $returner}},$Enumerable_any$ques$5.$$arity=-1),Opal.def(self,”$chunk“,$Enumerable_chunk$9=function(){var $$10,$$11,$iter=$Enumerable_chunk$9.$$p,block=$iter||nil;return $iter&&($Enumerable_chunk$9.$$p=null),$iter&&($Enumerable_chunk$9.$$p=null),block===nil?$send(this,”to_enum“,,(($$10=function(){return($$10.$$s||this).$enumerator_size()}).$$s=this,$$10.$$arity=0,$$10)):$send($$$(”::“,”Enumerator“),”new“,[],(($$11=function(yielder){var self=$$11.$$s||this;null==yielder&&(yielder=nil);var previous=nil,accumulate=[];function releaseAccumulate(){0<accumulate.length&&yielder.$yield(previous,accumulate)}self.$each.$$p=function(value){var key=Opal.yield1(block,value);previous=key===nil?(releaseAccumulate(),accumulate=[],nil):(previous===nil||previous===key?accumulate.push(value):(releaseAccumulate(),accumulate=),key)},self.$each(),releaseAccumulate()}).$$s=this,$$11.$$arity=1,$$11))},$Enumerable_chunk$9.$$arity=0),Opal.def(self,”$chunk_while“,$Enumerable_chunk_while$12=function(){var $$13,$iter=$Enumerable_chunk_while$12.$$p,block=$iter||nil;return $iter&&($Enumerable_chunk_while$12.$$p=null),$iter&&($Enumerable_chunk_while$12.$$p=null),block!==nil||this.$raise($$($nesting,”ArgumentError“),”no block given“),$send(this,”slice_when“,[],(($$13=function(before,after){$$13.$$s;return null==before&&(before=nil),null==after&&(after=nil),Opal.yieldX(block,)[”$!“]()}).$$s=this,$$13.$$arity=2,$$13))},$Enumerable_chunk_while$12.$$arity=0),Opal.def(self,”$collect“,$Enumerable_collect$14=function(){var $$15,$iter=$Enumerable_collect$14.$$p,block=$iter||nil;if($iter&&($Enumerable_collect$14.$$p=null),$iter&&($Enumerable_collect$14.$$p=null),block===nil)return $send(this,”enum_for“,,(($$15=function(){return($$15.$$s||this).$enumerator_size()}).$$s=this,$$15.$$arity=0,$$15));var result=[];return this.$each.$$p=function(){var value=Opal.yieldX(block,arguments);result.push(value)},this.$each(),result},$Enumerable_collect$14.$$arity=0),Opal.def(self,”$collect_concat“,$Enumerable_collect_concat$16=function(){var $$17,$$18,$iter=$Enumerable_collect_concat$16.$$p,block=$iter||nil;return $iter&&($Enumerable_collect_concat$16.$$p=null),$iter&&($Enumerable_collect_concat$16.$$p=null),block===nil?$send(this,”enum_for“,,(($$17=function(){return($$17.$$s||this).$enumerator_size()}).$$s=this,$$17.$$arity=0,$$17)):$send(this,”map“,[],($$18=function(item){$$18.$$s;return null==item&&(item=nil),Opal.yield1(block,item)},$$18.$$s=this,$$18.$$arity=1,$$18)).$flatten(1)},$Enumerable_collect_concat$16.$$arity=0),Opal.def(self,”$count“,$Enumerable_count$19=function(object){var $$20,$$21,$$22,$iter=$Enumerable_count$19.$$p,block=$iter||nil,result=nil;return $iter&&($Enumerable_count$19.$$p=null),$iter&&($Enumerable_count$19.$$p=null),result=0,null!=object&&block!==nil&&this.$warn(”warning: given block not used“),$truthy(null!=object)?block=$send(this,”proc“,[],(($$20=function($a){var args;$$20.$$s;return args=Opal.slice.call(arguments,0,arguments.length),$$($nesting,”Opal“).$destructure(args)(object)}).$$s=this,$$20.$$arity=-1,$$20)):$truthy(block())&&(block=$send(this,”proc“,[],(($$21=function(){$$21.$$s;return!0}).$$s=this,$$21.$$arity=0,$$21))),$send(this,”each“,,(($$22=function($a){var args;$$22.$$s;return args=Opal.slice.call(arguments,0,arguments.length),$truthy(Opal.yieldX(block,args))?result++:nil}).$$s=this,$$22.$$arity=-1,$$22)),result},$Enumerable_count$19.$$arity=-1),Opal.def(self,”$cycle“,$Enumerable_cycle$23=function(n){var $$24,$iter=$Enumerable_cycle$23.$$p,block=$iter||nil;if($iter&&($Enumerable_cycle$23.$$p=null),$iter&&($Enumerable_cycle$23.$$p=null),null==n&&(n=nil),block===nil)return $send(this,”enum_for“,,(($$24=function(){var lhs,rhs,self=$$24.$$s||this;return $truthy(n())?$truthy(self(”size“))?$$$($$($nesting,”Float“),”INFINITY“):nil:(n=$$($nesting,”Opal“)(n,$$($nesting,”Integer“),”to_int“),$truthy($rb_gt(n,0))?(lhs=self.$enumerator_size(),rhs=n,”number“==typeof lhs&&”number“==typeof rhs?lhs*rhs:lhs(rhs)):0)}).$$s=this,$$24.$$arity=0,$$24));if($truthy(n()));else if(n=$$($nesting,”Opal“)(n,$$($nesting,”Integer“),”to_int“),$truthy(n<=0))return nil;var i,length,all=[];if(this.$each.$$p=function(){var param=$$($nesting,”Opal“).$destructure(arguments);Opal.yield1(block,param);all.push(param)},this.$each(),0===all.length)return nil;if(n===nil)for(;;)for(i=0,length=all.length;i);else for(;1<n;){for(i=0,length=all.length;i);n–}},$Enumerable_cycle$23.$$arity=-1),Opal.def(self,”$detect“,$Enumerable_detect$25=function(ifnone){try{var $$26,$iter=$Enumerable_detect$25.$$p,block=$iter||nil;return $iter&&($Enumerable_detect$25.$$p=null),$iter&&($Enumerable_detect$25.$$p=null),block===nil?this.$enum_for(”detect“,ifnone):($send(this,”each“,[],(($$26=function($a){var args,value;$$26.$$s;if(args=Opal.slice.call(arguments,0,arguments.length),value=$$($nesting,”Opal“).$destructure(args),!$truthy(Opal.yield1(block,value)))return nil;Opal.ret(value)}).$$s=this,$$26.$$arity=-1,$$26)),void 0!==ifnone?”function“==typeof ifnone?ifnone():ifnone:nil)}catch($returner){if($returner===Opal.returner)return $returner.$v;throw $returner}},$Enumerable_detect$25.$$arity=-1),Opal.def(self,”$drop“,$Enumerable_drop$27=function(number){number=$$($nesting,”Opal“).$coerce_to(number,$$($nesting,”Integer“),”to_int“),$truthy(number<0)&&this.$raise($$($nesting,”ArgumentError“),”attempt to drop negative size“);var result=[],current=0;return this.$each.$$p=function(){number<=current&&result.push($$($nesting,”Opal“).$destructure(arguments)),current++},this.$each(),result},$Enumerable_drop$27.$$arity=1),Opal.def(self,”$drop_while“,$Enumerable_drop_while$28=function(){var $iter=$Enumerable_drop_while$28.$$p,block=$iter||nil;if($iter&&($Enumerable_drop_while$28.$$p=null),$iter&&($Enumerable_drop_while$28.$$p=null),block===nil)return this.$enum_for(”drop_while“);var result=[],dropping=!0;return this.$each.$$p=function(){var param=$$($nesting,”Opal“).$destructure(arguments);if(dropping){var value=Opal.yield1(block,param);$falsy(value)&&(dropping=!1,result.push(param))}else result.push(param)},this.$each(),result},$Enumerable_drop_while$28.$$arity=0),Opal.def(self,”$each_cons“,$Enumerable_each_cons$29=function(n){var $$30,$iter=$Enumerable_each_cons$29.$$p,block=$iter||nil;if($iter&&($Enumerable_each_cons$29.$$p=null),$iter&&($Enumerable_each_cons$29.$$p=null),$truthy(1!=arguments.length)&&this.$raise($$($nesting,”ArgumentError“),”wrong number of arguments (“arguments.length” for 1)“),n=$$($nesting,”Opal“).$try_convert(n,$$($nesting,”Integer“),”to_int“),$truthy(n<=0)&&this.$raise($$($nesting,”ArgumentError“),”invalid size“),block===nil)return $send(this,”enum_for“,,(($$30=function(){var $a,lhs,rhs,self=$$30.$$s||this,enum_size=nil;return enum_size=self.$enumerator_size(),$truthy(enum_size())?nil:$truthy($truthy($a=enum_size(0))?$a:(rhs=n,”number“==typeof(lhs=enum_size)&&”number“==typeof rhs?lhs(rhs)))?0:$rb_plus($rb_minus(enum_size,n),1)}).$$s=this,$$30.$$arity=0,$$30));var buffer=[],result=nil;return this.$each.$$p=function(){var element=$$($nesting,”Opal“).$destructure(arguments);buffer.push(element),buffer.length>n&&buffer.shift(),buffer.length==n&&Opal.yield1(block,buffer.slice(0,n))},this.$each(),result},$Enumerable_each_cons$29.$$arity=1),Opal.def(self,”$each_entry“,$Enumerable_each_entry$31=function($a){var data,$$32,$iter=$Enumerable_each_entry$31.$$p,block=$iter||nil;return $iter&&($Enumerable_each_entry$31.$$p=null),$iter&&($Enumerable_each_entry$31.$$p=null),data=Opal.slice.call(arguments,0,arguments.length),block===nil?$send(this,”to_enum“,.concat(Opal.to_a(data)),(($$32=function(){return($$32.$$s||this).$enumerator_size()}).$$s=this,$$32.$$arity=0,$$32)):(this.$each.$$p=function(){var item=$$($nesting,”Opal“).$destructure(arguments);Opal.yield1(block,item)},this.$each.apply(this,data),this)},$Enumerable_each_entry$31.$$arity=-1),Opal.def(self,”$each_slice“,$Enumerable_each_slice$33=function(n){var $$34,$iter=$Enumerable_each_slice$33.$$p,block=$iter||nil;if($iter&&($Enumerable_each_slice$33.$$p=null),$iter&&($Enumerable_each_slice$33.$$p=null),n=$$($nesting,”Opal“).$coerce_to(n,$$($nesting,”Integer“),”to_int“),$truthy(n<=0)&&this.$raise($$($nesting,”ArgumentError“),”invalid slice size“),block===nil)return $send(this,”enum_for“,,(($$34=function(){var lhs,rhs,self=$$34.$$s||this;return $truthy(self(”size“))?(lhs=self.$size(),rhs=n,”number“==typeof lhs&&”number“==typeof rhs?lhs/rhs:lhs(rhs)).$ceil():nil}).$$s=this,$$34.$$arity=0,$$34));var slice=[];return this.$each.$$p=function(){var param=$$($nesting,”Opal“).$destructure(arguments);slice.push(param),slice.length===n&&(Opal.yield1(block,slice),slice=[])},this.$each(),0<slice.length&&Opal.yield1(block,slice),nil},$Enumerable_each_slice$33.$$arity=1),Opal.def(self,”$each_with_index“,$Enumerable_each_with_index$35=function($a){var args,$$36,$iter=$Enumerable_each_with_index$35.$$p,block=$iter||nil;if($iter&&($Enumerable_each_with_index$35.$$p=null),$iter&&($Enumerable_each_with_index$35.$$p=null),args=Opal.slice.call(arguments,0,arguments.length),block===nil)return $send(this,”enum_for“,.concat(Opal.to_a(args)),(($$36=function(){return($$36.$$s||this).$enumerator_size()}).$$s=this,$$36.$$arity=0,$$36));var index=0;return this.$each.$$p=function(){var param=$$($nesting,”Opal“).$destructure(arguments);block(param,index),index++},this.$each.apply(this,args),this},$Enumerable_each_with_index$35.$$arity=-1),Opal.def(self,”$each_with_object“,$Enumerable_each_with_object$37=function(object){var $$38,$iter=$Enumerable_each_with_object$37.$$p,block=$iter||nil;return $iter&&($Enumerable_each_with_object$37.$$p=null),$iter&&($Enumerable_each_with_object$37.$$p=null),block===nil?$send(this,”enum_for“,,(($$38=function(){return($$38.$$s||this).$enumerator_size()}).$$s=this,$$38.$$arity=0,$$38)):(this.$each.$$p=function(){var param=$$($nesting,”Opal“).$destructure(arguments);block(param,object)},this.$each(),object)},$Enumerable_each_with_object$37.$$arity=1),Opal.def(self,”$entries“,$Enumerable_entries$39=function($a){var args;args=Opal.slice.call(arguments,0,arguments.length);var result=[];return this.$each.$$p=function(){result.push($$($nesting,”Opal“).$destructure(arguments))},this.$each.apply(this,args),result},$Enumerable_entries$39.$$arity=-1),Opal.alias(self,”find“,”detect“),Opal.def(self,”$find_all“,$Enumerable_find_all$40=function(){var $$41,$iter=$Enumerable_find_all$40.$$p,block=$iter||nil;if($iter&&($Enumerable_find_all$40.$$p=null),$iter&&($Enumerable_find_all$40.$$p=null),block===nil)return $send(this,”enum_for“,,(($$41=function(){return($$41.$$s||this).$enumerator_size()}).$$s=this,$$41.$$arity=0,$$41));var result=[];return this.$each.$$p=function(){var param=$$($nesting,”Opal“).$destructure(arguments),value=Opal.yield1(block,param);$truthy(value)&&result.push(param)},this.$each(),result},$Enumerable_find_all$40.$$arity=0),Opal.def(self,”$find_index“,$Enumerable_find_index$42=function(object){try{var $$43,$$44,$iter=$Enumerable_find_index$42.$$p,block=$iter||nil,index=nil;return $iter&&($Enumerable_find_index$42.$$p=null),$iter&&($Enumerable_find_index$42.$$p=null),$truthy(void 0===object&&block===nil)?this.$enum_for(”find_index“):(null!=object&&block!==nil&&this.$warn(”warning: given block not used“),index=0,$truthy(null!=object)?$send(this,”each“,[],(($$43=function($a){var value;$$43.$$s;return value=Opal.slice.call(arguments,0,arguments.length),$$($nesting,”Opal“).$destructure(value)(object)&&Opal.ret(index),index+=1}).$$s=this,$$43.$$arity=-1,$$43)):$send(this,”each“,[],(($$44=function($a){var value;$$44.$$s;return value=Opal.slice.call(arguments,0,arguments.length),$truthy(Opal.yieldX(block,Opal.to_a(value)))&&Opal.ret(index),index+=1}).$$s=this,$$44.$$arity=-1,$$44)),nil)}catch($returner){if($returner===Opal.returner)return $returner.$v;throw $returner}},$Enumerable_find_index$42.$$arity=-1),Opal.def(self,”$first“,$Enumerable_first$45=function(number){try{var $$46,$$47,result=nil,current=nil;return $truthy(void 0===number)?$send(this,”each“,[],(($$46=function(value){$$46.$$s;null==value&&(value=nil),Opal.ret(value)}).$$s=this,$$46.$$arity=1,$$46)):(result=,number=$$($nesting,”Opal“).$coerce_to(number,$$($nesting,”Integer“),”to_int“),$truthy(number<0)&&this.$raise($$($nesting,”ArgumentError“),”attempt to take negative size“),$truthy(0==number)?[]:(current=0,$send(this,”each“,,(($$47=function($a){var args;$$47.$$s;if(args=Opal.slice.call(arguments,0,arguments.length),result.push($$($nesting,”Opal“).$destructure(args)),!$truthy(number<=++current))return nil;Opal.ret(result)}).$$s=this,$$47.$$arity=-1,$$47)),result))}catch($returner){if($returner===Opal.returner)return $returner.$v;throw $returner}},$Enumerable_first$45.$$arity=-1),Opal.alias(self,”flat_map“,”collect_concat“),Opal.def(self,”$grep“,$Enumerable_grep$48=function(pattern){var $$49,$iter=$Enumerable_grep$48.$$p,block=$iter||nil,result=nil;return $iter&&($Enumerable_grep$48.$$p=null),$iter&&($Enumerable_grep$48.$$p=null),result=[],$send(this,”each“,,(($$49=function($a){var value,cmp;$$49.$$s;return cmp=comparableForPattern(value=Opal.slice.call(arguments,0,arguments.length)),$truthy($send(pattern,”__send__“,.concat(Opal.to_a(cmp))))?(block!==nil?($truthy($rb_gt(value.$length(),1))&&(value=),value=Opal.yieldX(block,Opal.to_a(value))):$truthy($rb_le(value.$length(),1))&&(value=value[”$“](0)),result.$push(value)):nil}).$$s=this,$$49.$$arity=-1,$$49)),result},$Enumerable_grep$48.$$arity=1),Opal.def(self,”$grep_v“,$Enumerable_grep_v$50=function(pattern){var $$51,$iter=$Enumerable_grep_v$50.$$p,block=$iter||nil,result=nil;return $iter&&($Enumerable_grep_v$50.$$p=null),$iter&&($Enumerable_grep_v$50.$$p=null),result=[],$send(this,”each“,,(($$51=function($a){var value,cmp;$$51.$$s;return cmp=comparableForPattern(value=Opal.slice.call(arguments,0,arguments.length)),$truthy($send(pattern,”__send__“,.concat(Opal.to_a(cmp))))?nil:(block!==nil?($truthy($rb_gt(value.$length(),1))&&(value=),value=Opal.yieldX(block,Opal.to_a(value))):$truthy($rb_le(value.$length(),1))&&(value=value[”$“](0)),result.$push(value))}).$$s=this,$$51.$$arity=-1,$$51)),result},$Enumerable_grep_v$50.$$arity=1),Opal.def(self,”$group_by“,$Enumerable_group_by$52=function(){var $$53,$a,$iter=$Enumerable_group_by$52.$$p,block=$iter||nil,hash=nil,$writer=nil;return $iter&&($Enumerable_group_by$52.$$p=null),$iter&&($Enumerable_group_by$52.$$p=null),block===nil?$send(this,”enum_for“,,(($$53=function(){return($$53.$$s||this).$enumerator_size()}).$$s=this,$$53.$$arity=0,$$53)):(hash=$hash2([],{}),this.$each.$$p=function(){var param=$$($nesting,”Opal“).$destructure(arguments),value=Opal.yield1(block,param);($truthy($a=hash[”$“](value))?$a:($writer=[value,],$send(hash,”[]=“,Opal.to_a($writer)),$writer))[”$<<“](param)},this.$each(),hash)},$Enumerable_group_by$52.$$arity=0),Opal.def(self,”$include?“,$Enumerable_include$ques$54=function(obj){try{var $$55;return $send(this,”each“,[],(($$55=function($a){var args;$$55.$$s;if(args=Opal.slice.call(arguments,0,arguments.length),!$$($nesting,”Opal“).$destructure(args)(obj))return nil;Opal.ret(!0)}).$$s=this,$$55.$$arity=-1,$$55)),!1}catch($returner){if($returner===Opal.returner)return $returner.$v;throw $returner}},$Enumerable_include$ques$54.$$arity=1),Opal.def(self,”$inject“,$Enumerable_inject$56=function(object,sym){var $iter=$Enumerable_inject$56.$$p,block=$iter||nil;$iter&&($Enumerable_inject$56.$$p=null),$iter&&($Enumerable_inject$56.$$p=null);var result=object;return this.$each.$$p=block!==nil&&void 0===sym?function(){var value=$$($nesting,”Opal“).$destructure(arguments);result=(void 0!==result&&(value=Opal.yieldX(block,)),value)}:(void 0===sym&&($$($nesting,”Symbol“)(object)||this.$raise($$($nesting,”TypeError“),object.$inspect()+” is not a Symbol“),sym=object,result=void 0),function(){var value=$$($nesting,”Opal“).$destructure(arguments);result=void 0!==result?result.$__send__(sym,value):value}),this.$each(),null==result?nil:result},$Enumerable_inject$56.$$arity=-1),Opal.def(self,”$lazy“,$Enumerable_lazy$57=function(){var $$58;return $send($$$($$($nesting,”Enumerator“),”Lazy“),”new“,,(($$58=function(enum$,$a){var args;$$58.$$s;return null==enum$&&(enum$=nil),args=Opal.slice.call(arguments,1,arguments.length),$send(enum$,”yield“,Opal.to_a(args))}).$$s=this,$$58.$$arity=-2,$$58))},$Enumerable_lazy$57.$$arity=0),Opal.def(self,”$enumerator_size“,$Enumerable_enumerator_size$59=function(){return $truthy(this(”size“))?this.$size():nil},$Enumerable_enumerator_size$59.$$arity=0),Opal.alias(self,”map“,”collect“),Opal.def(self,”$max“,$Enumerable_max$60=function(n){var result,value,$iter=$Enumerable_max$60.$$p,block=$iter||nil,self=this;return $iter&&($Enumerable_max$60.$$p=null),$iter&&($Enumerable_max$60.$$p=null),void 0===n||n===nil?(self.$each.$$p=function(){var item=$$($nesting,”Opal“).$destructure(arguments);void 0!==result?((value=block!==nil?Opal.yieldX(block,):”“>item(result))===nil&&self.$raise($$($nesting,”ArgumentError“),”comparison failed“),0<value&&(result=item)):result=item},self.$each(),void 0===result?nil:result):(n=$$($nesting,”Opal“).$coerce_to(n,$$($nesting,”Integer“),”to_int“),$send(self,”sort“,[],block.$to_proc()).$reverse().$first(n))},$Enumerable_max$60.$$arity=-1),Opal.def(self,”$max_by“,$Enumerable_max_by$61=function(){var $$62,result,by,$iter=$Enumerable_max_by$61.$$p,block=$iter||nil;return $iter&&($Enumerable_max_by$61.$$p=null),$iter&&($Enumerable_max_by$61.$$p=null),$truthy(block)?(this.$each.$$p=function(){var param=$$($nesting,”Opal“).$destructure(arguments),value=Opal.yield1(block,param);if(void 0===result)return ”“>result=param,void(by=value);0(by)&&(result=param,by=value)},this.$each(),void 0===result?nil:result):$send(this,”enum_for“,,(($$62=function(){return($$62.$$s||this).$enumerator_size()}).$$s=this,$$62.$$arity=0,$$62))},$Enumerable_max_by$61.$$arity=0),Opal.alias(self,”member?“,”include?“),Opal.def(self,”$min“,$Enumerable_min$63=function(){var result,$iter=$Enumerable_min$63.$$p,block=$iter||nil,self=this;return $iter&&($Enumerable_min$63.$$p=null),$iter&&($Enumerable_min$63.$$p=null),self.$each.$$p=block!==nil?function(){var param=$$($nesting,”Opal“).$destructure(arguments);if(void 0!==result){var value=block(param,result);value===nil&&self.$raise($$($nesting,”ArgumentError“),”comparison failed“),value<0&&(result=param)}else result=param}:function(){var param=$$($nesting,”Opal“).$destructure(arguments);void 0!==result?$$($nesting,”Opal“).$compare(param,result)<0&&(result=param):result=param},self.$each(),void 0===result?nil:result},$Enumerable_min$63.$$arity=0),Opal.def(self,”$min_by“,$Enumerable_min_by$64=function(){var $$65,result,by,$iter=$Enumerable_min_by$64.$$p,block=$iter||nil;return $iter&&($Enumerable_min_by$64.$$p=null),$iter&&($Enumerable_min_by$64.$$p=null),$truthy(block)?(this.$each.$$p=function(){var param=$$($nesting,”Opal“).$destructure(arguments),value=Opal.yield1(block,param);if(void 0===result)return ”“>result=param,void(by=value);value(by)<0&&(result=param,by=value)},this.$each(),void 0===result?nil:result):$send(this,”enum_for“,,(($$65=function(){return($$65.$$s||this).$enumerator_size()}).$$s=this,$$65.$$arity=0,$$65))},$Enumerable_min_by$64.$$arity=0),Opal.def(self,”$minmax“,$Enumerable_minmax$66=function(){var $a,$$67,$iter=$Enumerable_minmax$66.$$p,block=$iter||nil,self=this;$iter&&($Enumerable_minmax$66.$$p=null),$iter&&($Enumerable_minmax$66.$$p=null),block=$truthy($a=block)?$a:$send(self,”proc“,[],(($$67=function(a,b){$$67.$$s;return ”“>null==a&&(a=nil),null==b&&(b=nil),a(b)}).$$s=self,$$67.$$arity=2,$$67));var min=nil,max=nil,first_time=!0;return self.$each.$$p=function(){var element=$$($nesting,”Opal“).$destructure(arguments);if(first_time)min=max=element,first_time=!1;else{var min_cmp=block.$call(min,element);min_cmp===nil?self.$raise($$($nesting,”ArgumentError“),”comparison failed“):0<min_cmp&&(min=element);var max_cmp=block.$call(max,element);max_cmp===nil?self.$raise($$($nesting,”ArgumentError“),”comparison failed“):max_cmp<0&&(max=element)}},self.$each(),},$Enumerable_minmax$66.$$arity=0),Opal.def(self,”$minmax_by“,$Enumerable_minmax_by$68=function(){var $iter=$Enumerable_minmax_by$68.$$p;return $iter&&($Enumerable_minmax_by$68.$$p=null),$iter&&($Enumerable_minmax_by$68.$$p=null),this.$raise($$($nesting,”NotImplementedError“))},$Enumerable_minmax_by$68.$$arity=0),Opal.def(self,”$none?“,$Enumerable_none$ques$69=function(pattern){try{var $$70,$$71,$$72,$iter=$Enumerable_none$ques$69.$$p,block=$iter||nil;return $iter&&($Enumerable_none$ques$69.$$p=null),$iter&&($Enumerable_none$ques$69.$$p=null),$truthy(void 0!==pattern)?$send(this,”each“,[],(($$70=function($a){var comparable;$$70.$$s;if(comparable=comparableForPattern(Opal.slice.call(arguments,0,arguments.length)),!$truthy($send(pattern,”public_send“,.concat(Opal.to_a(comparable)))))return nil;Opal.ret(!1)}).$$s=this,$$70.$$arity=-1,$$70)):$send(this,”each“,[],block!==nil?(($$71=function($a){var value;$$71.$$s;if(value=Opal.slice.call(arguments,0,arguments.length),!$truthy(Opal.yieldX(block,Opal.to_a(value))))return nil;Opal.ret(!1)}).$$s=this,$$71.$$arity=-1,$$71):(($$72=function($a){var value,item;$$72.$$s;if(value=Opal.slice.call(arguments,0,arguments.length),item=$$($nesting,”Opal“).$destructure(value),!$truthy(item))return nil;Opal.ret(!1)}).$$s=this,$$72.$$arity=-1,$$72)),!0}catch($returner){if($returner===Opal.returner)return $returner.$v;throw $returner}},$Enumerable_none$ques$69.$$arity=-1),Opal.def(self,”$one?“,$Enumerable_one$ques$73=function(pattern){try{var $$74,$$75,$$76,$iter=$Enumerable_one$ques$73.$$p,block=$iter||nil,count=nil;return $iter&&($Enumerable_one$ques$73.$$p=null),$iter&&($Enumerable_one$ques$73.$$p=null),$truthy(void(count=0)!==pattern)?$send(this,”each“,[],(($$74=function($a){var comparable;$$74.$$s;return comparable=comparableForPattern(Opal.slice.call(arguments,0,arguments.length)),$truthy($send(pattern,”public_send“,.concat(Opal.to_a(comparable))))?(count=$rb_plus(count,1),$truthy($rb_gt(count,1))?void Opal.ret(!1):nil):nil}).$$s=this,$$74.$$arity=-1,$$74)):$send(this,”each“,[],block!==nil?(($$75=function($a){var value;$$75.$$s;return value=Opal.slice.call(arguments,0,arguments.length),$truthy(Opal.yieldX(block,Opal.to_a(value)))?(count=$rb_plus(count,1),$truthy($rb_gt(count,1))?void Opal.ret(!1):nil):nil}).$$s=this,$$75.$$arity=-1,$$75):(($$76=function($a){var value;$$76.$$s;return value=Opal.slice.call(arguments,0,arguments.length),$truthy($$($nesting,”Opal“).$destructure(value))?(count=$rb_plus(count,1),$truthy($rb_gt(count,1))?void Opal.ret(!1):nil):nil}).$$s=this,$$76.$$arity=-1,$$76)),count(1)}catch($returner){if($returner===Opal.returner)return $returner.$v;throw $returner}},$Enumerable_one$ques$73.$$arity=-1),Opal.def(self,”$partition“,$Enumerable_partition$77=function(){var $$78,$iter=$Enumerable_partition$77.$$p,block=$iter||nil;if($iter&&($Enumerable_partition$77.$$p=null),$iter&&($Enumerable_partition$77.$$p=null),block===nil)return $send(this,”enum_for“,,(($$78=function(){return($$78.$$s||this).$enumerator_size()}).$$s=this,$$78.$$arity=0,$$78));var truthy=[],falsy=;return this.$each.$$p=function(){var param=$$($nesting,”Opal“).$destructure(arguments),value=Opal.yield1(block,param);$truthy(value)?truthy.push(param):falsy.push(param)},this.$each(),},$Enumerable_partition$77.$$arity=0),Opal.alias(self,”reduce“,”inject“),Opal.def(self,”$reject“,$Enumerable_reject$79=function(){var $$80,$iter=$Enumerable_reject$79.$$p,block=$iter||nil;if($iter&&($Enumerable_reject$79.$$p=null),$iter&&($Enumerable_reject$79.$$p=null),block===nil)return $send(this,”enum_for“,,(($$80=function(){return($$80.$$s||this).$enumerator_size()}).$$s=this,$$80.$$arity=0,$$80));var result=[];return this.$each.$$p=function(){var param=$$($nesting,”Opal“).$destructure(arguments),value=Opal.yield1(block,param);$falsy(value)&&result.push(param)},this.$each(),result},$Enumerable_reject$79.$$arity=0),Opal.def(self,”$reverse_each“,$Enumerable_reverse_each$81=function(){var $$82,$iter=$Enumerable_reverse_each$81.$$p,block=$iter||nil;if($iter&&($Enumerable_reverse_each$81.$$p=null),$iter&&($Enumerable_reverse_each$81.$$p=null),block===nil)return $send(this,”enum_for“,,(($$82=function(){return($$82.$$s||this).$enumerator_size()}).$$s=this,$$82.$$arity=0,$$82));var result=[];this.$each.$$p=function(){result.push(arguments)},this.$each();for(var i=result.length-1;0<=i;i--)Opal.yieldX(block,result);return result},$Enumerable_reverse_each$81.$$arity=0),Opal.alias(self,”select“,”find_all“),Opal.def(self,”$slice_before“,$Enumerable_slice_before$83=function(pattern){var $$84,$iter=$Enumerable_slice_before$83.$$p,block=$iter||nil;return $iter&&($Enumerable_slice_before$83.$$p=null),$iter&&($Enumerable_slice_before$83.$$p=null),$truthy(void 0===pattern&&block===nil)&&this.$raise($$($nesting,”ArgumentError“),”both pattern and block are given“),$truthy(void 0!==pattern&&block!==nil||1<arguments.length)&&this.$raise($$($nesting,”ArgumentError“),”wrong number of arguments (“arguments.length” expected 1)“),$send($$($nesting,”Enumerator“),”new“,[],(($$84=function(e){var self=$$84.$$s||this;null==e&&(e=nil);var slice=[];self.$each.$$p=block!==nil?void 0===pattern?function(){var param=$$($nesting,”Opal“).$destructure(arguments),value=Opal.yield1(block,param);$truthy(value)&&0(slice),slice=[]),slice.push(param)}:function(){var param=$$($nesting,”Opal“).$destructure(arguments),value=block(param,pattern.$dup());$truthy(value)&&0(slice),slice=[]),slice.push(param)}:function(){var param=$$($nesting,”Opal“).$destructure(arguments),value=pattern(param);$truthy(value)&&0(slice),slice=[]),slice.push(param)},self.$each(),0(slice)}).$$s=this,$$84.$$arity=1,$$84))},$Enumerable_slice_before$83.$$arity=-1),Opal.def(self,”$slice_after“,$Enumerable_slice_after$85=function(pattern){var $$86,$$87,$iter=$Enumerable_slice_after$85.$$p,block=$iter||nil;return $iter&&($Enumerable_slice_after$85.$$p=null),$iter&&($Enumerable_slice_after$85.$$p=null),$truthy(void 0===pattern&&block===nil)&&this.$raise($$($nesting,”ArgumentError“),”both pattern and block are given“),$truthy(void 0!==pattern&&block!==nil||1<arguments.length)&&this.$raise($$($nesting,”ArgumentError“),”wrong number of arguments (“arguments.length” expected 1)“),$truthy(void 0!==pattern)&&(block=$send(this,”proc“,[],(($$86=function(e){$$86.$$s;return null==e&&(e=nil),pattern(e)}).$$s=this,$$86.$$arity=1,$$86))),$send($$($nesting,”Enumerator“),”new“,[],(($$87=function(yielder){var accumulate,self=$$87.$$s||this;null==yielder&&(yielder=nil),self.$each.$$p=function(){var element=$$($nesting,”Opal“).$destructure(arguments),end_chunk=Opal.yield1(block,element);null==accumulate&&(accumulate=[]),$truthy(end_chunk)?(accumulate.push(element),yielder.$yield(accumulate),accumulate=null):accumulate.push(element)},self.$each(),null!=accumulate&&yielder.$yield(accumulate)}).$$s=this,$$87.$$arity=1,$$87))},$Enumerable_slice_after$85.$$arity=-1),Opal.def(self,”$slice_when“,$Enumerable_slice_when$88=function(){var $$89,$iter=$Enumerable_slice_when$88.$$p,block=$iter||nil;return $iter&&($Enumerable_slice_when$88.$$p=null),$iter&&($Enumerable_slice_when$88.$$p=null),block!==nil||this.$raise($$($nesting,”ArgumentError“),”wrong number of arguments (0 for 1)“),$send($$($nesting,”Enumerator“),”new“,[],(($$89=function(yielder){var self=$$89.$$s||this;null==yielder&&(yielder=nil);var slice=nil,last_after=nil;self.$each_cons.$$p=function(){var params=$$($nesting,”Opal“).$destructure(arguments),before=params,after=params,match=Opal.yieldX(block,);last_after=after,slice===nil&&(slice=[]),$truthy(match)?(slice.push(before),yielder.$yield(slice),slice=):slice.push(before)},self.$each_cons(2),slice!==nil&&(slice.push(last_after),yielder.$yield(slice))}).$$s=this,$$89.$$arity=1,$$89))},$Enumerable_slice_when$88.$$arity=0),Opal.def(self,”$sort“,$Enumerable_sort$90=function(){var $$91,ary,$iter=$Enumerable_sort$90.$$p,block=$iter||nil;return $iter&&($Enumerable_sort$90.$$p=null),$iter&&($Enumerable_sort$90.$$p=null),ary=this.$to_a(),block!==nil||(block=$lambda((($$91=function(a,b){$$91.$$s;return ”“>null==a&&(a=nil),null==b&&(b=nil),a(b)}).$$s=this,$$91.$$arity=2,$$91))),$send(ary,”sort“,[],block.$to_proc())},$Enumerable_sort$90.$$arity=0),Opal.def(self,”$sort_by“,$Enumerable_sort_by$92=function(){var $$93,$$94,$$95,$$96,dup,$iter=$Enumerable_sort_by$92.$$p,block=$iter||nil;return $iter&&($Enumerable_sort_by$92.$$p=null),$iter&&($Enumerable_sort_by$92.$$p=null),block===nil?$send(this,”enum_for“,,(($$93=function(){return($$93.$$s||this).$enumerator_size()}).$$s=this,$$93.$$arity=0,$$93)):(dup=$send(this,”map“,[],(($$94=function(){var arg;$$94.$$s;return arg=$$($nesting,”Opal“).$destructure(arguments),}).$$s=this,$$94.$$arity=0,$$94)),$send(dup,”sort!“,[],(($$95=function(a,b){$$95.$$s;return null==a&&(a=nil),null==b&&(b=nil),a[”$<=>“](b)}).$$s=this,$$95.$$arity=2,$$95)),$send(dup,”map!“,[],(($$96=function(i){$$96.$$s;return null==i&&(i=nil),i}).$$s=this,$$96.$$arity=1,$$96)))},$Enumerable_sort_by$92.$$arity=0),Opal.def(self,”$sum“,$Enumerable_sum$97=function(initial){var $$98,$iter=$Enumerable_sum$97.$$p,$yield=$iter||nil,result=nil;return $iter&&($Enumerable_sum$97.$$p=null),null==initial&&(initial=0),result=initial,$send(this,”each“,[],(($$98=function($a){var $post_args,args,item;$$98.$$s;return $post_args=Opal.slice.call(arguments,0,arguments.length),args=$post_args,item=$yield!==nil?Opal.yieldX($yield,Opal.to_a(args)):$$($nesting,”Opal“).$destructure(args),result=$rb_plus(result,item)}).$$s=this,$$98.$$arity=-1,$$98)),result},$Enumerable_sum$97.$$arity=-1),Opal.def(self,”$take“,$Enumerable_take$99=function(num){return this.$first(num)},$Enumerable_take$99.$$arity=1),Opal.def(self,”$take_while“,$Enumerable_take_while$100=function(){try{var $$101,$iter=$Enumerable_take_while$100.$$p,block=$iter||nil,result=nil;return $iter&&($Enumerable_take_while$100.$$p=null),$iter&&($Enumerable_take_while$100.$$p=null),$truthy(block)?(result=[],$send(this,”each“,,(($$101=function($a){var args,value;$$101.$$s;return args=Opal.slice.call(arguments,0,arguments.length),value=$$($nesting,”Opal“).$destructure(args),$truthy(Opal.yield1(block,value))||Opal.ret(result),result.push(value)}).$$s=this,$$101.$$arity=-1,$$101))):this.$enum_for(”take_while“)}catch($returner){if($returner===Opal.returner)return $returner.$v;throw $returner}},$Enumerable_take_while$100.$$arity=0),Opal.def(self,”$uniq“,$Enumerable_uniq$102=function(){var $$103,$iter=$Enumerable_uniq$102.$$p,block=$iter||nil,hash=nil;return $iter&&($Enumerable_uniq$102.$$p=null),$iter&&($Enumerable_uniq$102.$$p=null),hash=$hash2([],{}),$send(this,”each“,,(($$103=function($a){$$103.$$s;var args,value,produced,$writer=nil;return args=Opal.slice.call(arguments,0,arguments.length),value=$$($nesting,”Opal“).$destructure(args),produced=block!==nil?Opal.yield1(block,value):value,$truthy(hash(produced))?nil:($writer=,$send(hash,”[]=“,Opal.to_a($writer)),$writer)}).$$s=this,$$103.$$arity=-1,$$103)),hash.$values()},$Enumerable_uniq$102.$$arity=0),Opal.alias(self,”to_a“,”entries“),Opal.def(self,”$zip“,$Enumerable_zip$104=function($a){var others,$iter=$Enumerable_zip$104.$$p;return $iter&&($Enumerable_zip$104.$$p=null),$iter&&($Enumerable_zip$104.$$p=null),others=Opal.slice.call(arguments,0,arguments.length),$send(this.$to_a(),”zip“,Opal.to_a(others))},$Enumerable_zip$104.$$arity=-1)}($nesting,$nesting)},Opal.modules=function(Opal){function $rb_plus(lhs,rhs){return”number“==typeof lhs&&”number“==typeof rhs?lhs+rhs:lhs(rhs)}function $rb_lt(lhs,rhs){return”number“==typeof lhs&&”number“==typeof rhs?lhs(rhs)}var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.const_get_qualified,Opal.const_get_relative),$breaker=Opal.breaker,$slice=Opal.slice,$klass=Opal.klass,$truthy=Opal.truthy,$send=Opal.send,$falsy=Opal.falsy;return Opal.add_stubs([”$require“,”$include“,”$allocate“,”$new“,”$to_proc“,”$coerce_to“,”$nil?“,”$empty?“,”$+“,”$class“,”$__send__“,”$===“,”$call“,”$enum_for“,”$size“,”$destructure“,”$inspect“,”$any?“,”$“,”$raise“,”$yield“,”$each“,”$enumerator_size“,”$respond_to?“,”$try_convert“,”$<“,”$for“]),self.$require(”corelib/enumerable“),function($base,$super,$parent_nesting){var $Enumerator_for$1,$Enumerator_initialize$2,$Enumerator_each$3,$Enumerator_size$4,$Enumerator_with_index$5,$Enumerator_inspect$7,self=$klass($base,null,”Enumerator“),$nesting=.concat($parent_nesting);return self.$$prototype.size=self.$$prototype.args=self.$$prototype.object=self.$$prototype.method=nil,self.$include($$($nesting,”Enumerable“)),self.$$prototype.$$is_enumerator=!0,Opal.defs(self,”$for“,$Enumerator_for$1=function(object,$a,$b){var $post_args,method,args,$iter=$Enumerator_for$1.$$p,block=$iter||nil;$iter&&($Enumerator_for$1.$$p=null),$iter&&($Enumerator_for$1.$$p=null),0<($post_args=Opal.slice.call(arguments,1,arguments.length)).length&&(method=$post_args,$post_args.splice(0,1)),null==method&&(method=”each“),args=$post_args;var obj=this.$allocate();return obj.object=object,obj.size=block,obj.method=method,obj.args=args,obj},$Enumerator_for$1.$$arity=-2),Opal.def(self,”$initialize“,$Enumerator_initialize$2=function($a){var $iter=$Enumerator_initialize$2.$$p,block=$iter||nil;return $iter&&($Enumerator_initialize$2.$$p=null),$iter&&($Enumerator_initialize$2.$$p=null),Opal.slice.call(arguments,0,arguments.length),$truthy(block)?(this.object=$send($$($nesting,”Generator“),”new“,[],block.$to_proc()),this.method=”each“,this.args=,this.size=$a||nil,$truthy(this.size)?this.size=$$($nesting,”Opal“).$coerce_to(this.size,$$($nesting,”Integer“),”to_int“):nil):(this.object=$a,this.method=arguments||”each“,this.args=$slice.call(arguments,2),this.size=nil)},$Enumerator_initialize$2.$$arity=-1),Opal.def(self,”$each“,$Enumerator_each$3=function($a){var args,$b,$iter=$Enumerator_each$3.$$p,block=$iter||nil;return $iter&&($Enumerator_each$3.$$p=null),$iter&&($Enumerator_each$3.$$p=null),args=Opal.slice.call(arguments,0,arguments.length),$truthy($truthy($b=block())?args():$b)?this:(args=$rb_plus(this.args,args),$truthy(block())?$send(this.$class(),”new“,.concat(Opal.to_a(args))):$send(this.object,”__send__“,.concat(Opal.to_a(args)),block.$to_proc()))},$Enumerator_each$3.$$arity=-1),Opal.def(self,”$size“,$Enumerator_size$4=function(){return $truthy($$($nesting,”Proc“)(this.size))?$send(this.size,”call“,Opal.to_a(this.args)):this.size},$Enumerator_size$4.$$arity=0),Opal.def(self,”$with_index“,$Enumerator_with_index$5=function(offset){var $$6,$iter=$Enumerator_with_index$5.$$p,block=$iter||nil;if($iter&&($Enumerator_with_index$5.$$p=null),$iter&&($Enumerator_with_index$5.$$p=null),null==offset&&(offset=0),offset=$truthy(offset)?$$($nesting,”Opal“).$coerce_to(offset,$$($nesting,”Integer“),”to_int“):0,!$truthy(block))return $send(this,”enum_for“,,(($$6=function(){return($$6.$$s||this).$size()}).$$s=this,$$6.$$arity=0,$$6));var index=offset;return this.$each.$$p=function(){var param=$$($nesting,”Opal“).$destructure(arguments),value=block(param,index);return index++,value},this.$each()},$Enumerator_with_index$5.$$arity=-1),Opal.alias(self,”with_object“,”each_with_object“),Opal.def(self,”$inspect“,$Enumerator_inspect$7=function(){var result=nil;return result=”#<“+this.$class()+”: “+this.object.$inspect()+”:“+this.method,$truthy(this.args())&&(result=$rb_plus(result,”(“+this.args.$inspect()[”$“]($$($nesting,”Range“).$new(1,-2))+”)“)),$rb_plus(result,”>“)},$Enumerator_inspect$7.$$arity=0),function($base,$super,$parent_nesting){var $Generator_initialize$8,$Generator_each$9,self=$klass($base,null,”Generator“),$nesting=.concat($parent_nesting);self.$$prototype.block=nil,self.$include($$($nesting,”Enumerable“)),Opal.def(self,”$initialize“,$Generator_initialize$8=function(){var $iter=$Generator_initialize$8.$$p,block=$iter||nil;return $iter&&($Generator_initialize$8.$$p=null),$iter&&($Generator_initialize$8.$$p=null),$truthy(block)||this.$raise($$($nesting,”LocalJumpError“),”no block given“),this.block=block},$Generator_initialize$8.$$arity=0),Opal.def(self,”$each“,$Generator_each$9=function($a){var args,yielder,$iter=$Generator_each$9.$$p,block=$iter||nil;$iter&&($Generator_each$9.$$p=null),$iter&&($Generator_each$9.$$p=null),args=Opal.slice.call(arguments,0,arguments.length),yielder=$send($$($nesting,”Yielder“),”new“,[],block.$to_proc());try{args.unshift(yielder),Opal.yieldX(this.block,args)}catch(e){if(e===$breaker)return $breaker.$v;throw e}return this},$Generator_each$9.$$arity=-1)}($nesting,0,$nesting),function($base,$super,$parent_nesting){var $Yielder_initialize$10,$Yielder_yield$11,$Yielder_$lt$lt$12,self=$klass($base,null,”Yielder“);.concat($parent_nesting);self.$$prototype.block=nil,Opal.def(self,”$initialize“,$Yielder_initialize$10=function(){var $iter=$Yielder_initialize$10.$$p,block=$iter||nil;return $iter&&($Yielder_initialize$10.$$p=null),$iter&&($Yielder_initialize$10.$$p=null),this.block=block},$Yielder_initialize$10.$$arity=0),Opal.def(self,”$yield“,$Yielder_yield$11=function($a){var values;values=Opal.slice.call(arguments,0,arguments.length);var value=Opal.yieldX(this.block,values);if(value===$breaker)throw $breaker;return value},$Yielder_yield$11.$$arity=-1),Opal.def(self,”$<<“,$Yielder_$lt$lt$12=function($a){var values;return values=Opal.slice.call(arguments,0,arguments.length),$send(this,”yield“,Opal.to_a(values)),this},$Yielder_$lt$lt$12.$$arity=-1)}($nesting,0,$nesting),function($base,$super,$parent_nesting){var $Lazy_initialize$13,$Lazy_lazy$16,$Lazy_collect$17,$Lazy_collect_concat$19,$Lazy_drop$23,$Lazy_drop_while$25,$Lazy_enum_for$27,$Lazy_find_all$28,$Lazy_grep$30,$Lazy_reject$33,$Lazy_take$35,$Lazy_take_while$37,$Lazy_inspect$39,self=$klass($base,$super,”Lazy“),$nesting=.concat($parent_nesting);return self.$$prototype.enumerator=nil,function($base,$super,$parent_nesting){[$klass($base,$super,”StopLazyError“)].concat($parent_nesting)}($nesting,$$($nesting,”Exception“),$nesting),Opal.def(self,”$initialize“,$Lazy_initialize$13=function(object,size){var $$14,$iter=$Lazy_initialize$13.$$p,block=$iter||nil;return $iter&&($Lazy_initialize$13.$$p=null),$iter&&($Lazy_initialize$13.$$p=null),null==size&&(size=nil),block!==nil||this.$raise($$($nesting,”ArgumentError“),”tried to call lazy new without a block“),this.enumerator=object,$send(this,Opal.find_super_dispatcher(this,”initialize“,$Lazy_initialize$13,!1),,(($$14=function(yielder,$a){var each_args,$$15,self=$$14.$$s||this;null==yielder&&(yielder=nil),each_args=Opal.slice.call(arguments,1,arguments.length);try{return $send(object,”each“,Opal.to_a(each_args),(($$15=function($b){var args;$$15.$$s;(args=Opal.slice.call(arguments,0,arguments.length)).unshift(yielder),Opal.yieldX(block,args)}).$$s=self,$$15.$$arity=-1,$$15))}catch($err){if(!Opal.rescue($err,))throw $err;try{return nil}finally{Opal.pop_exception()}}}).$$s=this,$$14.$$arity=-2,$$14))},$Lazy_initialize$13.$$arity=-2),Opal.alias(self,”force“,”to_a“),Opal.def(self,”$lazy“,$Lazy_lazy$16=function(){return this},$Lazy_lazy$16.$$arity=0),Opal.def(self,”$collect“,$Lazy_collect$17=function(){var $$18,$iter=$Lazy_collect$17.$$p,block=$iter||nil;return $iter&&($Lazy_collect$17.$$p=null),$iter&&($Lazy_collect$17.$$p=null),$truthy(block)||this.$raise($$($nesting,”ArgumentError“),”tried to call lazy map without a block“),$send($$($nesting,”Lazy“),”new“,,(($$18=function(enum$,$a){var args;$$18.$$s;null==enum$&&(enum$=nil),args=Opal.slice.call(arguments,1,arguments.length);var value=Opal.yieldX(block,args);enum$.$yield(value)}).$$s=this,$$18.$$arity=-2,$$18))},$Lazy_collect$17.$$arity=0),Opal.def(self,”$collect_concat“,$Lazy_collect_concat$19=function(){var $$20,$iter=$Lazy_collect_concat$19.$$p,block=$iter||nil;return $iter&&($Lazy_collect_concat$19.$$p=null),$iter&&($Lazy_collect_concat$19.$$p=null),$truthy(block)||this.$raise($$($nesting,”ArgumentError“),”tried to call lazy map without a block“),$send($$($nesting,”Lazy“),”new“,,(($$20=function(enum$,$a){var args,$$21,$$22,self=$$20.$$s||this;null==enum$&&(enum$=nil),args=Opal.slice.call(arguments,1,arguments.length);var value=Opal.yieldX(block,args);value(”force“)&&value(”each“)?$send(value,”each“,[],(($$21=function(v){$$21.$$s;return null==v&&(v=nil),enum$.$yield(v)}).$$s=self,$$21.$$arity=1,$$21)):$$($nesting,”Opal“).$try_convert(value,$$($nesting,”Array“),”to_ary“)===nil?enum$.$yield(value):$send(value,”each“,[],(($$22=function(v){$$22.$$s;return null==v&&(v=nil),enum$.$yield(v)}).$$s=self,$$22.$$arity=1,$$22))}).$$s=this,$$20.$$arity=-2,$$20))},$Lazy_collect_concat$19.$$arity=0),Opal.def(self,”$drop“,$Lazy_drop$23=function(n){var $$24,current_size,set_size,dropped=nil;return n=$$($nesting,”Opal“).$coerce_to(n,$$($nesting,”Integer“),”to_int“),$truthy($rb_lt(n,0))&&this.$raise($$($nesting,”ArgumentError“),”attempt to drop negative size“),current_size=this.$enumerator_size(),set_size=$truthy($$($nesting,”Integer“)(current_size))&&$truthy($rb_lt(n,current_size))?n:current_size,dropped=0,$send($$($nesting,”Lazy“),”new“,,(($$24=function(enum$,$a){var args;$$24.$$s;return null==enum$&&(enum$=nil),args=Opal.slice.call(arguments,1,arguments.length),$truthy($rb_lt(dropped,n))?dropped=$rb_plus(dropped,1):$send(enum$,”yield“,Opal.to_a(args))}).$$s=this,$$24.$$arity=-2,$$24))},$Lazy_drop$23.$$arity=1),Opal.def(self,”$drop_while“,$Lazy_drop_while$25=function(){var $$26,$iter=$Lazy_drop_while$25.$$p,block=$iter||nil,succeeding=nil;return $iter&&($Lazy_drop_while$25.$$p=null),$iter&&($Lazy_drop_while$25.$$p=null),$truthy(block)||this.$raise($$($nesting,”ArgumentError“),”tried to call lazy drop_while without a block“),succeeding=!0,$send($$($nesting,”Lazy“),”new“,,(($$26=function(enum$,$a){var args;$$26.$$s;if(null==enum$&&(enum$=nil),args=Opal.slice.call(arguments,1,arguments.length),!$truthy(succeeding))return $send(enum$,”yield“,Opal.to_a(args));var value=Opal.yieldX(block,args);$falsy(value)&&(succeeding=!1,$send(enum$,”yield“,Opal.to_a(args)))}).$$s=this,$$26.$$arity=-2,$$26))},$Lazy_drop_while$25.$$arity=0),Opal.def(self,”$enum_for“,$Lazy_enum_for$27=function($a,$b){var $post_args,method,args,$iter=$Lazy_enum_for$27.$$p,block=$iter||nil,self=this;return $iter&&($Lazy_enum_for$27.$$p=null),$iter&&($Lazy_enum_for$27.$$p=null),0<($post_args=Opal.slice.call(arguments,0,arguments.length)).length&&(method=$post_args,$post_args.splice(0,1)),null==method&&(method=”each“),args=$post_args,$send(self.$class(),”for“,.concat(Opal.to_a(args)),block.$to_proc())},$Lazy_enum_for$27.$$arity=-1),Opal.def(self,”$find_all“,$Lazy_find_all$28=function(){var $$29,$iter=$Lazy_find_all$28.$$p,block=$iter||nil;return $iter&&($Lazy_find_all$28.$$p=null),$iter&&($Lazy_find_all$28.$$p=null),$truthy(block)||this.$raise($$($nesting,”ArgumentError“),”tried to call lazy select without a block“),$send($$($nesting,”Lazy“),”new“,,(($$29=function(enum$,$a){var args;$$29.$$s;null==enum$&&(enum$=nil),args=Opal.slice.call(arguments,1,arguments.length);var value=Opal.yieldX(block,args);$truthy(value)&&$send(enum$,”yield“,Opal.to_a(args))}).$$s=this,$$29.$$arity=-2,$$29))},$Lazy_find_all$28.$$arity=0),Opal.alias(self,”flat_map“,”collect_concat“),Opal.def(self,”$grep“,$Lazy_grep$30=function(pattern){var $$31,$$32,$iter=$Lazy_grep$30.$$p,block=$iter||nil;return $iter&&($Lazy_grep$30.$$p=null),$iter&&($Lazy_grep$30.$$p=null),$truthy(block)?$send($$($nesting,”Lazy“),”new“,,(($$31=function(enum$,$a){var args;$$31.$$s;null==enum$&&(enum$=nil),args=Opal.slice.call(arguments,1,arguments.length);var param=$$($nesting,”Opal“).$destructure(args),value=pattern(param);$truthy(value)&&(value=Opal.yield1(block,param),enum$.$yield(Opal.yield1(block,param)))}).$$s=this,$$31.$$arity=-2,$$31)):$send($$($nesting,”Lazy“),”new“,,(($$32=function(enum$,$a){var args;$$32.$$s;null==enum$&&(enum$=nil),args=Opal.slice.call(arguments,1,arguments.length);var param=$$($nesting,”Opal“).$destructure(args),value=pattern(param);$truthy(value)&&enum$.$yield(param)}).$$s=this,$$32.$$arity=-2,$$32))},$Lazy_grep$30.$$arity=1),Opal.alias(self,”map“,”collect“),Opal.alias(self,”select“,”find_all“),Opal.def(self,”$reject“,$Lazy_reject$33=function(){var $$34,$iter=$Lazy_reject$33.$$p,block=$iter||nil;return $iter&&($Lazy_reject$33.$$p=null),$iter&&($Lazy_reject$33.$$p=null),$truthy(block)||this.$raise($$($nesting,”ArgumentError“),”tried to call lazy reject without a block“),$send($$($nesting,”Lazy“),”new“,,(($$34=function(enum$,$a){var args;$$34.$$s;null==enum$&&(enum$=nil),args=Opal.slice.call(arguments,1,arguments.length);var value=Opal.yieldX(block,args);$falsy(value)&&$send(enum$,”yield“,Opal.to_a(args))}).$$s=this,$$34.$$arity=-2,$$34))},$Lazy_reject$33.$$arity=0),Opal.def(self,”$take“,$Lazy_take$35=function(n){var $$36,current_size,set_size,taken=nil;return n=$$($nesting,”Opal“).$coerce_to(n,$$($nesting,”Integer“),”to_int“),$truthy($rb_lt(n,0))&&this.$raise($$($nesting,”ArgumentError“),”attempt to take negative size“),current_size=this.$enumerator_size(),set_size=$truthy($$($nesting,”Integer“)(current_size))&&$truthy($rb_lt(n,current_size))?n:current_size,taken=0,$send($$($nesting,”Lazy“),”new“,,(($$36=function(enum$,$a){var args,self=$$36.$$s||this;return null==enum$&&(enum$=nil),args=Opal.slice.call(arguments,1,arguments.length),$truthy($rb_lt(taken,n))?($send(enum$,”yield“,Opal.to_a(args)),taken=$rb_plus(taken,1)):self.$raise($$($nesting,”StopLazyError“))}).$$s=this,$$36.$$arity=-2,$$36))},$Lazy_take$35.$$arity=1),Opal.def(self,”$take_while“,$Lazy_take_while$37=function(){var $$38,$iter=$Lazy_take_while$37.$$p,block=$iter||nil;return $iter&&($Lazy_take_while$37.$$p=null),$iter&&($Lazy_take_while$37.$$p=null),$truthy(block)||this.$raise($$($nesting,”ArgumentError“),”tried to call lazy take_while without a block“),$send($$($nesting,”Lazy“),”new“,,(($$38=function(enum$,$a){var args,self=$$38.$$s||this;null==enum$&&(enum$=nil),args=Opal.slice.call(arguments,1,arguments.length);var value=Opal.yieldX(block,args);$truthy(value)?$send(enum$,”yield“,Opal.to_a(args)):self.$raise($$($nesting,”StopLazyError“))}).$$s=this,$$38.$$arity=-2,$$38))},$Lazy_take_while$37.$$arity=0),Opal.alias(self,”to_enum“,”enum_for“),Opal.def(self,”$inspect“,$Lazy_inspect$39=function(){return”#<“+this.$class()+”: “+this.enumerator.$inspect()+”>“},$Lazy_inspect$39.$$arity=0),nil&&”inspect“}($nesting,self,$nesting)}($nesting,0,$nesting)},Opal.modules=function(Opal){function $rb_minus(lhs,rhs){return”number“==typeof lhs&&”number“==typeof rhs?lhs-rhs:lhs(rhs)}function $rb_times(lhs,rhs){return”number“==typeof lhs&&”number“==typeof rhs?lhs*rhs:lhs(rhs)}function $rb_lt(lhs,rhs){return”number“==typeof lhs&&”number“==typeof rhs?lhs(rhs)}function $rb_divide(lhs,rhs){return”number“==typeof lhs&&”number“==typeof rhs?lhs/rhs:lhs(rhs)}var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.const_get_qualified,$$=Opal.const_get_relative,$klass=(Opal.breaker,Opal.slice,Opal.klass),$truthy=Opal.truthy,$hash2=Opal.hash2;return ”,“$ceil”,“$to_f”,“$denominator”,“$to_r”,“$==”,“$floor”,“$/”,“$%”,“$Complex”,“$zero?”,“$numerator”,“$abs”,“$arg”,“$coerce_to!”,“$round”,“$to_i”,“$truncate”,“$>”] at Opal.add_stubs(["$require","$include","$instance_of?","$class","$Float","$respond_to?","$coerce","$__send__","$===","$raise","$equal?","$-","$*","$div","$<","$-),self.$require(“corelib/comparable”),function($base,$super,$parent_nesting){var $Numeric_coerce$1,$Numeric___coerced__$2,$Numeric_$lt_eq_gt$3,$Numeric_$plus$$4,$Numeric_$minus$$5,$Numeric_$percent$6,$Numeric_abs$7,$Numeric_abs2$8,$Numeric_angle$9,$Numeric_ceil$10,$Numeric_conj$11,$Numeric_denominator$12,$Numeric_div$13,$Numeric_divmod$14,$Numeric_fdiv$15,$Numeric_floor$16,$Numeric_i$17,$Numeric_imag$18,$Numeric_integer$ques$19,$Numeric_nonzero$ques$20,$Numeric_numerator$21,$Numeric_polar$22,$Numeric_quo$23,$Numeric_real$24,$Numeric_real$ques$25,$Numeric_rect$26,$Numeric_round$27,$Numeric_to_c$28,$Numeric_to_int$29,$Numeric_truncate$30,$Numeric_zero$ques$31,$Numeric_positive$ques$32,$Numeric_negative$ques$33,$Numeric_dup$34,$Numeric_clone$35,$Numeric_finite$ques$36,$Numeric_infinite$ques$37,self=$klass($base,null,“Numeric”),$nesting=.concat($parent_nesting);return self.$include($$($nesting,“Comparable”)),Opal.def(self,“$coerce”,$Numeric_coerce$1=function(other){return $truthy(other(this.$class()))?:[this.$Float(other),this.$Float(this)]},$Numeric_coerce$1.$$arity=1),Opal.def(self,“$__coerced__”,$Numeric___coerced__$2=function(method,other){var $a,$b,self=this,a=nil,b=nil,$case=nil;return $truthy(other(“coerce”))?($b=other.$coerce(self),a=null==($a=Opal.to_ary($b))?nil:$a,b=null==$a?nil:$a,a.$__send__(method,b)):“+”($case=method)||“-”($case)||“*”($case)||“/”($case)||“%”($case)||“&”($case)||“|”($case)||“^”($case)||“**”($case)?self.$raise($$($nesting,“TypeError”),other.$class()+“ can't be coerced into Numeric”):“>”($case)||“>=”($case)||“<"($case)||”<="($case)||“<=>”($case)?self.$raise($$($nesting,“ArgumentError”),“comparison of ”+self.$class()+“ with ”+other.$class()+“ failed”):nil},$Numeric___coerced__$2.$$arity=2),Opal.def(self,“$<=>”,$Numeric_$lt_eq_gt$3=function(other){return $truthy(this(other))?0:nil},$Numeric_$lt_eq_gt$3.$$arity=1),Opal.def(self,“$+@”,$Numeric_$plus$$4=function(){return this},$Numeric_$plus$$4.$$arity=0),Opal.def(self,“$-@”,$Numeric_$minus$$5=function(){return $rb_minus(0,this)},$Numeric_$minus$$5.$$arity=0),Opal.def(self,“$%”,$Numeric_$percent$6=function(other){return $rb_minus(this,$rb_times(other,this.$div(other)))},$Numeric_$percent$6.$$arity=1),Opal.def(self,“$abs”,$Numeric_abs$7=function(){return $rb_lt(this,0)?this():this},$Numeric_abs$7.$$arity=0),Opal.def(self,“$abs2”,$Numeric_abs2$8=function(){return $rb_times(this,this)},$Numeric_abs2$8.$$arity=0),Opal.def(self,“$angle”,$Numeric_angle$9=function(){return $rb_lt(this,0)?$$$($$($nesting,“Math”),“PI”):0},$Numeric_angle$9.$$arity=0),Opal.alias(self,“arg”,“angle”),Opal.def(self,“$ceil”,$Numeric_ceil$10=function(ndigits){return null==ndigits&&(ndigits=0),this.$to_f().$ceil(ndigits)},$Numeric_ceil$10.$$arity=-1),Opal.def(self,“$conj”,$Numeric_conj$11=function(){return this},$Numeric_conj$11.$$arity=0),Opal.alias(self,“conjugate”,“conj”),Opal.def(self,“$denominator”,$Numeric_denominator$12=function(){return this.$to_r().$denominator()},$Numeric_denominator$12.$$arity=0),Opal.def(self,“$div”,$Numeric_div$13=function(other){return other(0)&&this.$raise($$($nesting,“ZeroDivisionError”),“divided by o”),$rb_divide(this,other).$floor()},$Numeric_div$13.$$arity=1),Opal.def(self,“$divmod”,$Numeric_divmod$14=function(other){return[this.$div(other),this(other)]},$Numeric_divmod$14.$$arity=1),Opal.def(self,“$fdiv”,$Numeric_fdiv$15=function(other){return $rb_divide(this.$to_f(),other)},$Numeric_fdiv$15.$$arity=1),Opal.def(self,“$floor”,$Numeric_floor$16=function(ndigits){return null==ndigits&&(ndigits=0),this.$to_f().$floor(ndigits)},$Numeric_floor$16.$$arity=-1),Opal.def(self,“$i”,$Numeric_i$17=function(){return this.$Complex(0,this)},$Numeric_i$17.$$arity=0),Opal.def(self,“$imag”,$Numeric_imag$18=function(){return 0},$Numeric_imag$18.$$arity=0),Opal.alias(self,“imaginary”,“imag”),Opal.def(self,“$integer?”,$Numeric_integer$ques$19=function(){return!1},$Numeric_integer$ques$19.$$arity=0),Opal.alias(self,“magnitude”,“abs”),Opal.alias(self,“modulo”,“%”),Opal.def(self,“$nonzero?”,$Numeric_nonzero$ques$20=function(){return $truthy(this())?nil:this},$Numeric_nonzero$ques$20.$$arity=0),Opal.def(self,“$numerator”,$Numeric_numerator$21=function(){return this.$to_r().$numerator()},$Numeric_numerator$21.$$arity=0),Opal.alias(self,“phase”,“arg”),Opal.def(self,“$polar”,$Numeric_polar$22=function(){return},$Numeric_polar$22.$$arity=0),Opal.def(self,“$quo”,$Numeric_quo$23=function(other){return $rb_divide($$($nesting,“Opal”)(this,$$($nesting,“Rational”),“to_r”),other)},$Numeric_quo$23.$$arity=1),Opal.def(self,“$real”,$Numeric_real$24=function(){return this},$Numeric_real$24.$$arity=0),Opal.def(self,“$real?”,$Numeric_real$ques$25=function(){return!0},$Numeric_real$ques$25.$$arity=0),Opal.def(self,“$rect”,$Numeric_rect$26=function(){return},$Numeric_rect$26.$$arity=0),Opal.alias(self,“rectangular”,“rect”),Opal.def(self,“$round”,$Numeric_round$27=function(digits){return this.$to_f().$round(digits)},$Numeric_round$27.$$arity=-1),Opal.def(self,“$to_c”,$Numeric_to_c$28=function(){return this.$Complex(this,0)},$Numeric_to_c$28.$$arity=0),Opal.def(self,“$to_int”,$Numeric_to_int$29=function(){return this.$to_i()},$Numeric_to_int$29.$$arity=0),Opal.def(self,“$truncate”,$Numeric_truncate$30=function(ndigits){return null==ndigits&&(ndigits=0),this.$to_f().$truncate(ndigits)},$Numeric_truncate$30.$$arity=-1),Opal.def(self,“$zero?”,$Numeric_zero$ques$31=function(){return this(0)},$Numeric_zero$ques$31.$$arity=0),Opal.def(self,“$positive?”,$Numeric_positive$ques$32=function(){var lhs,rhs;return rhs=0,“number”==typeof(lhs=this)&&“number”==typeof “”>rhs?rhs(rhs)},$Numeric_positive$ques$32.$$arity=0),Opal.def(self,“$negative?”,$Numeric_negative$ques$33=function(){return $rb_lt(this,0)},$Numeric_negative$ques$33.$$arity=0),Opal.def(self,“$dup”,$Numeric_dup$34=function(){return this},$Numeric_dup$34.$$arity=0),Opal.def(self,“$clone”,$Numeric_clone$35=function($kwargs){if(null==$kwargs)$kwargs=$hash2([],{});else if(!$kwargs.$$is_hash)throw Opal.ArgumentError.$new(“expected kwargs”);return null==$kwargs.$$smap.freeze&&!0,this},$Numeric_clone$35.$$arity=-1),Opal.def(self,“$finite?”,$Numeric_finite$ques$36=function(){return!0},$Numeric_finite$ques$36.$$arity=0),Opal.def(self,“$infinite?”,$Numeric_infinite$ques$37=function(){return nil},$Numeric_infinite$ques$37.$$arity=0),nil&&“infinite?”}($nesting,0,$nesting)},Opal.modules=function(Opal){function $rb_gt(lhs,rhs){return“number”==typeof lhs&&“number”==typeof “”>rhs?rhs(rhs)}var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.const_get_qualified,$$=Opal.const_get_relative,$klass=(Opal.breaker,Opal.slice,Opal.klass),$truthy=Opal.truthy,$hash2=Opal.hash2,$send=Opal.send,$gvars=Opal.gvars;return Opal.add_stubs([“$require”,“$include”,“$to_a”,“$warn”,“$raise”,“$replace”,“$respond_to?”,“$to_ary”,“$coerce_to”,“$coerce_to?”,“$===”,“$join”,“$to_str”,“$class”,“$hash”,“$<=>”,“$==”,“$object_id”,“$inspect”,“$enum_for”,“$bsearch_index”,“$to_proc”,“$nil?”,“$coerce_to!”,“$>”,“$*”,“$enumerator_size”,“$empty?”,“$size”,“$map”,“$equal?”,“$dup”,“$each”,“$”,“$dig”,“$eql?”,“$length”,“$begin”,“$end”,“$exclude_end?”,“$flatten”,“$__id__”,“$to_s”,“$new”,“$max”,“$min”,“$!”,“$>=”,“$**”,“$delete_if”,“$reverse”,“$rotate”,“$rand”,“$at”,“$keep_if”,“$shuffle!”,“$<","$sort","$sort_by","$!=","$times","$),self.$require(”corelib/enumerable“),self.$require(”corelib/numeric“),function($base,$super,$parent_nesting){var $Array_$$$1,$Array_initialize$2,$Array_try_convert$3,$Array_$$4,$Array_$$5,$Array_$$6,$Array_$plus$7,$Array_$minus$8,$Array_$lt$lt$9,$Array_$lt_eq_gt$10,$Array_$eq_eq$11,$Array_$$$12,$Array_$$$eq$13,$Array_any$ques$14,$Array_assoc$15,$Array_at$16,$Array_bsearch_index$17,$Array_bsearch$18,$Array_cycle$19,$Array_clear$21,$Array_count$22,$Array_initialize_copy$23,$Array_collect$24,$Array_collect$excl$26,$Array_combination$28,$Array_repeated_combination$30,$Array_compact$32,$Array_compact$excl$33,$Array_concat$34,$Array_delete$37,$Array_delete_at$38,$Array_delete_if$39,$Array_dig$41,$Array_drop$42,$Array_dup$43,$Array_each$44,$Array_each_index$46,$Array_empty$ques$48,$Array_eql$ques$49,$Array_fetch$50,$Array_fill$51,$Array_first$52,$Array_flatten$53,$Array_flatten$excl$54,$Array_hash$55,$Array_include$ques$56,$Array_index$57,$Array_insert$58,$Array_inspect$59,$Array_join$60,$Array_keep_if$61,$Array_last$63,$Array_length$64,$Array_max$65,$Array_min$66,$Array_permutation$67,$Array_repeated_permutation$69,$Array_pop$71,$Array_product$72,$Array_push$73,$Array_rassoc$74,$Array_reject$75,$Array_reject$excl$77,$Array_replace$79,$Array_reverse$80,$Array_reverse$excl$81,$Array_reverse_each$82,$Array_rindex$84,$Array_rotate$85,$Array_rotate$excl$86,$Array_sample$89,$Array_select$90,$Array_select$excl$92,$Array_shift$94,$Array_shuffle$95,$Array_shuffle$excl$96,$Array_slice$excl$97,$Array_sort$98,$Array_sort$excl$99,$Array_sort_by$excl$100,$Array_take$102,$Array_take_while$103,$Array_to_a$104,$Array_to_h$105,$Array_transpose$106,$Array_uniq$109,$Array_uniq$excl$110,$Array_unshift$111,$Array_values_at$112,$Array_zip$115,$Array_inherited$116,$Array_instance_variables$117,$Array_pack$119,self=$klass($base,$super,”Array“),$nesting=.concat($parent_nesting);function toArraySubclass(obj,klass){return klass.$$name===Opal.Array?obj:klass.$allocate().$replace(obj.$to_a())}function binomial_coefficient(n,k){return n===k||0===k?1:0<k&&k<n?binomial_coefficient(n-1,k-1)+binomial_coefficient(n-1,k):0}return self.$include($$($nesting,”Enumerable“)),Opal.defineProperty(self.$$prototype,”$$is_array“,!0),Opal.defs(self,”$[]“,$Array_$$$1=function($a){return toArraySubclass(Opal.slice.call(arguments,0,arguments.length),this)},$Array_$$$1.$$arity=-1),Opal.def(self,”$initialize“,$Array_initialize$2=function(size,obj){var i,value,$iter=$Array_initialize$2.$$p,block=$iter||nil;if($iter&&($Array_initialize$2.$$p=null),$iter&&($Array_initialize$2.$$p=null),null==size&&(size=nil),null==obj&&(obj=nil),obj!==nil&&block!==nil&&this.$warn(”warning: block supersedes default value argument“),size>$$$($$($nesting,”Integer“),”MAX“)&&this.$raise($$($nesting,”ArgumentError“),”array size too big“),2<arguments.length&&this.$raise($$($nesting,”ArgumentError“),”wrong number of arguments (“arguments.length” for 0..2)“),0===arguments.length)return this.splice(0,this.length),this;if(1===arguments.length){if(size.$$is_array)return this.$replace(size.$to_a()),this;if(size(”to_ary“))return this.$replace(size.$to_ary()),this}if((size=$$($nesting,”Opal“).$coerce_to(size,$$($nesting,”Integer“),”to_int“))<0&&this.$raise($$($nesting,”ArgumentError“),”negative array size“),this.splice(0,this.length),block===nil)for(i=0;i<size;i++)this.push(obj);else for(i=0;i=value;return this},$Array_initialize$2.$$arity=-1),Opal.defs(self,”$try_convert“,$Array_try_convert$3=function(obj){return $$($nesting,”Opal“)(obj,$$($nesting,”Array“),”to_ary“)},$Array_try_convert$3.$$arity=1),Opal.def(self,”$&“,$Array_$$4=function(other){other=$truthy($$($nesting,”Array“)(other))?other.$to_a():$$($nesting,”Opal“).$coerce_to(other,$$($nesting,”Array“),”to_ary“).$to_a();var i,length,item,result=[],hash=$hash2(,{});for(i=0,length=other.length;i,!0);for(i=0,length=this.length;i,void 0!==Opal.hash_delete(hash,item)&&result.push(item);return result},$Array_$$4.$$arity=1),Opal.def(self,”$|“,$Array_$$5=function(other){other=$truthy($$($nesting,”Array“)(other))?other.$to_a():$$($nesting,”Opal“).$coerce_to(other,$$($nesting,”Array“),”to_ary“).$to_a();var i,length,hash=$hash2([],{});for(i=0,length=this.length;i,!0);for(i=0,length=other.length;i,!0);return hash.$keys()},$Array_$$5.$$arity=1),Opal.def(self,”$*“,$Array_$$6=function(other){if($truthy(other(”to_str“)))return this.$join(other.$to_str());other=$$($nesting,”Opal“).$coerce_to(other,$$($nesting,”Integer“),”to_int“),$truthy(other<0)&&this.$raise($$($nesting,”ArgumentError“),”negative argument“);for(var result=[],converted=this.$to_a(),i=0;i<other;i++)result=result.concat(converted);return toArraySubclass(result,this.$class())},$Array_$$6.$$arity=1),Opal.def(self,”$+“,$Array_$plus$7=function(other){return other=$truthy($$($nesting,”Array“)(other))?other.$to_a():$$($nesting,”Opal“).$coerce_to(other,$$($nesting,”Array“),”to_ary“).$to_a(),this.concat(other)},$Array_$plus$7.$$arity=1),Opal.def(self,”$-“,$Array_$minus$8=function(other){if(other=$truthy($$($nesting,”Array“)(other))?other.$to_a():$$($nesting,”Opal“).$coerce_to(other,$$($nesting,”Array“),”to_ary“).$to_a(),$truthy(0===this.length))return[];if($truthy(0===other.length))return this.slice();var i,length,item,result=[],hash=$hash2(,{});for(i=0,length=other.length;i,!0);for(i=0,length=this.length;i,void 0===Opal.hash_get(hash,item)&&result.push(item);return result},$Array_$minus$8.$$arity=1),Opal.def(self,”$<<“,$Array_$lt$lt$9=function(object){return this.push(object),this},$Array_$lt$lt$9.$$arity=1),Opal.def(self,”$<=>“,$Array_$lt_eq_gt$10=function(other){if($truthy($$($nesting,”Array“)(other)))other=other.$to_a();else{if(!$truthy(other(”to_ary“)))return nil;other=other.$to_ary().$to_a()}if(this.$hash()===other.$hash())return 0;for(var count=Math.min(this.length,other.length),i=0;i<count;i++){var tmp=this[”$<=>“](other);if(0!==tmp)return tmp}return ”“>this.length(other.length)},$Array_$lt_eq_gt$10.$$arity=1),Opal.def(self,”$==“,$Array_$eq_eq$11=function(other){var recursed={};return function _eqeq(array,other){var i,length,a,b;if(array===other)return!0;if(!other.$$is_array)return!!$$($nesting,”Opal“)(other,”to_ary“)&&other(array);if(array.$$constructor!==Array&&(array=array.$to_a()),other.$$constructor!==Array&&(other=other.$to_a()),array.length!==other.length)return!1;for(recursed=!0,i=0,length=array.length;i,b=other,a.$$is_array){if(b.$$is_array&&b.length!==a.length)return!1;if(!recursed.hasOwnProperty(a.$object_id())&&!_eqeq(a,b))return!1}else if(!a(b))return!1;return!0}(this,other)},$Array_$eq_eq$11.$$arity=1),Opal.def(self,”$[]“,$Array_$$$12=function(index,length){return index.$$is_range?function(self,index){var exclude,from,to,size=self.length;return exclude=index.excl,from=Opal.Opal.$coerce_to(index.begin,Opal.Integer,”to_int“),to=Opal.Opal.$coerce_to(index.end,Opal.Integer,”to_int“),from<0&&(from+=size)<0?nil:size<from?nil:to<0&&(to+=size)<0?[]:(exclude||(to+=1),toArraySubclass(self.slice(from,to),self.$class()))}(this,index):function(self,index,length){var size=self.length;return(index=Opal.Opal.$coerce_to(index,Opal.Integer,”to_int“))<0&&(index+=size)<0?nil:void 0===length?size<=index||index<0?nil:self:(length=Opal.Opal.$coerce_to(length,Opal.Integer,”to_int“))<0||size<index||index<0?nil:toArraySubclass(self.slice(index,index+length),self.$class())}(this,index,length)},$Array_$$$12.$$arity=-2),Opal.def(self,”$[]=“,$Array_$$$eq$13=function(index,value,extra){var i,old,data=nil,length=nil,size=this.length;if($truthy($$($nesting,”Range“)(index))){data=$truthy($$($nesting,”Array“)(value))?value.$to_a():$truthy(value(”to_ary“))?value.$to_ary().$to_a():;var exclude=index.excl,from=$$($nesting,”Opal“).$coerce_to(index.begin,$$($nesting,”Integer“),”to_int“),to=$$($nesting,”Opal“).$coerce_to(index.end,$$($nesting,”Integer“),”to_int“);if(from<0&&(from+=size)<0&&this.$raise($$($nesting,”RangeError“),index.$inspect()+” out of range“),to<0&&(to+=size),exclude||(to+=1),size=nil;return to<0?this.splice.apply(this,.concat(data)):this.splice.apply(this,.concat(data)),value}if($truthy(void 0===extra)?length=1:(length=value,value=extra,data=$truthy($$($nesting,”Array“)(value))?value.$to_a():$truthy(value(”to_ary“))?value.$to_ary().$to_a():),index=$$($nesting,”Opal“).$coerce_to(index,$$($nesting,”Integer“),”to_int“),length=$$($nesting,”Opal“).$coerce_to(length,$$($nesting,”Integer“),”to_int“),index<0&&(old=index,(index+=size)<0&&this.$raise($$($nesting,”IndexError“),”index “old” too small for array; minimum “+-this.length)),length<0&&this.$raise($$($nesting,”IndexError“),”negative length (“length”)“),size=nil;return void 0===extra?this=value:this.splice.apply(this,.concat(data)),value},$Array_$$$eq$13.$$arity=-3),Opal.def(self,”$any?“,$Array_any$ques$14=function(pattern){var $zuper_ii,$iter=$Array_any$ques$14.$$p,$zuper=nil,$zuper_i=nil;for($iter&&($Array_any$ques$14.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper=arguments;return $iter&&($Array_any$ques$14.$$p=null),0!==this.length&&$send(this,Opal.find_super_dispatcher(this,”any?“,$Array_any$ques$14,!1),$zuper,$iter)},$Array_any$ques$14.$$arity=-1),Opal.def(self,”$assoc“,$Array_assoc$15=function(object){for(var item,i=0,length=this.length;i).length&&item[”$==“](object))return item;return nil},$Array_assoc$15.$$arity=1),Opal.def(self,”$at“,$Array_at$16=function(index){return(index=$$($nesting,”Opal“).$coerce_to(index,$$($nesting,”Integer“),”to_int“))<0&&(index+=this.length),index<0||index>=this.length?nil:this},$Array_at$16.$$arity=1),Opal.def(self,”$bsearch_index“,$Array_bsearch_index$17=function(){var $iter=$Array_bsearch_index$17.$$p,block=$iter||nil;if($iter&&($Array_bsearch_index$17.$$p=null),$iter&&($Array_bsearch_index$17.$$p=null),block===nil)return this.$enum_for(”bsearch_index“);for(var mid,val,ret,min=0,max=this.length,smaller=!1,satisfied=nil;min<max;){if(val=this,!0===(ret=Opal.yield1(block,val)))satisfied=mid,smaller=!0;else if(!1===ret||ret===nil)smaller=!1;else if(ret.$$is_number){if(0===ret)return mid;smaller=ret<0}else this.$raise($$($nesting,”TypeError“),”wrong argument type “+ret.$class()+” (must be numeric, true, false or nil)“);smaller?max=mid:min=mid+1}return satisfied},$Array_bsearch_index$17.$$arity=0),Opal.def(self,”$bsearch“,$Array_bsearch$18=function(){var index,$iter=$Array_bsearch$18.$$p,block=$iter||nil;return $iter&&($Array_bsearch$18.$$p=null),$iter&&($Array_bsearch$18.$$p=null),block===nil?this.$enum_for(”bsearch“):null!=(index=$send(this,”bsearch_index“,[],block.$to_proc()))&&index.$$is_number?this:index},$Array_bsearch$18.$$arity=0),Opal.def(self,”$cycle“,$Array_cycle$19=function(n){var $$20,$a,i,length,$iter=$Array_cycle$19.$$p,block=$iter||nil;if($iter&&($Array_cycle$19.$$p=null),$iter&&($Array_cycle$19.$$p=null),null==n&&(n=nil),block===nil)return $send(this,”enum_for“,,(($$20=function(){var lhs,rhs,self=$$20.$$s||this;return $truthy(n())?$$$($$($nesting,”Float“),”INFINITY“):(n=$$($nesting,”Opal“)(n,$$($nesting,”Integer“),”to_int“),$truthy($rb_gt(n,0))?(lhs=self.$enumerator_size(),rhs=n,”number“==typeof lhs&&”number“==typeof rhs?lhs*rhs:lhs(rhs)):0)}).$$s=this,$$20.$$arity=0,$$20));if($truthy($truthy($a=this())?$a:n(0)))return nil;if(n===nil)for(;;)for(i=0,length=this.length;i);else{if((n=$$($nesting,”Opal“)(n,$$($nesting,”Integer“),”to_int“))<=0)return this;for(;0<n;){for(i=0,length=this.length;i);n–}}return this},$Array_cycle$19.$$arity=-1),Opal.def(self,”$clear“,$Array_clear$21=function(){return this.splice(0,this.length),this},$Array_clear$21.$$arity=0),Opal.def(self,”$count“,$Array_count$22=function(object){var $a,$zuper_ii,$iter=$Array_count$22.$$p,block=$iter||nil,$zuper=nil,$zuper_i=nil;for($iter&&($Array_count$22.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper=arguments;return $iter&&($Array_count$22.$$p=null),null==object&&(object=nil),$truthy($truthy($a=object)?$a:block)?$send(this,Opal.find_super_dispatcher(this,”count“,$Array_count$22,!1),$zuper,$iter):this.$size()},$Array_count$22.$$arity=-1),Opal.def(self,”$initialize_copy“,$Array_initialize_copy$23=function(other){return this.$replace(other)},$Array_initialize_copy$23.$$arity=1),Opal.def(self,”$collect“,$Array_collect$24=function(){var $$25,$iter=$Array_collect$24.$$p,block=$iter||nil;if($iter&&($Array_collect$24.$$p=null),$iter&&($Array_collect$24.$$p=null),block===nil)return $send(this,”enum_for“,,(($$25=function(){return($$25.$$s||this).$size()}).$$s=this,$$25.$$arity=0,$$25));for(var result=[],i=0,length=this.length;i<length;i++){var value=Opal.yield1(block,this);result.push(value)}return result},$Array_collect$24.$$arity=0),Opal.def(self,”$collect!“,$Array_collect$excl$26=function(){var $$27,$iter=$Array_collect$excl$26.$$p,block=$iter||nil;if($iter&&($Array_collect$excl$26.$$p=null),$iter&&($Array_collect$excl$26.$$p=null),block===nil)return $send(this,”enum_for“,,(($$27=function(){return($$27.$$s||this).$size()}).$$s=this,$$27.$$arity=0,$$27));for(var i=0,length=this.length;i<length;i++){var value=Opal.yield1(block,this);this=value}return this},$Array_collect$excl$26.$$arity=0),Opal.def(self,”$combination“,$Array_combination$28=function(n){var $$29,num,i,length,stack,chosen,lev,done,next,$iter=$Array_combination$28.$$p,$yield=$iter||nil;if($iter&&($Array_combination$28.$$p=null),num=$$($nesting,”Opal“)(n,$$($nesting,”Integer“),”to_int“),$yield===nil)return $send(this,”enum_for“,,(($$29=function(){return binomial_coefficient(($$29.$$s||this).length,num)}).$$s=this,$$29.$$arity=0,$$29));if(0===num)Opal.yield1($yield,[]);else if(1===num)for(i=0,length=this.length;i]);else if(num===this.length)Opal.yield1($yield,this.slice());else if(0<=num&&num<this.length){for(stack=[],i=0;i<=num+1;i++)stack.push(0);for(done=!(chosen=),stack=-1;!done;){for(chosen=this[stack];lev=stack+1,chosen=this;for(Opal.yield1($yield,chosen.slice()),lev++;done=0===lev,stack++,stack+num===this.length+lev+1;);}}return this},$Array_combination$28.$$arity=1),Opal.def(self,”$repeated_combination“,$Array_repeated_combination$30=function(n){var $$31,num,$iter=$Array_repeated_combination$30.$$p,$yield=$iter||nil;if($iter&&($Array_repeated_combination$30.$$p=null),num=$$($nesting,”Opal“)(n,$$($nesting,”Integer“),”to_int“),$yield===nil)return $send(this,”enum_for“,,(($$31=function(){return binomial_coefficient(($$31.$$s||this).length+num-1,num)}).$$s=this,$$31.$$arity=0,$$31));return 0<=num&&function iterate(max,from,buffer,self){if(buffer.length!=max)for(var i=from;i),iterate(max,i,buffer,self),buffer.pop();else{var copy=buffer.slice();Opal.yield1($yield,copy)}}(num,0,[],this),this},$Array_repeated_combination$30.$$arity=1),Opal.def(self,”$compact“,$Array_compact$32=function(){for(var item,result=[],i=0,length=this.length;i)!==nil&&result.push(item);return result},$Array_compact$32.$$arity=0),Opal.def(self,”$compact!“,$Array_compact$excl$33=function(){for(var original=this.length,i=0,length=this.length;i===nil&&(this.splice(i,1),length–,i–);return this.length===original?nil:this},$Array_compact$excl$33.$$arity=0),Opal.def(self,”$concat“,$Array_concat$34=function($a){var $post_args,others,$$35,$$36;return $post_args=Opal.slice.call(arguments,0,arguments.length),others=$send(others=$post_args,”map“,[],(($$35=function(other){var self=$$35.$$s||this;return null==other&&(other=nil),other=$truthy($$($nesting,”Array“)(other))?other.$to_a():$$($nesting,”Opal“).$coerce_to(other,$$($nesting,”Array“),”to_ary“).$to_a(),$truthy(other(self))&&(other=other.$dup()),other}).$$s=this,$$35.$$arity=1,$$35)),$send(others,”each“,[],(($$36=function(other){var self=$$36.$$s||this;null==other&&(other=nil);for(var i=0,length=other.length;i)}).$$s=this,$$36.$$arity=1,$$36)),this},$Array_concat$34.$$arity=-1),Opal.def(self,”$delete“,$Array_delete$37=function(object){var $iter=$Array_delete$37.$$p,$yield=$iter||nil;$iter&&($Array_delete$37.$$p=null);for(var original=this.length,i=0,length=original;i[”$==“](object)&&(this.splice(i,1),length–,i–);return this.length===original?$yield!==nil?Opal.yieldX($yield,[]):nil:object},$Array_delete$37.$$arity=1),Opal.def(self,”$delete_at“,$Array_delete_at$38=function(index){if((index=$$($nesting,”Opal“).$coerce_to(index,$$($nesting,”Integer“),”to_int“))<0&&(index+=this.length),index<0||index>=this.length)return nil;var result=this;return this.splice(index,1),result},$Array_delete_at$38.$$arity=1),Opal.def(self,”$delete_if“,$Array_delete_if$39=function(){var $$40,$iter=$Array_delete_if$39.$$p,block=$iter||nil;if($iter&&($Array_delete_if$39.$$p=null),$iter&&($Array_delete_if$39.$$p=null),block===nil)return $send(this,”enum_for“,,(($$40=function(){return($$40.$$s||this).$size()}).$$s=this,$$40.$$arity=0,$$40));for(var value,i=0,length=this.length;i))&&value!==nil&&(this.splice(i,1),length–,i–);return this},$Array_delete_if$39.$$arity=0),Opal.def(self,”$dig“,$Array_dig$41=function(idx,$a){var idxs,item=nil;return idxs=Opal.slice.call(arguments,1,arguments.length),(item=this[”$“](idx))===nil||0===idxs.length?item:($truthy(item(”dig“))||this.$raise($$($nesting,”TypeError“),item.$class()+” does not have dig method“),$send(item,”dig“,Opal.to_a(idxs)))},$Array_dig$41.$$arity=-2),Opal.def(self,”$drop“,$Array_drop$42=function(number){return number<0&&this.$raise($$($nesting,”ArgumentError“)),this.slice(number)},$Array_drop$42.$$arity=1),Opal.def(self,”$dup“,$Array_dup$43=function(){var $zuper_ii,$iter=$Array_dup$43.$$p,$zuper=nil,$zuper_i=nil;for($iter&&($Array_dup$43.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper=arguments;return this.$$class===Opal.Array&&this.$$class.$allocate.$$pristine&&this.$copy_instance_variables.$$pristine&&this.$initialize_dup.$$pristine?this.slice(0):$send(this,Opal.find_super_dispatcher(this,”dup“,$Array_dup$43,!1),$zuper,$iter)},$Array_dup$43.$$arity=0),Opal.def(self,”$each“,$Array_each$44=function(){var $$45,$iter=$Array_each$44.$$p,block=$iter||nil;if($iter&&($Array_each$44.$$p=null),$iter&&($Array_each$44.$$p=null),block===nil)return $send(this,”enum_for“,,(($$45=function(){return($$45.$$s||this).$size()}).$$s=this,$$45.$$arity=0,$$45));for(var i=0,length=this.length;i);return this},$Array_each$44.$$arity=0),Opal.def(self,”$each_index“,$Array_each_index$46=function(){var $$47,$iter=$Array_each_index$46.$$p,block=$iter||nil;if($iter&&($Array_each_index$46.$$p=null),$iter&&($Array_each_index$46.$$p=null),block===nil)return $send(this,”enum_for“,,(($$47=function(){return($$47.$$s||this).$size()}).$$s=this,$$47.$$arity=0,$$47));for(var i=0,length=this.length;i<length;i++)Opal.yield1(block,i);return this},$Array_each_index$46.$$arity=0),Opal.def(self,”$empty?“,$Array_empty$ques$48=function(){return 0===this.length},$Array_empty$ques$48.$$arity=0),Opal.def(self,”$eql?“,$Array_eql$ques$49=function(other){var recursed={};return function _eql(array,other){var i,length,a,b;if(!other.$$is_array)return!1;if(other=other.$to_a(),array.length!==other.length)return!1;for(recursed=!0,i=0,length=array.length;i,b=other,a.$$is_array){if(b.$$is_array&&b.length!==a.length)return!1;if(!recursed.hasOwnProperty(a.$object_id())&&!_eql(a,b))return!1}else if(!a(b))return!1;return!0}(this,other)},$Array_eql$ques$49.$$arity=1),Opal.def(self,”$fetch“,$Array_fetch$50=function(index,defaults){var $iter=$Array_fetch$50.$$p,block=$iter||nil;$iter&&($Array_fetch$50.$$p=null),$iter&&($Array_fetch$50.$$p=null);var original=index;return(index=$$($nesting,”Opal“).$coerce_to(index,$$($nesting,”Integer“),”to_int“))<0&&(index+=this.length),0<=index&&index:(block!==nil&&null!=defaults&&this.$warn(”warning: block supersedes default value argument“),block!==nil?block(original):null!=defaults?defaults:void(0===this.length?this.$raise($$($nesting,”IndexError“),”index “original” outside of array bounds: 0…0“):this.$raise($$($nesting,”IndexError“),”index “original” outside of array bounds: -“this.length”…“+this.length)))},$Array_fetch$50.$$arity=-2),Opal.def(self,”$fill“,$Array_fill$51=function($a){var args,$b,$c,i,value,$iter=$Array_fill$51.$$p,block=$iter||nil,one=nil,two=nil,obj=nil,left=nil,right=nil;if($iter&&($Array_fill$51.$$p=null),$iter&&($Array_fill$51.$$p=null),args=Opal.slice.call(arguments,0,arguments.length),two=$truthy(block)?($truthy(2<args.length)&&this.$raise($$($nesting,”ArgumentError“),”wrong number of arguments (“+args.$length()+” for 0..2)“),$c=args,one=null==($b=Opal.to_ary($c))?nil:$b,null==$b?nil:$b):($truthy(0==args.length)?this.$raise($$($nesting,”ArgumentError“),”wrong number of arguments (0 for 1..3)“):$truthy(3<args.length)&&this.$raise($$($nesting,”ArgumentError“),”wrong number of arguments (“+args.$length()+” for 1..3)“),$c=args,obj=null==($b=Opal.to_ary($c))?nil:$b,one=null==$b?nil:$b,null==$b?nil:$b),$truthy($$($nesting,”Range“)(one))){if($truthy(two)&&this.$raise($$($nesting,”TypeError“),”length invalid with range“),left=$$($nesting,”Opal“).$coerce_to(one.$begin(),$$($nesting,”Integer“),”to_int“),$truthy(left<0)&&(left+=this.length),$truthy(left<0)&&this.$raise($$($nesting,”RangeError“),one.$inspect()+” out of range“),right=$$($nesting,”Opal“).$coerce_to(one.$end(),$$($nesting,”Integer“),”to_int“),$truthy(right<0)&&(right+=this.length),$truthy(one())||(right+=1),$truthy(right<=left))return this}else if($truthy(one))if(left=$$($nesting,”Opal“).$coerce_to(one,$$($nesting,”Integer“),”to_int“),$truthy(left<0)&&(left+=this.length),$truthy(left<0)&&(left=0),$truthy(two)){if(right=$$($nesting,”Opal“).$coerce_to(two,$$($nesting,”Integer“),”to_int“),$truthy(0==right))return this;right+=left}else right=this.length;else left=0,right=this.length;if($truthy(left>this.length))for(i=this.length;i=nil;if($truthy(right>this.length)&&(this.length=right),$truthy(block))for(this.length;left=value;else for(this.length;left=obj;return this},$Array_fill$51.$$arity=-1),Opal.def(self,”$first“,$Array_first$52=function(count){return null==count?0===this.length?nil:this:((count=$$($nesting,”Opal“).$coerce_to(count,$$($nesting,”Integer“),”to_int“))<0&&this.$raise($$($nesting,”ArgumentError“),”negative array size“),this.slice(0,count))},$Array_first$52.$$arity=-1),Opal.def(self,”$flatten“,$Array_flatten$53=function(level){var self=this;return void 0!==level&&(level=$$($nesting,”Opal“).$coerce_to(level,$$($nesting,”Integer“),”to_int“)),toArraySubclass(function _flatten(array,level){var i,length,item,ary,result=[];for(i=0,length=(array=array.$to_a()).length;i,$$($nesting,”Opal“)(item,”to_ary“,!0))if((ary=item.$to_ary())!==nil)switch(ary.$$is_array||self.$raise($$($nesting,”TypeError“)),ary===self&&self.$raise($$($nesting,”ArgumentError“)),level){case void 0:result=result.concat(_flatten(ary));break;case 0:result.push(ary);break;default:result.push.apply(result,_flatten(ary,level-1))}else result.push(item);else result.push(item);return result}(self,level),self.$class())},$Array_flatten$53.$$arity=-1),Opal.def(self,”$flatten!“,$Array_flatten$excl$54=function(level){var flattened=this.$flatten(level);if(this.length==flattened.length){for(var i=0,length=this.length;i===flattened;i++);if(i==length)return nil}return this.$replace(flattened),this},$Array_flatten$excl$54.$$arity=-1),Opal.def(self,”$hash“,$Array_hash$55=function(){var item,i,key,top=void 0===Opal.hash_ids,result=,hash_id=this.$object_id();try{if(top&&(Opal.hash_ids=Object.create(null)),Opal.hash_ids)return”self“;for(key in Opal.hash_ids)if(item=Opal.hash_ids,this(item))return”self“;for(Opal.hash_ids=this,i=0;i,result.push(item.$hash());return result.join(”,“)}finally{top&&(Opal.hash_ids=void 0)}},$Array_hash$55.$$arity=0),Opal.def(self,”$include?“,$Array_include$ques$56=function(member){for(var i=0,length=this.length;i[”$==“](member))return!0;return!1},$Array_include$ques$56.$$arity=1),Opal.def(self,”$index“,$Array_index$57=function(object){var i,length,value,$iter=$Array_index$57.$$p,block=$iter||nil;if($iter&&($Array_index$57.$$p=null),$iter&&($Array_index$57.$$p=null),null!=object&&block!==nil&&this.$warn(”warning: given block not used“),null!=object){for(i=0,length=this.length;i[”$==“](object))return i}else{if(block===nil)return this.$enum_for(”index“);for(i=0,length=this.length;i))&&value!==nil)return i}return nil},$Array_index$57.$$arity=-1),Opal.def(self,”$insert“,$Array_insert$58=function(index,$a){var objects;if(objects=Opal.slice.call(arguments,1,arguments.length),index=$$($nesting,”Opal“).$coerce_to(index,$$($nesting,”Integer“),”to_int“),0<objects.length){if(index<0&&(index+=this.length+1)<0&&this.$raise($$($nesting,”IndexError“),index+” is out of bounds“),index>this.length)for(var i=this.length;i.concat(objects))}return this},$Array_insert$58.$$arity=-2),Opal.def(self,”$inspect“,$Array_inspect$59=function(){for(var result=[],id=this.$__id__(),i=0,length=this.length;i<length;i++){var item=this[”$“](i);item.$__id__()===id?result.push(”“):result.push(item.$inspect())}return”[“+result.join(”, “)+”]“},$Array_inspect$59.$$arity=0),Opal.def(self,”$join“,$Array_join$60=function(sep){if(null==$gvars&&($gvars=nil),null==sep&&(sep=nil),$truthy(0===this.length))return”“;$truthy(sep===nil)&&(sep=$gvars);var i,length,item,tmp,result=[];for(i=0,length=this.length;i,$$($nesting,”Opal“)(item,”to_str“)&&(tmp=item.$to_str())!==nil?result.push(tmp.$to_s()):$$($nesting,”Opal“)(item,”to_ary“)&&((tmp=item.$to_ary())===this&&this.$raise($$($nesting,”ArgumentError“)),tmp!==nil)?result.push(tmp.$join(sep)):$$($nesting,”Opal“)(item,”to_s“)&&(tmp=item.$to_s())!==nil?result.push(tmp):this.$raise($$($nesting,”NoMethodError“).$new(Opal.inspect(item)+” doesn't respond to to_str, to_ary or to_s“,”to_str“));return sep===nil?result.join(”“):result.join($$($nesting,”Opal“)(sep,$$($nesting,”String“),”to_str“).$to_s())},$Array_join$60.$$arity=-1),Opal.def(self,”$keep_if“,$Array_keep_if$61=function(){var $$62,$iter=$Array_keep_if$61.$$p,block=$iter||nil;if($iter&&($Array_keep_if$61.$$p=null),$iter&&($Array_keep_if$61.$$p=null),block===nil)return $send(this,”enum_for“,,(($$62=function(){return($$62.$$s||this).$size()}).$$s=this,$$62.$$arity=0,$$62));for(var value,i=0,length=this.length;i))&&value!==nil||(this.splice(i,1),length–,i–);return this},$Array_keep_if$61.$$arity=0),Opal.def(self,”$last“,$Array_last$63=function(count){return null==count?0===this.length?nil:this:((count=$$($nesting,”Opal“).$coerce_to(count,$$($nesting,”Integer“),”to_int“))<0&&this.$raise($$($nesting,”ArgumentError“),”negative array size“),count>this.length&&(count=this.length),this.slice(this.length-count,this.length))},$Array_last$63.$$arity=-1),Opal.def(self,”$length“,$Array_length$64=function(){return this.length},$Array_length$64.$$arity=0),Opal.alias(self,”map“,”collect“),Opal.alias(self,”map!“,”collect!“),Opal.def(self,”$max“,$Array_max$65=function(n){var $iter=$Array_max$65.$$p,block=$iter||nil;return $iter&&($Array_max$65.$$p=null),$iter&&($Array_max$65.$$p=null),$send(this.$each(),”max“,,block.$to_proc())},$Array_max$65.$$arity=-1),Opal.def(self,”$min“,$Array_min$66=function(){var $iter=$Array_min$66.$$p,block=$iter||nil;return $iter&&($Array_min$66.$$p=null),$iter&&($Array_min$66.$$p=null),$send(this.$each(),”min“,[],block.$to_proc())},$Array_min$66.$$arity=0),Opal.def(self,”$permutation“,$Array_permutation$67=function(num){var $$68,permute,offensive,output,$iter=$Array_permutation$67.$$p,block=$iter||nil,self=this,perm=nil,used=nil;if($iter&&($Array_permutation$67.$$p=null),$iter&&($Array_permutation$67.$$p=null),block===nil)return $send(self,”enum_for“,,(($$68=function(){var self=$$68.$$s||this;return function(from,how_many){for(var count=0<=how_many?1:0;how_many;)count*=from,from–,how_many–;return count}(self.length,void 0===num?self.length:num)}).$$s=self,$$68.$$arity=0,$$68));if((num=void 0===num?self.length:$$($nesting,”Opal“).$coerce_to(num,$$($nesting,”Integer“),”to_int“))<0||self.length<num);else if(0===num)Opal.yield1(block,[]);else if(1===num)for(var i=0;i]);else perm=$$($nesting,”Array“).$new(num),used=$$($nesting,”Array“).$new(self.length,!1),permute=function(num,perm,index,used,blk){self=this;for(var i=0;i”](i)())if(perm=i,index=!0,permute.call(self,num,perm,index+1,used,blk),used=!1;else{output=[];for(var j=0;j]);Opal.yield1(blk,output)}},block!==nil?(offensive=self.slice(),permute.call(offensive,num,perm,0,used,block)):permute.call(self,num,perm,0,used,block);return self},$Array_permutation$67.$$arity=-1),Opal.def(self,“$repeated_permutation”,$Array_repeated_permutation$69=function(n){var $$70,num,$iter=$Array_repeated_permutation$69.$$p,$yield=$iter||nil;if($iter&&($Array_repeated_permutation$69.$$p=null),num=$$($nesting,“Opal”)(n,$$($nesting,“Integer”),“to_int”),$yield===nil)return $send(this,“enum_for”,,(($$70=function(){var lhs,rhs,self=$$70.$$s||this;return $truthy((rhs=0,“number”==typeof(lhs=num)&&“number”==typeof =“”>rhs?rhs<=lhs:lhs(rhs)))?self.$size()(num):0}).$$s=this,$$70.$$arity=0,$$70));return function iterate(max,buffer,self){if(buffer.length!=max)for(var i=0;i),iterate(max,buffer,self),buffer.pop();else{var copy=buffer.slice();Opal.yield1($yield,copy)}}(num,[],this.slice()),this},$Array_repeated_permutation$69.$$arity=1),Opal.def(self,“$pop”,$Array_pop$71=function(count){return $truthy(void 0===count)?$truthy(0===this.length)?nil:this.pop():(count=$$($nesting,“Opal”).$coerce_to(count,$$($nesting,“Integer”),“to_int”),$truthy(count<0)&&this.$raise($$($nesting,“ArgumentError”),“negative array size”),$truthy(0===this.length)?[]:$truthy(count>this.length)?this.splice(0,this.length):this.splice(this.length-count,this.length))},$Array_pop$71.$$arity=-1),Opal.def(self,“$product”,$Array_product$72=function($a){var $post_args,args,$iter=$Array_product$72.$$p,block=$iter||nil;$iter&&($Array_product$72.$$p=null),$iter&&($Array_product$72.$$p=null),$post_args=Opal.slice.call(arguments,0,arguments.length);var i,m,subarray,len,result=block!==nil?null:[],n=(args=$post_args).length+1,counters=new Array(n),lengths=new Array(n),arrays=new Array(n),resultlen=1;for(arrays=this,i=1;i=$$($nesting,“Opal”).$coerce_to(args,$$($nesting,“Array”),“to_ary”);for(i=0;i<n;i++){if(0===(len=arrays.length))return result||this;2147483647<(resultlen*=len)&&this.$raise($$($nesting,“RangeError”),“too big to product”),lengths=len,counters=0}outer_loop:for(;;){for(subarray=[],i=0;i[counters]);for(result?result.push(subarray):Opal.yield1(block,subarray),counters++;counters===lengths;){if(counters=0,–m<0)break outer_loop;counters++}}return result||this},$Array_product$72.$$arity=-1),Opal.def(self,“$push”,$Array_push$73=function($a){for(var objects,i=0,length=(objects=Opal.slice.call(arguments,0,arguments.length)).length;i);return this},$Array_push$73.$$arity=-1),Opal.alias(self,“append”,“push”),Opal.def(self,“$rassoc”,$Array_rassoc$74=function(object){for(var item,i=0,length=this.length;i).length&&void 0!==item&&item[“$==”](object))return item;return nil},$Array_rassoc$74.$$arity=1),Opal.def(self,“$reject”,$Array_reject$75=function(){var $$76,$iter=$Array_reject$75.$$p,block=$iter||nil;if($iter&&($Array_reject$75.$$p=null),$iter&&($Array_reject$75.$$p=null),block===nil)return $send(this,“enum_for”,,(($$76=function(){return($$76.$$s||this).$size()}).$$s=this,$$76.$$arity=0,$$76));for(var value,result=[],i=0,length=this.length;i))&&value!==nil||result.push(this);return result},$Array_reject$75.$$arity=0),Opal.def(self,“$reject!”,$Array_reject$excl$77=function(){var $$78,original,$iter=$Array_reject$excl$77.$$p,block=$iter||nil;return $iter&&($Array_reject$excl$77.$$p=null),$iter&&($Array_reject$excl$77.$$p=null),block===nil?$send(this,“enum_for”,,(($$78=function(){return($$78.$$s||this).$size()}).$$s=this,$$78.$$arity=0,$$78)):(original=this.$length(),$send(this,“delete_if”,[],block.$to_proc()),this.$length()(original)?nil:this)},$Array_reject$excl$77.$$arity=0),Opal.def(self,“$replace”,$Array_replace$79=function(other){return other=$truthy($$($nesting,“Array”)(other))?other.$to_a():$$($nesting,“Opal”).$coerce_to(other,$$($nesting,“Array”),“to_ary”).$to_a(),this.splice(0,this.length),this.push.apply(this,other),this},$Array_replace$79.$$arity=1),Opal.def(self,“$reverse”,$Array_reverse$80=function(){return this.slice(0).reverse()},$Array_reverse$80.$$arity=0),Opal.def(self,“$reverse!”,$Array_reverse$excl$81=function(){return this.reverse()},$Array_reverse$excl$81.$$arity=0),Opal.def(self,“$reverse_each”,$Array_reverse_each$82=function(){var $$83,$iter=$Array_reverse_each$82.$$p,block=$iter||nil;return $iter&&($Array_reverse_each$82.$$p=null),$iter&&($Array_reverse_each$82.$$p=null),block===nil?$send(this,“enum_for”,,(($$83=function(){return($$83.$$s||this).$size()}).$$s=this,$$83.$$arity=0,$$83)):($send(this.$reverse(),“each”,[],block.$to_proc()),this)},$Array_reverse_each$82.$$arity=0),Opal.def(self,“$rindex”,$Array_rindex$84=function(object){var i,value,$iter=$Array_rindex$84.$$p,block=$iter||nil;if($iter&&($Array_rindex$84.$$p=null),$iter&&($Array_rindex$84.$$p=null),null!=object&&block!==nil&&this.$warn(“warning: given block not used”),null!=object){for(i=this.length-1;0<=i&&!(i>=this.length);i–)if(this[“$==”](object))return i}else if(block!==nil){for(i=this.length-1;0<=i&&!(i>=this.length);i–)if(!1!==(value=block(this))&&value!==nil)return i}else if(null==object)return this.$enum_for(“rindex”);return nil},$Array_rindex$84.$$arity=-1),Opal.def(self,“$rotate”,$Array_rotate$85=function(n){var ary,idx,firstPart,lastPart;return null==n&&(n=1),n=$$($nesting,“Opal”).$coerce_to(n,$$($nesting,“Integer”),“to_int”),1===this.length?this.slice():0===this.length?[]:(idx=n%(ary=this.slice()).length,firstPart=ary.slice(idx),lastPart=ary.slice(0,idx),firstPart.concat(lastPart))},$Array_rotate$85.$$arity=-1),Opal.def(self,“$rotate!”,$Array_rotate$excl$86=function(cnt){var ary;return null==cnt&&(cnt=1),0===this.length||1===this.length?this:(cnt=$$($nesting,“Opal”).$coerce_to(cnt,$$($nesting,“Integer”),“to_int”),ary=this.$rotate(cnt),this.$replace(ary))},$Array_rotate$excl$86.$$arity=-1),function($base,$super,$parent_nesting){var $SampleRandom_initialize$87,$SampleRandom_rand$88,self=$klass($base,null,“SampleRandom”),$nesting=.concat($parent_nesting);self.$$prototype.rng=nil,Opal.def(self,“$initialize”,$SampleRandom_initialize$87=function(rng){return this.rng=rng},$SampleRandom_initialize$87.$$arity=1),Opal.def(self,“$rand”,$SampleRandom_rand$88=function(size){var random;return random=$$($nesting,“Opal”).$coerce_to(this.rng.$rand(size),$$($nesting,“Integer”),“to_int”),$truthy(random<0)&&this.$raise($$($nesting,“RangeError”),“random value must be >= 0”),$truthy(random<size)||this.$raise($$($nesting,“RangeError”),“random value must be less than Array size”),random},$SampleRandom_rand$88.$$arity=1)}($nesting,0,$nesting),Opal.def(self,“$sample”,$Array_sample$89=function(count,options){var $a,abandon,spin,result,i,j,k,targetIndex,oldValue,o=nil,rng=nil;if($truthy(void 0===count))return this.$at($$($nesting,“Kernel”).$rand(this.length));if($truthy(void 0===options)?count=$truthy(o=$$($nesting,“Opal”)(count,$$($nesting,“Hash”),“to_hash”))?(options=o,nil):(options=nil,$$($nesting,“Opal”).$coerce_to(count,$$($nesting,“Integer”),“to_int”)):(count=$$($nesting,“Opal”).$coerce_to(count,$$($nesting,“Integer”),“to_int”),options=$$($nesting,“Opal”).$coerce_to(options,$$($nesting,“Hash”),“to_hash”)),$truthy($truthy($a=count)?count<0:$a)&&this.$raise($$($nesting,“ArgumentError”),“count must be greater than 0”),$truthy(options)&&(rng=options[“$”](“random”)),rng=$truthy($truthy($a=rng)?rng(“rand”):$a)?$$($nesting,“SampleRandom”).$new(rng):$$($nesting,“Kernel”),!$truthy(count))return this;switch(count>this.length&&(count=this.length),count){case 0:return[];case 1:return[this];case 2:return(i=rng.$rand(this.length))===(j=rng.$rand(this.length))&&(j=0===i?i+1:i-1),[this,this];default:if(3<this.length/count){for(abandon=!1,spin=0,i=1,(result=$$($nesting,“Array”).$new(count))=rng.$rand(this.length);i<count;){for(k=rng.$rand(this.length),j=0;j<i;){for(;k===result;){if(100<++spin){abandon=!0;break}k=rng.$rand(this.length)}if(abandon)break;j++}if(abandon)break;result=k,i++}if(!abandon){for(i=0;i=this[result],i++;return result}}result=this.slice();for(var c=0;c,result=result,result=oldValue;return count===this.length?result:result[“$”](0,count)}},$Array_sample$89.$$arity=-1),Opal.def(self,“$select”,$Array_select$90=function(){var $$91,$iter=$Array_select$90.$$p,block=$iter||nil;if($iter&&($Array_select$90.$$p=null),$iter&&($Array_select$90.$$p=null),block===nil)return $send(this,“enum_for”,,(($$91=function(){return($$91.$$s||this).$size()}).$$s=this,$$91.$$arity=0,$$91));for(var item,value,result=[],i=0,length=this.length;i,value=Opal.yield1(block,item),Opal.truthy(value)&&result.push(item);return result},$Array_select$90.$$arity=0),Opal.def(self,“$select!”,$Array_select$excl$92=function(){var $$93,$iter=$Array_select$excl$92.$$p,block=$iter||nil;if($iter&&($Array_select$excl$92.$$p=null),$iter&&($Array_select$excl$92.$$p=null),block===nil)return $send(this,“enum_for”,,(($$93=function(){return($$93.$$s||this).$size()}).$$s=this,$$93.$$arity=0,$$93));var original=this.length;return $send(this,“keep_if”,[],block.$to_proc()),this.length===original?nil:this},$Array_select$excl$92.$$arity=0),Opal.def(self,“$shift”,$Array_shift$94=function(count){return $truthy(void 0===count)?$truthy(0===this.length)?nil:this.shift():(count=$$($nesting,“Opal”).$coerce_to(count,$$($nesting,“Integer”),“to_int”),$truthy(count<0)&&this.$raise($$($nesting,“ArgumentError”),“negative array size”),$truthy(0===this.length)?[]:this.splice(0,count))},$Array_shift$94.$$arity=-1),Opal.alias(self,“size”,“length”),Opal.def(self,“$shuffle”,$Array_shuffle$95=function(rng){return this.$dup().$to_a()(rng)},$Array_shuffle$95.$$arity=-1),Opal.def(self,“$shuffle!”,$Array_shuffle$excl$96=function(rng){var randgen,j,tmp,i=this.length;for(void 0!==rng&&(rng=$$($nesting,“Opal”)(rng,$$($nesting,“Hash”),“to_hash”))!==nil&&(rng=rng[“$”](“random”))!==nil&&rng(“rand”)&&(randgen=rng);i;)randgen?((j=randgen.$rand(i).$to_int())<0&&this.$raise($$($nesting,“RangeError”),“random number too small ”+j),i<=j&&this.$raise($$($nesting,“RangeError”),“random number too big ”+j)):j=this.$rand(i),tmp=this,this=this,this=tmp;return this},$Array_shuffle$excl$96.$$arity=-1),Opal.alias(self,“slice”,“[]”),Opal.def(self,“$slice!”,$Array_slice$excl$97=function(index,length){var result=nil,range=nil,range_start=nil,range_end=nil,start=nil;if(result=nil,$truthy(void 0===length))if($truthy($$($nesting,“Range”)(index))){range=index,result=this[“$”](range),range_start=$$($nesting,“Opal”).$coerce_to(range.$begin(),$$($nesting,“Integer”),“to_int”),range_end=$$($nesting,“Opal”).$coerce_to(range.$end(),$$($nesting,“Integer”),“to_int”),range_start<0&&(range_start+=this.length),range_end<0?range_end+=this.length:range_end>=this.length&&(range_end=this.length-1,range.excl&&(range_end+=1));var range_length=range_end-range_start;range.excl?range_end-=1:range_length+=1,range_start<this.length&&0<=range_start&&range_end<this.length&&0<=range_end&&0<range_length&&this.splice(range_start,range_length)}else{if((start=$$($nesting,“Opal”).$coerce_to(index,$$($nesting,“Integer”),“to_int”))<0&&(start+=this.length),start<0||start>=this.length)return nil;result=this,0===start?this.shift():this.splice(start,1)}else{if(start=$$($nesting,“Opal”).$coerce_to(index,$$($nesting,“Integer”),“to_int”),(length=$$($nesting,“Opal”).$coerce_to(length,$$($nesting,“Integer”),“to_int”))<0)return nil;result=this[“$”](start,length),start<0&&(start+=this.length),start+length>this.length&&(length=this.length-start),start<this.length&&0<=start&&this.splice(start,length)}return result},$Array_slice$excl$97.$$arity=-2),Opal.def(self,“$sort”,$Array_sort$98=function(){var $iter=$Array_sort$98.$$p,block=$iter||nil,self=this;return $iter&&($Array_sort$98.$$p=null),$iter&&($Array_sort$98.$$p=null),$truthy(1<self.length)?(block===nil&&(block=function(a,b){return “”>a(b)}),self.slice().sort(function(x,y){var lhs,rhs,ret=block(x,y);return ret===nil&&self.$raise($$($nesting,“ArgumentError”),“comparison of ”+x.$inspect()+“ with ”+y.$inspect()+“ failed”),$rb_gt(ret,0)?1:(rhs=0,(“number”==typeof(lhs=ret)&&“number”==typeof rhs?lhs(rhs))?-1:0)})):self},$Array_sort$98.$$arity=0),Opal.def(self,“$sort!”,$Array_sort$excl$99=function(){var result,$iter=$Array_sort$excl$99.$$p,block=$iter||nil;$iter&&($Array_sort$excl$99.$$p=null),$iter&&($Array_sort$excl$99.$$p=null),result=block!==nil?$send(this.slice(),“sort”,[],block.$to_proc()):this.slice().$sort();for(var i=this.length=0,length=result.length;i);return this},$Array_sort$excl$99.$$arity=0),Opal.def(self,“$sort_by!”,$Array_sort_by$excl$100=function(){var $$101,$iter=$Array_sort_by$excl$100.$$p,block=$iter||nil;return $iter&&($Array_sort_by$excl$100.$$p=null),$iter&&($Array_sort_by$excl$100.$$p=null),block===nil?$send(this,“enum_for”,,(($$101=function(){return($$101.$$s||this).$size()}).$$s=this,$$101.$$arity=0,$$101)):this.$replace($send(this,“sort_by”,[],block.$to_proc()))},$Array_sort_by$excl$100.$$arity=0),Opal.def(self,“$take”,$Array_take$102=function(count){return count<0&&this.$raise($$($nesting,“ArgumentError”)),this.slice(0,count)},$Array_take$102.$$arity=1),Opal.def(self,“$take_while”,$Array_take_while$103=function(){var $iter=$Array_take_while$103.$$p,block=$iter||nil;$iter&&($Array_take_while$103.$$p=null),$iter&&($Array_take_while$103.$$p=null);for(var item,value,result=[],i=0,length=this.length;i))||value===nil)return result;result.push(item)}return result},$Array_take_while$103.$$arity=0),Opal.def(self,“$to_a”,$Array_to_a$104=function(){return this},$Array_to_a$104.$$arity=0),Opal.alias(self,“to_ary”,“to_a”),Opal.def(self,“$to_h”,$Array_to_h$105=function(){var i,ary,key,val,len=this.length,hash=$hash2([],{});for(i=0;i(this,$$($nesting,“Array”),“to_ary”)).$$is_array||this.$raise($$($nesting,“TypeError”),“wrong element type ”+ary.$class()+“ at ”i“ (expected array)”),2!==ary.length&&this.$raise($$($nesting,“ArgumentError”),“wrong array length at ”i“ (expected 2, was ”+ary.$length()+“)”),key=ary,val=ary,Opal.hash_put(hash,key,val);return hash},$Array_to_h$105.$$arity=0),Opal.alias(self,“to_s”,“inspect”),Opal.def(self,“$transpose”,$Array_transpose$106=function(){var $$107,result=nil,max=nil;return $truthy(this())?[]:(result=[],max=nil,$send(this,“each”,,(($$107=function(row){var $a,$$108,self=$$107.$$s||this;return null==row&&(row=nil),row=$truthy($$($nesting,“Array”)(row))?row.$to_a():$$($nesting,“Opal”).$coerce_to(row,$$($nesting,“Array”),“to_ary”).$to_a(),max=$truthy($a=max)?$a:row.length,$truthy(row.length(max))&&self.$raise($$($nesting,“IndexError”),“element size differs (”row.length“ should be ”max“)”),$send(row.length,“times”,[],(($$108=function(i){$$108.$$s;var $b,lhs,rhs,$writer=nil;return null==i&&(i=nil),($truthy($b=result[“$”](i))?$b:($writer=[i,],$send(result,“[]=”,Opal.to_a($writer)),$writer[(lhs=$writer.length,rhs=1,“number”==typeof lhs&&“number”==typeof rhs?lhs-rhs:lhs(rhs))]))(row.$at(i))}).$$s=self,$$108.$$arity=1,$$108))}).$$s=this,$$107.$$arity=1,$$107)),result)},$Array_transpose$106.$$arity=0),Opal.def(self,“$uniq”,$Array_uniq$109=function(){var $iter=$Array_uniq$109.$$p,block=$iter||nil;$iter&&($Array_uniq$109.$$p=null),$iter&&($Array_uniq$109.$$p=null);var i,length,item,key,hash=$hash2([],{});if(block===nil)for(i=0,length=this.length;i,void 0===Opal.hash_get(hash,item)&&Opal.hash_put(hash,item,item);else for(i=0,length=this.length;i,key=Opal.yield1(block,item),void 0===Opal.hash_get(hash,key)&&Opal.hash_put(hash,key,item);return toArraySubclass(hash.$values(),this.$class())},$Array_uniq$109.$$arity=0),Opal.def(self,“$uniq!”,$Array_uniq$excl$110=function(){var $iter=$Array_uniq$excl$110.$$p,block=$iter||nil;$iter&&($Array_uniq$excl$110.$$p=null),$iter&&($Array_uniq$excl$110.$$p=null);var i,length,item,key,original_length=this.length,hash=$hash2([],{});for(i=0,length=original_length;i,key=block===nil?item:Opal.yield1(block,item),void 0!==Opal.hash_get(hash,key)?(this.splice(i,1),length–,i–):Opal.hash_put(hash,key,item);return this.length===original_length?nil:this},$Array_uniq$excl$110.$$arity=0),Opal.def(self,“$unshift”,$Array_unshift$111=function($a){for(var objects,i=(objects=Opal.slice.call(arguments,0,arguments.length)).length-1;0<=i;i--)this.unshift(objects);return this},$Array_unshift$111.$$arity=-1),Opal.alias(self,“prepend”,“unshift”),Opal.def(self,“$values_at”,$Array_values_at$112=function($a){var $post_args,$$113,out=nil;return $post_args=Opal.slice.call(arguments,0,arguments.length),out=[],$send($post_args,“each”,,(($$113=function(elem){var $$114,self=$$113.$$s||this,finish=nil,start=nil,i=nil;return null==elem&&(elem=nil),$truthy(elem($$($nesting,“Range”)))?(finish=$$($nesting,“Opal”).$coerce_to(elem.$last(),$$($nesting,“Integer”),“to_int”),(start=$$($nesting,“Opal”).$coerce_to(elem.$first(),$$($nesting,“Integer”),“to_int”))<0?(start+=self.length,nil):(finish<0&&(finish+=self.length),elem()&&finish–,finish,(($$114=function(i){var self=$$114.$$s||this;return null==i&&(i=nil),out(self.$at(i))}).$$s=self,$$114.$$arity=1,$$114)))):(i=$$($nesting,“Opal”).$coerce_to(elem,$$($nesting,“Integer”),“to_int”),out(self.$at(i)))}).$$s=this,$$113.$$arity=1,$$113)),out},$Array_values_at$112.$$arity=-1),Opal.def(self,“$zip”,$Array_zip$115=function($a){var others,$b,$iter=$Array_zip$115.$$p,block=$iter||nil;$iter&&($Array_zip$115.$$p=null),$iter&&($Array_zip$115.$$p=null),others=Opal.slice.call(arguments,0,arguments.length);var part,o,i,j,jj,result=[],size=this.length;for(j=0,jj=others.length;j).$$is_array||(o.$$is_enumerator?o.$size()===1/0?others=o.$take(size):others=o.$to_a():others=($truthy($b=$$($nesting,“Opal”)(o,$$($nesting,“Array”),“to_ary”))?$b:$$($nesting,“Opal”)(o,$$($nesting,“Enumerator”),“each”)).$to_a());for(i=0;i<size;i++){for(part=[this],j=0,jj=others.length;j[i])&&(o=nil),part=o;result=part}if(block===nil)return result;for(i=0;i);return nil},$Array_zip$115.$$arity=-1),Opal.defs(self,“$inherited”,$Array_inherited$116=function(klass){klass.$$prototype.$to_a=function(){return this.slice(0,this.length)}},$Array_inherited$116.$$arity=1),Opal.def(self,“$instance_variables”,$Array_instance_variables$117=function(){var $$118,$zuper_ii,$iter=$Array_instance_variables$117.$$p,$zuper=nil,$zuper_i=nil;for($iter&&($Array_instance_variables$117.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper=arguments;return $send($send(this,Opal.find_super_dispatcher(this,“instance_variables”,$Array_instance_variables$117,!1),$zuper,$iter),“reject”,[],(($$118=function(ivar){var $a;$$118.$$s;return null==ivar&&(ivar=nil),$truthy($a=/^@d+$/.test(ivar))?$a:ivar(“@length”)}).$$s=this,$$118.$$arity=1,$$118))},$Array_instance_variables$117.$$arity=0),$$($nesting,“Opal”).$pristine(self.$singleton_class(),“allocate”),$$($nesting,“Opal”).$pristine(self,“copy_instance_variables”,“initialize_dup”),Opal.def(self,“$pack”,$Array_pack$119=function($a){return Opal.slice.call(arguments,0,arguments.length),this.$raise(“To use Array#pack, you must first require 'corelib/array/pack'.”)},$Array_pack$119.$$arity=-1),nil&&“pack”}($nesting,Array,$nesting)},Opal.modules=function(Opal){function $rb_ge(lhs,rhs){return“number”==typeof lhs&&“number”==typeof =“”>rhs?rhs<=lhs:lhs(rhs)}function $rb_minus(lhs,rhs){return“number”==typeof lhs&&“number”==typeof rhs?lhs-rhs:lhs(rhs)}var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.const_get_qualified,Opal.const_get_relative),$klass=(Opal.breaker,Opal.slice,Opal.klass),$send=Opal.send,$hash2=Opal.hash2,$truthy=Opal.truthy;return Opal.add_stubs([“$require”,“$include”,“$coerce_to?”,“$”,“$merge!”,“$allocate”,“$raise”,“$coerce_to!”,“$each”,“$fetch”,“$>=”,“$>”,“$==”,“$compare_by_identity”,“$lambda?”,“$abs”,“$arity”,“$enum_for”,“$size”,“$respond_to?”,“$class”,“$dig”,“$new”,“$inspect”,“$map”,“$to_proc”,“$flatten”,“$eql?”,“$default”,“$dup”,“$default_proc”,“$default_proc=”,“$-”,“$default=”,“$proc”]),self.$require(“corelib/enumerable”),function($base,$super,$parent_nesting){var $Hash_$$$1,$Hash_allocate$2,$Hash_try_convert$3,$Hash_initialize$4,$Hash_$eq_eq$5,$Hash_$gt_eq$6,$Hash_$gt$8,$Hash_$lt$9,$Hash_$lt_eq$10,$Hash_$$$11,$Hash_$$$eq$12,$Hash_assoc$13,$Hash_clear$14,$Hash_clone$15,$Hash_compact$16,$Hash_compact$excl$17,$Hash_compare_by_identity$18,$Hash_compare_by_identity$ques$19,$Hash_default$20,$Hash_default$eq$21,$Hash_default_proc$22,$Hash_default_proc$eq$23,$Hash_delete$24,$Hash_delete_if$25,$Hash_dig$27,$Hash_each$28,$Hash_each_key$30,$Hash_each_value$32,$Hash_empty$ques$34,$Hash_fetch$35,$Hash_fetch_values$36,$Hash_flatten$38,$Hash_has_key$ques$39,$Hash_has_value$ques$40,$Hash_hash$41,$Hash_index$42,$Hash_indexes$43,$Hash_inspect$44,$Hash_invert$45,$Hash_keep_if$46,$Hash_keys$48,$Hash_length$49,$Hash_merge$50,$Hash_merge$excl$51,$Hash_rassoc$52,$Hash_rehash$53,$Hash_reject$54,$Hash_reject$excl$56,$Hash_replace$58,$Hash_select$59,$Hash_select$excl$61,$Hash_shift$63,$Hash_slice$64,$Hash_to_a$65,$Hash_to_h$66,$Hash_to_hash$67,$Hash_to_proc$68,$Hash_transform_keys$70,$Hash_transform_keys$excl$72,$Hash_transform_values$74,$Hash_transform_values$excl$76,$Hash_values$78,inspect_ids,self=$klass($base,null,“Hash”),$nesting=.concat($parent_nesting);return self.$include($$($nesting,“Enumerable”)),self.$$prototype.$$is_hash=!0,Opal.defs(self,“$[]”,$Hash_$$$1=function($a){var argv,hash,i,argc=(argv=Opal.slice.call(arguments,0,arguments.length)).length;if(1===argc){if((hash=$$($nesting,“Opal”)(argv[“$”](0),$$($nesting,“Hash”),“to_hash”))!==nil)return this.$allocate()(hash);for((argv=$$($nesting,“Opal”)(argv[“$”](0),$$($nesting,“Array”),“to_ary”))===nil&&this.$raise($$($nesting,“ArgumentError”),“odd number of arguments for Hash”),argc=argv.length,hash=this.$allocate(),i=0;i.$$is_array)switch(argv.length){case 1:hash.$store(argv[0],nil);break;case 2:hash.$store(argv[0],argv[1]);break;default:this.$raise($$($nesting,“ArgumentError”),“invalid number of elements (”argv[i].length“ for 1..2)”)}return hash}for(argc%2!=0&&this.$raise($$($nesting,“ArgumentError”),“odd number of arguments for Hash”),hash=this.$allocate(),i=0;i,argv);return hash},$Hash_$$$1.$$arity=-1),Opal.defs(self,“$allocate”,$Hash_allocate$2=function(){var hash=new this.$$constructor;return Opal.hash_init(hash),hash.$$none=nil,hash.$$proc=nil,hash},$Hash_allocate$2.$$arity=0),Opal.defs(self,“$try_convert”,$Hash_try_convert$3=function(obj){return $$($nesting,“Opal”)(obj,$$($nesting,“Hash”),“to_hash”)},$Hash_try_convert$3.$$arity=1),Opal.def(self,“$initialize”,$Hash_initialize$4=function(defaults){var $iter=$Hash_initialize$4.$$p,block=$iter||nil;return $iter&&($Hash_initialize$4.$$p=null),$iter&&($Hash_initialize$4.$$p=null),void 0!==defaults&&block!==nil&&this.$raise($$($nesting,“ArgumentError”),“wrong number of arguments (1 for 0)”),this.$$none=void 0===defaults?nil:defaults,this.$$proc=block,this},$Hash_initialize$4.$$arity=-1),Opal.def(self,“$==”,$Hash_$eq_eq$5=function(other){if(this===other)return!0;if(!other.$$is_hash)return!1;if(this.$$keys.length!==other.$$keys.length)return!1;for(var key,value,other_value,i=0,keys=this.$$keys,length=keys.length;i<length;i++)if(void 0===(other_value=(key=keys).$$is_string?(value=this.$$smap,other.$$smap):(value=key.value,Opal.hash_get(other,key.key)))||!value(other_value))return!1;return!0},$Hash_$eq_eq$5.$$arity=1),Opal.def(self,“$>=”,$Hash_$gt_eq$6=function(other){var $$7,result=nil;return other=$$($nesting,“Opal”)(other,$$($nesting,“Hash”),“to_hash”),!(this.$$keys.length<other.$$keys.length)&&(result=!0,$send(other,“each”,[],(($$7=function(other_key,other_val){var val,self=$$7.$$s||this;null==other_key&&(other_key=nil),null==other_val&&(other_val=nil),null!=(val=self.$fetch(other_key,null))&&val===other_val||(result=!1)}).$$s=this,$$7.$$arity=2,$$7)),result)},$Hash_$gt_eq$6.$$arity=1),Opal.def(self,“$>”,$Hash_$gt$8=function(other){return other=$$($nesting,“Opal”)(other,$$($nesting,“Hash”),“to_hash”),!(this.$$keys.length<=other.$$keys.length)&&$rb_ge(this,other)},$Hash_$gt$8.$$arity=1),Opal.def(self,“$<”,$Hash_$lt$9=function(other){var lhs,rhs;return other=$$($nesting,“Opal”)(other,$$($nesting,“Hash”),“to_hash”),rhs=this,“number”==typeof(lhs=other)&&“number”==typeof “”>rhs?rhs(rhs)},$Hash_$lt$9.$$arity=1),Opal.def(self,“$<=”,$Hash_$lt_eq$10=function(other){return $rb_ge(other=$$($nesting,“Opal”)(other,$$($nesting,“Hash”),“to_hash”),this)},$Hash_$lt_eq$10.$$arity=1),Opal.def(self,“$[]”,$Hash_$$$11=function(key){var value=Opal.hash_get(this,key);return void 0!==value?value:this.$default(key)},$Hash_$$$11.$$arity=1),Opal.def(self,“$[]=”,$Hash_$$$eq$12=function(key,value){return Opal.hash_put(this,key,value),value},$Hash_$$$eq$12.$$arity=2),Opal.def(self,“$assoc”,$Hash_assoc$13=function(object){for(var key,i=0,keys=this.$$keys,length=keys.length;i).$$is_string){if(key(object))return[key,this.$$smap]}else if(key.key(object))return;return nil},$Hash_assoc$13.$$arity=1),Opal.def(self,“$clear”,$Hash_clear$14=function(){return Opal.hash_init(this),this},$Hash_clear$14.$$arity=0),Opal.def(self,“$clone”,$Hash_clone$15=function(){var hash=new this.$$class;return Opal.hash_init(hash),Opal.hash_clone(this,hash),hash},$Hash_clone$15.$$arity=0),Opal.def(self,“$compact”,$Hash_compact$16=function(){for(var key,value,hash=Opal.hash(),i=0,keys=this.$$keys,length=keys.length;i).$$is_string?value=this.$$smap:(value=key.value,key=key.key),value!==nil&&Opal.hash_put(hash,key,value);return hash},$Hash_compact$16.$$arity=0),Opal.def(self,“$compact!”,$Hash_compact$excl$17=function(){for(var key,value,changes_were_made=!1,i=0,keys=this.$$keys,length=keys.length;i).$$is_string?value=this.$$smap:(value=key.value,key=key.key),value===nil&&void 0!==Opal.hash_delete(this,key)&&(changes_were_made=!0,length–,i–);return changes_were_made?this:nil},$Hash_compact$excl$17.$$arity=0),Opal.def(self,“$compare_by_identity”,$Hash_compare_by_identity$18=function(){var i,ii,key,identity_hash,keys=this.$$keys;if(this.$$by_identity)return this;if(0===this.$$keys.length)return this.$$by_identity=!0,this;for(identity_hash=$hash2([],{}).$compare_by_identity(),i=0,ii=keys.length;i).$$is_string||(key=key.key),Opal.hash_put(identity_hash,key,Opal.hash_get(this,key));return this.$$by_identity=!0,this.$$map=identity_hash.$$map,this.$$smap=identity_hash.$$smap,this},$Hash_compare_by_identity$18.$$arity=0),Opal.def(self,“$compare_by_identity?”,$Hash_compare_by_identity$ques$19=function(){return!0===this.$$by_identity},$Hash_compare_by_identity$ques$19.$$arity=0),Opal.def(self,“$default”,$Hash_default$20=function(key){return void 0!==key&&this.$$proc!==nil&&void 0!==this.$$proc?this.$$proc.$call(this,key):void 0===this.$$none?nil:this.$$none},$Hash_default$20.$$arity=-1),Opal.def(self,“$default=”,$Hash_default$eq$21=function(object){return this.$$proc=nil,this.$$none=object},$Hash_default$eq$21.$$arity=1),Opal.def(self,“$default_proc”,$Hash_default_proc$22=function(){return void 0!==this.$$proc?this.$$proc:nil},$Hash_default_proc$22.$$arity=0),Opal.def(self,“$default_proc=”,$Hash_default_proc$eq$23=function(default_proc){var proc=default_proc;return proc!==nil&&(proc=$$($nesting,“Opal”)(proc,$$($nesting,“Proc”),“to_proc”))()&&2!==proc.$arity().$abs()&&this.$raise($$($nesting,“TypeError”),“default_proc takes two arguments”),this.$$none=nil,this.$$proc=proc,default_proc},$Hash_default_proc$eq$23.$$arity=1),Opal.def(self,“$delete”,$Hash_delete$24=function(key){var $iter=$Hash_delete$24.$$p,block=$iter||nil;$iter&&($Hash_delete$24.$$p=null),$iter&&($Hash_delete$24.$$p=null);var value=Opal.hash_delete(this,key);return void 0!==value?value:block!==nil?Opal.yield1(block,key):nil},$Hash_delete$24.$$arity=1),Opal.def(self,“$delete_if”,$Hash_delete_if$25=function(){var $$26,$iter=$Hash_delete_if$25.$$p,block=$iter||nil;if($iter&&($Hash_delete_if$25.$$p=null),$iter&&($Hash_delete_if$25.$$p=null),!$truthy(block))return $send(this,“enum_for”,,(($$26=function(){return($$26.$$s||this).$size()}).$$s=this,$$26.$$arity=0,$$26));for(var key,value,obj,i=0,keys=this.$$keys,length=keys.length;i).$$is_string?value=this.$$smap:(value=key.value,key=key.key),!1!==(obj=block(key,value))&&obj!==nil&&void 0!==Opal.hash_delete(this,key)&&(length–,i–);return this},$Hash_delete_if$25.$$arity=0),Opal.alias(self,“dup”,“clone”),Opal.def(self,“$dig”,$Hash_dig$27=function(key,$a){var keys,item=nil;return keys=Opal.slice.call(arguments,1,arguments.length),(item=this[“$”](key))===nil||0===keys.length?item:($truthy(item(“dig”))||this.$raise($$($nesting,“TypeError”),item.$class()+“ does not have dig method”),$send(item,“dig”,Opal.to_a(keys)))},$Hash_dig$27.$$arity=-2),Opal.def(self,“$each”,$Hash_each$28=function(){var $$29,$iter=$Hash_each$28.$$p,block=$iter||nil;if($iter&&($Hash_each$28.$$p=null),$iter&&($Hash_each$28.$$p=null),!$truthy(block))return $send(this,“enum_for”,,(($$29=function(){return($$29.$$s||this).$size()}).$$s=this,$$29.$$arity=0,$$29));for(var key,value,i=0,keys=this.$$keys,length=keys.length;i).$$is_string?value=this.$$smap:(value=key.value,key=key.key),Opal.yield1(block,);return this},$Hash_each$28.$$arity=0),Opal.def(self,“$each_key”,$Hash_each_key$30=function(){var $$31,$iter=$Hash_each_key$30.$$p,block=$iter||nil;if($iter&&($Hash_each_key$30.$$p=null),$iter&&($Hash_each_key$30.$$p=null),!$truthy(block))return $send(this,“enum_for”,,(($$31=function(){return($$31.$$s||this).$size()}).$$s=this,$$31.$$arity=0,$$31));for(var key,i=0,keys=this.$$keys,length=keys.length;i).$$is_string?key:key.key);return this},$Hash_each_key$30.$$arity=0),Opal.alias(self,“each_pair”,“each”),Opal.def(self,“$each_value”,$Hash_each_value$32=function(){var $$33,$iter=$Hash_each_value$32.$$p,block=$iter||nil;if($iter&&($Hash_each_value$32.$$p=null),$iter&&($Hash_each_value$32.$$p=null),!$truthy(block))return $send(this,“enum_for”,,(($$33=function(){return($$33.$$s||this).$size()}).$$s=this,$$33.$$arity=0,$$33));for(var key,i=0,keys=this.$$keys,length=keys.length;i).$$is_string?this.$$smap:key.value);return this},$Hash_each_value$32.$$arity=0),Opal.def(self,“$empty?”,$Hash_empty$ques$34=function(){return 0===this.$$keys.length},$Hash_empty$ques$34.$$arity=0),Opal.alias(self,“eql?”,“==”),Opal.def(self,“$fetch”,$Hash_fetch$35=function(key,defaults){var $iter=$Hash_fetch$35.$$p,block=$iter||nil;$iter&&($Hash_fetch$35.$$p=null),$iter&&($Hash_fetch$35.$$p=null);var value=Opal.hash_get(this,key);return void 0!==value?value:block!==nil?block(key):void 0!==defaults?defaults:this.$raise($$($nesting,“KeyError”).$new(“key not found: ”+key.$inspect(),$hash2(,{key:key,receiver:this})))},$Hash_fetch$35.$$arity=-2),Opal.def(self,“$fetch_values”,$Hash_fetch_values$36=function($a){var $post_args,$$37,$iter=$Hash_fetch_values$36.$$p,block=$iter||nil;return $iter&&($Hash_fetch_values$36.$$p=null),$iter&&($Hash_fetch_values$36.$$p=null),$post_args=Opal.slice.call(arguments,0,arguments.length),$send($post_args,“map”,[],(($$37=function(key){var self=$$37.$$s||this;return null==key&&(key=nil),$send(self,“fetch”,,block.$to_proc())}).$$s=this,$$37.$$arity=1,$$37))},$Hash_fetch_values$36.$$arity=-1),Opal.def(self,“$flatten”,$Hash_flatten$38=function(level){null==level&&(level=1),level=$$($nesting,“Opal”)(level,$$($nesting,“Integer”),“to_int”);for(var key,value,result=[],i=0,keys=this.$$keys,length=keys.length;i).$$is_string?value=this.$$smap:(value=key.value,key=key.key),result.push(key),value.$$is_array){if(1===level){result.push(value);continue}result=result.concat(value.$flatten(level-2))}else result.push(value);return result},$Hash_flatten$38.$$arity=-1),Opal.def(self,“$has_key?”,$Hash_has_key$ques$39=function(key){return void 0!==Opal.hash_get(this,key)},$Hash_has_key$ques$39.$$arity=1),Opal.def(self,“$has_value?”,$Hash_has_value$ques$40=function(value){for(var key,i=0,keys=this.$$keys,length=keys.length;i).$$is_string?this.$$smap:key.value)(value))return!0;return!1},$Hash_has_value$ques$40.$$arity=1),Opal.def(self,“$hash”,$Hash_hash$41=function(){var key,item,top=void 0===Opal.hash_ids,hash_id=this.$object_id(),result=;try{if(top&&(Opal.hash_ids=Object.create(null)),Opal)return“self”;for(key in Opal.hash_ids)if(item=Opal.hash_ids,this(item))return“self”;Opal.hash_ids=this;for(var i=0,keys=this.$$keys,length=keys.length;i).$$is_string?result.push([key,this.$$smap.$hash()]):result.push();return result.sort().join()}finally{top&&(Opal.hash_ids=void 0)}},$Hash_hash$41.$$arity=0),Opal.alias(self,“include?”,“has_key?”),Opal.def(self,“$index”,$Hash_index$42=function(object){for(var key,value,i=0,keys=this.$$keys,length=keys.length;i).$$is_string?value=this.$$smap:(value=key.value,key=key.key),value(object))return key;return nil},$Hash_index$42.$$arity=1),Opal.def(self,“$indexes”,$Hash_indexes$43=function($a){for(var args,key,value,result=[],i=0,length=(args=Opal.slice.call(arguments,0,arguments.length)).length;i,void 0!==(value=Opal.hash_get(this,key))?result.push(value):result.push(this.$default());return result},$Hash_indexes$43.$$arity=-1),Opal.alias(self,“indices”,“indexes”),Opal.def(self,“$inspect”,$Hash_inspect$44=function(){var top=void 0===inspect_ids,hash_id=this.$object_id(),result=[];try{if(top&&(inspect_ids={}),inspect_ids.hasOwnProperty(hash_id))return“{…}”;inspect_ids=!0;for(var key,value,i=0,keys=this.$$keys,length=keys.length;i).$$is_string?value=this.$$smap:(value=key.value,key=key.key),result.push(key.$inspect()+“=>”+value.$inspect());return“{”+result.join(“, ”)+“}”}finally{top&&(inspect_ids=void 0)}},$Hash_inspect$44.$$arity=0),Opal.def(self,“$invert”,$Hash_invert$45=function(){for(var key,value,hash=Opal.hash(),i=0,keys=this.$$keys,length=keys.length;i).$$is_string?value=this.$$smap:(value=key.value,key=key.key),Opal.hash_put(hash,value,key);return hash},$Hash_invert$45.$$arity=0),Opal.def(self,“$keep_if”,$Hash_keep_if$46=function(){var $$47,$iter=$Hash_keep_if$46.$$p,block=$iter||nil;if($iter&&($Hash_keep_if$46.$$p=null),$iter&&($Hash_keep_if$46.$$p=null),!$truthy(block))return $send(this,“enum_for”,,(($$47=function(){return($$47.$$s||this).$size()}).$$s=this,$$47.$$arity=0,$$47));for(var key,value,obj,i=0,keys=this.$$keys,length=keys.length;i).$$is_string?value=this.$$smap:(value=key.value,key=key.key),!1!==(obj=block(key,value))&&obj!==nil||void 0!==Opal.hash_delete(this,key)&&(length–,i–);return this},$Hash_keep_if$46.$$arity=0),Opal.alias(self,“key”,“index”),Opal.alias(self,“key?”,“has_key?”),Opal.def(self,“$keys”,$Hash_keys$48=function(){for(var key,result=[],i=0,keys=this.$$keys,length=keys.length;i).$$is_string?result.push(key):result.push(key.key);return result},$Hash_keys$48.$$arity=0),Opal.def(self,“$length”,$Hash_length$49=function(){return this.$$keys.length},$Hash_length$49.$$arity=0),Opal.alias(self,“member?”,“has_key?”),Opal.def(self,“$merge”,$Hash_merge$50=function(other){var $iter=$Hash_merge$50.$$p,block=$iter||nil;return $iter&&($Hash_merge$50.$$p=null),$iter&&($Hash_merge$50.$$p=null),$send(this.$dup(),“merge!”,,block.$to_proc())},$Hash_merge$50.$$arity=1),Opal.def(self,“$merge!”,$Hash_merge$excl$51=function(other){var $iter=$Hash_merge$excl$51.$$p,block=$iter||nil;$iter&&($Hash_merge$excl$51.$$p=null),$iter&&($Hash_merge$excl$51.$$p=null),other.$$is_hash||(other=$$($nesting,“Opal”)(other,$$($nesting,“Hash”),“to_hash”));var i,key,value,other_value,other_keys=other.$$keys,length=other_keys.length;if(block===nil){for(i=0;i).$$is_string?other_value=other.$$smap:(other_value=key.value,key=key.key),Opal.hash_put(this,key,other_value);return this}for(i=0;i).$$is_string?other_value=other.$$smap:(other_value=key.value,key=key.key),void 0!==(value=Opal.hash_get(this,key))?Opal.hash_put(this,key,block(key,value,other_value)):Opal.hash_put(this,key,other_value);return this},$Hash_merge$excl$51.$$arity=1),Opal.def(self,“$rassoc”,$Hash_rassoc$52=function(object){for(var key,value,i=0,keys=this.$$keys,length=keys.length;i).$$is_string?value=this.$$smap:(value=key.value,key=key.key),value(object))return;return nil},$Hash_rassoc$52.$$arity=1),Opal.def(self,“$rehash”,$Hash_rehash$53=function(){return Opal.hash_rehash(this),this},$Hash_rehash$53.$$arity=0),Opal.def(self,“$reject”,$Hash_reject$54=function(){var $$55,$iter=$Hash_reject$54.$$p,block=$iter||nil;if($iter&&($Hash_reject$54.$$p=null),$iter&&($Hash_reject$54.$$p=null),!$truthy(block))return $send(this,“enum_for”,,(($$55=function(){return($$55.$$s||this).$size()}).$$s=this,$$55.$$arity=0,$$55));for(var key,value,obj,hash=Opal.hash(),i=0,keys=this.$$keys,length=keys.length;i).$$is_string?value=this.$$smap:(value=key.value,key=key.key),!1!==(obj=block(key,value))&&obj!==nil||Opal.hash_put(hash,key,value);return hash},$Hash_reject$54.$$arity=0),Opal.def(self,“$reject!”,$Hash_reject$excl$56=function(){var $$57,$iter=$Hash_reject$excl$56.$$p,block=$iter||nil;if($iter&&($Hash_reject$excl$56.$$p=null),$iter&&($Hash_reject$excl$56.$$p=null),!$truthy(block))return $send(this,“enum_for”,,(($$57=function(){return($$57.$$s||this).$size()}).$$s=this,$$57.$$arity=0,$$57));for(var key,value,obj,changes_were_made=!1,i=0,keys=this.$$keys,length=keys.length;i).$$is_string?value=this.$$smap:(value=key.value,key=key.key),!1!==(obj=block(key,value))&&obj!==nil&&void 0!==Opal.hash_delete(this,key)&&(changes_were_made=!0,length–,i–);return changes_were_made?this:nil},$Hash_reject$excl$56.$$arity=0),Opal.def(self,“$replace”,$Hash_replace$58=function(other){var $writer=nil;other=$$($nesting,“Opal”)(other,$$($nesting,“Hash”),“to_hash”),Opal.hash_init(this);for(var key,other_value,i=0,other_keys=other.$$keys,length=other_keys.length;i).$$is_string?other_value=other.$$smap:(other_value=key.value,key=key.key),Opal.hash_put(this,key,other_value);return $truthy(other.$default_proc())?($writer=,$send(this,“default_proc=”,Opal.to_a($writer))):($writer=,$send(this,“default=”,Opal.to_a($writer))),$writer,this},$Hash_replace$58.$$arity=1),Opal.def(self,“$select”,$Hash_select$59=function(){var $$60,$iter=$Hash_select$59.$$p,block=$iter||nil;if($iter&&($Hash_select$59.$$p=null),$iter&&($Hash_select$59.$$p=null),!$truthy(block))return $send(this,“enum_for”,,(($$60=function(){return($$60.$$s||this).$size()}).$$s=this,$$60.$$arity=0,$$60));for(var key,value,obj,hash=Opal.hash(),i=0,keys=this.$$keys,length=keys.length;i).$$is_string?value=this.$$smap:(value=key.value,key=key.key),!1!==(obj=block(key,value))&&obj!==nil&&Opal.hash_put(hash,key,value);return hash},$Hash_select$59.$$arity=0),Opal.def(self,“$select!”,$Hash_select$excl$61=function(){var $$62,$iter=$Hash_select$excl$61.$$p,block=$iter||nil;if($iter&&($Hash_select$excl$61.$$p=null),$iter&&($Hash_select$excl$61.$$p=null),!$truthy(block))return $send(this,“enum_for”,,(($$62=function(){return($$62.$$s||this).$size()}).$$s=this,$$62.$$arity=0,$$62));for(var key,value,obj,result=nil,i=0,keys=this.$$keys,length=keys.length;i).$$is_string?value=this.$$smap:(value=key.value,key=key.key),!1!==(obj=block(key,value))&&obj!==nil||(void 0!==Opal.hash_delete(this,key)&&(length–,i–),result=this);return result},$Hash_select$excl$61.$$arity=0),Opal.def(self,“$shift”,$Hash_shift$63=function(){var key,keys=this.$$keys;return 0).$$is_string?key:key.key,Opal.hash_delete(this,key)]:this.$default(nil)},$Hash_shift$63.$$arity=0),Opal.alias(self,“size”,“length”),Opal.def(self,“$slice”,$Hash_slice$64=function($a){var keys;keys=Opal.slice.call(arguments,0,arguments.length);for(var result=Opal.hash(),i=0,length=keys.length;i<length;i++){var key=keys,value=Opal.hash_get(this,key);void 0!==value&&Opal.hash_put(result,key,value)}return result},$Hash_slice$64.$$arity=-1),Opal.alias(self,“store”,“[]=”),Opal.def(self,“$to_a”,$Hash_to_a$65=function(){for(var key,value,result=[],i=0,keys=this.$$keys,length=keys.length;i).$$is_string?value=this.$$smap:(value=key.value,key=key.key),result.push();return result},$Hash_to_a$65.$$arity=0),Opal.def(self,“$to_h”,$Hash_to_h$66=function(){if(this.$$class===Opal.Hash)return this;var hash=new Opal.Hash;return Opal.hash_init(hash),Opal.hash_clone(this,hash),hash},$Hash_to_h$66.$$arity=0),Opal.def(self,“$to_hash”,$Hash_to_hash$67=function(){return this},$Hash_to_hash$67.$$arity=0),Opal.def(self,“$to_proc”,$Hash_to_proc$68=function(){var $$69;return $send(this,“proc”,[],(($$69=function(key){var self=$$69.$$s||this;return null==key&&self.$raise($$($nesting,“ArgumentError”),“no key given”),self[“$”](key)}).$$s=this,$$69.$$arity=-1,$$69))},$Hash_to_proc$68.$$arity=0),Opal.alias(self,“to_s”,“inspect”),Opal.def(self,“$transform_keys”,$Hash_transform_keys$70=function(){var $$71,$iter=$Hash_transform_keys$70.$$p,block=$iter||nil;if($iter&&($Hash_transform_keys$70.$$p=null),$iter&&($Hash_transform_keys$70.$$p=null),!$truthy(block))return $send(this,“enum_for”,,(($$71=function(){return($$71.$$s||this).$size()}).$$s=this,$$71.$$arity=0,$$71));for(var key,value,result=Opal.hash(),i=0,keys=this.$$keys,length=keys.length;i).$$is_string?value=this.$$smap:(value=key.value,key=key.key),key=Opal.yield1(block,key),Opal.hash_put(result,key,value);return result},$Hash_transform_keys$70.$$arity=0),Opal.def(self,“$transform_keys!”,$Hash_transform_keys$excl$72=function(){var $$73,$iter=$Hash_transform_keys$excl$72.$$p,block=$iter||nil;if($iter&&($Hash_transform_keys$excl$72.$$p=null),$iter&&($Hash_transform_keys$excl$72.$$p=null),!$truthy(block))return $send(this,“enum_for”,,(($$73=function(){return($$73.$$s||this).$size()}).$$s=this,$$73.$$arity=0,$$73));var i,key,value,new_key,keys=Opal.slice.call(this.$$keys),length=keys.length;for(i=0;i).$$is_string?value=this.$$smap:(value=key.value,key=key.key),new_key=Opal.yield1(block,key),Opal.hash_delete(this,key),Opal.hash_put(this,new_key,value);return this},$Hash_transform_keys$excl$72.$$arity=0),Opal.def(self,“$transform_values”,$Hash_transform_values$74=function(){var $$75,$iter=$Hash_transform_values$74.$$p,block=$iter||nil;if($iter&&($Hash_transform_values$74.$$p=null),$iter&&($Hash_transform_values$74.$$p=null),!$truthy(block))return $send(this,“enum_for”,,(($$75=function(){return($$75.$$s||this).$size()}).$$s=this,$$75.$$arity=0,$$75));for(var key,value,result=Opal.hash(),i=0,keys=this.$$keys,length=keys.length;i).$$is_string?value=this.$$smap:(value=key.value,key=key.key),value=Opal.yield1(block,value),Opal.hash_put(result,key,value);return result},$Hash_transform_values$74.$$arity=0),Opal.def(self,“$transform_values!”,$Hash_transform_values$excl$76=function(){var $$77,$iter=$Hash_transform_values$excl$76.$$p,block=$iter||nil;if($iter&&($Hash_transform_values$excl$76.$$p=null),$iter&&($Hash_transform_values$excl$76.$$p=null),!$truthy(block))return $send(this,“enum_for”,,(($$77=function(){return($$77.$$s||this).$size()}).$$s=this,$$77.$$arity=0,$$77));for(var key,value,i=0,keys=this.$$keys,length=keys.length;i).$$is_string?value=this.$$smap:(value=key.value,key=key.key),value=Opal.yield1(block,value),Opal.hash_put(this,key,value);return this},$Hash_transform_values$excl$76.$$arity=0),Opal.alias(self,“update”,“merge!”),Opal.alias(self,“value?”,“has_value?”),Opal.alias(self,“values_at”,“indexes”),Opal.def(self,“$values”,$Hash_values$78=function(){for(var key,result=[],i=0,keys=this.$$keys,length=keys.length;i).$$is_string?result.push(this.$$smap):result.push(key.value);return result},$Hash_values$78.$$arity=0),nil&&“values”}($nesting,0,$nesting)},Opal.modules=function(Opal){function $rb_gt(lhs,rhs){return“number”==typeof lhs&&“number”==typeof “”>rhs?rhs(rhs)}function $rb_lt(lhs,rhs){return“number”==typeof lhs&&“number”==typeof rhs?lhs(rhs)}function $rb_plus(lhs,rhs){return“number”==typeof lhs&&“number”==typeof rhs?lhs+rhs:lhs(rhs)}function $rb_minus(lhs,rhs){return“number”==typeof lhs&&“number”==typeof rhs?lhs-rhs:lhs(rhs)}function $rb_divide(lhs,rhs){return“number”==typeof lhs&&“number”==typeof rhs?lhs/rhs:lhs(rhs)}function $rb_times(lhs,rhs){return“number”==typeof lhs&&“number”==typeof rhs?lhs*rhs:lhs(rhs)}var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.const_get_qualified,$$=Opal.const_get_relative,$klass=(Opal.breaker,Opal.slice,Opal.klass),$truthy=Opal.truthy,$send=Opal.send,$hash2=Opal.hash2;return “,”$size“,”$<=","$>=“,”$<=>“,”$compare“,”$any?“] at Opal.add_stubs(["$require","$bridge","$raise","$name","$class","$Float","$respond_to?","$coerce_to!","$__coerced__","$===","$!","$>","$**","$new","$<","$to_f","$==","$nan?","$infinite?","$enum_for","$+","$-","$gcd","$lcm","$%","$/","$frexp","$to_i","$ldexp","$rationalize","$*","$<<","$to_r","$truncate","$-),self.$require(”corelib/numeric“),function($base,$super,$parent_nesting){var $Number_coerce$2,$Number___id__$3,$Number_$plus$4,$Number_$minus$5,$Number_$$6,$Number_$slash$7,$Number_$percent$8,$Number_$$9,$Number_$$10,$Number_$$11,$Number_$lt$12,$Number_$lt_eq$13,$Number_$gt$14,$Number_$gt_eq$15,$Number_$lt_eq_gt$16,$Number_$lt$lt$17,$Number_$gt$gt$18,$Number_$$$19,$Number_$plus$$20,$Number_$minus$$21,$Number_$$22,$Number_$$$23,$Number_$eq_eq_eq$24,$Number_$eq_eq$25,$Number_abs$26,$Number_abs2$27,$Number_allbits$ques$28,$Number_anybits$ques$29,$Number_angle$30,$Number_bit_length$31,$Number_ceil$32,$Number_chr$33,$Number_denominator$34,$Number_downto$35,$Number_equal$ques$37,$Number_even$ques$38,$Number_floor$39,$Number_gcd$40,$Number_gcdlcm$41,$Number_integer$ques$42,$Number_is_a$ques$43,$Number_instance_of$ques$44,$Number_lcm$45,$Number_next$46,$Number_nobits$ques$47,$Number_nonzero$ques$48,$Number_numerator$49,$Number_odd$ques$50,$Number_ord$51,$Number_pow$52,$Number_pred$53,$Number_quo$54,$Number_rationalize$55,$Number_remainder$56,$Number_round$57,$Number_step$58,$Number_times$60,$Number_to_f$62,$Number_to_i$63,$Number_to_r$64,$Number_to_s$65,$Number_truncate$66,$Number_digits$67,$Number_divmod$68,$Number_upto$69,$Number_zero$ques$71,$Number_size$72,$Number_nan$ques$73,$Number_finite$ques$74,$Number_infinite$ques$75,$Number_positive$ques$76,$Number_negative$ques$77,self=$klass($base,$super,”Number“),$nesting=.concat($parent_nesting);$$($nesting,”Opal“).$bridge(Number,self),Opal.defineProperty(self.$$prototype,”$$is_number“,!0),self.$$is_number_class=!0,function(self,$parent_nesting){var $allocate$1,$nesting=.concat($parent_nesting);Opal.def(self,”$allocate“,$allocate$1=function(){return this.$raise($$($nesting,”TypeError“),”allocator undefined for “+this.$name())},$allocate$1.$$arity=0),Opal.udef(self,”$new“)}(Opal.get_singleton_class(self),$nesting),Opal.def(self,”$coerce“,$Number_coerce$2=function(other){if(other===nil)this.$raise($$($nesting,”TypeError“),”can't convert “+other.$class()+” into Float“);else{if(other.$$is_string)return;if(other(”to_f“))return[$$($nesting,”Opal“)(other,$$($nesting,”Float“),”to_f“),this];if(other.$$is_number)return;this.$raise($$($nesting,”TypeError“),”can't convert “+other.$class()+” into Float“)}},$Number_coerce$2.$$arity=1),Opal.def(self,”$__id__“,$Number___id__$3=function(){return 2*this+1},$Number___id__$3.$$arity=0),Opal.alias(self,”object_id“,”__id__“),Opal.def(self,”$+“,$Number_$plus$4=function(other){return other.$$is_number?this+other:this.$__coerced__(”+“,other)},$Number_$plus$4.$$arity=1),Opal.def(self,”$-“,$Number_$minus$5=function(other){return other.$$is_number?this-other:this.$__coerced__(”-“,other)},$Number_$minus$5.$$arity=1),Opal.def(self,”$*“,$Number_$$6=function(other){return other.$$is_number?this*other:this.$__coerced__(”*“,other)},$Number_$$6.$$arity=1),Opal.def(self,”$/“,$Number_$slash$7=function(other){return other.$$is_number?this/other:this.$__coerced__(”/“,other)},$Number_$slash$7.$$arity=1),Opal.alias(self,”fdiv“,”/“),Opal.def(self,”$%“,$Number_$percent$8=function(other){return other.$$is_number?other==-1/0?other:0!=other?other<0||this<0?(this%other+other)%other:this%other:void this.$raise($$($nesting,”ZeroDivisionError“),”divided by 0“):this.$__coerced__(”%“,other)},$Number_$percent$8.$$arity=1),Opal.def(self,”$&“,$Number_$$9=function(other){return other.$$is_number?this&other:this.$__coerced__(”&“,other)},$Number_$$9.$$arity=1),Opal.def(self,”$|“,$Number_$$10=function(other){return other.$$is_number?this|other:this.$__coerced__(”|“,other)},$Number_$$10.$$arity=1),Opal.def(self,”$^“,$Number_$$11=function(other){return other.$$is_number?this^other:this.$__coerced__(”^“,other)},$Number_$$11.$$arity=1),Opal.def(self,”$<“,$Number_$lt$12=function(other){return other.$$is_number?this<other:this.$__coerced__(”<“,other)},$Number_$lt$12.$$arity=1),Opal.def(self,”$<=“,$Number_$lt_eq$13=function(other){return other.$$is_number?this<=other:this.$__coerced__(”<=“,other)},$Number_$lt_eq$13.$$arity=1),Opal.def(self,”$>“,$Number_$gt$14=function(other){return other.$$is_number?other<this:this.$__coerced__(”>“,other)},$Number_$gt$14.$$arity=1),Opal.def(self,”$>=“,$Number_$gt_eq$15=function(other){return other.$$is_number?other<=this:this.$__coerced__(”>=“,other)},$Number_$gt_eq$15.$$arity=1);Opal.def(self,”$<=>“,$Number_$lt_eq_gt$16=function(other){try{return function(self,other){return other.$$is_number?isNaN(self)||isNaN(other)?nil:other<self?1:self<other?-1:0:self.$__coerced__(”<=>“,other)}(this,other)}catch($err){if(!Opal.rescue($err,))throw $err;try{return nil}finally{Opal.pop_exception()}}},$Number_$lt_eq_gt$16.$$arity=1),Opal.def(self,”$<<“,$Number_$lt$lt$17=function(count){return 0<(count=$$($nesting,"Opal")(count,$$($nesting,”Integer“),”to_int“))?this<<count:this>>-count},$Number_$lt$lt$17.$$arity=1),Opal.def(self,”$>>“,$Number_$gt$gt$18=function(count){return 0<(count=$$($nesting,"Opal")(count,$$($nesting,”Integer“),”to_int“))?this>>count:this<<-count},$Number_$gt$gt$18.$$arity=1),Opal.def(self,”$[]“,$Number_$$$19=function(bit){return(bit=$$($nesting,”Opal“)(bit,$$($nesting,”Integer“),”to_int“))<0?0:32<=bit?this<0?1:0:this>>bit&1},$Number_$$$19.$$arity=1),Opal.def(self,”$+@“,$Number_$plus$$20=function(){return+this},$Number_$plus$$20.$$arity=0),Opal.def(self,”$-@“,$Number_$minus$$21=function(){return-this},$Number_$minus$$21.$$arity=0),Opal.def(self,”$~“,$Number_$$22=function(){return~this},$Number_$$22.$$arity=0),Opal.def(self,”$**“,$Number_$$$23=function(other){var $a,$b;return $truthy($$($nesting,”Integer“)(other))?$truthy($truthy($a=$$($nesting,”Integer“)(this)())?$a:$rb_gt(other,0))?Math.pow(this,other):$$($nesting,”Rational“).$new(this,1)(other):$truthy(($a=$rb_lt(this,0))?$truthy($b=$$($nesting,”Float“)(other))?$b:$$($nesting,”Rational“)(other):$rb_lt(this,0))?$$($nesting,”Complex“).$new(this,0)(other.$to_f()):$truthy(null!=other.$$is_number)?Math.pow(this,other):this.$__coerced__(”**“,other)},$Number_$$$23.$$arity=1),Opal.def(self,”$===“,$Number_$eq_eq_eq$24=function(other){return other.$$is_number?this.valueOf()===other.valueOf():!!other(”==“)&&other(this)},$Number_$eq_eq_eq$24.$$arity=1),Opal.def(self,”$==“,$Number_$eq_eq$25=function(other){return other.$$is_number?this.valueOf()===other.valueOf():!!other(”==“)&&other(this)},$Number_$eq_eq$25.$$arity=1),Opal.def(self,”$abs“,$Number_abs$26=function(){return Math.abs(this)},$Number_abs$26.$$arity=0),Opal.def(self,”$abs2“,$Number_abs2$27=function(){return Math.abs(this*this)},$Number_abs2$27.$$arity=0),Opal.def(self,”$allbits?“,$Number_allbits$ques$28=function(mask){return(this&(mask=$$($nesting,”Opal“)(mask,$$($nesting,”Integer“),”to_int“)))==mask},$Number_allbits$ques$28.$$arity=1),Opal.def(self,”$anybits?“,$Number_anybits$ques$29=function(mask){return 0!=(this&(mask=$$($nesting,”Opal“)(mask,$$($nesting,”Integer“),”to_int“)))},$Number_anybits$ques$29.$$arity=1),Opal.def(self,”$angle“,$Number_angle$30=function(){return $truthy(this())?this:0==this?0<1/this?0:Math.PI:this<0?Math.PI:0},$Number_angle$30.$$arity=0),Opal.alias(self,”arg“,”angle“),Opal.alias(self,”phase“,”angle“),Opal.def(self,”$bit_length“,$Number_bit_length$31=function(){if($truthy($$($nesting,”Integer“)(this))||this.$raise($$($nesting,”NoMethodError“).$new(”undefined method `bit_length` for “this”:Float“,”bit_length“)),0===this||-1===this)return 0;for(var result=0,value=this<0?~this:this;0!=value;)result+=1,value>>>=1;return result},$Number_bit_length$31.$$arity=0),Opal.def(self,”$ceil“,$Number_ceil$32=function(ndigits){null==ndigits&&(ndigits=0);var f=this.$to_f();if(f%1==0&&0<=ndigits)return f;var factor=Math.pow(10,ndigits),result=Math.ceil(f*factor)/factor;return f%1==0&&(result=Math.round(result)),result},$Number_ceil$32.$$arity=-1),Opal.def(self,”$chr“,$Number_chr$33=function(encoding){return String.fromCharCode(this)},$Number_chr$33.$$arity=-1),Opal.def(self,”$denominator“,$Number_denominator$34=function(){var $a,$zuper_ii,$iter=$Number_denominator$34.$$p,$zuper=nil,$zuper_i=nil;for($iter&&($Number_denominator$34.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper=arguments;return $truthy($truthy($a=this())?$a:this())?1:$send(this,Opal.find_super_dispatcher(this,”denominator“,$Number_denominator$34,!1),$zuper,$iter)},$Number_denominator$34.$$arity=0),Opal.def(self,”$downto“,$Number_downto$35=function(stop){var $$36,$iter=$Number_downto$35.$$p,block=$iter||nil;if($iter&&($Number_downto$35.$$p=null),$iter&&($Number_downto$35.$$p=null),block===nil)return $send(this,”enum_for“,,(($$36=function(){var self=$$36.$$s||this;return $truthy($$($nesting,”Numeric“)(stop))||self.$raise($$($nesting,”ArgumentError“),”comparison of “+self.$class()+” with “+stop.$class()+” failed“),$truthy($rb_gt(stop,self))?0:$rb_plus($rb_minus(self,stop),1)}).$$s=this,$$36.$$arity=0,$$36));stop.$$is_number||this.$raise($$($nesting,”ArgumentError“),”comparison of “+this.$class()+” with “+stop.$class()+” failed“);for(var i=this;stop<=i;i–)block(i);return this},$Number_downto$35.$$arity=1),Opal.alias(self,”eql?“,”==“),Opal.def(self,”$equal?“,$Number_equal$ques$37=function(other){var $a;return $truthy($a=this(other))?$a:isNaN(this)&&isNaN(other)},$Number_equal$ques$37.$$arity=1),Opal.def(self,”$even?“,$Number_even$ques$38=function(){return this%2==0},$Number_even$ques$38.$$arity=0),Opal.def(self,”$floor“,$Number_floor$39=function(ndigits){null==ndigits&&(ndigits=0);var f=this.$to_f();if(f%1==0&&0<=ndigits)return f;var factor=Math.pow(10,ndigits),result=Math.floor(f*factor)/factor;return f%1==0&&(result=Math.round(result)),result},$Number_floor$39.$$arity=-1),Opal.def(self,”$gcd“,$Number_gcd$40=function(other){$truthy($$($nesting,”Integer“)(other))||this.$raise($$($nesting,”TypeError“),”not an integer“);for(var min=Math.abs(this),max=Math.abs(other);0<min;){var tmp=min;min=max%min,max=tmp}return max},$Number_gcd$40.$$arity=1),Opal.def(self,”$gcdlcm“,$Number_gcdlcm$41=function(other){return},$Number_gcdlcm$41.$$arity=1),Opal.def(self,”$integer?“,$Number_integer$ques$42=function(){return this%1==0},$Number_integer$ques$42.$$arity=0),Opal.def(self,”$is_a?“,$Number_is_a$ques$43=function(klass){var $zuper_ii,$iter=$Number_is_a$ques$43.$$p,$zuper=nil,$zuper_i=nil;for($iter&&($Number_is_a$ques$43.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper=arguments;return!!$truthy(klass($$($nesting,”Integer“))?$$($nesting,”Integer“)(this):klass($$($nesting,”Integer“)))||(!!$truthy(klass($$($nesting,”Integer“))?$$($nesting,”Integer“)(this):klass($$($nesting,”Integer“)))||(!!$truthy(klass($$($nesting,”Float“))?$$($nesting,”Float“)(this):klass($$($nesting,”Float“)))||$send(this,Opal.find_super_dispatcher(this,”is_a?“,$Number_is_a$ques$43,!1),$zuper,$iter)))},$Number_is_a$ques$43.$$arity=1),Opal.alias(self,”kind_of?“,”is_a?“),Opal.def(self,”$instance_of?“,$Number_instance_of$ques$44=function(klass){var $zuper_ii,$iter=$Number_instance_of$ques$44.$$p,$zuper=nil,$zuper_i=nil;for($iter&&($Number_instance_of$ques$44.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper=arguments;return!!$truthy(klass($$($nesting,”Integer“))?$$($nesting,”Integer“)(this):klass($$($nesting,”Integer“)))||(!!$truthy(klass($$($nesting,”Integer“))?$$($nesting,”Integer“)(this):klass($$($nesting,”Integer“)))||(!!$truthy(klass($$($nesting,”Float“))?$$($nesting,”Float“)(this):klass($$($nesting,”Float“)))||$send(this,Opal.find_super_dispatcher(this,”instance_of?“,$Number_instance_of$ques$44,!1),$zuper,$iter)))},$Number_instance_of$ques$44.$$arity=1),Opal.def(self,”$lcm“,$Number_lcm$45=function(other){return $truthy($$($nesting,”Integer“)(other))||this.$raise($$($nesting,”TypeError“),”not an integer“),0==this||0==other?0:Math.abs(this*other/this.$gcd(other))},$Number_lcm$45.$$arity=1),Opal.alias(self,”magnitude“,”abs“),Opal.alias(self,”modulo“,”%“),Opal.def(self,”$next“,$Number_next$46=function(){return this+1},$Number_next$46.$$arity=0),Opal.def(self,”$nobits?“,$Number_nobits$ques$47=function(mask){return 0==(this&(mask=$$($nesting,”Opal“)(mask,$$($nesting,”Integer“),”to_int“)))},$Number_nobits$ques$47.$$arity=1),Opal.def(self,”$nonzero?“,$Number_nonzero$ques$48=function(){return 0==this?nil:this},$Number_nonzero$ques$48.$$arity=0),Opal.def(self,”$numerator“,$Number_numerator$49=function(){var $a,$zuper_ii,$iter=$Number_numerator$49.$$p,$zuper=nil,$zuper_i=nil;for($iter&&($Number_numerator$49.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper=arguments;return $truthy($truthy($a=this())?$a:this())?this:$send(this,Opal.find_super_dispatcher(this,”numerator“,$Number_numerator$49,!1),$zuper,$iter)},$Number_numerator$49.$$arity=0),Opal.def(self,”$odd?“,$Number_odd$ques$50=function(){return this%2!=0},$Number_odd$ques$50.$$arity=0),Opal.def(self,”$ord“,$Number_ord$51=function(){return this},$Number_ord$51.$$arity=0),Opal.def(self,”$pow“,$Number_pow$52=function(b,m){return 0==this&&this.$raise($$($nesting,”ZeroDivisionError“),”divided by 0“),void 0===m?this(b):($$($nesting,”Integer“)(b)||this.$raise($$($nesting,”TypeError“),”Integer#pow() 2nd argument not allowed unless a 1st argument is integer“),b<0&&this.$raise($$($nesting,”TypeError“),”Integer#pow() 1st argument cannot be negative when 2nd argument specified“),$$($nesting,”Integer“)(m)||this.$raise($$($nesting,”TypeError“),”Integer#pow() 2nd argument not allowed unless all arguments are integers“),0===m&&this.$raise($$($nesting,”ZeroDivisionError“),”divided by 0“),this(b)(m))},$Number_pow$52.$$arity=-2),Opal.def(self,”$pred“,$Number_pred$53=function(){return this-1},$Number_pred$53.$$arity=0),Opal.def(self,”$quo“,$Number_quo$54=function(other){var $zuper_ii,$iter=$Number_quo$54.$$p,$zuper=nil,$zuper_i=nil;for($iter&&($Number_quo$54.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper=arguments;return $truthy($$($nesting,”Integer“)(this))?$send(this,Opal.find_super_dispatcher(this,”quo“,$Number_quo$54,!1),$zuper,$iter):$rb_divide(this,other)},$Number_quo$54.$$arity=1),Opal.def(self,”$rationalize“,$Number_rationalize$55=function(eps){var $a,$b,f=nil,n=nil;return 1<arguments.length&&this.$raise($$($nesting,”ArgumentError“),”wrong number of arguments (“arguments.length” for 0..1)“),$truthy($$($nesting,”Integer“)(this))?$$($nesting,”Rational“).$new(this,1):$truthy(this())?this.$raise($$($nesting,”FloatDomainError“),”Infinity“):$truthy(this())?this.$raise($$($nesting,”FloatDomainError“),”NaN“):$truthy(null==eps)?($b=$$($nesting,”Math“).$frexp(this),f=null==($a=Opal.to_ary($b))?nil:$a,n=null==$a?nil:$a,f=$$($nesting,”Math“).$ldexp(f,$$$($$($nesting,”Float“),”MANT_DIG“)).$to_i(),n=$rb_minus(n,$$$($$($nesting,”Float“),”MANT_DIG“)),$$($nesting,”Rational“).$new($rb_times(2,f),1($rb_minus(1,n))).$rationalize($$($nesting,”Rational“).$new(1,1($rb_minus(1,n))))):this.$to_r().$rationalize(eps)},$Number_rationalize$55.$$arity=-1),Opal.def(self,”$remainder“,$Number_remainder$56=function(y){return $rb_minus(this,$rb_times(y,$rb_divide(this,y).$truncate()))},$Number_remainder$56.$$arity=1),Opal.def(self,”$round“,$Number_round$57=function(ndigits){var $a,$b,lhs,rhs,exp=nil;if($truthy($$($nesting,”Integer“)(this))){if($truthy(null==ndigits))return this;if($truthy($truthy($a=$$($nesting,”Float“)(ndigits))?ndigits():$a)&&this.$raise($$($nesting,”RangeError“),”Infinity“),ndigits=$$($nesting,”Opal“)(ndigits,$$($nesting,”Integer“),”to_int“),$truthy($rb_lt(ndigits,$$$($$($nesting,”Integer“),”MIN“)))&&this.$raise($$($nesting,”RangeError“),”out of bounds“),$truthy(0<=ndigits))return this;if(.415241*(ndigits=ndigits())-.125>this.$size())return 0;var f=Math.pow(10,ndigits),x=Math.floor((Math.abs(x)+f/2)/f)*f;return this<0?-x:x}if($truthy($truthy($a=this())?null==ndigits:$a)&&this.$raise($$($nesting,”FloatDomainError“),”NaN“),ndigits=$$($nesting,”Opal“)(ndigits||0,$$($nesting,”Integer“),”to_int“),$truthy((rhs=0,”number“==typeof(lhs=ndigits)&&”number“==typeof rhs?lhs<=rhs:lhs(rhs))))$truthy(this())?this.$raise($$($nesting,”RangeError“),”NaN“):$truthy(this())&&this.$raise($$($nesting,”FloatDomainError“),”Infinity“);else{if(ndigits(0))return Math.round(this);if($truthy($truthy($a=this())?$a:this()))return this}return $b=$$($nesting,”Math“).$frexp(this),null==($a=Opal.to_ary($b))?nil:$a,exp=null==$a?nil:$a,$truthy(function(lhs,rhs){return”number“==typeof lhs&&”number“==typeof =”“>rhs?rhs<=lhs:lhs(rhs)}(ndigits,$rb_minus($rb_plus($$$($$($nesting,”Float“),”DIG“),2),$truthy($rb_gt(exp,0))?$rb_divide(exp,4):$rb_minus($rb_divide(exp,3),1))))?this:$truthy($rb_lt(ndigits,($truthy($rb_gt(exp,0))?$rb_plus($rb_divide(exp,3),1):$rb_divide(exp,4))()))?0:Math.round(this*Math.pow(10,ndigits))/Math.pow(10,ndigits)},$Number_round$57.$$arity=-1),Opal.def(self,”$step“,$Number_step$58=function($a,$b,$c){var $post_args,$kwargs,limit,step,to,by,$$59,$iter=$Number_step$58.$$p,block=$iter||nil,self=this,positional_args=nil,keyword_args=nil;if($iter&&($Number_step$58.$$p=null),$iter&&($Number_step$58.$$p=null),$post_args=Opal.slice.call(arguments,0,arguments.length),null==($kwargs=Opal.extract_kwargs($post_args)))$kwargs=$hash2([],{});else if(!$kwargs.$$is_hash)throw Opal.ArgumentError.$new(”expected kwargs“);function validateParameters(){void 0!==to&&(limit=to),void 0===limit&&(limit=nil),step===nil&&self.$raise($$($nesting,”TypeError“),”step must be numeric“),0===step&&self.$raise($$($nesting,”ArgumentError“),”step can't be 0“),void 0!==by&&(step=by),step!==nil&&null!=step||(step=1);var ”“>sign=step(0);sign===nil&&self.$raise($$($nesting,”ArgumentError“),”0 can't be coerced into “+step.$class()),limit!==nil&&null!=limit||(limit=0()),$$($nesting,”Opal“).$compare(self,limit)}function stepFloatSize(){if(0<step&&limit<self||step<0&&self<limit)return 0;if(step===1/0||step===-1/0)return 1;var abs=Math.abs,floor=Math.floor,err=(abs(self)+abs(limit)+abs(limit-self))/abs(step)*$$$($$($nesting,”Float“),”EPSILON“);return err===1/0||err===-1/0?0:(.5<err&&(err=.5),floor((limit-self)/step+err)+1)}function stepSize(){if(validateParameters(),0===step)return 1/0;if(step%1!=0)return stepFloatSize();if(0<step&&limit<self||step<0&&self<limit)return 0;var ceil=Math.ceil,abs=Math.abs;return ceil((abs(self-limit)+1)/abs(step))}if(0<$post_args.length&&(limit=$post_args,$post_args.splice(0,1)),0<$post_args.length&&(step=$post_args,$post_args.splice(0,1)),to=$kwargs.$$smap.to,by=$kwargs.$$smap.by,void 0!==limit&&void 0!==to&&self.$raise($$($nesting,”ArgumentError“),”to is given twice“),void 0!==step&&void 0!==by&&self.$raise($$($nesting,”ArgumentError“),”step is given twice“),block===nil)return positional_args=[],keyword_args=$hash2(,{}),void 0!==limit&&positional_args.push(limit),void 0!==step&&positional_args.push(step),void 0!==to&&Opal.hash_put(keyword_args,”to“,to),void 0!==by&&Opal.hash_put(keyword_args,”by“,by),keyword_args()&&positional_args.push(keyword_args),$send(self,”enum_for“,.concat(Opal.to_a(positional_args)),(($$59=function(){$$59.$$s;return stepSize()}).$$s=self,$$59.$$arity=0,$$59));if(validateParameters(),0===step)for(;;)block(self);if(self%1!=0||limit%1!=0||step%1!=0){var n=stepFloatSize();if(0<n)if(step===1/0||step===-1/0)block(self);else{var d,i=0;if(0<step)for(;i<n;)limit<(d=i*step+self)&&(d=limit),block(d),i+=1;else for(;i<n;)(d=i*step+self)<limit&&(d=limit),block(d),i+=1}}else{var value=self;if(0<step)for(;value<=limit;)block(value),value+=step;else for(;limit<=value;)block(value),value+=step}return self},$Number_step$58.$$arity=-1),Opal.alias(self,”succ“,”next“),Opal.def(self,”$times“,$Number_times$60=function(){var $$61,$iter=$Number_times$60.$$p,block=$iter||nil;if($iter&&($Number_times$60.$$p=null),$iter&&($Number_times$60.$$p=null),!$truthy(block))return $send(this,”enum_for“,,(($$61=function(){return $$61.$$s||this}).$$s=this,$$61.$$arity=0,$$61));for(var i=0;i<this;i++)block(i);return this},$Number_times$60.$$arity=0),Opal.def(self,”$to_f“,$Number_to_f$62=function(){return this},$Number_to_f$62.$$arity=0),Opal.def(self,”$to_i“,$Number_to_i$63=function(){return parseInt(this,10)},$Number_to_i$63.$$arity=0),Opal.alias(self,”to_int“,”to_i“),Opal.def(self,”$to_r“,$Number_to_r$64=function(){var $a,$b,f=nil,e=nil;return $truthy($$($nesting,”Integer“)(this))?$$($nesting,”Rational“).$new(this,1):($b=$$($nesting,”Math“).$frexp(this),f=null==($a=Opal.to_ary($b))?nil:$a,e=null==$a?nil:$a,f=$$($nesting,”Math“).$ldexp(f,$$$($$($nesting,”Float“),”MANT_DIG“)).$to_i(),e=$rb_minus(e,$$$($$($nesting,”Float“),”MANT_DIG“)),$rb_times(f,$$$($$($nesting,”Float“),”RADIX“)(e)).$to_r())},$Number_to_r$64.$$arity=0),Opal.def(self,”$to_s“,$Number_to_s$65=function(base){var $a;return null==base&&(base=10),base=$$($nesting,”Opal“)(base,$$($nesting,”Integer“),”to_int“),$truthy($truthy($a=$rb_lt(base,2))?$a:$rb_gt(base,36))&&this.$raise($$($nesting,”ArgumentError“),”invalid radix “+base),this.toString(base)},$Number_to_s$65.$$arity=-1),Opal.def(self,”$truncate“,$Number_truncate$66=function(ndigits){null==ndigits&&(ndigits=0);var f=this.$to_f();if(f%1==0&&0<=ndigits)return f;var factor=Math.pow(10,ndigits),result=parseInt(f*factor,10)/factor;return f%1==0&&(result=Math.round(result)),result},$Number_truncate$66.$$arity=-1),Opal.alias(self,”inspect“,”to_s“),Opal.def(self,”$digits“,$Number_digits$67=function(base){null==base&&(base=10),$rb_lt(this,0)&&this.$raise($$$($$($nesting,”Math“),”DomainError“),”out of domain“),base=$$($nesting,”Opal“)(base,$$($nesting,”Integer“),”to_int“),$truthy($rb_lt(base,2))&&this.$raise($$($nesting,”ArgumentError“),”invalid radix “+base);for(var value=this,result=[];0!==value;)result.push(value%base),value=parseInt(value/base,10);return result},$Number_digits$67.$$arity=-1),Opal.def(self,”$divmod“,$Number_divmod$68=function(other){var $a,$zuper_ii,$iter=$Number_divmod$68.$$p,$zuper=nil,$zuper_i=nil;for($iter&&($Number_divmod$68.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper=arguments;return $truthy($truthy($a=this())?$a:other())?this.$raise($$($nesting,”FloatDomainError“),”NaN“):$truthy(this())?this.$raise($$($nesting,”FloatDomainError“),”Infinity“):$send(this,Opal.find_super_dispatcher(this,”divmod“,$Number_divmod$68,!1),$zuper,$iter)},$Number_divmod$68.$$arity=1),Opal.def(self,”$upto“,$Number_upto$69=function(stop){var $$70,$iter=$Number_upto$69.$$p,block=$iter||nil;if($iter&&($Number_upto$69.$$p=null),$iter&&($Number_upto$69.$$p=null),block===nil)return $send(this,”enum_for“,,(($$70=function(){var self=$$70.$$s||this;return $truthy($$($nesting,”Numeric“)(stop))||self.$raise($$($nesting,”ArgumentError“),”comparison of “+self.$class()+” with “+stop.$class()+” failed“),$truthy($rb_lt(stop,self))?0:$rb_plus($rb_minus(stop,self),1)}).$$s=this,$$70.$$arity=0,$$70));stop.$$is_number||this.$raise($$($nesting,”ArgumentError“),”comparison of “+this.$class()+” with “+stop.$class()+” failed“);for(var i=this;i<=stop;i++)block(i);return this},$Number_upto$69.$$arity=1),Opal.def(self,”$zero?“,$Number_zero$ques$71=function(){return 0==this},$Number_zero$ques$71.$$arity=0),Opal.def(self,”$size“,$Number_size$72=function(){return 4},$Number_size$72.$$arity=0),Opal.def(self,”$nan?“,$Number_nan$ques$73=function(){return isNaN(this)},$Number_nan$ques$73.$$arity=0),Opal.def(self,”$finite?“,$Number_finite$ques$74=function(){return this!=1/0&&this!=-1/0&&!isNaN(this)},$Number_finite$ques$74.$$arity=0),Opal.def(self,”$infinite?“,$Number_infinite$ques$75=function(){return this==1/0?1:this==-1/0?-1:nil},$Number_infinite$ques$75.$$arity=0),Opal.def(self,”$positive?“,$Number_positive$ques$76=function(){return 0!=this&&(this==1/0||0<1/this)},$Number_positive$ques$76.$$arity=0),Opal.def(self,”$negative?“,$Number_negative$ques$77=function(){return this==-1/0||1/this<0},$Number_negative$ques$77.$$arity=0)}($nesting,$$($nesting,”Numeric“),$nesting),Opal.const_set($nesting,”Fixnum“,$$($nesting,”Number“)),function($base,$super,$parent_nesting){var self=$klass($base,$super,”Integer“),$nesting=.concat($parent_nesting);self.$$is_number_class=!0,function(self,$parent_nesting){var $allocate$78,$eq_eq_eq$79,$sqrt$80,$nesting=.concat($parent_nesting);Opal.def(self,”$allocate“,$allocate$78=function(){return this.$raise($$($nesting,”TypeError“),”allocator undefined for “+this.$name())},$allocate$78.$$arity=0),Opal.udef(self,”$new“),Opal.def(self,”$===“,$eq_eq_eq$79=function(other){return!!other.$$is_number&&other%1==0},$eq_eq_eq$79.$$arity=1),Opal.def(self,”$sqrt“,$sqrt$80=function(n){return(n=$$($nesting,”Opal“)(n,$$($nesting,”Integer“),”to_int“))<0&&this.$raise($$$($$($nesting,”Math“),”DomainError“),'Numerical argument is out of domain - ”isqrt“'),parseInt(Math.sqrt(n),10)},$sqrt$80.$$arity=1)}(Opal.get_singleton_class(self),$nesting),Opal.const_set($nesting,”MAX“,Math.pow(2,30)-1),Opal.const_set($nesting,”MIN“,-Math.pow(2,30))}($nesting,$$($nesting,”Numeric“),$nesting),function($base,$super,$parent_nesting){var self=$klass($base,$super,”Float“),$nesting=.concat($parent_nesting);return self.$$is_number_class=!0,function(self,$parent_nesting){var $allocate$81,$eq_eq_eq$82,$nesting=.concat($parent_nesting);Opal.def(self,”$allocate“,$allocate$81=function(){return this.$raise($$($nesting,”TypeError“),”allocator undefined for “+this.$name())},$allocate$81.$$arity=0),Opal.udef(self,”$new“),Opal.def(self,”$===“,$eq_eq_eq$82=function(other){return!!other.$$is_number},$eq_eq_eq$82.$$arity=1)}(Opal.get_singleton_class(self),$nesting),Opal.const_set($nesting,”INFINITY“,1/0),Opal.const_set($nesting,”MAX“,Number.MAX_VALUE),Opal.const_set($nesting,”MIN“,Number.MIN_VALUE),Opal.const_set($nesting,”NAN“,NaN),Opal.const_set($nesting,”DIG“,15),Opal.const_set($nesting,”MANT_DIG“,53),Opal.const_set($nesting,”RADIX“,2),Opal.const_set($nesting,”EPSILON“,Number.EPSILON||2220446049250313e-31)}($nesting,$$($nesting,”Numeric“),$nesting)},Opal.modules=function(Opal){function $rb_le(lhs,rhs){return”number“==typeof lhs&&”number“==typeof rhs?lhs<=rhs:lhs(rhs)}function $rb_lt(lhs,rhs){return”number“==typeof lhs&&”number“==typeof rhs?lhs(rhs)}function $rb_gt(lhs,rhs){return”number“==typeof lhs&&”number“==typeof ”“>rhs?rhs(rhs)}function $rb_plus(lhs,rhs){return”number“==typeof lhs&&”number“==typeof rhs?lhs+rhs:lhs(rhs)}var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.const_get_qualified,$$=Opal.const_get_relative,$klass=(Opal.breaker,Opal.slice,Opal.klass),$truthy=Opal.truthy,$send=Opal.send;return Opal.add_stubs([”$require“,”$include“,”$attr_reader“,”$raise“,”$<=>“,”$include?“,”$<=","$<","$enum_for","$upto","$to_proc","$respond_to?","$class","$succ","$!","$==","$===","$exclude_end?","$eql?","$begin","$end","$last","$to_a","$>“,”$-“,”$abs“,”$to_i“,”$coerce_to!“,”$ceil“,”$/“,”$size“,”$loop“,”$+“,”$*“,”$>=“,”$each_with_index“,”$%“,”$bsearch“,”$inspect“,”$“,”$hash“]),self.$require(”corelib/enumerable“),function($base,$super,$parent_nesting){var $Range_initialize$1,$Range_$eq_eq$2,$Range_$eq_eq_eq$3,$Range_cover$ques$4,$Range_each$5,$Range_eql$ques$6,$Range_exclude_end$ques$7,$Range_first$8,$Range_last$9,$Range_max$10,$Range_min$11,$Range_size$12,$Range_step$13,$Range_bsearch$17,$Range_to_s$18,$Range_inspect$19,$Range_marshal_load$20,$Range_hash$21,self=$klass($base,null,”Range“),$nesting=.concat($parent_nesting);return self.$$prototype.begin=self.$$prototype.end=self.$$prototype.excl=nil,self.$include($$($nesting,”Enumerable“)),self.$$prototype.$$is_range=!0,self.$attr_reader(”begin“,”end“),Opal.def(self,”$initialize“,$Range_initialize$1=function(first,last,exclude){return null==exclude&&(exclude=!1),$truthy(this.begin)&&this.$raise($$($nesting,”NameError“),”'initialize' called “”>twice“),$truthy(first(last))||this.$raise($$($nesting,”ArgumentError“),”bad value for range“),this.begin=first,this.end=last,this.excl=exclude},$Range_initialize$1.$$arity=-3),Opal.def(self,”$==“,$Range_$eq_eq$2=function(other){return!!other.$$is_range&&(this.excl===other.excl&&this.begin==other.begin&&this.end==other.end)},$Range_$eq_eq$2.$$arity=1),Opal.def(self,”$===“,$Range_$eq_eq_eq$3=function(value){return this(value)},$Range_$eq_eq_eq$3.$$arity=1),Opal.def(self,”$cover?“,$Range_cover$ques$4=function(value){var $a,beg_cmp,end_cmp;return ”“>beg_cmp=this.begin(”“>value),!!$truthy($truthy($a=beg_cmp)?$rb_le(beg_cmp,0):$a)&&(end_cmp=value(this.end),$truthy(this.excl)?$truthy($a=end_cmp)?$rb_lt(end_cmp,0):$a:$truthy($a=end_cmp)?$rb_le(end_cmp,0):$a)},$Range_cover$ques$4.$$arity=1),Opal.def(self,”$each“,$Range_each$5=function(){var $a,last,i,limit,$iter=$Range_each$5.$$p,block=$iter||nil,self=this,current=nil;if($iter&&($Range_each$5.$$p=null),$iter&&($Range_each$5.$$p=null),block===nil)return self.$enum_for(”each“);if(self.begin.$$is_number&&self.end.$$is_number){for(self.begin%1==0&&self.end%1==0||self.$raise($$($nesting,”TypeError“),”can't iterate from Float“),i=self.begin,limit=self.end+($truthy(self.excl)?0:1);i<limit;i++)block(i);return self}if(self.begin.$$is_string&&self.end.$$is_string)return $send(self.begin,”upto“,,block.$to_proc()),self;for(current=self.begin,last=self.end,$truthy(current(”succ“))||self.$raise($$($nesting,”TypeError“),”can't iterate from “+”“>current.$class());$truthy($rb_lt(current(last),0));)Opal.yield1(block,current),current=current.$succ();return $truthy($truthy($a=self.excl())?current(last):$a)&&Opal.yield1(block,current),self},$Range_each$5.$$arity=0),Opal.def(self,”$eql?“,$Range_eql$ques$6=function(other){var $a,$b;return!!$truthy($$($nesting,”Range“)(other))&&($truthy($a=$truthy($b=this.excl(other()))?this.begin(other.$begin()):$b)?this.end(other.$end()):$a)},$Range_eql$ques$6.$$arity=1),Opal.def(self,”$exclude_end?“,$Range_exclude_end$ques$7=function(){return this.excl},$Range_exclude_end$ques$7.$$arity=0),Opal.def(self,”$first“,$Range_first$8=function(n){var $zuper_ii,$iter=$Range_first$8.$$p,$zuper=nil,$zuper_i=nil;for($iter&&($Range_first$8.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper=arguments;return $truthy(null==n)?this.begin:$send(this,Opal.find_super_dispatcher(this,”first“,$Range_first$8,!1),$zuper,$iter)},$Range_first$8.$$arity=-1),Opal.alias(self,”include?“,”cover?“),Opal.def(self,”$last“,$Range_last$9=function(n){return $truthy(null==n)?this.end:this.$to_a().$last(n)},$Range_last$9.$$arity=-1),Opal.def(self,”$max“,$Range_max$10=function(){var $a,$zuper_ii,$iter=$Range_max$10.$$p,$yield=$iter||nil,$zuper=nil,$zuper_i=nil;for($iter&&($Range_max$10.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper=arguments;return $yield!==nil?$send(this,Opal.find_super_dispatcher(this,”max“,$Range_max$10,!1),$zuper,$iter):$truthy($rb_gt(this.begin,this.end))?nil:$truthy($truthy($a=this.excl)?this.begin(this.end):$a)?nil:this.excl?this.end-1:this.end},$Range_max$10.$$arity=0),Opal.alias(self,”member?“,”cover?“),Opal.def(self,”$min“,$Range_min$11=function(){var $a,$zuper_ii,$iter=$Range_min$11.$$p,$yield=$iter||nil,$zuper=nil,$zuper_i=nil;for($iter&&($Range_min$11.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper=arguments;return $yield!==nil?$send(this,Opal.find_super_dispatcher(this,”min“,$Range_min$11,!1),$zuper,$iter):$truthy($rb_gt(this.begin,this.end))?nil:$truthy($truthy($a=this.excl)?this.begin(this.end):$a)?nil:this.begin},$Range_min$11.$$arity=0),Opal.def(self,”$size“,$Range_size$12=function(){var $a,infinity,lhs,rhs,range_begin=nil,range_end=nil;return range_begin=this.begin,range_end=this.end,$truthy(this.excl)&&(rhs=1,range_end=”number“==typeof(lhs=range_end)&&”number“==typeof rhs?lhs-rhs:lhs(rhs)),$truthy($truthy($a=$$($nesting,”Numeric“)(range_begin))?$$($nesting,”Numeric“)(range_end):$a)?$truthy($rb_lt(range_end,range_begin))?0:(infinity=$$$($$($nesting,”Float“),”INFINITY“),$truthy([”$include?“](infinity))?infinity:(Math.abs(range_end-range_begin)+1).$to_i()):nil},$Range_size$12.$$arity=0),Opal.def(self,”$step“,$Range_step$13=function(n){var $$14,$$15,$$16,$iter=$Range_step$13.$$p,$yield=$iter||nil,self=this,i=nil;function coerceStepSize(){n.$$is_number||(n=$$($nesting,”Opal“)(n,$$($nesting,”Integer“),”to_int“)),n<0?self.$raise($$($nesting,”ArgumentError“),”step can't be negative“):0===n&&self.$raise($$($nesting,”ArgumentError“),”step can't be 0“)}function enumeratorSize(){if(!self.begin(”succ“))return nil;if(self.begin.$$is_string&&self.end.$$is_string)return nil;if(n%1==0)return(lhs=self.$size(),rhs=n,”number“==typeof lhs&&”number“==typeof rhs?lhs/rhs:lhs(rhs)).$ceil();var size,lhs,rhs,begin=self.begin,end=self.end,abs=Math.abs,floor=Math.floor,err=(abs(begin)+abs(end)+abs(end-begin))/abs(n)*$$$($$($nesting,”Float“),”EPSILON“);return.5<err&&(err=.5),self.excl?(size=floor((end-begin)/n-err))*n+begin<end&&size++:size=floor((end-begin)/n+err)+1,size}return $iter&&($Range_step$13.$$p=null),null==n&&(n=1),$yield===nil?$send(self,”enum_for“,,(($$14=function(){$$14.$$s;return coerceStepSize(),enumeratorSize()}).$$s=self,$$14.$$arity=0,$$14)):(coerceStepSize(),$truthy(self.begin.$$is_number&&self.end.$$is_number)?(i=0,function(){var $brk=Opal.new_brk();try{$send(self,”loop“,[],(($$15=function(){var current,lhs,rhs,self=$$15.$$s||this;return null==self.begin&&(self.begin=nil),null==self.excl&&(self.excl=nil),null==self.end&&(self.end=nil),current=$rb_plus(self.begin,(rhs=n,”number“==typeof(lhs=i)&&”number“==typeof rhs?lhs*rhs:lhs(rhs))),$truthy(self.excl)?$truthy(function(lhs,rhs){return”number“==typeof lhs&&”number“==typeof =”“>rhs?rhs<=lhs:lhs(rhs)}(current,self.end))&&Opal.brk(nil,$brk):$truthy($rb_gt(current,self.end))&&Opal.brk(nil,$brk),Opal.yield1($yield,current),i=$rb_plus(i,1)}).$$s=self,$$15.$$brk=$brk,$$15.$$arity=0,$$15))}catch(err){if(err===$brk)return err.$v;throw err}}()):(self.begin.$$is_string&&self.end.$$is_string&&n%1!=0&&self.$raise($$($nesting,”TypeError“),”no implicit conversion to float from string“),$send(self,”each_with_index“,[],(($$16=function(value,idx){$$16.$$s;return null==value&&(value=nil),null==idx&&(idx=nil),idx(n)(0)?Opal.yield1($yield,value):nil}).$$s=self,$$16.$$arity=2,$$16))),self)},$Range_step$13.$$arity=-1),Opal.def(self,”$bsearch“,$Range_bsearch$17=function(){var $iter=$Range_bsearch$17.$$p,block=$iter||nil;return $iter&&($Range_bsearch$17.$$p=null),$iter&&($Range_bsearch$17.$$p=null),block===nil?this.$enum_for(”bsearch“):($truthy(this.begin.$$is_number&&this.end.$$is_number)||this.$raise($$($nesting,”TypeError“),”can't do binary search for “+this.begin.$class()),$send(this.$to_a(),”bsearch“,[],block.$to_proc()))},$Range_bsearch$17.$$arity=0),Opal.def(self,”$to_s“,$Range_to_s$18=function(){var self=this;return self.begin+($truthy(self.excl)?”…“:”..“)+self.end},$Range_to_s$18.$$arity=0),Opal.def(self,”$inspect“,$Range_inspect$19=function(){var self=this;return self.begin.$inspect()+($truthy(self.excl)?”…“:”..“)+self.end.$inspect()},$Range_inspect$19.$$arity=0),Opal.def(self,”$marshal_load“,$Range_marshal_load$20=function(args){return this.begin=args[”$“](”begin“),this.end=args[”$“](”end“),this.excl=args[”$“](”excl“)},$Range_marshal_load$20.$$arity=1),Opal.def(self,”$hash“,$Range_hash$21=function(){return.$hash()},$Range_hash$21.$$arity=0),nil&&”hash“}($nesting,0,$nesting)},Opal.modules=function(Opal){Opal.top;var $nesting=[],nil=Opal.nil,$$=(Opal.const_get_qualified,Opal.const_get_relative),$slice=(Opal.breaker,Opal.slice),$klass=Opal.klass,$truthy=Opal.truthy;return Opal.add_stubs(),function($base,$super,$parent_nesting){var $Proc_new$1,$Proc_call$2,$Proc_to_proc$3,$Proc_lambda$ques$4,$Proc_arity$5,$Proc_source_location$6,$Proc_binding$7,$Proc_parameters$8,$Proc_curry$9,$Proc_dup$10,self=$klass($base,$super,”Proc“),$nesting=.concat($parent_nesting);return Opal.defineProperty(self.$$prototype,”$$is_proc“,!0),Opal.defineProperty(self.$$prototype,”$$is_lambda“,!1),Opal.defs(self,”$new“,$Proc_new$1=function(){var $iter=$Proc_new$1.$$p,block=$iter||nil;return $iter&&($Proc_new$1.$$p=null),$iter&&($Proc_new$1.$$p=null),$truthy(block)||this.$raise($$($nesting,”ArgumentError“),”tried to create a Proc object without a block“),block},$Proc_new$1.$$arity=0),Opal.def(self,”$call“,$Proc_call$2=function($a){var args,$iter=$Proc_call$2.$$p,block=$iter||nil;$iter&&($Proc_call$2.$$p=null),$iter&&($Proc_call$2.$$p=null),args=Opal.slice.call(arguments,0,arguments.length),block!==nil&&(this.$$p=block);var result,$brk=this.$$brk;if($brk)try{result=this.$$is_lambda?this.apply(null,args):Opal.yieldX(this,args)}catch(err){if(err===$brk)return $brk.$v;throw err}else result=this.$$is_lambda?this.apply(null,args):Opal.yieldX(this,args);return result},$Proc_call$2.$$arity=-1),Opal.alias(self,”[]“,”call“),Opal.alias(self,”===“,”call“),Opal.alias(self,”yield“,”call“),Opal.def(self,”$to_proc“,$Proc_to_proc$3=function(){return this},$Proc_to_proc$3.$$arity=0),Opal.def(self,”$lambda?“,$Proc_lambda$ques$4=function(){return!!this.$$is_lambda},$Proc_lambda$ques$4.$$arity=0),Opal.def(self,”$arity“,$Proc_arity$5=function(){return this.$$is_curried?-1:this.$$arity},$Proc_arity$5.$$arity=0),Opal.def(self,”$source_location“,$Proc_source_location$6=function(){return this.$$is_curried,nil},$Proc_source_location$6.$$arity=0),Opal.def(self,”$binding“,$Proc_binding$7=function(){return this.$$is_curried&&this.$raise($$($nesting,”ArgumentError“),”Can't create Binding“),nil},$Proc_binding$7.$$arity=0),Opal.def(self,”$parameters“,$Proc_parameters$8=function(){if(this.$$is_curried)return[];if(this.$$parameters){if(this.$$is_lambda)return this.$$parameters;var i,length,result=[];for(i=0,length=this.$$parameters.length;i<length;i++){var parameter=this.$$parameters;”req“===parameter&&(parameter=[”opt“,parameter]),result.push(parameter)}return result}return[]},$Proc_parameters$8.$$arity=0),Opal.def(self,”$curry“,$Proc_curry$9=function(arity){var self=this;function curried(){var result,args=$slice.call(arguments),length=args.length;return arity<length&&self.$$is_lambda&&!self.$$is_curried&&self.$raise($$($nesting,”ArgumentError“),”wrong number of arguments (“length” for “arity”)“),arity<=length?self.$call.apply(self,args):((result=function(){return curried.apply(null,args.concat($slice.call(arguments)))}).$$is_lambda=self.$$is_lambda,result.$$is_curried=!0,result)}return void 0===arity?arity=self.length:(arity=$$($nesting,”Opal“)(arity,$$($nesting,”Integer“),”to_int“),self.$$is_lambda&&arity!==self.length&&self.$raise($$($nesting,”ArgumentError“),”wrong number of arguments (“arity” for “self.length”)“)),curried.$$is_lambda=self.$$is_lambda,curried.$$is_curried=!0,curried},$Proc_curry$9.$$arity=-1),Opal.def(self,”$dup“,$Proc_dup$10=function(){var original_proc=this.$$original_proc||this,proc=function(){return original_proc.apply(this,arguments)};for(var prop in this)this.hasOwnProperty(prop)&&(proc=this);return proc},$Proc_dup$10.$$arity=0),Opal.alias(self,”clone“,”dup“)}($nesting,Function,$nesting)},Opal.modules=function(Opal){Opal.top;var $nesting=[],nil=Opal.nil,$$=(Opal.const_get_qualified,Opal.const_get_relative),$klass=(Opal.breaker,Opal.slice,Opal.klass),$truthy=Opal.truthy;return Opal.add_stubs(),function($base,$super,$parent_nesting){var $Method_initialize$1,$Method_arity$2,$Method_parameters$3,$Method_source_location$4,$Method_comments$5,$Method_call$6,$Method_unbind$7,$Method_to_proc$8,$Method_inspect$9,self=$klass($base,null,”Method“),$nesting=.concat($parent_nesting);self.$$prototype.method=self.$$prototype.receiver=self.$$prototype.owner=self.$$prototype.name=nil,self.$attr_reader(”owner“,”receiver“,”name“),Opal.def(self,”$initialize“,$Method_initialize$1=function(receiver,owner,method,name){return this.receiver=receiver,this.owner=owner,this.name=name,this.method=method},$Method_initialize$1.$$arity=4),Opal.def(self,”$arity“,$Method_arity$2=function(){return this.method.$arity()},$Method_arity$2.$$arity=0),Opal.def(self,”$parameters“,$Method_parameters$3=function(){return this.method.$$parameters},$Method_parameters$3.$$arity=0),Opal.def(self,”$source_location“,$Method_source_location$4=function(){var $a;return $truthy($a=this.method.$$source_location)?$a:},$Method_source_location$4.$$arity=0),Opal.def(self,”$comments“,$Method_comments$5=function(){var $a;return $truthy($a=this.method.$$comments)?$a:[]},$Method_comments$5.$$arity=0),Opal.def(self,”$call“,$Method_call$6=function($a){var args,$iter=$Method_call$6.$$p,block=$iter||nil;return $iter&&($Method_call$6.$$p=null),$iter&&($Method_call$6.$$p=null),args=Opal.slice.call(arguments,0,arguments.length),this.method.$$p=block,this.method.apply(this.receiver,args)},$Method_call$6.$$arity=-1),Opal.alias(self,”[]“,”call“),Opal.def(self,”$unbind“,$Method_unbind$7=function(){return $$($nesting,”UnboundMethod“).$new(this.receiver.$class(),this.owner,this.method,this.name)},$Method_unbind$7.$$arity=0),Opal.def(self,”$to_proc“,$Method_to_proc$8=function(){var proc=this.$call.bind(this);return proc.$$unbound=this.method,proc.$$is_lambda=!0,proc.$$arity=this.method.$$arity,proc.$$parameters=this.method.$$parameters,proc},$Method_to_proc$8.$$arity=0),Opal.def(self,”$inspect“,$Method_inspect$9=function(){return”#<“+this.$class()+”: “+this.receiver.$class()+”#“this.name” (defined in “this.owner” in “+this.$source_location().$join(”:“)+”)>“},$Method_inspect$9.$$arity=0)}($nesting,0,$nesting),function($base,$super,$parent_nesting){var $UnboundMethod_initialize$10,$UnboundMethod_arity$11,$UnboundMethod_parameters$12,$UnboundMethod_source_location$13,$UnboundMethod_comments$14,$UnboundMethod_bind$15,$UnboundMethod_inspect$16,self=$klass($base,null,”UnboundMethod“),$nesting=.concat($parent_nesting);return self.$$prototype.method=self.$$prototype.owner=self.$$prototype.name=self.$$prototype.source=nil,self.$attr_reader(”source“,”owner“,”name“),Opal.def(self,”$initialize“,$UnboundMethod_initialize$10=function(source,owner,method,name){return this.source=source,this.owner=owner,this.method=method,this.name=name},$UnboundMethod_initialize$10.$$arity=4),Opal.def(self,”$arity“,$UnboundMethod_arity$11=function(){return this.method.$arity()},$UnboundMethod_arity$11.$$arity=0),Opal.def(self,”$parameters“,$UnboundMethod_parameters$12=function(){return this.method.$$parameters},$UnboundMethod_parameters$12.$$arity=0),Opal.def(self,”$source_location“,$UnboundMethod_source_location$13=function(){var $a;return $truthy($a=this.method.$$source_location)?$a:},$UnboundMethod_source_location$13.$$arity=0),Opal.def(self,”$comments“,$UnboundMethod_comments$14=function(){var $a;return $truthy($a=this.method.$$comments)?$a:[]},$UnboundMethod_comments$14.$$arity=0),Opal.def(self,”$bind“,$UnboundMethod_bind$15=function(object){if(this.owner.$$is_module||Opal.is_a(object,this.owner))return $$($nesting,”Method“).$new(object,this.owner,this.method,this.name);this.$raise($$($nesting,”TypeError“),”can't bind singleton method to a different class (expected “object”.kind_of?(“this.owner” to be true)“)},$UnboundMethod_bind$15.$$arity=1),Opal.def(self,”$inspect“,$UnboundMethod_inspect$16=function(){return”#<“+this.$class()+”: “this.source”#“this.name” (defined in “this.owner” in “+this.$source_location().$join(”:“)+”)>“},$UnboundMethod_inspect$16.$$arity=0),nil&&”inspect“}($nesting,0,$nesting)},Opal.modules=function(Opal){Opal.top;var $nesting=[],nil=Opal.nil,$$=(Opal.const_get_qualified,Opal.const_get_relative),$gvars=(Opal.breaker,Opal.slice,Opal.gvars),$hash2=Opal.hash2;return Opal.add_stubs(),$gvars=$gvars=$gvars=$gvars=nil,$gvars.LOADED_FEATURES=$gvars=Opal.loaded_features,$gvars.LOAD_PATH=$gvars=[],$gvars=”n“,$gvars=nil,Opal.const_set($nesting,”ARGV“,[]),Opal.const_set($nesting,”ARGF“,$$($nesting,”Object“).$new()),Opal.const_set($nesting,”ENV“,$hash2([],{})),$gvars.VERBOSE=!1,$gvars.DEBUG=!1,$gvars.SAFE=0},Opal.modules=function(Opal){Opal.top;var $nesting=[],nil=Opal.nil,$$=(Opal.const_get_qualified,Opal.const_get_relative),$module=(Opal.breaker,Opal.slice,Opal.module);return Opal.add_stubs(),function($base,$parent_nesting){var $nesting=.concat($parent_nesting);Opal.const_set($nesting,”REGEXP_START“,$$($nesting,”RUBY_ENGINE“)(”opal“)?”^“:nil),Opal.const_set($nesting,”REGEXP_END“,$$($nesting,”RUBY_ENGINE“)(”opal“)?”$“:nil),Opal.const_set($nesting,”FORBIDDEN_STARTING_IDENTIFIER_CHARS“,”\u0001-\u002F\u003A-\u0040\u005B-\u005E\u0060\u007B-\u007F“),Opal.const_set($nesting,”FORBIDDEN_ENDING_IDENTIFIER_CHARS“,”\u0001-\u0020\u0022-\u002F\u003A-\u003E\u0040\u005B-\u005E\u0060\u007B-\u007F“),Opal.const_set($nesting,”INLINE_IDENTIFIER_REGEXP“,$$($nesting,”Regexp“).$new(”*[^“+$$($nesting,”FORBIDDEN_ENDING_IDENTIFIER_CHARS“)+”]“)),Opal.const_set($nesting,”FORBIDDEN_CONST_NAME_CHARS“,”\u0001-\u0020\u0021-\u002F\u003B-\u003F\u0040\u005B-\u005E\u0060\u007B-\u007F“),Opal.const_set($nesting,”CONST_NAME_REGEXP“,$$($nesting,”Regexp“).$new($$($nesting,”REGEXP_START“)+”(::)?[^“+$$($nesting,”FORBIDDEN_CONST_NAME_CHARS“)+”]*“+$$($nesting,”REGEXP_END“)))}($nesting,$nesting)},Opal.modules=function(Opal){var self=Opal.top;Opal.nil,Opal.const_get_qualified,Opal.const_get_relative,Opal.breaker,Opal.slice;return Opal.add_stubs(),self.$require(”opal/base“),self.$require(”corelib/nil“),self.$require(”corelib/boolean“),self.$require(”corelib/string“),self.$require(”corelib/comparable“),self.$require(”corelib/enumerable“),self.$require(”corelib/enumerator“),self.$require(”corelib/array“),self.$require(”corelib/hash“),self.$require(”corelib/number“),self.$require(”corelib/range“),self.$require(”corelib/proc“),self.$require(”corelib/method“),self.$require(”corelib/regexp“),self.$require(”corelib/variables“),self.$require(”opal/regexp_anchors“)},Opal.modules=function(Opal){Opal.top;var $nesting=[],nil=Opal.nil,$$=(Opal.const_get_qualified,Opal.const_get_relative),$module=(Opal.breaker,Opal.slice,Opal.module),$truthy=Opal.truthy,$gvars=Opal.gvars;return Opal.add_stubs([”$==“,”$length“,”$respond_to?“,”$“,”$coerce_to?“,”$nil?“,”$to_a“,”$raise“,”$to_int“,”$fetch“,”$Integer“,”$Float“,”$to_ary“,”$to_str“,”$coerce_to“,”$inspect“,”$to_s“]),function($base,$parent_nesting){var $Kernel_format$1,self=$module($base,”Kernel“),$nesting=.concat($parent_nesting);Opal.def(self,”$format“,$Kernel_format$1=function(format_string,$a){var $post_args,args,self=this,ary=nil;null==$gvars.DEBUG&&($gvars.DEBUG=nil),$post_args=Opal.slice.call(arguments,1,arguments.length),$truthy((args=$post_args).$length()(1)?args[”$“](0)(”to_ary“):args.$length()(1))&&(ary=$$($nesting,”Opal“)(args[”$“](0),$$($nesting,”Array“),”to_ary“),$truthy(ary())||(args=ary.$to_a()));var end_slice,i,arg,str,exponent,width,precision,tmp_num,hash_parameter_key,closing_brace_char,base_number,base_prefix,base_neg_zero_regex,base_neg_zero_digit,next_arg,flags,result=”“,begin_slice=0,len=format_string.length,seq_arg_num=1,pos_arg_num=0,FWIDTH=32,FPREC0=128;function CHECK_FOR_FLAGS(){flags&FWIDTH&&self.$raise($$($nesting,”ArgumentError“),”flag after width“),flags&FPREC0&&self.$raise($$($nesting,”ArgumentError“),”flag after precision“)}function CHECK_FOR_WIDTH(){flags&FWIDTH&&self.$raise($$($nesting,”ArgumentError“),”width given twice“),flags&FPREC0&&self.$raise($$($nesting,”ArgumentError“),”width after precision“)}function GET_NTH_ARG(num){return num>=args.length&&self.$raise($$($nesting,”ArgumentError“),”too few arguments“),args}function GET_NEXT_ARG(){switch(pos_arg_num){case-1:self.$raise($$($nesting,”ArgumentError“),”unnumbered(“seq_arg_num”) mixed with numbered“);case-2:self.$raise($$($nesting,”ArgumentError“),”unnumbered(“seq_arg_num”) mixed with named“)}return GET_NTH_ARG((pos_arg_num=seq_arg_num++)-1)}function GET_POS_ARG(num){return 0<pos_arg_num&&self.$raise($$($nesting,”ArgumentError“),”numbered(“num”) after unnumbered(“pos_arg_num”)“),-2===pos_arg_num&&self.$raise($$($nesting,”ArgumentError“),”numbered(“num”) after named“),num<1&&self.$raise($$($nesting,”ArgumentError“),”invalid index - “num”$“),pos_arg_num=-1,GET_NTH_ARG(num-1)}function GET_ARG(){return void 0===next_arg?GET_NEXT_ARG():next_arg}function READ_NUM(label){for(var num,str=”“;;i++){if(i===len&&self.$raise($$($nesting,”ArgumentError“),”malformed format string - %*[0-9]“),format_string.charCodeAt(i)<48||57<format_string.charCodeAt(i))return i–,2147483647<(num=parseInt(str,10)||0)&&self.$raise($$($nesting,”ArgumentError“),label+” too big“),num;str+=format_string.charAt(i)}}function READ_NUM_AFTER_ASTER(label){var num=READ_NUM(label);return(”$“===format_string.charAt(i+1)?(i++,GET_POS_ARG(num)):GET_NEXT_ARG()).$to_int()}for(i=format_string.indexOf(”%“);-1!==i;i=format_string.indexOf(”%“,i)){switch(str=void 0,precision=width=-1,next_arg=void(flags=0),end_slice=i,i++,format_string.charAt(i)){case”%“:begin_slice=i;case”“:case”n“:case”0“:i++;continue}format_sequence:for(;i<len;i++)switch(format_string.charAt(i)){case” “:CHECK_FOR_FLAGS(),flags|=16;continue format_sequence;case”#“:CHECK_FOR_FLAGS(),flags|=1;continue format_sequence;case”+“:CHECK_FOR_FLAGS(),flags|=4;continue format_sequence;case”-“:CHECK_FOR_FLAGS(),flags|=2;continue format_sequence;case”0“:CHECK_FOR_FLAGS(),flags|=8;continue format_sequence;case”1“:case”2“:case”3“:case”4“:case”5“:case”6“:case”7“:case”8“:case”9“:if(tmp_num=READ_NUM(”width“),”$“===format_string.charAt(i+1)){if(i+2===len){str=”%“,i++;break format_sequence}void 0!==next_arg&&self.$raise($$($nesting,”ArgumentError“),”value given twice - %“tmp_num”$“),next_arg=GET_POS_ARG(tmp_num),i++}else CHECK_FOR_WIDTH(),flags|=FWIDTH,width=tmp_num;continue format_sequence;case”<“:case”{“:for(closing_brace_char=”<“===format_string.charAt(i)?”>“:”}“,hash_parameter_key=”“,i++;;i++){if(i===len&&self.$raise($$($nesting,”ArgumentError“),”malformed name - unmatched parenthesis“),format_string.charAt(i)===closing_brace_char){if(0<pos_arg_num&&self.$raise($$($nesting,”ArgumentError“),”named “hash_parameter_key” after unnumbered(“pos_arg_num”)“),-1===pos_arg_num&&self.$raise($$($nesting,”ArgumentError“),”named “hash_parameter_key” after numbered“),pos_arg_num=-2,void 0!==args&&args.$$is_hash||self.$raise($$($nesting,”ArgumentError“),”one hash required“),next_arg=args.$fetch(hash_parameter_key),”>“===closing_brace_char)continue format_sequence;if(str=next_arg.toString(),-1!==precision&&(str=str.slice(0,precision)),2&flags)for(;str.length<width;)str+=” “;else for(;str.length<width;)str=” “+str;break format_sequence}hash_parameter_key+=format_string.charAt(i)}case”*“:i++,CHECK_FOR_WIDTH(),flags|=FWIDTH,(width=READ_NUM_AFTER_ASTER(”width“))<0&&(flags|=2,width=-width);continue format_sequence;case”.“:if(flags&FPREC0&&self.$raise($$($nesting,”ArgumentError“),”precision given twice“),flags|=64|FPREC0,precision=0,i++,”*“===format_string.charAt(i)){i++,(precision=READ_NUM_AFTER_ASTER(”precision“))<0&&(flags&=-65);continue format_sequence}precision=READ_NUM(”precision“);continue format_sequence;case”d“:case”i“:case”u“:if(0<=(arg=self.$Integer(GET_ARG()))){for(str=arg.toString();str.length<precision;)str=”0“+str;if(2&flags)for((4&flags||16&flags)&&(str=(4&flags?”+“:” “)+str);str.length<width;)str+=” “;else if(8&flags&&-1===precision){for(;str.length<width-(4&flags||16&flags?1:0);)str=”0“+str;(4&flags||16&flags)&&(str=(4&flags?”+“:” “)+str)}else for((4&flags||16&flags)&&(str=(4&flags?”+“:” “)+str);str.length<width;)str=” “+str}else{for(str=(-arg).toString();str.length<precision;)str=”0“+str;if(2&flags)for(str=”-“+str;str.length<width;)str+=” “;else if(8&flags&&-1===precision){for(;str.length<width-1;)str=”0“+str;str=”-“+str}else for(str=”-“+str;str.length<width;)str=” “+str}break format_sequence;case”b“:case”B“:case”o“:case”x“:case”X“:switch(format_string.charAt(i)){case”b“:case”B“:base_number=2,base_prefix=”0b“,base_neg_zero_regex=/^1+/,base_neg_zero_digit=”1“;break;case”o“:base_number=8,base_prefix=”0“,base_neg_zero_regex=/^3?7+/,base_neg_zero_digit=”7“;break;case”x“:case”X“:base_number=16,base_prefix=”0x“,base_neg_zero_regex=/^f+/,base_neg_zero_digit=”f“}if(0<=(arg=self.$Integer(GET_ARG()))){for(str=arg.toString(base_number);str.length<precision;)str=”0“+str;if(2&flags)for((4&flags||16&flags)&&(str=(4&flags?”+“:” “)+str),1&flags&&0!==arg&&(str=base_prefix+str);str.length<width;)str+=” “;else if(8&flags&&-1===precision){for(;str.length<width-(4&flags||16&flags?1:0)-(1&flags&&0!==arg?base_prefix.length:0);)str=”0“+str;1&flags&&0!==arg&&(str=base_prefix+str),(4&flags||16&flags)&&(str=(4&flags?”+“:” “)+str)}else for(1&flags&&0!==arg&&(str=base_prefix+str),(4&flags||16&flags)&&(str=(4&flags?”+“:” “)+str);str.length<width;)str=” “+str}else if(4&flags||16&flags){for(str=(-arg).toString(base_number);str.length<precision;)str=”0“+str;if(2&flags)for(1&flags&&(str=base_prefix+str),str=”-“+str;str.length<width;)str+=” “;else if(8&flags&&-1===precision){for(;str.length<width-1-(1&flags?2:0);)str=”0“+str;1&flags&&(str=base_prefix+str),str=”-“+str}else for(1&flags&&(str=base_prefix+str),str=”-“+str;str.length<width;)str=” “+str}else{for(str=(arg>>>0).toString(base_number).replace(base_neg_zero_regex,base_neg_zero_digit);str.length<precision-2;)str=base_neg_zero_digit+str;if(2&flags)for(str=”..“+str,1&flags&&(str=base_prefix+str);str.length<width;)str+=” “;else if(8&flags&&-1===precision){for(;str.length<width-2-(1&flags?base_prefix.length:0);)str=base_neg_zero_digit+str;str=”..“+str,1&flags&&(str=base_prefix+str)}else for(str=”..“+str,1&flags&&(str=base_prefix+str);str.length<width;)str=” “+str}format_string.charAt(i)===format_string.charAt(i).toUpperCase()&&(str=str.toUpperCase());break format_sequence;case”f“:case”e“:case”E“:case”g“:case”G“:if(0<=(arg=self.$Float(GET_ARG()))||isNaN(arg)){if(arg===1/0)str=”Inf“;else switch(format_string.charAt(i)){case”f“:str=arg.toFixed(-1===precision?6:precision);break;case”e“:case”E“:str=arg.toExponential(-1===precision?6:precision);break;case”g“:case”G“:str=arg.toExponential(),(exponent=parseInt(str.split(”e“),10))<-4||(-1===precision?6:precision)<=exponent||(str=arg.toPrecision(-1===precision?1&flags?6:void 0:precision))}if(2&flags)for((4&flags||16&flags)&&(str=(4&flags?”+“:” “)+str);str.length<width;)str+=” “;else if(8&flags&&arg!==1/0&&!isNaN(arg)){for(;str.length<width-(4&flags||16&flags?1:0);)str=”0“+str;(4&flags||16&flags)&&(str=(4&flags?”+“:” “)+str)}else for((4&flags||16&flags)&&(str=(4&flags?”+“:” “)+str);str.length<width;)str=” “+str}else{if(arg===-1/0)str=”Inf“;else switch(format_string.charAt(i)){case”f“:str=(-arg).toFixed(-1===precision?6:precision);break;case”e“:case”E“:str=(-arg).toExponential(-1===precision?6:precision);break;case”g“:case”G“:str=(-arg).toExponential(),(exponent=parseInt(str.split(”e“),10))<-4||(-1===precision?6:precision)<=exponent||(str=(-arg).toPrecision(-1===precision?1&flags?6:void 0:precision))}if(2&flags)for(str=”-“+str;str.length<width;)str+=” “;else if(8&flags&&arg!==-1/0){for(;str.length<width-1;)str=”0“+str;str=”-“+str}else for(str=”-“+str;str.length<width;)str=” “+str}format_string.charAt(i)!==format_string.charAt(i).toUpperCase()||arg===1/0||arg===-1/0||isNaN(arg)||(str=str.toUpperCase()),str=str.replace(/([-+]?)([0-9])$/,”$10$2“);break format_sequence;case”a“:case”A“:self.$raise($$($nesting,”NotImplementedError“),”`A` and `a` format field types are not implemented in Opal yet“);case”c“:if((arg=GET_ARG())(”to_ary“)&&(arg=arg.$to_ary()),1!==(str=arg(”to_str“)?arg.$to_str():String.fromCharCode($$($nesting,”Opal“).$coerce_to(arg,$$($nesting,”Integer“),”to_int“))).length&&self.$raise($$($nesting,”ArgumentError“),”%c requires a character“),2&flags)for(;str.length<width;)str+=” “;else for(;str.length<width;)str=” “+str;break format_sequence;case”p“:if(str=GET_ARG().$inspect(),-1!==precision&&(str=str.slice(0,precision)),2&flags)for(;str.length<width;)str+=” “;else for(;str.length<width;)str=” “+str;break format_sequence;case”s“:if(str=GET_ARG().$to_s(),-1!==precision&&(str=str.slice(0,precision)),2&flags)for(;str.length<width;)str+=” “;else for(;str.length<width;)str=” “+str;break format_sequence;default:self.$raise($$($nesting,”ArgumentError“),”malformed format string - %“+format_string.charAt(i))}void 0===str&&self.$raise($$($nesting,”ArgumentError“),”malformed format string - %“),result+=format_string.slice(begin_slice,end_slice)+str,begin_slice=i+1}return $gvars.DEBUG&&0<=pos_arg_num&&seq_arg_num<args.length&&self.$raise($$($nesting,”ArgumentError“),”too many arguments for format string“),result+format_string.slice(begin_slice)},$Kernel_format$1.$$arity=-2),Opal.alias(self,”sprintf“,”format“)}($nesting,$nesting)},Opal.modules=function(Opal){var $$12,$$15,$$18,$$21,$$24,self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.const_get_qualified,$$=Opal.const_get_relative,$klass=(Opal.breaker,Opal.slice,Opal.klass),$hash2=Opal.hash2,$truthy=Opal.truthy,$send=Opal.send;return Opal.add_stubs([”$require“,”$+“,”$“,”$new“,”$to_proc“,”$each“,”$const_set“,”$sub“,”$==“,”$default_external“,”$upcase“,”$raise“,”$attr_accessor“,”$attr_reader“,”$register“,”$length“,”$bytes“,”$to_a“,”$each_byte“,”$bytesize“,”$enum_for“,”$each_codepoint“,”$force_encoding“,”$dup“,”$coerce_to!“,”$find“,”$getbyte“]),self.$require(”corelib/string“),function($base,$super,$parent_nesting){var $Encoding_register$1,$Encoding_find$3,$Encoding_initialize$4,$Encoding_ascii_compatible$ques$5,$Encoding_dummy$ques$6,$Encoding_to_s$7,$Encoding_inspect$8,$Encoding_each_byte$9,$Encoding_getbyte$10,$Encoding_bytesize$11,self=$klass($base,null,”Encoding“),$nesting=.concat($parent_nesting);self.$$prototype.ascii=self.$$prototype.dummy=self.$$prototype.name=nil,Opal.defineProperty(self,”$$register“,{}),Opal.defs(self,”$register“,$Encoding_register$1=function(name,options){var $a,$$2,encoding,lhs,rhs,$iter=$Encoding_register$1.$$p,block=$iter||nil,names=nil,register=nil;return $iter&&($Encoding_register$1.$$p=null),$iter&&($Encoding_register$1.$$p=null),null==options&&(options=$hash2([],{})),lhs=,rhs=$truthy($a=options[”$“](”aliases“))?$a:[],names=”number“==typeof lhs&&”number“==typeof rhs?lhs+rhs:lhs(rhs),encoding=$send($$($nesting,”Class“),”new“,,block.$to_proc()).$new(name,names,!!$truthy($a=options[”$“](”ascii“))&&$a,!!$truthy($a=options[”$“](”dummy“))&&$a),register=this.$$register,$send(names,”each“,[],(($$2=function(encoding_name){var self=$$2.$$s||this;return null==encoding_name&&(encoding_name=nil),self.$const_set(encoding_name.$sub(”-“,”_“),encoding),register=encoding}).$$s=this,$$2.$$arity=1,$$2))},$Encoding_register$1.$$arity=-2),Opal.defs(self,”$find“,$Encoding_find$3=function(name){var $a,register,encoding;return name(”default_external“)?this.$default_external():(register=this.$$register,encoding=$truthy($a=register)?$a:register,$truthy(encoding)||this.$raise($$($nesting,”ArgumentError“),”unknown encoding name - “+name),encoding)},$Encoding_find$3.$$arity=1),function(self,$parent_nesting){[self].concat($parent_nesting);self.$attr_accessor(”default_external“)}(Opal.get_singleton_class(self),$nesting),self.$attr_reader(”name“,”names“),Opal.def(self,”$initialize“,$Encoding_initialize$4=function(name,names,ascii,dummy){return this.name=name,this.names=names,this.ascii=ascii,this.dummy=dummy},$Encoding_initialize$4.$$arity=4),Opal.def(self,”$ascii_compatible?“,$Encoding_ascii_compatible$ques$5=function(){return this.ascii},$Encoding_ascii_compatible$ques$5.$$arity=0),Opal.def(self,”$dummy?“,$Encoding_dummy$ques$6=function(){return this.dummy},$Encoding_dummy$ques$6.$$arity=0),Opal.def(self,”$to_s“,$Encoding_to_s$7=function(){return this.name},$Encoding_to_s$7.$$arity=0),Opal.def(self,”$inspect“,$Encoding_inspect$8=function(){var self=this;return”#<Encoding:“self.name($truthy(self.dummy)?” (dummy)“:nil)+”>“},$Encoding_inspect$8.$$arity=0),Opal.def(self,”$each_byte“,$Encoding_each_byte$9=function($a){return Opal.slice.call(arguments,0,arguments.length),this.$raise($$($nesting,”NotImplementedError“))},$Encoding_each_byte$9.$$arity=-1),Opal.def(self,”$getbyte“,$Encoding_getbyte$10=function($a){return Opal.slice.call(arguments,0,arguments.length),this.$raise($$($nesting,”NotImplementedError“))},$Encoding_getbyte$10.$$arity=-1),Opal.def(self,”$bytesize“,$Encoding_bytesize$11=function($a){return Opal.slice.call(arguments,0,arguments.length),this.$raise($$($nesting,”NotImplementedError“))},$Encoding_bytesize$11.$$arity=-1),function($base,$super,$parent_nesting){[$klass($base,$super,”EncodingError“)].concat($parent_nesting)}($nesting,$$($nesting,”StandardError“),$nesting),function($base,$super,$parent_nesting){[$klass($base,$super,”CompatibilityError“)].concat($parent_nesting)}($nesting,$$($nesting,”EncodingError“),$nesting)}($nesting,0,$nesting),$send($$($nesting,”Encoding“),”register“,[”UTF-8“,$hash2(,{aliases:,ascii:!0})],(($$12=function(){var $each_byte$13,$bytesize$14,self=$$12.$$s||this;return Opal.def(self,”$each_byte“,$each_byte$13=function(string){var $iter=$each_byte$13.$$p,block=$iter||nil;$iter&&($each_byte$13.$$p=null),$iter&&($each_byte$13.$$p=null);for(var i=0,length=string.length;i<length;i++){var code=string.charCodeAt(i);if(code<=127)Opal.yield1(block,code);else for(var encoded=encodeURIComponent(string.charAt(i)).substr(1).split(”%“),j=0,encoded_length=encoded.length;j,16))}},$each_byte$13.$$arity=1),Opal.def(self,”$bytesize“,$bytesize$14=function(string){return string.$bytes().$length()},$bytesize$14.$$arity=1),nil&&”bytesize“}).$$s=self,$$12.$$arity=0,$$12)),$send($$($nesting,”Encoding“),”register“,,(($$15=function(){var $each_byte$16,$bytesize$17,self=$$15.$$s||this;return Opal.def(self,”$each_byte“,$each_byte$16=function(string){var $iter=$each_byte$16.$$p,block=$iter||nil;$iter&&($each_byte$16.$$p=null),$iter&&($each_byte$16.$$p=null);for(var i=0,length=string.length;i<length;i++){var code=string.charCodeAt(i);Opal.yield1(block,255&code),Opal.yield1(block,code>>8)}},$each_byte$16.$$arity=1),Opal.def(self,”$bytesize“,$bytesize$17=function(string){return string.$bytes().$length()},$bytesize$17.$$arity=1),nil&&”bytesize“}).$$s=self,$$15.$$arity=0,$$15)),$send($$($nesting,”Encoding“),”register“,,(($$18=function(){var $each_byte$19,$bytesize$20,self=$$18.$$s||this;return Opal.def(self,”$each_byte“,$each_byte$19=function(string){var $iter=$each_byte$19.$$p,block=$iter||nil;$iter&&($each_byte$19.$$p=null),$iter&&($each_byte$19.$$p=null);for(var i=0,length=string.length;i<length;i++){var code=string.charCodeAt(i);Opal.yield1(block,code>>8),Opal.yield1(block,255&code)}},$each_byte$19.$$arity=1),Opal.def(self,”$bytesize“,$bytesize$20=function(string){return string.$bytes().$length()},$bytesize$20.$$arity=1),nil&&”bytesize“}).$$s=self,$$18.$$arity=0,$$18)),$send($$($nesting,”Encoding“),”register“,,(($$21=function(){var $each_byte$22,$bytesize$23,self=$$21.$$s||this;return Opal.def(self,”$each_byte“,$each_byte$22=function(string){var $iter=$each_byte$22.$$p,block=$iter||nil;$iter&&($each_byte$22.$$p=null),$iter&&($each_byte$22.$$p=null);for(var i=0,length=string.length;i<length;i++){var code=string.charCodeAt(i);Opal.yield1(block,255&code),Opal.yield1(block,code>>8)}},$each_byte$22.$$arity=1),Opal.def(self,”$bytesize“,$bytesize$23=function(string){return string.$bytes().$length()},$bytesize$23.$$arity=1),nil&&”bytesize“}).$$s=self,$$21.$$arity=0,$$21)),$send($$($nesting,”Encoding“),”register“,[”ASCII-8BIT“,$hash2(,{aliases:,ascii:!0,dummy:!0})],(($$24=function(){var $each_byte$25,$bytesize$26,self=$$24.$$s||this;return Opal.def(self,”$each_byte“,$each_byte$25=function(string){var $iter=$each_byte$25.$$p,block=$iter||nil;$iter&&($each_byte$25.$$p=null),$iter&&($each_byte$25.$$p=null);for(var i=0,length=string.length;i<length;i++){var code=string.charCodeAt(i);Opal.yield1(block,255&code),Opal.yield1(block,code>>8)}},$each_byte$25.$$arity=1),Opal.def(self,”$bytesize“,$bytesize$26=function(string){return string.$bytes().$length()},$bytesize$26.$$arity=1),nil&&”bytesize“}).$$s=self,$$24.$$arity=0,$$24)),function($base,$super,$parent_nesting){var $String_bytes$27,$String_bytesize$28,$String_each_byte$29,$String_each_codepoint$30,$String_codepoints$31,$String_encode$32,$String_force_encoding$33,$String_getbyte$34,$String_valid_encoding$ques$35,self=$klass($base,null,”String“),$nesting=.concat($parent_nesting);return self.$$prototype.encoding=nil,self.$attr_reader(”encoding“),Opal.defineProperty(String.prototype,”encoding“,$$$($$($nesting,”Encoding“),”UTF_16LE“)),Opal.def(self,”$bytes“,$String_bytes$27=function(){return this.$each_byte().$to_a()},$String_bytes$27.$$arity=0),Opal.def(self,”$bytesize“,$String_bytesize$28=function(){return this.encoding.$bytesize(this)},$String_bytesize$28.$$arity=0),Opal.def(self,”$each_byte“,$String_each_byte$29=function(){var $iter=$String_each_byte$29.$$p,block=$iter||nil;return $iter&&($String_each_byte$29.$$p=null),$iter&&($String_each_byte$29.$$p=null),block===nil?this.$enum_for(”each_byte“):($send(this.encoding,”each_byte“,,block.$to_proc()),this)},$String_each_byte$29.$$arity=0),Opal.def(self,”$each_codepoint“,$String_each_codepoint$30=function(){var $iter=$String_each_codepoint$30.$$p,block=$iter||nil;if($iter&&($String_each_codepoint$30.$$p=null),$iter&&($String_each_codepoint$30.$$p=null),block===nil)return this.$enum_for(”each_codepoint“);for(var i=0,length=this.length;i<length;i++)Opal.yield1(block,this.codePointAt(i));return this},$String_each_codepoint$30.$$arity=0),Opal.def(self,”$codepoints“,$String_codepoints$31=function(){var $iter=$String_codepoints$31.$$p,block=$iter||nil;return $iter&&($String_codepoints$31.$$p=null),$iter&&($String_codepoints$31.$$p=null),block!==nil?$send(this,”each_codepoint“,[],block.$to_proc()):this.$each_codepoint().$to_a()},$String_codepoints$31.$$arity=0),Opal.def(self,”$encode“,$String_encode$32=function(encoding){return this.$dup().$force_encoding(encoding)},$String_encode$32.$$arity=1),Opal.def(self,”$force_encoding“,$String_force_encoding$33=function(encoding){return encoding===this.encoding?this:(encoding=$$($nesting,”Opal“)(encoding,$$($nesting,”String“),”to_s“),(encoding=$$($nesting,”Encoding“).$find(encoding))===this.encoding||(this.encoding=encoding),this)},$String_force_encoding$33.$$arity=1),Opal.def(self,”$getbyte“,$String_getbyte$34=function(idx){return this.encoding.$getbyte(this,idx)},$String_getbyte$34.$$arity=1),Opal.def(self,”$valid_encoding?“,$String_valid_encoding$ques$35=function(){return!0},$String_valid_encoding$ques$35.$$arity=0),nil&&”valid_encoding?“}($nesting,0,$nesting)},Opal.modules=function(Opal){Opal.top;var $nesting=[],$$$=(Opal.nil,Opal.const_get_qualified),$$=Opal.const_get_relative,$module=(Opal.breaker,Opal.slice,Opal.module),$truthy=Opal.truthy;return Opal.add_stubs(),function($base,$parent_nesting){var $Math_checked$1,$Math_float$excl$2,$Math_integer$excl$3,$Math_acos$4,$Math_acosh$5,$Math_asin$6,$Math_asinh$7,$Math_atan$8,$Math_atan2$9,$Math_atanh$10,$Math_cbrt$11,$Math_cos$12,$Math_cosh$13,$Math_erf$14,$Math_erfc$15,$Math_exp$16,$Math_frexp$17,$Math_gamma$18,$Math_hypot$19,$Math_ldexp$20,$Math_lgamma$21,$Math_log$22,$Math_log10$23,$Math_log2$24,$Math_sin$25,$Math_sinh$26,$Math_sqrt$27,$Math_tan$28,$Math_tanh$29,self=$module($base,”Math“),$nesting=.concat($parent_nesting);Opal.const_set($nesting,”E“,Math.E),Opal.const_set($nesting,”PI“,Math.PI),Opal.const_set($nesting,”DomainError“,$$($nesting,”Class“).$new($$($nesting,”StandardError“))),Opal.defs(self,”$checked“,$Math_checked$1=function(method,$a){var args;if(args=Opal.slice.call(arguments,1,arguments.length),isNaN(args)||2==args.length&&isNaN(args))return NaN;var result=Math.apply(null,args);return isNaN(result)&&this.$raise($$($nesting,”DomainError“),'Numerical argument is out of domain - ”'method'“'),result},$Math_checked$1.$$arity=-2),Opal.defs(self,”$float!“,$Math_float$excl$2=function(value){var self=this;try{return self.$Float(value)}catch($err){if(!Opal.rescue($err,))throw $err;try{return self.$raise($$($nesting,”Opal“).$type_error(value,$$($nesting,”Float“)))}finally{Opal.pop_exception()}}},$Math_float$excl$2.$$arity=1),Opal.defs(self,”$integer!“,$Math_integer$excl$3=function(value){var self=this;try{return self.$Integer(value)}catch($err){if(!Opal.rescue($err,))throw $err;try{return self.$raise($$($nesting,”Opal“).$type_error(value,$$($nesting,”Integer“)))}finally{Opal.pop_exception()}}},$Math_integer$excl$3.$$arity=1),self.$module_function(),Opal.def(self,”$acos“,$Math_acos$4=function(x){return $$($nesting,”Math“).$checked(”acos“,$$($nesting,”Math“)(x))},$Math_acos$4.$$arity=1),$truthy(void 0!==Math.acosh)||(Math.acosh=function(x){return Math.log(x+Math.sqrt(x*x-1))}),Opal.def(self,”$acosh“,$Math_acosh$5=function(x){return $$($nesting,”Math“).$checked(”acosh“,$$($nesting,”Math“)(x))},$Math_acosh$5.$$arity=1),Opal.def(self,”$asin“,$Math_asin$6=function(x){return $$($nesting,”Math“).$checked(”asin“,$$($nesting,”Math“)(x))},$Math_asin$6.$$arity=1),$truthy(void 0!==Math.asinh)||(Math.asinh=function(x){return Math.log(x+Math.sqrt(x*x+1))}),Opal.def(self,”$asinh“,$Math_asinh$7=function(x){return $$($nesting,”Math“).$checked(”asinh“,$$($nesting,”Math“)(x))},$Math_asinh$7.$$arity=1),Opal.def(self,”$atan“,$Math_atan$8=function(x){return $$($nesting,”Math“).$checked(”atan“,$$($nesting,”Math“)(x))},$Math_atan$8.$$arity=1),Opal.def(self,”$atan2“,$Math_atan2$9=function(y,x){return $$($nesting,”Math“).$checked(”atan2“,$$($nesting,”Math“)(y),$$($nesting,”Math“)(x))},$Math_atan2$9.$$arity=2),$truthy(void 0!==Math.atanh)||(Math.atanh=function(x){return.5*Math.log((1+x)/(1-x))}),Opal.def(self,”$atanh“,$Math_atanh$10=function(x){return $$($nesting,”Math“).$checked(”atanh“,$$($nesting,”Math“)(x))},$Math_atanh$10.$$arity=1),$truthy(void 0!==Math.cbrt)||(Math.cbrt=function(x){if(0==x)return 0;if(x<0)return-Math.cbrt(-x);for(var r=x,ex=0;r<.125;)r*=8,ex–;for(;1<r;)r*=.125,ex++;for(r=(-.46946116*r+1.072302)*r+.3812513;ex<0;)r*=.5,ex++;for(;0<ex;)r*=2,ex–;return r=2/3*(r=2/3*(r=2/3*(r=2/3*r+1/3*x/(r*r))+1/3*x/(r*r))+1/3*x/(r*r))+1/3*x/(r*r)}),Opal.def(self,”$cbrt“,$Math_cbrt$11=function(x){return $$($nesting,”Math“).$checked(”cbrt“,$$($nesting,”Math“)(x))},$Math_cbrt$11.$$arity=1),Opal.def(self,”$cos“,$Math_cos$12=function(x){return $$($nesting,”Math“).$checked(”cos“,$$($nesting,”Math“)(x))},$Math_cos$12.$$arity=1),$truthy(void 0!==Math.cosh)||(Math.cosh=function(x){return(Math.exp(x)+Math.exp(-x))/2}),Opal.def(self,”$cosh“,$Math_cosh$13=function(x){return $$($nesting,”Math“).$checked(”cosh“,$$($nesting,”Math“)(x))},$Math_cosh$13.$$arity=1),$truthy(void 0!==Math.erf)||Opal.defineProperty(Math,”erf“,function(x){var sign=1;x<0&&(sign=-1);var t=1/(1+.3275911*(x=Math.abs(x)));return sign*(1-((((1.061405429*t-1.453152027)*t+1.421413741)*t-.284496736)*t+.254829592)*t*Math.exp(-x*x))}),Opal.def(self,”$erf“,$Math_erf$14=function(x){return $$($nesting,”Math“).$checked(”erf“,$$($nesting,”Math“)(x))},$Math_erf$14.$$arity=1),$truthy(void 0!==Math.erfc)||Opal.defineProperty(Math,”erfc“,function(x){var z=Math.abs(x),t=1/(.5*z+1),A10=-z*z-1.26551223+t*(t*(t*(t*(t*(t*(t*(t*(.17087277*t-.82215223)+1.48851587)-1.13520398)+.27886807)-.18628806).09678418).37409196)+1.00002368),a=t*Math.exp(A10);return x<0?2-a:a}),Opal.def(self,”$erfc“,$Math_erfc$15=function(x){return $$($nesting,”Math“).$checked(”erfc“,$$($nesting,”Math“)(x))},$Math_erfc$15.$$arity=1),Opal.def(self,”$exp“,$Math_exp$16=function(x){return $$($nesting,”Math“).$checked(”exp“,$$($nesting,”Math“)(x))},$Math_exp$16.$$arity=1),Opal.def(self,”$frexp“,$Math_frexp$17=function(x){if(x=$$($nesting,”Math“)(x),isNaN(x))return;var ex=Math.floor(Math.log(Math.abs(x))/Math.log(2))+1;return},$Math_frexp$17.$$arity=1),Opal.def(self,”$gamma“,$Math_gamma$18=function(n){var i,t,x,value,result,twoN,threeN,fourN,fiveN;n=$$($nesting,”Math“)(n);var lhs,rhs,P=;if(isNaN(n))return NaN;if(0===n&&1/n<0)return-1/0;if(-1!==n&&n!==-1/0||this.$raise($$($nesting,”DomainError“),'Numerical argument is out of domain - ”gamma“’),$$($nesting,”Integer“)(n)){if(n<=0)return isFinite(n)?1/0:NaN;if(171<n)return 1/0;for(value=n-2,result=n-1;1<value;)result*=value,value–;return 0==result&&(result=1),result}if(n<.5)return Math.PI/(Math.sin(Math.PI*n)*$$($nesting,”Math“).$gamma((rhs=n,”number“==typeof(lhs=1)&&”number“==typeof rhs?lhs-rhs:lhs(rhs))));if(171.35<=n)return 1/0;if(85<n)return fiveN=(fourN=(threeN=(twoN=n*n)*n)*n)*n,Math.sqrt(2*Math.PI/n)*Math.pow(n/Math.E,n)*(1+1/(12*n)+1/(288*twoN)-139/(51840*threeN)-571/(2488320*fourN)+163879/(209018880*fiveN)+5246819/(75246796800*fiveN*n));for(n-=1,x=P,i=1;i/(n+i);return t=n+4.7421875+.5,Math.sqrt(2*Math.PI)*Math.pow(t,n+.5)*Math.exp(-t)*x},$Math_gamma$18.$$arity=1),$truthy(void 0!==Math.hypot)||(Math.hypot=function(x,y){return Math.sqrt(x*x+y*y)}),Opal.def(self,”$hypot“,$Math_hypot$19=function(x,y){return $$($nesting,”Math“).$checked(”hypot“,$$($nesting,”Math“)(x),$$($nesting,”Math“)(y))},$Math_hypot$19.$$arity=2),Opal.def(self,”$ldexp“,$Math_ldexp$20=function(mantissa,exponent){return mantissa=$$($nesting,”Math“)(mantissa),exponent=$$($nesting,”Math“)(exponent),isNaN(exponent)&&this.$raise($$($nesting,”RangeError“),”float NaN out of range of integer“),mantissa*Math.pow(2,exponent)},$Math_ldexp$20.$$arity=2),Opal.def(self,”$lgamma“,$Math_lgamma$21=function(n){return-1==n?:[Math.log(Math.abs($$($nesting,”Math“).$gamma(n))),$$($nesting,”Math“).$gamma(n)<0?-1:1]},$Math_lgamma$21.$$arity=1),Opal.def(self,”$log“,$Math_log$22=function(x,base){var lhs,rhs;return $truthy($$($nesting,”String“)(x))&&this.$raise($$($nesting,”Opal“).$type_error(x,$$($nesting,”Float“))),$truthy(null==base)?$$($nesting,”Math“).$checked(”log“,$$($nesting,”Math“)(x)):($truthy($$($nesting,”String“)(base))&&this.$raise($$($nesting,”Opal“).$type_error(base,$$($nesting,”Float“))),lhs=$$($nesting,”Math“).$checked(”log“,$$($nesting,”Math“)(x)),rhs=$$($nesting,”Math“).$checked(”log“,$$($nesting,”Math“)(base)),”number“==typeof lhs&&”number“==typeof rhs?lhs/rhs:lhs(rhs))},$Math_log$22.$$arity=-2),$truthy(void 0!==Math.log10)||(Math.log10=function(x){return Math.log(x)/Math.LN10}),Opal.def(self,”$log10“,$Math_log10$23=function(x){return $truthy($$($nesting,”String“)(x))&&this.$raise($$($nesting,”Opal“).$type_error(x,$$($nesting,”Float“))),$$($nesting,”Math“).$checked(”log10“,$$($nesting,”Math“)(x))},$Math_log10$23.$$arity=1),$truthy(void 0!==Math.log2)||(Math.log2=function(x){return Math.log(x)/Math.LN2}),Opal.def(self,”$log2“,$Math_log2$24=function(x){return $truthy($$($nesting,”String“)(x))&&this.$raise($$($nesting,”Opal“).$type_error(x,$$($nesting,”Float“))),$$($nesting,”Math“).$checked(”log2“,$$($nesting,”Math“)(x))},$Math_log2$24.$$arity=1),Opal.def(self,”$sin“,$Math_sin$25=function(x){return $$($nesting,”Math“).$checked(”sin“,$$($nesting,”Math“)(x))},$Math_sin$25.$$arity=1),$truthy(void 0!==Math.sinh)||(Math.sinh=function(x){return(Math.exp(x)-Math.exp(-x))/2}),Opal.def(self,”$sinh“,$Math_sinh$26=function(x){return $$($nesting,”Math“).$checked(”sinh“,$$($nesting,”Math“)(x))},$Math_sinh$26.$$arity=1),Opal.def(self,”$sqrt“,$Math_sqrt$27=function(x){return $$($nesting,”Math“).$checked(”sqrt“,$$($nesting,”Math“)(x))},$Math_sqrt$27.$$arity=1),Opal.def(self,”$tan“,$Math_tan$28=function(x){return x=$$($nesting,”Math“)(x),$truthy(x())?$$$($$($nesting,”Float“),”NAN“):$$($nesting,”Math“).$checked(”tan“,$$($nesting,”Math“)(x))},$Math_tan$28.$$arity=1),$truthy(void 0!==Math.tanh)||(Math.tanh=function(x){return x==1/0?1:x==-1/0?-1:(Math.exp(x)-Math.exp(-x))/(Math.exp(x)+Math.exp(-x))}),Opal.def(self,”$tanh“,$Math_tanh$29=function(x){return $$($nesting,”Math“).$checked(”tanh“,$$($nesting,”Math“)(x))},$Math_tanh$29.$$arity=1)}($nesting,$nesting)},Opal.modules=function(Opal){function $rb_times(lhs,rhs){return”number“==typeof lhs&&”number“==typeof rhs?lhs*rhs:lhs(rhs)}function $rb_plus(lhs,rhs){return”number“==typeof lhs&&”number“==typeof rhs?lhs+rhs:lhs(rhs)}function $rb_minus(lhs,rhs){return”number“==typeof lhs&&”number“==typeof rhs?lhs-rhs:lhs(rhs)}function $rb_divide(lhs,rhs){return”number“==typeof lhs&&”number“==typeof rhs?lhs/rhs:lhs(rhs)}var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.const_get_qualified,$$=Opal.const_get_relative,$klass=(Opal.breaker,Opal.slice,Opal.klass),$truthy=Opal.truthy,$module=Opal.module;return ”,“$ ”,“$__coerced__”,“$-”,“$nan?”,“$/”,“$conj”,“$abs2”,“$quo”,“$polar”,“$exp”,“$log”,“$>”,“$!=”,“$divmod”,“$**”,“$hypot”,“$atan2”,“$lcm”,“$denominator”,“$finite?”,“$infinite?”,“$numerator”,“$abs”,“$arg”,“$rationalize”,“$to_f”,“$to_i”,“$to_r”,“$inspect”,“$positive?”,“$zero?”,“$Rational”] at Opal.add_stubs(["$require","$===","$real?","$raise","$new","$*","$cos","$sin","$attr_reader","$class","$==","$real","$imag","$Complex","$-),self.$require(“corelib/numeric”),function($base,$super,$parent_nesting){var $Complex_rect$1,$Complex_polar$2,$Complex_initialize$3,$Complex_coerce$4,$Complex_$eq_eq$5,$Complex_$minus$$6,$Complex_$plus$7,$Complex_$minus$8,$Complex_$$9,$Complex_$slash$10,$Complex_$$$11,$Complex_abs$12,$Complex_abs2$13,$Complex_angle$14,$Complex_conj$15,$Complex_denominator$16,$Complex_eql$ques$17,$Complex_fdiv$18,$Complex_finite$ques$19,$Complex_hash$20,$Complex_infinite$ques$21,$Complex_inspect$22,$Complex_numerator$23,$Complex_polar$24,$Complex_rationalize$25,$Complex_real$ques$26,$Complex_rect$27,$Complex_to_f$28,$Complex_to_i$29,$Complex_to_r$30,$Complex_to_s$31,self=$klass($base,$super,“Complex”),$nesting=.concat($parent_nesting);self.$$prototype.real=self.$$prototype.imag=nil,Opal.defs(self,“$rect”,$Complex_rect$1=function(real,imag){var $a,$b,$c;return null==imag&&(imag=0),$truthy($truthy($a=$truthy($b=$truthy($c=$$($nesting,“Numeric”)(real))?real():$c)?$$($nesting,“Numeric”)(imag):$b)?imag():$a)||this.$raise($$($nesting,“TypeError”),“not a real”),this.$new(real,imag)},$Complex_rect$1.$$arity=-2),function(self,$parent_nesting){[self].concat($parent_nesting);Opal.alias(self,“rectangular”,“rect”)}(Opal.get_singleton_class(self),$nesting),Opal.defs(self,“$polar”,$Complex_polar$2=function(r,theta){var $a,$b,$c;return null==theta&&(theta=0),$truthy($truthy($a=$truthy($b=$truthy($c=$$($nesting,“Numeric”)(r))?r():$c)?$$($nesting,“Numeric”)(theta):$b)?theta():$a)||this.$raise($$($nesting,“TypeError”),“not a real”),this.$new($rb_times(r,$$($nesting,“Math”).$cos(theta)),$rb_times(r,$$($nesting,“Math”).$sin(theta)))},$Complex_polar$2.$$arity=-2),self.$attr_reader(“real”,“imag”),Opal.def(self,“$initialize”,$Complex_initialize$3=function(real,imag){return null==imag&&(imag=0),this.real=real,this.imag=imag},$Complex_initialize$3.$$arity=-2),Opal.def(self,“$coerce”,$Complex_coerce$4=function(other){var $a;return $truthy($$($nesting,“Complex”)(other))?:$truthy($truthy($a=$$($nesting,“Numeric”)(other))?other():$a)?:this.$raise($$($nesting,“TypeError”),other.$class()+“ can't be coerced into Complex”)},$Complex_coerce$4.$$arity=1),Opal.def(self,“$==”,$Complex_$eq_eq$5=function(other){var $a;return $truthy($$($nesting,“Complex”)(other))?($a=this.real(other.$real()))?this.imag(other.$imag()):this.real(other.$real()):$truthy($truthy($a=$$($nesting,“Numeric”)(other))?other():$a)?($a=this.real(other))?this.imag(0):this.real(other):other(this)},$Complex_$eq_eq$5.$$arity=1),Opal.def(self,“$-@”,$Complex_$minus$$6=function(){return this.$Complex(this.real(),this.imag())},$Complex_$minus$$6.$$arity=0),Opal.def(self,“$+”,$Complex_$plus$7=function(other){var $a;return $truthy($$($nesting,“Complex”)(other))?this.$Complex($rb_plus(this.real,other.$real()),$rb_plus(this.imag,other.$imag())):$truthy($truthy($a=$$($nesting,“Numeric”)(other))?other():$a)?this.$Complex($rb_plus(this.real,other),this.imag):this.$__coerced__(“+”,other)},$Complex_$plus$7.$$arity=1),Opal.def(self,“$-”,$Complex_$minus$8=function(other){var $a;return $truthy($$($nesting,“Complex”)(other))?this.$Complex($rb_minus(this.real,other.$real()),$rb_minus(this.imag,other.$imag())):$truthy($truthy($a=$$($nesting,“Numeric”)(other))?other():$a)?this.$Complex($rb_minus(this.real,other),this.imag):this.$__coerced__(“-”,other)},$Complex_$minus$8.$$arity=1),Opal.def(self,“$*”,$Complex_$$9=function(other){var $a;return $truthy($$($nesting,“Complex”)(other))?this.$Complex($rb_minus($rb_times(this.real,other.$real()),$rb_times(this.imag,other.$imag())),$rb_plus($rb_times(this.real,other.$imag()),$rb_times(this.imag,other.$real()))):$truthy($truthy($a=$$($nesting,“Numeric”)(other))?other():$a)?this.$Complex($rb_times(this.real,other),$rb_times(this.imag,other)):this.$__coerced__(“*”,other)},$Complex_$$9.$$arity=1),Opal.def(self,“$/”,$Complex_$slash$10=function(other){var $a,$b,$c,$d;return $truthy($$($nesting,“Complex”)(other))?$truthy($truthy($a=$truthy($b=$truthy($c=$truthy($d=$$($nesting,“Number”)(this.real))?this.real():$d)?$c:$truthy($d=$$($nesting,“Number”)(this.imag))?this.imag():$d)?$b:$truthy($c=$$($nesting,“Number”)(other.$real()))?other.$real()():$c)?$a:$truthy($b=$$($nesting,“Number”)(other.$imag()))?other.$imag()():$b)?$$($nesting,“Complex”).$new($$$($$($nesting,“Float”),“NAN”),$$$($$($nesting,“Float”),“NAN”)):$rb_divide($rb_times(this,other.$conj()),other.$abs2()):$truthy($truthy($a=$$($nesting,“Numeric”)(other))?other():$a)?this.$Complex(this.real.$quo(other),this.imag.$quo(other)):this.$__coerced__(“/”,other)},$Complex_$slash$10.$$arity=1),Opal.def(self,“$**”,$Complex_$$$11=function(other){var $a,$b,$c,$d,lhs,rhs,r=nil,theta=nil,ore=nil,oim=nil,nr=nil,ntheta=nil,x=nil,z=nil,n=nil,div=nil,mod=nil;if(other(0))return $$($nesting,“Complex”).$new(1,0);if($truthy($$($nesting,“Complex”)(other)))return $b=this.$polar(),r=null==($a=Opal.to_ary($b))?nil:$a,theta=null==$a?nil:$a,ore=other.$real(),oim=other.$imag(),nr=$$($nesting,“Math”).$exp($rb_minus($rb_times(ore,$$($nesting,“Math”).$log®),$rb_times(oim,theta))),ntheta=$rb_plus($rb_times(theta,ore),$rb_times(oim,$$($nesting,“Math”).$log®)),$$($nesting,“Complex”).$polar(nr,ntheta);if($truthy($$($nesting,“Integer”)(other))){if($truthy((rhs=0,“number”==typeof(lhs=other)&&“number”==typeof “”>rhs?rhs(rhs)))){for(z=x=this,n=$rb_minus(other,1);$truthy(n(0));){for($c=n.$divmod(2),div=null==($b=Opal.to_ary($c))?nil:$b,mod=null==$b?nil:$b;mod(0);)x=this.$Complex($rb_minus($rb_times(x.$real(),x.$real()),$rb_times(x.$imag(),x.$imag())),$rb_times($rb_times(2,x.$real()),x.$imag())),$d=(n=div).$divmod(2),div=null==($c=Opal.to_ary($d))?nil:$c,mod=null==$c?nil:$c;z=$rb_times(z,x),n=$rb_minus(n,1)}return z}return $rb_divide($$($nesting,“Rational”).$new(1,1),this)(other())}return $truthy($truthy($a=$$($nesting,“Float”)(other))?$a:$$($nesting,“Rational”)(other))?($b=this.$polar(),r=null==($a=Opal.to_ary($b))?nil:$a,theta=null==$a?nil:$a,$$($nesting,“Complex”).$polar(r(other),$rb_times(theta,other))):this.$__coerced__(“**”,other)},$Complex_$$$11.$$arity=1),Opal.def(self,“$abs”,$Complex_abs$12=function(){return $$($nesting,“Math”).$hypot(this.real,this.imag)},$Complex_abs$12.$$arity=0),Opal.def(self,“$abs2”,$Complex_abs2$13=function(){return $rb_plus($rb_times(this.real,this.real),$rb_times(this.imag,this.imag))},$Complex_abs2$13.$$arity=0),Opal.def(self,“$angle”,$Complex_angle$14=function(){return $$($nesting,“Math”).$atan2(this.imag,this.real)},$Complex_angle$14.$$arity=0),Opal.alias(self,“arg”,“angle”),Opal.def(self,“$conj”,$Complex_conj$15=function(){return this.$Complex(this.real,this.imag())},$Complex_conj$15.$$arity=0),Opal.alias(self,“conjugate”,“conj”),Opal.def(self,“$denominator”,$Complex_denominator$16=function(){return this.real.$denominator().$lcm(this.imag.$denominator())},$Complex_denominator$16.$$arity=0),Opal.alias(self,“divide”,“/”),Opal.def(self,“$eql?”,$Complex_eql$ques$17=function(other){var $a,$b;return $truthy($a=$truthy($b=$$($nesting,“Complex”)(other))?this.real.$class()(this.imag.$class()):$b)?this(other):$a},$Complex_eql$ques$17.$$arity=1),Opal.def(self,“$fdiv”,$Complex_fdiv$18=function(other){return $truthy($$($nesting,“Numeric”)(other))||this.$raise($$($nesting,“TypeError”),other.$class()+“ can't be coerced into Complex”),$rb_divide(this,other)},$Complex_fdiv$18.$$arity=1),Opal.def(self,“$finite?”,$Complex_finite$ques$19=function(){var $a;return $truthy($a=this.real())?this.imag():$a},$Complex_finite$ques$19.$$arity=0),Opal.def(self,“$hash”,$Complex_hash$20=function(){return“Complex:”this.real“:”+this.imag},$Complex_hash$20.$$arity=0),Opal.alias(self,“imaginary”,“imag”),Opal.def(self,“$infinite?”,$Complex_infinite$ques$21=function(){var $a;return $truthy($a=this.real())?$a:this.imag()},$Complex_infinite$ques$21.$$arity=0),Opal.def(self,“$inspect”,$Complex_inspect$22=function(){return“(”this“)”},$Complex_inspect$22.$$arity=0),Opal.alias(self,“magnitude”,“abs”),Opal.udef(self,“$negative?”),Opal.def(self,“$numerator”,$Complex_numerator$23=function(){var d;return d=this.$denominator(),this.$Complex($rb_times(this.real.$numerator(),$rb_divide(d,this.real.$denominator())),$rb_times(this.imag.$numerator(),$rb_divide(d,this.imag.$denominator())))},$Complex_numerator$23.$$arity=0),Opal.alias(self,“phase”,“arg”),Opal.def(self,“$polar”,$Complex_polar$24=function(){return},$Complex_polar$24.$$arity=0),Opal.udef(self,“$positive?”),Opal.alias(self,“quo”,“/”),Opal.def(self,“$rationalize”,$Complex_rationalize$25=function(eps){return 1<arguments.length&&this.$raise($$($nesting,“ArgumentError”),“wrong number of arguments (”arguments.length“ for 0..1)”),$truthy(this.imag(0))&&this.$raise($$($nesting,“RangeError”),“can't' convert ”this“ into Rational”),this.$real().$rationalize(eps)},$Complex_rationalize$25.$$arity=-1),Opal.def(self,“$real?”,$Complex_real$ques$26=function(){return!1},$Complex_real$ques$26.$$arity=0),Opal.def(self,“$rect”,$Complex_rect$27=function(){return},$Complex_rect$27.$$arity=0),Opal.alias(self,“rectangular”,“rect”),Opal.def(self,“$to_f”,$Complex_to_f$28=function(){return this.imag(0)||this.$raise($$($nesting,“RangeError”),“can't convert ”this“ into Float”),this.real.$to_f()},$Complex_to_f$28.$$arity=0),Opal.def(self,“$to_i”,$Complex_to_i$29=function(){return this.imag(0)||this.$raise($$($nesting,“RangeError”),“can't convert ”this“ into Integer”),this.real.$to_i()},$Complex_to_i$29.$$arity=0),Opal.def(self,“$to_r”,$Complex_to_r$30=function(){return this.imag(0)||this.$raise($$($nesting,“RangeError”),“can't convert ”this“ into Rational”),this.real.$to_r()},$Complex_to_r$30.$$arity=0),Opal.def(self,“$to_s”,$Complex_to_s$31=function(){var $a,$b,$c,self=this,result=nil;return result=$rb_plus(result=$rb_plus(result=self.real.$inspect(),$truthy($truthy($a=$truthy($b=$truthy($c=$$($nesting,“Number”)(self.imag))?self.imag():$c)?$b:self.imag())?$a:self.imag())?“+”:“-”),self.imag.$abs().$inspect()),$truthy($truthy($a=$$($nesting,“Number”)(self.imag))?$truthy($b=self.imag())?$b:self.imag():$a)&&(result=$rb_plus(result,“*”)),$rb_plus(result,“i”)},$Complex_to_s$31.$$arity=0),Opal.const_set($nesting,“I”,self.$new(0,1))}($nesting,$$($nesting,“Numeric”),$nesting),function($base,$parent_nesting){var $Kernel_Complex$32,self=$module($base,“Kernel”),$nesting=.concat($parent_nesting);Opal.def(self,“$Complex”,$Kernel_Complex$32=function(real,imag){return null==imag&&(imag=nil),$truthy(imag)?$$($nesting,“Complex”).$new(real,imag):$$($nesting,“Complex”).$new(real,0)},$Kernel_Complex$32.$$arity=-2)}($nesting,$nesting),function($base,$super,$parent_nesting){var $String_to_c$33,self=$klass($base,null,“String”);.concat($parent_nesting);return Opal.def(self,“$to_c”,$String_to_c$33=function(){var real,imag,self=this,str=self,re=/?[d_]+(.+)?(ed+)?/;str.match(re);function isFloat(){return re.test(str)}function cutFloat(){var number=str.match(re);return str=str.slice(number.length),number.replace(/_/g,“”)}function cutNumber(){if(isFloat()){var numerator=parseFloat(cutFloat());if(“/”!==str)return numerator;if(str=str.slice(1),isFloat()){var denominator=parseFloat(cutFloat());return self.$Rational(numerator,denominator)}return str=“/”+str,numerator}return null}return(real=cutNumber())?(imag=cutNumber())?self.$Complex(real,imag):“i”===str?self.$Complex(0,real):self.$Complex(real,0):“i”===str?self.$Complex(0,1):“-”===str&&“i”===str?self.$Complex(0,-1):“+”===str&&“i”===str?self.$Complex(0,1):self.$Complex(0,0)},$String_to_c$33.$$arity=0),nil&&“to_c”}($nesting,0,$nesting)},Opal.modules=function(Opal){function $rb_lt(lhs,rhs){return“number”==typeof lhs&&“number”==typeof rhs?lhs(rhs)}function $rb_divide(lhs,rhs){return“number”==typeof lhs&&“number”==typeof rhs?lhs/rhs:lhs(rhs)}function $rb_minus(lhs,rhs){return“number”==typeof lhs&&“number”==typeof rhs?lhs-rhs:lhs(rhs)}function $rb_times(lhs,rhs){return“number”==typeof lhs&&“number”==typeof rhs?lhs*rhs:lhs(rhs)}function $rb_plus(lhs,rhs){return“number”==typeof lhs&&“number”==typeof rhs?lhs+rhs:lhs(rhs)}var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.const_get_qualified,$$=Opal.const_get_relative,$klass=(Opal.breaker,Opal.slice,Opal.klass),$truthy=Opal.truthy,$module=Opal.module;return “,”$new“,”$gcd“,”$/“,”$nil?“,”$===“,”$reduce“,”$to_r“,”$equal?“,”$!“,”$coerce_to!“,”$to_f“,”$numerator“,”$denominator“,”$<=>“,”$-“,”$*“,”$__coerced__“,”$ “,”$Rational“,”$>“,”$**“,”$abs“,”$ceil“,”$with_precision“,”$floor“,”$<=","$truncate","$send","$convert"] at Opal.add_stubs([“$require”,“$to_i”,“$==”,“$raise”,“$<","$-),self.$require(”corelib/numeric“),function($base,$super,$parent_nesting){var $Rational_reduce$1,$Rational_convert$2,$Rational_initialize$3,$Rational_numerator$4,$Rational_denominator$5,$Rational_coerce$6,$Rational_$eq_eq$7,$Rational_$lt_eq_gt$8,$Rational_$plus$9,$Rational_$minus$10,$Rational_$$11,$Rational_$slash$12,$Rational_$$$13,$Rational_abs$14,$Rational_ceil$15,$Rational_floor$16,$Rational_hash$17,$Rational_inspect$18,$Rational_rationalize$19,$Rational_round$20,$Rational_to_f$21,$Rational_to_i$22,$Rational_to_r$23,$Rational_to_s$24,$Rational_truncate$25,$Rational_with_precision$26,self=$klass($base,$super,”Rational“),$nesting=.concat($parent_nesting);self.$$prototype.num=self.$$prototype.den=nil,Opal.defs(self,”$reduce“,$Rational_reduce$1=function(num,den){var gcd;if(num=num.$to_i(),(den=den.$to_i())(0))this.$raise($$($nesting,”ZeroDivisionError“),”divided by 0“);else if($truthy($rb_lt(den,0)))num=num(),den=den();else if(den(1))return this.$new(num,den);return gcd=num.$gcd(den),this.$new($rb_divide(num,gcd),$rb_divide(den,gcd))},$Rational_reduce$1.$$arity=2),Opal.defs(self,”$convert“,$Rational_convert$2=function(num,den){var $a,$b;return $truthy($truthy($a=num())?$a:den())&&this.$raise($$($nesting,”TypeError“),”cannot convert nil into Rational“),$truthy($truthy($a=$$($nesting,”Integer“)(num))?$$($nesting,”Integer“)(den):$a)?this.$reduce(num,den):($truthy($truthy($a=$truthy($b=$$($nesting,”Float“)(num))?$b:$$($nesting,”String“)(num))?$a:$$($nesting,”Complex“)(num))&&(num=num.$to_r()),$truthy($truthy($a=$truthy($b=$$($nesting,”Float“)(den))?$b:$$($nesting,”String“)(den))?$a:$$($nesting,”Complex“)(den))&&(den=den.$to_r()),$truthy($truthy($a=den(1))?$$($nesting,”Integer“)(num)():$a)?$$($nesting,”Opal“)(num,$$($nesting,”Rational“),”to_r“):$truthy($truthy($a=$$($nesting,”Numeric“)(num))?$$($nesting,”Numeric“)(den):$a)?$rb_divide(num,den):this.$reduce(num,den))},$Rational_convert$2.$$arity=2),Opal.def(self,”$initialize“,$Rational_initialize$3=function(num,den){return this.num=num,this.den=den},$Rational_initialize$3.$$arity=2),Opal.def(self,”$numerator“,$Rational_numerator$4=function(){return this.num},$Rational_numerator$4.$$arity=0),Opal.def(self,”$denominator“,$Rational_denominator$5=function(){return this.den},$Rational_denominator$5.$$arity=0),Opal.def(self,”$coerce“,$Rational_coerce$6=function(other){var self=this,$case=nil;return $case=other,$$($nesting,”Rational“)($case)?:$$($nesting,”Integer“)($case)?:$$($nesting,”Float“)($case)?:nil},$Rational_coerce$6.$$arity=1),Opal.def(self,”$==“,$Rational_$eq_eq$7=function(other){var self=this,$case=nil;return $case=other,$$($nesting,”Rational“)($case)?self.num(other.$numerator())?self.den(other.$denominator()):self.num(other.$numerator()):$$($nesting,”Integer“)($case)?self.num(other)?self.den(1):self.num(other):$$($nesting,”Float“)($case)?self.$to_f()(other):other(self)},$Rational_$eq_eq$7.$$arity=1),Opal.def(self,”$<=>“,$Rational_$lt_eq_gt$8=function(other){var self=this,$case=nil;return $case=other,$$($nesting,”Rational“)($”“>case)?$rb_minus($rb_times(self.num,other.$denominator()),$rb_times(self.den,other.$numerator()))(0):$$($nesting,”Integer“)($”“>case)?$rb_minus(self.num,$rb_times(self.den,other))(0):$$($nesting,”Float“)($”“>case)?self.$to_f()(other):self.$__coerced__(”<=>“,other)},$Rational_$lt_eq_gt$8.$$arity=1),Opal.def(self,”$+“,$Rational_$plus$9=function(other){var self=this,$case=nil,num=nil,den=nil;return $case=other,$$($nesting,”Rational“)($case)?(num=$rb_plus($rb_times(self.num,other.$denominator()),$rb_times(self.den,other.$numerator())),den=$rb_times(self.den,other.$denominator()),self.$Rational(num,den)):$$($nesting,”Integer“)($case)?self.$Rational($rb_plus(self.num,$rb_times(other,self.den)),self.den):$$($nesting,”Float“)($case)?$rb_plus(self.$to_f(),other):self.$__coerced__(”+“,other)},$Rational_$plus$9.$$arity=1),Opal.def(self,”$-“,$Rational_$minus$10=function(other){var self=this,$case=nil,num=nil,den=nil;return $case=other,$$($nesting,”Rational“)($case)?(num=$rb_minus($rb_times(self.num,other.$denominator()),$rb_times(self.den,other.$numerator())),den=$rb_times(self.den,other.$denominator()),self.$Rational(num,den)):$$($nesting,”Integer“)($case)?self.$Rational($rb_minus(self.num,$rb_times(other,self.den)),self.den):$$($nesting,”Float“)($case)?$rb_minus(self.$to_f(),other):self.$__coerced__(”-“,other)},$Rational_$minus$10.$$arity=1),Opal.def(self,”$*“,$Rational_$$11=function(other){var self=this,$case=nil,num=nil,den=nil;return $case=other,$$($nesting,”Rational“)($case)?(num=$rb_times(self.num,other.$numerator()),den=$rb_times(self.den,other.$denominator()),self.$Rational(num,den)):$$($nesting,”Integer“)($case)?self.$Rational($rb_times(self.num,other),self.den):$$($nesting,”Float“)($case)?$rb_times(self.$to_f(),other):self.$__coerced__(”*“,other)},$Rational_$$11.$$arity=1),Opal.def(self,”$/“,$Rational_$slash$12=function(other){var self=this,$case=nil,num=nil,den=nil;return $case=other,$$($nesting,”Rational“)($case)?(num=$rb_times(self.num,other.$denominator()),den=$rb_times(self.den,other.$numerator()),self.$Rational(num,den)):$$($nesting,”Integer“)($case)?other(0)?$rb_divide(self.$to_f(),0):self.$Rational(self.num,$rb_times(self.den,other)):$$($nesting,”Float“)($case)?$rb_divide(self.$to_f(),other):self.$__coerced__(”/“,other)},$Rational_$slash$12.$$arity=1),Opal.def(self,”$**“,$Rational_$$$13=function(other){var lhs,rhs,self=this,$case=nil;return $case=other,$$($nesting,”Integer“)($case)?$truthy(self(0)?$rb_lt(other,0):self(0))?$$$($$($nesting,”Float“),”INFINITY“):$truthy((rhs=0,”number“==typeof(lhs=other)&&”number“==typeof ”“>rhs?rhs(rhs)))?self.$Rational(self.num(other),self.den(other)):$truthy($rb_lt(other,0))?self.$Rational(self.den(other()),self.num(other())):self.$Rational(1,1):$$($nesting,”Float“)($case)?self.$to_f()(other):$$($nesting,”Rational“)($case)?other(0)?self.$Rational(1,1):other.$denominator()(1)?$truthy($rb_lt(other,0))?self.$Rational(self.den(other.$numerator().$abs()),self.num(other.$numerator().$abs())):self.$Rational(self.num(other.$numerator()),self.den(other.$numerator())):$truthy(self(0)?$rb_lt(other,0):self(0))?self.$raise($$($nesting,”ZeroDivisionError“),”divided by 0“):self.$to_f()(other):self.$__coerced__(”**“,other)},$Rational_$$$13.$$arity=1),Opal.def(self,”$abs“,$Rational_abs$14=function(){return this.$Rational(this.num.$abs(),this.den.$abs())},$Rational_abs$14.$$arity=0),Opal.def(self,”$ceil“,$Rational_ceil$15=function(precision){return null==precision&&(precision=0),precision(0)?$rb_divide(this.num(),this.den)().$ceil():this.$with_precision(”ceil“,precision)},$Rational_ceil$15.$$arity=-1),Opal.alias(self,”divide“,”/“),Opal.def(self,”$floor“,$Rational_floor$16=function(precision){return null==precision&&(precision=0),precision(0)?$rb_divide(this.num(),this.den)().$floor():this.$with_precision(”floor“,precision)},$Rational_floor$16.$$arity=-1),Opal.def(self,”$hash“,$Rational_hash$17=function(){return”Rational:“this.num”:“+this.den},$Rational_hash$17.$$arity=0),Opal.def(self,”$inspect“,$Rational_inspect$18=function(){return”(“this”)“},$Rational_inspect$18.$$arity=0),Opal.alias(self,”quo“,”/“),Opal.def(self,”$rationalize“,$Rational_rationalize$19=function(eps){if(1<arguments.length&&this.$raise($$($nesting,”ArgumentError“),”wrong number of arguments (“arguments.length” for 0..1)“),null==eps)return this;for(var p2,q2,c,k,t,lhs,rhs,e=eps.$abs(),a=$rb_minus(this,e),b=$rb_plus(this,e),p0=0,p1=1,q0=1,q1=0;c=a.$ceil(),rhs=b,!(”number“==typeof(lhs=c)&&”number“==typeof rhs?lhs<=rhs:lhs(rhs));)p2=(k=c-1)*p1+p0,q2=k*q1+q0,t=$rb_divide(1,$rb_minus(b,k)),b=$rb_divide(1,$rb_minus(a,k)),a=t,p0=p1,q0=q1,p1=p2,q1=q2;return this.$Rational(c*p1+p0,c*q1+q0)},$Rational_rationalize$19.$$arity=-1),Opal.def(self,”$round“,$Rational_round$20=function(precision){var approx=nil;return null==precision&&(precision=0),precision(0)?this.num(0)?0:this.den(1)?this.num:(approx=$rb_divide($rb_plus($rb_times(this.num.$abs(),2),this.den),$rb_times(this.den,2)).$truncate(),$truthy($rb_lt(this.num,0))?approx():approx):this.$with_precision(”round“,precision)},$Rational_round$20.$$arity=-1),Opal.def(self,”$to_f“,$Rational_to_f$21=function(){return $rb_divide(this.num,this.den)},$Rational_to_f$21.$$arity=0),Opal.def(self,”$to_i“,$Rational_to_i$22=function(){return this.$truncate()},$Rational_to_i$22.$$arity=0),Opal.def(self,”$to_r“,$Rational_to_r$23=function(){return this},$Rational_to_r$23.$$arity=0),Opal.def(self,”$to_s“,$Rational_to_s$24=function(){return this.num+”/“+this.den},$Rational_to_s$24.$$arity=0),Opal.def(self,”$truncate“,$Rational_truncate$25=function(precision){return null==precision&&(precision=0),precision(0)?$truthy($rb_lt(this.num,0))?this.$ceil():this.$floor():this.$with_precision(”truncate“,precision)},$Rational_truncate$25.$$arity=-1),Opal.def(self,”$with_precision“,$Rational_with_precision$26=function(method,precision){var p,s=nil;return $truthy($$($nesting,”Integer“)(precision))||this.$raise($$($nesting,”TypeError“),”not an Integer“),s=$rb_times(this,p=10(precision)),$truthy($rb_lt(precision,1))?$rb_divide(s.$send(method),p).$to_i():this.$Rational(s.$send(method),p)},$Rational_with_precision$26.$$arity=2)}($nesting,$$($nesting,”Numeric“),$nesting),function($base,$parent_nesting){var $Kernel_Rational$27,self=$module($base,”Kernel“),$nesting=.concat($parent_nesting);Opal.def(self,”$Rational“,$Kernel_Rational$27=function(numerator,denominator){return null==denominator&&(denominator=1),$$($nesting,”Rational“).$convert(numerator,denominator)},$Kernel_Rational$27.$$arity=-2)}($nesting,$nesting),function($base,$super,$parent_nesting){var $String_to_r$28,self=$klass($base,null,”String“);.concat($parent_nesting);return Opal.def(self,”$to_r“,$String_to_r$28=function(){var numerator,denominator,str=this.trimLeft(),re=/^?[d_]+(.+)?/;str.match(re);function isFloat(){return re.test(str)}function cutFloat(){var number=str.match(re);return str=str.slice(number.length),number.replace(/_/g,”“)}return isFloat()?(numerator=parseFloat(cutFloat()),”/“===str?(str=str.slice(1),isFloat()?(denominator=parseFloat(cutFloat()),this.$Rational(numerator,denominator)):this.$Rational(numerator,1)):this.$Rational(numerator,1)):this.$Rational(0,1)},$String_to_r$28.$$arity=0),nil&&”to_r“}($nesting,0,$nesting)},Opal.modules=function(Opal){function $rb_plus(lhs,rhs){return”number“==typeof lhs&&”number“==typeof rhs?lhs+rhs:lhs(rhs)}function $rb_divide(lhs,rhs){return”number“==typeof lhs&&”number“==typeof rhs?lhs/rhs:lhs(rhs)}function $rb_minus(lhs,rhs){return”number“==typeof lhs&&”number“==typeof rhs?lhs-rhs:lhs(rhs)}function $rb_le(lhs,rhs){return”number“==typeof lhs&&”number“==typeof rhs?lhs<=rhs:lhs(rhs)}var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.const_get_qualified,Opal.const_get_relative),$slice=(Opal.breaker,Opal.slice),$klass=Opal.klass,$truthy=Opal.truthy,$range=Opal.range;return Opal.add_stubs([”$require“,”$include“,”$===“,”$raise“,”$coerce_to!“,”$respond_to?“,”$to_str“,”$to_i“,”$new“,”$<=>“,”$to_f“,”$nil?“,”$>“,”$<","$strftime","$year","$month","$day","$+","$round","$/","$-","$copy_instance_variables","$initialize_dup","$is_a?","$zero?","$wday","$utc?","$mon","$yday","$hour","$min","$sec","$rjust","$ljust","$zone","$to_s","$“,”$cweek_cyear“,”$isdst“,”$<=“,”$!=“,”$==“,”$ceil“]),self.$require(”corelib/comparable“),function($base,$super,$parent_nesting){var $Time_at$1,$Time_new$2,$Time_local$3,$Time_gm$4,$Time_now$5,$Time_$plus$6,$Time_$minus$7,$Time_$lt_eq_gt$8,$Time_$eq_eq$9,$Time_asctime$10,$Time_day$11,$Time_yday$12,$Time_isdst$13,$Time_dup$14,$Time_eql$ques$15,$Time_friday$ques$16,$Time_hash$17,$Time_hour$18,$Time_inspect$19,$Time_min$20,$Time_mon$21,$Time_monday$ques$22,$Time_saturday$ques$23,$Time_sec$24,$Time_succ$25,$Time_usec$26,$Time_zone$27,$Time_getgm$28,$Time_gmtime$29,$Time_gmt$ques$30,$Time_gmt_offset$31,$Time_strftime$32,$Time_sunday$ques$33,$Time_thursday$ques$34,$Time_to_a$35,$Time_to_f$36,$Time_to_i$37,$Time_tuesday$ques$38,$Time_wday$39,$Time_wednesday$ques$40,$Time_year$41,$Time_cweek_cyear$42,self=$klass($base,$super,”Time“),$nesting=.concat($parent_nesting);self.$include($$($nesting,”Comparable“));var days_of_week=,short_days=,short_months=,long_months=;function time_params(year,month,day,hour,min,sec){if(year=year.$$is_string?parseInt(year,10):$$($nesting,”Opal“)(year,$$($nesting,”Integer“),”to_int“),month===nil)month=1;else if(!month.$$is_number)if(month(”to_str“))switch((month=month.$to_str()).toLowerCase()){case”jan“:month=1;break;case”feb“:month=2;break;case”mar“:month=3;break;case”apr“:month=4;break;case”may“:month=5;break;case”jun“:month=6;break;case”jul“:month=7;break;case”aug“:month=8;break;case”sep“:month=9;break;case”oct“:month=10;break;case”nov“:month=11;break;case”dec“:month=12;break;default:month=month.$to_i()}else month=$$($nesting,”Opal“)(month,$$($nesting,”Integer“),”to_int“);return(month<1||12<month)&&self.$raise($$($nesting,”ArgumentError“),”month out of range: “+month),month-=1,((day=day===nil?1:day.$$is_string?parseInt(day,10):$$($nesting,”Opal“)(day,$$($nesting,”Integer“),”to_int“))<1||31<day)&&self.$raise($$($nesting,”ArgumentError“),”day out of range: “+day),((hour=hour===nil?0:hour.$$is_string?parseInt(hour,10):$$($nesting,”Opal“)(hour,$$($nesting,”Integer“),”to_int“))<0||24<hour)&&self.$raise($$($nesting,”ArgumentError“),”hour out of range: “+hour),((min=min===nil?0:min.$$is_string?parseInt(min,10):$$($nesting,”Opal“)(min,$$($nesting,”Integer“),”to_int“))<0||59<min)&&self.$raise($$($nesting,”ArgumentError“),”min out of range: “+min),sec===nil?sec=0:sec.$$is_number||(sec=sec.$$is_string?parseInt(sec,10):$$($nesting,”Opal“)(sec,$$($nesting,”Integer“),”to_int“)),(sec<0||60<sec)&&self.$raise($$($nesting,”ArgumentError“),”sec out of range: “+sec),}return Opal.defs(self,”$at“,$Time_at$1=function(seconds,frac){var result;return $$($nesting,”Time“)(seconds)?(void 0!==frac&&this.$raise($$($nesting,”TypeError“),”can't convert Time into an exact number“),(result=new Date(seconds.getTime())).is_utc=seconds.is_utc,result):(seconds.$$is_number||(seconds=$$($nesting,”Opal“)(seconds,$$($nesting,”Integer“),”to_int“)),void 0===frac?new Date(1e3*seconds):(frac.$$is_number||(frac=$$($nesting,”Opal“)(frac,$$($nesting,”Integer“),”to_int“)),new Date(1e3*seconds+frac/1e3)))},$Time_at$1.$$arity=-2),Opal.defs(self,”$new“,$Time_new$2=function(year,month,day,hour,min,sec,utc_offset){var args,result;return null==month&&(month=nil),null==day&&(day=nil),null==hour&&(hour=nil),null==min&&(min=nil),null==sec&&(sec=nil),null==utc_offset&&(utc_offset=nil),void 0===year?new Date:(utc_offset!==nil&&this.$raise($$($nesting,”ArgumentError“),”Opal does not support explicitly specifying UTC offset for Time“),year=(args=time_params(year,month,day,hour,min,sec)),month=args,day=args,hour=args,min=args,sec=args,result=new Date(year,month,day,hour,min,0,1e3*sec),year<100&&result.setFullYear(year),result)},$Time_new$2.$$arity=-1),Opal.defs(self,”$local“,$Time_local$3=function(year,month,day,hour,min,sec,millisecond,_dummy1,_dummy2,_dummy3){var args,result;return null==month&&(month=nil),null==day&&(day=nil),null==hour&&(hour=nil),null==min&&(min=nil),null==sec&&(sec=nil),null==millisecond&&(millisecond=nil),null==_dummy1&&(_dummy1=nil),null==_dummy2&&(_dummy2=nil),null==_dummy3&&(_dummy3=nil),10===arguments.length&&(year=(args=$slice.call(arguments)),month=args,day=args,hour=args,min=args,sec=args),year=(args=time_params(year,month,day,hour,min,sec)),month=args,day=args,hour=args,min=args,sec=args,result=new Date(year,month,day,hour,min,0,1e3*sec),year<100&&result.setFullYear(year),result},$Time_local$3.$$arity=-2),Opal.defs(self,”$gm“,$Time_gm$4=function(year,month,day,hour,min,sec,millisecond,_dummy1,_dummy2,_dummy3){var args,result;return null==month&&(month=nil),null==day&&(day=nil),null==hour&&(hour=nil),null==min&&(min=nil),null==sec&&(sec=nil),null==millisecond&&(millisecond=nil),null==_dummy1&&(_dummy1=nil),null==_dummy2&&(_dummy2=nil),null==_dummy3&&(_dummy3=nil),10===arguments.length&&(year=(args=$slice.call(arguments)),month=args,day=args,hour=args,min=args,sec=args),year=(args=time_params(year,month,day,hour,min,sec)),month=args,day=args,hour=args,min=args,sec=args,result=new Date(Date.UTC(year,month,day,hour,min,0,1e3*sec)),year<100&&result.setUTCFullYear(year),result.is_utc=!0,result},$Time_gm$4.$$arity=-2),function(self,$parent_nesting){[self].concat($parent_nesting);Opal.alias(self,”mktime“,”local“),Opal.alias(self,”utc“,”gm“)}(Opal.get_singleton_class(self),$nesting),Opal.defs(self,”$now“,$Time_now$5=function(){return this.$new()},$Time_now$5.$$arity=0),Opal.def(self,”$+“,$Time_$plus$6=function(other){$truthy($$($nesting,”Time“)(other))&&this.$raise($$($nesting,”TypeError“),”time + time?“),other.$$is_number||(other=$$($nesting,”Opal“)(other,$$($nesting,”Integer“),”to_int“));var result=new Date(this.getTime()+1e3*other);return result.is_utc=this.is_utc,result},$Time_$plus$6.$$arity=1),Opal.def(self,”$-“,$Time_$minus$7=function(other){if($truthy($$($nesting,”Time“)(other)))return(this.getTime()-other.getTime())/1e3;other.$$is_number||(other=$$($nesting,”Opal“)(other,$$($nesting,”Integer“),”to_int“));var result=new Date(this.getTime()-1e3*other);return result.is_utc=this.is_utc,result},$Time_$minus$7.$$arity=1),Opal.def(self,”$<=>“,$Time_$lt_eq_gt$8=function(other){var lhs,rhs,r=nil;return $truthy($$($nesting,”Time“)(”“>other))?this.$to_f()(”“>other.$to_f()):(r=other(this),$truthy(r())?nil:$truthy((rhs=0,”number“==typeof(lhs=r)&&”number“==typeof ”“>rhs?rhs(rhs)))?-1:$truthy(function(lhs,rhs){return”number“==typeof lhs&&”number“==typeof rhs?lhs(rhs)}(r,0))?1:0)},$Time_$lt_eq_gt$8.$$arity=1),Opal.def(self,”$==“,$Time_$eq_eq$9=function(other){var $a;return $truthy($a=$$($nesting,”Time“)(other))?this.$to_f()===other.$to_f():$a},$Time_$eq_eq$9.$$arity=1),Opal.def(self,”$asctime“,$Time_asctime$10=function(){return this.$strftime(”%a %b %e %H:%M:%S %Y“)},$Time_asctime$10.$$arity=0),Opal.alias(self,”ctime“,”asctime“),Opal.def(self,”$day“,$Time_day$11=function(){return this.is_utc?this.getUTCDate():this.getDate()},$Time_day$11.$$arity=0),Opal.def(self,”$yday“,$Time_yday$12=function(){var start_of_year;return start_of_year=$$($nesting,”Time“).$new(this.$year()).$to_i(),86400,$rb_plus($rb_divide($rb_minus($$($nesting,”Time“).$new(this.$year(),this.$month(),this.$day()).$to_i(),start_of_year),86400).$round(),1)},$Time_yday$12.$$arity=0),Opal.def(self,”$isdst“,$Time_isdst$13=function(){var jan=new Date(this.getFullYear(),0,1),jul=new Date(this.getFullYear(),6,1);return this.getTimezoneOffset()<Math.max(jan.getTimezoneOffset(),jul.getTimezoneOffset())},$Time_isdst$13.$$arity=0),Opal.alias(self,”dst?“,”isdst“),Opal.def(self,”$dup“,$Time_dup$14=function(){var copy=nil;return(copy=new Date(this.getTime())).$copy_instance_variables(this),copy.$initialize_dup(this),copy},$Time_dup$14.$$arity=0),Opal.def(self,”$eql?“,$Time_eql$ques$15=function(other){var $a;return $truthy($a=other($$($”“>nesting,”Time“)))?this(other)():$a},$Time_eql$ques$15.$$arity=1),Opal.def(self,”$friday?“,$Time_friday$ques$16=function(){return 5==this.$wday()},$Time_friday$ques$16.$$arity=0),Opal.def(self,”$hash“,$Time_hash$17=function(){return”Time:“+this.getTime()},$Time_hash$17.$$arity=0),Opal.def(self,”$hour“,$Time_hour$18=function(){return this.is_utc?this.getUTCHours():this.getHours()},$Time_hour$18.$$arity=0),Opal.def(self,”$inspect“,$Time_inspect$19=function(){return $truthy(this())?this.$strftime(”%Y-%m-%d %H:%M:%S UTC“):this.$strftime(”%Y-%m-%d %H:%M:%S %z“)},$Time_inspect$19.$$arity=0),Opal.alias(self,”mday“,”day“),Opal.def(self,”$min“,$Time_min$20=function(){return this.is_utc?this.getUTCMinutes():this.getMinutes()},$Time_min$20.$$arity=0),Opal.def(self,”$mon“,$Time_mon$21=function(){return(this.is_utc?this.getUTCMonth():this.getMonth())+1},$Time_mon$21.$$arity=0),Opal.def(self,”$monday?“,$Time_monday$ques$22=function(){return 1==this.$wday()},$Time_monday$ques$22.$$arity=0),Opal.alias(self,”month“,”mon“),Opal.def(self,”$saturday?“,$Time_saturday$ques$23=function(){return 6==this.$wday()},$Time_saturday$ques$23.$$arity=0),Opal.def(self,”$sec“,$Time_sec$24=function(){return this.is_utc?this.getUTCSeconds():this.getSeconds()},$Time_sec$24.$$arity=0),Opal.def(self,”$succ“,$Time_succ$25=function(){var result=new Date(this.getTime()+1e3);return result.is_utc=this.is_utc,result},$Time_succ$25.$$arity=0),Opal.def(self,”$usec“,$Time_usec$26=function(){return 1e3*this.getMilliseconds()},$Time_usec$26.$$arity=0),Opal.def(self,”$zone“,$Time_zone$27=function(){var result,string=this.toString();return”GMT“==(result=-1==string.indexOf(”(“)?string.match(/{3,4}/)[0]:string.match(/((.+))(?:s|$)/))&&/(GMTW*d{4})/.test(string)?RegExp.$1:result},$Time_zone$27.$$arity=0),Opal.def(self,”$getgm“,$Time_getgm$28=function(){var result=new Date(this.getTime());return result.is_utc=!0,result},$Time_getgm$28.$$arity=0),Opal.alias(self,”getutc“,”getgm“),Opal.def(self,”$gmtime“,$Time_gmtime$29=function(){return this.is_utc=!0,this},$Time_gmtime$29.$$arity=0),Opal.alias(self,”utc“,”gmtime“),Opal.def(self,”$gmt?“,$Time_gmt$ques$30=function(){return!0===this.is_utc},$Time_gmt$ques$30.$$arity=0),Opal.def(self,”$gmt_offset“,$Time_gmt_offset$31=function(){return this.is_utc?0:60*-this.getTimezoneOffset()},$Time_gmt_offset$31.$$arity=0),Opal.def(self,”$strftime“,$Time_strftime$32=function(format){var self=this;return format.replace(/%(*:{0,2})(d+)?([EO]*)(.)/g,function(full,flags,width,_,conv){var result=”“,zero=-1!==flags.indexOf(”0“),pad=-1===flags.indexOf(”-“),blank=-1!==flags.indexOf(”_“),upcase=-1!==flags.indexOf(”^“),invert=-1!==flags.indexOf(”#“),colons=(flags.match(”:“)||[]).length;switch(width=parseInt(width,10),zero&&blank&&(flags.indexOf(”0“);break;case”b“:case”h“:blank=!zero,result+=short_months;break;case”d“:zero=!blank,result+=self.$day();break;case”e“:blank=!zero,result+=self.$day();break;case”j“:result+=self.$yday();break;case”H“:zero=!blank,result+=self.$hour();break;case”k“:blank=!zero,result+=self.$hour();break;case”I“:zero=!blank,result+=self.$hour()%12||12;break;case”l“:blank=!zero,result+=self.$hour()%12||12;break;case”P“:result+=12<=self.$hour()?”pm“:”am“;break;case”p“:result+=12<=self.$hour()?”PM“:”AM“;break;case”M“:zero=!blank,result+=self.$min();break;case”S“:zero=!blank,result+=self.$sec();break;case”L“:zero=!blank,width=isNaN(width)?3:width,result+=self.getMilliseconds();break;case”N“:width=isNaN(width)?9:width,result=(result+=self.getMilliseconds().toString().$rjust(3,”0“)).$ljust(width,”0“);break;case”z“:var offset=self.getTimezoneOffset(),hours=Math.floor(Math.abs(offset)/60),minutes=Math.abs(offset)%60;result+=offset<0?"+":"-",result+=hours<10?"0":"",result+=hours,0;break;case”a“:result+=short_days;break;case”u“:result+=self.$wday()+1;break;case”w“:result+=self.$wday();break;case”V“:result+=self.$cweek_cyear()[”$“](0).$to_s().$rjust(2,”0“);break;case”G“:result+=self.$cweek_cyear()[”$“](1);break;case”g“:result+=self.$cweek_cyear()[”$“](1)[”$“]($range(-2,-1,!1));break;case”s“:result+=self.$to_i();break;case”n“:result+=”n“;break;case”t“:result+=”t“;break;case”%“:result+=”%“;break;case”c“:result+=self.$strftime(”%a %b %e %T %Y“);break;case”D“:case”x“:result+=self.$strftime(”%m/%d/%y“);break;case”F“:result+=self.$strftime(”%Y-%m-%d“);break;case”v“:result+=self.$strftime(”%e-%^b-%4Y“);break;case”r“:result+=self.$strftime(”%I:%M:%S %p“);break;case”R“:result+=self.$strftime(”%H:%M“);break;case”T“:case”X“:result+=self.$strftime(”%H:%M:%S“);break;default:return full}return upcase&&(result=result.toUpperCase()),invert&&(result=result.replace(//,function©{c.toLowerCase()}).replace(//,function©{c.toUpperCase()})),pad&&(zero||blank)&&(result=result.$rjust(isNaN(width)?2:width,blank?” “:”0“)),result})},$Time_strftime$32.$$arity=1),Opal.def(self,”$sunday?“,$Time_sunday$ques$33=function(){return 0==this.$wday()},$Time_sunday$ques$33.$$arity=0),Opal.def(self,”$thursday?“,$Time_thursday$ques$34=function(){return 4==this.$wday()},$Time_thursday$ques$34.$$arity=0),Opal.def(self,”$to_a“,$Time_to_a$35=function(){return},$Time_to_a$35.$$arity=0),Opal.def(self,”$to_f“,$Time_to_f$36=function(){return this.getTime()/1e3},$Time_to_f$36.$$arity=0),Opal.def(self,”$to_i“,$Time_to_i$37=function(){return parseInt(this.getTime()/1e3,10)},$Time_to_i$37.$$arity=0),Opal.alias(self,”to_s“,”inspect“),Opal.def(self,”$tuesday?“,$Time_tuesday$ques$38=function(){return 2==this.$wday()},$Time_tuesday$ques$38.$$arity=0),Opal.alias(self,”tv_sec“,”to_i“),Opal.alias(self,”tv_usec“,”usec“),Opal.alias(self,”utc?“,”gmt?“),Opal.alias(self,”gmtoff“,”gmt_offset“),Opal.alias(self,”utc_offset“,”gmt_offset“),Opal.def(self,”$wday“,$Time_wday$39=function(){return this.is_utc?this.getUTCDay():this.getDay()},$Time_wday$39.$$arity=0),Opal.def(self,”$wednesday?“,$Time_wednesday$ques$40=function(){return 3==this.$wday()},$Time_wednesday$ques$40.$$arity=0),Opal.def(self,”$year“,$Time_year$41=function(){return this.is_utc?this.getUTCFullYear():this.getFullYear()},$Time_year$41.$$arity=0),Opal.def(self,”$cweek_cyear“,$Time_cweek_cyear$42=function(){var $a,jan01_wday=nil,year=nil,offset=nil,week=nil,dec31_wday=nil;return jan01_wday=$$($nesting,”Time“).$new(this.$year(),1,1).$wday(),0,year=this.$year(),$truthy($truthy($a=$rb_le(jan01_wday,4))?jan01_wday(0):$a)?offset=$rb_minus(jan01_wday,1):(offset=$rb_minus($rb_minus(jan01_wday,7),1))(-8)&&(offset=-1),week=$rb_divide($rb_plus(this.$yday(),offset),7).$ceil(),$truthy($rb_le(week,0))?$$($nesting,”Time“).$new($rb_minus(this.$year(),1),12,31).$cweek_cyear():(week(53)&&(dec31_wday=$$($nesting,”Time“).$new(this.$year(),12,31).$wday(),$truthy($truthy($a=$rb_le(dec31_wday,3))?dec31_wday(0):$a)&&(year=$rb_plus(year,week=1))),)},$Time_cweek_cyear$42.$$arity=0),nil&&”cweek_cyear“}($nesting,Date,$nesting)},Opal.modules=function(Opal){function $rb_gt(lhs,rhs){return”number“==typeof lhs&&”number“==typeof ”“>rhs?rhs(rhs)}function $rb_minus(lhs,rhs){return”number“==typeof lhs&&”number“==typeof rhs?lhs-rhs:lhs(rhs)}function $rb_lt(lhs,rhs){return”number“==typeof lhs&&”number“==typeof rhs?lhs(rhs)}function $rb_ge(lhs,rhs){return”number“==typeof lhs&&”number“==typeof =”“>rhs?rhs<=lhs:lhs(rhs)}function $rb_plus(lhs,rhs){return”number“==typeof lhs&&”number“==typeof rhs?lhs+rhs:lhs(rhs)}var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.const_get_qualified,Opal.const_get_relative),$klass=(Opal.breaker,Opal.slice,Opal.klass),$hash2=Opal.hash2,$truthy=Opal.truthy,$send=Opal.send;return Opal.add_stubs([”$require“,”$include“,”$const_name!“,”$unshift“,”$map“,”$coerce_to!“,”$new“,”$each“,”$define_struct_attribute“,”$allocate“,”$initialize“,”$alias_method“,”$module_eval“,”$to_proc“,”$const_set“,”$==“,”$raise“,”$<<","$members","$define_method","$instance_eval","$class","$last","$>“,”$length“,”$-“,”$keys“,”$any?“,”$join“,”$“,”$[]=“,”$each_with_index“,”$hash“,”$===“,”$<“,”$-@“,”$size“,”$>=“,”$include?“,”$to_sym“,”$instance_of?“,”$__id__“,”$eql?“,”$enum_for“,”$name“,”$+“,”$each_pair“,”$inspect“,”$each_with_object“,”$flatten“,”$to_a“,”$respond_to?“,”$dig“]),self.$require(”corelib/enumerable“),function($base,$super,$parent_nesting){var $Struct_new$1,$Struct_define_struct_attribute$6,$Struct_members$9,$Struct_inherited$10,$Struct_initialize$12,$Struct_members$15,$Struct_hash$16,$Struct_$$$17,$Struct_$$$eq$18,$Struct_$eq_eq$19,$Struct_eql$ques$20,$Struct_each$21,$Struct_each_pair$24,$Struct_length$27,$Struct_to_a$28,$Struct_inspect$30,$Struct_to_h$32,$Struct_values_at$34,$Struct_dig$36,self=$klass($base,null,”Struct“),$nesting=.concat($parent_nesting);return self.$include($$($nesting,”Enumerable“)),Opal.defs(self,”$new“,$Struct_new$1=function(const_name,$a,$b){var $post_args,$kwargs,args,keyword_init,$$2,$$3,$iter=$Struct_new$1.$$p,block=$iter||nil,klass=nil;if($iter&&($Struct_new$1.$$p=null),$iter&&($Struct_new$1.$$p=null),$post_args=Opal.slice.call(arguments,1,arguments.length),null==($kwargs=Opal.extract_kwargs($post_args)))$kwargs=$hash2([],{});else if(!$kwargs.$$is_hash)throw Opal.ArgumentError.$new(”expected kwargs“);if(args=$post_args,null==(keyword_init=$kwargs.$$smap.keyword_init)&&(keyword_init=!1),$truthy(const_name))try{const_name=$$($nesting,”Opal“)(const_name)}catch($err){if(!Opal.rescue($err,))throw $err;try{args.$unshift(const_name),const_name=nil}finally{Opal.pop_exception()}}return $send(args,”map“,[],(($$2=function(arg){$$2.$$s;return null==arg&&(arg=nil),$$($nesting,”Opal“)(arg,$$($nesting,”String“),”to_str“)}).$$s=this,$$2.$$arity=1,$$2)),klass=$send($$($nesting,”Class“),”new“,,(($$3=function(){var $$4,self=$$3.$$s||this;return $send(args,”each“,[],(($$4=function(arg){var self=$$4.$$s||this;return null==arg&&(arg=nil),self.$define_struct_attribute(arg)}).$$s=self,$$4.$$arity=1,$$4)),function(self,$parent_nesting){var $new$5;.concat($parent_nesting);return Opal.def(self,”$new“,$new$5=function($a){var args,instance=nil;return args=Opal.slice.call(arguments,0,arguments.length),(instance=this.$allocate()).$$data={},$send(instance,”initialize“,Opal.to_a(args)),instance},$new$5.$$arity=-1),self.$alias_method(”[]“,”new“)}(Opal.get_singleton_class(self),$nesting)}).$$s=this,$$3.$$arity=0,$$3)),$truthy(block)&&$send(klass,”module_eval“,,block.$to_proc()),klass.$$keyword_init=keyword_init,$truthy(const_name)&&$$($nesting,”Struct“).$const_set(const_name,klass),klass},$Struct_new$1.$$arity=-2),Opal.defs(self,”$define_struct_attribute“,$Struct_define_struct_attribute$6=function(name){var $$7,$$8;return this($$($nesting,”Struct“))&&this.$raise($$($nesting,”ArgumentError“),”you cannot define attributes to the Struct class“),this.$members()(name),$send(this,”define_method“,,(($$7=function(){return($$7.$$s||this).$$data}).$$s=this,$$7.$$arity=0,$$7)),$send(this,”define_method“,,(($$8=function(value){var self=$$8.$$s||this;return null==value&&(value=nil),self.$$data=value}).$$s=this,$$8.$$arity=1,$$8))},$Struct_define_struct_attribute$6.$$arity=1),Opal.defs(self,”$members“,$Struct_members$9=function(){var $a;return null==this.members&&(this.members=nil),this($$($nesting,”Struct“))&&this.$raise($$($nesting,”ArgumentError“),”the Struct class has no members“),this.members=$truthy($a=this.members)?$a:[]},$Struct_members$9.$$arity=0),Opal.defs(self,”$inherited“,$Struct_inherited$10=function(klass){var $$11,members;return null==this.members&&(this.members=nil),members=this.members,$send(klass,”instance_eval“,[],(($$11=function(){return($$11.$$s||this).members=members}).$$s=this,$$11.$$arity=0,$$11))},$Struct_inherited$10.$$arity=1),Opal.def(self,”$initialize“,$Struct_initialize$12=function($a){var $post_args,args,$b,$$13,$$14,kwargs=nil,extra=nil;return $post_args=Opal.slice.call(arguments,0,arguments.length),args=$post_args,$truthy(this.$class().$$keyword_init)?(kwargs=$truthy($b=args.$last())?$b:$hash2([],{}),$truthy($truthy($b=$rb_gt(args.$length(),1))?$b:1===args.length&&!kwargs.$$is_hash)&&this.$raise($$($nesting,”ArgumentError“),”wrong number of arguments (given “+args.$length()+”, expected 0)“),extra=$rb_minus(kwargs.$keys(),this.$class().$members()),$truthy(extra())&&this.$raise($$($nesting,”ArgumentError“),”unknown keywords: “+extra.$join(”, “)),$send(this.$class().$members(),”each“,[],(($$13=function(name){var $writer,self=$$13.$$s||this;return null==name&&(name=nil),$writer=[name,kwargs[”$“](name)],$send(self,”[]=“,Opal.to_a($writer)),$writer}).$$s=this,$$13.$$arity=1,$$13))):($truthy($rb_gt(args.$length(),this.$class().$members().$length()))&&this.$raise($$($nesting,”ArgumentError“),”struct size differs“),$send(this.$class().$members(),”each_with_index“,[],(($$14=function(name,index){var $writer,self=$$14.$$s||this;return null==name&&(name=nil),null==index&&(index=nil),$writer=[name,args[”$“](index)],$send(self,”[]=“,Opal.to_a($writer)),$writer}).$$s=this,$$14.$$arity=2,$$14)))},$Struct_initialize$12.$$arity=-1),Opal.def(self,”$members“,$Struct_members$15=function(){return this.$class().$members()},$Struct_members$15.$$arity=0),Opal.def(self,”$hash“,$Struct_hash$16=function(){return $$($nesting,”Hash“).$new(this.$$data).$hash()},$Struct_hash$16.$$arity=0),Opal.def(self,”$[]“,$Struct_$$$17=function(name){return $truthy($$($nesting,”Integer“)(name))?($truthy($rb_lt(name,this.$class().$members().$size()()))&&this.$raise($$($nesting,”IndexError“),”offset “name” too small for struct(size:“+this.$class().$members().$size()+”)“),$truthy($rb_ge(name,this.$class().$members().$size()))&&this.$raise($$($nesting,”IndexError“),”offset “name” too large for struct(size:“+this.$class().$members().$size()+”)“),name=this.$class().$members()[”$“](name)):$truthy($$($nesting,”String“)(name))?this.$$data.hasOwnProperty(name)||this.$raise($$($nesting,”NameError“).$new(”no member '“name”' in struct“,name)):this.$raise($$($nesting,”TypeError“),”no implicit conversion of “+name.$class()+” into Integer“),name=$$($nesting,”Opal“)(name,$$($nesting,”String“),”to_str“),this.$$data},$Struct_$$$17.$$arity=1),Opal.def(self,”$[]=“,$Struct_$$$eq$18=function(name,value){return $truthy($$($nesting,”Integer“)(name))?($truthy($rb_lt(name,this.$class().$members().$size()()))&&this.$raise($$($nesting,”IndexError“),”offset “name” too small for struct(size:“+this.$class().$members().$size()+”)“),$truthy($rb_ge(name,this.$class().$members().$size()))&&this.$raise($$($nesting,”IndexError“),”offset “name” too large for struct(size:“+this.$class().$members().$size()+”)“),name=this.$class().$members()[”$“](name)):$truthy($$($nesting,”String“)(name))?$truthy(this.$class().$members()(name.$to_sym()))||this.$raise($$($nesting,”NameError“).$new(”no member '“name”' in struct“,name)):this.$raise($$($nesting,”TypeError“),”no implicit conversion of “+name.$class()+” into Integer“),name=$$($nesting,”Opal“)(name,$$($nesting,”String“),”to_str“),this.$$data=value},$Struct_$$$eq$18.$$arity=2),Opal.def(self,”$==“,$Struct_$eq_eq$19=function(other){if(!$truthy(other(this.$class())))return!1;var recursed1={},recursed2={};return function _eqeq(struct,other){var key,a,b;for(key in recursed1=!0,recursed2=!0,struct.$$data)if(a=struct.$$data,b=other.$$data,$$($nesting,”Struct“)(a)){if(!(recursed1.hasOwnProperty(a.$__id__())&&recursed2.hasOwnProperty(b.$__id__())||_eqeq(a,b)))return!1}else if(!a(b))return!1;return!0}(this,other)},$Struct_$eq_eq$19.$$arity=1),Opal.def(self,”$eql?“,$Struct_eql$ques$20=function(other){if(!$truthy(other(this.$class())))return!1;var recursed1={},recursed2={};return function _eqeq(struct,other){var key,a,b;for(key in recursed1=!0,recursed2=!0,struct.$$data)if(a=struct.$$data,b=other.$$data,$$($nesting,”Struct“)(a)){if(!(recursed1.hasOwnProperty(a.$__id__())&&recursed2.hasOwnProperty(b.$__id__())||_eqeq(a,b)))return!1}else if(!a(b))return!1;return!0}(this,other)},$Struct_eql$ques$20.$$arity=1),Opal.def(self,”$each“,$Struct_each$21=function(){var $$22,$$23,$iter=$Struct_each$21.$$p,$yield=$iter||nil;return $iter&&($Struct_each$21.$$p=null),$yield===nil?$send(this,”enum_for“,,(($$22=function(){return($$22.$$s||this).$size()}).$$s=this,$$22.$$arity=0,$$22)):($send(this.$class().$members(),”each“,[],(($$23=function(name){var self=$$23.$$s||this;return null==name&&(name=nil),Opal.yield1($yield,self[”$“](name))}).$$s=this,$$23.$$arity=1,$$23)),this)},$Struct_each$21.$$arity=0),Opal.def(self,”$each_pair“,$Struct_each_pair$24=function(){var $$25,$$26,$iter=$Struct_each_pair$24.$$p,$yield=$iter||nil;return $iter&&($Struct_each_pair$24.$$p=null),$yield===nil?$send(this,”enum_for“,,(($$25=function(){return($$25.$$s||this).$size()}).$$s=this,$$25.$$arity=0,$$25)):($send(this.$class().$members(),”each“,[],(($$26=function(name){var self=$$26.$$s||this;return null==name&&(name=nil),Opal.yield1($yield,[name,self[”$“](name)])}).$$s=this,$$26.$$arity=1,$$26)),this)},$Struct_each_pair$24.$$arity=0),Opal.def(self,”$length“,$Struct_length$27=function(){return this.$class().$members().$length()},$Struct_length$27.$$arity=0),Opal.alias(self,”size“,”length“),Opal.def(self,”$to_a“,$Struct_to_a$28=function(){var $$29;return $send(this.$class().$members(),”map“,[],(($$29=function(name){var self=$$29.$$s||this;return null==name&&(name=nil),self[”$“](name)}).$$s=this,$$29.$$arity=1,$$29))},$Struct_to_a$28.$$arity=0),Opal.alias(self,”values“,”to_a“),Opal.def(self,”$inspect“,$Struct_inspect$30=function(){var $a,$$31,result=nil;return result=”#<struct “,$truthy($truthy($a=$$($nesting,”Struct“)(this))?this.$class().$name():$a)&&(result=$rb_plus(result,this.$class()+” “)),result=$rb_plus(result=$rb_plus(result,$send(this.$each_pair(),”map“,[],($$31=function(name,value){$$31.$$s;return null==name&&(name=nil),null==value&&(value=nil),name+”=“+value.$inspect()},$$31.$$s=this,$$31.$$arity=2,$$31)).$join(”, “)),”>“)},$Struct_inspect$30.$$arity=0),Opal.alias(self,”to_s“,”inspect“),Opal.def(self,”$to_h“,$Struct_to_h$32=function(){var $$33;return $send(this.$class().$members(),”each_with_object“,[$hash2(,{})],(($$33=function(name,h){var $writer,self=$$33.$$s||this;return null==name&&(name=nil),null==h&&(h=nil),$writer=[name,self[”$“](name)],$send(h,”[]=“,Opal.to_a($writer)),$writer}).$$s=this,$$33.$$arity=2,$$33))},$Struct_to_h$32.$$arity=0),Opal.def(self,”$values_at“,$Struct_values_at$34=function($a){var $post_args,args,$$35;$post_args=Opal.slice.call(arguments,0,arguments.length);for(var result=[],i=0,len=(args=$send(args=$post_args,”map“,,($$35=function(arg){$$35.$$s;return null==arg&&(arg=nil),arg.$$is_range?arg.$to_a():arg},$$35.$$s=this,$$35.$$arity=1,$$35)).$flatten()).length;i.$$is_number||this.$raise($$($nesting,”TypeError“),”no implicit conversion of “+args.$class()+” into Integer“),result.push(this[”$“](args));return result},$Struct_values_at$34.$$arity=-1),Opal.def(self,”$dig“,$Struct_dig$36=function(key,$a){var keys,self=this,item=nil;return keys=Opal.slice.call(arguments,1,arguments.length),(item=$truthy(key.$$is_string&&self.$$data.hasOwnProperty(key))&&self.$$data||nil)===nil||0===keys.length?item:($truthy(item(”dig“))||self.$raise($$($nesting,”TypeError“),item.$class()+” does not have dig method“),$send(item,”dig“,Opal.to_a(keys)))},$Struct_dig$36.$$arity=-2),nil&&”dig“}($nesting,0,$nesting)},Opal.modules=function(Opal){function $rb_minus(lhs,rhs){return”number“==typeof lhs&&”number“==typeof rhs?lhs-rhs:lhs(rhs)}Opal.top;var $nesting=[],nil=Opal.nil,$$$=Opal.const_get_qualified,$$=Opal.const_get_relative,$klass=(Opal.breaker,Opal.slice,Opal.klass),$module=Opal.module,$send=Opal.send,$gvars=Opal.gvars,$truthy=Opal.truthy,$writer=nil;Opal.add_stubs(),function($base,$super,$parent_nesting){var $IO_tty$ques$1,$IO_closed$ques$2,$IO_write$3,$IO_flush$4,self=$klass($base,null,”IO“),$nesting=.concat($parent_nesting);self.$$prototype.tty=self.$$prototype.closed=nil,Opal.const_set($nesting,”SEEK_SET“,0),Opal.const_set($nesting,”SEEK_CUR“,1),Opal.const_set($nesting,”SEEK_END“,2),Opal.def(self,”$tty?“,$IO_tty$ques$1=function(){return this.tty},$IO_tty$ques$1.$$arity=0),Opal.def(self,”$closed?“,$IO_closed$ques$2=function(){return this.closed},$IO_closed$ques$2.$$arity=0),self.$attr_accessor(”write_proc“),Opal.def(self,”$write“,$IO_write$3=function(string){return this.write_proc(string),string.$size()},$IO_write$3.$$arity=1),self.$attr_accessor(”sync“,”tty“),Opal.def(self,”$flush“,$IO_flush$4=function(){return nil},$IO_flush$4.$$arity=0),function($base,$parent_nesting){var $Writable_$lt$lt$5,$Writable_print$6,$Writable_puts$8,self=$module($base,”Writable“);.concat($parent_nesting);Opal.def(self,”$<<“,$Writable_$lt$lt$5=function(string){return this.$write(string),this},$Writable_$lt$lt$5.$$arity=1),Opal.def(self,”$print“,$Writable_print$6=function($a){var args,$$7;return null==$gvars&&($gvars=nil),args=Opal.slice.call(arguments,0,arguments.length),this.$write($send(args,”map“,[],($$7=function(arg){var self=$$7.$$s||this;return null==arg&&(arg=nil),self.$String(arg)},$$7.$$s=this,$$7.$$arity=1,$$7)).$join($gvars)),nil},$Writable_print$6.$$arity=-1),Opal.def(self,”$puts“,$Writable_puts$8=function($a){var args,$$9,newline;return null==$gvars&&($gvars=nil),args=Opal.slice.call(arguments,0,arguments.length),newline=$gvars,$truthy(args())?this.$write($gvars):this.$write($send(args,”map“,[],($$9=function(arg){var self=$$9.$$s||this;return null==arg&&(arg=nil),self.$String(arg).$chomp()},$$9.$$s=this,$$9.$$arity=1,$$9)).$concat().$join(newline)),nil},$Writable_puts$8.$$arity=-1)}($nesting,$nesting),function($base,$parent_nesting){var $Readable_readbyte$10,$Readable_readchar$11,$Readable_readline$12,$Readable_readpartial$13,self=$module($base,”Readable“),$nesting=.concat($parent_nesting);Opal.def(self,”$readbyte“,$Readable_readbyte$10=function(){return this.$getbyte()},$Readable_readbyte$10.$$arity=0),Opal.def(self,”$readchar“,$Readable_readchar$11=function(){return this.$getc()},$Readable_readchar$11.$$arity=0),Opal.def(self,”$readline“,$Readable_readline$12=function(sep){return null==$gvars&&($gvars=nil),null==sep&&(sep=$gvars),this.$raise($$($nesting,”NotImplementedError“))},$Readable_readline$12.$$arity=-1),Opal.def(self,”$readpartial“,$Readable_readpartial$13=function(integer,outbuf){return null==outbuf&&(outbuf=nil),this.$raise($$($nesting,”NotImplementedError“))},$Readable_readpartial$13.$$arity=-2)}($nesting,$nesting)}($nesting,0,$nesting),Opal.const_set($nesting,”STDERR“,$gvars.stderr=$$($nesting,”IO“).$new()),Opal.const_set($nesting,”STDIN“,$gvars.stdin=$$($nesting,”IO“).$new()),Opal.const_set($nesting,”STDOUT“,$gvars.stdout=$$($nesting,”IO“).$new());var console=Opal.global.console;return $writer=[”object“==typeof process&&”object“==typeof process.stdout?function(s){process.stdout.write(s)}:function(s){console.log(s)}],$send($$($nesting,”STDOUT“),”write_proc=“,Opal.to_a($writer)),$writer,$writer=[”object“==typeof process&&”object“==typeof process.stderr?function(s){process.stderr.write(s)}:function(s){console.warn(s)}],$send($$($nesting,”STDERR“),”write_proc=“,Opal.to_a($writer)),$writer,$$($nesting,”STDOUT“).$extend($$$($$($nesting,”IO“),”Writable“)),$$($nesting,”STDERR“).$extend($$$($$($nesting,”IO“),”Writable“))},Opal.modules=function(Opal){var $to_s$1,$include$2,self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.const_get_qualified,Opal.const_get_relative);Opal.breaker,Opal.slice;return Opal.add_stubs(),Opal.defs(self,”$to_s“,$to_s$1=function(){return”main“},$to_s$1.$$arity=0),Opal.defs(self,”$include“,$include$2=function(mod){return $$($nesting,”Object“).$include(mod)},$include$2.$$arity=1),nil&&”include“},Opal.modules=function(Opal){Opal.top;var $nesting=[],nil=Opal.nil,$$=(Opal.const_get_qualified,Opal.const_get_relative),$klass=(Opal.breaker,Opal.slice,Opal.klass),$truthy=Opal.truthy;return Opal.add_stubs([”$“]),function($base,$super,$parent_nesting){var self=$klass($base,null,”Dir“),$nesting=.concat($parent_nesting);return function(self,$parent_nesting){var $chdir$1,$pwd$2,$home$3,$nesting=.concat($parent_nesting);return Opal.def(self,”$chdir“,$chdir$1=function(dir){var $iter=$chdir$1.$$p,$yield=$iter||nil,prev_cwd=nil;return $iter&&($chdir$1.$$p=null),function(){try{return prev_cwd=Opal.current_dir,Opal.current_dir=dir,Opal.yieldX($yield,[])}finally{Opal.current_dir=prev_cwd}}()},$chdir$1.$$arity=1),Opal.def(self,”$pwd“,$pwd$2=function(){return Opal.current_dir||”.“},$pwd$2.$$arity=0),Opal.alias(self,”getwd“,”pwd“),Opal.def(self,”$home“,$home$3=function(){var $a;return $truthy($a=$$($nesting,”ENV“)[”$“](”HOME“))?$a:”.“},$home$3.$$arity=0),nil&&”home“}(Opal.get_singleton_class(self),$nesting)}($nesting,0,$nesting)},Opal.modules=function(Opal){function $rb_plus(lhs,rhs){return”number“==typeof lhs&&”number“==typeof rhs?lhs+rhs:lhs(rhs)}Opal.top;var $nesting=[],nil=Opal.nil,$$=(Opal.const_get_qualified,Opal.const_get_relative),$klass=(Opal.breaker,Opal.slice,Opal.klass),$truthy=Opal.truthy,$range=Opal.range,$send=Opal.send;return Opal.add_stubs([”$respond_to?“,”$to_path“,”$pwd“,”$split“,”$sub“,”$+“,”$unshift“,”$join“,”$home“,”$raise“,”$start_with?“,”$absolute_path“,”$coerce_to!“,”$basename“,”$empty?“,”$rindex“,”$“,”$nil?“,”$==“,”$-“,”$length“,”$gsub“,”$find“,”$=~“,”$map“,”$each_with_index“,”$flatten“,”$reject“,”$to_proc“,”$end_with?“]),function($base,$super,$parent_nesting){var self=$klass($base,$super,”File“),$nesting=.concat($parent_nesting),windows_root_rx=nil;return Opal.const_set($nesting,”Separator“,Opal.const_set($nesting,”SEPARATOR“,”/“)),Opal.const_set($nesting,”ALT_SEPARATOR“,nil),Opal.const_set($nesting,”PATH_SEPARATOR“,”:“),Opal.const_set($nesting,”FNM_SYSCASE“,0),windows_root_rx=/^:(?:\|/)/,function(self,$parent_nesting){var $absolute_path$1,$expand_path$2,$dirname$3,$basename$4,$extname$5,$exist$ques$6,$directory$ques$7,$join$9,$split$12,$nesting=.concat($parent_nesting);function $coerce_to_path(path){return $truthy(path(”to_path“))&&(path=path.$to_path()),path=$$($nesting,”Opal“)(path,$$($nesting,”String“),”to_str“)}function $sep_chars(){return $$($nesting,”ALT_SEPARATOR“)===nil?Opal.escape_regexp($$($nesting,”SEPARATOR“)):Opal.escape_regexp($rb_plus($$($nesting,”SEPARATOR“),$$($nesting,”ALT_SEPARATOR“)))}return Opal.def(self,”$absolute_path“,$absolute_path$1=function(path,basedir){var $a,sep,sep_chars,path_abs,basedir_abs,part,new_parts=nil,parts=nil,leading_sep=nil,abs=nil,new_path=nil;null==basedir&&(basedir=nil),sep=$$($nesting,”SEPARATOR“),sep_chars=$sep_chars(),new_parts=[],path=$truthy(path(”to_path“))?path.$to_path():path,basedir=$truthy($a=basedir)?$a:$$($nesting,”Dir“).$pwd(),path_abs=path.substr(0,sep.length)===sep||windows_root_rx.test(path),basedir_abs=basedir.substr(0,sep.length)===sep||windows_root_rx.test(basedir),abs=$truthy(path_abs)?(parts=path.$split(new RegExp(”[“sep_chars”]“)),leading_sep=windows_root_rx.test(path)?”“:path.$sub(new RegExp(”^([“sep_chars”]+).*$“),”\1“),!0):(parts=$rb_plus(basedir.$split(new RegExp(”[“sep_chars”]“)),path.$split(new RegExp(”[“sep_chars”]“))),leading_sep=windows_root_rx.test(basedir)?”“:basedir.$sub(new RegExp(”^([“sep_chars”]+).*$“),”\1“),basedir_abs);for(var i=0,ii=parts.length;i)===nil||”“===part&&(0===new_parts.length||abs)||”.“===part&&(0===new_parts.length||abs)||(”..“===part?new_parts.pop():new_parts.push(part));return abs||”.“===parts||new_parts.$unshift(”.“),new_path=new_parts.$join(sep),$truthy(abs)&&(new_path=$rb_plus(leading_sep,new_path)),new_path},$absolute_path$1.$$arity=-2),Opal.def(self,”$expand_path“,$expand_path$2=function(path,basedir){var sep,sep_chars,home=nil,leading_sep=nil,home_path_regexp=nil;return null==basedir&&(basedir=nil),sep=$$($nesting,”SEPARATOR“),sep_chars=$sep_chars(),$truthy(”~“===path||basedir&&”~“===basedir)&&(home=$$($nesting,”Dir“).$home(),$truthy(home)||this.$raise($$($nesting,”ArgumentError“),”couldn't find HOME environment – expanding `~'“),leading_sep=windows_root_rx.test(home)?”“:home.$sub(new RegExp(”^([“sep_chars”]+).*$“),”\1“),$truthy(home(leading_sep))||this.$raise($$($nesting,”ArgumentError“),”non-absolute home“),home=$rb_plus(home,sep),home_path_regexp=new RegExp(”^\~(?:“sep”|$)“),path=path.$sub(home_path_regexp,home),$truthy(basedir)&&(basedir=basedir.$sub(home_path_regexp,home))),this.$absolute_path(path,basedir)},$expand_path$2.$$arity=-2),Opal.alias(self,”realpath“,”expand_path“),Opal.def(self,”$dirname“,$dirname$3=function(path){var sep_chars;sep_chars=$sep_chars();var absolute=(path=$coerce_to_path(path)).match(new RegExp(”^[“sep_chars”]“));return”“===(path=(path=(path=path.replace(new RegExp(”[“sep_chars”]+$“),”“)).replace(new RegExp(”[^“sep_chars”]+$“),”“)).replace(new RegExp(”[“sep_chars”]+$“),”“))?absolute?”/“:”.“:path},$dirname$3.$$arity=1),Opal.def(self,”$basename“,$basename$4=function(name,suffix){var sep_chars;return null==suffix&&(suffix=nil),sep_chars=$sep_chars(),0==(name=$coerce_to_path(name)).length||(suffix=suffix!==nil?$$($nesting,”Opal“)(suffix,$$($nesting,”String“),”to_str“):null,name=(name=name.replace(new RegExp(”(.)[“sep_chars”]*$“),”$1“)).replace(new RegExp(”^(?:.*[“sep_chars”])?([^“sep_chars”]+)$“),”$1“),”.*“===suffix?name=name.replace(/.+$/,”“):null!==suffix&&(suffix=Opal.escape_regexp(suffix),name=name.replace(new RegExp(suffix+”$“),”“))),name},$basename$4.$$arity=-2),Opal.def(self,”$extname“,$extname$5=function(path){var $a,lhs,rhs,filename=nil,last_dot_idx=nil;return path=$coerce_to_path(path),filename=this.$basename(path),$truthy(filename())?”“:(last_dot_idx=filename[”$“]($range(1,-1,!1)).$rindex(”.“),$truthy($truthy($a=last_dot_idx())?$a:$rb_plus(last_dot_idx,1)((lhs=filename.$length(),rhs=1,”number“==typeof lhs&&”number“==typeof rhs?lhs-rhs:lhs(rhs))))?”“:filename[”$“](Opal.Range.$new($rb_plus(last_dot_idx,1),-1,!1)))},$extname$5.$$arity=1),Opal.def(self,”$exist?“,$exist$ques$6=function(path){return null!=Opal.modules},$exist$ques$6.$$arity=1),Opal.alias(self,”exists?“,”exist?“),Opal.def(self,”$directory?“,$directory$ques$7=function(path){var $$8,files=nil;for(var key in files=[],Opal.modules)files.push(key);return path=path.$gsub(new RegExp(”(^.“+$$($nesting,”SEPARATOR“)+”+|“+$$($nesting,”SEPARATOR“)+”+$)“)),$send(files,”find“,[],(($$8=function(f){$$8.$$s;return null==f&&(f=nil),f(new RegExp(”^“+path))}).$$s=this,$$8.$$arity=1,$$8))},$directory$ques$7.$$arity=1),Opal.def(self,”$join“,$join$9=function($a){var $post_args,paths,$$10,$$11,result=nil;return $post_args=Opal.slice.call(arguments,0,arguments.length),$truthy((paths=$post_args)())?”“:(result=”“,paths=$send(paths.$flatten().$each_with_index(),”map“,[],(($$10=function(item,index){$$10.$$s;return null==item&&(item=nil),null==index&&(index=nil),$truthy(index(0)?item():index(0))?$$($nesting,”SEPARATOR“):$truthy(paths.$length()($rb_plus(index,1))?item():paths.$length()($rb_plus(index,1)))?$$($nesting,”SEPARATOR“):item}).$$s=this,$$10.$$arity=2,$$10)),paths=$send(paths,”reject“,[],”empty?“.$to_proc()),$send(paths,”each_with_index“,,(($$11=function(item,index){$$11.$$s;var $b,next_item=nil;return null==item&&(item=nil),null==index&&(index=nil),next_item=paths[”$“]($rb_plus(index,1)),result=$truthy(next_item())?”“+result+item:($truthy($truthy($b=item($$($nesting,”SEPARATOR“)))?next_item($$($nesting,”SEPARATOR“)):$b)&&(item=item.$sub(new RegExp($$($nesting,”SEPARATOR“)+”+$“),”“)),$truthy($truthy($b=item($$($nesting,”SEPARATOR“)))?$b:next_item($$($nesting,”SEPARATOR“)))?”“+result+item:”“+result+item+$$($nesting,”SEPARATOR“))}).$$s=this,$$11.$$arity=2,$$11)),result)},$join$9.$$arity=-1),Opal.def(self,”$split“,$split$12=function(path){return path.$split($$($nesting,”SEPARATOR“))},$split$12.$$arity=1),nil&&”split“}(Opal.get_singleton_class(self),$nesting)}($nesting,$$($nesting,”IO“),$nesting)},Opal.modules=function(Opal){Opal.top;var $nesting=[],nil=Opal.nil,$$$=Opal.const_get_qualified,$$=Opal.const_get_relative,$klass=(Opal.breaker,Opal.slice,Opal.klass),$truthy=Opal.truthy;return Opal.add_stubs([”$const_set“,”$size“,”$<<","$register_clock“,”$to_f“,”$now“,”$new“,”$“,”$raise“]),function($base,$super,$parent_nesting){var $Process_register_clock$1,$Process_pid$2,$Process_times$3,$Process_clock_gettime$4,self=$klass($base,null,”Process“),$nesting=.concat($parent_nesting),monotonic=nil;if(self.__clocks__=[],Opal.defs(self,”$register_clock“,$Process_register_clock$1=function(name,func){return null==this.__clocks__&&(this.__clocks__=nil),this.$const_set(name,this.__clocks__.$size()),this.__clocks__(func)},$Process_register_clock$1.$$arity=2),self.$register_clock(”CLOCK_REALTIME“,function(){return Date.now()}),monotonic=!1,Opal.global.performance)monotonic=function(){return performance.now()};else if(Opal.global.process&&process.hrtime){var hrtime_base=process.hrtime();monotonic=function(){var hrtime=process.hrtime(hrtime_base),us=hrtime/1e3|0;return 1e3*hrtime+us/1e3}}$truthy(monotonic)&&self.$register_clock(”CLOCK_MONOTONIC“,monotonic),Opal.defs(self,”$pid“,$Process_pid$2=function(){return 0},$Process_pid$2.$$arity=0),Opal.defs(self,”$times“,$Process_times$3=function(){var t;return t=$$($nesting,”Time“).$now().$to_f(),$$$($$($nesting,”Benchmark“),”Tms“).$new(t,t,t,t,t)},$Process_times$3.$$arity=0),Opal.defs(self,”$clock_gettime“,$Process_clock_gettime$4=function(clock_id,unit){var clock=nil;null==this.__clocks__&&(this.__clocks__=nil),null==unit&&(unit=”float_second“),$truthy(clock=this.__clocks__[”$“](clock_id))||this.$raise($$$($$($nesting,”Errno“),”EINVAL“),”clock_gettime(“clock_id”) “+this.__clocks__[”$“](clock_id));var ms=clock();switch(unit){case”float_second“:return ms/1e3;case”float_millisecond“:return ms/1;case”float_microsecond“:return 1e3*ms;case”second“:return ms/1e3|0;case”millisecond“:return ms/1|0;case”microsecond“:return 1e3*ms|0;case”nanosecond“:return 1e6*ms|0;default:this.$raise($$($nesting,”ArgumentError“),”unexpected unit: “+unit)}},$Process_clock_gettime$4.$$arity=-2)}($nesting,0,$nesting),function($base,$super,$parent_nesting){var $Signal_trap$5,self=$klass($base,null,”Signal“);.concat($parent_nesting);Opal.defs(self,”$trap“,$Signal_trap$5=function($a){return Opal.slice.call(arguments,0,arguments.length),nil},$Signal_trap$5.$$arity=-1)}($nesting,0,$nesting),function($base,$super,$parent_nesting){var $GC_start$6,self=$klass($base,null,”GC“);.concat($parent_nesting);return Opal.defs(self,”$start“,$GC_start$6=function(){return nil},$GC_start$6.$$arity=0),nil&&”start“}($nesting,0,$nesting)},Opal.modules=function(Opal){Opal.top;var $nesting=[],nil=Opal.nil,$$=(Opal.const_get_qualified,Opal.const_get_relative),$klass=(Opal.breaker,Opal.slice,Opal.klass),$truthy=Opal.truthy,$send=Opal.send;return Opal.add_stubs(),function($base,$super,$parent_nesting){var $Random_initialize$1,$Random_reseed$2,$Random_new_seed$3,$Random_rand$4,$Random_srand$5,$Random_urandom$6,$Random_$eq_eq$8,$Random_bytes$9,$Random_rand$11,$Random_generator$eq$12,self=$klass($base,null,”Random“),$nesting=.concat($parent_nesting);return self.$attr_reader(”seed“,”state“),Opal.def(self,”$initialize“,$Random_initialize$1=function(seed){return null==seed&&(seed=$$($nesting,”Random“).$new_seed()),seed=$$($nesting,”Opal“)(seed,$$($nesting,”Integer“),”to_int“),this.state=seed,this.$reseed(seed)},$Random_initialize$1.$$arity=-1),Opal.def(self,”$reseed“,$Random_reseed$2=function(seed){return this.seed=seed,this.$rng=Opal.$$rand.reseed(seed)},$Random_reseed$2.$$arity=1),Opal.defs(self,”$new_seed“,$Random_new_seed$3=function(){return Opal.$$rand.new_seed()},$Random_new_seed$3.$$arity=0),Opal.defs(self,”$rand“,$Random_rand$4=function(limit){return $$($nesting,”DEFAULT“).$rand(limit)},$Random_rand$4.$$arity=-1),Opal.defs(self,”$srand“,$Random_srand$5=function(n){var previous_seed;return null==n&&(n=$$($nesting,”Random“).$new_seed()),n=$$($nesting,”Opal“)(n,$$($nesting,”Integer“),”to_int“),previous_seed=$$($nesting,”DEFAULT“).$seed(),$$($nesting,”DEFAULT“).$reseed(n),previous_seed},$Random_srand$5.$$arity=-1),Opal.defs(self,”$urandom“,$Random_urandom$6=function(size){var $$7,lhs,rhs;return size=$$($nesting,”Opal“)(size,$$($nesting,”Integer“),”to_int“),$truthy((rhs=0,”number“==typeof(lhs=size)&&”number“==typeof rhs?lhs(rhs)))&&this.$raise($$($nesting,”ArgumentError“),”negative string size (or size too big)“),$send($$($nesting,”Array“),”new“,,($$7=function(){return($$7.$$s||this).$rand(255).$chr()},$$7.$$s=this,$$7.$$arity=0,$$7)).$join().$encode(”ASCII-8BIT“)},$Random_urandom$6.$$arity=1),Opal.def(self,”$==“,$Random_$eq_eq$8=function(other){return!!$truthy($$($nesting,”Random“)(other))&&(this.$seed()(other.$seed())?this.$state()(other.$state()):this.$seed()(other.$seed()))},$Random_$eq_eq$8.$$arity=1),Opal.def(self,”$bytes“,$Random_bytes$9=function(length){var $$10;return length=$$($nesting,”Opal“)(length,$$($nesting,”Integer“),”to_int“),$send($$($nesting,”Array“),”new“,,($$10=function(){return($$10.$$s||this).$rand(255).$chr()},$$10.$$s=this,$$10.$$arity=0,$$10)).$join().$encode(”ASCII-8BIT“)},$Random_bytes$9.$$arity=1),Opal.def(self,”$rand“,$Random_rand$11=function(limit){var self=this;function randomFloat(){return self.state++,Opal.$$rand.rand(self.$rng)}function randomInt(){return Math.floor(randomFloat()*limit)}return null==limit?randomFloat():limit.$$is_range?function(){var min=limit.begin,max=limit.end;if(min===nil||max===nil)return nil;var length=max-min;return length<0?nil:0===length?min:(max%1!=0||min%1!=0||limit.excl||length++,self.$rand(length)+min)}():limit.$$is_number?(limit<=0&&self.$raise($$($nesting,”ArgumentError“),”invalid argument - “+limit),limit%1==0?randomInt():randomFloat()*limit):((limit=$$($nesting,”Opal“)(limit,$$($nesting,”Integer“),”to_int“))<=0&&self.$raise($$($nesting,”ArgumentError“),”invalid argument - “+limit),randomInt())},$Random_rand$11.$$arity=-1),Opal.defs(self,”$generator=“,$Random_generator$eq$12=function(generator){return Opal.$$rand=generator,$truthy(this(”DEFAULT“))?$$($nesting,”DEFAULT“).$reseed():this.$const_set(”DEFAULT“,this.$new(this.$new_seed()))},$Random_generator$eq$12.$$arity=1),nil&&”generator=“}($nesting,0,$nesting)};var MersenneTwister=function(){var N=624,M=397,TWIST=function(u,v){return function(u,v){return 2147483648&u|2147483647&v}(u,v)>>>1^(1&v?2567483615:0)};function genrand_int32(mt){var y;return–mt.left<=0&&function(mt){var j,p=0,_p=mt.state;for(mt.left=N,mt.next=0,j=N-M+1;–j;p++)_p=_p^TWIST(_p,_p);for(j=M;–j;p++)_p=_p^TWIST(_p,_p);_p=_p^TWIST(_p,_p)}(mt),y=mt.state,y^=y>>>11,y^=y<<7&2636928640,y^=y<<15&4022730752,(y^=y>>>18)>>>0}return{genrand_real:function(mt){return function(a,b){return(67108864*(a>>>=5)+(b>>>=6))*(1/9007199254740992)}(genrand_int32(mt),genrand_int32(mt))},init:function(s){var mt={left:0,next:N,state:new Array(N)};return function(mt,s){var j;for(mt.state=s>>>0,j=1;j=1812433253*(mt.state^mt.state>>30>>>0)+j,mt.state&=4294967295;mt.left=1,mt.next=N}(mt,s),mt}}}();Opal.loaded(),Opal.modules=function(Opal){var self=Opal.top,$nesting=[],$$=(Opal.nil,Opal.const_get_qualified,Opal.const_get_relative),$klass=(Opal.breaker,Opal.slice,Opal.klass),$send=Opal.send;return Opal.add_stubs(),self.$require(”corelib/random/MersenneTwister“),function($base,$super,$parent_nesting){var $writer,lhs,rhs,self=$klass($base,null,”Random“),$nesting=.concat($parent_nesting),MAX_INT=Number.MAX_SAFE_INTEGER||Math.pow(2,53)-1;return Opal.const_set($nesting,”MERSENNE_TWISTER_GENERATOR“,{new_seed:function(){return Math.round(Math.random()*MAX_INT)},reseed:function(seed){return MersenneTwister.init(seed)},rand:function(mt){return MersenneTwister.genrand_real(mt)}}),$writer=,$send(self,”generator=“,Opal.to_a($writer)),$writer[(lhs=$writer.length,rhs=1,”number“==typeof lhs&&”number“==typeof rhs?lhs-rhs:lhs(rhs))]}($nesting,0,$nesting)},Opal.modules=function(Opal){var $public$35,$private$36,self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.const_get_qualified,Opal.const_get_relative),$klass=(Opal.breaker,Opal.slice,Opal.klass),$module=Opal.module;Opal.add_stubs();var warnings={};function handle_unsupported_feature(message){switch(Opal.config.unsupported_features_severity){case”error“:$$($nesting,”Kernel“).$raise($$($nesting,”NotImplementedError“),message);break;case”warning“:!function(string){if(warnings)return;warnings=!0,self.$warn(string)}(message)}}return function($base,$super,$parent_nesting){var $String_$lt$lt$1,$String_capitalize$excl$2,$String_chomp$excl$3,$String_chop$excl$4,$String_downcase$excl$5,$String_gsub$excl$6,$String_lstrip$excl$7,$String_next$excl$8,$String_reverse$excl$9,$String_slice$excl$10,$String_squeeze$excl$11,$String_strip$excl$12,$String_sub$excl$13,$String_succ$excl$14,$String_swapcase$excl$15,$String_tr$excl$16,$String_tr_s$excl$17,$String_upcase$excl$18,$String_prepend$19,$String_$$$eq$20,$String_clear$21,$String_encode$excl$22,$String_unicode_normalize$excl$23,self=$klass($base,null,”String“),$nesting=.concat($parent_nesting),ERROR=”String#%s not supported. Mutable String methods are not supported in Opal.“;Opal.def(self,”$<<“,$String_$lt$lt$1=function($a){return Opal.slice.call(arguments,0,arguments.length),this.$raise($$($nesting,”NotImplementedError“),ERROR(”<<“))},$String_$lt$lt$1.$$arity=-1),Opal.def(self,”$capitalize!“,$String_capitalize$excl$2=function($a){return Opal.slice.call(arguments,0,arguments.length),this.$raise($$($nesting,”NotImplementedError“),ERROR(”capitalize!“))},$String_capitalize$excl$2.$$arity=-1),Opal.def(self,”$chomp!“,$String_chomp$excl$3=function($a){return Opal.slice.call(arguments,0,arguments.length),this.$raise($$($nesting,”NotImplementedError“),ERROR(”chomp!“))},$String_chomp$excl$3.$$arity=-1),Opal.def(self,”$chop!“,$String_chop$excl$4=function($a){return Opal.slice.call(arguments,0,arguments.length),this.$raise($$($nesting,”NotImplementedError“),ERROR(”chop!“))},$String_chop$excl$4.$$arity=-1),Opal.def(self,”$downcase!“,$String_downcase$excl$5=function($a){return Opal.slice.call(arguments,0,arguments.length),this.$raise($$($nesting,”NotImplementedError“),ERROR(”downcase!“))},$String_downcase$excl$5.$$arity=-1),Opal.def(self,”$gsub!“,$String_gsub$excl$6=function($a){return Opal.slice.call(arguments,0,arguments.length),this.$raise($$($nesting,”NotImplementedError“),ERROR(”gsub!“))},$String_gsub$excl$6.$$arity=-1),Opal.def(self,”$lstrip!“,$String_lstrip$excl$7=function($a){return Opal.slice.call(arguments,0,arguments.length),this.$raise($$($nesting,”NotImplementedError“),ERROR(”lstrip!“))},$String_lstrip$excl$7.$$arity=-1),Opal.def(self,”$next!“,$String_next$excl$8=function($a){return Opal.slice.call(arguments,0,arguments.length),this.$raise($$($nesting,”NotImplementedError“),ERROR(”next!“))},$String_next$excl$8.$$arity=-1),Opal.def(self,”$reverse!“,$String_reverse$excl$9=function($a){return Opal.slice.call(arguments,0,arguments.length),this.$raise($$($nesting,”NotImplementedError“),ERROR(”reverse!“))},$String_reverse$excl$9.$$arity=-1),Opal.def(self,”$slice!“,$String_slice$excl$10=function($a){return Opal.slice.call(arguments,0,arguments.length),this.$raise($$($nesting,”NotImplementedError“),ERROR(”slice!“))},$String_slice$excl$10.$$arity=-1),Opal.def(self,”$squeeze!“,$String_squeeze$excl$11=function($a){return Opal.slice.call(arguments,0,arguments.length),this.$raise($$($nesting,”NotImplementedError“),ERROR(”squeeze!“))},$String_squeeze$excl$11.$$arity=-1),Opal.def(self,”$strip!“,$String_strip$excl$12=function($a){return Opal.slice.call(arguments,0,arguments.length),this.$raise($$($nesting,”NotImplementedError“),ERROR(”strip!“))},$String_strip$excl$12.$$arity=-1),Opal.def(self,”$sub!“,$String_sub$excl$13=function($a){return Opal.slice.call(arguments,0,arguments.length),this.$raise($$($nesting,”NotImplementedError“),ERROR(”sub!“))},$String_sub$excl$13.$$arity=-1),Opal.def(self,”$succ!“,$String_succ$excl$14=function($a){return Opal.slice.call(arguments,0,arguments.length),this.$raise($$($nesting,”NotImplementedError“),ERROR(”succ!“))},$String_succ$excl$14.$$arity=-1),Opal.def(self,”$swapcase!“,$String_swapcase$excl$15=function($a){return Opal.slice.call(arguments,0,arguments.length),this.$raise($$($nesting,”NotImplementedError“),ERROR(”swapcase!“))},$String_swapcase$excl$15.$$arity=-1),Opal.def(self,”$tr!“,$String_tr$excl$16=function($a){return Opal.slice.call(arguments,0,arguments.length),this.$raise($$($nesting,”NotImplementedError“),ERROR(”tr!“))},$String_tr$excl$16.$$arity=-1),Opal.def(self,”$tr_s!“,$String_tr_s$excl$17=function($a){return Opal.slice.call(arguments,0,arguments.length),this.$raise($$($nesting,”NotImplementedError“),ERROR(”tr_s!“))},$String_tr_s$excl$17.$$arity=-1),Opal.def(self,”$upcase!“,$String_upcase$excl$18=function($a){return Opal.slice.call(arguments,0,arguments.length),this.$raise($$($nesting,”NotImplementedError“),ERROR(”upcase!“))},$String_upcase$excl$18.$$arity=-1),Opal.def(self,”$prepend“,$String_prepend$19=function($a){return Opal.slice.call(arguments,0,arguments.length),this.$raise($$($nesting,”NotImplementedError“),ERROR(”prepend“))},$String_prepend$19.$$arity=-1),Opal.def(self,”$[]=“,$String_$$$eq$20=function($a){return Opal.slice.call(arguments,0,arguments.length),this.$raise($$($nesting,”NotImplementedError“),ERROR(”[]=“))},$String_$$$eq$20.$$arity=-1),Opal.def(self,”$clear“,$String_clear$21=function($a){return Opal.slice.call(arguments,0,arguments.length),this.$raise($$($nesting,”NotImplementedError“),ERROR(”clear“))},$String_clear$21.$$arity=-1),Opal.def(self,”$encode!“,$String_encode$excl$22=function($a){return Opal.slice.call(arguments,0,arguments.length),this.$raise($$($nesting,”NotImplementedError“),ERROR(”encode!“))},$String_encode$excl$22.$$arity=-1),Opal.def(self,”$unicode_normalize!“,$String_unicode_normalize$excl$23=function($a){return Opal.slice.call(arguments,0,arguments.length),this.$raise($$($nesting,”NotImplementedError“),ERROR(”unicode_normalize!“))},$String_unicode_normalize$excl$23.$$arity=-1)}($nesting,0,$nesting),function($base,$parent_nesting){var $Kernel_freeze$24,$Kernel_frozen$ques$25,self=$module($base,”Kernel“),ERROR=(.concat($parent_nesting),”Object freezing is not supported by Opal“);Opal.def(self,”$freeze“,$Kernel_freeze$24=function(){return handle_unsupported_feature(ERROR),this},$Kernel_freeze$24.$$arity=0),Opal.def(self,”$frozen?“,$Kernel_frozen$ques$25=function(){return handle_unsupported_feature(ERROR),!1},$Kernel_frozen$ques$25.$$arity=0)}($nesting,$nesting),function($base,$parent_nesting){var $Kernel_taint$26,$Kernel_untaint$27,$Kernel_tainted$ques$28,self=$module($base,”Kernel“),ERROR=(.concat($parent_nesting),”Object tainting is not supported by Opal“);Opal.def(self,”$taint“,$Kernel_taint$26=function(){return handle_unsupported_feature(ERROR),this},$Kernel_taint$26.$$arity=0),Opal.def(self,”$untaint“,$Kernel_untaint$27=function(){return handle_unsupported_feature(ERROR),this},$Kernel_untaint$27.$$arity=0),Opal.def(self,”$tainted?“,$Kernel_tainted$ques$28=function(){return handle_unsupported_feature(ERROR),!1},$Kernel_tainted$ques$28.$$arity=0)}($nesting,$nesting),function($base,$super,$parent_nesting){var $Module_public$29,$Module_private_class_method$30,$Module_private_method_defined$ques$31,$Module_private_constant$32,self=$klass($base,null,”Module“);.concat($parent_nesting);Opal.def(self,”$public“,$Module_public$29=function($a){return 0===Opal.slice.call(arguments,0,arguments.length).length&&(this.$$module_function=!1),nil},$Module_public$29.$$arity=-1),Opal.alias(self,”private“,”public“),Opal.alias(self,”protected“,”public“),Opal.alias(self,”nesting“,”public“),Opal.def(self,”$private_class_method“,$Module_private_class_method$30=function($a){return Opal.slice.call(arguments,0,arguments.length),this},$Module_private_class_method$30.$$arity=-1),Opal.alias(self,”public_class_method“,”private_class_method“),Opal.def(self,”$private_method_defined?“,$Module_private_method_defined$ques$31=function(obj){return!1},$Module_private_method_defined$ques$31.$$arity=1),Opal.def(self,”$private_constant“,$Module_private_constant$32=function($a){return Opal.slice.call(arguments,0,arguments.length),nil},$Module_private_constant$32.$$arity=-1),Opal.alias(self,”protected_method_defined?“,”private_method_defined?“),Opal.alias(self,”public_instance_methods“,”instance_methods“),Opal.alias(self,”public_instance_method“,”instance_method“),Opal.alias(self,”public_method_defined?“,”method_defined?“)}($nesting,0,$nesting),function($base,$parent_nesting){var $Kernel_private_methods$33,self=$module($base,”Kernel“);.concat($parent_nesting);Opal.def(self,”$private_methods“,$Kernel_private_methods$33=function($a){return Opal.slice.call(arguments,0,arguments.length),[]},$Kernel_private_methods$33.$$arity=-1),Opal.alias(self,”private_instance_methods“,”private_methods“)}($nesting,$nesting),function($base,$parent_nesting){var $Kernel_eval$34,self=$module($base,”Kernel“),$nesting=.concat($parent_nesting);Opal.def(self,”$eval“,$Kernel_eval$34=function($a){return Opal.slice.call(arguments,0,arguments.length),this.$raise($$($nesting,”NotImplementedError“),”To use Kernel#eval, you must first require 'opal-parser'. See github.com/opal/opal/blob/“+$$($nesting,”RUBY_ENGINE_VERSION“)+”/docs/opal_parser.md for details.“)},$Kernel_eval$34.$$arity=-1)}($nesting,$nesting),Opal.defs(self,”$public“,$public$35=function($a){return Opal.slice.call(arguments,0,arguments.length),nil},$public$35.$$arity=-1),Opal.defs(self,”$private“,$private$36=function($a){return Opal.slice.call(arguments,0,arguments.length),nil},$private$36.$$arity=-1),nil&&”private“},function(Opal){var self=Opal.top;Opal.nil,Opal.const_get_qualified,Opal.const_get_relative,Opal.breaker,Opal.slice;Opal.add_stubs(),self.$require(”opal/base“),self.$require(”opal/mini“),self.$require(”corelib/kernel/format“),self.$require(”corelib/string/encoding“),self.$require(”corelib/math“),self.$require(”corelib/complex“),self.$require(”corelib/rational“),self.$require(”corelib/time“),self.$require(”corelib/struct“),self.$require(”corelib/io“),self.$require(”corelib/main“),self.$require(”corelib/dir“),self.$require(”corelib/file“),self.$require(”corelib/process“),self.$require(”corelib/random“),self.$require(”corelib/random/mersenne_twister.js“),self.$require(”corelib/unsupported“)}(Opal);