(function(j){"use strict";var h,e,t,d,v,n,K,p,a,J,ak,r,f,x,ai,P,R,i,U,q,O,af;if(typeof globalThis!='undefined'?j=globalThis:typeof global!='undefined'?j=global:typeof window!='undefined'&&(j=window),j.console==null&&(j.console={}),typeof j.console=='object'?h=j.console:h={},'log'in h||(h.log=function(){}),'warn'in h||(h.warn=h.log),typeof j.Opal!='undefined')return h.warn('Opal already loaded. Loading twice can cause troubles, please fix your setup.'),j.Opal;a=j.Opal={},a.global=j,a.config={missing_require_severity:'error',unsupported_features_severity:'warning',experimental_features_severity:'warning',enable_stack_trace:!0},J=Function.prototype.call,ak=Function.prototype.bind,r=Object.hasOwn||J.bind(Object.prototype.hasOwnProperty),f=Object.setPrototypeOf,x=J.bind(Array.prototype.slice),ai=J.bind(Array.prototype.splice),P=4,R=P;function H(){return R+=2,R}a.uid=H,a.id=function(a){return a.$$is_number?a*2+1:(a.$$id==null&&b(a,'$$id',H()),a.$$id)},i=a.gvars={},a.exit=function(a){i.DEBUG&&h.log('Exited with status '+a)},a.exceptions=[],a.pop_exception=function(c){var b=a.exceptions.pop();b===c||(b?i["!"]=b:i["!"]=e)};function c(b,c){if(b||(b=a.Exception||Error),p&&p.$raise)arguments.length>2?p.$raise(b.$new.apply(b,x(arguments,1))):p.$raise(b,c);else throw b.$new?b.$new(c):new b(c)}U={value:void 0,enumerable:!1,configurable:!0,writable:!0};function b(a,b,c){typeof a=="string"?a[b]=c:(U.value=c,Object.defineProperty(a,b,U))}a.prop=b,a.defineProperty=a.prop,a.slice=x,q=a.truthy=function(a){return!1!==a&&e!==a&&void 0!==a&&null!==a&&(!(a instanceof Boolean)||!0===a.valueOf())},a.falsy=function(a){return!q(a)},a.type_error=function(b,e,f,d){b=b.$$class,d&&f?(d=d.$$class,c(a.TypeError,"can't convert "+b+" into "+e+" ("+b+"#"+f+" gives "+d+")")):c(a.TypeError,"no implicit conversion of "+b+" into "+e)},a.coerce_to=function(b,c,d,e){var f;return d==='to_int'&&c===a.Integer&&b.$$is_number?b<0?Math.ceil(b):Math.floor(b):d==='to_str'&&c===a.String&&b.$$is_string?b:a.is_a(b,c)?b:b['$respond_to?'].$$pristine&&b.$method_missing.$$pristine?(f=b[m(d)],(f==null||f.$$stub)&&a.type_error(b,c),f.apply(b,e)):(b['$respond_to?'](d)||a.type_error(b,c),e==null&&(e=[]),a.send(b,d,e))},a.respond_to=function(b,d,c){if(b==null||!b.$$class)return!1;c=!!c;var e=b[d];if(b['$respond_to?'].$$pristine){{if(typeof e=="function"&&!e.$$stub)return!0;if(!b['$respond_to_missing?'].$$pristine)return a.send(b,b['$respond_to_missing?'],[d.substr(1),c])}}else return a.send(b,b['$respond_to?'],[d.substr(1),c])},a.trace_class=!1,a.tracers_for_class=[];function V(e){var b,d,c;for(b=0,d=a.tracers_for_class.length;b=0;a--){e=c[a];for(b in e.$$cvars)d[b]=e.$$cvars[b]}return d},a.class_variable_set=function(d,c,a){var e=g(d),b,h=e.length,f;for(b=h-2;b>=0;b--)if(f=e[b],r(f.$$cvars,c))return f.$$cvars[c]=a,a;return d.$$cvars[c]=a,a},a.class_variable_get=function(f,b,k){var h,d,j,i;if(r(f.$$cvars,b))return f.$$cvars[b];h=g(f),j=h.length;for(d=0;d1||(g||e)&&b.length===1)&&(d=a.to_ary(d)),(b.length>1||e&&b.length===1)&&d.$$is_array?f?N(b.apply.bind(b,null),d,b.$$ret):b.apply(null,d):f?N(b,d,b.$$ret):b(d)},a.yieldX=function(b,d){return typeof b!="function"&&c(a.LocalJumpError,"no block given"),b.length>1&&d.length===1&&d[0].$$is_array&&(d=d[0]),b.$$is_lambda&&b.$$ret?N(b.apply.bind(b,null),d,b.$$ret):b.apply(null,d)},a.rescue=function(d,e){for(var c=0,b,f;c=0;e--){if(h=i[e],typeof h.$$refine_modules=='undefined')continue;if(g=h.$$refine_modules,typeof g[l]=='undefined')continue;if(f=g[l],typeof f.$$prototype[m(d)]!='undefined')return r=f.$$prototype[m(d)],a.send2(j,r,d,q,p,o)}}}return a.send(j,d,q,p,o)},a.lambda=function(a,b){return a.$$is_lambda=!0,z(a,b),a},a.def=function(b,d,c,e){return z(c,e),b===a.top?a.defn(a.Object,d,c):!b.$$eval&&b.$$is_a_module?a.defn(b,d,c):a.defs(b,d,c)},a.defn=function(c,e,f){var i,g,h,j,k,l,d;if(u(c),f.displayName=e,f.$$owner=c,i=e.substr(1),g=c.$$prototype,g.hasOwnProperty('$$dummy')&&(g=g.$$define_methods_on),b(g,e,f),c.$$is_module){c.$$module_function&&a.defs(c,e,f);for(h=0,j=c.$$iclasses,k=j.length;h=0,e=0,g=c.length,b;eb:a['$>'](b)},a.rb_le=function(a,b){return o(a,b)?a<=b:a['$<='](b)},a.rb_ge=function(a,b){return o(a,b)?a>=b:a['$>='](b)};function I(a,b){return typeof a=='number'&&typeof b=='number'||typeof a=='string'&&typeof b=='string'}function aj(a,b){return I(a,b)?a===b:q(a['$=='](b))}a.eqeq=aj,a.eqeqeq=function(a,b){return I(a,b)?a===b:q(a['$==='](b))},a.neqeq=function(a,b){return I(a,b)?a!==b:q(a['$!='](b))},a.not=function(a){return!!(void 0===a||null===a||!1===a||e===a)||(!(!0===a||a['$!'].$$pristine)&&q(a['$!']()))};function w(a){return function(){return a}}a.return_val=w,a.return_self=function(){return this},a.return_ivar=function(a){return function(){return this[a]==null?e:this[a]}},a.assign_ivar=function(a){return function(b){return u(this),this[a]=b}},a.assign_ivar_val=function(a,b){return function(){return u(this),this[a]=b}},a.ensure_kwargs=function(b){if(b==null)return new Map;if(b.$$is_hash)return b;c(a.ArgumentError,'expected kwargs')},a.get_kwarg=function(e,b){var d=a.hash_get(e,b);return d===void 0&&c(a.ArgumentError,'missing keyword: '+b),d},a.large_array_unpack=function(c){var b=c.split(","),d=b.length,a;for(a=0;a>>32-b}a.opal32_add=function(a,b){return a^=b,a=al(a,1),a},a.BasicObject=t=k('BasicObject',null),a.Object=d=k('Object',a.BasicObject),a.Module=v=k('Module',a.Object),a.Class=n=k('Class',a.Module),a.Opal=K=A('Opal'),a.Kernel=p=A('Kernel'),f(a.BasicObject,a.Class.$$prototype),f(a.Object,a.Class.$$prototype),f(a.Module,a.Class.$$prototype),f(a.Class,a.Class.$$prototype),t.$$const.BasicObject=t,l(d,"BasicObject",t),l(d,"Object",d),l(d,"Module",v),l(d,"Class",n),l(d,"Opal",K),l(d,"Kernel",p),t.$$class=n,d.$$class=n,v.$$class=n,n.$$class=n,K.$$class=v,p.$$class=v,b(d.$$prototype,'toString',function(){var a=this.$to_s();return a.$$is_string&&typeof a=='object'?a.valueOf():a}),b(d.$$prototype,'$require',a.require),a.top=new d,a.top.$to_s=a.top.$inspect=w('main'),a.top.$define_method=G;function G(){var b=G.$$p;return G.$$p=null,a.send(d,'define_method',arguments,b)}a.NilClass=k('NilClass',a.Object),l(d,'NilClass',a.NilClass),e=a.nil=new a.NilClass,e.$$id=P,e.call=e.apply=function(){c(a.LocalJumpError,'no block given')},e.$$frozen=!0,e.$$comparable=!1,Object.seal(e),a.thrower=function(b){var d={$thrower_type:b,$throw:function(d,f){throw d==null&&(d=e),this.is_orphan&&!f&&c(a.LocalJumpError,'unexpected '+b,d,b.$to_sym()),this.$v=d,this},is_orphan:!1};return d},Object.defineProperty(i,"@",{enumerable:!0,configurable:!0,get:function(){return q(i["!"])?i["!"].$backtrace():e},set:function(b){q(i["!"])?i["!"].$set_backtrace(b):c(a.ArgumentError,"$! not set")}}),a.t_eval_return=a.thrower("return"),TypeError.$$super=Error,a.file_sources={}}).call(this),Opal.loaded(["corelib/runtime.js"]),Opal.modules["corelib/helpers"]=function(a){var j=a.type_error,k=a.coerce_to,l=a.module,b=a.defs,i=a.slice,h=a.eqeqeq,f=a.Kernel,e=a.truthy,g=a.Opal,c=a.nil,d=a.$$$;return a.add_stubs('===,raise,respond_to?,nil?,__send__,<=>,class,coerce_to!,new,to_s,__id__'),function(o){var m=l(o,'Opal'),n;return b(m,'$bridge',function(b,c){return a.bridge(b,c)}),b(m,'$coerce_to!',function(l,b,e,m){var g,d,a=c;return g=i(arguments,3),d=g,a=k(l,b,e,d),h(b,a)||f.$raise(j(l,b,e,a)),a},-4),b(m,'$coerce_to?',function(g,b,d,n){var m,l,a=c;return m=i(arguments,3),l=m,!e(g['$respond_to?'](d))?c:(a=k(g,b,d,l),e(a['$nil?']()))?c:(h(b,a)||f.$raise(j(g,b,d,a)),a)},-4),b(m,'$try_convert',function(a,d,b){return h(d,a)?a:e(a['$respond_to?'](b))?a.$__send__(b):c}),b(m,'$compare',function(b,g){var a=c;return a=b['$<=>'](g),e(a===c)&&f.$raise(d('ArgumentError'),"comparison of "+b.$class()+" with "+g.$class()+" failed"),a}),b(m,'$destructure',function(a){var c,b,d;if(a.length==1)return a[0];if(a.$$is_array)return a;c=new Array(a.length);for(b=0,d=c.length;b=0;d--)g=e[d],b=h.$$prototype[a.jsid(g)],b&&!b.$$stub&&(b.$$pristine=!0);return c},-2),n=[],b(m,'$inspect',function(b){var f=c,e;return e=!1,function(){try{try{return b===null?'null':b===void 0?'undefined':typeof b.$$class=='undefined'?Object.prototype.toString.apply(b):typeof b.$inspect!='function'||b.$inspect.$$stub?"#<"+b.$$class+":0x"+b.$__id__().$to_s(16)+">":n.indexOf(b.$__id__())!==-1?"#<"+b.$$class+":0x"+b.$__id__().$to_s(16)+">":(n.push(b.$__id__()),e=!0,b.$inspect());return c}catch(c){if(a.rescue(c,[d('Exception')])){f=c;try{return"#<"+b.$$class+":0x"+b.$__id__().$to_s(16)+">"}finally{a.pop_exception(c)}}else throw c}}finally{e&&n.pop()}}()},-1)}('::')},Opal.modules["corelib/module"]=function(a){var f=a.truthy,y=a.coerce_to,w=a.const_set,n=a.Object,E=a.return_ivar,F=a.assign_ivar,x=a.ivar,g=a.deny_frozen_access,G=a.freeze,I=a.prop,k=a.jsid,J=a.each_ivar,t=a.klass,i=a.Opal,e=a.Kernel,s=a.defs,j=a.send,b=a.def,l=a.eqeqeq,p=a.Module,r=a.rb_lt,z=a.rb_gt,h=a.slice,o=a.to_a,m=a.return_val,A=a.eqeq,B=a.not,C=a.rb_le,D=a.range,v=a.send2,u=a.find_super,q=a.alias,H=[],c=a.nil,d=a.$$$;return a.add_stubs('try_convert,raise,class,module_eval,to_proc,===,equal?,<,>,nil?,attr_reader,attr_writer,warn,attr_accessor,const_name?,class_variable_name!,pristine,const_name!,=~,new,inject,split,const_get,==,start_with?,!~,owner,!,<=,frozen?,append_features,included,name,cover?,size,merge,compile,proc,any?,prepend_features,prepended,to_s,__id__,constants,include?,copy_class_variables,copy_constants,copy_singleton_methods,class_exec,module_exec,inspect'),function(P,N,O){var H=t(P,N,'Module'),M=[H].concat(O),L=a.$r(M);function K(a){if(a.$$is_string)return a;var b=i.$try_convert(a,d('String'),"to_str");if(b.$$is_string)return b;b===c?e.$raise(d('TypeError'),""+a+" is not a symbol nor a string"):e.$raise(d('TypeError'),"can't convert "+a.$class()+" to String ("+a.$class()+"#to_str gives "+b.$class())}s(H,'$allocate',function(){var b=this,d=a.allocate_module(c,function(){});return b!==a.Module&&Object.setPrototypeOf(d,b.$$prototype),d}),b(H,'$initialize',function a(){var b=a.$$p||c,d=this;return a.$$p=null,b!==c?j(d,'module_eval',[],b.$to_proc()):c}),b(H,'$===',function(b){var c=this;return!f(b==null)&&a.is_a(b,c)}),b(H,'$<',function(h){var i=this,j,f,b,g;if(l(p,h)||e.$raise(d('TypeError'),"compared with non class/module"),j=i,j===h)return!1;for(b=0,f=a.ancestors(i),g=f.length;b',function(a){var b=this;return l(p,a)||e.$raise(d('TypeError'),"compared with non class/module"),r(a,b)}),b(H,'$>=',function(a){var b=this,d=c;return f(d=b['$equal?'](a))?d:z(b,a)}),b(H,'$<=>',function(a){var d=this,b=c;return d===a?0:l(p,a)?(b=r(d,a),f(b['$nil?']()))?c:f(b)?-1:1:c}),b(H,'$alias_method',function(b,c){var e=this;return g(e),b=y(b,d('String'),'to_str'),c=y(c,d('String'),'to_str'),a.alias(e,b,c),e}),b(H,'$alias_native',function(d,b){var c=this;return b==null&&(b=d),g(c),a.alias_native(c,d,b),c},-2),b(H,'$ancestors',function(){var b=this;return a.ancestors(b)}),b(H,'$append_features',function(b){var c=this;return g(b),a.append_features(c,b),c}),b(H,'$attr_accessor',function(e){var b,a,c=this;return b=h(arguments),a=b,j(c,'attr_reader',o(a)),j(c,'attr_writer',o(a))},-1),b(H,'$attr',function(f){var d,a,b=this;return d=h(arguments),a=d,a.length==2&&(a[1]===!0||a[1]===!1)?(b.$warn("optional boolean argument is obsoleted",new Map([["uplevel",1]])),a[1]?b.$attr_accessor(a[0]):b.$attr_reader(a[0]),c):j(b,'attr_reader',o(a))},-1),b(H,'$attr_reader',function(p){var j,d,e=this,m,b,i,n,l,f;j=h(arguments),d=j,g(e),m=e.$$prototype;for(b=d.length-1;b>=0;b--)i=d[b],n=k(i),l=x(i),f=E(l),a.prop(m,l,c),f.$$parameters=[],f.$$arity=0,a.defn(e,n,f);return c},-1),b(H,'$attr_writer',function(p){var j,d,e=this,m,b,i,n,l,f;j=h(arguments),d=j,g(e),m=e.$$prototype;for(b=d.length-1;b>=0;b--)i=d[b],n=k(i+'='),l=x(i),f=F(l),f.$$parameters=[['req']],f.$$arity=1,a.prop(m,l,c),a.defn(e,n,f);return c},-1),b(H,'$autoload',function(f,h){var b=this;return g(b),L('Opal')['$const_name?'](f)||e.$raise(d('NameError'),"autoload must be constant name: "+f),h==""&&e.$raise(d('ArgumentError'),"empty file name"),b.$$const.hasOwnProperty(f)||(b.$$autoload||(b.$$autoload={}),a.const_cache_version++,b.$$autoload[f]={path:h,loaded:!1,required:!1,success:!1,exception:!1},b.$const_added&&!b.$const_added.$$pristine&&b.$const_added(f)),c}),b(H,'$autoload?',function(a){var d=this,e,b,f;if(d.$$autoload&&d.$$autoload[a]&&!d.$$autoload[a].required&&!d.$$autoload[a].success)return d.$$autoload[a].path;e=d.$ancestors();for(b=0,f=e.length;b=0;f--)a=b[f],a.$$is_module||e.$raise(d('TypeError'),"wrong argument type "+a.$class()+" (expected Module)"),a.$append_features(c),a.$included(c);return c},-1),b(H,'$included_modules',function(){var b=this;return a.included_modules(b)}),b(H,'$include?',function(c){var h=this,b,i,f,g;c.$$is_module||e.$raise(d('TypeError'),"wrong argument type "+c.$class()+" (expected Module)"),g=a.ancestors(h);for(b=0,i=g.length;b=0;f--)a=b[f],a.$$is_module||e.$raise(d('TypeError'),"wrong argument type "+a.$class()+" (expected Module)"),a.$prepend_features(c),a.$prepended(c);return c},-1),b(H,'$prepend_features',function(c){var b=this;return g(c),b.$$is_module||e.$raise(d('TypeError'),"wrong argument type "+b.$class()+" (expected Module)"),a.prepend_features(b,c),b}),b(H,'$prepended',m(c)),b(H,'$remove_const',function(c){var b=this;return g(b),a.const_remove(b,c)}),b(H,'$to_s',function(){var b=this,d=c;return f(d=a.Module.$name.call(b))?d:"#<"+(b.$$is_module?'Module':'Class')+":0x"+b.$__id__().$to_s(16)+">"}),b(H,'$undef_method',function(i){var e,b,c=this,d,f;e=h(arguments),b=e;for(d=0;d=0;b--)a.append_features(c[b],e)}function S(d,e){for(var c=d.$$own_prepended_modules,b=c.length-1;b>=0;b--)a.prepend_features(c[b],e)}return b(H,'$initialize_copy',function(a){var b=this;return Q(a,b),R(a,b),S(a,b),b.$$cloned_from=a.$$cloned_from.concat(a),b.$copy_class_variables(a),b.$copy_constants(a)}),b(H,'$initialize_dup',function a(d){var e=a.$$p||c,b=this;return a.$$p=null,v(b,u(b,'initialize_dup',a,!1,!0),'initialize_dup',[d],e),b.$copy_singleton_methods(d)}),b(H,'$copy_class_variables',function(a){var c=this,b;for(b in a.$$cvars)c.$$cvars[b]=a.$$cvars[b]}),b(H,'$copy_constants',function(c){var d=this,b=c.$$const,a;for(a in b)w(d,a,b[a])}),b(H,'$refine',function i(k){var l=i.$$p||c,g,e=this,h=c,b=c,f=c;return i.$$p=null,g=[e,c,c],h=g[0],b=g[1],f=g[2],g,f=a.id(k),typeof e.$$refine_modules=="undefined"&&(e.$$refine_modules=Object.create(null)),typeof e.$$refine_modules[f]=="undefined"?b=e.$$refine_modules[f]=d('Refinement').$new():b=e.$$refine_modules[f],b.refinement_module=h,b.refined_class=k,j(b,'class_exec',[],l.$to_proc()),b}),b(H,'$refinements',function(){var d=this,a=d.$$refine_modules,b=new Map,c;if(typeof a=="undefined")return b;for(c in a)b['$[]='](a[c].refined_class,a[c]);return b}),b(H,'$using',function(b){return e.$raise("Module#using is not permitted in methods")}),q(H,"class_eval","module_eval"),q(H,"class_exec","module_exec"),q(H,"inspect","to_s")}('::',null,H),function(e,g){var a=t(e,g,'Refinement'),d=a.$$prototype;return d.refinement_module=d.refined_class=c,a.$attr_reader("refined_class"),b(a,'$inspect',function b(){var d=b.$$p||c,a=this;return b.$$p=null,f(a.refinement_module)?"#":v(a,u(a,'inspect',b,!1,!0),'inspect',[],d)})}('::',p)},Opal.modules["corelib/class"]=function(a){var s=a.klass,f=a.send,k=a.defs,c=a.def,i=a.ensure_kwargs,h=a.hash_get,d=a.eqeq,e=a.truthy,j=a.rb_plus,g=a.return_val,l=a.slice,m=a.send2,n=a.find_super,o=a.Kernel,p=a.alias,q=a.top,r=[],b=a.nil,t=a.$$$;return a.add_stubs('require,class_eval,to_proc,==,nil?,raise,class,copy_instance_variables,copy_singleton_methods,initialize_clone,frozen?,freeze,initialize_dup,+,subclasses,flatten,map,allocate,name,to_s'),q.$require("corelib/module"),function(u,v,w){var q=s(u,v,'Class'),x=[q].concat(w),r=a.$r(x);return k(q,'$new',function e(c){var g=e.$$p||b,d;if(e.$$p=null,c==null&&(c=r('Object')),!c.$$is_class)throw a.TypeError.$new("superclass must be a Class");return d=a.allocate_class(b,c),c.$inherited(d),g!==b?f(d,'class_eval',[],g.$to_proc()):b,d},-1),c(q,'$allocate',function(){var c=this,b=new c.$$constructor;return b.$$id=a.uid(),b}),c(q,'$clone',function(j){var c,f=this,g=b;return j=i(j),c=h(j,"freeze"),c==null&&(c=b),e(c['$nil?']())||d(c,!0)||d(c,!1)||f.$raise(r('ArgumentError'),"unexpected value for freeze: "+c.$class()),g=a.allocate_class(b,f.$$super),g.$copy_instance_variables(f),g.$copy_singleton_methods(f),g.$initialize_clone(f,new Map([["freeze",c]])),(d(c,!0)||e(c['$nil?']())&&e(f['$frozen?']()))&&g.$freeze(),g},-1),c(q,'$dup',function(){var d=this,c=b;return c=a.allocate_class(b,d.$$super),c.$copy_instance_variables(d),c.$initialize_dup(d),c}),c(q,'$descendants',function(){var a=this;return j(a.$subclasses(),f(a.$subclasses(),'map',[],"descendants".$to_proc()).$flatten())}),c(q,'$inherited',g(b)),c(q,'$new',function f(i){var g=f.$$p||b,d,e,h=this,c;return f.$$p=null,d=l(arguments),e=d,c=h.$allocate(),a.send(c,c.$initialize,e,g),c},-1),c(q,'$subclasses',function(){var b=this,a,c,d;if(typeof WeakRef!='undefined'){d=[];for(a=0;a":c?"#>":m(e,n(e,'to_s',d,!1,!0),'to_s',[],null)}),c(q,'$attached_object',function(){var a=this;if(a.$$singleton_of!=null)return a.$$singleton_of;o.$raise(t('TypeError'),"`"+a+"' is not a singleton class")}),p(q,"inspect","to_s")}('::',null,r)},Opal.modules["corelib/basic_object"]=function(b){"use strict";var o=b.klass,e=b.slice,c=b.def,j=b.alias,i=b.return_val,h=b.Opal,d=b.truthy,p=b.range,f=b.Kernel,k=b.to_a,l=b.send,m=b.eqeq,n=b.rb_ge,a=b.nil,g=b.$$$;return b.add_stubs('==,raise,inspect,pristine,!,nil?,cover?,size,merge,compile,proc,[],first,>=,length,instance_variable_get,any?,new,caller'),function(r,s){var q=o(r,s,'BasicObject');return c(q,'$initialize',function(f){var b,c;return b=e(arguments),c=b,a},-1),c(q,'$==',function(a){var b=this;return b===a}),c(q,'$eql?',function(a){var b=this;return b['$=='](a)}),j(q,"equal?","=="),c(q,'$__id__',function(){var a=this;return a.$$id!=null?a.$$id:(b.prop(a,'$$id',b.uid()),a.$$id)}),c(q,'$__send__',function k(f,l){var d=k.$$p||a,j,h,c=this,i;return k.$$p=null,j=e(arguments,1),h=j,f.$$is_string||c.$raise(g('TypeError'),""+c.$inspect()+" is not a symbol nor a string"),i=c[b.jsid(f)],i?(d!==a&&(i.$$p=d),i.apply(c,h)):(d!==a&&(c.$method_missing.$$p=d),c.$method_missing.apply(c,[f].concat(h)))},-2),c(q,'$!',i(!1)),h.$pristine("!"),c(q,'$!=',function(a){var b=this;return b['$=='](a)['$!']()}),c(q,'$instance_eval',function y(B){var j=y.$$p||a,s,o,i,c=this,t=a,r=a,z=a,w=a,x=a,v=a,u=a,A,q;if(y.$$p=null,s=e(arguments),o=s,d(j['$nil?']())&&d(!!b.compile))d(p(1,3,!1)['$cover?'](o.$size()))||f.$raise(g('ArgumentError'),"wrong number of arguments (0 for 1..3)"),i=[].concat(k(o)),t=i[0]==null?a:i[0],r=i[1]==null?a:i[1],z=i[2]==null?a:i[2],i,w=new Map([["file",d(x=r)?x:"(eval)"],["eval",!0]]),v=new Map([['arity_check',!1]]).$merge(w),u=h.$compile(t,v),j=l(f,'proc',[],function a(){var c=a.$$s==null?this:a.$$s;return new Function("Opal,self","return "+u)(b,c)},{$$s:c});else if(d(j['$nil?']())&&d(n(o.$length(),1))&&m(o.$first()['$[]'](0),"@"))return c.$instance_variable_get(o.$first());else d(o['$any?']())&&f.$raise(g('ArgumentError'),"wrong number of arguments ("+o.$size()+" for 0)");if(A=j.$$s,j.$$s=null,c.$$is_a_module){c.$$eval=!0;try{q=j.call(c,c)}finally{c.$$eval=!1}}else q=j.call(c,c);return j.$$s=A,q},-1),c(q,'$instance_exec',function j(m){var b=j.$$p||a,k,i,c=this,l,h;if(j.$$p=null,k=e(arguments),i=k,d(b)||f.$raise(g('ArgumentError'),"no block given"),l=b.$$s,b.$$s=null,c.$$is_a_module){c.$$eval=!0;try{h=b.apply(c,i)}finally{c.$$eval=!1}}else h=b.apply(c,i);return b.$$s=l,h},-1),c(q,'$singleton_method_added',function(f){var b,c;return b=e(arguments),c=b,a},-1),c(q,'$singleton_method_removed',function(f){var b,c;return b=e(arguments),c=b,a},-1),c(q,'$singleton_method_undefined',function(f){var b,c;return b=e(arguments),c=b,a},-1),c(q,'$method_missing',function b(c,l){var m=b.$$p||a,d,i,k=this,j=a;return b.$$p=null,d=e(arguments,1),i=d,j=h.$inspect(k),f.$raise(g('NoMethodError').$new("undefined method `"+c+"' for "+j,c,i),a,f.$caller(1))},-2),h.$pristine(q,"method_missing"),c(q,'$respond_to_missing?',function(c,a){return a==null&&(a=!1),!1},-2)}('::',null)},Opal.modules["corelib/kernel"]=function(b){"use strict";var f=b.truthy,q=b.coerce_to,u=b.respond_to,i=b.Opal,v=b.deny_frozen_access,B=b.freeze,C=b.freeze_props,t=b.jsid,G=b.each_ivar,F=b.module,p=b.return_val,c=b.def,g=b.Kernel,e=b.gvars,j=b.slice,h=b.send,k=b.to_a,m=b.ensure_kwargs,n=b.hash_get,o=b.eqeq,x=b.rb_plus,w=b.extract_kwargs,y=b.eqeqeq,r=b.return_self,z=b.rb_le,A=b.rb_lt,s=b.Object,l=b.alias,D=b.klass,E=[],a=b.nil,d=b.$$$;return b.add_stubs('!,=~,==,object_id,raise,new,class,coerce_to?,<<,map,caller,nil?,allocate,copy_instance_variables,copy_singleton_methods,initialize_clone,frozen?,freeze,initialize_copy,define_method,singleton_class,to_proc,initialize_dup,for,empty?,pop,call,append_features,extend_object,extended,gets,__id__,include?,each,instance_variables,instance_variable_get,inspect,+,to_s,instance_variable_name!,respond_to?,to_int,to_i,Integer,coerce_to!,===,enum_for,result,shift,write,format,puts,<=,length,[],print,readline,<,first,split,to_str,exception,rand,respond_to_missing?,pristine,try_convert!,expand_path,join,start_with?,new_seed,srand,tag,value,open,is_a?,__send__,yield_self,include'),function(I,J){var D=F(I,'Kernel'),K=[D].concat(J),E=b.$r(K),H;return c(D,'$=~',p(!1)),c(D,'$!~',function(a){var b=this;return b['$=~'](a)['$!']()}),c(D,'$===',function(b){var c=this,d=a;return f(d=c.$object_id()['$=='](b.$object_id()))?d:c['$=='](b)}),c(D,'$<=>',function(d){var b=this,c;return b.$$comparable=!0,c=b['$=='](d),c&&c!==a?0:a}),c(D,'$method',function(a){var b=this,c=b[t(a)];return(!c||c.$$stub)&&g.$raise(d('NameError').$new("undefined method `"+a+"' for class `"+b.$class()+"'",a)),d('Method').$new(b,c.$$owner||b.$class(),c,a)}),c(D,'$methods',function(a){var c=this;return a==null&&(a=!0),f(a)?b.methods(c):b.own_methods(c)},-1),c(D,'$public_methods',function(a){var c=this;return a==null&&(a=!0),f(a)?b.methods(c):b.receiver_methods(c)},-1),c(D,'$Array',function(b){var c;return b===a?[]:b.$$is_array?b:(c=i['$coerce_to?'](b,d('Array'),"to_ary"),c!==a)?c:(c=i['$coerce_to?'](b,d('Array'),"to_a"),c!==a)?c:[b]}),c(D,'$at_exit',function b(){var c=b.$$p||a,d=a;return e.__at_exit__==null&&(e.__at_exit__=a),b.$$p=null,e.__at_exit__=f(d=e.__at_exit__)?d:[],e.__at_exit__['$<<'](c),c}),c(D,'$caller',function(f,e){var c,b,d,g;f==null&&(f=1),e==null&&(e=a),c=(new Error).$backtrace(),b=[];for(d=f+1,g=c.length;d0&&(c=b.shift()),c==null&&(c="each"),f=b,h(d('Enumerator'),'for',[g,c].concat(k(f)),i.$to_proc())},-1),c(D,'$equal?',function(a){var b=this;return b===a}),c(D,'$exit',function(c){var g=a,h=a;for(e.__at_exit__==null&&(e.__at_exit__=a),c==null&&(c=!0),e.__at_exit__=f(g=e.__at_exit__)?g:[];!f(e.__at_exit__['$empty?']());)h=e.__at_exit__.$pop(),h.$call();return c.$$is_boolean?c=c?0:1:c=q(c,d('Integer'),'to_int'),b.exit(c),a},-1),c(D,'$extend',function(k){var f,c,a=this,h,e,b;f=j(arguments),c=f,c.length==0&&a.$raise(d('ArgumentError'),"wrong number of arguments (given 0, expected 1+)"),v(a),h=a.$singleton_class();for(e=c.length-1;e>=0;e--)b=c[e],b.$$is_module||g.$raise(d('TypeError'),"wrong argument type "+b.$class()+" (expected Module)"),b.$append_features(h),b.$extend_object(a),b.$extended(a);return a},-1),c(D,'$freeze',function(){var a=this;return f(a['$frozen?']())?a:typeof a=="object"?(C(a),B(a)):a}),c(D,'$frozen?',function(){var a=this;switch(typeof a){case"string":case"symbol":case"number":case"boolean":return!0;case"object":return a.$$frozen||!1;default:return!1}}),c(D,'$gets',function(f){var b,c;return e.stdin==null&&(e.stdin=a),b=j(arguments),c=b,h(e.stdin,'gets',k(c))},-1),c(D,'$hash',function(){var a=this;return a.$__id__()}),c(D,'$initialize_copy',p(a)),H=[],c(D,'$inspect',function(){var c=this,d=a,e=a,g=a,i=a;return function(){try{try{return d="",e=c.$__id__(),f(H['$include?'](e))?d=" ...":(H['$<<'](e),g=!0,h(c.$instance_variables(),'each',[],function c(b){var g=c.$$s==null?this:c.$$s,e=a,f=a;return b==null&&(b=a),e=g.$instance_variable_get(b),f=E('Opal').$inspect(e),d=x(d," "+b+"="+f)},{$$s:c})),"#<"+c.$class()+":0x"+e.$to_s(16)+d+">"}catch(a){if(b.rescue(a,[E('StandardError')])){i=a;try{return"#<"+c.$class()+":0x"+e.$to_s(16)+">"}finally{b.pop_exception(a)}}else throw a}}finally{f(g)?H.$pop():a}}()}),c(D,'$instance_of?',function(a){var b=this;return!a.$$is_class&&!a.$$is_module&&g.$raise(d('TypeError'),"class or module required"),b.$$class===a}),c(D,'$instance_variable_defined?',function(a){var c=this;return a=i['$instance_variable_name!'](a),b.hasOwnProperty.call(c,a.substr(1))}),c(D,'$instance_variable_get',function(c){var e=this,d;return c=i['$instance_variable_name!'](c),d=e[b.ivar(c.substr(1))],d==null?a:d}),c(D,'$instance_variable_set',function(a,d){var c=this;return v(c),a=i['$instance_variable_name!'](a),c[b.ivar(a.substr(1))]=d}),c(D,'$remove_instance_variable',function(a){var c=this,e,f;return a=i['$instance_variable_name!'](a),e=b.ivar(a.substr(1)),c.hasOwnProperty(e)?(f=c[e],delete c[e],f):g.$raise(d('NameError'),"instance variable "+a+" not defined")}),c(D,'$instance_variables',function(){var b=this,a=[],d;return G(b,function(b){b.substr(-1)==='$'&&(b=b.slice(0,b.length-1)),a.push('@'+b)}),a}),c(D,'$Integer',function(e,s,t){var l=j(arguments,1),o=w(l),c,h,i,k,p;if(o=m(o),l.length>0&&(c=l.shift()),h=n(o,"exception"),h==null&&(h=!0),h=f(h),!e.$$is_string){if(c!==void 0)if(h)g.$raise(d('ArgumentError'),"base specified for non string value");else return a;if(e===a)if(h)g.$raise(d('TypeError'),"can't convert nil into Integer");else return a;if(e.$$is_number){if(e===1/0||e===-(1/0)||isNaN(e))if(h)g.$raise(d('FloatDomainError'),e);else return a;return Math.floor(e)}if(e['$respond_to?']("to_int"))if(i=e.$to_int(),b.is_a(i,d('Integer')))return i;if(e['$respond_to?']("to_i"))if(i=e.$to_i(),b.is_a(i,d('Integer')))return i;if(h)g.$raise(d('TypeError'),"can't convert "+e.$class()+" into Integer");else return a}if(e==="0")return 0;if(c===void 0)c=0;else if(c=q(c,d('Integer'),'to_int'),c===1||c<0||c>36)if(h)g.$raise(d('ArgumentError'),"invalid radix "+c);else return a;if(k=e.toLowerCase(),k=k.replace(/(\d)_(?=\d)/g,'$1'),k=k.replace(/^(\s*[+-]?)(0[bodx]?)/,function(i,b,f){switch(f){case'0b':if(c===0||c===2)return c=2,b;case'0':case'0o':if(c===0||c===8)return c=8,b;case'0d':if(c===0||c===10)return c=10,b;case'0x':if(c===0||c===16)return c=16,b}if(h)g.$raise(d('ArgumentError'),'invalid value for Integer(): "'+e+'"');else return a}),c=c===0?10:c,p='0-'+(c<=10?c-1:'9a-'+String.fromCharCode(97+(c-11))),!new RegExp('^\\s*[+-]?['+p+']+\\s*$').test(k))if(h)g.$raise(d('ArgumentError'),'invalid value for Integer(): "'+e+'"');else return a;if(i=parseInt(k,c),isNaN(i))if(h)g.$raise(d('ArgumentError'),'invalid value for Integer(): "'+e+'"');else return a;return i},-2),c(D,'$Float',function(e,h){var b,c;if(h=m(h),b=n(h,"exception"),b==null&&(b=!0),b=f(b),e===a)if(b)g.$raise(d('TypeError'),"can't convert nil into Float");else return a;if(e.$$is_string){if(c=e.toString(),c=c.replace(/(\d)_(?=\d)/g,'$1'),/^\s*[-+]?0[xX][0-9a-fA-F]+\s*$/.test(c))return g.$Integer(c);if(!/^\s*[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?\s*$/.test(c))if(b)g.$raise(d('ArgumentError'),'invalid value for Float(): "'+e+'"');else return a;return parseFloat(c)}return b?i['$coerce_to!'](e,d('Float'),"to_f"):q(e,d('Float'),'to_f')},-2),c(D,'$Hash',function(a){return f(a['$nil?']())||o(a,[])?new Map:y(d('Hash'),a)?a:i['$coerce_to!'](a,d('Hash'),"to_hash")}),c(D,'$is_a?',function(a){var c=this;return!a.$$is_class&&!a.$$is_module&&g.$raise(d('TypeError'),"class or module required"),b.is_a(c,a)}),c(D,'$itself',r),c(D,'$lambda',function c(){var d=c.$$p||a;return c.$$p=null,b.lambda(d)}),c(D,'$load',function(a){return a=i['$coerce_to!'](a,d('String'),"to_str"),b.load(a)}),c(D,'$loop',function c(){var e=c.$$p||a,g=this,i=a;if(c.$$p=null,!(e!==a))return h(g,'enum_for',["loop"],function(){return d(d('Float'),'INFINITY')});while(f(!0))try{b.yieldX(e,[])}catch(a){if(b.rescue(a,[d('StopIteration')])){i=a;try{return i.$result()}finally{b.pop_exception(a)}}else throw a}return g}),c(D,'$nil?',p(!1)),c(D,'$printf',function(l){var c,b,g=this,d=a;return e.stdout==null&&(e.stdout=a),c=j(arguments),b=c,f(b['$empty?']())?a:(d=f(b[0].$$is_string)?e.stdout:b.$shift(),d.$write(h(g,'format',k(b))),a)},-1),c(D,'$proc',function c(){var b=c.$$p||a;return c.$$p=null,f(b)||g.$raise(d('ArgumentError'),"tried to create Proc object without a block"),b.$$is_lambda=!1,b}),c(D,'$puts',function(f){var b,c;return e.stdout==null&&(e.stdout=a),b=j(arguments),c=b,h(e.stdout,'puts',k(c))},-1),c(D,'$p',function(g){var c,b;return c=j(arguments),b=c,h(b,'each',[],function(b){return e.stdout==null&&(e.stdout=a),b==null&&(b=a),e.stdout.$puts(b.$inspect())}),f(z(b.$length(),1))?b['$[]'](0):b},-1),c(D,'$print',function(f){var b,c;return e.stdout==null&&(e.stdout=a),b=j(arguments),c=b,h(e.stdout,'print',k(c))},-1),c(D,'$readline',function(f){var b,c;return e.stdin==null&&(e.stdin=a),b=j(arguments),c=b,h(e.stdin,'readline',k(c))},-1),c(D,'$warn',function(u,v){var r,q,l,b,o,p,s=this,c=a;return e.VERBOSE==null&&(e.VERBOSE=a),e.stderr==null&&(e.stderr=a),r=j(arguments),q=w(r),q=m(q),l=r,b=n(q,"uplevel"),b==null&&(b=a),f(b)&&(b=i['$coerce_to!'](b,d('Integer'),"to_str"),f(A(b,0))&&g.$raise(d('ArgumentError'),"negative level ("+b+")"),c=(o=(p=s.$caller(x(b,1),1).$first(),p===a||p==null?a:p.$split(":in `")),o===a||o==null?a:o.$first()),f(c)&&(c=""+c+": "),l=h(l,'map',[],function(b){return b==null&&(b=a),""+c+"warning: "+b})),f(e.VERBOSE['$nil?']())||f(l['$empty?']())?a:h(e.stderr,'puts',k(l))},-1),c(D,'$raise',function(c,g,f){throw e["!"]==null&&(e["!"]=a),g==null&&(g=a),f==null&&(f=a),c==null&&e["!"]!==a?e["!"]:(c==null?c=d('RuntimeError').$new(""):u(c,'$to_str')?c=d('RuntimeError').$new(c.$to_str()):c.$$is_class&&u(c,'$exception')?c=c.$exception(g):c.$$is_exception||(c=d('TypeError').$new("exception class/object expected")),f!==a&&c.$set_backtrace(f),e["!"]!==a&&b.exceptions.push(e["!"]),e["!"]=c,c)},-1),c(D,'$rand',function(a){return a===void 0?d(d('Random'),'DEFAULT').$rand():(a.$$is_number&&(a<0&&(a=Math.abs(a)),a%1!==0&&(a=a.$to_i()),a===0&&(a=void 0)),d(d('Random'),'DEFAULT').$rand(a))},-1),c(D,'$respond_to?',function(c,a){var b=this,d;return!!(a==null&&(a=!1),d=b[t(c)],typeof d=="function"&&!d.$$stub)||(b['$respond_to_missing?'].$$pristine!==!0&&b['$respond_to_missing?'](c,a))},-2),c(D,'$respond_to_missing?',function(c,a){return a==null&&(a=!1),!1},-2),i.$pristine(D,"respond_to?","respond_to_missing?"),c(D,'$require',function(a){return typeof a!='string'&&b.String&&b.Array&&(a=i['$coerce_to!'](a,d('String'),"to_str")),b.require(a)}),c(D,'$require_relative',function(a){return i['$try_convert!'](a,d('String'),"to_str"),a=d('File').$expand_path(d('File').$join(b.current_file,"..",a)),b.require(a)}),c(D,'$require_tree',function(a,f){var c,g,e;f=m(f),c=n(f,"autoload"),c==null&&(c=!1),g=[],a=d('File').$expand_path(a),a=b.normalize(a),a==='.'&&(a='');for(e in b.modules)e['$start_with?'](a)&&(c?g.push([e,!0]):g.push([e,b.require(e)]));return g},-2),c(D,'$singleton_class',function(){var a=this;return b.get_singleton_class(a)}),c(D,'$sleep',function(c){var e,f;for(c==null&&(c=a),c===a&&g.$raise(d('TypeError'),"can't convert NilClass into time interval"),c.$$is_number||g.$raise(d('TypeError'),"can't convert "+c.$class()+" into time interval"),c<0&&g.$raise(d('ArgumentError'),"time interval must be positive"),e=b.global.performance?function(){return performance.now()}:function(){return new Date},f=e();e()-f<=c*1e3;);return Math.round(c)},-1),c(D,'$srand',function(a){return a==null&&(a=E('Random').$new_seed()),d('Random').$srand(a)},-1),c(D,'$String',function(b){var c=a;return f(c=i['$coerce_to?'](b,d('String'),"to_str"))?c:i['$coerce_to!'](b,d('String'),"to_s")}),c(D,'$tap',function c(){var e=c.$$p||a,d=this;return c.$$p=null,b.yield1(e,d),d}),c(D,'$to_proc',r),c(D,'$to_s',function(){var a=this;return"#<"+a.$class()+":0x"+a.$__id__().$to_s(16)+">"}),c(D,'$catch',function h(c){var j=h.$$p||a,i=a,e=a;h.$$p=null,c==null&&(c=a);try{return c=f(i=c)?i:s.$new(),b.yield1(j,c)}catch(a){if(b.rescue(a,[d('UncaughtThrowError')])){e=a;try{return o(e.$tag(),c)?e.$value():g.$raise()}finally{b.pop_exception(a)}}else throw a}},-1),c(D,'$throw',function(c,b){return b==null&&(b=a),g.$raise(d('UncaughtThrowError').$new(c,b))},-2),c(D,'$open',function b(g){var f=b.$$p||a,c,e;return b.$$p=null,c=j(arguments),e=c,h(d('File'),'open',k(e),f.$to_proc())},-1),c(D,'$yield_self',function c(){var d=c.$$p||a,e=this;return c.$$p=null,!(d!==a)?h(e,'enum_for',["yield_self"],p(1)):b.yield1(d,e)}),l(D,"fail","raise"),l(D,"kind_of?","is_a?"),l(D,"object_id","__id__"),l(D,"public_send","__send__"),l(D,"send","__send__"),l(D,"then","yield_self"),l(D,"to_enum","enum_for")}('::',E),function(a,b){var c=D(a,b,'Object');return delete s.$$prototype.$require,c.$include(g)}('::',null)},Opal.modules["corelib/main"]=function(a){var c=a.return_val,b=a.def,d=a.Object,e=a.slice,f=a.Kernel,g=a.top,h=[],i=a.nil;return a.add_stubs('include,raise'),function(g,h){return b(g,'$to_s',c("main")),b(g,'$include',function(a){return d.$include(a)}),b(g,'$autoload',function(f){var b,c;return b=e(arguments),c=b,a.Object.$autoload.apply(a.Object,c)},-1),b(g,'$using',function(b){return f.$raise("main.using is permitted only at toplevel")})}(a.get_singleton_class(g),h)},Opal.modules["corelib/error/errno"]=function(a){var e=a.module,i=a.truthy,j=a.rb_plus,f=a.send2,g=a.find_super,d=a.def,h=a.klass,c=[],b=a.nil,k=a.$$$;return a.add_stubs('+,errno,class,attr_reader'),function(o,m){var l=e(o,'Errno'),n=[l].concat(m),h=b,k=b,c;h=[["EINVAL","Invalid argument",22],["EEXIST","File exists",17],["EISDIR","Is a directory",21],["EMFILE","Too many open files",24],["ESPIPE","Illegal seek",29],["EACCES","Permission denied",13],["EPERM","Operation not permitted",1],["ENOENT","No such file or directory",2],["ENAMETOOLONG","File name too long",36]],k=b;for(c=0;c0?c[0]:a,b=new f.$$constructor(g),b.name=f.$$name,b.message=g,b.cause=i["!"],d.send(b,b.$initialize,c),d.config.enable_stack_trace&&Error.captureStackTrace&&Error.captureStackTrace(b,p),b},-1),p=m.$new,o(m,'$exception',function(e){var a,b,c=this;return a=n(arguments),b=a,l(c,'new',s(b))},-1),e(m,'$initialize',function(f){var c,b,d=this;return c=n(arguments),b=c,d.message=b.length>0?b[0]:a},-1),e(m,'$copy_instance_variables',function d(c){var e=d.$$p||a,b=this;d.$$p=null,g(b,h(b,'copy_instance_variables',d,!1,!0),'copy_instance_variables',[c],e),b.message=c.message,b.cause=c.cause,b.stack=c.stack});function q(e){for(var c=[],d=0,a,b;d"}),e(m,'$set_backtrace',function(c){var d=this,f=!0,e,g;if(c===a)d.backtrace=a,d.stack='';else if(c.$$is_string)d.backtrace=[c],d.stack=' from '+c;else{if(c.$$is_array){for(e=0,g=c.length;e,length,Rational,to_i'),function(p,q,r){var m=n(p,q,'NilClass'),s=[m].concat(r);return m.$$prototype.$$meta=m,function(c,g){return a(c,'$allocate',function(){var a=this;return e.$raise(f('TypeError'),"allocator undefined for "+a.$name())}),b.udef(c,'$new'),d}(b.get_singleton_class(m),s),a(m,'$!',c(!0)),a(m,'$&',c(!1)),a(m,'$|',function(a){return a!==!1&&a!==d}),a(m,'$^',function(a){return a!==!1&&a!==d}),a(m,'$==',function(a){return a===d}),a(m,'$dup',c(d)),a(m,'$clone',function(a){var b;return a=h(a),b=g(a,"freeze"),b==null&&(b=!0),d},-1),a(m,'$inspect',c("nil")),a(m,'$nil?',c(!0)),a(m,'$singleton_class',function(){return o}),a(m,'$to_a',function(){return[]}),a(m,'$to_h',function(){return new Map}),a(m,'$to_i',c(0)),a(m,'$to_s',c("")),a(m,'$to_c',function(){return f('Complex').$new(0,0)}),a(m,'$rationalize',function(d){var a,b;return a=i(arguments),b=a,j(k(b.$length(),1))&&e.$raise(f('ArgumentError')),e.$Rational(0,1)},-1),a(m,'$to_r',function(){return e.$Rational(0,1)}),a(m,'$instance_variables',function(){return[]}),l(m,"to_f","to_i")}('::',null,m)},Opal.modules["corelib/boolean"]=function(a){"use strict";var e=a.klass,o=a.Kernel,b=a.def,m=a.return_self,i=a.ensure_kwargs,g=a.hash_get,h=a.slice,p=a.truthy,j=a.send2,k=a.find_super,l=a.to_a,d=a.alias,n=[],c=a.nil,f=a.$$$;return a.add_stubs('raise,name,==,to_s,__id__'),function(v,s,t){var n=e(v,s,'Boolean'),u=[n].concat(t),r,q;a.prop(n.$$prototype,'$$is_boolean',!0),r=['$$class','$$meta'];for(q=0;q,<,===,raise,class,<=>,equal?'),function(o){var k=j(o,'Comparable'),m=b;function n(b){return a.is_a(b,a.Integer)?b:i(b,0)?1:h(b,0)?-1:0}function p(f,a){var c;e(b,m=a)||e(!0,m)||e(!1,m)||e(d('Integer'),m)||e(d('Float'),m)?c=a.$inspect():c=a.$$class,g.$raise(d('ArgumentError'),"comparison of "+f.$class()+" with "+c+" failed")}function l(a,b){var c=a['$<=>'](b);return f(c)||p(a,b),n(c)}return c(k,'$==',function(d){var c=this,e=b;return!!f(c['$equal?'](d))||(c["$<=>"]!=a.Kernel["$<=>"]&&(c.$$comparable?(c.$$comparable=!1,!1):!!f(e=c['$<=>'](d))&&n(e)==0))}),c(k,'$>',function(a){var b=this;return l(b,a)>0}),c(k,'$>=',function(a){var b=this;return l(b,a)>=0}),c(k,'$<',function(a){var b=this;return l(b,a)<0}),c(k,'$<=',function(a){var b=this;return l(b,a)<=0}),c(k,'$between?',function(b,c){var a=this;return!f(h(a,b))&&(!f(i(a,c)))}),c(k,'$clamp',function(c,e){var h=this,f,i;if(e==null&&(e=b),e===b&&(a.is_a(c,a.Range)||g.$raise(d('TypeError'),"wrong argument type "+c.$class()+" (expected Range)"),i=c.excl,e=c.end,c=c.begin,e!==b&&i&&g.$raise(d('ArgumentError'),"cannot clamp with an exclusive range")),c!==b&&e!==b&&l(c,e)>0&&g.$raise(d('ArgumentError'),"min argument must be smaller than max argument"),c!==b){if(f=l(h,c),f==0)return h;if(f<0)return c}if(e!==b)if(f=l(h,e),f>0)return e;return h},-2)}('::')},Opal.modules["corelib/regexp"]=function(b){var i=b.coerce_to,p=b.prop,v=b.freeze,l=b.klass,o=b.const_set,A=b.send2,z=b.find_super,c=b.def,f=b.truthy,d=b.gvars,m=b.slice,g=b.Kernel,n=b.Opal,j=b.alias,h=b.send,q=b.regexp,r=b.rb_plus,s=b.ensure_kwargs,t=b.hash_get,u=b.rb_ge,B=b.to_a,w=b.eqeqeq,x=b.rb_minus,y=b.return_ivar,k=[],a=b.nil,e=b.$$$;return b.add_stubs('nil?,[],raise,escape,options,to_str,new,join,coerce_to!,!,match,coerce_to?,begin,frozen?,uniq,map,scan,source,to_proc,transform_values,group_by,each_with_index,+,last,=~,==,attr_reader,>=,length,is_a?,include?,names,regexp,named_captures,===,captures,-,inspect,empty?,each,to_a'),l('::',e('StandardError'),'RegexpError'),function(u,w,x){var k=l(u,w,'Regexp'),s=[k].concat(x),t=b.$r(s);return o(k,'IGNORECASE',1),o(k,'EXTENDED',2),o(k,'MULTILINE',4),b.prop(k.$$prototype,'$$is_regexp',!0),function(h,l){var o=[h].concat(l),k=b.$r(o);return c(h,'$allocate',function b(){var e=b.$$p||a,d=this,c=a;return b.$$p=null,c=A(d,z(d,'allocate',b,!1,!0),'allocate',[],e),c.uninitialized=!0,c}),c(h,'$escape',function(a){return a=i(a,e('String'),'to_str'),b.escape_regexp(a)}),c(h,'$last_match',function(b){return d["~"]==null&&(d["~"]=a),b==null&&(b=a),f(b['$nil?']())?d["~"]:f(d["~"])?d["~"]['$[]'](b):a},-1),c(h,'$union',function(n){var k,a,f=this,h,c,b,d,i,j;if(k=m(arguments),a=k,a.length==0)return/(?!)/;if(a.length==1&&a[0].$$is_regexp)return a[0];h=a[0].$$is_array,a.length>1&&h&&g.$raise(e('TypeError'),"no implicit conversion of Array into String"),h&&(a=a[0]),d=void 0,c=[];for(j=0;j=f)return d["~"]=e('MatchData').$new(l,h),j===a?d["~"]:b.yield1(j,d["~"]);l.lastIndex=h.index+1}},-2),c(k,'$match?',function(c,d){var f=this,h,j;if(f.uninitialized&&g.$raise(e('TypeError'),"uninitialized Regexp"),d===void 0)return c!==a&&f.test(i(c,e('String'),'to_str'));if(d=i(d,e('Integer'),'to_int'),c===a)return!1;if(c=i(c,e('String'),'to_str'),d<0)if(d+=c.length,d<0)return!1;return!(j=b.global_regexp(f),h=j.exec(c),h===null||h.index"]),new Map([["no_matchdata",!0]])),'map',[],"first".$to_proc()).$uniq()}),c(k,'$named_captures',function(){var b=this;return h(h(h(b.$source().$scan(q(["\\(?<(\\w+)>"]),new Map([["no_matchdata",!0]])),'map',[],"first".$to_proc()).$each_with_index(),'group_by',[],"first".$to_proc()),'transform_values',[],function(b){return b==null&&(b=a),h(b,'map',[],function(b){return b==null&&(b=a),r(b.$last(),1)})})}),c(k,'$~',function(){var b=this;return d._==null&&(d._=a),b['$=~'](d._)}),c(k,'$source',function(){var a=this;return a.source}),c(k,'$options',function(){var a=this,b;return a.uninitialized&&g.$raise(e('TypeError'),"uninitialized Regexp"),b=0,a.multiline&&(b|=t('MULTILINE')),a.ignoreCase&&(b|=t('IGNORECASE')),b}),c(k,'$casefold?',function(){var a=this;return a.ignoreCase}),j(k,"eql?","=="),j(k,"to_s","source")}('::',RegExp,k),function(k,o,p){var i=l(k,o,'MatchData'),q=[i].concat(p),r=b.$r(q),v=i.$$prototype;return v.matches=a,i.$attr_reader("post_match","pre_match","regexp","string"),c(i,'$initialize',function(j,b,h){var e,c=this,g,k,i;h=s(h),e=t(h,"no_matchdata"),e==null&&(e=!1),f(e)||(d["~"]=c),c.regexp=j,c.begin=b.index,c.string=b.input,c.pre_match=b.input.slice(0,b.index),c.post_match=b.input.slice(b.index+b[0].length),c.matches=[];for(g=0,k=b.length;g"}),c(i,'$length',function(){var a=this;return a.matches.length}),c(i,'$to_a',y("matches")),c(i,'$to_s',function(){var a=this;return a.matches[0]}),c(i,'$values_at',function(k){var i,c,h=this,b,f,d,g;i=m(arguments),c=i,g=[];for(b=0;b,==,=~,new,force_encoding,casecmp,empty?,ljust,ceil,/,+,rjust,floor,coerce_to!,nil?,class,copy_singleton_methods,initialize_clone,initialize_dup,enum_for,chomp,[],to_i,length,each_line,to_proc,to_a,match,match?,captures,proc,succ,escape,include?,upcase,unicode_normalize,dup,__id__,next,intern,pristine'),w.$require("corelib/comparable"),w.$require("corelib/regexp"),function(J,K,H){var t=D(J,K,'String'),I=[t].concat(H),E=d.$r(I),w;t.$include(a('Comparable')),d.prop(t.$$prototype,'$$is_string',!0),w=new Map,function(){'use strict';b(t,'$__id__',function b(){var f=b.$$p||c,a=this,e;return b.$$p=null,typeof a=='object'?A(a,z(a,'__id__',b,!1,!0),'__id__',[],f):w.has(a)?w.get(a):(e=d.uid(),w.set(a,e),e)}),b(t,'$hash',function(){var c=this,a=F(),d=c.length,b;a=r(a,5),a=r(a,d);for(b=0;b0&&(f=b.shift()),d=k(a,"encoding"),d==null&&(d=c),e=k(a,"capacity"),e==null&&(e=c),c},-1),b(t,'$%',function(c){var b=this;return n(a('Array'),c)?m(b,'format',[b].concat(q(c))):b.$format(b,c)}),b(t,'$*',function(b){var g=this,d,c;if(b=e(b,a('Integer'),'to_int'),b<0&&f.$raise(a('ArgumentError'),"negative argument"),b===0)return'';for(d='',c=g.toString(),c.length*b>=1<<28&&f.$raise(a('RangeError'),"multiply count must not overflow maximum string size");;){if((b&1)===1&&(d+=c),b>>>=1,b===0)break;c+=c}return d}),b(t,'$+',function(b){var c=this,f;return b=e(b,a('String'),'to_str'),b==""&&c.$$class===d.String?c:c==""&&b.$$class===d.String?b:(f=c+b,c.encoding===f.encoding&&b.encoding===f.encoding)?f:c.encoding.name==="UTF-8"||b.encoding.name==="UTF-8"?f:d.enc(f,c.encoding)}),b(t,'$<=>',function(a){var b=this,d;return h(a['$respond_to?']("to_str"))?(a=a.$to_str().$to_s(),b>a?1:b'](b),d===c)?c:d>0?-1:d<0?1:0}),b(t,'$==',function(a){var b=this;return a.$$is_string?b.toString()===a.toString():!!C(a,'$to_str')&&a['$=='](b)}),b(t,'$=~',function(b){var c=this;return b.$$is_string&&f.$raise(a('TypeError'),"type mismatch: String given"),b['$=~'](c)}),b(t,'$[]',function(b,d){var i=this,j,l,k,h;return j=i.length,b.$$is_range?(l=b.excl,k=b,d=b.end===c?-1:e(b.end,a('Integer'),'to_int'),b=b.begin===c?0:e(b.begin,a('Integer'),'to_int'),Math.abs(b)>j)?c:(b<0&&(b+=j),d<0&&(d+=j),(!l||k.end===c)&&(d+=1),d=d-b,d<0&&(d=0),i.substr(b,d)):b.$$is_string?(d!=null&&f.$raise(a('TypeError')),i.indexOf(b)!==-1?b:c):b.$$is_regexp?(h=i.match(b),h===null)?(g["~"]=c,c):(g["~"]=a('MatchData').$new(b,h),d==null)?h[0]:(d=e(d,a('Integer'),'to_int'),d<0&&-d=0&&d=j||b<0?c:i.substr(b,1):(d=e(d,a('Integer'),'to_int'),d<0)?c:b>j||b<0?c:i.substr(b,d)},-2),b(t,'$b',function(){var a=this;return new String(a).$force_encoding("binary")}),b(t,'$capitalize',function(){var a=this;return a.charAt(0).toUpperCase()+a.substr(1).toLowerCase()}),b(t,'$casecmp',function(b){var d=this,f;return h(b['$respond_to?']("to_str"))?(b=e(b,a('String'),'to_str').$to_s(),f=/^[\x00-\x7F]*$/,f.test(d)&&f.test(b)&&(d=d.toLowerCase(),b=b.toLowerCase()),d['$<=>'](b)):c}),b(t,'$casecmp?',function(b){var d=this,a=d.$casecmp(b);return a===c?c:a===0}),b(t,'$center',function(d,b){var c=this,g,i;return b==null&&(b=" "),d=e(d,a('Integer'),'to_int'),b=e(b,a('String'),'to_str').$to_s(),h(b['$empty?']())&&f.$raise(a('ArgumentError'),"zero width padding"),h(d<=c.length)?c:(g=c.$ljust(x(y(d,c.length),2).$ceil(),b),i=c.$rjust(x(y(d,c.length),2).$floor(),b),i+g.slice(c.length))},-2),b(t,'$chomp',function(b){var d=this,e,f;return g["/"]==null&&(g["/"]=c),b==null&&(b=g["/"]),h(b===c||d.length===0)?d:(b=p['$coerce_to!'](b,a('String'),"to_str").$to_s(),b==="\n"?e=d.replace(/\r?\n?$/,''):b===""?e=d.replace(/(\r?\n)+$/,''):d.length>=b.length&&(f=d.substr(d.length-b.length,b.length),f===b&&(e=d.substr(0,d.length-b.length))),e!=null)?e:d},-1),b(t,'$chop',function(){var a=this,b=a.length,c;return b<=1?c="":a.charAt(b-1)==="\n"&&a.charAt(b-2)==="\r"?c=a.substr(0,b-2):c=a.substr(0,b-1),c}),b(t,'$chr',function(){var a=this;return a.charAt(0)}),b(t,'$clone',function(e){var a,d=this,b=c;return e=o(e),a=k(e,"freeze"),a==null&&(a=c),h(a['$nil?']())||s(a,!0)||s(a,!1)||d.$raise(E('ArgumentError'),"unexpected value for freeze: "+a.$class()),b=new String(d),b.$copy_singleton_methods(d),b.$initialize_clone(d,new Map([["freeze",a]])),s(a,!0)?b.$$frozen||(b.$$frozen=!0):h(a['$nil?']())&&d.$$frozen&&(b.$$frozen=!0),b},-1),b(t,'$dup',function(){var b=this,a=c;return a=new String(b),a.$initialize_dup(b),a}),b(t,'$count',function(h){var c,b,d=this,e;return c=i(arguments),b=c,b.length===0&&f.$raise(a('ArgumentError'),"ArgumentError: wrong number of arguments (0 for 1+)"),e=B(b),e===null?0:d.length-d.replace(new RegExp(e,'g'),'').length},-1),b(t,'$delete',function(h){var c,b,d=this,e;return c=i(arguments),b=c,b.length===0&&f.$raise(a('ArgumentError'),"ArgumentError: wrong number of arguments (0 for 1+)"),e=B(b),e===null?d:d.replace(new RegExp(e,'g'),'')},-1),b(t,'$delete_prefix',function(b){var c=this;return b.$$is_string||(b=e(b,a('String'),'to_str')),c.slice(0,b.length)===b?c.slice(b.length):c}),b(t,'$delete_suffix',function(b){var c=this;return b.$$is_string||(b=e(b,a('String'),'to_str')),c.slice(c.length-b.length)===b?c.slice(0,c.length-b.length):c}),b(t,'$downcase',function(){var a=this;return a.toLowerCase()}),b(t,'$each_line',function u(z,y){var q=u.$$p||c,n,p,b,l,j=this,m,f,w,s,t,x,r,h;if(g["/"]==null&&(g["/"]=c),u.$$p=null,n=i(arguments),p=v(n),p=o(p),n.length>0&&(b=n.shift()),b==null&&(b=g["/"]),l=k(p,"chomp"),l==null&&(l=!1),!(q!==c))return j.$enum_for("each_line",b,new Map([["chomp",l]]));if(b===c)return d.yield1(q,j),j;if(b=e(b,a('String'),'to_str'),b.length===0){for(m=j.split(/((?:\r?\n){2})(?:(?:\r?\n)*)/),f=0,w=m.length;f=b.length&&d.substr(d.length-b.length,b.length)==b)return!0;return!1},-1),b(t,'$gsub',function m(d,h){var o=m.$$p||c,f=this,j,n,k,b,i,p;if(m.$$p=null,h===void 0&&o===c)return f.$enum_for("gsub",d);for(j='',n=c,k=0,d.$$is_regexp?d=l(d):(d=e(d,a('String'),'to_str'),d=new RegExp(d.replace(/[.*+?^${}()|[\]\\]/g,'\\$&'),'gm'));!0;){if(b=d.exec(f),b===null){g["~"]=c,j+=f.slice(k);break}n=a('MatchData').$new(d,b),h===void 0?(p=d.lastIndex,i=o(b[0]),d.lastIndex=p):h.$$is_hash?i=h['$[]'](b[0]).$to_s():(h.$$is_string||(h=e(h,a('String'),'to_str')),i=h.replace(/([\\]+)([0-9+&`'])/g,function(e,a,d){if(a.length%2===0)return e;switch(d){case"+":for(var c=b.length-1;c>0;c--)if(b[c]!==void 0)return a.slice(1)+b[c];return'';case"&":return a.slice(1)+b[0];case"`":return a.slice(1)+f.slice(0,b.index);case"'":return a.slice(1)+f.slice(b.index+b[0].length);default:return a.slice(1)+(b[d]||'')}}).replace(/\\\\/g,'\\')),d.lastIndex===b.index?(j+=f.slice(k,b.index)+i+(f[b.index]||""),d.lastIndex+=1):j+=f.slice(k,b.index)+i,k=d.lastIndex}return g["~"]=n,j},-2),b(t,'$hex',function(){var a=this;return a.$to_i(16)}),b(t,'$include?',function(b){var c=this;return b.$$is_string||(b=e(b,a('String'),'to_str')),c.indexOf(b)!==-1}),b(t,'$index',function(d,b){var j=this,f,h,i;if(b===void 0)b=0;else if(b=e(b,a('Integer'),'to_int'),b<0)if(b+=j.length,b<0)return c;if(d.$$is_regexp)for(i=l(d);!0;){if(h=i.exec(j),h===null){g["~"]=c,f=-1;break}if(h.index>=b){g["~"]=a('MatchData').$new(i,h),f=h.index;break}i.lastIndex=h.index+1}else d=e(d,a('String'),'to_str'),d.length===0&&b>j.length?f=-1:f=j.indexOf(d,b);return f===-1?c:f},-2),b(t,'$inspect',function(){var a=this,c=/[\\\"\x00-\x1f\u007F-\u009F\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,b={'\u0007':'\\a','\u001b':'\\e','\b':'\\b','\t':'\\t','\n':'\\n','\f':'\\f','\r':'\\r','\v':'\\v','"':'\\"','\\':'\\\\'},d=a.replace(c,function(c){return b[c]?b[c]:(c=c.charCodeAt(0),c<=255&&(a.encoding["$binary?"]()||a.internal_encoding["$binary?"]()))?'\\x'+('00'+c.toString(16).toUpperCase()).slice(-2):'\\u'+('0000'+c.toString(16).toUpperCase()).slice(-4)});return'"'+d.replace(/\#[\$\@\{]/g,'\\$&')+'"'}),b(t,'$intern',function(){var a=this;return a.toString()}),b(t,'$length',function(){var a=this;return a.length}),j(t,"size","length"),b(t,'$lines',function l(p,q){var j=l.$$p||c,d,e,a,b,f=this,n=c;return g["/"]==null&&(g["/"]=c),l.$$p=null,d=i(arguments),e=v(d),e=o(e),d.length>0&&(a=d.shift()),a==null&&(a=g["/"]),b=k(e,"chomp"),b==null&&(b=!1),n=m(f,'each_line',[a,new Map([["chomp",b]])],j.$to_proc()),h(j)?f:n.$to_a()},-1),b(t,'$ljust',function(b,c){var d=this,i,g;if(c==null&&(c=" "),b=e(b,a('Integer'),'to_int'),c=e(c,a('String'),'to_str').$to_s(),h(c['$empty?']())&&f.$raise(a('ArgumentError'),"zero width padding"),h(b<=d.length))return d;for(i=-1,g="",b-=d.length;++i=48&&a<=57||a>=65&&a<=90||a>=97&&a<=122)switch(a){case 57:c=!0,a=48;break;case 90:c=!0,a=65;break;case 122:c=!0,a=97;break;default:c=!1,a+=1}else f===-1?a===255?(c=!0,a=0):(c=!1,a+=1):c=!0;if(d=d.slice(0,b)+String.fromCharCode(a)+d.slice(b+1),c&&(b===0||b===f)){switch(a){case 65:break;case 97:break;default:a+=1}b===0?d=String.fromCharCode(a)+d:d=d.slice(0,b)+String.fromCharCode(a)+d.slice(b),c=!1}if(!c)break}return d}),b(t,'$oct',function(){var d=this,b=d,a=8,c;return/^\s*_/.test(b)?0:(b=b.replace(/^(\s*[+-]?)(0[bodx]?)(.+)$/i,function(c,e,d,b){switch(b.charAt(0)){case'+':case'-':return c;case'0':if(b.charAt(1)==='x'&&d==='0x')return c}switch(d){case'0b':a=2;break;case'0':case'0o':a=8;break;case'0d':a=10;break;case'0x':a=16;break}return e+b}),c=parseInt(b.replace(/_(?!_)/g,''),a),isNaN(c)?0:c)}),b(t,'$ord',function(){var a=this;return typeof a.codePointAt=="function"?a.codePointAt(0):a.charCodeAt(0)}),b(t,'$partition',function(b){var d=this,c,f;return b.$$is_regexp?(f=b.exec(d),f===null?c=-1:(a('MatchData').$new(b,f),b=f[0],c=f.index)):(b=e(b,a('String'),'to_str'),c=d.indexOf(b)),c===-1?[d,'','']:[d.slice(0,c),d.slice(c,c+b.length),d.slice(c+b.length)]}),b(t,'$reverse',function(){var a=this;return a.split('').reverse().join('')}),b(t,'$rindex',function(f,b){var j=this,h,d,i,k;if(b===void 0)b=j.length;else if(b=e(b,a('Integer'),'to_int'),b<0)if(b+=j.length,b<0)return c;if(f.$$is_regexp){for(d=null,i=l(f);!0;){if(k=i.exec(j),k===null||k.index>b)break;d=k,i.lastIndex=d.index+1}d===null?(g["~"]=c,h=-1):(a('MatchData').$new(i,d),h=d.index)}else f=e(f,a('String'),'to_str'),h=j.lastIndexOf(f,b);return h===-1?c:h},-2),b(t,'$rjust',function(c,b){var d=this,i,j,g,k;return b==null&&(b=" "),c=e(c,a('Integer'),'to_int'),b=e(b,a('String'),'to_str').$to_s(),h(b['$empty?']())&&f.$raise(a('ArgumentError'),"zero width padding"),h(c<=d.length)?d:(i=Math.floor(c-d.length),j=Math.floor(i/b.length),g=Array(j+1).join(b),k=i-g.length,g+b.slice(0,k)+d)},-2),b(t,'$rpartition',function(b){var f=this,c,d,g,h;if(b.$$is_regexp){for(d=null,g=l(b);!0;){if(h=g.exec(f),h===null)break;d=h,g.lastIndex=d.index+1}d===null?c=-1:(a('MatchData').$new(g,d),b=d[0],c=d.index)}else b=e(b,a('String'),'to_str'),c=f.lastIndexOf(b);return c===-1?['','',f]:[f.slice(0,c),f.slice(c,c+b.length),f.slice(c+b.length)]}),b(t,'$rstrip',function(){var a=this;return a.replace(/[\x00\x09\x0a-\x0d\x20]*$/,'')}),b(t,'$scan',function q(b,n){var i=q.$$p||c,h,p=this,m,j,f;for(q.$$p=null,n=o(n),h=k(n,"no_matchdata"),h==null&&(h=!1),m=[],j=c,b.$$is_regexp?b=l(b):(b=e(b,a('String'),'to_str'),b=new RegExp(b.replace(/[.*+?^${}()|[\]\\]/g,'\\$&'),'gm'));(f=b.exec(p))!=null;)j=a('MatchData').$new(b,f,new Map([["no_matchdata",h]])),i===c?f.length==1?m.push(f[0]):m.push(j.$captures()):f.length==1?d.yield1(i,f[0]):d.yield1(i,j.$captures()),b.lastIndex===f.index&&(b.lastIndex+=1);return h||(g["~"]=j),i!==c?p:m},-2),b(t,'$singleton_class',function(){var a=this;return d.get_singleton_class(a)}),b(t,'$split',function(f,i){var o=this,t=c,b,k,s,j,r,n,m,q;if(g[";"]==null&&(g[";"]=c),o.length===0)return[];if(i===void 0)i=0;else if(i=p['$coerce_to!'](i,a('Integer'),"to_int"),i===1)return[o];if((f===void 0||f===c)&&(f=h(t=g[";"])?t:" "),b=[],k=o.toString(),s=0,r=0,n=0,f.$$is_regexp?f=l(f):(f=e(f,a('String'),'to_str').$to_s(),f===' '&&(f=/\s+/gm,k=k.replace(/^\s+/,''))),b=k.split(f),b.length===1&&b[0]===k)return[b[0]];while((m=b.indexOf(void 0))!==-1)b.splice(m,1);if(i===0){while(b[b.length-1]==='')b.pop();return b}if(f.$$is_regexp||(f=d.escape_regexp(f),f=new RegExp(f,'gm')),j=f.exec(k),i<0){if(j!==null&&j[0]===''&&f.source.indexOf('(?=')===-1)for(m=0,q=j.length;m=b.length)return b;while(j!==null){if(r++,s=f.lastIndex,n+=j.length,r+1===i)break;j=f.exec(k)}return b.splice(n,b.length-1,k.slice(s)),b},-1),b(t,'$squeeze',function(f){var c,a,b=this,d;return c=i(arguments),a=c,a.length===0?b.replace(/(.)\1+/g,'$1'):(d=B(a),d===null)?b:b.replace(new RegExp('('+d+')\\1+','g'),'$1')},-1),b(t,'$start_with?',function(o){var k,b,h=this,d,m,j,f,l;k=i(arguments),b=k;for(d=0,m=b.length;d=l.length&&h.startsWith(l))return!0;return!1},-1),b(t,'$strip',function(){var a=this;return a.replace(/^[\x00\x09\x0a-\x0d\x20]*|[\x00\x09\x0a-\x0d\x20]*$/g,'')}),b(t,'$sub',function l(i,h){var k=l.$$p||c,d=this,j,b;return l.$$p=null,i.$$is_regexp||(i=e(i,a('String'),'to_str'),i=new RegExp(i.replace(/[.*+?^${}()|[\]\\]/g,'\\$&'))),b=i.exec(d),b===null?(g["~"]=c,j=d.toString()):(a('MatchData').$new(i,b),h===void 0?(k===c&&f.$raise(a('ArgumentError'),"wrong number of arguments (1 for 2)"),j=d.slice(0,b.index)+k(b[0])+d.slice(b.index+b[0].length)):h.$$is_hash?j=d.slice(0,b.index)+h['$[]'](b[0]).$to_s()+d.slice(b.index+b[0].length):(h=e(h,a('String'),'to_str'),h=h.replace(/([\\]+)([0-9+&`'])/g,function(f,a,e){if(a.length%2===0)return f;switch(e){case"+":for(var c=b.length-1;c>0;c--)if(b[c]!==void 0)return a.slice(1)+b[c];return'';case"&":return a.slice(1)+b[0];case"`":return a.slice(1)+d.slice(0,b.index);case"'":return a.slice(1)+d.slice(b.index+b[0].length);default:return a.slice(1)+(b[e]||'')}}).replace(/\\\\/g,'\\'),j=d.slice(0,b.index)+h+d.slice(b.index+b[0].length))),j},-2),b(t,'$sum',function(b){var f=this,c,g,d;for(b==null&&(b=16),b=e(b,a('Integer'),'to_int'),c=0,g=f.length,d=0;d36)&&f.$raise(a('ArgumentError'),"invalid radix "+b),/^\s*_/.test(c)?0:(c=c.replace(/^(\s*[+-]?)(0[bodx]?)(.+)$/,function(d,c,e,a){switch(a.charAt(0)){case'+':case'-':return d;case'0':if(a.charAt(1)==='x'&&e==='0x'&&(b===0||b===16))return d}switch(e){case'0b':if(b===0||b===2)return b=2,c+a;break;case'0':case'0o':if(b===0||b===8)return b=8,c+a;break;case'0d':if(b===0||b===10)return b=10,c+a;break;case'0x':if(b===0||b===16)return b=16,c+a;break}return d}),g=parseInt(c.replace(/_(?!_)/g,''),b),isNaN(g)?0:g)},-1),b(t,'$to_proc',function g(){var k=g.$$p||c,j=this,b=c,h=c,e=c;return g.$$p=null,b=j.valueOf(),h=d.jsid(b),e=m(f,'proc',[],function l(m){var j=l.$$p||c,k,d,e,g;return l.$$p=null,k=i(arguments),d=k,d.length===0&&f.$raise(a('ArgumentError'),"no receiver given"),e=d[0],e==null&&(e=c),g=e[h],g?d=d.slice(1):(g=e.$method_missing,d[0]=b),typeof j=='function'&&(g.$$p=j),d.length===0?g.call(e):g.apply(e,d)},-1),e.$$source_location=c,e}),b(t,'$to_s',function(){var a=this;return a.toString()}),b(t,'$tr',function(q,s){var v=this,b,i,j,c,l,m,A,t,d,o,g,h,u,y,k,r,n,p,z,B,w,x;if(q=e(q,a('String'),'to_str').$to_s(),s=e(s,a('String'),'to_str').$to_s(),q.length==0||q===s)return v;t={},d=q.split(''),o=d.length,g=s.split(''),h=g.length,u=!1,y=null,d[0]==='^'&&d.length>1&&(u=!0,d.shift(),y=g[h-1],o-=1),k=[],r=null,i=!1;for(b=0;bm&&f.$raise(a('ArgumentError'),'invalid range "'+String.fromCharCode(l)+"-"+String.fromCharCode(m)+'" in string transliteration');for(j=l+1;j0){n=[],p=null,i=!1;for(b=0;bm&&f.$raise(a('ArgumentError'),'invalid range "'+String.fromCharCode(l)+"-"+String.fromCharCode(m)+'" in string transliteration');for(j=l+1;j0){B=h>0?g[h-1]:'';for(b=0;b1&&(u=!0,d.shift(),y=o[h-1],q-=1),n=[],g=null,i=!1;for(b=0;bm&&f.$raise(a('ArgumentError'),'invalid range "'+String.fromCharCode(l)+"-"+String.fromCharCode(m)+'" in string transliteration');for(j=l+1;j0){k=[],B=null,i=!1;for(b=0;bm&&f.$raise(a('ArgumentError'),'invalid range "'+String.fromCharCode(l)+"-"+String.fromCharCode(m)+'" in string transliteration');for(j=l+1;j0){C=h>0?o[h-1]:'';for(b=0;b0&&bd&&f.$raise(a('ArgumentError'),'invalid range "'+g+"-"+d+'" in string transliteration');for(h=g+1;h1,c=n(i?c.slice(1):c),i?g=m(g,c):d=m(d,c);if(d.length>0&&g.length>0){k='';for(b=0,h=d.length;b0?'['+a('Regexp').$escape(d)+']':g.length>0?'[^'+a('Regexp').$escape(g)+']':null}return b(t,'$instance_variables',function(){return[]}),u(t,'$_load',function(e){var a,b,c=this;return a=i(arguments),b=a,m(c,'new',q(b))},-1),b(t,'$unicode_normalize',function(b){var c=this;return b==null&&(b="nfc"),h(["nfc","nfd","nfkc","nfkd"]['$include?'](b))||f.$raise(a('ArgumentError'),"Invalid normalization form "+b),c.normalize(b.$upcase())},-1),b(t,'$unicode_normalized?',function(a){var b=this;return a==null&&(a="nfc"),b.$unicode_normalize(a)['$=='](b)},-1),b(t,'$unpack',function(b){return f.$raise("To use String#unpack, you must first require 'corelib/string/unpack'.")}),b(t,'$unpack1',function(b){return f.$raise("To use String#unpack1, you must first require 'corelib/string/unpack'.")}),b(t,'$freeze',function(){var a=this;return typeof a=='string'?a:(G(a,"$$frozen",!0),a)}),b(t,'$-@',function(){var a=this;return typeof a=='string'?a:a.$$frozen?a:a.encoding.name=='UTF-8'&&a.internal_encoding.name=='UTF-8'?a.toString():a.$dup().$freeze()}),b(t,'$frozen?',function(){var a=this;return typeof a=='string'||a.$$frozen===!0}),j(t,"+@","dup"),j(t,"===","=="),j(t,"byteslice","[]"),j(t,"eql?","=="),j(t,"equal?","==="),j(t,"object_id","__id__"),j(t,"slice","[]"),j(t,"succ","next"),j(t,"to_str","to_s"),j(t,"to_sym","intern"),p.$pristine(t,"initialize")}('::',String,t),B(t[0],'Symbol',E('String'))},Opal.modules["corelib/enumerable"]=function(f){var c=f.truthy,q=f.coerce_to,k=f.yield1,o=f.yieldX,B=f.deny_frozen_access,u=f.module,b=f.send,h=f.slice,j=f.to_a,e=f.Opal,l=f.thrower,d=f.def,i=f.Kernel,C=f.return_val,p=f.rb_gt,z=f.rb_times,w=f.rb_lt,s=f.eqeq,n=f.rb_plus,r=f.rb_minus,v=f.rb_divide,t=f.rb_le,x=f.lambda,y=f.not,m=f.alias,A=[],a=f.nil,g=f.$$$;return f.add_stubs('each,public_send,destructure,to_enum,enumerator_size,new,yield,raise,slice_when,!,enum_for,flatten,map,to_proc,compact,to_a,warn,proc,==,nil?,respond_to?,coerce_to!,>,*,try_convert,<,+,-,ceil,/,size,select,__send__,length,<=,[],push,<<,[]=,===,inspect,<=>,first,reverse,sort,take,sort_by,compare,call,dup,sort!,map!,include?,-@,key?,values,transform_values,group_by,fetch,to_h,coerce_to?,class,zip,detect,find_all,collect_concat,collect,inject,entries'),function(E,F){var A=u(E,'Enumerable'),G=[A].concat(F),H=f.$r(G);function D(b){return b.length===0&&(b=[a]),b.length>1&&(b=[b]),b}return d(A,'$all?',function k(m){var d,i,g;try{return d=l('return'),i=k.$$p||a,g=this,k.$$p=null,c(m!==void 0)?b(g,'each',[],function i(k){var e,f,g=a;if(e=h(arguments),f=e,g=D(f),c(b(m,'public_send',["==="].concat(j(g)))))return a;d.$throw(!1,i.$$is_lambda)},{$$arity:-1,$$ret:d}):i!==a?b(g,'each',[],function g(k){var b,e;if(b=h(arguments),e=b,c(f.yieldX(i,j(e))))return a;d.$throw(!1,g.$$is_lambda)},{$$arity:-1,$$ret:d}):b(g,'each',[],function g(i){var b,f;if(b=h(arguments),f=b,c(e.$destructure(f)))return a;d.$throw(!1,g.$$is_lambda)},{$$arity:-1,$$ret:d}),!0}catch(a){if(a===d)return a.$v;throw a}finally{d.is_orphan=!0}},-1),d(A,'$any?',function k(m){var d,i,g;try{return d=l('return'),i=k.$$p||a,g=this,k.$$p=null,c(m!==void 0)?b(g,'each',[],function i(k){var e,f,g=a;if(e=h(arguments),f=e,g=D(f),c(b(m,'public_send',["==="].concat(j(g)))))d.$throw(!0,i.$$is_lambda);else return a},{$$arity:-1,$$ret:d}):i!==a?b(g,'each',[],function g(k){var b,e;if(b=h(arguments),e=b,c(f.yieldX(i,j(e))))d.$throw(!0,g.$$is_lambda);else return a},{$$arity:-1,$$ret:d}):b(g,'each',[],function g(i){var b,f;if(b=h(arguments),f=b,c(e.$destructure(f)))d.$throw(!0,g.$$is_lambda);else return a},{$$arity:-1,$$ret:d}),!1}catch(a){if(a===d)return a.$v;throw a}finally{d.is_orphan=!0}},-1),d(A,'$chunk',function d(){var e=d.$$p||a,c=this;return d.$$p=null,!(e!==a)?b(c,'to_enum',["chunk"],function a(){var b=a.$$s==null?this:a.$$s;return b.$enumerator_size()},{$$s:c}):b(g('Enumerator'),'new',[],function g(d){var h=g.$$s==null?this:g.$$s,b,c;d==null&&(d=a),b=a,c=[];function f(){c.length>0&&d.$yield(b,c)}h.$each.$$p=function(d){var g=k(e,d);g===a?(f(),c=[],b=a):(b===a||b===g?c.push(d):(f(),c=[d]),b=g)},h.$each(),f()},{$$s:c})}),d(A,'$chunk_while',function c(){var d=c.$$p||a,e=this;return c.$$p=null,d!==a||i.$raise(g('ArgumentError'),"no block given"),b(e,'slice_when',[],function(b,c){return b==null&&(b=a),c==null&&(c=a),f.yieldX(d,[b,c])['$!']()})}),d(A,'$collect',function d(){var e=d.$$p||a,c=this,f;return d.$$p=null,!(e!==a)?b(c,'enum_for',["collect"],function a(){var b=a.$$s==null?this:a.$$s;return b.$enumerator_size()},{$$s:c}):(f=[],c.$each.$$p=function(){var a=o(e,arguments);f.push(a)},c.$each(),f)}),d(A,'$collect_concat',function d(){var e=d.$$p||a,c=this;return d.$$p=null,!(e!==a)?b(c,'enum_for',["collect_concat"],function a(){var b=a.$$s==null?this:a.$$s;return b.$enumerator_size()},{$$s:c}):b(c,'map',[],e.$to_proc()).$flatten(1)}),d(A,'$compact',function(){var a=this;return a.$to_a().$compact()}),d(A,'$count',function j(f){var d=j.$$p||a,k=this,g=a;return j.$$p=null,g=0,f!=null&&d!==a&&k.$warn("warning: given block not used"),c(f!=null)?d=b(i,'proc',[],function(d){var a,b;return a=h(arguments),b=a,e.$destructure(b)['$=='](f)},-1):c(d['$nil?']())&&(d=b(i,'proc',[],C(!0))),b(k,'each',[],function(i){var b,e;return b=h(arguments),e=b,c(o(d,e))?g++:a},-1),g},-1),d(A,'$cycle',function m(d){var j=m.$$p||a,l=this,h,f,i,n;if(m.$$p=null,d==null&&(d=a),!(j!==a))return b(l,'enum_for',["cycle",d],function b(){var f=b.$$s==null?this:b.$$s;return c(d['$nil?']())?c(f['$respond_to?']("size"))?g(g('Float'),'INFINITY'):a:(d=e['$coerce_to!'](d,g('Integer'),"to_int"),c(p(d,0)))?z(f.$enumerator_size(),d):0},{$$s:l});if(!c(d['$nil?']()))if(d=e['$coerce_to!'](d,g('Integer'),"to_int"),c(d<=0))return a;if(h=[],l.$each.$$p=function(){var a=e.$destructure(arguments),b=k(j,a);h.push(a)},l.$each(),h.length===0)return a;if(d===a)while(!0)for(f=0,i=h.length;f1){for(f=0,i=h.length;fd&&h.shift(),h.length==d&&k(l,h.slice(0,d))},f.$each(),f)}),d(A,'$each_entry',function f(l){var g=f.$$p||a,i,d,c=this;return f.$$p=null,i=h(arguments),d=i,!(g!==a)?b(c,'to_enum',["each_entry"].concat(j(d)),function a(){var b=a.$$s==null?this:a.$$s;return b.$enumerator_size()},{$$s:c}):(c.$each.$$p=function(){var a=e.$destructure(arguments);k(g,a)},c.$each.apply(c,d),c)},-1),d(A,'$each_slice',function l(d){var j=l.$$p||a,h=this,f;return l.$$p=null,d=q(d,g('Integer'),'to_int'),c(d<=0)&&i.$raise(g('ArgumentError'),"invalid slice size"),!(j!==a)?b(h,'enum_for',["each_slice",d],function b(){var e=b.$$s==null?this:b.$$s;return c(e['$respond_to?']("size"))?v(e.$size(),d).$ceil():a},{$$s:h}):(f=[],h.$each.$$p=function(){var a=e.$destructure(arguments);f.push(a),f.length===d&&(k(j,f),f=[])},h.$each(),f.length>0&&k(j,f),h)}),d(A,'$each_with_index',function f(l){var g=f.$$p||a,i,d,c=this,k;return f.$$p=null,i=h(arguments),d=i,!(g!==a)?b(c,'enum_for',["each_with_index"].concat(j(d)),function a(){var b=a.$$s==null?this:a.$$s;return b.$enumerator_size()},{$$s:c}):(k=0,c.$each.$$p=function(){var a=e.$destructure(arguments);g(a,k),k++},c.$each.apply(c,d),c)},-1),d(A,'$each_with_object',function f(d){var g=f.$$p||a,c=this;return f.$$p=null,!(g!==a)?b(c,'enum_for',["each_with_object",d],function a(){var b=a.$$s==null?this:a.$$s;return b.$enumerator_size()},{$$s:c}):(c.$each.$$p=function(){var a=e.$destructure(arguments);g(a,d)},c.$each(),d)}),d(A,'$entries',function(g){var b,c,a=this,d;return b=h(arguments),c=b,d=[],a.$each.$$p=function(){d.push(e.$destructure(arguments))},a.$each.apply(a,c),d},-1),d(A,'$filter_map',function d(){var e=d.$$p||a,c=this;return d.$$p=null,!(e!==a)?b(c,'enum_for',["filter_map"],function a(){var b=a.$$s==null?this:a.$$s;return b.$enumerator_size()},{$$s:c}):b(b(c,'map',[],e.$to_proc()),'select',[],"itself".$to_proc())}),d(A,'$find_all',function f(){var g=f.$$p||a,d=this,h;return f.$$p=null,!(g!==a)?b(d,'enum_for',["find_all"],function a(){var b=a.$$s==null?this:a.$$s;return b.$enumerator_size()},{$$s:d}):(h=[],d.$each.$$p=function(){var a=e.$destructure(arguments),b=k(g,a);c(b)&&h.push(a)},d.$each(),h)}),d(A,'$find_index',function n(k){var d,m,i,g;try{return d=l('return'),m=n.$$p||a,i=this,g=a,n.$$p=null,c(k===void 0&&m===a)?i.$enum_for("find_index"):(k!=null&&m!==a&&i.$warn("warning: given block not used"),g=0,c(k!=null)?b(i,'each',[],function c(f){var a,b;return a=h(arguments),b=a,s(e.$destructure(b),k)&&d.$throw(g,c.$$is_lambda),g+=1},{$$arity:-1,$$ret:d}):b(i,'each',[],function e(i){var a,b;return a=h(arguments),b=a,c(f.yieldX(m,j(b)))&&d.$throw(g,e.$$is_lambda),g+=1},{$$arity:-1,$$ret:d}),a)}catch(a){if(a===d)return a.$v;throw a}finally{d.is_orphan=!0}},-1),d(A,'$first',function(f){var d,k,j,m;try{return d=l('return'),k=this,j=a,m=a,c(f===void 0)?b(k,'each',[],function c(b){b==null&&(b=a),d.$throw(b,c.$$is_lambda)},{$$ret:d}):(j=[],f=q(f,g('Integer'),'to_int'),c(f<0)&&i.$raise(g('ArgumentError'),"attempt to take negative size"),c(f==0))?[]:(m=0,b(k,'each',[],function i(k){var b,g;if(b=h(arguments),g=b,j.push(e.$destructure(g)),c(f<=++m))d.$throw(j,i.$$is_lambda);else return a},{$$arity:-1,$$ret:d}),j)}catch(a){if(a===d)return a.$v;throw a}finally{d.is_orphan=!0}},-1),d(A,'$grep',function e(i){var g=e.$$p||a,k=this,d=a;return e.$$p=null,d=[],b(k,'each',[],function(n){var k,e,l=a;return k=h(arguments),e=k,l=D(e),!c(b(i,'__send__',["==="].concat(j(l))))?a:(g!==a?(c(p(e.$length(),1))&&(e=[e]),e=f.yieldX(g,j(e))):c(t(e.$length(),1))&&(e=e['$[]'](0)),d.$push(e))},-1),d}),d(A,'$grep_v',function e(i){var g=e.$$p||a,k=this,d=a;return e.$$p=null,d=[],b(k,'each',[],function(n){var k,e,l=a;return k=h(arguments),e=k,l=D(e),c(b(i,'__send__',["==="].concat(j(l))))?a:(g!==a?(c(p(e.$length(),1))&&(e=[e]),e=f.yieldX(g,j(e))):c(t(e.$length(),1))&&(e=e['$[]'](0)),d.$push(e))},-1),d}),d(A,'$group_by',function h(){var i=h.$$p||a,d,f=this,g=a,j=a,l;return h.$$p=null,!(i!==a)?b(f,'enum_for',["group_by"],function a(){var b=a.$$s==null?this:a.$$s;return b.$enumerator_size()},{$$s:f}):(g=new Map,f.$each.$$p=function(){var a=e.$destructure(arguments),f=k(i,a);(c(j=g['$[]'](f))?j:(d=[f,[]],b(g,'[]=',d),d[d.length-1]))['$<<'](a)},f.$each(),l!==void 0)?l:g}),d(A,'$include?',function(f){var c,d;try{return c=l('return'),d=this,b(d,'each',[],function g(i){var b,d;if(b=h(arguments),d=b,s(e.$destructure(d),f))c.$throw(!0,g.$$is_lambda);else return a},{$$arity:-1,$$ret:c}),!1}catch(a){if(a===c)return a.$v;throw a}finally{c.is_orphan=!0}}),d(A,'$inject',function h(c,d){var j=h.$$p||a,f=this,b;return h.$$p=null,b=c,j!==a&&d===void 0?f.$each.$$p=function(){var a=e.$destructure(arguments);if(b===void 0){b=a;return}a=o(j,[b,a]),b=a}:(d===void 0&&(g('Symbol')['$==='](c)||i.$raise(g('TypeError'),""+c.$inspect()+" is not a Symbol"),d=c,b=void 0),f.$each.$$p=function(){var a=e.$destructure(arguments);if(b===void 0){b=a;return}b=b.$__send__(d,a)}),f.$each(),b==void 0?a:b},-1),d(A,'$lazy',function(){var c=this;return b(g(g('Enumerator'),'Lazy'),'new',[c,c.$enumerator_size()],function(c,g){var d,e;return c==null&&(c=a),d=h(arguments,1),e=d,b(c,'yield',j(e))},-2)}),d(A,'$enumerator_size',function(){var b=this;return c(b['$respond_to?']("size"))?b.$size():a}),d(A,'$max',function k(d){var h=k.$$p||a,j=this,c,f;return k.$$p=null,d===void 0||d===a?(j.$each.$$p=function(){var b=e.$destructure(arguments);if(c===void 0){c=b;return}h!==a?f=o(h,[b,c]):f=b['$<=>'](c),f===a&&i.$raise(g('ArgumentError'),"comparison failed"),f>0&&(c=b)},j.$each(),c===void 0)?a:c:(d=q(d,g('Integer'),'to_int'),b(j,'sort',[],h.$to_proc()).$reverse().$first(d))},-1),d(A,'$max_by',function j(d){var h=j.$$p||a,f=this,g,i;return j.$$p=null,d==null&&(d=a),!c(h)?b(f,'enum_for',["max_by",d],function a(){var b=a.$$s==null?this:a.$$s;return b.$enumerator_size()},{$$s:f}):c(d['$nil?']())?(f.$each.$$p=function(){var a=e.$destructure(arguments),b=k(h,a);if(g===void 0){g=a,i=b;return}b['$<=>'](i)>0&&(g=a,i=b)},f.$each(),g===void 0?a:g):b(f,'sort_by',[],h.$to_proc()).$reverse().$take(d)},-1),d(A,'$min',function l(h){var k=l.$$p||a,j=this,d;return l.$$p=null,h==null&&(h=a),!c(h['$nil?']())?k!==a?b(j,'sort',[],function(b,c){return b==null&&(b=a),c==null&&(c=a),f.yieldX(k,[b,c])}).$take(h):j.$sort().$take(h):(k!==a?j.$each.$$p=function(){var b=e.$destructure(arguments),c;if(d===void 0){d=b;return}c=k(b,d),c===a&&i.$raise(g('ArgumentError'),"comparison failed"),c<0&&(d=b)}:j.$each.$$p=function(){var a=e.$destructure(arguments);if(d===void 0){d=a;return}e.$compare(a,d)<0&&(d=a)},j.$each(),d===void 0?a:d)},-1),d(A,'$min_by',function j(d){var h=j.$$p||a,f=this,g,i;return j.$$p=null,d==null&&(d=a),!c(h)?b(f,'enum_for',["min_by",d],function a(){var b=a.$$s==null?this:a.$$s;return b.$enumerator_size()},{$$s:f}):c(d['$nil?']())?(f.$each.$$p=function(){var a=e.$destructure(arguments),b=k(h,a);if(g===void 0){g=a,i=b;return}b['$<=>'](i)<0&&(g=a,i=b)},f.$each(),g===void 0?a:g):b(f,'sort_by',[],h.$to_proc()).$take(d)},-1),d(A,'$minmax',function j(){var d=j.$$p||a,k=this,l=a,f,h,m;return j.$$p=null,d=c(l=d)?l:b(i,'proc',[],function(b,c){return b==null&&(b=a),c==null&&(c=a),b['$<=>'](c)}),f=a,h=a,m=!0,k.$each.$$p=function(){var b=e.$destructure(arguments),c,j;m?(f=h=b,m=!1):(c=d.$call(f,b),c===a?i.$raise(g('ArgumentError'),"comparison failed"):c>0&&(f=b),j=d.$call(h,b),j===a?i.$raise(g('ArgumentError'),"comparison failed"):j<0&&(h=b))},k.$each(),[f,h]}),d(A,'$minmax_by',function l(){var h=l.$$p||a,d=this,i,j,g,f;return l.$$p=null,!c(h)?b(d,'enum_for',["minmax_by"],function a(){var b=a.$$s==null?this:a.$$s;return b.$enumerator_size()},{$$s:d}):(i=a,j=a,d.$each.$$p=function(){var b=e.$destructure(arguments),a=k(h,b);(g===void 0||a['$<=>'](g)<0)&&(i=b,g=a),(f===void 0||a['$<=>'](f)>0)&&(j=b,f=a)},d.$each(),[i,j])}),d(A,'$none?',function k(m){var d,i,g;try{return d=l('return'),i=k.$$p||a,g=this,k.$$p=null,c(m!==void 0)?b(g,'each',[],function i(k){var e,f,g=a;if(e=h(arguments),f=e,g=D(f),c(b(m,'public_send',["==="].concat(j(g)))))d.$throw(!1,i.$$is_lambda);else return a},{$$arity:-1,$$ret:d}):i!==a?b(g,'each',[],function g(k){var b,e;if(b=h(arguments),e=b,c(f.yieldX(i,j(e))))d.$throw(!1,g.$$is_lambda);else return a},{$$arity:-1,$$ret:d}):b(g,'each',[],function i(j){var b,f,g=a;if(b=h(arguments),f=b,g=e.$destructure(f),c(g))d.$throw(!1,i.$$is_lambda);else return a},{$$arity:-1,$$ret:d}),!0}catch(a){if(a===d)return a.$v;throw a}finally{d.is_orphan=!0}},-1),d(A,'$one?',function m(o){var g,k,i,d;try{return g=l('return'),k=m.$$p||a,i=this,d=a,m.$$p=null,d=0,c(o!==void 0)?b(i,'each',[],function k(l){var e,f,i=a;if(e=h(arguments),f=e,i=D(f),c(b(o,'public_send',["==="].concat(j(i)))))if(d=n(d,1),c(p(d,1)))g.$throw(!1,k.$$is_lambda);else return a;else return a},{$$arity:-1,$$ret:g}):k!==a?b(i,'each',[],function i(l){var b,e;if(b=h(arguments),e=b,!c(f.yieldX(k,j(e))))return a;if(d=n(d,1),c(p(d,1)))g.$throw(!1,i.$$is_lambda);else return a},{$$arity:-1,$$ret:g}):b(i,'each',[],function i(j){var b,f;if(b=h(arguments),f=b,!c(e.$destructure(f)))return a;if(d=n(d,1),c(p(d,1)))g.$throw(!1,i.$$is_lambda);else return a},{$$arity:-1,$$ret:g}),d['$=='](1)}catch(a){if(a===g)return a.$v;throw a}finally{g.is_orphan=!0}},-1),d(A,'$partition',function f(){var g=f.$$p||a,d=this,h,i,j;return f.$$p=null,!(g!==a)?b(d,'enum_for',["partition"],function a(){var b=a.$$s==null?this:a.$$s;return b.$enumerator_size()},{$$s:d}):(h=[],i=[],d.$each.$$p=function(){var a=e.$destructure(arguments),b=k(g,a);c(b)?h.push(a):i.push(a)},d.$each(),[h,i])}),d(A,'$reject',function f(){var g=f.$$p||a,d=this,h;return f.$$p=null,!(g!==a)?b(d,'enum_for',["reject"],function a(){var b=a.$$s==null?this:a.$$s;return b.$enumerator_size()},{$$s:d}):(h=[],d.$each.$$p=function(){var a=e.$destructure(arguments),b=k(g,a);c(b)||h.push(a)},d.$each(),h)}),d(A,'$reverse_each',function f(){var g=f.$$p||a,c=this,d,e;if(f.$$p=null,!(g!==a))return b(c,'enum_for',["reverse_each"],function a(){var b=a.$$s==null?this:a.$$s;return b.$enumerator_size()},{$$s:c});d=[],c.$each.$$p=function(){d.push(arguments)},c.$each();for(e=d.length-1;e>=0;e--)o(g,d[e]);return d}),d(A,'$slice_before',function h(d){var f=h.$$p||a,j=this;return h.$$p=null,c(d===void 0&&f===a)&&i.$raise(g('ArgumentError'),"both pattern and block are given"),c(d!==void 0&&f!==a||arguments.length>1)&&i.$raise(g('ArgumentError'),"wrong number of arguments ("+arguments.length+" expected 1)"),b(g('Enumerator'),'new',[],function i(g){var h=i.$$s==null?this:i.$$s,b;g==null&&(g=a),b=[],f!==a?d===void 0?h.$each.$$p=function(){var a=e.$destructure(arguments),d=k(f,a);c(d)&&b.length>0&&(g['$<<'](b),b=[]),b.push(a)}:h.$each.$$p=function(){var a=e.$destructure(arguments),h=f(a,d.$dup());c(h)&&b.length>0&&(g['$<<'](b),b=[]),b.push(a)}:h.$each.$$p=function(){var a=e.$destructure(arguments),f=d['$==='](a);c(f)&&b.length>0&&(g['$<<'](b),b=[]),b.push(a)},h.$each(),b.length>0&&g['$<<'](b)},{$$s:j})},-1),d(A,'$slice_after',function h(d){var f=h.$$p||a,j=this;return h.$$p=null,c(d===void 0&&f===a)&&i.$raise(g('ArgumentError'),"both pattern and block are given"),c(d!==void 0&&f!==a||arguments.length>1)&&i.$raise(g('ArgumentError'),"wrong number of arguments ("+arguments.length+" expected 1)"),c(d!==void 0)&&(f=b(i,'proc',[],function(b){return b==null&&(b=a),d['$==='](b)})),b(g('Enumerator'),'new',[],function g(d){var h=g.$$s==null?this:g.$$s,b;d==null&&(d=a),h.$each.$$p=function(){var a=e.$destructure(arguments),g=k(f,a);b==null&&(b=[]),c(g)?(b.push(a),d.$yield(b),b=null):b.push(a)},h.$each(),b!=null&&d.$yield(b)},{$$s:j})},-1),d(A,'$slice_when',function d(){var f=d.$$p||a,h=this;return d.$$p=null,f!==a||i.$raise(g('ArgumentError'),"wrong number of arguments (0 for 1)"),b(g('Enumerator'),'new',[],function g(d){var h=g.$$s==null?this:g.$$s,b,i;d==null&&(d=a),b=a,i=a,h.$each_cons.$$p=function(){var h=e.$destructure(arguments),g=h[0],j=h[1],k=o(f,[g,j]);i=j,b===a&&(b=[]),c(k)?(b.push(g),d.$yield(b),b=[]):b.push(g)},h.$each_cons(2),b!==a&&(b.push(i),d.$yield(b))},{$$s:h})}),d(A,'$sort',function d(){var c=d.$$p||a,f=this,e=a;return d.$$p=null,e=f.$to_a(),c!==a||(c=x(function(b,c){return b==null&&(b=a),c==null&&(c=a),b['$<=>'](c)})),b(e,'sort',[],c.$to_proc())}),d(A,'$sort_by',function g(){var h=g.$$p||a,c=this,d=a;return g.$$p=null,!(h!==a)?b(c,'enum_for',["sort_by"],function a(){var b=a.$$s==null?this:a.$$s;return b.$enumerator_size()},{$$s:c}):(d=b(c,'map',[],function(){var b=a;return b=e.$destructure(arguments),[f.yield1(h,b),b]}),b(d,'sort!',[],function(b,c){return b==null&&(b=a),c==null&&(c=a),b[0]['$<=>'](c[0])}),b(d,'map!',[],function(b){return b==null&&(b=a),b[1]}))}),d(A,'$sum',function l(i){var m=l.$$p||a,o=this,d=a,k=a;return l.$$p=null,i==null&&(i=0),d=i,k=0,b(o,'each',[],function(q){var p,l,b=a,o=a,i=a;return p=h(arguments),l=p,b=m!==a?f.yieldX(m,j(l)):e.$destructure(l),y([g(g('Float'),'INFINITY'),g(g('Float'),'INFINITY')['$-@']()]['$include?'](b))&&c(b['$respond_to?']("-"))?(o=r(b,k),i=n(d,o),k=r(r(i,d),o),d=i):d=n(d,b)},-1),d},-1),d(A,'$take',function(a){var b=this;return b.$first(a)}),d(A,'$take_while',function k(){var d,i,j,g;try{return d=l('return'),i=k.$$p||a,j=this,g=a,k.$$p=null,!c(i)?j.$enum_for("take_while"):(g=[],b(j,'each',[],function l(m){var j,k,b=a;return j=h(arguments),k=j,b=e.$destructure(k),c(f.yield1(i,b))||d.$throw(g,l.$$is_lambda),g.push(b)},{$$arity:-1,$$ret:d}))}catch(a){if(a===d)return a.$v;throw a}finally{d.is_orphan=!0}}),d(A,'$uniq',function g(){var i=g.$$p||a,j=this,d=a;return g.$$p=null,d=new Map,b(j,'each',[],function(n){var l,m,g,j=a,k=a;return l=h(arguments),m=l,j=e.$destructure(m),k=i!==a?f.yield1(i,j):j,c(d['$key?'](k))?a:(g=[k,j],b(d,'[]=',g),g[g.length-1])},-1),d.$values()}),d(A,'$tally',function(d){var f=this,e=a;return d&&d!==a&&B(d),e=b(b(f,'group_by',[],"itself".$to_proc()),'transform_values',[],"count".$to_proc()),c(d)?(b(e,'each',[],function(c,f){var e;return c==null&&(c=a),f==null&&(f=a),(e=[c,n(d.$fetch(c,0),f)],b(d,'[]=',e),e[e.length-1])}),d):e},-1),d(A,'$to_h',function k(o){var l=k.$$p||a,m,d,c=this,n;return k.$$p=null,m=h(arguments),d=m,l!==a?b(b(c,'map',[],l.$to_proc()),'to_h',j(d)):(n=new Map,c.$each.$$p=function(){var b=e.$destructure(arguments),a=e['$coerce_to?'](b,g('Array'),"to_ary"),c,d;a.$$is_array||i.$raise(g('TypeError'),"wrong element type "+b.$class()+" (expected array)"),a.length!==2&&i.$raise(g('ArgumentError'),"element has wrong array length (expected 2, was "+a.$length()+")"),c=a[0],d=a[1],f.hash_put(n,c,d)},c.$each.apply(c,d),n)},-1),d(A,'$to_set',function e(l,k){var i=e.$$p||a,c,d,f,g=this;return e.$$p=null,c=h(arguments),c.length>0&&(d=c.shift()),d==null&&(d=H('Set')),f=c,b(d,'new',[g].concat(j(f)),i.$to_proc())},-1),d(A,'$zip',function c(g){var i=c.$$p||a,d,e,f=this;return c.$$p=null,d=h(arguments),e=d,b(f.$to_a(),'zip',j(e))},-1),m(A,"find","detect"),m(A,"filter","find_all"),m(A,"flat_map","collect_concat"),m(A,"map","collect"),m(A,"member?","include?"),m(A,"reduce","inject"),m(A,"select","find_all"),m(A,"to_a","entries")}('::',A)},Opal.modules["corelib/enumerator/arithmetic_sequence"]=function(c){var l=c.klass,b=c.truthy,t=c.to_a,p=c.eqeq,g=c.Kernel,d=c.def,f=c.rb_gt,k=c.rb_lt,o=c.rb_le,u=c.rb_ge,i=c.rb_plus,e=c.rb_minus,h=c.eqeqeq,q=c.not,m=c.rb_times,r=c.rb_divide,n=c.alias,s=[],a=c.nil,j=c.$$$;return c.add_stubs('is_a?,==,raise,respond_to?,class,attr_reader,begin,end,exclude_end?,>,step,<,<=,>=,-@,_lesser_than_end?,<<,+,-,===,%,_greater_than_begin?,reverse,!,include?,*,to_i,abs,/,hash,inspect'),function(v,w,x){var s=l(v,w,'Enumerator'),y=[s].concat(x);return function(A,B,y){var s=l(A,B,'ArithmeticSequence'),z=[s].concat(y),x=c.$r(z),w=s.$$prototype,v;return w.step_arg2=w.receiver_num=w.step_arg1=w.step=w.range=w.topfx=w.bypfx=w.creation_method=w.skipped_arg=a,c.prop(s.$$prototype,'$$is_arithmetic_seq',!0),v=1/0,d(s,'$initialize',function(f,h,i){var e,d=this,k=a;return i==null&&(i="step"),d.creation_method=i,b(f['$is_a?'](j('Array')))?(e=[].concat(t(f)),d.step_arg1=e[0]==null?a:e[0],d.step_arg2=e[1]==null?a:e[1],d.topfx=e[2]==null?a:e[2],d.bypfx=e[3]==null?a:e[3],e,d.receiver_num=h,d.step=1,d.range=b(d.step_arg2)?(d.step=d.step_arg2,c.Range.$new(d.receiver_num,d.step_arg1,!1)):b(d.step_arg1)?c.Range.$new(d.receiver_num,d.step_arg1,!1):c.Range.$new(d.receiver_num,a,!1)):(b(h)||(d.skipped_arg=!0),e=[f,b(k=h)?k:1],d.range=e[0],d.step=e[1],e),d.object=d,p(d.step,0)&&g.$raise(x('ArgumentError'),"step can't be 0"),b(d.step['$respond_to?']("to_int"))?a:g.$raise(x('ArgumentError'),""+("no implicit conversion of "+d.step.$class()+" ")+"into Integer")},-2),s.$attr_reader("step"),d(s,'$begin',function(){var a=this;return a.range.$begin()}),d(s,'$end',function(){var a=this;return a.range.$end()}),d(s,'$exclude_end?',function(){var a=this;return a.range['$exclude_end?']()}),d(s,'$_lesser_than_end?',function(d){var e=this,c=a,g=a;return c=b(g=e.$end())?g:v,b(f(e.$step(),0))?b(e['$exclude_end?']())?k(d,c):o(d,c):b(e['$exclude_end?']())?f(d,c):u(d,c)}),d(s,'$_greater_than_begin?',function(d){var e=this,c=a,g=a;return c=b(g=e.$begin())?g:v['$-@'](),b(f(e.$step(),0))?f(d,c):k(d,c)}),d(s,'$first',function(d){var g=this,c=a,h=a,j=a;if(c=b(h=g.$begin())?h:v['$-@'](),!b(d))return b(g['$_lesser_than_end?'](c))?c:a;for(j=[];b(b(h=g['$_lesser_than_end?'](c))?f(d,0):h);)j['$<<'](c),c=i(c,g.$step()),d=e(d,1);return j},-1),d(s,'$each',function j(){var k=j.$$p||a,d=this,f=a,e=a;if(j.$$p=null,!(k!==a))return d;for(h(a,f=d.$begin())?g.$raise(x('TypeError'),"nil can't be coerced into Integer"):a,e=b(f=d.$begin())?f:v['$-@']();b(d['$_lesser_than_end?'](e));)c.yield1(k,e),e=i(e,d.$step());return d}),d(s,'$last',function(k){var c=this,i=a,d=a,l=a;if(h(v,i=c.$end())||h(v['$-@'](),i)?g.$raise(j('FloatDomainError'),c.$end()):h(a,i)?g.$raise(j('RangeError'),"cannot get the last element of endless arithmetic sequence"):a,d=e(c.$end(),e(c.$end(),c.$begin())['$%'](c.$step())),b(c['$_lesser_than_end?'](d))||(d=e(d,c.$step())),!b(k))return b(c['$_greater_than_begin?'](d))?d:a;for(l=[];b(b(i=c['$_greater_than_begin?'](d))?f(k,0):i);)l['$<<'](d),d=e(d,c.$step()),k=e(k,1);return l.$reverse()},-1),d(s,'$size',function(){var c=this,g=a,d=a;return g=b(f(c.$step(),0))?1:-1,q(c['$_lesser_than_end?'](c.$begin()))?0:b([v['$-@'](),v]['$include?'](c.$step()))?1:b([m(v['$-@'](),g),a]['$include?'](c.$begin()))||b([m(v,g),a]['$include?'](c.$end()))?v:(d=e(c.$end(),e(c.$end(),c.$begin())['$%'](c.$step())),b(c['$_lesser_than_end?'](d))||(d=e(d,c.$step())),i(r(e(d,c.$begin()),c.$step()).$abs().$to_i(),1))}),d(s,'$==',function(c){var d=this,f=a,g=a,h=a,e=a;return b(f=b(g=b(h=b(e=d.$class()['$=='](c.$class()))?d.$begin()['$=='](c.$begin()):e)?d.$end()['$=='](c.$end()):h)?d.$step()['$=='](c.$step()):g)?d['$exclude_end?']()['$=='](c['$exclude_end?']()):f}),d(s,'$hash',function(){var a=this;return[x('ArithmeticSequence'),a.$begin(),a.$end(),a.$step(),a['$exclude_end?']()].$hash()}),d(s,'$inspect',function(){var c=this,d=a;return b(c.receiver_num)?(d=b(c.step_arg2)?"("+c.topfx+c.step_arg1.$inspect()+", "+c.bypfx+c.step_arg2.$inspect()+")":b(c.step_arg1)?"("+c.topfx+c.step_arg1.$inspect()+")":a,"("+c.receiver_num.$inspect()+"."+c.creation_method+d+")"):(d=b(c.skipped_arg)?a:"("+c.step+")","(("+c.range.$inspect()+")."+c.creation_method+d+")")}),n(s,"===","=="),n(s,"eql?","==")}(s,s,y)}('::',null,s)},Opal.modules["corelib/enumerator/chain"]=function(a){var j=a.deny_frozen_access,h=a.klass,e=a.slice,d=a.def,c=a.send,f=a.to_a,g=a.truthy,k=a.rb_plus,l=a.thrower,b=a.nil,i=a.$$$;return a.add_stubs('to_enum,size,each,<<,to_proc,include?,+,reverse_each,respond_to?,rewind,inspect'),function(m,n){var a=h(m,n,'Enumerator');return function(n,o){var a=h(n,o,'Chain'),m=a.$$prototype;return m.enums=m.iterated=b,d(a,'$initialize',function(f){var b,c,a=this;return b=e(arguments),c=b,j(a),a.enums=c,a.iterated=[],a.object=a},-1),d(a,'$each',function g(j){var h=g.$$p||b,i,d,a=this;return g.$$p=null,i=e(arguments),d=i,!(h!==b)?c(a,'to_enum',["each"].concat(f(d)),function a(){var b=a.$$s==null?this:a.$$s;return b.$size()},{$$s:a}):(c(a.enums,'each',[],function g(a){var e=g.$$s==null?this:g.$$s;return e.iterated==null&&(e.iterated=b),a==null&&(a=b),e.iterated['$<<'](a),c(a,'each',f(d),h.$to_proc())},{$$s:a}),a)},-1),d(a,'$size',function(n){var d,h,j,m,a;try{return d=l('return'),m=this,a=b,h=e(arguments),j=h,a=0,c(m.enums,'each',[],function l(h){var e=b;return h==null&&(h=b),e=c(h,'size',f(j)),g([b,i(i('Float'),'INFINITY')]['$include?'](e))&&d.$throw(e,l.$$is_lambda),a=k(a,e)},{$$ret:d}),a}catch(a){if(a===d)return a.$v;throw a}finally{d.is_orphan=!0}},-1),d(a,'$rewind',function(){var a=this;return c(a.iterated,'reverse_each',[],function(a){return a==null&&(a=b),g(a['$respond_to?']("rewind"))?a.$rewind():b}),a.iterated=[],a}),d(a,'$inspect',function(){var a=this;return"#"})}(a,a)}('::',null)},Opal.modules["corelib/enumerator/generator"]=function(a){var g=a.deny_frozen_access,c=a.klass,j=a.truthy,k=a.Kernel,e=a.def,h=a.slice,i=a.send,f=[],b=a.nil,d=a.$$$;return a.add_stubs('include,raise,new,to_proc'),function(l,m,n){var o=c(l,m,'Enumerator'),f=[o].concat(n);return function(l,m,n){var f=c(l,m,'Generator'),o=[f].concat(n),p=a.$r(o),q=f.$$prototype;return q.block=b,f.$include(d('Enumerable')),e(f,'$initialize',function a(){var c=a.$$p||b,e=this;return a.$$p=null,g(e),j(c)||k.$raise(d('LocalJumpError'),"no block given"),e.block=c}),e(f,'$each',function d(k){var j=d.$$p||b,e,c,f=this,g=b;d.$$p=null,e=h(arguments),c=e,g=i(p('Yielder'),'new',[],j.$to_proc());try{c.unshift(g),a.yieldX(f.block,c)}catch(a){if(a&&a.$thrower_type=="breaker")return a.$v;throw a}return f},-1)}(f[0],null,f)}(f[0],null,f)},Opal.modules["corelib/enumerator/lazy"]=function(b){var d=b.truthy,q=b.coerce_to,p=b.yield1,j=b.yieldX,x=b.deny_frozen_access,m=b.klass,f=b.slice,o=b.send2,r=b.find_super,i=b.to_a,w=b.defs,h=b.Kernel,c=b.send,g=b.def,u=b.return_self,n=b.Opal,k=b.rb_lt,s=b.eqeqeq,t=b.rb_plus,l=b.alias,v=[],a=b.nil,e=b.$$$;return b.add_stubs('raise,each,new,enumerator_size,yield,respond_to?,try_convert,<,===,+,for,class,to_proc,destructure,inspect,to_a,find_all,collect_concat,collect,enum_for'),function(y,z,A){var v=m(y,z,'Enumerator'),B=[v].concat(A);return function(z,A,B){var v=m(z,A,'Lazy'),C=[v].concat(B),y=b.$r(C),D=v.$$prototype;return D.enumerator=a,m(v,e('Exception'),'StopLazyError'),w(v,'$for',function b(h,k){var d,e,j=b.$$p||a,g=this,c=a;return b.$$p=null,d=f(arguments,1),e=d,c=o(g,r(g,'for',b,!1,!0),'for',[h].concat(i(e)),j),c.enumerator=h,c},-2),g(v,'$initialize',function g(l,k){var m=g.$$p||a,d=this;return g.$$p=null,k==null&&(k=a),x(d),m!==a||h.$raise(e('ArgumentError'),"tried to call lazy new without a block"),d.enumerator=l,o(d,r(d,'initialize',g,!1,!0),'initialize',[k],function(d,k){var e,g;d==null&&(d=a),e=f(arguments,1),g=e;try{return c(l,'each',i(g),function(e){var b,a;b=f(arguments),a=b,a.unshift(d),j(m,a)},-1)}catch(c){if(b.rescue(c,[y('StopLazyError')]))try{return a}finally{b.pop_exception(c)}else throw c}},-2)},-2),g(v,'$lazy',u),g(v,'$collect',function b(){var g=b.$$p||a,i=this;return b.$$p=null,d(g)||h.$raise(e('ArgumentError'),"tried to call lazy map without a block"),c(y('Lazy'),'new',[i,i.$enumerator_size()],function(b,i){var c,d,e;b==null&&(b=a),c=f(arguments,1),d=c,e=j(g,d),b.$yield(e)},-2)}),g(v,'$collect_concat',function b(){var g=b.$$p||a,i=this;return b.$$p=null,d(g)||h.$raise(e('ArgumentError'),"tried to call lazy map without a block"),c(y('Lazy'),'new',[i,a],function(d,l){var h,i,b,k;d==null&&(d=a),h=f(arguments,1),i=h,b=j(g,i),b['$respond_to?']("force")&&b['$respond_to?']("each")?c(b,'each',[],function(b){return b==null&&(b=a),d.$yield(b)}):(k=n.$try_convert(b,e('Array'),"to_ary"),k===a?d.$yield(b):c(b,'each',[],function(b){return b==null&&(b=a),d.$yield(b)}))},-2)}),g(v,'$drop',function(b){var l=this,g=a,m=a,j=a;return b=q(b,e('Integer'),'to_int'),d(k(b,0))&&h.$raise(e('ArgumentError'),"attempt to drop negative size"),g=l.$enumerator_size(),m=s(e('Integer'),g)?d(k(b,g))?b:g:g,j=0,c(y('Lazy'),'new',[l,m],function(e,m){var g,h;return e==null&&(e=a),g=f(arguments,1),h=g,d(k(j,b))?j=t(j,1):c(e,'yield',i(h))},-2)}),g(v,'$drop_while',function g(){var k=g.$$p||a,l=this,b=a;return g.$$p=null,d(k)||h.$raise(e('ArgumentError'),"tried to call lazy drop_while without a block"),b=!0,c(y('Lazy'),'new',[l,a],function(e,n){var h,g,l;if(e==null&&(e=a),h=f(arguments,1),g=h,d(b))l=j(k,g),d(l)||(b=!1,c(e,'yield',i(g)));else return c(e,'yield',i(g))},-2)}),g(v,'$enum_for',function e(l,k){var j=e.$$p||a,b,d,h,g=this;return e.$$p=null,b=f(arguments),b.length>0&&(d=b.shift()),d==null&&(d="each"),h=b,c(g.$class(),'for',[g,d].concat(i(h)),j.$to_proc())},-1),g(v,'$find_all',function b(){var g=b.$$p||a,k=this;return b.$$p=null,d(g)||h.$raise(e('ArgumentError'),"tried to call lazy select without a block"),c(y('Lazy'),'new',[k,a],function(b,m){var h,e,k;b==null&&(b=a),h=f(arguments,1),e=h,k=j(g,e),d(k)&&c(b,'yield',i(e))},-2)}),g(v,'$grep',function e(g){var b=e.$$p||a,h=this;return e.$$p=null,d(b)?c(y('Lazy'),'new',[h,a],function(c,k){var i,j,e,h;c==null&&(c=a),i=f(arguments,1),j=i,e=n.$destructure(j),h=g['$==='](e),d(h)&&(h=p(b,e),c.$yield(p(b,e)))},-2):c(y('Lazy'),'new',[h,a],function(b,j){var c,e,h,i;b==null&&(b=a),c=f(arguments,1),e=c,h=n.$destructure(e),i=g['$==='](h),d(i)&&b.$yield(h)},-2)}),g(v,'$reject',function b(){var g=b.$$p||a,k=this;return b.$$p=null,d(g)||h.$raise(e('ArgumentError'),"tried to call lazy reject without a block"),c(y('Lazy'),'new',[k,a],function(b,m){var h,e,k;b==null&&(b=a),h=f(arguments,1),e=h,k=j(g,e),d(k)||c(b,'yield',i(e))},-2)}),g(v,'$take',function(b){var l=this,g=a,m=a,j=a;return b=q(b,e('Integer'),'to_int'),d(k(b,0))&&h.$raise(e('ArgumentError'),"attempt to take negative size"),g=l.$enumerator_size(),m=s(e('Integer'),g)?d(k(b,g))?b:g:g,j=0,c(y('Lazy'),'new',[l,m],function(e,n){var g,l;return e==null&&(e=a),g=f(arguments,1),l=g,d(k(j,b))?(c(e,'yield',i(l)),j=t(j,1)):h.$raise(y('StopLazyError'))},-2)}),g(v,'$take_while',function b(){var g=b.$$p||a,k=this;return b.$$p=null,d(g)||h.$raise(e('ArgumentError'),"tried to call lazy take_while without a block"),c(y('Lazy'),'new',[k,a],function(b,n){var k,e,l;b==null&&(b=a),k=f(arguments,1),e=k,l=j(g,e),d(l)?c(b,'yield',i(e)):h.$raise(y('StopLazyError'))},-2)}),g(v,'$inspect',function(){var a=this;return"#<"+a.$class()+": "+a.enumerator.$inspect()+">"}),l(v,"force","to_a"),l(v,"filter","find_all"),l(v,"flat_map","collect_concat"),l(v,"map","collect"),l(v,"select","find_all"),l(v,"to_enum","enum_for")}(v,v,B)}('::',null,v)},Opal.modules["corelib/enumerator/yielder"]=function(a){var c=a.klass,b=a.def,d=a.slice,e=a.send,h=a.to_a,f=[],g=a.nil;return a.add_stubs('yield,proc'),function(f,i,j){var k=c(f,i,'Enumerator'),l=[k].concat(j);return function(i,j){var f=c(i,j,'Yielder'),k=f.$$prototype;return k.block=g,b(f,'$initialize',function a(){var c=a.$$p||g,b=this;return a.$$p=null,b.block=c,b}),b(f,'$yield',function(h){var c,e,f=this,b;if(c=d(arguments),e=c,b=a.yieldX(f.block,e),b&&b.$thrower_type=="break")throw b;return b},-1),b(f,'$<<',function(b){var a=this;return a.$yield(b),a}),b(f,'$to_proc',function(){var a=this;return e(a,'proc',[],function a(g){var b,c,f=a.$$s==null?this:a.$$s;return b=d(arguments),c=b,e(f,'yield',h(c))},{$$arity:-1,$$s:a})})}(l[0],null)}(f[0],null,f)},Opal.modules["corelib/enumerator"]=function(a){var g=a.slice,j=a.coerce_to,o=a.deny_frozen_access,v=a.klass,w=a.defs,c=a.truthy,e=a.send,r=a.not,d=a.def,h=a.rb_plus,i=a.to_a,m=a.Opal,n=a.send2,l=a.find_super,p=a.rb_ge,q=a.Kernel,k=a.rb_le,s=a.alias,t=a.top,u=[],b=a.nil,f=a.$$$;return a.add_stubs('require,include,allocate,new,to_proc,!,respond_to?,empty?,nil?,+,class,__send__,call,enum_for,size,destructure,map,>=,length,raise,[],peek_values,<=,next_values,inspect,any?,each_with_object,autoload'),t.$require("corelib/enumerable"),function(B,y,z){var t=v(B,y,'Enumerator'),A=[t].concat(z),x=a.$r(A),u=t.$$prototype;return u.size=u.args=u.object=u.method=u.values=u.cursor=b,t.$include(f('Enumerable')),t.$$prototype.$$is_enumerator=!0,w(t,'$for',function f(j,k,l){var i=f.$$p||b,d,c,e,h=this,a;return f.$$p=null,d=g(arguments,1),d.length>0&&(c=d.shift()),c==null&&(c="each"),e=d,a=h.$allocate(),a.object=j,a.size=i,a.method=c,a.args=e,a.cursor=0,a},-2),d(t,'$initialize',function d(l){var h=d.$$p||b,i,k,a=this;return d.$$p=null,i=g(arguments),k=i,o(a),a.cursor=0,c(h)?(a.object=e(x('Generator'),'new',[],h.$to_proc()),a.method="each",a.args=[],a.size=arguments[0]||b,c(a.size)&&r(a.size['$respond_to?']("call")))?a.size=j(a.size,f('Integer'),'to_int'):b:(a.object=arguments[0],a.method=arguments[1]||"each",a.args=g(arguments,2),a.size=b)},-1),d(t,'$each',function j(l){var f=j.$$p||b,k,d,a=this;return j.$$p=null,k=g(arguments),d=k,c(f['$nil?']())&&c(d['$empty?']())?a:(d=h(a.args,d),c(f['$nil?']()))?e(a.$class(),'new',[a.object,a.method].concat(i(d))):e(a.object,'__send__',[a.method].concat(i(d)),f.$to_proc())},-1),d(t,'$size',function(){var a=this;return c(a.size['$respond_to?']("call"))?e(a.size,'call',i(a.args)):a.size}),d(t,'$with_index',function g(a){var h=g.$$p||b,d=this,k,i;return g.$$p=null,a==null&&(a=0),a=c(a)?j(a,f('Integer'),'to_int'):0,!c(h)?e(d,'enum_for',["with_index",a],function a(){var b=a.$$s==null?this:a.$$s;return b.$size()},{$$s:d}):(i=a,d.$each.$$p=function(){var a=m.$destructure(arguments),b=h(a,i);return i++,b},d.$each())},-1),d(t,'$each_with_index',function c(){var d=c.$$p||b,a=this;return c.$$p=null,!(d!==b)?e(a,'enum_for',["each_with_index"],function a(){var b=a.$$s==null?this:a.$$s;return b.$size()},{$$s:a}):(n(a,l(a,'each_with_index',c,!1,!0),'each_with_index',[],d),a.object)}),d(t,'$rewind',function(){var a=this;return a.cursor=0,a}),d(t,'$peek_values',function(){var a=this,d=b;return a.values=c(d=a.values)?d:e(a,'map',[],function(d){var a,b;return a=g(arguments),b=a,b},-1),c(p(a.cursor,a.values.$length()))&&q.$raise(f('StopIteration'),"iteration reached an end"),a.values['$[]'](a.cursor)}),d(t,'$peek',function(){var d=this,a=b;return a=d.$peek_values(),c(k(a.$length(),1))?a['$[]'](0):a}),d(t,'$next_values',function(){var a=this,c=b;return c=a.$peek_values(),a.cursor=h(a.cursor,1),c}),d(t,'$next',function(){var d=this,a=b;return a=d.$next_values(),c(k(a.$length(),1))?a['$[]'](0):a}),d(t,'$feed',function(c){var a=this;return a.$raise(x('NotImplementedError'),"Opal doesn't support Enumerator#feed")}),d(t,'$+',function(a){var b=this;return f(f('Enumerator'),'Chain').$new(b,a)}),d(t,'$inspect',function(){var a=this,d=b;return d="#<"+a.$class()+": "+a.object.$inspect()+":"+a.method,c(a.args['$any?']())&&(d=h(d,"("+a.args.$inspect()['$[]'](f('Range').$new(1,-2))+")")),h(d,">")}),s(t,"with_object","each_with_object"),t.$autoload("ArithmeticSequence","corelib/enumerator/arithmetic_sequence"),t.$autoload("Chain","corelib/enumerator/chain"),t.$autoload("Generator","corelib/enumerator/generator"),t.$autoload("Lazy","corelib/enumerator/lazy"),t.$autoload("Yielder","corelib/enumerator/yielder")}('::',null,u)},Opal.modules["corelib/numeric"]=function(b){var s=b.klass,f=b.truthy,e=b.Kernel,a=b.def,A=b.to_ary,i=b.return_self,p=b.rb_minus,m=b.rb_times,k=b.rb_lt,y=b.eqeq,j=b.rb_divide,h=b.return_val,n=b.Opal,B=b.slice,r=b.extract_kwargs,q=b.ensure_kwargs,l=b.hash_get,o=b.not,t=b.send,u=b.rb_ge,v=b.rb_le,w=b.rb_plus,x=b.rb_gt,g=b.alias,z=b.top,d=b.nil,c=b.$$$;return b.add_stubs('require,include,instance_of?,class,Float,respond_to?,coerce,__send__,raise,equal?,-,*,div,<,-@,ceil,to_f,denominator,to_r,==,floor,/,%,Complex,zero?,numerator,abs,arg,coerce_to!,round,<=>,compare,is_a?,!,new,enum_for,to_proc,negative?,>=,<=,+,to_i,truncate,>,angle,conj,imag,rect'),z.$require("corelib/comparable"),function(C,D){var z=s(C,D,'Numeric');return z.$include(c('Comparable')),a(z,'$coerce',function(a){var b=this;return f(a['$instance_of?'](b.$class()))?[a,b]:[e.$Float(a),e.$Float(b)]}),a(z,'$__coerced__',function(i,b){var a,g,j=this,h=d,k=d;if(f(b['$respond_to?']("coerce")))return g=b.$coerce(j),a=A(g),h=a[0]==null?d:a[0],k=a[1]==null?d:a[1],g,h.$__send__(i,k);switch(i.valueOf()){case"+":case"-":case"*":case"/":case"%":case"&":case"|":case"^":case"**":return e.$raise(c('TypeError'),""+b.$class()+" can't be coerced into Numeric");case">":case">=":case"<":case"<=":case"<=>":return e.$raise(c('ArgumentError'),"comparison of "+j.$class()+" with "+b.$class()+" failed");default:return d}}),a(z,'$<=>',function(a){var b=this;return f(b['$equal?'](a))?0:d}),a(z,'$+@',i),a(z,'$-@',function(){var a=this;return p(0,a)}),a(z,'$%',function(a){var b=this;return p(b,m(a,b.$div(a)))}),a(z,'$abs',function(){var a=this;return f(k(a,0))?a['$-@']():a}),a(z,'$abs2',function(){var a=this;return m(a,a)}),a(z,'$angle',function(){var a=this;return f(k(a,0))?c(c('Math'),'PI'):0}),a(z,'$ceil',function(a){var b=this;return a==null&&(a=0),b.$to_f().$ceil(a)},-1),a(z,'$conj',i),a(z,'$denominator',function(){var a=this;return a.$to_r().$denominator()}),a(z,'$div',function(a){var b=this;return y(a,0)&&e.$raise(c('ZeroDivisionError'),"divided by o"),j(b,a).$floor()}),a(z,'$divmod',function(a){var b=this;return[b.$div(a),b['$%'](a)]}),a(z,'$fdiv',function(a){var b=this;return j(b.$to_f(),a)}),a(z,'$floor',function(a){var b=this;return a==null&&(a=0),b.$to_f().$floor(a)},-1),a(z,'$i',function(){var a=this;return e.$Complex(0,a)}),a(z,'$imag',h(0)),a(z,'$integer?',h(!1)),a(z,'$nonzero?',function(){var a=this;return f(a['$zero?']())?d:a}),a(z,'$numerator',function(){var a=this;return a.$to_r().$numerator()}),a(z,'$polar',function(){var a=this;return[a.$abs(),a.$arg()]}),a(z,'$quo',function(a){var b=this;return j(n['$coerce_to!'](b,c('Rational'),"to_r"),a)}),a(z,'$real',i),a(z,'$real?',h(!0)),a(z,'$rect',function(){var a=this;return[a,0]}),a(z,'$round',function(a){var b=this;return b.$to_f().$round(a)},-1),a(z,'$step',function E(K,L,J){var i=E.$$p||d,m,p,g,a,s,x,h=this,k=d,y,F,j,G,H,A,z;E.$$p=null,m=B(arguments),p=r(m),p=q(p),m.length>0&&(g=m.shift()),m.length>0&&(a=m.shift()),s=l(p,"to"),x=l(p,"by"),g!==void 0&&s!==void 0&&e.$raise(c('ArgumentError'),"to is given twice"),a!==void 0&&x!==void 0&&e.$raise(c('ArgumentError'),"step is given twice"),s!==void 0&&(g=s),x!==void 0&&(a=x),g===void 0&&(g=d);function C(){a===d&&e.$raise(c('TypeError'),"step must be numeric"),a!=null&&a['$=='](0)&&e.$raise(c('ArgumentError'),"step can't be 0"),(a===d||a==null)&&(a=1);var b=a['$<=>'](0);b===d&&e.$raise(c('ArgumentError'),"0 can't be coerced into "+a.$class()),(g===d||g==null)&&(g=b>0?c(c('Float'),'INFINITY'):c(c('Float'),'INFINITY')['$-@']()),n.$compare(h,g)}function D(){if(a>0&&h>g||a<0&&h.5&&(b=.5),e((g-h)/a+b)+1)}function I(){if(C(),a===0)return 1/0;if(a%1!==0)return D();if(a>0&&h>g||a<0&&h=g;j+=a)i(j);else for(;j<=g;j+=a)i(j);return h}if(G=h.$to_f().valueOf(),a=a.$to_f().valueOf(),g=g.$to_f().valueOf(),H=D(),isFinite(a))if(a===0)while(!0)i(G);else for(A=0;A=0?gz)&&(z=g),i(z);else H!==0&&i(G);return h}for(k=h;f(y?u(k,g):v(k,g));)b.yield1(i,k),k=w(k,a)},-1),a(z,'$to_c',function(){var a=this;return e.$Complex(a,0)}),a(z,'$to_int',function(){var a=this;return a.$to_i()}),a(z,'$truncate',function(a){var b=this;return a==null&&(a=0),b.$to_f().$truncate(a)},-1),a(z,'$zero?',function(){var a=this;return a['$=='](0)}),a(z,'$positive?',function(){var a=this;return x(a,0)}),a(z,'$negative?',function(){var a=this;return k(a,0)}),a(z,'$dup',i),a(z,'$clone',function(a){var b,c=this;return a=q(a),b=l(a,"freeze"),b==null&&(b=!0),c},-1),a(z,'$finite?',h(!0)),a(z,'$infinite?',h(d)),g(z,"arg","angle"),g(z,"conjugate","conj"),g(z,"imaginary","imag"),g(z,"magnitude","abs"),g(z,"modulo","%"),g(z,"phase","arg"),g(z,"rectangular","rect")}('::',null)},Opal.modules["corelib/array"]=function(e){var d=e.truthy,M=e.falsy,l=e.yield1,p=e.hash_get,n=e.hash_put,J=e.hash_delete,g=e.coerce_to,q=e.respond_to,i=e.deny_frozen_access,D=e.freeze,K=e.opal32_init,o=e.opal32_add,A=e.klass,j=e.slice,v=e.defs,f=e.Kernel,b=e.def,k=e.Opal,t=e.eqeqeq,r=e.send2,s=e.find_super,h=e.send,x=e.rb_gt,C=e.rb_times,z=e.eqeq,B=e.rb_minus,N=e.to_a,y=e.to_ary,u=e.gvars,E=e.rb_ge,F=e.assign_ivar,G=e.rb_lt,H=e.return_self,I=e.neqeq,m=e.alias,w=e.top,L=[],a=e.nil,c=e.$$$;return e.add_stubs('require,include,to_a,warn,raise,replace,respond_to?,to_ary,coerce_to?,join,to_str,===,<=>,==,object_id,inspect,enum_for,class,bsearch_index,to_proc,nil?,coerce_to!,>,*,enumerator_size,empty?,size,map,equal?,dup,each,reduce,-,[],dig,eql?,length,exclude_end?,flatten,frozen?,__id__,sort_by,&,to_s,new,item,max,min,!,>=,**,delete_if,rotate,rand,at,keep_if,shuffle!,<,sort,!=,times,[]=,<<,uniq,|,values,is_a?,end,begin,upto,reject,push,select,select!,collect,collect!,unshift,pristine,singleton_class'),w.$require("corelib/enumerable"),w.$require("corelib/numeric"),function(V,aa,$){var w=A(V,aa,'Array'),_=[w].concat($),P=e.$r(_),O,R;w.$include(c('Enumerable')),e.prop(w.$$prototype,'$$is_array',!0);function X(a){for(var c=a[0],b=1,d=a.length;b6&&c<32767)a.push.apply(a,b);else for(d=0;dc(c('Integer'),'MAX')&&f.$raise(c('ArgumentError'),"array size too big"),arguments.length>2&&f.$raise(c('ArgumentError'),"wrong number of arguments ("+arguments.length+" for 0..2)"),arguments.length===0)return b.length>0&&b.splice(0,b.length),b;if(arguments.length===1){if(d.$$is_array)return b.$replace(d.$to_a()),b;if(d['$respond_to?']("to_ary"))return b.$replace(d.$to_ary()),b}if(d=g(d,c('Integer'),'to_int'),d<0&&f.$raise(c('ArgumentError'),"negative array size"),b.splice(0,b.length),k===a)for(e=0;e',function(b){var e=this,h,f,g;if(t(c('Array'),b))b=b.$to_a();else if(d(b['$respond_to?']("to_ary")))b=b.$to_ary().$to_a();else return a;if(e===b)return 0;h=Math.min(e.length,b.length);for(f=0;f'](b[f]),g!==0)return g;return e.length['$<=>'](b.length)}),b(w,'$==',function(c){var d=this,a={};function b(c,d){var f,h,e,g;if(c===d)return!0;if(!d.$$is_array)return!!q(d,'$to_ary')&&d['$=='](c);if(c.$$constructor!==Array&&(c=c.$to_a()),d.$$constructor!==Array&&(d=d.$to_a()),c.length!==d.length)return!1;a[c.$object_id()]=!0;for(f=0,h=c.length;ff)return a;if(d<0)if(d+=f,d<0)return[];return(!i||b.end===a)&&(d+=1),j=h.slice(c,d),j}function Y(d,a){var b,e=[],c=0,f;for(a.step<0?(f={begin:a.range.end,end:a.range.begin,excl:!1,excl_rev:a.range.excl},b=S(d,f).$reverse()):b=S(d,a.range);c=f||b<0?a:d[b]:(c=g(c,e.Integer,'to_int'),c<0||b>f||b<0)?a:(h=d.slice(b,b+c),h)}b(w,'$[]',function(a,c){var b=this;return a.$$is_range?S(b,a):a.$$is_arithmetic_seq?Y(b,a):Z(b,a,c)},-2),b(w,'$[]=',function(b,d,p){var h=this,j=a,m=a,l,n,r,k,o,q;if(i(h),j=a,n=h.length,b.$$is_range){if(d.$$is_array?j=d.$to_a():d['$respond_to?']("to_ary")?j=d.$to_ary().$to_a():j=[d],r=b.excl,k=b.begin===a?0:g(b.begin,e.Integer,'to_int'),o=b.end===a?-1:g(b.end,e.Integer,'to_int'),k<0&&(k+=n,k<0&&f.$raise(c('RangeError'),""+b.$inspect()+" out of range")),o<0&&(o+=n),(!r||b.end===a)&&(o+=1),k>n)for(l=n;ln)for(l=n;l=d.length?a:d[b]}),b(w,'$bsearch_index',function j(){var m=j.$$p||a,i=this,g,h,d,k,b,e,n;if(j.$$p=null,!(m!==a))return i.$enum_for("bsearch_index");for(g=0,h=i.length,d,k,b,e=!1,n=a;g0){for(f=0,g=e.length;f0&&b>a?Q(b-1,a-1)+Q(b-1,a):0}b(w,'$combination',function n(q){var j=n.$$p||a,f=this,d=a,i,o,g,l,b,m,p;if(n.$$p=null,d=k['$coerce_to!'](q,c('Integer'),"to_int"),!(j!==a))return h(f,'enum_for',["combination",d],function a(){var b=a.$$s==null?this:a.$$s;return Q(b.length,d)},{$$s:f});if(d===0)e.yield1(j,[]);else if(d===1)for(i=0,o=f.length;i=0&&d=0&&i(b,0,[],d),d}),b(w,'$compact',function(){for(var c=this,d=[],b=0,f=c.length,e;b=d.length?a:(e=d[b],d.splice(b,1),e)}),b(w,'$delete_if',function c(){var d=c.$$p||a,b=this;return c.$$p=null,!(d!==a)?h(b,'enum_for',["delete_if"],function a(){var b=a.$$s==null?this:a.$$s;return b.$size()},{$$s:b}):(i(b),U(b,M,d),b)}),b(w,'$difference',function(f){var b,c,d=this;return b=j(arguments),c=b,h(c,'reduce',[d.$to_a().$dup()],function(b,c){return b==null&&(b=a),c==null&&(c=a),B(b,c)})},-1),b(w,'$dig',function(i,l){var g,e,k=this,b=a;return g=j(arguments,1),e=g,b=k['$[]'](i),b===a||e.length===0?b:(d(b['$respond_to?']("dig"))||f.$raise(c('TypeError'),""+b.$class()+" does not have #dig method"),h(b,'dig',N(e)))},-2),b(w,'$drop',function(a){var b=this;return a=g(a,c('Integer'),'to_int'),a<0&&f.$raise(c('ArgumentError')),b.slice(a)}),b(w,'$dup',function c(){var d=c.$$p||a,b=this;return c.$$p=null,b.$$class===e.Array&&b.$$class.$allocate.$$pristine&&b.$copy_instance_variables.$$pristine&&b.$initialize_dup.$$pristine?b.slice(0):r(b,s(b,'dup',c,!1,!0),'dup',[],d)}),b(w,'$each',function d(){var e=d.$$p||a,b=this,c;if(d.$$p=null,!(e!==a))return h(b,'enum_for',["each"],function a(){var b=a.$$s==null?this:a.$$s;return b.$size()},{$$s:b});for(c=0;c=0&&b2)&&f.$raise(c('ArgumentError'),"wrong number of arguments ("+l.$length()+" for 0..2)"),n=l,h=y(n),k=h[0]==null?a:h[0],o=h[1]==null?a:h[1],n):(d(l.length==0)?f.$raise(c('ArgumentError'),"wrong number of arguments (0 for 1..3)"):d(l.length>3)&&f.$raise(c('ArgumentError'),"wrong number of arguments ("+l.$length()+" for 1..3)"),n=l,h=y(n),s=h[0]==null?a:h[0],k=h[1]==null?a:h[1],o=h[2]==null?a:h[2],n),t(c('Range'),k)){if(d(o)&&f.$raise(c('TypeError'),"length invalid with range"),b=k.begin===a?0:g(k.begin,c('Integer'),'to_int'),d(b<0)&&(b+=this.length),d(b<0)&&f.$raise(c('RangeError'),""+k.$inspect()+" out of range"),e=k.end===a?-1:g(k.end,c('Integer'),'to_int'),d(e<0)&&(e+=this.length),d(k['$exclude_end?']())||(e+=1),d(e<=b))return m}else if(d(k))if(b=g(k,c('Integer'),'to_int'),d(b<0)&&(b+=this.length),d(b<0)&&(b=0),d(o)){if(e=g(o,c('Integer'),'to_int'),d(e==0))return m;e+=b}else e=this.length;else b=0,e=this.length;if(d(b>this.length))for(p=this.length;pthis.length)&&(this.length=e),d(q))for(v=this.length;b0){if(b<0&&(b+=d.length+1,b<0&&f.$raise(c('IndexError'),""+b+" is out of bounds")),b>d.length)for(h=d.length;hb.length&&(d=b.length),b.slice(b.length-d,b.length))},-1),b(w,'$length',function(){var a=this;return a.length}),b(w,'$max',function b(c){var d=b.$$p||a,e=this;return b.$$p=null,h(e.$each(),'max',[c],d.$to_proc())},-1),b(w,'$min',function b(){var c=b.$$p||a,d=this;return b.$$p=null,h(d.$each(),'min',[],c.$to_proc())});function ab(b,a){for(var c=a>=0?1:0;a;)c*=b,b--,a--;return c}return b(w,'$permutation',function o(b){var f=o.$$p||a,d=this,j=a,k=a,i,p,m,n;if(o.$$p=null,!(f!==a))return h(d,'enum_for',["permutation",b],function a(){var c=a.$$s==null?this:a.$$s;return ab(c.length,b===void 0?c.length:b)},{$$s:d});if(b===void 0?b=d.length:b=g(b,c('Integer'),'to_int'),b<0||d.lengthb.length)?b.splice(0,b.length):b.splice(b.length-e,b.length)},-1),b(w,'$product',function q(v){var t=q.$$p||a,s,o,p=this,l,d,i,r,k,b,h,n,m,u;q.$$p=null,s=j(arguments),o=s,l=t!==a?null:[],d=o.length+1,i=new Array(d),r=new Array(d),k=new Array(d),u=1,k[0]=p;for(b=1;b2147483647&&f.$raise(c('RangeError'),"too big to product"),r[b]=m,i[b]=0}outer_loop:for(;;){n=[];for(b=0;b0&&a.splice(0,a.length),T(a,b),a}),b(w,'$reverse',function(){var a=this;return a.slice(0).reverse()}),b(w,'$reverse!',function(){var a=this;return i(a),a.reverse()}),b(w,'$reverse_each',function d(){var e=d.$$p||a,b=this,c;if(d.$$p=null,!(e!==a))return h(b,'enum_for',["reverse_each"],function a(){var b=a.$$s==null?this:a.$$s;return b.$size()},{$$s:b});for(c=b.length-1;c>=0;c--)l(e,b[c]);return b}),b(w,'$rindex',function g(d){var e=g.$$p||a,c=this,b,f;if(g.$$p=null,d!=null&&e!==a&&c.$warn("warning: given block not used"),d!=null){for(b=c.length-1;b>=0;b--){if(b>=c.length)break;if(c[b]['$=='](d))return b}}else if(e!==a){for(b=c.length-1;b>=0;b--){if(b>=c.length)break;if(f=e(c[b]),f!==!1&&f!==a)return b}}else if(d==null)return c.$enum_for("rindex");return a},-1),b(w,'$rotate',function(a){var b=this,d,e,h,f;return a==null&&(a=1),a=g(a,c('Integer'),'to_int'),b.length===1?b.slice():b.length===0?[]:(d=b.slice(),e=a%d.length,h=d.slice(e),f=d.slice(0,e),h.concat(f))},-1),b(w,'$rotate!',function(d){var b=this,e=a;return d==null&&(d=1),i(b),b.length===0||b.length===1?b:(d=g(d,c('Integer'),'to_int'),e=b.$rotate(d),b.$replace(e))},-1),function(h,i){var e=A(h,i,'SampleRandom'),j=e.$$prototype;return j.rng=a,b(e,'$initialize',F("rng")),b(e,'$rand',function(e){var h=this,b=a;return b=g(h.rng.$rand(e),c('Integer'),'to_int'),d(b<0)&&f.$raise(c('RangeError'),"random value must be >= 0"),d(be.length&&(b=e.length),b){case 0:return[];break;case 1:return[e[i.$rand(e.length)]];break;case 2:return j=i.$rand(e.length),l=i.$rand(e.length-1),j<=l&&l++,[e[j],e[l]];break;default:if(e.length/b>3){for(o=!1,q=0,h=P('Array').$new(b),j=1,h[0]=i.$rand(e.length);j100){o=!0;break}p=i.$rand(e.length)}if(o)break;l++}if(o)break;h[j]=p,j++}if(!o){for(j=0;j=g&&f.$raise(c('RangeError'),"random number too big "+e)):e=d.$rand(g),j=d[--g],d[g]=d[e],d[e]=j;return d},-1),b(w,'$slice!',function(m,j){var b=this,l=a,h=a,k=a,f=a,e=a,n,p;if(i(b),l=a,d(j===void 0))if(t(c('Range'),m))h=m,l=b['$[]'](h),k=h.begin===a?0:g(h.begin,c('Integer'),'to_int'),f=h.end===a?-1:g(h.end,c('Integer'),'to_int'),k<0&&(k+=b.length),f<0?f+=b.length:f>=b.length&&(f=b.length-1,h.excl&&(f+=1)),n=f-k,h.excl&&h.end!==a?f-=1:n+=1,k=0&&f=0&&n>0&&b.splice(k,n);else{if(e=g(m,c('Integer'),'to_int'),e<0&&(e+=b.length),e<0||e>=b.length)return a;l=b[e],e===0?b.shift():b.splice(e,1)}else{if(e=g(m,c('Integer'),'to_int'),j=g(j,c('Integer'),'to_int'),j<0)return a;p=e+j,l=b['$[]'](e,j),e<0&&(e+=b.length),e+j>b.length&&(j=b.length-e),e=0&&b.splice(e,j)}return l},-2),b(w,'$sort',function g(){var b=g.$$p||a,e=this;return g.$$p=null,!d(e.length>1)?e:(b===a&&(b=function(a,b){return a['$<=>'](b)}),e.slice().sort(function(e,g){var d=b(e,g);return d===a&&f.$raise(c('ArgumentError'),"comparison of "+e.$inspect()+" with "+g.$inspect()+" failed"),x(d,0)?1:G(d,0)?-1:0}))}),b(w,'$sort!',function e(){var f=e.$$p||a,b=this,c,d,g;e.$$p=null,i(b),f!==a?c=h(b.slice(),'sort',[],f.$to_proc()):c=b.slice().$sort(),b.length=0;for(d=0,g=c.length;d=0;b--)c.splice(d[b],1);return d.length===0?a:c}),b(w,'$unshift',function(m){var h,f,a=this,g,b,k,e,c,d;if(h=j(arguments),f=h,i(a),g=a.length,b=f.length,b==0)return a;k=g-b;for(e=0;e=0;)a[c]=a[c-b],c--;for(d=0;d=,>,==,lambda?,abs,arity,enum_for,size,respond_to?,class,dig,except!,dup,delete,new,map,to_proc,flatten,frozen?,eql?,default,default_proc,default_proc=,default=,to_h,proc,!,select,select!,has_key?,indexes,index,length,[]=,has_value?'),z.$require("corelib/enumerable"),function(H,I,F){var z=C(H,I,'Hash'),G=[z].concat(F),E=c.$r(G),A,D;return z.$include(f('Enumerable')),z.$$prototype.$$is_hash=!0,s(z,'$[]',function(l){var i,c,h=this,d,g,b,e;if(i=m(arguments),c=i,g=c.length,g===1){if(d=k['$coerce_to?'](c['$[]'](0),f('Hash'),"to_hash"),d!==a)return h.$allocate()['$merge!'](d);c=k['$coerce_to?'](c['$[]'](0),f('Array'),"to_ary"),c===a&&n.$raise(f('ArgumentError'),"odd number of arguments for Hash"),g=c.length,d=h.$allocate();for(e=0;e=',function(b){var d=this,c=a;return!(b=k['$coerce_to!'](b,f('Hash'),"to_hash"),d.size',function(a){var b=this;return!(a=k['$coerce_to!'](a,f('Hash'),"to_hash"),b.size<=a.size)&&u(b,a)}),b(z,'$<',function(a){var b=this;return a=k['$coerce_to!'](a,f('Hash'),"to_hash"),w(a,b)}),b(z,'$<=',function(a){var b=this;return a=k['$coerce_to!'](a,f('Hash'),"to_hash"),u(a,b)}),b(z,'$[]',function(a){var b=this,c=l(b,a);return c!==void 0?c:b.$default(a)}),b(z,'$[]=',function(c,a){var b=this;return g(b),i(b,c,a),a}),b(z,'$assoc',function(b){var c=this;return d(c,a,function(c,d){return c['$=='](b)?[!0,[c,d]]:[!1,a]})}),b(z,'$clear',function(){var a=this;return g(a),a.clear(),a.$$keys&&a.$$keys.clear(),a}),b(z,'$clone',function(){var a=this,b=a.$class().$new();return t(a,b),a["$frozen?"]()?b.$freeze():b}),b(z,'$compact',function(){var c=this,b=new Map;return d(c,b,function(d,c){return c!==a&&i(b,d,c),[!1,b]})}),b(z,'$compact!',function(){var b=this,c;return g(b),c=a,d(b,c,function(d,e){return e===a&&(o(b,d),c=b),[!1,c]})}),b(z,'$compare_by_identity',function(){var a=this;return g(a),a.$$by_identity||(a.$$by_identity=!0,a.size!==0&&c.hash_rehash(a)),a}),b(z,'$compare_by_identity?',function(){var a=this;return a.$$by_identity===!0}),b(z,'$default',function(c){var b=this;return c!==void 0&&b.$$proc!==a&&b.$$proc!==void 0?b.$$proc.$call(b,c):b.$$none===void 0?a:b.$$none},-1),b(z,'$default=',function(c){var b=this;return g(b),b.$$proc=a,b.$$none=c,c}),b(z,'$default_proc',function(){var b=this;return b.$$proc!==void 0?b.$$proc:a}),b(z,'$default_proc=',function(d){var c=this,b;return g(c),b=d,b!==a&&(b=k['$coerce_to!'](b,f('Proc'),"to_proc"),b['$lambda?']()&&b.$arity().$abs()!==2&&n.$raise(f('TypeError'),"default_proc takes two arguments")),c.$$none=a,c.$$proc=b,d}),b(z,'$delete',function b(d){var e=b.$$p||a,f=this,h;return b.$$p=null,g(f),h=o(f,d),h!==void 0?h:e!==a?c.yield1(e,d):a}),b(z,'$delete_if',function c(){var f=c.$$p||a,b=this;return c.$$p=null,!j(f)?e(b,'enum_for',["delete_if"],function a(){var b=a.$$s==null?this:a.$$s;return b.$size()},{$$s:b}):(g(b),d(b,b,function(c,e){var d=f(c,e);return d!==!1&&d!==a&&o(b,c),[!1,b]}))}),b(z,'$dig',function(g,i){var d,c,h=this,b=a;return d=m(arguments,1),c=d,b=h['$[]'](g),b===a||c.length===0?b:(j(b['$respond_to?']("dig"))||n.$raise(f('TypeError'),""+b.$class()+" does not have #dig method"),e(b,'dig',r(c)))},-2),b(z,'$dup',function(){var a=this;return t(a,a.$class().$new())}),b(z,'$each',function c(){var f=c.$$p||a,b=this;return c.$$p=null,!j(f)?e(b,'enum_for',["each"],function a(){var b=a.$$s==null?this:a.$$s;return b.$size()},{$$s:b}):d(b,b,function(a,c){return B(f,[a,c]),[!1,b]})}),b(z,'$each_key',function c(){var f=c.$$p||a,b=this;return c.$$p=null,!j(f)?e(b,'enum_for',["each_key"],function a(){var b=a.$$s==null?this:a.$$s;return b.$size()},{$$s:b}):d(b,b,function(a,c){return f(a),[!1,b]})}),b(z,'$each_value',function c(){var f=c.$$p||a,b=this;return c.$$p=null,!j(f)?e(b,'enum_for',["each_value"],function a(){var b=a.$$s==null?this:a.$$s;return b.$size()},{$$s:b}):d(b,b,function(c,a){return f(a),[!1,b]})}),b(z,'$empty?',function(){var a=this;return a.size===0}),b(z,'$except',function(f){var a,b,c=this;return a=m(arguments),b=a,e(c.$dup(),'except!',r(b))},-1),b(z,'$except!',function(g){var b,c,d=this;return b=m(arguments),c=b,e(c,'each',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),d.$delete(b)},{$$s:d}),d},-1),b(z,'$fetch',function c(b,d){var e=c.$$p||a,g=this,h;return c.$$p=null,h=l(g,b),h!==void 0?h:e!==a?e(b):d!==void 0?d:n.$raise(f('KeyError').$new("key not found: "+b.$inspect(),new Map([["key",b],["receiver",g]])))},-2),b(z,'$fetch_values',function b(h){var f=b.$$p||a,c,d,g=this;return b.$$p=null,c=m(arguments),d=c,e(d,'map',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),e(d,'fetch',[b],f.$to_proc())},{$$s:g})},-1),b(z,'$flatten',function(b){var c=this,a;return b==null&&(b=1),b=k['$coerce_to!'](b,f('Integer'),"to_int"),a=[],d(c,a,function(d,c){return a.push(d),c.$$is_array?b===1?(a.push(c),[!1,a]):(a=a.concat(c.$flatten(b-2)),[!1,a]):(a.push(c),[!1,a])})},-1),b(z,'$freeze',function(){var a=this;return j(a['$frozen?']())?a:y(a)}),b(z,'$has_key?',function(a){var b=this;return l(b,a)!==void 0}),b(z,'$has_value?',function(a){var b=this;return d(b,!1,function(c,b){return b['$=='](a)?[!0,!0]:[!1,!1]})}),b(z,'$hash',function(){var e=this,g=A===void 0,j=e.$object_id(),a=v(),i=e.size,c=new Int32Array(i),b,h,f;if(a=p(a,4),a=p(a,i),g)A=Object.create(null);else if(A[j])return p(a,16843009);try{for(h in A)if(f=A[h],e['$eql?'](f))return p(a,16843009);A[j]=e,b=0,d(e,!1,function(a,d){return c[b]=[1883326802,a,d].$hash(),b++,[!1,!1]}),c=c.sort();for(b=0;b'+b),[!1,!1]}),'{'+f.join(', ')+'}');return a}finally{c&&(D=void 0)}}()}),b(z,'$invert',function(){var b=this,a=new Map;return d(b,a,function(b,c){return i(a,c,b),[!1,a]})}),b(z,'$keep_if',function c(){var f=c.$$p||a,b=this;return c.$$p=null,!j(f)?e(b,'enum_for',["keep_if"],function a(){var b=a.$$s==null?this:a.$$s;return b.$size()},{$$s:b}):(g(b),d(b,b,function(c,e){var d=f(c,e);return(d===!1||d===a)&&o(b,c),[!1,b]}))}),b(z,'$keys',function(){var a=this;return Array.from(a.keys())}),b(z,'$length',function(){var a=this;return a.size}),b(z,'$merge',function b(h){var f=b.$$p||a,c,d,g=this;return b.$$p=null,c=m(arguments),d=c,e(g.$dup(),'merge!',r(d),f.$to_proc())},-1),b(z,'$merge!',function n(p){var o=n.$$p||a,j,h,b=this,c,q,e;n.$$p=null,j=m(arguments),h=j,g(b);for(c=0;c,!,**,new,<,to_f,==,nan?,infinite?,enum_for,+,-,gcd,lcm,%,/,frexp,to_i,ldexp,rationalize,*,<<,to_r,truncate,-@,size,<=,>=,inspect,angle,to_s,is_a?,abs,next,coerce_to?'),B.$require("corelib/numeric"),function(G,I,J){var j=t(G,I,'Number'),K=[j].concat(J),w,H;h.$bridge(Number,j),d.prop(j.$$prototype,'$$is_number',!0),j.$$is_number_class=!0,w=new Map,function(c,g){return b(c,'$allocate',function(){var b=this;return e.$raise(a('TypeError'),"allocator undefined for "+b.$name())}),d.udef(c,'$new'),f}(d.get_singleton_class(j),K),b(j,'$coerce',function(b){var c=this;if(b===f)e.$raise(a('TypeError'),"can't convert "+b.$class()+" into Float");else if(b.$$is_string)return[e.$Float(b),c];else if(b['$respond_to?']("to_f"))return[h['$coerce_to!'](b,a('Float'),"to_f"),c];else if(b.$$is_number)return[b,c];else e.$raise(a('TypeError'),"can't convert "+b.$class()+" into Float")}),b(j,'$__id__',function(){var a=this,b;return a|0===a?a*2+1:w.has(a)?w.get(a):(b=d.uid(),w.set(a,b),b)}),b(j,'$hash',function(){var a=this;return a|0===a?a.$__id__():a.toString().$hash()}),b(j,'$+',function(a){var b=this;return a.$$is_number?b+a:b.$__coerced__("+",a)}),b(j,'$-',function(a){var b=this;return a.$$is_number?b-a:b.$__coerced__("-",a)}),b(j,'$*',function(a){var b=this;return a.$$is_number?b*a:b.$__coerced__("*",a)}),b(j,'$/',function(a){var b=this;return a.$$is_number?b/a:b.$__coerced__("/",a)}),b(j,'$%',function(b){var c=this;if(b.$$is_number){if(b==-(1/0))return b;if(b==0)e.$raise(a('ZeroDivisionError'),"divided by 0");else return b<0||c<0?(c%b+b)%b:c%b}else return c.$__coerced__("%",b)}),b(j,'$&',function(a){var b=this;return a.$$is_number?b&a:b.$__coerced__("&",a)}),b(j,'$|',function(a){var b=this;return a.$$is_number?b|a:b.$__coerced__("|",a)}),b(j,'$^',function(a){var b=this;return a.$$is_number?b^a:b.$__coerced__("^",a)}),b(j,'$<',function(a){var b=this;return a.$$is_number?b',function(a){var b=this;return a.$$is_number?b>a:b.$__coerced__(">",a)}),b(j,'$>=',function(a){var b=this;return a.$$is_number?b>=a:b.$__coerced__(">=",a)}),H=function(b,a){return a.$$is_number?isNaN(b)||isNaN(a)?f:b>a?1:b",a)},b(j,'$<=>',function(b){var c=this;try{return H(c,b)}catch(b){if(d.rescue(b,[a('ArgumentError')]))try{return f}finally{d.pop_exception(b)}else throw b}}),b(j,'$<<',function(b){var c=this;return b=h['$coerce_to!'](b,a('Integer'),"to_int"),b>0?c<>-b}),b(j,'$>>',function(b){var c=this;return b=h['$coerce_to!'](b,a('Integer'),"to_int"),b>0?c>>b:c<<-b}),b(j,'$[]',function(b){var c=this;return b=h['$coerce_to!'](b,a('Integer'),"to_int"),b<0?0:b>=32?c<0?1:0:c>>b&1}),b(j,'$+@',function(){var a=this;return+a}),b(j,'$-@',function(){var a=this;return-a}),b(j,'$~',function(){var a=this;return~a}),b(j,'$**',function(b){var d=this;return g(a('Integer'),b)?A(a('Integer')['$==='](d))||c(p(b,0))?Math.pow(d,b):a('Rational').$new(d,1)['$**'](b):c(m(d,0))&&(g(a('Float'),b)||g(a('Rational'),b))?a('Complex').$new(d,0)['$**'](b.$to_f()):c(b.$$is_number!=null)?Math.pow(d,b):d.$__coerced__("**",b)}),b(j,'$==',function(a){var b=this;return a.$$is_number?b.valueOf()===a.valueOf():!!a['$respond_to?']("==")&&a['$=='](b)}),i(j,"===","=="),b(j,'$abs',function(){var a=this;return Math.abs(a)}),b(j,'$abs2',function(){var a=this;return Math.abs(a*a)}),b(j,'$allbits?',function(b){var c=this;return b=h['$coerce_to!'](b,a('Integer'),"to_int"),(c&b)==b}),b(j,'$anybits?',function(b){var c=this;return b=h['$coerce_to!'](b,a('Integer'),"to_int"),(c&b)!==0}),b(j,'$angle',function(){var a=this;return c(a['$nan?']())?a:a==0?1/a>0?0:Math.PI:a<0?Math.PI:0}),b(j,'$bit_length',function(){var b=this,c,d;if(g(a('Integer'),b)||e.$raise(a('NoMethodError').$new("undefined method `bit_length` for "+b+":Float","bit_length")),b===0||b===-1)return 0;for(c=0,d=b<0?~b:b;d!=0;)c+=1,d>>>=1;return c}),b(j,'$ceil',function(a){var e=this,b,d,c;return a==null&&(a=0),b=e.$to_f(),b%1===0&&a>=0?b:(d=Math.pow(10,a),c=Math.ceil(b*d)/d,b%1===0&&(c=Math.round(c)),c)},-1),b(j,'$chr',function(a){var b=this;return d.enc(String.fromCharCode(b),a||"BINARY")},-1),b(j,'$denominator',function b(){var d=b.$$p||f,a=this;return b.$$p=null,c(a['$nan?']())||c(a['$infinite?']())?1:q(a,o(a,'denominator',b,!1,!0),'denominator',[],d)}),b(j,'$downto',function i(b){var j=i.$$p||f,d=this,h;if(i.$$p=null,!(j!==f))return u(d,'enum_for',["downto",b],function f(){var d=f.$$s==null?this:f.$$s;return g(a('Numeric'),b)||e.$raise(a('ArgumentError'),"comparison of "+d.$class()+" with "+b.$class()+" failed"),c(p(b,d))?0:r(l(d,b),1)},{$$s:d});b.$$is_number||e.$raise(a('ArgumentError'),"comparison of "+d.$class()+" with "+b.$class()+" failed");for(h=d;h>=b;h--)j(h);return d}),b(j,'$equal?',function(a){var b=this,d=f;return c(d=b['$=='](a))?d:isNaN(b)&&isNaN(a)}),b(j,'$even?',function(){var a=this;return a%2===0}),b(j,'$floor',function(a){var e=this,b,d,c;return a==null&&(a=0),b=e.$to_f(),b%1===0&&a>=0?b:(d=Math.pow(10,a),c=Math.floor(b*d)/d,b%1===0&&(c=Math.round(c)),c)},-1),b(j,'$gcd',function(d){var f=this,b,c,h;for(g(a('Integer'),d)||e.$raise(a('TypeError'),"not an integer"),b=Math.abs(f),c=Math.abs(d);b>0;)h=b,b=c%b,c=h;return c}),b(j,'$gcdlcm',function(a){var b=this;return[b.$gcd(a),b.$lcm(a)]}),b(j,'$integer?',function(){var a=this;return a%1===0}),b(j,'$is_a?',function d(c){var e=d.$$p||f,b=this;return!!(d.$$p=null,k(c,a('Integer'))&&g(a('Integer'),b))||(!!(k(c,a('Integer'))&&g(a('Integer'),b))||(!!(k(c,a('Float'))&&g(a('Float'),b))||q(b,o(b,'is_a?',d,!1,!0),'is_a?',[c],e)))}),b(j,'$instance_of?',function d(c){var e=d.$$p||f,b=this;return!!(d.$$p=null,k(c,a('Integer'))&&g(a('Integer'),b))||(!!(k(c,a('Integer'))&&g(a('Integer'),b))||(!!(k(c,a('Float'))&&g(a('Float'),b))||q(b,o(b,'instance_of?',d,!1,!0),'instance_of?',[c],e)))}),b(j,'$lcm',function(b){var c=this;return g(a('Integer'),b)||e.$raise(a('TypeError'),"not an integer"),c==0||b==0?0:Math.abs(c*b/c.$gcd(b))}),b(j,'$next',function(){var a=this;return a+1}),b(j,'$nobits?',function(b){var c=this;return b=h['$coerce_to!'](b,a('Integer'),"to_int"),(c&b)==0}),b(j,'$nonzero?',function(){var a=this;return a==0?f:a}),b(j,'$numerator',function b(){var d=b.$$p||f,a=this;return b.$$p=null,c(a['$nan?']())||c(a['$infinite?']())?a:q(a,o(a,'numerator',b,!1,!0),'numerator',[],d)}),b(j,'$odd?',function(){var a=this;return a%2!==0}),b(j,'$ord',x),b(j,'$pow',function(b,c){var d=this;return d==0&&e.$raise(a('ZeroDivisionError'),"divided by 0"),c===void 0?d['$**'](b):(a('Integer')['$==='](b)||e.$raise(a('TypeError'),"Integer#pow() 2nd argument not allowed unless a 1st argument is integer"),b<0&&e.$raise(a('TypeError'),"Integer#pow() 1st argument cannot be negative when 2nd argument specified"),a('Integer')['$==='](c)||e.$raise(a('TypeError'),"Integer#pow() 2nd argument not allowed unless all arguments are integers"),c===0&&e.$raise(a('ZeroDivisionError'),"divided by 0"),d['$**'](b)['$%'](c))},-2),b(j,'$pred',function(){var a=this;return a-1}),b(j,'$quo',function c(d){var e=c.$$p||f,b=this;return c.$$p=null,g(a('Integer'),b)?q(b,o(b,'quo',c,!1,!0),'quo',[d],e):n(b,d)}),b(j,'$rationalize',function(k){var h,j,b=this,i=f,d=f;return arguments.length>1&&e.$raise(a('ArgumentError'),"wrong number of arguments ("+arguments.length+" for 0..1)"),g(a('Integer'),b)?a('Rational').$new(b,1):c(b['$infinite?']())?e.$raise(a('FloatDomainError'),"Infinity"):c(b['$nan?']())?e.$raise(a('FloatDomainError'),"NaN"):c(k==null)?(j=a('Math').$frexp(b),h=s(j),i=h[0]==null?f:h[0],d=h[1]==null?f:h[1],j,i=a('Math').$ldexp(i,a(a('Float'),'MANT_DIG')).$to_i(),d=l(d,a(a('Float'),'MANT_DIG')),a('Rational').$new(v(2,i),1['$<<'](l(1,d))).$rationalize(a('Rational').$new(1,1['$<<'](l(1,d))))):b.$to_r().$rationalize(k)},-1),b(j,'$remainder',function(a){var b=this;return l(b,v(a,n(b,a).$truncate()))}),b(j,'$round',function(b){var j,o,d=this,u=f,i=f,q,t;if(g(a('Integer'),d))return c(b==null)?d:(g(a('Float'),b)&&c(b['$infinite?']())&&e.$raise(a('RangeError'),"Infinity"),b=h['$coerce_to!'](b,a('Integer'),"to_int"),c(m(b,a(a('Integer'),'MIN')))&&e.$raise(a('RangeError'),"out of bounds"),c(b>=0))?d:(b=b['$-@'](),.415241*b-.125>d.$size())?0:(q=Math.pow(10,b),t=Math.floor((Math.abs(d)+q/2)/q)*q,d<0?-t:t);else{if(c(d['$nan?']())&&c(b==null)&&e.$raise(a('FloatDomainError'),"NaN"),b=h['$coerce_to!'](b||0,a('Integer'),"to_int"),c(C(b,0)))c(d['$nan?']())?e.$raise(a('RangeError'),"NaN"):c(d['$infinite?']())&&e.$raise(a('FloatDomainError'),"Infinity");else if(k(b,0))return Math.round(d);else if(c(d['$nan?']())||c(d['$infinite?']()))return d;return o=a('Math').$frexp(d),j=s(o),u=j[0]==null?f:j[0],i=j[1]==null?f:j[1],o,c(y(b,l(r(a(a('Float'),'DIG'),2),c(p(i,0))?n(i,4):l(n(i,3),1))))?d:c(m(b,(c(p(i,0))?r(n(i,3),1):n(i,4))['$-@']()))?0:Math.round(d*Math.pow(10,b))/Math.pow(10,b)}},-1),b(j,'$times',function d(){var e=d.$$p||f,a=this,b;if(d.$$p=null,!c(e))return u(a,'enum_for',["times"],function a(){var b=a.$$s==null?this:a.$$s;return b},{$$s:a});for(b=0;b=0?b:(d=Math.pow(10,a),c=parseInt(b*d,10)/d,b%1===0&&(c=Math.round(c)),c)},-1),b(j,'$digits',function(b){var d=this,f,g;if(b==null&&(b=10),c(m(d,0))&&e.$raise(a(a('Math'),'DomainError'),"out of domain"),b=h['$coerce_to!'](b,a('Integer'),"to_int"),c(m(b,2))&&e.$raise(a('ArgumentError'),"invalid radix "+b),d!=parseInt(d)&&e.$raise(a('NoMethodError'),"undefined method `digits' for "+d.$inspect()),f=d,g=[],d==0)return[0];while(f!=0)g.push(f%b),f=parseInt(f/b,10);return g},-1),b(j,'$divmod',function d(g){var h=d.$$p||f,b=this;return d.$$p=null,c(b['$nan?']())||c(g['$nan?']())?e.$raise(a('FloatDomainError'),"NaN"):c(b['$infinite?']())?e.$raise(a('FloatDomainError'),"Infinity"):q(b,o(b,'divmod',d,!1,!0),'divmod',[g],h)}),b(j,'$upto',function i(b){var j=i.$$p||f,d=this,h;if(i.$$p=null,!(j!==f))return u(d,'enum_for',["upto",b],function f(){var d=f.$$s==null?this:f.$$s;return g(a('Numeric'),b)||e.$raise(a('ArgumentError'),"comparison of "+d.$class()+" with "+b.$class()+" failed"),c(m(b,d))?0:r(l(b,d),1)},{$$s:d});b.$$is_number||e.$raise(a('ArgumentError'),"comparison of "+d.$class()+" with "+b.$class()+" failed");for(h=d;h<=b;h++)j(h);return d}),b(j,'$zero?',function(){var a=this;return a==0}),b(j,'$size',z(4)),b(j,'$nan?',function(){var a=this;return isNaN(a)}),b(j,'$finite?',function(){var a=this;return a!=1/0&&a!=-(1/0)&&!isNaN(a)}),b(j,'$infinite?',function(){var a=this;return a==1/0?+1:a==-(1/0)?-1:f}),b(j,'$positive?',function(){var a=this;return a!=0&&(a==1/0||1/a>0)}),b(j,'$negative?',function(){var a=this;return a==-(1/0)||1/a<0});function B(b){var a=new Uint8Array(8);return new DataView(a.buffer).setFloat64(0,b,!0),a}function D(a){return new DataView(a.buffer).getFloat64(0,!0)}function F(c){for(var a=B(c),b=0;b,cover?,!,begin,end,exclude_end?,then,call,>=,>,==,max,<=,<,enum_for,size,upto,to_proc,respond_to?,class,succ,===,eql?,try_convert,is_a?,any?,last,to_a,-,coerce_to!,ceil,/,new,loop,+,*,each_with_index,%,step,bsearch,inspect,[],hash,include?'),y.$require("corelib/enumerable"),function(G,H,E){var y=A(G,H,'Range'),F=[y].concat(E),z=d.$r(F),C=y.$$prototype;C.begin=C.end=C.excl=b,y.$include(c('Enumerable')),y.$$prototype.$$is_range=!0,y.$attr_reader("begin","end"),e(y,'$initialize',function(d,e,g){var b=this;return g==null&&(g=!1),a(b.begin)&&f.$raise(c('NameError'),"'initialize' called twice"),a(d['$<=>'](e))||a(d['$nil?']())||a(e['$nil?']())||f.$raise(c('ArgumentError'),"bad value for range"),b.begin=d,b.end=e,b.excl=g},-3),e(y,'$===',function(b){var c=this;return!a(b.$$is_range)&&c['$cover?'](b)});function D(a){return!!(a.begin===b||a.end===b||a.begin===-(1/0)||a.end===1/0||a.begin===1/0||a.end===-(1/0))}return e(y,'$count',function d(){var f=d.$$p||b,e=this;return d.$$p=null,h(f!==b)&&a(D(e))?c(c('Float'),'INFINITY'):i(e,j(e,'count',d,!1,!0),'count',[],f)}),e(y,'$to_a',function d(){var g=d.$$p||b,e=this;return d.$$p=null,a(D(e))&&f.$raise(c('TypeError'),"cannot convert endless range to an array"),i(e,j(e,'to_a',d,!1,!0),'to_a',[],g)}),e(y,'$cover?',function(d){var c=this,e=b,f=b,i=b,p=b,j=b,q=b,s=b,r=b;return e=x(function(c,d){var e=b;return c==null&&(c=b),d==null&&(d=b),a(e=c['$<=>'](d))?e:1}),a(d.$$is_range)?!(f=d.$begin(),i=d.$end(),p=d['$exclude_end?'](),a(c.begin)&&a(f['$nil?']())||a(c.end)&&a(i['$nil?']())||a(f)&&a(i)&&a(g(e.$call(f,i),'then',[],function(c){return c==null&&(c=b),a(p)?m(c,0):k(c,0)}))||a(f)&&h(c['$cover?'](f)))&&(j=e.$call(c.end,i),l(c.excl,p)?m(j,0):a(c.excl)?k(j,0):!!a(m(j,0))||(q=d.$max(),a(s=q['$nil?']()['$!']())?n(e.$call(q,c.end),0):s)):!(a(c.begin)&&a(k(e.$call(c.begin,d),0)))&&(!!a(c.end['$nil?']())||(r=e.$call(d,c.end),a(c.excl)?o(r,0):n(r,0)))}),e(y,'$each',function p(){var j=p.$$p||b,e=this,i=b,m=b,n=b,k,q;if(p.$$p=null,!(j!==b))return g(e,'enum_for',["each"],function a(){var b=a.$$s==null?this:a.$$s;return b.$size()},{$$s:e});if(e.begin.$$is_number&&e.end.$$is_number){(e.begin%1!==0||e.end%1!==0)&&f.$raise(c('TypeError'),"can't iterate from Float");for(k=e.begin,q=e.end+(a(e.excl)?0:1);k'](m),0));)d.yield1(j,i),i=i.$succ();return h(e.excl)&&l(i,m)&&d.yield1(j,i),e}),e(y,'$eql?',function(d){var e=this,f=b,g=b;return!!r(c('Range'),d)&&(a(f=a(g=e.excl['$==='](d['$exclude_end?']()))?e.begin['$eql?'](d.$begin()):g)?e.end['$eql?'](d.$end()):f)}),e(y,'$exclude_end?',B("excl")),e(y,'$first',function e(g){var h=e.$$p||b,d=this;return e.$$p=null,a(d.begin['$nil?']())&&f.$raise(c('RangeError'),"cannot get the minimum of beginless range"),a(g==null)?d.begin:i(d,j(d,'first',e,!1,!0),'first',[g],h)},-1),e(y,'$include?',function k(f){var l=k.$$p||b,d=this,e=b,h=b;if(k.$$p=null,a(d.begin.$$is_number||d.end.$$is_number)||a(d.begin['$is_a?'](c('Time')))||a(d.end['$is_a?'](c('Time')))||a(c('Integer').$try_convert(d.begin))||a(c('Integer').$try_convert(d.end)))return d['$cover?'](f);if(a(d.begin.$$is_string||d.end.$$is_string)){if(a(d.begin.$$is_string&&d.end.$$is_string))return g(d.begin.$upto(d.end,d.excl),'any?',[],function(a){return a==null&&(a=b),a['$=='](f)});if(a(d.begin['$nil?']()))return e=f['$<=>'](d.end),a(h=e['$nil?']()['$!']())?a(d.excl)?o(e,0):n(e,0):h;if(a(d.end['$nil?']()))return e=d.begin['$<=>'](f),a(h=e['$nil?']()['$!']())?n(e,0):h}return i(d,j(d,'include?',k,!1,!0),'include?',[f],l)}),e(y,'$last',function(d){var b=this;return a(b.end['$nil?']())&&f.$raise(c('RangeError'),"cannot get the maximum of endless range"),a(d==null)?b.end:b.$to_a().$last(d)},-1),e(y,'$max',function e(){var g=e.$$p||b,d=this;return e.$$p=null,a(d.end['$nil?']())?f.$raise(c('RangeError'),"cannot get the maximum of endless range"):g!==b?i(d,j(d,'max',e,!1,!0),'max',[],g):h(d.begin['$nil?']())&&(a(k(d.begin,d.end))||a(d.excl)&&l(d.begin,d.end))?b:d.excl?d.end-1:d.end}),e(y,'$min',function e(){var g=e.$$p||b,d=this;return e.$$p=null,a(d.begin['$nil?']())?f.$raise(c('RangeError'),"cannot get the minimum of beginless range"):g!==b?i(d,j(d,'min',e,!1,!0),'min',[],g):h(d.end['$nil?']())&&(a(k(d.begin,d.end))||a(d.excl)&&l(d.begin,d.end))?b:d.begin}),e(y,'$size',function(){var d=this.begin,a=this.end,e;if(c('Numeric')['$==='](d)){{if(c('Numeric')['$==='](a))return e=u(a,d),e<0?0:(this.excl||(e+=1),c('Float')['$==='](d)||c('Float')['$==='](a)?Math.floor(e):e);if(a===b)return 1/0}}else if(d===b)if(c('Numeric')['$==='](a))return 1/0;return b}),e(y,'$step',function o(i){var n=o.$$p||b,e=this,q=b,j=b;o.$$p=null;function r(){i==null?i=1:i.$$is_number||(i=s['$coerce_to!'](i,c('Integer'),"to_int")),i<0?f.$raise(c('ArgumentError'),"step can't be negative"):i===0&&f.$raise(c('ArgumentError'),"step can't be 0")}function u(){if(!e.begin['$respond_to?']("succ"))return b;if(e.begin.$$is_string&&e.end.$$is_string)return b;if(i%1===0)return t(e.$size(),i).$ceil();var a=e.begin,d=e.end,g=Math.abs,j=Math.floor,h=(g(a)+g(d)+g(d-a))/g(i)*c(c('Float'),'EPSILON'),f;return h>.5&&(h=.5),e.excl?(f=j((d-a)/i-h),f*i+a>',function a(c){var h=a.$$p||b,d=this;return a.$$p=null,g(e,'proc',[],function a(l){var i=a.$$p||b,d,e,k=a.$$s==null?this:a.$$s,h=b;return a.$$p=null,d=f(arguments),e=d,h=g(k,'call',j(e),i.$to_proc()),c.$call(h)},{$$arity:-1,$$s:d})}),c(r,'$<<',function a(c){var h=a.$$p||b,d=this;return a.$$p=null,g(e,'proc',[],function a(l){var i=a.$$p||b,d,e,k=a.$$s==null?this:a.$$s,h=b;return a.$$p=null,d=f(arguments),e=d,h=g(c,'call',j(e),i.$to_proc()),k.$call(h)},{$$arity:-1,$$s:d})}),c(r,'$to_proc',q),c(r,'$lambda?',function(){var a=this;return!!a.$$is_lambda}),c(r,'$arity',function(){var a=this;return a.$$is_curried?-1:a.$$arity!=null?a.$$arity:a.length}),c(r,'$source_location',function(){var a=this,c=b;return a.$$is_curried?b:i(c=a.$$source_location)?c:b}),c(r,'$binding',function(){var c,a=this;return a.$$is_curried&&e.$raise(d('ArgumentError'),"Can't create Binding"),i((c=d('::','Binding','skip_raise'))?'constant':b)?d('Binding').$new(b,[],a.$$s,a.$source_location()):b}),c(r,'$parameters',function(e){var d,a=this,g,c,f,b;if(e=l(e),d=m(e,"lambda"),a.$$is_curried)return[["rest"]];if(a.$$parameters){if(d==null?a.$$is_lambda:d)return a.$$parameters;g=[];for(c=0,f=a.$$parameters.length;cb&&a.$$is_lambda&&!a.$$is_curried&&e.$raise(d('ArgumentError'),"wrong number of arguments ("+i+" for "+b+")"),i>=b?a.$call.apply(a,h):(g=function(){return c.apply(null,h.concat(f(arguments)))},g.$$is_lambda=a.$$is_lambda,g.$$is_curried=!0,g)}return c.$$is_lambda=a.$$is_lambda,c.$$is_curried=!0,c},-1),c(r,'$dup',function(){var a=this,c=a.$$original_proc||a,b=function(){return c.apply(this,arguments)};return k(a,function(c){b[c]=a[c]}),b}),h(r,"===","call"),h(r,"clone","dup"),h(r,"yield","call"),h(r,"[]","call")}('::',Function)},Opal.modules["corelib/method"]=function(b){var f=b.klass,a=b.def,d=b.truthy,h=b.slice,g=b.alias,i=b.Kernel,j=b.send,k=b.to_a,c=b.nil,e=b.$$$;return b.add_stubs('attr_reader,arity,curry,>>,<<,new,class,join,source_location,call,raise,bind,to_proc'),function(j,k){var b=f(j,k,'Method'),i=b.$$prototype;return i.method=i.receiver=i.owner=i.name=c,b.$attr_reader("owner","receiver","name"),a(b,'$initialize',function(b,c,d,e){var a=this;return a.receiver=b,a.owner=c,a.name=e,a.method=d}),a(b,'$arity',function(){var a=this;return a.method.$arity()}),a(b,'$parameters',function(){var a=this;return a.method.$$parameters}),a(b,'$source_location',function(){var b=this,a=c;return d(a=b.method.$$source_location)?a:["(eval)",0]}),a(b,'$comments',function(){var b=this,a=c;return d(a=b.method.$$comments)?a:[]}),a(b,'$call',function b(g){var f=b.$$p||c,d,e,a=this;return b.$$p=null,d=h(arguments),e=d,a.method.$$p=f,a.method.apply(a.receiver,e)},-1),a(b,'$curry',function(a){var b=this;return b.method.$curry(a)},-1),a(b,'$>>',function(a){var b=this;return b.method['$>>'](a)}),a(b,'$<<',function(a){var b=this;return b.method['$<<'](a)}),a(b,'$unbind',function(){var a=this;return e('UnboundMethod').$new(a.receiver.$class(),a.owner,a.method,a.name)}),a(b,'$to_proc',function(){var a=this,b=a.$call.bind(a);return b.$$unbound=a.method,b.$$is_lambda=!0,b.$$arity=a.method.$$arity==null?a.method.length:a.method.$$arity,b.$$parameters=a.method.$$parameters,b}),a(b,'$inspect',function(){var a=this;return"#<"+a.$class()+": "+a.receiver.$class()+"#"+a.name+" (defined in "+a.owner+" in "+a.$source_location().$join(":")+")>"}),g(b,"[]","call"),g(b,"===","call")}('::',null),function(m,n){var g=f(m,n,'UnboundMethod'),l=g.$$prototype;return l.method=l.owner=l.name=l.source=c,g.$attr_reader("source","owner","name"),a(g,'$initialize',function(c,d,b,e){var a=this;return a.source=c,a.owner=d,a.method=b,a.name=e,a.$$method=b}),a(g,'$arity',function(){var a=this;return a.method.$arity()}),a(g,'$parameters',function(){var a=this;return a.method.$$parameters}),a(g,'$source_location',function(){var b=this,a=c;return d(a=b.method.$$source_location)?a:["(eval)",0]}),a(g,'$comments',function(){var b=this,a=c;return d(a=b.method.$$comments)?a:[]}),a(g,'$bind',function(c){var a=this;if(a.owner.$$is_module||b.is_a(c,a.owner))return e('Method').$new(c,a.owner,a.method,a.name);i.$raise(e('TypeError'),"can't bind singleton method to a different class (expected "+c+".kind_of?("+a.owner+" to be true)")}),a(g,'$bind_call',function a(e,i){var f=a.$$p||c,b,d,g=this;return a.$$p=null,b=h(arguments,1),d=b,j(g.$bind(e),'call',k(d),f.$to_proc())},-2),a(g,'$inspect',function(){var a=this;return"#<"+a.$class()+": "+a.source+"#"+a.name+" (defined in "+a.owner+" in "+a.$source_location().$join(":")+")>"})}('::',null)},Opal.modules["corelib/variables"]=function(b){var a=b.gvars,c=b.const_set,e=b.Object,d=b.nil;return b.add_stubs('new'),a['&']=a['~']=a['`']=a["'"]=d,a.LOADED_FEATURES=a['"']=b.loaded_features,a.LOAD_PATH=a[":"]=[],a["/"]="\n",a[","]=d,c('::','ARGV',[]),c('::','ARGF',e.$new()),c('::','ENV',new Map),a.VERBOSE=!1,a.DEBUG=!1,a.SAFE=0},Opal.modules["corelib/io"]=function(c){var x=c.klass,h=c.const_set,m=c.not,b=c.truthy,d=c.def,w=c.return_ivar,v=c.return_val,l=c.slice,i=c.Kernel,e=c.gvars,k=c.send,o=c.to_a,j=c.rb_plus,p=c.neqeq,s=c.range,f=c.eqeq,t=c.to_ary,y=c.rb_gt,u=c.assign_ivar_val,r=c.alias,n,a=c.nil,g=c.$$$,q;return c.add_stubs('attr_reader,attr_accessor,!,match?,include?,size,write,String,flatten,puts,sysread_noraise,+,!=,[],ord,getc,readchar,raise,gets,==,to_str,length,split,sub,sysread,>,to_a,each_line,enum_for,getbyte,closed_write?,closed_read?,each,eof,new,write_proc=,read_proc='),function(z,A){var n=x(z,A,'IO'),q=n.$$prototype;return q.read_buffer=q.closed=a,h(n,'SEEK_SET',0),h(n,'SEEK_CUR',1),h(n,'SEEK_END',2),h(n,'SEEK_DATA',3),h(n,'SEEK_HOLE',4),h(n,'READABLE',1),h(n,'WRITABLE',4),n.$attr_reader("eof"),n.$attr_accessor("read_proc","sync","tty","write_proc"),d(n,'$initialize',function(e,c){var d=this;return c==null&&(c="r"),d.fd=e,d.flags=c,d.eof=!1,b(c['$include?']("r"))&&m(c['$match?'](/[wa+]/))?d.closed="write":b(c['$match?'](/[wa]/))&&m(c['$match?'](/[r+]/))?d.closed="read":a},-2),d(n,'$fileno',w("fd")),d(n,'$tty?',function(){var a=this;return a.tty==!0}),d(n,'$write',function(a){var b=this;return b.write_proc(a),a.$size()}),d(n,'$flush',v(a)),d(n,'$<<',function(b){var a=this;return a.$write(b),a}),d(n,'$print',function(h){var d,b,g=this,c,f;e[","]==null&&(e[","]=a),d=l(arguments),b=d;for(c=0,f=b.length;c0&&k(e,'puts',o(g))):(b[c].$$is_string?d=b[c].valueOf():d=i.$String(b[c]),d.endsWith("\n")||(d+="\n"),e.$write(d));return a},-1),d(n,'$getc',function(){var c=this,e=a,d=a,f=a;c.read_buffer=b(e=c.read_buffer)?e:"",d="";do if(c.read_buffer=j(c.read_buffer,d),p(c.read_buffer,""))return f=c.read_buffer['$[]'](0),c.read_buffer=c.read_buffer['$[]'](s(1,-1,!1)),f;while(b(d=c.$sysread_noraise(1)))return a}),d(n,'$getbyte',function(){var b,c=this;return b=c.$getc(),b===a||b==null?a:b.$ord()}),d(n,'$readbyte',function(){var a=this;return a.$readchar().$ord()}),d(n,'$readchar',function(){var d=this,c=a;return b(c=d.$getc())?c:i.$raise(g('EOFError'),"end of file reached")}),d(n,'$readline',function(j){var c,d,f=this,e=a;return c=l(arguments),d=c,b(e=k(f,'gets',o(d)))?e:i.$raise(g('EOFError'),"end of file reached")},-1),d(n,'$gets',function(d,k,l){var g,r,i=this,o=a,n=a,u=a,s=a,h=a,q=a;e["/"]==null&&(e["/"]=a),d==null&&(d=!1),k==null&&(k=a),l==null&&(l=new Map),b(d.$$is_number)&&m(k)&&(g=[!1,d,k],d=g[0],k=g[1],l=g[2],g),b(d.$$is_hash)&&m(k)&&f(l,new Map)?(g=[!1,a,d],d=g[0],k=g[1],l=g[2],g):b(k.$$is_hash)&&f(l,new Map)&&(g=[d,a,k],d=g[0],k=g[1],l=g[2],g),o=d,f(d,!1)&&(d=e["/"]),f(d,"")&&(d=/\r?\n\r?\n/),d=b(n=d)?n:"",f(o,"")||(d=d.$to_str()),u=f(o,"")?2:d.$length(),f(d," ")&&(d=/ /),i.read_buffer=b(n=i.read_buffer)?n:"",s="",h=a;do if(i.read_buffer=j(i.read_buffer,s),p(d,"")&&b(b(d.$$is_regexp)?i.read_buffer['$match?'](d):i.read_buffer['$include?'](d))){q=i.read_buffer,r=i.read_buffer.$split(d,2),g=t(r),h=g[0]==null?a:g[0],i.read_buffer=g[1]==null?a:g[1],r,p(h,q)&&(h=j(h,q['$[]'](h.$length(),u)));break}while(b(s=i.$sysread_noraise(f(d,"")?65536:1)))return b(h)||(g=[b(n=i.read_buffer)?n:"",""],h=g[0],i.read_buffer=g[1],g,f(h,"")&&(h=a)),b(h)&&(b(k)&&(h=h['$[]'](c.Range.$new(0,k,!0)),i.read_buffer=j(h['$[]'](c.Range.$new(k,-1,!1)),i.read_buffer)),b(l['$[]']("chomp"))&&(h=h.$sub(/\r?\n$/,"")),f(o,"")&&(h=h.$sub(/^[\r\n]+/,""))),f(o,!1)&&(e._=h),h},-1),d(n,'$sysread',function(e){var c=this,d=a;return b(d=c.read_proc(e))?d:(c.eof=!0,i.$raise(g('EOFError'),"end of file reached"))}),d(n,'$sysread_noraise',function(b){var d=this;try{return d.$sysread(b)}catch(b){if(c.rescue(b,[g('EOFError')]))try{return a}finally{c.pop_exception(b)}else throw b}}),d(n,'$readpartial',function(i){var e,c=this,g=a,h=a,d=a;return c.read_buffer=b(g=c.read_buffer)?g:"",h=c.$sysread(i),e=[j(c.read_buffer,b(g=h)?g:""),""],d=e[0],c.read_buffer=e[1],e,f(d,"")&&(d=a),d}),d(n,'$read',function(f){var e,d=this,h=a,i=a,g=a;f==null&&(f=a),d.read_buffer=b(h=d.read_buffer)?h:"",i="",g=a;do if(d.read_buffer=j(d.read_buffer,i),b(f)&&b(y(d.read_buffer.$length(),f)))return e=[d.read_buffer['$[]'](c.Range.$new(0,f,!0)),d.read_buffer['$[]'](c.Range.$new(f,-1,!1))],g=e[0],d.read_buffer=e[1],e,g;while(b(i=d.$sysread_noraise(b(h=f)?h:65536)))return e=[d.read_buffer,""],g=e[0],d.read_buffer=e[1],e,g},-1),d(n,'$readlines',function(b){var c=this;return e["/"]==null&&(e["/"]=a),b==null&&(b=e["/"]),c.$each_line(b).$to_a()},-1),d(n,'$each',function m(n,p){var j=m.$$p||a,f,d,g,h=this,i=a;if(e["/"]==null&&(e["/"]=a),m.$$p=null,f=l(arguments),f.length>0&&(d=f.shift()),d==null&&(d=e["/"]),g=f,!(j!==a))return k(h,'enum_for',["each",d].concat(o(g)));while(b(i=k(h,'gets',[d].concat(o(g)))))c.yield1(j,i);return h},-1),d(n,'$each_byte',function e(){var f=e.$$p||a,d=this,g=a;if(e.$$p=null,!(f!==a))return d.$enum_for("each_byte");while(b(g=d.$getbyte()))c.yield1(f,g);return d}),d(n,'$each_char',function e(){var f=e.$$p||a,d=this,g=a;if(e.$$p=null,!(f!==a))return d.$enum_for("each_char");while(b(g=d.$getc()))c.yield1(f,g);return d}),d(n,'$close',u("closed","both")),d(n,'$close_read',function(){var a=this;return f(a.closed,"write")?a.closed="both":a.closed="read"}),d(n,'$close_write',function(){var a=this;return f(a.closed,"read")?a.closed="both":a.closed="write"}),d(n,'$closed?',function(){var a=this;return a.closed['$==']("both")}),d(n,'$closed_read?',function(){var c=this,d=a;return b(d=c.closed['$==']("read"))?d:c.closed['$==']("both")}),d(n,'$closed_write?',function(){var c=this,d=a;return b(d=c.closed['$==']("write"))?d:c.closed['$==']("both")}),d(n,'$check_writable',function(){var c=this;return b(c['$closed_write?']())?i.$raise(g('IOError'),"not opened for writing"):a}),d(n,'$check_readable',function(){var c=this;return b(c['$closed_read?']())?i.$raise(g('IOError'),"not opened for reading"):a}),r(n,"each_line","each"),r(n,"eof?","eof")}('::',null),h('::','STDIN',e.stdin=g('IO').$new(0,"r")),h('::','STDOUT',e.stdout=g('IO').$new(1,"w")),h('::','STDERR',e.stderr=g('IO').$new(2,"w")),q=c.global.console,g('STDOUT')['$write_proc='](typeof process=='object'&&typeof process.stdout=='object'?function(a){process.stdout.write(a)}:function(a){q.log(a)}),g('STDERR')['$write_proc='](typeof process=='object'&&typeof process.stderr=='object'?function(a){process.stderr.write(a)}:function(a){q.warn(a)}),(n=[function(c){var b=prompt();return b!==null?b+"\n":a}],k(g('STDIN'),'read_proc=',n),n[n.length-1])},Opal.modules["opal/regexp_anchors"]=function(b){var e=b.module,a=b.const_set,d=[],f=b.nil,c=b.$$$;return b.add_stubs('new'),function(g,h){var d=e(g,'Opal'),i=[d].concat(h),f=b.$r(i);return a(d,'REGEXP_START',"^"),a(d,'REGEXP_END',"$"),a(d,'FORBIDDEN_STARTING_IDENTIFIER_CHARS',"\\u0001-\\u002F\\u003A-\\u0040\\u005B-\\u005E\\u0060\\u007B-\\u007F"),a(d,'FORBIDDEN_ENDING_IDENTIFIER_CHARS',"\\u0001-\\u0020\\u0022-\\u002F\\u003A-\\u003E\\u0040\\u005B-\\u005E\\u0060\\u007B-\\u007F"),a(d,'INLINE_IDENTIFIER_REGEXP',f('Regexp').$new("[^"+c(d,'FORBIDDEN_STARTING_IDENTIFIER_CHARS')+"]*[^"+c(d,'FORBIDDEN_ENDING_IDENTIFIER_CHARS')+"]")),a(d,'FORBIDDEN_CONST_NAME_CHARS',"\\u0001-\\u0020\\u0021-\\u002F\\u003B-\\u003F\\u0040\\u005B-\\u005E\\u0060\\u007B-\\u007F"),a(d,'CONST_NAME_REGEXP',f('Regexp').$new(""+c(d,'REGEXP_START')+"(::)?[A-Z][^"+c(d,'FORBIDDEN_CONST_NAME_CHARS')+"]*"+c(d,'REGEXP_END')))}(d[0],d)},Opal.modules["opal/mini"]=function(b){var a=b.Object,c=b.nil;return b.add_stubs('require'),a.$require("opal/base"),a.$require("corelib/nil"),a.$require("corelib/boolean"),a.$require("corelib/string"),a.$require("corelib/comparable"),a.$require("corelib/enumerable"),a.$require("corelib/enumerator"),a.$require("corelib/array"),a.$require("corelib/hash"),a.$require("corelib/number"),a.$require("corelib/range"),a.$require("corelib/proc"),a.$require("corelib/method"),a.$require("corelib/regexp"),a.$require("corelib/variables"),a.$require("corelib/io"),a.$require("opal/regexp_anchors")},Opal.modules["corelib/kernel/format"]=function(c){var i=c.coerce_to,h=c.module,g=c.slice,e=c.truthy,l=c.eqeq,m=c.Opal,a=c.Kernel,d=c.gvars,j=c.def,k=c.alias,f=c.nil,b=c.$$$;return c.add_stubs('respond_to?,[],==,length,coerce_to?,nil?,to_a,raise,to_int,fetch,Integer,Float,to_ary,to_str,inspect,to_s,format'),function(n){var c=h(n,'Kernel');return j(c,'$format',function(p,_){var S,w,O=f,P,K,T,j,H,k,c,z,o,n,G,D,M,C,t,F,B,y,L,v,h,Y,r,u,q,x,s,I,R,J;d.DEBUG==null&&(d.DEBUG=f),S=g(arguments,1),w=S,l(w.$length(),1)&&e(w['$[]'](0)['$respond_to?']("to_ary"))&&(O=m['$coerce_to?'](w['$[]'](0),b('Array'),"to_ary"),e(O['$nil?']())||(w=O.$to_a())),P='',K=0,H=p.length,L=1,v=0,Y=0,r=1,u=2,q=4,x=8,s=16,I=32,R=64,J=128;function E(){h&I&&a.$raise(b('ArgumentError'),"flag after width"),h&J&&a.$raise(b('ArgumentError'),"flag after precision")}function U(){h&I&&a.$raise(b('ArgumentError'),"width given twice"),h&J&&a.$raise(b('ArgumentError'),"width after precision")}function X(c){return c>=w.length&&a.$raise(b('ArgumentError'),"too few arguments"),w[c]}function V(){switch(v){case-1:a.$raise(b('ArgumentError'),"unnumbered("+L+") mixed with numbered");case-2:a.$raise(b('ArgumentError'),"unnumbered("+L+") mixed with named")}return v=L++,X(v-1)}function W(c){return v>0&&a.$raise(b('ArgumentError'),"numbered("+c+") after unnumbered("+v+")"),v===-2&&a.$raise(b('ArgumentError'),"numbered("+c+") after named"),c<1&&a.$raise(b('ArgumentError'),"invalid index - "+c+"$"),v=-1,X(c-1)}function A(){return y===void 0?V():y}function N(e){for(var c,d='';;j++){if(j===H&&a.$raise(b('ArgumentError'),"malformed format string - %*[0-9]"),p.charCodeAt(j)<48||p.charCodeAt(j)>57)return j--,c=parseInt(d,10)||0,c>2147483647&&a.$raise(b('ArgumentError'),""+e+" too big"),c;d+=p.charAt(j)}}function Q(b){var a,c=N(b);return p.charAt(j+1)==='$'?(j++,a=W(c)):a=V(),a.$to_int()}for(j=p.indexOf('%');j!==-1;j=p.indexOf('%',j)){switch(c=void 0,h=Y,o=-1,n=-1,y=void 0,T=j,j++,p.charAt(j)){case'%':K=j;case'':case'\n':case'\0':j++;continue}format_sequence:for(;j':'}',D='',j++;;j++){if(j===H&&a.$raise(b('ArgumentError'),"malformed name - unmatched parenthesis"),p.charAt(j)===M){if(v>0&&a.$raise(b('ArgumentError'),"named "+D+" after unnumbered("+v+")"),v===-1&&a.$raise(b('ArgumentError'),"named "+D+" after numbered"),v=-2,(w[0]===void 0||!w[0].$$is_hash)&&a.$raise(b('ArgumentError'),"one hash required"),y=w[0].$fetch(D),M==='>')continue format_sequence;if(c=y.toString(),n!==-1&&(c=c.slice(0,n)),h&u)while(c.length=0){for(c=k.toString();c.length=0){for(c=k.toString(C);c.length>>0).toString(C).replace(F,B);c.length=0||isNaN(k)){if(k===1/0)c='Inf';else switch(p.charAt(j)){case'f':c=k.toFixed(n===-1?6:n);break;case'e':case'E':c=k.toExponential(n===-1?6:n);break;case'g':case'G':c=k.toExponential(),z=parseInt(c.split('e')[1],10),z<-4||z>=(n===-1?6:n)||(c=k.toPrecision(n===-1?h&r?6:void 0:n));break}if(h&u)for((h&q||h&s)&&(c=(h&q?'+':' ')+c);c.length=(n===-1?6:n)||(c=(-k).toPrecision(n===-1?h&r?6:void 0:n));break}if(h&u)for(c='-'+c;c.length=0&&L"}),b(g,'$charsize',function(b){for(var c=0,a=0,e=b.length,d;a=55296&&d<=56319||c++;return c}),b(g,'$each_char',function h(d){var i=h.$$p||c,g,f,j,e,b;h.$$p=null,g="";for(f=0,j=d.length;f=56320&&e<=57343){g=b;continue}e>=55296&&e<=56319&&(b=g+b),d.encoding.name!="UTF-8"&&(b=new String(b),b.encoding=d.encoding),a.yield1(i,b)}}),b(g,'$each_byte',function(e){var a,b;return a=p(arguments),b=a,n.$raise(d('NotImplementedError'))},-1),b(g,'$bytesize',function(e){var a,b;return a=p(arguments),b=a,n.$raise(d('NotImplementedError'))},-1),h('::',d('StandardError'),'EncodingError'),h('::',d('EncodingError'),'CompatibilityError'),(h(s[0],d('EncodingError'),'UndefinedConversionError'),c)}('::',null,m),e(d('Encoding'),'register',["UTF-8",new Map([["aliases",["CP65001"]],["ascii",!0]])],function d(){var e=d.$$s==null?this:d.$$s;return b(e,'$each_byte',function i(j){var d=i.$$p||c,e,b,h,f,g;i.$$p=null,e=1/0,h=j.length,f=null;for(g=0;g55295&&b<57344){if(!f){if(b>56319){(e-=3)>-1&&(a.yield1(d,239),a.yield1(d,191),a.yield1(d,189));continue}if(g+1===h){(e-=3)>-1&&(a.yield1(d,239),a.yield1(d,191),a.yield1(d,189));continue}f=b;continue}if(b<56320){(e-=3)>-1&&(a.yield1(d,239),a.yield1(d,191),a.yield1(d,189)),f=b;continue}b=(f-55296<<10|b-56320)+65536}else f&&(e-=3)>-1&&(a.yield1(d,239),a.yield1(d,191),a.yield1(d,189));if(f=null,b<128){if((e-=1)<0)break;a.yield1(d,b)}else if(b<2048){if((e-=2)<0)break;a.yield1(d,b>>6|192),a.yield1(d,b&63|128)}else if(b<65536){if((e-=3)<0)break;a.yield1(d,b>>12|224),a.yield1(d,b>>6&63|128),a.yield1(d,b&63|128)}else if(b<1114112){if((e-=4)<0)break;a.yield1(d,b>>18|240),a.yield1(d,b>>12&63|128),a.yield1(d,b>>6&63|128),a.yield1(d,b&63|128)}}}),b(e,'$bytesize',function(a){return a.$bytes().$length()})},{$$s:g}),e(d('Encoding'),'register',["UTF-16LE"],function d(){var e=d.$$s==null?this:d.$$s;return b(e,'$each_byte',function d(e){var f=d.$$p||c,b,h,g;d.$$p=null;for(b=0,h=e.length;b>8)}),b(e,'$bytesize',function(a){return a.length*2})},{$$s:g}),e(d('Encoding'),'register',["UTF-16BE",new Map([["inherits",d(d('Encoding'),'UTF_16LE')]])],function d(){var e=d.$$s==null?this:d.$$s;return b(e,'$each_byte',function d(e){var f=d.$$p||c,b,h,g;d.$$p=null;for(b=0,h=e.length;b>8),a.yield1(f,g&255)})},{$$s:g}),e(d('Encoding'),'register',["UTF-32LE"],function d(){var e=d.$$s==null?this:d.$$s;return b(e,'$each_byte',function e(f){var b=e.$$p||c,d,h,g;e.$$p=null;for(d=0,h=f.length;d>8),a.yield1(b,0),a.yield1(b,0)}),b(e,'$bytesize',function(a){return a.length*4})},{$$s:g}),e(d('Encoding'),'register',["UTF-32BE",new Map([["inherits",d(d('Encoding'),'UTF_32LE')]])],function d(){var e=d.$$s==null?this:d.$$s;return b(e,'$each_byte',function e(f){var b=e.$$p||c,d,h,g;e.$$p=null;for(d=0,h=f.length;d>8),a.yield1(b,g&255)})},{$$s:g}),e(d('Encoding'),'register',["ASCII-8BIT",new Map([["aliases",["BINARY"]],["ascii",!0]])],function e(){var d=e.$$s==null?this:e.$$s;return b(d,'$each_char',function e(b){var g=e.$$p||c,d,h,f;e.$$p=null;for(d=0,h=b.length;d171)return 1/0;for(f=b-2,e=b-1;f>1;)e*=f,f--;return e==0&&(e=1),e}if(b<.5)return Math.PI/(Math.sin(Math.PI*b)*a('Math').$gamma(l(1,b)));if(b>=171.35)return 1/0;if(b>85)return j=b*b,k=j*b,m=k*b,n=m*b,Math.sqrt(2*Math.PI/b)*Math.pow(b/Math.E,b)*(1+1/(12*b)+1/(288*j)-139/(51840*k)-571/(2488320*m)+163879/(209018880*n)+5246819/(75246796800*n*b));b-=1,h=g[0];for(d=1;d,!=,divmod,**,hypot,atan2,lcm,denominator,finite?,hash,infinite?,numerator,abs,arg,rationalize,to_f,to_i,to_r,inspect,zero?,positive?,Rational,rect,angle'),q.$require("corelib/numeric"),q.$require("corelib/complex/base"),function(A,x,y){var q=u(A,x,'Complex'),t=[q].concat(y),z=g.$r(t),w=q.$$prototype;return w.real=w.imag=c,o(q,'$rect',function(c,b){var g=this;return b==null&&(b=0),e(a('Numeric'),c)&&f(c['$real?']())&&e(a('Numeric'),b)&&f(b['$real?']())||d.$raise(a('TypeError'),"not a real"),g.$new(c,b)},-2),o(q,'$polar',function(c,b){var g=this;return b==null&&(b=0),e(a('Numeric'),c)&&f(c['$real?']())&&e(a('Numeric'),b)&&f(b['$real?']())||d.$raise(a('TypeError'),"not a real"),g.$new(h(c,a('Math').$cos(b)),h(c,a('Math').$sin(b)))},-2),q.$attr_reader("real","imag"),b(q,'$initialize',function(c,a){var b=this;return a==null&&(a=0),b.real=c,b.imag=a,b.$freeze()},-2),b(q,'$coerce',function(b){var c=this;return e(a('Complex'),b)?[b,c]:e(a('Numeric'),b)&&f(b['$real?']())?[a('Complex').$new(b,0),c]:d.$raise(a('TypeError'),""+b.$class()+" can't be coerced into Complex")}),b(q,'$==',function(b){var d=this,g=c;return e(a('Complex'),b)?f(g=d.real['$=='](b.$real()))?d.imag['$=='](b.$imag()):g:e(a('Numeric'),b)&&f(b['$real?']())?f(g=d.real['$=='](b))?d.imag['$=='](0):g:b['$=='](d)}),b(q,'$-@',function(){var a=this;return d.$Complex(a.real['$-@'](),a.imag['$-@']())}),b(q,'$+',function(b){var c=this;return e(a('Complex'),b)?d.$Complex(i(c.real,b.$real()),i(c.imag,b.$imag())):e(a('Numeric'),b)&&f(b['$real?']())?d.$Complex(i(c.real,b),c.imag):c.$__coerced__("+",b)}),b(q,'$-',function(b){var c=this;return e(a('Complex'),b)?d.$Complex(k(c.real,b.$real()),k(c.imag,b.$imag())):e(a('Numeric'),b)&&f(b['$real?']())?d.$Complex(k(c.real,b),c.imag):c.$__coerced__("-",b)}),b(q,'$*',function(b){var c=this;return e(a('Complex'),b)?d.$Complex(k(h(c.real,b.$real()),h(c.imag,b.$imag())),i(h(c.real,b.$imag()),h(c.imag,b.$real()))):e(a('Numeric'),b)&&f(b['$real?']())?d.$Complex(h(c.real,b),h(c.imag,b)):c.$__coerced__("*",b)}),b(q,'$/',function(b){var c=this;return e(a('Complex'),b)?e(a('Number'),c.real)&&f(c.real['$nan?']())||e(a('Number'),c.imag)&&f(c.imag['$nan?']())||e(a('Number'),b.$real())&&f(b.$real()['$nan?']())||e(a('Number'),b.$imag())&&f(b.$imag()['$nan?']())?a('Complex').$new(a(a('Float'),'NAN'),a(a('Float'),'NAN')):l(h(c,b.$conj()),b.$abs2()):e(a('Numeric'),b)&&f(b['$real?']())?d.$Complex(c.real.$quo(b),c.imag.$quo(b)):c.$__coerced__("/",b)}),b(q,'$**',function(g){var b,j,s=this,t=c,u=c,z=c,y=c,B=c,A=c,o=c,v=c,q=c,x=c,w=c;if(m(g,0))return a('Complex').$new(1,0);if(e(a('Complex'),g))return j=s.$polar(),b=n(j),t=b[0]==null?c:b[0],u=b[1]==null?c:b[1],j,z=g.$real(),y=g.$imag(),B=a('Math').$exp(k(h(z,a('Math').$log(t)),h(y,u))),A=i(h(u,z),h(y,a('Math').$log(t))),a('Complex').$polar(B,A);if(e(a('Integer'),g)){if(f(r(g,0))){for(o=s,v=o,q=k(g,1);p(q,0);){for(j=q.$divmod(2),b=n(j),x=b[0]==null?c:b[0],w=b[1]==null?c:b[1],j;m(w,0);)o=d.$Complex(k(h(o.$real(),o.$real()),h(o.$imag(),o.$imag())),h(h(2,o.$real()),o.$imag())),q=x,j=q.$divmod(2),b=n(j),x=b[0]==null?c:b[0],w=b[1]==null?c:b[1],j;v=h(v,o),q=k(q,1)}return v}return l(a('Rational').$new(1,1),s)['$**'](g['$-@']())}else return e(a('Float'),g)||e(a('Rational'),g)?(j=s.$polar(),b=n(j),t=b[0]==null?c:b[0],u=b[1]==null?c:b[1],j,a('Complex').$polar(t['$**'](g),h(u,g))):s.$__coerced__("**",g)}),b(q,'$abs',function(){var b=this;return a('Math').$hypot(b.real,b.imag)}),b(q,'$abs2',function(){var a=this;return i(h(a.real,a.real),h(a.imag,a.imag))}),b(q,'$angle',function(){var b=this;return a('Math').$atan2(b.imag,b.real)}),b(q,'$conj',function(){var a=this;return d.$Complex(a.real,a.imag['$-@']())}),b(q,'$denominator',function(){var a=this;return a.real.$denominator().$lcm(a.imag.$denominator())}),b(q,'$eql?',function(b){var a=this,d=c,e=c;return f(d=f(e=z('Complex')['$==='](b))?a.real.$class()['$=='](a.imag.$class()):e)?a['$=='](b):d}),b(q,'$fdiv',function(b){var c=this;return e(a('Numeric'),b)||d.$raise(a('TypeError'),""+b.$class()+" can't be coerced into Complex"),l(c,b)}),b(q,'$finite?',function(){var a=this,b=c;return f(b=a.real['$finite?']())?a.imag['$finite?']():b}),b(q,'$hash',function(){var b=this;return[a('Complex'),b.real,b.imag].$hash()}),b(q,'$infinite?',function(){var a=this,b=c;return f(b=a.real['$infinite?']())?b:a.imag['$infinite?']()}),b(q,'$inspect',function(){var a=this;return"("+a+")"}),b(q,'$numerator',function(){var a=this,b=c;return b=a.$denominator(),d.$Complex(h(a.real.$numerator(),l(b,a.real.$denominator())),h(a.imag.$numerator(),l(b,a.imag.$denominator())))}),b(q,'$polar',function(){var a=this;return[a.$abs(),a.$arg()]}),b(q,'$rationalize',function(c){var b=this;return arguments.length>1&&d.$raise(a('ArgumentError'),"wrong number of arguments ("+arguments.length+" for 0..1)"),p(b.imag,0)&&d.$raise(a('RangeError'),"can't convert "+b+" into Rational"),b.$real().$rationalize(c)},-1),b(q,'$real?',v(!1)),b(q,'$rect',function(){var a=this;return[a.real,a.imag]}),b(q,'$to_f',function(){var b=this;return m(b.imag,0)||d.$raise(a('RangeError'),"can't convert "+b+" into Float"),b.real.$to_f()}),b(q,'$to_i',function(){var b=this;return m(b.imag,0)||d.$raise(a('RangeError'),"can't convert "+b+" into Integer"),b.real.$to_i()}),b(q,'$to_r',function(){var b=this;return m(b.imag,0)||d.$raise(a('RangeError'),"can't convert "+b+" into Rational"),b.real.$to_r()}),b(q,'$to_s',function(){var b=this,d=c;return d=b.real.$inspect(),d=i(d,e(a('Number'),b.imag)&&f(b.imag['$nan?']())||f(b.imag['$positive?']())||f(b.imag['$zero?']())?"+":"-"),d=i(d,b.imag.$abs().$inspect()),e(a('Number'),b.imag)&&(f(b.imag['$nan?']())||f(b.imag['$infinite?']()))&&(d=i(d,"*")),i(d,"i")}),s(t[0],'I',q.$new(0,1)),o(q,'$from_string',function(a){var c=/[+-]?[\d_]+(\.[\d_]+)?(e\d+)?/,k=a.match(c),b,e,j;function g(){return c.test(a)}function h(){var d=a.match(c),b=d[0];return a=a.slice(b.length),b.replace(/_/g,'')}function f(){var b,c;return g()?(b=parseFloat(h()),a[0]==='/'?(a=a.slice(1),g())?(c=parseFloat(h()),d.$Rational(b,c)):(a='/'+a,b):b):null}return b=f(),!b?a[0]==='i'?d.$Complex(0,1):a[0]==='-'&&a[1]==='i'?d.$Complex(0,-1):a[0]==='+'&&a[1]==='i'?d.$Complex(0,1):d.$Complex(0,0):(e=f(),e?d.$Complex(b,e):a[0]==='i'?d.$Complex(0,b):d.$Complex(b,0))}),function(a,b){return j(a,"rectangular","rect")}(g.get_singleton_class(q),t),j(q,"arg","angle"),j(q,"conjugate","conj"),j(q,"divide","/"),j(q,"imaginary","imag"),j(q,"magnitude","abs"),j(q,"phase","arg"),j(q,"quo","/"),j(q,"rectangular","rect"),g.udef(q,'$negative?'),g.udef(q,'$positive?'),g.udef(q,'$step'),c}('::',a('Numeric'),t)},Opal.modules["corelib/rational/base"]=function(a){var d=a.module,b=a.def,e=a.klass,f=a.nil,c=a.$$$;return a.add_stubs('convert,from_string'),function(a){var e=d(a,'Kernel');return b(e,'$Rational',function(b,a){return a==null&&(a=1),c('Rational').$convert(b,a)},-2)}('::'),function(a,d){var f=e(a,d,'String');return b(f,'$to_r',function(){var a=this;return c('Rational').$from_string(a)})}('::',null)},Opal.modules["corelib/rational"]=function(f){var v=f.klass,i=f.eqeq,c=f.Kernel,h=f.truthy,l=f.rb_lt,j=f.rb_divide,n=f.defs,b=f.eqeqeq,r=f.not,u=f.Opal,e=f.def,o=f.return_ivar,k=f.rb_minus,g=f.rb_times,m=f.rb_plus,w=f.rb_gt,s=f.rb_le,t=f.return_self,q=f.alias,p=f.top,d=f.nil,a=f.$$$;return f.add_stubs('require,to_i,==,raise,<,-@,new,gcd,/,nil?,===,reduce,to_r,!,equal?,coerce_to!,freeze,to_f,numerator,denominator,<=>,-,*,__coerced__,+,Rational,>,**,abs,ceil,with_precision,floor,hash,<=,truncate,send'),p.$require("corelib/numeric"),p.$require("corelib/rational/base"),function(x,y){var f=v(x,y,'Rational'),p=f.$$prototype;return p.num=p.den=d,n(f,'$reduce',function(e,b){var g=this,f=d;if(e=e.$to_i(),b=b.$to_i(),i(b,0))c.$raise(a('ZeroDivisionError'),"divided by 0");else if(h(l(b,0)))e=e['$-@'](),b=b['$-@']();else if(i(b,1))return g.$new(e,b);return f=e.$gcd(b),g.$new(j(e,f),j(b,f))}),n(f,'$convert',function(d,e){var f=this;return(h(d['$nil?']())||h(e['$nil?']()))&&c.$raise(a('TypeError'),"cannot convert nil into Rational"),b(a('Integer'),d)&&b(a('Integer'),e)?f.$reduce(d,e):((b(a('Float'),d)||b(a('String'),d)||b(a('Complex'),d))&&(d=d.$to_r()),(b(a('Float'),e)||b(a('String'),e)||b(a('Complex'),e))&&(e=e.$to_r()),h(e['$equal?'](1))&&r(a('Integer')['$==='](d)))?u['$coerce_to!'](d,a('Rational'),"to_r"):b(a('Numeric'),d)&&b(a('Numeric'),e)?j(d,e):f.$reduce(d,e)}),e(f,'$initialize',function(b,c){var a=this;return a.num=b,a.den=c,a.$freeze()}),e(f,'$numerator',o("num")),e(f,'$denominator',o("den")),e(f,'$coerce',function(c){var e=this,f=d;return b(a('Rational'),f=c)?[c,e]:b(a('Integer'),f)?[c.$to_r(),e]:b(a('Float'),f)?[c,e.$to_f()]:d}),e(f,'$==',function(c){var e=this,g=d,f=d;return b(a('Rational'),g=c)?h(f=e.num['$=='](c.$numerator()))?e.den['$=='](c.$denominator()):f:b(a('Integer'),g)?h(f=e.num['$=='](c))?e.den['$=='](1):f:b(a('Float'),g)?e.$to_f()['$=='](c):c['$=='](e)}),e(f,'$<=>',function(c){var e=this,f=d;return b(a('Rational'),f=c)?k(g(e.num,c.$denominator()),g(e.den,c.$numerator()))['$<=>'](0):b(a('Integer'),f)?k(e.num,g(e.den,c))['$<=>'](0):b(a('Float'),f)?e.$to_f()['$<=>'](c):e.$__coerced__("<=>",c)}),e(f,'$+',function(f){var e=this,h=d,i=d,j=d;return b(a('Rational'),h=f)?(i=m(g(e.num,f.$denominator()),g(e.den,f.$numerator())),j=g(e.den,f.$denominator()),c.$Rational(i,j)):b(a('Integer'),h)?c.$Rational(m(e.num,g(f,e.den)),e.den):b(a('Float'),h)?m(e.$to_f(),f):e.$__coerced__("+",f)}),e(f,'$-',function(f){var e=this,h=d,i=d,j=d;return b(a('Rational'),h=f)?(i=k(g(e.num,f.$denominator()),g(e.den,f.$numerator())),j=g(e.den,f.$denominator()),c.$Rational(i,j)):b(a('Integer'),h)?c.$Rational(k(e.num,g(f,e.den)),e.den):b(a('Float'),h)?k(e.$to_f(),f):e.$__coerced__("-",f)}),e(f,'$*',function(e){var f=this,h=d,i=d,j=d;return b(a('Rational'),h=e)?(i=g(f.num,e.$numerator()),j=g(f.den,e.$denominator()),c.$Rational(i,j)):b(a('Integer'),h)?c.$Rational(g(f.num,e),f.den):b(a('Float'),h)?g(f.$to_f(),e):f.$__coerced__("*",e)}),e(f,'$/',function(e){var f=this,h=d,k=d,l=d;return b(a('Rational'),h=e)?(k=g(f.num,e.$denominator()),l=g(f.den,e.$numerator()),c.$Rational(k,l)):b(a('Integer'),h)?i(e,0)?j(f.$to_f(),0):c.$Rational(f.num,g(f.den,e)):b(a('Float'),h)?j(f.$to_f(),e):f.$__coerced__("/",e)}),e(f,'$**',function(e){var f=this,g=d;return b(a('Integer'),g=e)?i(f,0)&&h(l(e,0))?a(a('Float'),'INFINITY'):h(w(e,0))?c.$Rational(f.num['$**'](e),f.den['$**'](e)):h(l(e,0))?c.$Rational(f.den['$**'](e['$-@']()),f.num['$**'](e['$-@']())):c.$Rational(1,1):b(a('Float'),g)?f.$to_f()['$**'](e):b(a('Rational'),g)?i(e,0)?c.$Rational(1,1):i(e.$denominator(),1)?h(l(e,0))?c.$Rational(f.den['$**'](e.$numerator().$abs()),f.num['$**'](e.$numerator().$abs())):c.$Rational(f.num['$**'](e.$numerator()),f.den['$**'](e.$numerator())):i(f,0)&&h(l(e,0))?c.$raise(a('ZeroDivisionError'),"divided by 0"):f.$to_f()['$**'](e):f.$__coerced__("**",e)}),e(f,'$abs',function(){var a=this;return c.$Rational(a.num.$abs(),a.den.$abs())}),e(f,'$ceil',function(a){var b=this;return a==null&&(a=0),i(a,0)?j(b.num['$-@'](),b.den)['$-@']().$ceil():b.$with_precision("ceil",a)},-1),e(f,'$floor',function(a){var b=this;return a==null&&(a=0),i(a,0)?j(b.num['$-@'](),b.den)['$-@']().$floor():b.$with_precision("floor",a)},-1),e(f,'$hash',function(){var b=this;return[a('Rational'),b.num,b.den].$hash()}),e(f,'$inspect',function(){var a=this;return"("+a+")"}),e(f,'$rationalize',function(t){var g=this,r,h,i,l,f,n,e,p,q,d,b,o;if(arguments.length>1&&c.$raise(a('ArgumentError'),"wrong number of arguments ("+arguments.length+" for 0..1)"),t==null)return g;for(r=t.$abs(),h=k(g,r),i=m(g,r),l=0,f=1,n=1,e=0;!0;){if(d=h.$ceil(),s(d,i))break;b=d-1,p=b*f+l,q=b*e+n,o=j(1,k(i,b)),i=j(1,k(h,b)),h=o,l=f,n=e,f=p,e=q}return c.$Rational(d*f+l,d*e+n)},-1),e(f,'$round',function(b){var a=this,e=d,f=d,c=d;return b==null&&(b=0),!i(b,0)?a.$with_precision("round",b):i(a.num,0)?0:i(a.den,1)?a.num:(e=m(g(a.num.$abs(),2),a.den),f=g(a.den,2),c=j(e,f).$truncate(),h(l(a.num,0)))?c['$-@']():c},-1),e(f,'$to_f',function(){var a=this;return j(a.num,a.den)}),e(f,'$to_i',function(){var a=this;return a.$truncate()}),e(f,'$to_r',t),e(f,'$to_s',function(){var a=this;return""+a.num+"/"+a.den}),e(f,'$truncate',function(a){var b=this;return a==null&&(a=0),i(a,0)?h(l(b.num,0))?b.$ceil():b.$floor():b.$with_precision("truncate",a)},-1),e(f,'$with_precision',function(k,f){var m=this,e=d,i=d;return b(a('Integer'),f)||c.$raise(a('TypeError'),"not an Integer"),e=10['$**'](f),i=g(m,e),h(l(f,1))?j(i.$send(k),e).$to_i():c.$Rational(i.$send(k),e)}),n(f,'$from_string',function(h){var a=h.trimLeft(),d=/^[+-]?[\d_]+(\.[\d_]+)?/,i=a.match(d),b,e;function f(){return d.test(a)}function g(){var c=a.match(d),b=c[0];return a=a.slice(b.length),b.replace(/_/g,'')}return f()?(b=parseFloat(g()),a[0]==='/'?(a=a.slice(1),f())?(e=parseFloat(g()),c.$Rational(b,e)):c.$Rational(b,1):c.$Rational(b,1)):c.$Rational(0,1)}),q(f,"divide","/"),q(f,"quo","/")}('::',a('Numeric'))},Opal.modules["corelib/time"]=function(c){var o=c.slice,t=c.deny_frozen_access,y=c.klass,h=c.Kernel,f=c.Opal,i=c.defs,l=c.eqeqeq,d=c.def,g=c.truthy,x=c.rb_gt,u=c.rb_lt,k=c.send,n=c.rb_plus,r=c.rb_divide,j=c.rb_minus,s=c.range,q=c.neqeq,m=c.rb_le,p=c.eqeq,e=c.alias,v=c.top,w=[],a=c.nil,b=c.$$$;return c.add_stubs('require,include,===,raise,coerce_to!,respond_to?,to_str,to_i,_parse_offset,new,<=>,to_f,nil?,>,<,strftime,each,define_method,year,month,day,+,round,/,-,copy_instance_variables,initialize_dup,is_a?,zero?,wday,hash,utc?,mon,yday,hour,min,sec,rjust,ljust,zone,to_s,[],cweek_cyear,jd,to_date,format,isdst,!=,<=,==,ceil,local,gm,asctime,getgm,gmt_offset,inspect,usec,gmtime,gmt?'),v.$require("corelib/comparable"),function(B,C,D){var v=y(B,C,'Time'),A=[v].concat(D),z=c.$r(A),E,F,G,H;v.$include(b('Comparable')),E=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],F=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],G=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],H=["January","February","March","April","May","June","July","August","September","October","November","December"],i(v,'$at',function(a,c){var d;return b('Time')['$==='](a)?(c!==void 0&&h.$raise(b('TypeError'),"can't convert Time into an exact number"),d=new Date(a.getTime()),d.timezone=a.timezone,d):(a.$$is_number||(a=f['$coerce_to!'](a,b('Integer'),"to_int")),c===void 0)?new Date(a*1e3):(c.$$is_number||(c=f['$coerce_to!'](c,b('Integer'),"to_int")),new Date(a*1e3+c/1e3))},-2);function w(j,c,e,g,i,d){if(j.$$is_string?j=parseInt(j,10):j=f['$coerce_to!'](j,b('Integer'),"to_int"),c===a)c=1;else if(!c.$$is_number)if(c['$respond_to?']("to_str"))switch(c=c.$to_str(),c.toLowerCase()){case'jan':c=1;break;case'feb':c=2;break;case'mar':c=3;break;case'apr':c=4;break;case'may':c=5;break;case'jun':c=6;break;case'jul':c=7;break;case'aug':c=8;break;case'sep':c=9;break;case'oct':c=10;break;case'nov':c=11;break;case'dec':c=12;break;default:c=c.$to_i()}else c=f['$coerce_to!'](c,b('Integer'),"to_int");return(c<1||c>12)&&h.$raise(b('ArgumentError'),"month out of range: "+c),c=c-1,e===a?e=1:e.$$is_string?e=parseInt(e,10):e=f['$coerce_to!'](e,b('Integer'),"to_int"),(e<1||e>31)&&h.$raise(b('ArgumentError'),"day out of range: "+e),g===a?g=0:g.$$is_string?g=parseInt(g,10):g=f['$coerce_to!'](g,b('Integer'),"to_int"),(g<0||g>24)&&h.$raise(b('ArgumentError'),"hour out of range: "+g),i===a?i=0:i.$$is_string?i=parseInt(i,10):i=f['$coerce_to!'](i,b('Integer'),"to_int"),(i<0||i>59)&&h.$raise(b('ArgumentError'),"min out of range: "+i),d===a?d=0:d.$$is_number||(d.$$is_string?d=parseInt(d,10):d=f['$coerce_to!'](d,b('Integer'),"to_int")),(d<0||d>60)&&h.$raise(b('ArgumentError'),"sec out of range: "+d),[j,c,e,g,i,d]}return i(v,'$new',function(b,d,e,f,g,h,j){var m=this,c,i,l,k;return d==null&&(d=a),e==null&&(e=a),f==null&&(f=a),g==null&&(g=a),h==null&&(h=a),j==null&&(j=a),b===void 0?new Date:(c=w(b,d,e,f,g,h),b=c[0],d=c[1],e=c[2],f=c[3],g=c[4],h=c[5],j===a)?(i=new Date(b,d,e,f,g,0,h*1e3),b<100&&i.setFullYear(b),i):(l=m.$_parse_offset(j),k=new Date(Date.UTC(b,d,e,f,g,0,h*1e3)),b<100&&k.setUTCFullYear(b),i=new Date(k.getTime()-l*36e5),i.timezone=l,i)},-1),i(v,'$_parse_offset',function(a){var c,d,e,f;return a.$$is_string?a=='UTC'?c=0:/^[+-]\d\d:[0-5]\d$/.test(a)?(d=a[0],e=+(a[1]+a[2]),f=+(a[4]+a[5]),c=(d=='-'?-1:1)*(e+f/60)):h.$raise(b('ArgumentError'),'"+HH:MM", "-HH:MM", "UTC" expected for utc_offset: '+a):a.$$is_number?c=a/3600:h.$raise(b('ArgumentError'),"Opal doesn't support other types for a timezone argument than Integer and String"),c}),i(v,'$local',function(c,d,e,f,g,h,m,j,k,l){d==null&&(d=a),e==null&&(e=a),f==null&&(f=a),g==null&&(g=a),h==null&&(h=a),m==null&&(m=a),j==null&&(j=a),k==null&&(k=a),l==null&&(l=a);var b,i;return arguments.length===10&&(b=o(arguments),c=b[5],d=b[4],e=b[3],f=b[2],g=b[1],h=b[0]),b=w(c,d,e,f,g,h),c=b[0],d=b[1],e=b[2],f=b[3],g=b[4],h=b[5],i=new Date(c,d,e,f,g,0,h*1e3),c<100&&i.setFullYear(c),i},-2),i(v,'$gm',function(c,d,e,f,g,h,m,j,k,l){d==null&&(d=a),e==null&&(e=a),f==null&&(f=a),g==null&&(g=a),h==null&&(h=a),m==null&&(m=a),j==null&&(j=a),k==null&&(k=a),l==null&&(l=a);var b,i;return arguments.length===10&&(b=o(arguments),c=b[5],d=b[4],e=b[3],f=b[2],g=b[1],h=b[0]),b=w(c,d,e,f,g,h),c=b[0],d=b[1],e=b[2],f=b[3],g=b[4],h=b[5],i=new Date(Date.UTC(c,d,e,f,g,0,h*1e3)),c<100&&i.setUTCFullYear(c),i.timezone=0,i},-2),i(v,'$now',function(){var a=this;return a.$new()}),d(v,'$+',function(a){var c=this,d;return l(b('Time'),a)&&h.$raise(b('TypeError'),"time + time?"),a.$$is_number||(a=f['$coerce_to!'](a,b('Integer'),"to_int")),d=new Date(c.getTime()+a*1e3),d.timezone=c.timezone,d}),d(v,'$-',function(a){var c=this,d;return l(b('Time'),a)?(c.getTime()-a.getTime())/1e3:(a.$$is_number||(a=f['$coerce_to!'](a,b('Integer'),"to_int")),d=new Date(c.getTime()-a*1e3),d.timezone=c.timezone,d)}),d(v,'$<=>',function(d){var e=this,c=a;return l(b('Time'),d)?e.$to_f()['$<=>'](d.$to_f()):(c=d['$<=>'](e),g(c['$nil?']()))?a:g(x(c,0))?-1:g(u(c,0))?1:0}),d(v,'$==',function(c){var e=this,d=a;return g(d=b('Time')['$==='](c))?e.$to_f()===c.$to_f():d}),d(v,'$asctime',function(){var a=this;return a.$strftime("%a %b %e %H:%M:%S %Y")}),k([["year","getFullYear","getUTCFullYear"],["mon","getMonth","getUTCMonth",1],["wday","getDay","getUTCDay"],["day","getDate","getUTCDate"],["hour","getHours","getUTCHours"],["min","getMinutes","getUTCMinutes"],["sec","getSeconds","getUTCSeconds"]],'each',[],function f(b,c,d,e){var g=f.$$s==null?this:f.$$s;return b==null&&(b=a),c==null&&(c=a),d==null&&(d=a),e==null&&(e=0),k(g,'define_method',[b],function b(){var a=b.$$s==null?this:b.$$s;return e+(a.timezone!=null?new Date(a.getTime()+a.timezone*36e5)[d]():a[c]())},{$$s:g})},{$$arity:-4,$$s:v}),d(v,'$yday',function(){var b=this,c=a,d=a,e=a;return c=z('Time').$new(b.$year()).$to_i(),d=z('Time').$new(b.$year(),b.$month(),b.$day()).$to_i(),e=86400,n(r(j(d,c),e).$round(),1)}),d(v,'$isdst',function(){var a=this,b=new Date(a.getFullYear(),0,1),c=new Date(a.getFullYear(),6,1);return a.getTimezoneOffset()'](c)['$zero?']():d}),k([["sunday?",0],["monday?",1],["tuesday?",2],["wednesday?",3],["thursday?",4],["friday?",5],["saturday?",6]],'each',[],function d(b,c){var e=d.$$s==null?this:d.$$s;return b==null&&(b=a),c==null&&(c=a),k(e,'define_method',[b],function a(){var b=a.$$s==null?this:a.$$s;return b.$wday()===c},{$$s:e})},{$$s:v}),d(v,'$hash',function(){var a=this;return[b('Time'),a.getTime()].$hash()}),d(v,'$inspect',function(){var a=this;return g(a['$utc?']())?a.$strftime("%Y-%m-%d %H:%M:%S UTC"):a.$strftime("%Y-%m-%d %H:%M:%S %z")}),d(v,'$succ',function(){var a=this,b=new Date(a.getTime()+1e3);return b.timezone=a.timezone,b}),d(v,'$usec',function(){var a=this;return a.getMilliseconds()*1e3}),d(v,'$zone',function(){var d=this,b,c;return d.timezone===0?"UTC":d.timezone!=null?a:(b=d.toString(),b.indexOf('(')==-1?c=b.match(/[A-Z]{3,4}/)[0]:c=b.match(/\((.+)\)(?:\s|$)/)[1],c=="GMT"&&/(GMT\W*\d{4})/.test(b))?RegExp.$1:c}),d(v,'$getgm',function(){var b=this,a=new Date(b.getTime());return a.timezone=0,a}),d(v,'$gmtime',function(){var a=this;return a.timezone!==0&&(t(a),a.timezone=0),a}),d(v,'$gmt?',function(){var a=this;return a.timezone===0}),d(v,'$gmt_offset',function(){var a=this;return a.timezone!=null?a.timezone*60:-a.getTimezoneOffset()*60}),d(v,'$strftime',function(b){var a=this;return b.replace(/%([\-_#^0]*:{0,2})(\d+)?([EO]*)(.)/g,function(t,f,e,u,r){var b="",g,h,i,d=f.indexOf('0')!==-1,q=f.indexOf('-')===-1,c=f.indexOf('_')!==-1,o=f.indexOf('^')!==-1,p=f.indexOf('#')!==-1,m=(f.match(':')||[]).length,k,l,n;switch(e=parseInt(e,10),d&&c&&(f.indexOf('0')=12?"pm":"am";break;case'p':b+=a.$hour()>=12?"PM":"AM";break;case'M':d=!c,b+=a.$min();break;case'S':d=!c,b+=a.$sec();break;case'L':d=!c,e=isNaN(e)?3:e,b+=a.getMilliseconds();break;case'N':e=isNaN(e)?9:e,b+=a.getMilliseconds().toString().$rjust(3,"0"),b=b.$ljust(e,"0");break;case'z':k=a.timezone==null?a.getTimezoneOffset():-a.timezone*60,l=Math.floor(Math.abs(k)/60),n=Math.abs(k)%60,b+=k<0?"+":"-",b+=l<10?"0":"",b+=l,m>0&&(b+=":"),b+=n<10?"0":"",b+=n,m>1&&(b+=":00");break;case'Z':b+=a.$zone();break;case'A':b+=E[a.$wday()];break;case'a':b+=F[a.$wday()];break;case'u':b+=a.$wday()+1;break;case'w':b+=a.$wday();break;case'V':b+=a.$cweek_cyear()['$[]'](0).$to_s().$rjust(2,"0");break;case'G':b+=a.$cweek_cyear()['$[]'](1);break;case'g':b+=a.$cweek_cyear()['$[]'](1)['$[]'](s(-2,-1,!1));break;case's':b+=a.$to_i();break;case'n':b+="\n";break;case't':b+=" ";break;case'%':b+="%";break;case'c':b+=a.$strftime("%a %b %e %T %Y");break;case'D':case'x':b+=a.$strftime("%m/%d/%y");break;case'F':b+=a.$strftime("%Y-%m-%d");break;case'v':b+=a.$strftime("%e-%^b-%4Y");break;case'r':b+=a.$strftime("%I:%M:%S %p");break;case'R':b+=a.$strftime("%H:%M");break;case'T':case'X':b+=a.$strftime("%H:%M:%S");break;case'J':if(g=a.$to_date().$jd(),g<2405160){b+=a.$strftime("%Y-%m-%d");break}g<2419614?(h='M',i=1867):g<2424875?(h='T',i=1911):g<2447535?(h='S',i=1925):g<2458605?(h='H',i=1988):(h='R',i=2018),b+=a.$format("%c%02d",h,j(a.$year(),i)),b+=a.$strftime("-%m-%d");break;default:return t}return o&&(b=b.toUpperCase()),p&&(b=b.replace(/[A-Z]/,function(a){a.toLowerCase()}).replace(/[a-z]/,function(a){a.toUpperCase()})),q&&(d||c)&&(b=b.$rjust(isNaN(e)?2:e,c?" ":"0")),b})}),d(v,'$to_a',function(){var a=this;return[a.$sec(),a.$min(),a.$hour(),a.$day(),a.$month(),a.$year(),a.$wday(),a.$yday(),a.$isdst(),a.$zone()]}),d(v,'$to_f',function(){var a=this;return a.getTime()/1e3}),d(v,'$to_i',function(){var a=this;return parseInt(a.getTime()/1e3,10)}),d(v,'$cweek_cyear',function(){var d=this,k=a,e=a,o=a,h=a,c=a,f=a,l=a,i=a;return k=b('Time').$new(d.$year(),1,1),e=k.$wday(),o=0,h=d.$year(),g(m(e,4))&&q(e,0)?c=j(e,1):(c=j(j(e,7),1),p(c,-8)&&(c=-1)),f=r(n(d.$yday(),c),7).$ceil(),g(m(f,0))?b('Time').$new(j(d.$year(),1),12,31).$cweek_cyear():(p(f,53)&&(l=b('Time').$new(d.$year(),12,31),i=l.$wday(),g(m(i,3))&&q(i,0)&&(f=1,h=n(h,1))),[f,h])}),function(a,b){return e(a,"mktime","local"),e(a,"utc","gm")}(c.get_singleton_class(v),A),e(v,"ctime","asctime"),e(v,"dst?","isdst"),e(v,"getutc","getgm"),e(v,"gmtoff","gmt_offset"),e(v,"mday","day"),e(v,"month","mon"),e(v,"to_s","inspect"),e(v,"tv_sec","to_i"),e(v,"tv_usec","usec"),e(v,"utc","gmtime"),e(v,"utc?","gmt?"),e(v,"utc_offset","gmt_offset")}('::',Date,w)},Opal.modules["corelib/struct"]=function(b){var z=b.klass,h=b.slice,A=b.extract_kwargs,u=b.ensure_kwargs,w=b.hash_get,e=b.truthy,s=b.neqeq,o=b.eqeq,k=b.Opal,d=b.send,v=b.Class,n=b.to_a,f=b.def,i=b.defs,g=b.Kernel,q=b.rb_gt,t=b.rb_minus,j=b.eqeqeq,r=b.rb_lt,p=b.rb_ge,l=b.rb_plus,m=b.alias,x=b.top,y=[],a=b.nil,c=b.$$$;return b.add_stubs('require,include,!=,upcase,[],==,class,unshift,const_name!,map,coerce_to!,new,each,define_struct_attribute,allocate,initialize,alias_method,module_eval,to_proc,const_set,raise,<<,members,define_method,instance_eval,last,>,length,-,keys,any?,join,[]=,each_with_index,hash,to_a,===,<,-@,size,>=,include?,to_sym,instance_of?,__id__,eql?,enum_for,+,name,each_pair,inspect,to_h,each_with_object,flatten,respond_to?,dig'),x.$require("corelib/enumerable"),function(F,C,D){var x=z(F,C,'Struct'),B=[x].concat(D),E=b.$r(B),y;return x.$include(c('Enumerable')),i(x,'$new',function r(g,x,y){var t=r.$$p||a,p,l,j,m,q=this,i=a;if(r.$$p=null,p=h(arguments,1),l=A(p),l=u(l),j=p,m=w(l,"keyword_init"),m==null&&(m=!1),e(g))if(o(g.$class(),c('String'))&&s(g['$[]'](0).$upcase(),g['$[]'](0)))j.$unshift(g),g=a;else try{g=k['$const_name!'](g)}catch(d){if(b.rescue(d,[c('TypeError'),c('NameError')]))try{j.$unshift(g),g=a}finally{b.pop_exception(d)}else throw d}return d(j,'map',[],function(b){return b==null&&(b=a),k['$coerce_to!'](b,c('String'),"to_str")}),i=d(v,'new',[q],function c(){var e=c.$$s==null?this:c.$$s;return d(j,'each',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),d.$define_struct_attribute(b)},{$$s:e}),function(b,c){return f(b,'$new',function(i){var c,e,f=this,b=a;return c=h(arguments),e=c,b=f.$allocate(),b.$$data={},d(b,'initialize',n(e)),b},-1),b.$alias_method("[]","new")}(b.get_singleton_class(e),B)},{$$s:q}),e(t)&&d(i,'module_eval',[],t.$to_proc()),i.$$keyword_init=m,e(g)&&c('Struct').$const_set(g,i),i},-2),i(x,'$define_struct_attribute',function(e){var b=this;return o(b,c('Struct'))&&g.$raise(c('ArgumentError'),"you cannot define attributes to the Struct class"),b.$members()['$<<'](e),d(b,'define_method',[e],function a(){var b=a.$$s==null?this:a.$$s;return b.$$data[e]},{$$s:b}),d(b,'define_method',[""+e+"="],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),d.$$data[e]=b},{$$s:b})}),i(x,'$members',function(){var b=this,d=a;return b.members==null&&(b.members=a),o(b,c('Struct'))&&g.$raise(c('ArgumentError'),"the Struct class has no members"),b.members=e(d=b.members)?d:[]}),i(x,'$inherited',function(e){var b=this,c=a;return b.members==null&&(b.members=a),c=b.members,d(e,'instance_eval',[],function a(){var b=a.$$s==null?this:a.$$s;return b.members=c},{$$s:b})}),f(x,'$initialize',function(n){var l,b,f=this,i=a,k=a,j=a;return l=h(arguments),b=l,e(f.$class().$$keyword_init)?(i=e(k=b.$last())?k:new Map,(e(q(b.$length(),1))||e(b.length===1&&!i.$$is_hash))&&g.$raise(c('ArgumentError'),"wrong number of arguments (given "+b.$length()+", expected 0)"),j=t(i.$keys(),f.$class().$members()),e(j['$any?']())&&g.$raise(c('ArgumentError'),"unknown keywords: "+j.$join(", ")),d(f.$class().$members(),'each',[],function e(b){var c,f=e.$$s==null?this:e.$$s;return b==null&&(b=a),(c=[b,i['$[]'](b)],d(f,'[]=',c),c[c.length-1])},{$$s:f})):(e(q(b.$length(),f.$class().$members().$length()))&&g.$raise(c('ArgumentError'),"struct size differs"),d(f.$class().$members(),'each_with_index',[],function g(e,f){var c,h=g.$$s==null?this:g.$$s;return e==null&&(e=a),f==null&&(f=a),(c=[e,b['$[]'](f)],d(h,'[]=',c),c[c.length-1])},{$$s:f}))},-1),f(x,'$initialize_copy',function(c){var d=this,e,a,f,b;d.$$data={},e=Object.keys(c.$$data);for(a=0,f=e.length;a"):(y['$<<'](f.$__id__()),g=!0,j(c('Struct'),f)&&e(f.$class().$name())&&(b=l(b,""+f.$class()+" ")),b=l(b,d(f.$each_pair(),'map',[],function(b,c){return b==null&&(b=a),c==null&&(c=a),""+b+"="+E('Opal').$inspect(c)}).$join(", ")),b=l(b,">"),b)}finally{e(g)?y.pop():a}}()}),f(x,'$to_h',function c(i){var e=c.$$p||a,f,g,b=this;return c.$$p=null,f=h(arguments),g=f,e!==a?d(d(b,'map',[],e.$to_proc()),'to_h',n(g)):d(b.$class().$members(),'each_with_object',[new Map],function f(b,e){var c,g=f.$$s==null?this:f.$$s;return b==null&&(b=a),e==null&&(e=a),(c=[b,g['$[]'](b)],d(e,'[]=',c),c[c.length-1])},{$$s:b})},-1),f(x,'$values_at',function(m){var f,b,k=this,i,e,j;f=h(arguments),b=f,b=d(b,'map',[],function(b){return b==null&&(b=a),b.$$is_range?b.$to_a():b}).$flatten(),i=[];for(e=0,j=b.length;e"}),b(o,'$==',function(b){var d=this;return!!e(d['$equal?'](b))||(e(b['$instance_of?'](d.$class()))?d.hash['$=='](b.$instance_variable_get("@hash")):!!(e(b['$is_a?'](g('Set')))&&j(d.$size(),b.$size()))&&c(b,'all?',[],function d(b){var c=d.$$s==null?this:d.$$s;return c.hash==null&&(c.hash=a),b==null&&(b=a),c.hash['$include?'](b)},{$$s:d}))}),b(o,'$add',function(b){var a=this;return a.hash['$[]='](b,!0),a}),b(o,'$classify',function f(){var h=f.$$p||a,b=this,e=a;return f.$$p=null,!(h!==a)?b.$enum_for("classify"):(e=c(g('Hash'),'new',[],function f(d,e){var b,g=f.$$s==null?this:f.$$s;return d==null&&(d=a),e==null&&(e=a),(b=[e,g.$class().$new()],c(d,'[]=',b),b[b.length-1])},{$$s:b}),c(b,'each',[],function(b){return b==null&&(b=a),e['$[]'](d.yield1(h,b)).$add(b)}),e)}),b(o,'$collect!',function f(){var g=f.$$p||a,b=this,e=a;return f.$$p=null,!(g!==a)?b.$enum_for("collect!"):(e=b.$class().$new(),c(b,'each',[],function(b){return b==null&&(b=a),e['$<<'](d.yield1(g,b))}),b.$replace(e))}),b(o,'$compare_by_identity',function(){var a=this;return e(a.hash['$respond_to?']("compare_by_identity"))?(a.hash.$compare_by_identity(),a):a.$raise(v('NotImplementedError'),""+a.$class().$name()+"#"+"compare_by_identity"+" is not implemented")}),b(o,'$compare_by_identity?',function(){var b=this,c=a;return e(c=b.hash['$respond_to?']("compare_by_identity?"))?b.hash['$compare_by_identity?']():c}),b(o,'$delete',function(b){var a=this;return a.hash.$delete(b),a}),b(o,'$delete?',function(c){var b=this;return e(b['$include?'](c))?(b.$delete(c),b):a}),b(o,'$delete_if',function e(){var f=e.$$p||a,b=this;return e.$$p=null,!(f!==a)?b.$enum_for("delete_if"):(c(c(b,'select',[],function(b){return b==null&&(b=a),d.yield1(f,b)}),'each',[],function d(b){var c=d.$$s==null?this:d.$$s;return c.hash==null&&(c.hash=a),b==null&&(b=a),c.hash.$delete(b)},{$$s:b}),b)}),b(o,'$freeze',function(){var a=this;return e(a['$frozen?']())?a:(a.hash.$freeze(),p(a))}),b(o,'$keep_if',function e(){var f=e.$$p||a,b=this;return e.$$p=null,!(f!==a)?b.$enum_for("keep_if"):(c(c(b,'reject',[],function(b){return b==null&&(b=a),d.yield1(f,b)}),'each',[],function d(b){var c=d.$$s==null?this:d.$$s;return c.hash==null&&(c.hash=a),b==null&&(b=a),c.hash.$delete(b)},{$$s:b}),b)}),b(o,'$reject!',function d(){var e=d.$$p||a,b=this,f=a;return d.$$p=null,!(e!==a)?b.$enum_for("reject!"):(f=b.$size(),c(b,'delete_if',[],e.$to_proc()),j(b.$size(),f))?a:b}),b(o,'$select!',function d(){var e=d.$$p||a,b=this,f=a;return d.$$p=null,!(e!==a)?b.$enum_for("select!"):(f=b.$size(),c(b,'keep_if',[],e.$to_proc()),j(b.$size(),f))?a:b}),b(o,'$add?',function(b){var c=this;return e(c['$include?'](b))?a:c.$add(b)}),b(o,'$each',function d(){var e=d.$$p||a,b=this;return d.$$p=null,!(e!==a)?b.$enum_for("each"):(c(b.hash,'each_key',[],e.$to_proc()),b)}),b(o,'$empty?',function(){var a=this;return a.hash['$empty?']()}),b(o,'$eql?',function(d){var b=this;return b.hash['$eql?'](c(d,'instance_eval',[],function c(){var b=c.$$s==null?this:c.$$s;return b.hash==null&&(b.hash=a),b.hash},{$$s:b}))}),b(o,'$clear',function(){var a=this;return a.hash.$clear(),a}),b(o,'$include?',function(a){var b=this;return b.hash['$include?'](a)}),b(o,'$merge',function(d){var b=this;return c(d,'each',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),d.$add(b)},{$$s:b}),b}),b(o,'$replace',function(b){var a=this;return a.$clear(),a.$merge(b),a}),b(o,'$size',function(){var a=this;return a.hash.$size()}),b(o,'$subtract',function(d){var b=this;return c(d,'each',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),d.$delete(b)},{$$s:b}),b}),b(o,'$|',function(a){var b=this;return e(a['$respond_to?']("each"))||h.$raise(g('ArgumentError'),"value must be enumerable"),b.$dup().$merge(a)});function r(a){e(s=a['$is_a?'](g('Set')))?s:h.$raise(g('ArgumentError'),"value must be a set")}return b(o,'$superset?',function(b){var d=this;return!(r(b),e(i(d.$size(),b.$size())))&&c(b,'all?',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),d['$include?'](b)},{$$s:d})}),b(o,'$proper_superset?',function(b){var d=this;return!(r(b),e(k(d.$size(),b.$size())))&&c(b,'all?',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),d['$include?'](b)},{$$s:d})}),b(o,'$subset?',function(b){var d=this;return!(r(b),e(i(b.$size(),d.$size())))&&c(d,'all?',[],function(c){return c==null&&(c=a),b['$include?'](c)})}),b(o,'$proper_subset?',function(b){var d=this;return!(r(b),e(k(b.$size(),d.$size())))&&c(d,'all?',[],function(c){return c==null&&(c=a),b['$include?'](c)})}),b(o,'$intersect?',function(b){var d=this;return r(b),e(i(d.$size(),b.$size()))?c(d,'any?',[],function(c){return c==null&&(c=a),b['$include?'](c)}):c(b,'any?',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),d['$include?'](b)},{$$s:d})}),b(o,'$disjoint?',function(a){var b=this;return b['$intersect?'](a)['$!']()}),b(o,'$to_a',function(){var a=this;return a.hash.$keys()}),f(o,"+","|"),f(o,"<","proper_subset?"),f(o,"<<","add"),f(o,"<=","subset?"),f(o,">","proper_superset?"),f(o,">=","superset?"),f(o,"difference","-"),f(o,"filter!","select!"),f(o,"length","size"),f(o,"map!","collect!"),f(o,"member?","include?"),f(o,"union","|")}('::',null,o)},Opal.modules["corelib/dir"]=function(a){var d=a.klass,b=a.def,e=a.truthy,f=a.alias,g=[],c=a.nil,h=a.$$$;return a.add_stubs('[],pwd'),function(i,j,k){var g=d(i,j,'Dir'),l=[g].concat(k);return function(d,g){return b(d,'$chdir',function b(e){var f=b.$$p||c,d=c;return b.$$p=null,function(){try{return d=a.current_dir,a.current_dir=e,a.yieldX(f,[])}finally{a.current_dir=d}}()}),b(d,'$pwd',function(){return a.current_dir||'.'}),b(d,'$home',function(){var a=c;return e(a=h('ENV')['$[]']("HOME"))?a:"."}),f(d,"getwd","pwd")}(a.get_singleton_class(g),l)}('::',null,g)},Opal.modules["corelib/file"]=function(b){var c=b.truthy,r=b.klass,h=b.const_set,l=b.Opal,d=b.regexp,f=b.rb_plus,e=b.def,k=b.Kernel,j=b.eqeq,o=b.rb_lt,m=b.rb_minus,s=b.range,i=b.send,p=b.slice,n=b.alias,q=[],a=b.nil,g=b.$$$;return b.add_stubs('respond_to?,to_path,coerce_to!,pwd,split,sub,+,unshift,join,home,raise,start_with?,absolute_path,==,<,dirname,-,basename,empty?,rindex,[],length,nil?,gsub,find,=~,map,each_with_index,flatten,reject,to_proc,end_with?,expand_path,exist?'),function(v,w,x){var u=r(v,w,'File'),q=[u].concat(x),t=a;return h(q[0],'Separator',h(q[0],'SEPARATOR',"/")),h(q[0],'ALT_SEPARATOR',a),h(q[0],'PATH_SEPARATOR',":"),h(q[0],'FNM_SYSCASE',0),t=/^[a-zA-Z]:(?:\\|\/)/,function(q,v){var w=[q].concat(v),h=b.$r(w);e(q,'$absolute_path',function(b,e){var j=a,k=a,i=a,v=a,w=a,u=a,o=a,s=a,n=a,p=a,m,q,x;e==null&&(e=a),j=h('SEPARATOR'),k=r(),i=[],b=c(b['$respond_to?']("to_path"))?b.$to_path():b,b=l['$coerce_to!'](b,g('String'),"to_str"),e=c(v=e)?v:g('Dir').$pwd(),w=b.substr(0,j.length)===j||t.test(b),u=e.substr(0,j.length)===j||t.test(e),c(w)?(o=b.$split(d(["[",k,"]"])),s=t.test(b)?'':b.$sub(d(["^([",k,"]+).*$"]),"\\1"),n=!0):(o=f(e.$split(d(["[",k,"]"])),b.$split(d(["[",k,"]"]))),s=t.test(e)?'':e.$sub(d(["^([",k,"]+).*$"]),"\\1"),n=u);for(q=0,x=o.length;q",0]))},Opal.modules["corelib/irb"]=function(a){var r=a.module,d=a.truthy,m=a.Kernel,k=a.defs,c=a.gvars,q=a.lambda,s=a.hash_rehash,f=a.send,j=a.rb_plus,t=a.const_set,l=a.klass,h=a.def,g=a.Opal,n=a.range,o=a.eqeq,p=a.thrower,i=[],b=a.nil,e=a.$$$;a.add_stubs('include?,raise,attr_accessor,singleton_class,output=,browser?,each,dup,write_proc=,proc,+,output,join,last,split,end_with?,call,write_proc,tty=,read_proc,read_proc=,freeze,new,string,ensure_loaded,prepare_console,loop,print,gets,puts,start_with?,[],==,silence,message,empty?,warnings,warn,full_message,eval_and_print,irb'),function(i,n){var o=r(i,'Opal'),g=[o].concat(n);return function(o,p){var g=r(o,'IRB'),i=[g].concat(p),n=a.$r(i);return k(g,'$ensure_loaded',function(c){var f=b,g=b,h,e;return d(a.loaded_features['$include?'](c))?b:(f=d(n('RUBY_ENGINE_VERSION')['$include?']("dev"))?"master":n('RUBY_ENGINE_VERSION'),g="https://cdn.opalrb.com/opal/"+f+"/"+c+".js",typeof XMLHttpRequest!='undefined'?(e=new XMLHttpRequest,e.open("GET",g,!1),e.send(''),h=e.responseText):m.$raise("You need to provision "+c+" yourself in this environment"),new Function('Opal',h)(a),a.require(c),d(a.loaded_features['$include?'](c)))?b:m.$raise("Could not load "+c+" for some reason")}),g.$singleton_class().$attr_accessor("output"),k(g,'$prepare_console',function i(){var l=i.$$p||b,e,g=this,h=b,k=b;return c.stdout==null&&(c.stdout=b),c.stderr==null&&(c.stderr=b),c.stdin==null&&(c.stdin=b),i.$$p=null,function(){try{return g['$output='](""),h=s(new Map([[c.stdout,q(function(a){return a==null&&(a=b),c.stdout=a})],[c.stderr,q(function(a){return a==null&&(a=b),c.stderr=a})]])),d(g['$browser?']())&&(f(h,'each',[],function g(a,e){var h=g.$$s==null?this:g.$$s,c=b;return a==null&&(a=b),e==null&&(e=b),c=a.$dup(),c['$write_proc='](f(h,'proc',[],function f(e){var c=f.$$s==null?this:f.$$s;return e==null&&(e=b),c['$output='](j(c.$output(),e)),c['$output='](c.$output().$split("\n").$last(30).$join("\n")),d(e['$end_with?']("\n"))&&c['$output='](j(c.$output(),"\n")),a.$write_proc().$call(e)},{$$s:h})),c['$tty='](!1),e.$call(c)},{$$s:g}),k=c.stdin.$read_proc(),c.stdin['$read_proc='](function(c){var a=prompt(g.$output());return a!==null?a+"\n":b})),a.yieldX(l,[])}finally{f(h,'each',[],function(a,c){return a==null&&(a=b),c==null&&(c=b),c.$call(a)}),(e=[k],f(c.stdin,'read_proc=',e),e[e.length-1]),(e=[""],f(g,'output=',e),e[e.length-1])}}()}),k(g,'$browser?',function(){return typeof document!='undefined'&&typeof prompt!='undefined'}),t(i[0],'LINEBREAKS',["unexpected token $end","unterminated string meets end of file"].$freeze()),function(g,i){var d=l(g,i,'Silencer'),f=d.$$prototype;return f.collector=f.stderr=b,h(d,'$initialize',function(){var a=this;return c.stderr==null&&(c.stderr=b),a.stderr=c.stderr}),h(d,'$silence',function f(){var g=f.$$p||b,d=this;return f.$$p=null,function(){try{return d.collector=e('StringIO').$new(),c.stderr=d.collector,a.yieldX(g,[])}finally{c.stderr=d.stderr}}()}),h(d,'$warnings',function(){var a=this;return a.collector.$string()})}(i[0],null)}(g[0],g)}(i[0],i),function(i,k,m){var c=l(i,k,'Binding'),q=[c].concat(m),r=a.$r(q);return h(c,'$irb',function(){var c,i,h;try{return c=p('return'),i=this,h=b,e(g,'IRB').$ensure_loaded("opal-replutils"),h=e(e(g,'IRB'),'Silencer').$new(),f(e(g,'IRB'),'prepare_console',[],function i(){var k=i.$$s==null?this:i.$$s;return function(){try{var i=p('break');return f(k,'loop',[],function q(){var l=q.$$s==null?this:q.$$s,k=b,m=b,p=b,s=b,t=b;l.$print(">> "),k=l.$gets(),d(k)||i.$throw(b,q.$$is_lambda),m="",d(e(g,'IRB')['$browser?']())&&l.$puts(k),d(k['$start_with?']("ls "))?(m=k['$[]'](n(3,-1,!1)),p="ls"):o(k,"ls\n")?(m="self",p="ls"):d(k['$start_with?']("show "))?(m=k['$[]'](n(5,-1,!1)),p="show"):(m=k,p="inspect"),s=b;do{try{f(h,'silence',[],function(){return s=a.compile(m,{irb:!0})})}catch(f){if(a.rescue(f,[r('SyntaxError')])){t=f;try{if(d(e(e(g,'IRB'),'LINEBREAKS')['$include?'](t.$message()))){l.$print(".. "),k=l.$gets(),d(k)||c.$throw(b,q.$$is_lambda),d(e(g,'IRB')['$browser?']())&&l.$puts(k),m=j(m,k);continue}d(h.$warnings()['$empty?']())?l.$warn(t.$full_message()):l.$warn(h.$warnings())}finally{a.pop_exception(f)}}else throw f}break}while(1)return o(p,"show")&&(l.$puts(s),c.$throw(b,q.$$is_lambda)),l.$puts(e('REPLUtils').$eval_and_print(s,p,!1,l))},{$$s:k,$$ret:c})}catch(a){if(a===i)return a.$v;throw a}finally{i.is_orphan=!0}}()},{$$s:i})}catch(a){if(a===c)return a.$v;throw a}finally{c.is_orphan=!0}})}('::',null,i),a.irb=function(a){e('Binding').$new(a).$irb()},a.load_parser=function(){a.Opal.IRB.$ensure_loaded('opal-parser')},typeof a.eval=='undefined'&&(a.eval=function(b){return a.load_parser(),a.eval(b)}),typeof a.compile=='undefined'&&(a.compile=function(b,c){return a.load_parser(),a.compile(b,c)})},Opal.modules.opal=function(b){var a=b.Object,c=b.nil;return b.add_stubs('require,autoload'),a.$require("opal/base"),a.$require("opal/mini"),a.$require("corelib/kernel/format"),a.$require("corelib/string/encoding"),a.$autoload("Math","corelib/math"),a.$require("corelib/complex/base"),a.$autoload("Complex","corelib/complex"),a.$require("corelib/rational/base"),a.$autoload("Rational","corelib/rational"),a.$require("corelib/time"),a.$autoload("Struct","corelib/struct"),a.$autoload("Set","corelib/set"),a.$autoload("Dir","corelib/dir"),a.$autoload("File","corelib/file"),a.$require("corelib/process/base"),a.$autoload("Process","corelib/process"),a.$autoload("Random","corelib/random"),a.$require("corelib/unsupported"),a.$require("corelib/binding"),a.$require("corelib/irb")},Opal.load_normalized("opal"),Opal.modules.opal=function(b){var a=b.Object,c=b.nil;return b.add_stubs('require,autoload'),a.$require("opal/base"),a.$require("opal/mini"),a.$require("corelib/kernel/format"),a.$require("corelib/string/encoding"),a.$autoload("Math","corelib/math"),a.$require("corelib/complex/base"),a.$autoload("Complex","corelib/complex"),a.$require("corelib/rational/base"),a.$autoload("Rational","corelib/rational"),a.$require("corelib/time"),a.$autoload("Struct","corelib/struct"),a.$autoload("Set","corelib/set"),a.$autoload("Dir","corelib/dir"),a.$autoload("File","corelib/file"),a.$require("corelib/process/base"),a.$autoload("Process","corelib/process"),a.$autoload("Random","corelib/random"),a.$require("corelib/unsupported"),a.$require("corelib/binding"),a.$require("corelib/irb")},Opal.modules["opal/paths"]=function(a){var j=a.module,c=a.defs,k=a.slice,f=a.rb_plus,d=a.gvars,e=a.send,l=a.to_a,g=a.def,h=a.truthy,i=[],b=a.nil,m=a.$$$;return a.add_stubs('expand_path,append_paths,concat,gem_dir,[],+,grep,require_paths_for_gem,private,find_by_name,raise,each,runtime_dependencies,name,map,require_paths,<<,join,extend,freeze,core_dir,std_dir,reset_paths!'),function(p,q){var i=j(p,'Opal'),o=[i].concat(q),n=a.$r(o);return c(i,'$gem_dir',function(){return n('File').$expand_path("../..","opal/paths.rb")}),c(i,'$core_dir',function(){return n('File').$expand_path("../../../opal","opal/paths.rb")}),c(i,'$std_dir',function(){return n('File').$expand_path("../../../stdlib","opal/paths.rb")}),c(i,'$append_path',function(a){var b=this;return b.$append_paths(a)}),c(i,'$append_paths',function(f){var c,d,a=this;return a.paths==null&&(a.paths=b),c=k(arguments),d=c,a.paths.$concat(d),b},-1),c(i,'$dependent_files',function(){var c=b,a=b;return d.LOADED_FEATURES==null&&(d.LOADED_FEATURES=b),c=n('File').$expand_path("..",n('Opal').$gem_dir()),a=n('Dir')['$[]'](""+c+"/{Gemfile*,*.gemspec,lib/**/*}"),a=f(a,d.LOADED_FEATURES.$grep(/lib\/(parser|ast)/)),a}),function(i,k){var c=j(i,'UseGem'),n=[c].concat(k),d=a.$r(n);return g(c,'$use_gem',function(c,a){var b=this;return a==null&&(a=!0),e(b,'append_paths',l(b.$require_paths_for_gem(c,a)))},-2),c.$private(),g(c,'$require_paths_for_gem',function(i,j){var k=this,a=b,c=b,g=b;return a=[],c=m(d('Gem'),'Specification').$find_by_name(i),h(c)||k.$raise(d('GemNotFound'),i),h(j)&&e(c.$runtime_dependencies(),'each',[],function d(c){var e=d.$$s==null?this:d.$$s;return c==null&&(c=b),a=f(a,e.$require_paths_for_gem(c.$name(),j))},{$$s:k}),g=c.$gem_dir(),e(c.$require_paths(),'map',[],function(c){return c==null&&(c=b),a['$<<'](d('File').$join(g,c))}),a})}(o[0],o),i.$extend(n('UseGem')),c(i,'$paths',function(){var a=this;return a.paths==null&&(a.paths=b),a.paths.$freeze()}),c(i,'$reset_paths!',function(){var a=this;return a.paths=[a.$core_dir(),a.$std_dir(),a.$gem_dir()],b,b}),i['$reset_paths!']()}(i[0],i)},Opal.modules.js=function(b){var h=b.module,a=b.def,d=b.truthy,e=b.slice,f=b.alias,g=[],c=b.nil;return b.add_stubs('insert,<<,global,call,extend'),function(i){var g=h(i,'JS');return a(g,'$delete',function(a,b){return delete a[b]}),a(g,'$global',function(){return b.global}),a(g,'$in',function(a,b){return a in b}),a(g,'$instanceof',function(a,b){return a instanceof b}),d(typeof Function.prototype.bind=='function')?a(g,'$new',function b(f,i){var g=b.$$p||c,h,a;return b.$$p=null,h=e(arguments,1),a=h,a.$insert(0,this),d(g)&&a['$<<'](g),new(f.bind.apply(f,a))},-2):a(g,'$new',function i(f,j){var g=i.$$p||c,h,b,a=c;return i.$$p=null,h=e(arguments,1),b=h,d(g)&&b['$<<'](g),a=function(){return f.apply(this,b)},a.prototype=f.prototype,new a},-2),a(g,'$typeof',function(a){return typeof a}),a(g,'$void',function(a){}),a(g,'$call',function f(j,k){var g=f.$$p||c,h,b,i=this,a=c;return f.$$p=null,h=e(arguments,1),b=h,a=i.$global(),d(g)&&b['$<<'](g),a[j].apply(a,b)},-2),a(g,'$[]',function(a){return b.global[a]}),f(g,"method_missing","call"),g.$extend(g)}(g[0])},Opal.modules["bigdecimal/bignumber"]=function(a){var c=a.klass,b=[],d=a.$r(b),e=a.nil;return function(e,f){var d=c(e,f,'BigDecimal'),b=function(b){a.const_set(d,'BigNumber',b())};b.amd=!0,!function(q){"use strict";function o(X){function b(d,h){var k,g,f,j,i,c,e=this;if(!(e instanceof b))return D&&F(26,"constructor call without new",d),new b(d,h);if(null!=h&&q(h,2,64,C,"base")){if(h=0|h,c=d+"",10==h)return e=new b(d instanceof b?d:c),G(e,I+e.e+1,E);if((j="number"==typeof d)&&0*d!=0||!new RegExp("^-?"+(k="["+v.slice(0,h)+"]+")+"(?:\\."+k+")?$",37>h?"i":"").test(c))return r(e,c,j,h);j?(e.s=0>1/d?(c=c.slice(1),-1):1,D&&c.replace(/^0\.0*|\./,"").length>15&&F(C,y,d),j=!1):e.s=45===c.charCodeAt(0)?(c=c.slice(1),-1):1,c=W(c,10,h,e.s)}else{if(d instanceof b)return e.s=d.s,e.e=d.e,e.c=(d=d.c)&&d.slice(),void(C=0);if((j="number"==typeof d)&&0*d==0){if(e.s=0>1/d?(d=-d,-1):1,d===~~d){for(g=0,f=d;f>=10;f/=10,g++);return e.e=g,e.c=[d],void(C=0)}c=d+""}else{if(!B.test(c=d+""))return r(e,c,j);e.s=45===c.charCodeAt(0)?(c=c.slice(1),-1):1}}for((g=c.indexOf("."))>-1&&(c=c.replace(".","")),(f=c.search(/e/i))>0?(0>g&&(g=f),g+=+c.slice(f+1),c=c.substring(0,f)):0>g&&(g=c.length),f=0;48===c.charCodeAt(f);f++);for(i=c.length;48===c.charCodeAt(--i););if(c=c.slice(f,i+1))if(i=c.length,j&&D&&i>15&&F(C,y,e.s*d),g=g-f-1,g>J)e.c=e.e=null;else if(O>g)e.c=[e.e=0];else{if(e.e=g,e.c=[],f=(g+1)%a,0>g&&(f+=a),i>f){for(f&&e.c.push(+c.slice(0,f)),i-=a;i>f;)e.c.push(+c.slice(f,f+=a));c=c.slice(f),f=a-c.length}else f-=i;for(;f--;c+="0");e.c.push(+c)}else e.c=[e.e=0];C=0}function W(d,n,o,q){var h,k,e,i,c,a,m,f=d.indexOf("."),p=I,l=E;for(37>o&&(d=d.toLowerCase()),f>=0&&(e=K,K=0,d=d.replace(".",""),m=new b(o),c=m.pow(d.length-f),K=e,m.c=z(j(g(c.c),c.e),10,n),m.e=m.c.length),a=z(d,o,n),k=e=a.length;0==a[--e];a.pop());if(!a[0])return"0";if(0>f?--k:(c.c=a,c.e=k,c.s=q,c=H(c,m,p,l,n),a=c.c,i=c.r,k=c.e),h=k+p+1,f=a[h],e=n/2,i=i||0>h||null!=a[h+1],i=4>l?(null!=f||i)&&(0==l||l==(c.s<0?3:2)):f>e||f==e&&(4==l||i||6==l&&1&a[h-1]||l==(c.s<0?8:7)),1>h||!a[0])d=i?j("1",-p):"0";else{if(a.length=h,i)for(--n;++a[--h]>n;)a[h]=0,h||(++k,a.unshift(1));for(e=a.length;!a[--e];);for(f=0,d="";e>=f;d+=v.charAt(a[f++]));d=j(d,k)}return d}function Q(c,d,k,h){var l,e,i,f,a;if(k=null!=k&&q(k,0,8,h,t)?0|k:E,!c.c)return c.toString();if(l=c.c[0],i=c.e,null==d)a=g(c.c),a=19==h||24==h&&N>=i?n(a,i):j(a,i);else if(c=G(new b(c),d,k),e=c.e,a=g(c.c),f=a.length,19==h||24==h&&(e>=d||N>=e)){for(;d>f;a+="0",f++);a=n(a,e)}else if(d-=i,a=j(a,e),e+1>f){if(--d>0)for(a+=".";d--;a+="0");}else if(d+=e-f,d>0)for(e+1==f&&(a+=".");d--;a+="0");return c.s<0&&l?"-"+a:a}function V(a,f){var c,d,e=0;for(x(a[0])&&(a=a[0]),c=new b(a[0]);++ea||a>c||a!=u(a))&&F(d,(e||"decimal places")+(b>a||a>c?" out of range":" not an integer"),a),!0}function T(b,c,d){for(var f=1,e=c.length;!c[--e];c.pop());for(e=c[0];e>=10;e/=10,f++);return(d=f+d*a-1)>J?b.c=b.e=null:O>d?b.c=[b.e=0]:(b.e=d,b.c=c),b}function F(b,c,d){var a=new Error(["new BigNumber","cmp","config","div","divToInt","eq","gt","gte","lt","lte","minus","mod","plus","precision","random","round","shift","times","toDigits","toExponential","toFixed","toFormat","toFraction","pow","toPrecision","toString","BigNumber"][b]+"() "+c+": "+d);throw a.name="BigNumber Error",C=0,a}function G(g,n,o,l){var i,d,c,f,j,e,q,b=g.c,m=w;if(b){e:{for(i=1,f=b[0];f>=10;f/=10,i++);if(d=n-i,0>d)d+=a,c=n,j=b[e=0],q=j/m[i-c-1]%10|0;else if(e=p((d+1)/a),e>=b.length){if(!l)break e;for(;b.length<=e;b.push(0));j=q=0,i=1,d%=a,c=d-a+1}else{for(j=f=b[e],i=1;f>=10;f/=10,i++);d%=a,c=d-a+i,q=0>c?0:j/m[i-c-1]%10|0}if(l=l||0>n||null!=b[e+1]||(0>c?j:j%m[i-c-1]),l=4>o?(q||l)&&(0==o||o==(g.s<0?3:2)):q>5||5==q&&(4==o||l||6==o&&(d>0?c>0?j/m[i-c]:0:b[e-1])%10&1||o==(g.s<0?8:7)),1>n||!b[0])return b.length=0,l?(n-=g.e+1,b[0]=m[(a-n%a)%a],g.e=-n||0):b[0]=g.e=0,g;if(0==d?(b.length=e,f=1,e--):(b.length=e+1,f=m[a-d],b[e]=c>0?k(j/m[i-c]%m[c])*f:0),l)for(;;){if(0==e){for(d=1,c=b[0];c>=10;c/=10,d++);for(c=b[0]+=f,f=1;c>=10;c/=10,f++);d!=f&&(g.e++,b[0]==h&&(b[0]=1));break}if(b[e]+=f,b[e]!=h)break;b[e--]=0,f=1}for(d=b.length;0===b[--d];b.pop());}g.e>J?g.c=g.e=null:g.ei?null!=(a=h[i++]):void 0};return f(b="DECIMAL_PLACES")&&q(a,0,c,2,b)&&(I=0|a),d[b]=I,f(b="ROUNDING_MODE")&&q(a,0,8,2,b)&&(E=0|a),d[b]=E,f(b="EXPONENTIAL_AT")&&(x(a)?q(a[0],-c,0,2,b)&&q(a[1],0,c,2,b)&&(N=0|a[0],P=0|a[1]):q(a,-c,c,2,b)&&(N=-(P=0|(0>a?-a:a)))),d[b]=[N,P],f(b="RANGE")&&(x(a)?q(a[0],-c,-1,2,b)&&q(a[1],1,c,2,b)&&(O=0|a[0],J=0|a[1]):q(a,-c,c,2,b)&&(0|a?O=-(J=0|(0>a?-a:a)):D&&F(2,b+" cannot be zero",a))),d[b]=[O,J],f(b="ERRORS")&&(a===!!a||1===a||0===a?(C=0,q=(D=!!a)?U:A):D&&F(2,b+s,a)),d[b]=D,f(b="CRYPTO")&&(a===!!a||1===a||0===a?(R=!(!a||!e),a&&!R&&D&&F(2,"crypto unavailable",e)):D&&F(2,b+s,a)),d[b]=R,f(b="MODULO_MODE")&&q(a,0,9,2,b)&&(S=0|a),d[b]=S,f(b="POW_PRECISION")&&q(a,0,c,2,b)&&(K=0|a),d[b]=K,f(b="FORMAT")&&("object"==typeof a?M=a:D&&F(2,b+" not an object",a)),d[b]=M,d},b.max=function(){return V(arguments,d.lt)},b.min=function(){return V(arguments,d.gt)},b.random=function(){var d=9007199254740992,f=Math.random()*d&2097151?function(){return k(Math.random()*d)}:function(){return 8388608*(1073741824*Math.random()|0)+(8388608*Math.random()|0)};return function(l){var h,n,m,j,g,d=0,i=[],o=new b(L);if(l=null!=l&&q(l,0,c,14)?0|l:I,j=p(l/a),R)if(e&&e.getRandomValues){for(h=e.getRandomValues(new Uint32Array(j*=2));j>d;)g=131072*h[d]+(h[d+1]>>>11),g>=9e15?(n=e.getRandomValues(new Uint32Array(2)),h[d]=n[0],h[d+1]=n[1]):(i.push(g%1e14),d+=2);d=j/2}else if(e&&e.randomBytes){for(h=e.randomBytes(j*=7);j>d;)g=281474976710656*(31&h[d])+1099511627776*h[d+1]+4294967296*h[d+2]+16777216*h[d+3]+(h[d+4]<<16)+(h[d+5]<<8)+h[d+6],g>=9e15?e.randomBytes(7).copy(h,d):(i.push(g%1e14),d+=7);d=j/7}else D&&F(14,"crypto unavailable",e);if(!d)for(;j>d;)g=f(),9e15>g&&(i[d++]=g%1e14);for(j=i[--d],l%=a,j&&l&&(g=w[a-l],i[d]=k(j/g)*g);0===i[d];i.pop(),d--);if(0>d)i=[m=0];else{for(m=-1;0===i[0];i.shift(),m-=a);for(d=1,g=i[0];g>=10;g/=10,d++);a>d&&(m-=a-d)}return o.e=m,o.c=i,o}}(),H=function(){function c(a,h,j){var d,e,f,g,b=0,c=a.length,k=h%i,l=h/i|0;for(a=a.slice();c--;)f=a[c]%i,g=a[c]/i|0,d=l*f+g*k,e=k*f+d%i*i+b,b=(e/j|0)+(d/i|0)+l*g,a[c]=e%j;return b&&a.unshift(b),a}function d(d,e,c,f){var a,b;if(c!=f)b=c>f?1:-1;else for(a=b=0;c>a;a++)if(d[a]!=e[a]){b=d[a]>e[a]?1:-1;break}return b}function e(a,d,b,e){for(var c=0;b--;)a[b]-=c,c=a[b]1;a.shift());}return function(x,y,F,H,n){var w,v,p,z,j,r,s,t,u,i,l,B,A,E,D,q,C,o=x.s==y.s?1:-1,m=x.c,g=y.c;if(!(m&&m[0]&&g&&g[0]))return new b(x.s&&y.s&&(m?!g||m[0]!=g[0]:g)?m&&0==m[0]||!g?0*o:o/0:NaN);for(t=new b(o),u=t.c=[],v=x.e-y.e,o=F+v+1,n||(n=h,v=f(x.e/a)-f(y.e/a),o=o/a|0),p=0;g[p]==(m[p]||0);p++);if(g[p]>(m[p]||0)&&v--,0>o)u.push(1),z=!0;else{for(E=m.length,q=g.length,p=0,o+=2,j=k(n/(g[0]+1)),j>1&&(g=c(g,j,n),m=c(m,j,n),q=g.length,E=m.length),A=q,i=m.slice(0,q),l=i.length;q>l;i[l++]=0);C=g.slice(),C.unshift(0),D=g[0],g[1]>=n/2&&D++;do{if(j=0,w=d(g,i,q,l),0>w){{if(B=i[0],q!=l&&(B=B*n+(i[1]||0)),j=k(B/D),j>1)for(j>=n&&(j=n-1),r=c(g,j,n),s=r.length,l=i.length;1==d(r,i,s,l);)j--,e(r,s>q?C:g,s,n),s=r.length,w=1;else 0==j&&(w=j=1),r=g.slice(),s=r.length;if(l>s&&r.unshift(0),e(i,r,l,n),l=i.length,-1==w)for(;d(g,i,q,l)<1;)j++,e(i,l>q?C:g,l,n),l=i.length}}else 0===w&&(j++,i=[0]);u[p++]=j,i[0]?i[l++]=m[A]||0:(i=[m[A]],l=1)}while((A++=10;o/=10,p++);G(t,F+(t.e=p+v*a-1)+1,H,z)}else t.e=v,t.r=+z;return t}}(),r=function(){var a=/^(-?)0([xbo])(?=\w[\w.]*$)/i,c=/^([^.]+)\.$/,d=/^\.([^.]+)$/,e=/^-?(Infinity|NaN)$/,f=/^\s*\+(?=[\w.])|^\s+|\s+$/g;return function(i,j,l,h){var k,g=l?j:j.replace(f,"");if(e.test(g))i.s=isNaN(g)?null:0>g?-1:1;else{if(!l&&(g=g.replace(a,function(b,c,a){return k="x"==(a=a.toLowerCase())?16:"b"==a?2:8,h&&h!=k?b:c}),h&&(k=h,g=g.replace(c,"$1").replace(d,"0.$1")),j!=g))return new b(g,k);D&&F(C,"not a"+(h?" base "+h:"")+" number",j),i.s=null}i.c=i.e=null,C=0}}(),d.absoluteValue=d.abs=function(){var a=new b(this);return a.s<0&&(a.s=1),a},d.ceil=function(){return G(new b(this),this.e+1,2)},d.comparedTo=d.cmp=function(a,c){return C=1,m(this,new b(a,c))},d.decimalPlaces=d.dp=function(){var b,c,d=this.c;if(!d)return null;if(b=((c=d.length-1)-f(this.e/a))*a,c=d[c])for(;c%10==0;c/=10,b--);return 0>b&&(b=0),b},d.dividedBy=d.div=function(a,c){return C=3,H(this,new b(a,c),I,E)},d.dividedToIntegerBy=d.divToInt=function(a,c){return C=4,H(this,new b(a,c),0,1)},d.equals=d.eq=function(a,c){return C=5,0===m(this,new b(a,c))},d.floor=function(){return G(new b(this),this.e+1,3)},d.greaterThan=d.gt=function(a,c){return C=6,m(this,new b(a,c))>0},d.greaterThanOrEqualTo=d.gte=function(c,a){return C=7,1===(a=m(this,new b(c,a)))||0===a},d.isFinite=function(){return!!this.c},d.isInteger=d.isInt=function(){return!!this.c&&f(this.e/a)>this.c.length-2},d.isNaN=function(){return!this.s},d.isNegative=d.isNeg=function(){return this.s<0},d.isZero=function(){return!!this.c&&0==this.c[0]},d.lessThan=d.lt=function(a,c){return C=8,m(this,new b(a,c))<0},d.lessThanOrEqualTo=d.lte=function(c,a){return C=9,-1===(a=m(this,new b(c,a)))||0===a},d.minus=d.sub=function(e,d){var k,j,m,p,n=this,i=n.s,o,l,c,g;if(C=10,e=new b(e,d),d=e.s,!i||!d)return new b(NaN);if(i!=d)return e.s=-d,n.plus(e);if(o=n.e/a,l=e.e/a,c=n.c,g=e.c,!o||!l){if(!c||!g)return c?(e.s=-d,e):new b(g?n:NaN);if(!c[0]||!g[0])return g[0]?(e.s=-d,e):new b(c[0]?n:3==E?-0:0)}if(o=f(o),l=f(l),c=c.slice(),i=o-l){for((p=0>i)?(i=-i,m=c):(l=o,m=g),m.reverse(),d=i;d--;m.push(0));m.reverse()}else for(j=(p=(i=c.length)<(d=g.length))?i:d,i=d=0;j>d;d++)if(c[d]!=g[d]){p=c[d]0)for(;d--;c[k++]=0);for(d=h-1;j>i;){if(c[--j]0?(j=m,k=i):(c=-c,k=d),k.reverse();c--;k.push(0));k.reverse()}for(c=d.length,e=i.length,0>c-e&&(k=i,i=d,d=k,e=c),c=0;e;)c=(d[--e]=d[e]+i[e]+c)/h|0,d[e]%=h;return c&&(d.unshift(c),++j),T(g,d,j)},d.precision=d.sd=function(b){var d,c,f=this,e=f.c;if(null!=b&&b!==!!b&&1!==b&&0!==b&&(D&&F(13,"argument"+s,b),b!=!!b&&(b=null)),!e)return null;if(c=e.length-1,d=c*a+1,c=e[c]){for(;c%10==0;c/=10,d--);for(c=e[0];c>=10;c/=10,d++);}return b&&f.e+1>d&&(d=f.e+1),d},d.round=function(a,d){var e=new b(this);return(null==a||q(a,0,c,15))&&G(e,~~a+this.e+1,null!=d&&q(d,0,8,15,t)?0|d:E),e},d.shift=function(a){var c=this;return q(a,-l,l,16,"argument")?c.times("1e"+u(a)):new b(c.c&&c.c[0]&&(-l>a||a>l)?c.s*(0>a?0:1/0):c)},d.squareRoot=d.sqrt=function(){var m,c,d,k,h,i=this,j=i.c,a=i.s,e=i.e,l=I+4,n=new b("0.5");if(1!==a||!j||!j[0])return new b(!a||0>a&&(!j||j[0])?NaN:j?i:1/0);if(a=Math.sqrt(+i),0==a||a==1/0?(c=g(j),(c.length+e)%2==0&&(c+="0"),a=Math.sqrt(c),e=f((e+1)/2)-(0>e||e%2),a==1/0?c="1e"+e:(c=a.toExponential(),c=c.slice(0,c.indexOf("e")+1)+e),d=new b(c)):d=new b(a+""),d.c[0])for(e=d.e,a=e+l,3>a&&(a=0);;)if(h=d,d=n.times(h.plus(H(i,h,l,1))),g(h.c).slice(0,a)===(c=g(d.c)).slice(0,a)){if(d.em&&(j=d,d=e,e=j,g=m,m=l,l=g),g=m+l,j=[];g--;j.push(0));for(u=h,k=i,g=l;--g>=0;){for(p=0,v=e[g]%k,t=e[g]/k|0,r=m,q=g+r;q>g;)n=d[--r]%k,x=d[r]/k|0,w=t*n+x*v,n=v*n+w%k*k+j[q]+p,p=(n/u|0)+(w/k|0)+t*x,j[q--]=n%u;j[q]=p}return p?++s:j.shift(),T(c,j,s)},d.toDigits=function(a,d){var e=new b(this);return a=null!=a&&q(a,1,c,18,"precision")?0|a:null,d=null!=d&&q(d,0,8,18,t)?0|d:E,a?G(e,a,d):e},d.toExponential=function(a,b){return Q(this,null!=a&&q(a,0,c,19)?~~a+1:null,b,19)},d.toFixed=function(a,b){return Q(this,null!=a&&q(a,0,c,20)?~~a+this.e+1:null,b,20)},d.toFormat=function(h,n){var i=Q(this,null!=h&&q(h,0,c,21)?~~h+this.e+1:null,n,21),b,m,d,e,k,a,j,l,f,g;if(this.c){if(m=i.split("."),d=+M.groupSize,e=+M.secondaryGroupSize,k=M.groupSeparator,a=m[0],j=m[1],l=this.s<0,f=l?a.slice(1):a,g=f.length,e&&(b=d,d=e,e=b,g-=b),d>0&&g>0){for(b=g%d||d,a=f.substr(0,b);g>b;b+=d)a+=k+f.substr(b,d);e>0&&(a+=k+f.slice(b)),l&&(a="-"+a)}i=j?a+M.decimalSeparator+((e=+M.fractionGroupSize)?j.replace(new RegExp("\\d{"+e+"}\\B","g"),"$&"+M.fractionGroupSeparator):j):a}return i},d.toFraction=function(h){var s,f,d,m,n,c,e,o,q,p=D,l=this,r=l.c,j=new b(L),i=f=new b(L),k=e=new b(L);if(null!=h&&(D=!1,c=new b(h),D=p,(!(p=c.isInt())||c.lt(L))&&(D&&F(22,"max denominator "+(p?"out of range":"not an integer"),h),h=!p&&c.c&&G(c,c.e+1,1).gte(L)?c:null)),!r)return l.toString();for(q=g(r),m=j.e=q.length-l.e-1,j.c[0]=w[(n=m%a)<0?a+n:n],h=!h||c.cmp(j)>0?m>0?j:i:c,n=J,J=1/0,c=new b(q),e.c[0]=0;o=H(c,j,0,1),d=f.plus(o.times(k)),1!=d.cmp(h);)f=k,k=d,i=e.plus(o.times(d=i)),e=d,j=c.minus(o.times(d=j)),c=d;return d=H(h.minus(f),k,0,1),e=e.plus(d.times(i)),f=f.plus(d.times(k)),e.s=i.s=l.s,m*=2,s=H(i,k,m,E).minus(l).abs().cmp(H(e,f,m,E).minus(l).abs())<1?[i.toString(),k.toString()]:[e.toString(),f.toString()],J=n,s},d.toNumber=function(){return+this},d.toPower=d.pow=function(c){var e,d,g=k(0>c?-c:+c),f=this;if(!q(c,-l,l,23,"exponent")&&(!isFinite(c)||g>l&&(c/=0)||parseFloat(c)!=c&&!(c=NaN)))return new b(Math.pow(+f,c));for(e=K?p(K/a+2):0,d=new b(L);;){if(g%2){if(d=d.times(f),!d.c)break;e&&d.c.length>e&&(d.c.length=e)}if(g=k(g/2),!g)break;f=f.times(f),e&&f.c&&f.c.length>e&&(f.c.length=e)}return 0>c&&(d=L.div(d)),e?G(d,K,E):d},d.toPrecision=function(a,b){return Q(this,null!=a&&q(a,1,c,24,"precision")?0|a:null,b,24)},d.toString=function(e){var a,c=this,d=c.s,b=c.e;return null===b?d?(a="Infinity",0>d&&(a="-"+a)):a="NaN":(a=g(c.c),a=null!=e&&q(e,2,64,25,"base")?W(j(a,b),0|e,10,d):N>=b||b>=P?n(a,b):j(a,b),0>d&&c.c[0]&&(a="-"+a)),a},d.truncated=d.trunc=function(){return G(new b(this),this.e+1,1)},d.valueOf=d.toJSON=function(){var a,c=this,b=c.e;return null===b?c.toString():(a=g(c.c),a=N>=b||b>=P?n(a,b):j(a,b),c.s<0?"-"+a:a)},null!=X&&b.config(X),b}function f(a){var b=0|a;return a>0||a===b?b:b-1}function g(e){for(var b,f,g=1,c=e.length,d=e[0]+"";c>g;){for(b=e[g++]+"",f=a-b.length;f--;b="0"+b);d+=b}for(c=d.length;48===d.charCodeAt(--c););return d.slice(0,c+1||1)}function m(i,j){var b,d,c=i.c,e=j.c,a=i.s,h=j.s,f=i.e,g=j.e;if(!a||!h)return null;if(b=c&&!c[0],d=e&&!e[0],b||d)return b?d?0:-h:a;if(a!=h)return a;if(b=0>a,d=f==g,!c||!e)return d?0:!c^b?1:-1;if(!d)return f>g^b?1:-1;for(h=(f=c.length)<(g=e.length)?f:g,a=0;h>a;a++)if(c[a]!=e[a])return c[a]>e[a]^b?1:-1;return f==g?0:f>g^b?1:-1}function A(a,b,c){return(a=u(a))>=b&&c>=a}function x(a){return"[object Array]"==Object.prototype.toString.call(a)}function z(e,g,c){for(var b,d,a=[0],f=0,h=e.length;h>f;){for(d=a.length;d--;a[d]*=g);for(a[b=0]+=v.indexOf(e.charAt(f++));bc-1&&(null==a[b+1]&&(a[b+1]=0),a[b+1]+=a[b]/c|0,a[b]%=c)}return a.reverse()}function n(a,b){return(a.length>1?a.charAt(0)+"."+a.slice(1):a)+(0>b?"e":"e+")+b}function j(a,b){var d,c;if(0>b){for(c="0.";++b;c+="0");a=c+a}else if(d=a.length,++b>d){for(c="0",b-=d;--b;c+="0");a+=c}else d>b&&(a=a.slice(0,b)+"."+a.slice(b));return a}function u(a){return a=parseFloat(a),0>a?p(a):k(a)}var e,r,B=/^-?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,p=Math.ceil,k=Math.floor,s=" not a boolean or binary digit",t="rounding mode",y="number type has more than 15 significant digits",v="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$_",h=1e14,a=14,l=9007199254740991,w=[1,10,100,1e3,1e4,1e5,1e6,1e7,1e8,1e9,1e10,1e11,1e12,1e13],i=1e7,c=1e9;if("undefined"!=typeof crypto&&(e=crypto),"function"==typeof b&&b.amd)b(function(){return o()});else if("undefined"!=typeof module&&module.exports){if(module.exports=o(),!e)try{e=require("crypto")}catch(a){}}else q||(q="undefined"!=typeof d?d:Function("return this")()),q.BigNumber=o()}(this)}(b[0],d('Numeric'))},Opal.modules.bigdecimal=function(c){var o=c.klass,r=c.module,d=c.def,q=c.slice,w=c.extract_kwargs,A=c.ensure_kwargs,z=c.kwrestargs,y=c.send,x=c.to_a,m=c.defs,e=c.const_set,b=c.truthy,f=c.eqeqeq,k=c.send2,j=c.find_super,p=c.rb_lt,g=c.to_ary,s=c.rb_gt,t=c.rb_ge,u=c.eqeq,v=c.rb_divide,i=c.alias,n=c.top,h=[],l=c.$r(h),a=c.nil;return c.add_stubs('require,allocate,initialize,warn,BigDecimal,===,attr_reader,new,class,bignumber,nan?,nil?,raise,<,coerce,>,mode,>=,==,/,zero?,infinite?,finite?,add,minus,mult,quo,to_s'),o(h[0],l('Numeric'),'BigDecimal'),n.$require("js"),n.$require("bigdecimal/bignumber"),function(e,f){var b=r(e,'Kernel'),g=[b].concat(f),h=c.$r(g);return d(b,'$BigDecimal',function(d,b){var c=a;return b==null&&(b=0),c=h('BigDecimal').$allocate(),c.$initialize(d,b),c},-2)}(h[0],h),m(l('BigDecimal'),'$new',function(i,g){var b,a,f,d,e=this;return b=q(arguments),a=w(b),a=A(a),f=b,d=z(a,{}),e.$warn("BigDecimal.new is deprecated; use BigDecimal() method instead.",new Map([["uplevel",1]])),y(e,'BigDecimal',x(f).concat([c.to_hash(d)]))},-1),function(q,r,w){var h=o(q,r,'BigDecimal'),n=[h].concat(w),l=c.$r(n);return e(n[0],'VERSION',"0"),e(n[0],'ROUND_MODE',256),e(n[0],'ROUND_UP',0),e(n[0],'ROUND_DOWN',1),e(n[0],'ROUND_CEILING',2),e(n[0],'ROUND_FLOOR',3),e(n[0],'ROUND_HALF_UP',4),e(n[0],'ROUND_HALF_DOWN',5),e(n[0],'ROUND_HALF_EVEN',6),e(n[0],'SIGN_NaN',0),e(n[0],'SIGN_POSITIVE_ZERO',1),e(n[0],'SIGN_NEGATIVE_ZERO',-1),e(n[0],'SIGN_POSITIVE_FINITE',2),e(n[0],'SIGN_NEGATIVE_FINITE',-2),e(n[0],'SIGN_POSITIVE_INFINITE',3),e(n[0],'SIGN_NEGATIVE_INFINITE',-3),m(h,'$limit',function(c){var d=this;return d.digits==null&&(d.digits=a),c==null&&(c=a),b(c)&&(d.digits=c),d.digits},-1),m(h,'$mode',function(g,c){var d=this,h=a,e=a;return d.round_mode==null&&(d.round_mode=a),c==null&&(c=a),f(l('ROUND_MODE'),h=g)?(b(c)&&(d.round_mode=c),b(e=d.round_mode))?e:l('ROUND_HALF_UP'):a},-2),h.$attr_reader("bignumber"),d(h,'$initialize',function(b,a){var c=this;return a==null&&(a=0),c.bignumber=l('JS').$new(l('BigNumber'),b)},-2),d(h,'$==',function(b){var c=this,d=a;return f(c.$class(),d=b)?c.$bignumber().equals(b.$bignumber()):!!f(l('Number'),d)&&c.$bignumber().equals(b)}),d(h,'$<=>',function(b){var c=this,d=a,e=a;return d=f(c.$class(),e=b)?c.$bignumber().comparedTo(b.$bignumber()):f(l('Number'),e)?c.$bignumber().comparedTo(b):a,d===null?a:d}),d(h,'$<',function c(d){var f=c.$$p||a,e=this;return!(c.$$p=null,b(e['$nan?']())||b(d)&&b(d['$nan?']()))&&k(e,j(e,'<',c,!1,!0),'<',[d],f)}),d(h,'$<=',function c(d){var f=c.$$p||a,e=this;return!(c.$$p=null,b(e['$nan?']())||b(d)&&b(d['$nan?']()))&&k(e,j(e,'<=',c,!1,!0),'<=',[d],f)}),d(h,'$>',function c(d){var f=c.$$p||a,e=this;return!(c.$$p=null,b(e['$nan?']())||b(d)&&b(d['$nan?']()))&&k(e,j(e,'>',c,!1,!0),'>',[d],f)}),d(h,'$>=',function c(d){var f=c.$$p||a,e=this;return!(c.$$p=null,b(e['$nan?']())||b(d)&&b(d['$nan?']()))&&k(e,j(e,'>=',c,!1,!0),'>=',[d],f)}),d(h,'$abs',function(){var a=this;return a.$class().$new(a.$bignumber().abs())}),d(h,'$add',function(i,c){var e,h,d=this,j=a,f=a;return c==null&&(c=0),b(c['$nil?']())&&d.$raise(l('TypeError'),"wrong argument type nil (expected Fixnum)"),b(p(c,0))&&d.$raise(l('ArgumentError'),"argument must be positive"),h=d.$coerce(i),e=g(h),i=e[0]==null?a:e[0],j=e[1]==null?a:e[1],h,f=d.$bignumber().plus(i.$bignumber()),b(s(c,0))&&(f=f.toDigits(c,d.$class().$mode(l('ROUND_MODE')))),d.$class().$new(f)},-2),d(h,'$ceil',function(d){var c=this;return d==null&&(d=a),b(c.$bignumber().isFinite())||c.$raise(l('FloatDomainError'),"Computation results to 'Infinity'"),b(d['$nil?']())?c.$bignumber().round(0,l('ROUND_CEILING')).toNumber():b(t(d,0))?c.$class().$new(c.$bignumber().round(d,l('ROUND_CEILING'))):c.$class().$new(c.$bignumber().round(0,l('ROUND_CEILING')))},-1),d(h,'$coerce',function(c){var b=this,d=a;return f(b.$class(),d=c)?[c,b]:f(l('Number'),d)?[b.$class().$new(c),b]:b.$raise(l('TypeError'),""+c.$class()+" can't be coerced into "+b.$class())}),d(h,'$div',function(d,e){var f,h,c=this,i=a;return e==null&&(e=a),u(e,0)?v(c,d):(h=c.$coerce(d),f=g(h),d=f[0]==null?a:f[0],i=f[1]==null?a:f[1],h,(b(c['$nan?']())||b(d['$nan?']()))&&c.$raise(l('FloatDomainError'),"Computation results to 'NaN'(Not a Number)"),b(e['$nil?']()))?(b(d['$zero?']())&&c.$raise(l('ZeroDivisionError'),"divided by 0"),b(c['$infinite?']())&&c.$raise(l('FloatDomainError'),"Computation results to 'Infinity'"),c.$class().$new(c.$bignumber().dividedToIntegerBy(d.$bignumber()))):c.$class().$new(c.$bignumber().dividedBy(d.$bignumber()).round(e,c.$class().$mode(l('ROUND_MODE'))))},-2),d(h,'$finite?',function(){var a=this;return a.$bignumber().isFinite()}),d(h,'$infinite?',function(){var c=this;return b(c['$finite?']())||b(c['$nan?']())?a:b(c.$bignumber().isNegative())?-1:1}),d(h,'$minus',function(c){var b,d,e=this,f=a;return d=e.$coerce(c),b=g(d),c=b[0]==null?a:b[0],f=b[1]==null?a:b[1],d,e.$class().$new(e.$bignumber().minus(c.$bignumber()))}),d(h,'$mult',function(e,f){var d,h,c=this,i=a;return f==null&&(f=a),h=c.$coerce(e),d=g(h),e=d[0]==null?a:d[0],i=d[1]==null?a:d[1],h,b(f['$nil?']())?c.$class().$new(c.$bignumber().times(e.$bignumber())):c.$class().$new(c.$bignumber().times(e.$bignumber()).round(f,c.$class().$mode(l('ROUND_MODE'))))},-2),d(h,'$nan?',function(){var a=this;return a.$bignumber().isNaN()}),d(h,'$quo',function(c){var b,d,e=this,f=a;return d=e.$coerce(c),b=g(d),c=b[0]==null?a:b[0],f=b[1]==null?a:b[1],d,e.$class().$new(e.$bignumber().dividedBy(c.$bignumber()))}),d(h,'$sign',function(){var c=this;return b(c.$bignumber().isNaN())?l('SIGN_NaN'):b(c.$bignumber().isZero())?b(c.$bignumber().isNegative())?l('SIGN_NEGATIVE_ZERO'):l('SIGN_POSITIVE_ZERO'):a}),d(h,'$sub',function(c,h){var b,d,e=this,f=a;return d=e.$coerce(c),b=g(d),c=b[0]==null?a:b[0],f=b[1]==null?a:b[1],d,e.$class().$new(e.$bignumber().minus(c.$bignumber()))}),d(h,'$to_f',function(){var a=this;return a.$bignumber().toNumber()}),d(h,'$to_s',function(a){var b=this;return a==null&&(a=""),b.$bignumber().toString()},-1),d(h,'$zero?',function(){var a=this;return a.$bignumber().isZero()}),i(h,"===","=="),i(h,"+","add"),i(h,"-","minus"),i(h,"*","mult"),i(h,"/","quo"),i(h,"inspect","to_s")}(h[0],l('Numeric'),h)},Opal.modules.native=function(b){var r=b.hash_put,p=b.module,k=b.defs,h=b.slice,d=b.truthy,f=b.send,m=b.Kernel,A=b.extract_kwargs,D=b.ensure_kwargs,C=b.hash_get,B=b.range,j=b.to_a,c=b.def,s=b.return_ivar,l=b.alias,g=b.klass,o=b.rb_minus,y=b.return_val,v=b.send2,x=b.find_super,q=b.eqeqeq,w=b.rb_ge,u=b.return_self,t=b.gvars,z=b.top,e=[],n=b.$r(e),a=b.nil,i=b.$$$;return b.add_stubs('try_convert,native?,respond_to?,to_n,raise,inspect,Native,proc,map!,end_with?,define_method,[],convert,call,to_proc,new,each,native_reader,native_writer,extend,warn,include,is_a?,map,Array,to_a,_Array,method_missing,bind,instance_method,[]=,slice,-,length,has_key?,enum_for,===,>=,<<,each_pair,method_defined?,initialize,_initialize,name,native_module'),function(l,n){var e=p(l,'Native'),g=[e].concat(n),i=b.$r(g);return k(e,'$is_a?',function(a,b){var c=this;try{return a instanceof c.$try_convert(b)}catch(a){return!1}}),k(e,'$try_convert',function(b,c){var d=this;return c==null&&(c=a),d['$native?'](b)?b:b['$respond_to?']("to_n")?b.$to_n():c},-2),k(e,'$convert',function(a){var b=this;if(b['$native?'](a))return a;if(a['$respond_to?']("to_n"))return a.$to_n();b.$raise(i('ArgumentError'),""+a.$inspect()+" isn't native")}),k(e,'$call',function g(l,o,p){var j=g.$$p||a,i,b,f=this,e,d,c,n,k,m;if(g.$$p=null,i=h(arguments,2),b=i,e=l[o],e instanceof Function){d=new Array(b.length);for(c=0,n=b.length;c0&&(b=i.shift()),b==null&&(b=l),e=C(k,"as"),e==null&&(e=a),d(b['$end_with?']("="))?f(c,'define_method',[l],function e(c){var d=e.$$s==null?this:e.$$s;return d.native==null&&(d.native=a),c==null&&(c=a),d.native[b['$[]'](B(0,-2,!1))]=g('Native').$convert(c),c},{$$s:c}):d(e)?f(c,'define_method',[l],function c(o){var n=c.$$p||a,l,m,i=c.$$s==null?this:c.$$s,k=a;return i.native==null&&(i.native=a),c.$$p=null,l=h(arguments),m=l,k=f(g('Native'),'call',[i.native,b].concat(j(m)),n.$to_proc()),d(k)?e.$new(k.$to_n()):a},{$$arity:-1,$$s:c}):f(c,'define_method',[l],function c(l){var k=c.$$p||a,e,i,d=c.$$s==null?this:c.$$s;return d.native==null&&(d.native=a),c.$$p=null,e=h(arguments),i=e,f(g('Native'),'call',[d.native,b].concat(j(i)),k.$to_proc())},{$$arity:-1,$$s:c})},-2),c(e,'$native_reader',function(g){var b,c,d=this;return b=h(arguments),c=b,f(c,'each',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),f(d,'define_method',[b],function d(){var c=d.$$s==null?this:d.$$s;return c.native==null&&(c.native=a),c.$Native(c.native[b])},{$$s:d})},{$$s:d})},-1),c(e,'$native_writer',function(g){var b,c,d=this;return b=h(arguments),c=b,f(c,'each',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),f(d,'define_method',[""+b+"="],function e(d){var c=e.$$s==null?this:e.$$s;return c.native==null&&(c.native=a),d==null&&(d=a),c.$Native(c.native[b]=d)},{$$s:d})},{$$s:d})},-1),c(e,'$native_accessor',function(e){var b,a,c=this;return b=h(arguments),a=b,f(c,'native_reader',j(a)),f(c,'native_writer',j(a))},-1)}(g[0],g),function(f,g){var a=p(f,'Wrapper'),h=[a].concat(g),e=b.$r(h);return c(a,'$initialize',function(a){var b=this;return d(m['$native?'](a))||m.$raise(e('ArgumentError'),""+a.$inspect()+" isn't native"),b.native=a}),c(a,'$to_n',s("native")),k(a,'$included',function(a){return a.$extend(e('Helpers'))})}(g[0],g),k(e,'$included',function(a){var b=this;return b.$warn("Including ::Native is deprecated. Please include Native::Wrapper instead."),a.$include(i('Wrapper'))})}(e[0],e),function(k,m){var e=p(k,'Kernel'),n=[e].concat(m),g=b.$r(n);return c(e,'$native?',function(a){return a==null||!a.$$class}),c(e,'$Native',function e(b){var k=e.$$p||a,c=this;return e.$$p=null,d(b==null)?a:d(c['$native?'](b))?i(g('Native'),'Object').$new(b):d(b['$is_a?'](g('Array')))?f(b,'map',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),d.$Native(b)},{$$s:c}):d(b['$is_a?'](g('Proc')))?f(c,'proc',[],function c(k){var g=c.$$p||a,d,e,i=c.$$s==null?this:c.$$s;return c.$$p=null,d=h(arguments),e=d,i.$Native(f(b,'call',j(e),g.$to_proc()))},{$$arity:-1,$$s:c}):b}),l(e,"_Array","Array"),c(e,'$Array',function c(b,n){var m=c.$$p||a,e,k,l=this;return c.$$p=null,e=h(arguments,1),k=e,d(l['$native?'](b))?f(i(g('Native'),'Array'),'new',[b].concat(j(k)),m.$to_proc()).$to_a():l.$_Array(b)},-2)}(e[0],e),function(k,n){var e=g(k,n,'Object'),p=e.$$prototype;return p.native=a,e.$include(i(i('Native'),'Wrapper')),c(e,'$==',function(a){var b=this;return b.native===i('Native').$try_convert(a)}),c(e,'$has_key?',function(a){var c=this;return b.hasOwnProperty.call(c.native,a)}),c(e,'$each',function d(l){var e,g,i=d.$$p||a,c=this,k;if(d.$$p=null,e=h(arguments),g=e,i!==a){for(k in c.native)b.yieldX(i,[k,c.native[k]]);return c}return f(c,'method_missing',["each"].concat(j(g)))},-1),c(e,'$[]',function(a){var b=this,c=b.native[a];return c instanceof Function?c:i('Native').$call(b.native,a)}),c(e,'$[]=',function(c,e){var f=this,b=a;return b=i('Native').$try_convert(e),d(b===a)?f.native[c]=e:f.native[c]=b}),c(e,'$merge!',function(a){var b=this,c;a=i('Native').$convert(a);for(c in a)b.native[c]=a[c];return b}),c(e,'$respond_to?',function(b,a){var c=this;return a==null&&(a=!1),m.$instance_method("respond_to?").$bind(c).$call(b,a)},-2),c(e,'$respond_to_missing?',function(c,a){var d=this;return a==null&&(a=!1),b.hasOwnProperty.call(d.native,c)},-2),c(e,'$method_missing',function g(b,m){var l=g.$$p||a,e,d,c,k=this;return g.$$p=null,e=h(arguments,1),d=e,b.charAt(b.length-1)==='='?(c=[b.$slice(0,o(b.$length(),1)),d['$[]'](0)],f(k,'[]=',c),c[c.length-1]):f(i('Native'),'call',[k.native,b].concat(j(d)),l.$to_proc())},-2),c(e,'$nil?',y(!1)),c(e,'$is_a?',function(a){var c=this;return b.is_a(c,a)}),c(e,'$instance_of?',function(a){var b=this;return b.$$class===a}),c(e,'$class',function(){var a=this;return a.$$class}),c(e,'$to_a',function c(b){var d=c.$$p||a,e=this;return c.$$p=null,b==null&&(b=new Map),f(i(i('Native'),'Array'),'new',[e.native,b],d.$to_proc()).$to_a()},-1),c(e,'$inspect',function(){var a=this;return"#"}),l(e,"include?","has_key?"),l(e,"key?","has_key?"),l(e,"kind_of?","is_a?"),l(e,"member?","has_key?")}(n('Native'),n('BasicObject')),function(n,j,k){var e=g(n,j,'Array'),m=[e].concat(k),f=b.$r(m),h=e.$$prototype;return h.named=h.native=h.get=h.block=h.set=h.length=a,e.$include(i(f('Native'),'Wrapper')),e.$include(f('Enumerable')),c(e,'$initialize',function g(h,c){var i=g.$$p||a,b=this,e=a;return g.$$p=null,c==null&&(c=new Map),v(b,x(b,'initialize',g,!1,!0),'initialize',[h],null),b.get=d(e=c['$[]']("get"))?e:c['$[]']("access"),b.named=c['$[]']("named"),b.set=d(e=c['$[]']("set"))?e:c['$[]']("access"),b.length=d(e=c['$[]']("length"))?e:"length",b.block=i,d(b.$length()==null)?b.$raise(f('ArgumentError'),"no length found on the array-like object"):a},-2),c(e,'$each',function f(){var g=f.$$p||a,c=this,e,h;if(f.$$p=null,!d(g))return c.$enum_for("each");for(e=0,h=c.$length();e>8-a%1*8))d=f.charCodeAt(a+=3/4),d>255&&c.$raise(k('ArgumentError'),"invalid character (failed: The string to be encoded contains characters outside of the Latin1 range.)"),b=b<<8|d;return e},j=function(h){var f=String(h).replace(/=+$/,''),b,d,a,g,e;f.length%4==1&&c.$raise(k('ArgumentError'),"invalid base64 (failed: The string to be decoded is not correctly encoded.)");for(b=0,d,a,g=0,e='';a=f.charAt(g++);~a&&(d=b%4?d*64+a:a,b++%4)?e+=String.fromCharCode(255&d>>(-2*b&6)):0)a=l.indexOf(a);return e};return b(c,'$decode64',function(a){return j(a.replace(/\r?\n/g,''))}),b(c,'$encode64',function(a){return i(a).replace(/(.{60})/g,"$1\n").replace(/([^\n])$/g,"$1\n")}),b(c,'$strict_decode64',function(a){return j(a)}),b(c,'$strict_encode64',function(a){return i(a)}),b(c,'$urlsafe_decode64',function(a){return j(a.replace(/\-/g,'+').replace(/_/g,'/'))}),b(c,'$urlsafe_encode64',function(d,c){var a,b=h;return c=e(c),a=f(c,"padding"),a==null&&(a=!0),b=i(d).replace(/\+/g,'-').replace(/\//g,'_'),g(a)||(b=b.$delete("=")),b},-2)}(c[0],c)},Opal.modules.console=function(a){var l=a.klass,b=a.def,d=a.slice,e=a.truthy,f=a.eqeq,h=a.send,j=a.gvars,i=a.top,g=[],k=a.$r(g),c=a.nil,m=a.$$$;return a.add_stubs('require,include,raise,==,arity,instance_exec,to_proc,new'),i.$require("native"),function(j,k,n){var g=l(j,k,'Console'),o=[g].concat(n),i=a.$r(o),p=g.$$prototype;return p.native=c,g.$include(m(i('Native'),'Wrapper')),b(g,'$clear',function(){var a=this;return a.native.clear()}),b(g,'$trace',function(){var a=this;return a.native.trace()}),b(g,'$log',function(f){var a,b,c=this;return a=d(arguments),b=a,c.native.log.apply(c.native,b)},-1),b(g,'$info',function(f){var a,b,c=this;return a=d(arguments),b=a,c.native.info.apply(c.native,b)},-1),b(g,'$warn',function(f){var a,b,c=this;return a=d(arguments),b=a,c.native.warn.apply(c.native,b)},-1),b(g,'$error',function(f){var a,b,c=this;return a=d(arguments),b=a,c.native.error.apply(c.native,b)},-1),b(g,'$time',function g(j){var d=g.$$p||c,b=this;return g.$$p=null,e(d)||b.$raise(i('ArgumentError'),"no block given"),b.native.time(j),function(){try{return f(d.$arity(),0)?h(b,'instance_exec',[],d.$to_proc()):a.yield1(d,b)}finally{b.native.timeEnd()}}()}),b(g,'$group',function j(m){var g=j.$$p||c,k,l,b=this;return j.$$p=null,k=d(arguments),l=k,e(g)||b.$raise(i('ArgumentError'),"no block given"),b.native.group.apply(b.native,l),function(){try{return f(g.$arity(),0)?h(b,'instance_exec',[],g.$to_proc()):a.yield1(g,b)}finally{b.native.groupEnd()}}()},-1),b(g,'$group!',function g(k){var e=g.$$p||c,i,j,b=this;return g.$$p=null,i=d(arguments),j=i,!(e!==c)?c:(b.native.groupCollapsed.apply(b.native,j),function(){try{return f(e.$arity(),0)?h(b,'instance_exec',[],e.$to_proc()):a.yield1(e,b)}finally{b.native.groupEnd()}}())},-1)}(g[0],null,g),e(typeof a.global.console!="undefined")?j.console=k('Console').$new(a.global.console):c},Opal.modules.forwardable=function(c){var i=c.module,b=c.send,g=c.truthy,e=c.def,f=c.slice,h=c.to_a,d=c.alias,j=[],a=c.nil;return c.add_stubs('each,respond_to?,def_instance_delegator,include?,start_with?,to_s,define_method,__send__,instance_variable_get,to_proc,instance_delegate,def_instance_delegators,def_single_delegator,define_singleton_method,single_delegate,def_single_delegators'),function(j){var c=i(j,'Forwardable');return e(c,'$instance_delegate',function(c){var d=this;return b(c,'each',[],function e(c,d){var f=e.$$s==null?this:e.$$s;return c==null&&(c=a),d==null&&(d=a),g(c['$respond_to?']("each"))||(c=[c]),b(c,'each',[],function c(b){var e=c.$$s==null?this:c.$$s;return b==null&&(b=a),e.$def_instance_delegator(d,b)},{$$s:f})},{$$s:d})}),e(c,'$def_instance_delegators',function(e,j){var c,d,h=this;return c=f(arguments,1),d=c,b(d,'each',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),g(["__send__","__id__"]['$include?'](b))?a:d.$def_instance_delegator(e,b)},{$$s:h})},-2),e(c,'$def_instance_delegator',function j(e,i,c){var k=j.$$p||a,d=this;return j.$$p=null,c==null&&(c=i),g(e.$to_s()['$start_with?']("@"))?b(d,'define_method',[c],function c(l){var j=c.$$p||a,d,g,k=c.$$s==null?this:c.$$s;return c.$$p=null,d=f(arguments),g=d,b(k.$instance_variable_get(e),'__send__',[i].concat(h(g)),j.$to_proc())},{$$arity:-1,$$s:d}):b(d,'define_method',[c],function c(l){var j=c.$$p||a,d,g,k=c.$$s==null?this:c.$$s;return c.$$p=null,d=f(arguments),g=d,b(k.$__send__(e),'__send__',[i].concat(h(g)),j.$to_proc())},{$$arity:-1,$$s:d})},-3),d(c,"delegate","instance_delegate"),d(c,"def_delegators","def_instance_delegators"),d(c,"def_delegator","def_instance_delegator")}(j[0]),function(j){var c=i(j,'SingleForwardable');return e(c,'$single_delegate',function(c){var d=this;return b(c,'each',[],function e(c,d){var f=e.$$s==null?this:e.$$s;return c==null&&(c=a),d==null&&(d=a),g(c['$respond_to?']("each"))||(c=[c]),b(c,'each',[],function c(b){var e=c.$$s==null?this:c.$$s;return b==null&&(b=a),e.$def_single_delegator(d,b)},{$$s:f})},{$$s:d})}),e(c,'$def_single_delegators',function(e,j){var c,d,h=this;return c=f(arguments,1),d=c,b(d,'each',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),g(["__send__","__id__"]['$include?'](b))?a:d.$def_single_delegator(e,b)},{$$s:h})},-2),e(c,'$def_single_delegator',function j(e,i,c){var k=j.$$p||a,d=this;return j.$$p=null,c==null&&(c=i),g(e.$to_s()['$start_with?']("@"))?b(d,'define_singleton_method',[c],function c(l){var j=c.$$p||a,d,g,k=c.$$s==null?this:c.$$s;return c.$$p=null,d=f(arguments),g=d,b(k.$instance_variable_get(e),'__send__',[i].concat(h(g)),j.$to_proc())},{$$arity:-1,$$s:d}):b(d,'define_singleton_method',[c],function c(l){var j=c.$$p||a,d,g,k=c.$$s==null?this:c.$$s;return c.$$p=null,d=f(arguments),g=d,b(k.$__send__(e),'__send__',[i].concat(h(g)),j.$to_proc())},{$$arity:-1,$$s:d})},-3),d(c,"delegate","single_delegate"),d(c,"def_delegators","def_single_delegators"),d(c,"def_delegator","def_single_delegator")}(j[0])},Opal.modules["date/infinity"]=function(a){var e=a.klass,b=a.def,f=a.return_val,d=a.eqeqeq,m=a.to_ary,l=a.send2,n=a.find_super,i=a.eqeq,j=a.truthy,k=a.rb_gt,g=[],c=a.nil,h=a.$$$;return a.add_stubs('include,<=>,attr_reader,nonzero?,d,zero?,new,class,-@,+@,===,coerce,==,>'),function(o,p,q){var r=e(o,p,'Date'),g=[r].concat(q),s=a.$r(g);return function(p,q,r){var g=e(p,q,'Infinity'),s=[g].concat(r),o=a.$r(s),t=g.$$prototype;return t.d=c,g.$include(o('Comparable')),b(g,'$initialize',function(a){var b=this;return a==null&&(a=1),b.d=a['$<=>'](0)},-1),g.$attr_reader("d"),b(g,'$zero?',f(!1)),b(g,'$finite?',f(!1)),b(g,'$infinite?',function(){var a=this;return a.$d()['$nonzero?']()}),b(g,'$nan?',function(){var a=this;return a.$d()['$zero?']()}),b(g,'$abs',function(){var a=this;return a.$class().$new()}),b(g,'$-@',function(){var a=this;return a.$class().$new(a.$d()['$-@']())}),b(g,'$+@',function(){var a=this;return a.$class().$new(a.$d()['$+@']())}),b(g,'$<=>',function(e){var b,f,g=this,i=c,h=c,j=c;if(d(o('Infinity'),i=e))return g.$d()['$<=>'](e.$d());if(d(o('Numeric'),i))return g.$d();try{return f=e.$coerce(g),b=m(f),h=b[0]==null?c:b[0],j=b[1]==null?c:b[1],f,h['$<=>'](j)}catch(b){if(a.rescue(b,[o('NoMethodError')]))try{return c}finally{a.pop_exception(b)}else throw b}}),b(g,'$coerce',function b(e){var f=b.$$p||c,a=this,g=c;return b.$$p=null,d(o('Numeric'),g=e)?[a.$d()['$-@'](),a.$d()]:l(a,n(a,'coerce',b,!1,!0),'coerce',[e],f)}),b(g,'$to_f',function(){var a=this;return i(a.d,0)?0:j(k(a.d,0))?h(o('Float'),'INFINITY'):h(o('Float'),'INFINITY')['$-@']()})}(g[0],s('Numeric'),g)}(g[0],null,g)},Opal.modules.time=function(a){var p=a.klass,j=a.defs,l=a.ensure_kwargs,e=a.hash_get,o=a.send,f=a.eqeqeq,b=a.truthy,q=a.rb_gt,h=a.rb_plus,k=a.alias,g=a.def,m=a.return_self,n=a.top,i=[],c=a.nil,d=a.$$$;return a.add_stubs('define_method,===,new_offset,utc,year,month,day,getutc,strftime,>,+,def_formatter,rfc2822,xmlschema,wrap,require'),function(r,s,t){var i=p(r,s,'Time'),u=[i].concat(t),n=a.$r(u);return j(i,'$parse',function(a){var b=Date.parse(a);return b!==b&&(a=a.replace(/^(\d+)([\./])(\d+)([\./])?(\d+)?/,function(e,b,f,a,c,d,g,h){return f===c&&d?b+'-'+a+'-'+d:a&&!c?b+'-'+a+'-01':e}),b=Date.parse(a)),new Date(b)}),j(i,'$def_formatter',function(p,r,a){var i,j,g,k,m,n=this;return a=l(a),i=e(a,"on_utc"),i==null&&(i=!1),j=e(a,"utc_tz"),j==null&&(j=c),g=e(a,"tz_format"),g==null&&(g=c),k=e(a,"fractions"),k==null&&(k=!1),m=e(a,"on"),m==null&&(m=n),o(m,'define_method',[p],function p(n){var t,s,a=p.$$s==null?this:p.$$s,m=c,o=c,l=c,e=c;return n==null&&(n=0),f(b(m=(t=d('::','DateTime','skip_raise'))?'constant':c)?d('DateTime'):m,o=a)?l=b(i)?a.$new_offset(0):a:f(b(m=(s=d('::','Date','skip_raise'))?'constant':c)?d('Date'):m,o)?l=d('Time').$utc(a.$year(),a.$month(),a.$day()):f(d('Time'),o)?l=b(i)?a.$getutc():a:c,e=l.$strftime(r),b(k)&&b(q(n,0))&&(e=h(e,l.$strftime(".%"+n+"N"))),b(j)?e=h(e,b(a.$utc())?j:l.$strftime(g)):b(g)&&(e=h(e,l.$strftime(g))),e},{$$arity:-1,$$s:n})},-3),i.$def_formatter("rfc2822","%a, %d %b %Y %T ",new Map([["utc_tz","-00:00"],["tz_format","%z"]])),k(i,"rfc822","rfc2822"),i.$def_formatter("httpdate","%a, %d %b %Y %T GMT",new Map([["on_utc",!0]])),i.$def_formatter("xmlschema","%FT%T",new Map([["utc_tz","Z"],["tz_format","%:z"],["fractions",!0]])),k(i,"iso8601","xmlschema"),g(i,'$to_date',function(){var a=this;return n('Date').$wrap(a)}),g(i,'$to_datetime',function(){var a=this;return n('DateTime').$wrap(a)}),g(i,'$to_time',m)}(i[0],null,i),n.$require("date")},Opal.modules["date/date_time"]=function(a){var i=a.klass,b=a.def,d=a.alias,g=a.rb_divide,h=a.rb_times,m=a.rb_plus,n=a.rb_minus,j=a.truthy,k=a.return_self,e=[],l=a.$r(e),f=a.nil,c=a.$$$;return a.add_stubs('wrap,now,parse,new,def_delegators,min,sec,/,usec,sec_fraction,gmt_offset,*,+,-,is_a?,clone,_parse_offset,dup,year,month,day'),function(p,q,r){var e=i(p,q,'DateTime'),o=[e].concat(r),l=a.$r(o),s=e.$$prototype;return s.date=f,function(c,e){var f=[c].concat(e),d=a.$r(f);return b(c,'$now',function(){var a=this;return a.$wrap(d('Time').$now())}),b(c,'$parse',function(a){var b=this;return b.$wrap(d('Time').$parse(a))})}(a.get_singleton_class(e),o),b(e,'$initialize',function(b,c,a,e,f,d,g,h){var i=this;return b==null&&(b=-4712),c==null&&(c=1),a==null&&(a=1),e==null&&(e=0),f==null&&(f=0),d==null&&(d=0),g==null&&(g=0),h==null&&(h=l('ITALY')),b===1582&&c===10&&a>4&&a<15&&(a=4),i.date=l('Time').$new(b,c,a,e,f,d,g),i.start=h},-1),e.$def_delegators("@date","min","hour","sec"),d(e,"minute","min"),d(e,"second","sec"),b(e,'$sec_fraction',function(){var a=this;return g(a.date.$usec(),c('Rational').$new(1e6,1))}),d(e,"second_fraction","sec_fraction"),b(e,'$offset',function(){var a=this;return g(a.date.$gmt_offset(),h(24,c('Rational').$new(3600,1)))}),b(e,'$+',function(a){var b=this;return c('DateTime').$wrap(m(b.date,a))}),b(e,'$-',function(b){var e=this,d=f;return a.is_a(b,c('Date'))&&(b=b.date),d=n(e.date,b),j(d['$is_a?'](c('Time')))?c('DateTime').$wrap(d):d}),b(e,'$new_offset',function(a){var c=this,b=f;return b=c.$clone(),a=l('Time').$_parse_offset(a),b.date.timezone=a,b}),b(e,'$to_datetime',k),b(e,'$to_time',function(){var a=this;return a.date.$dup()}),b(e,'$to_date',function(){var a=this;return l('Date').$new(a.$year(),a.$month(),a.$day())})}(e[0],l('Date'),e)},Opal.modules["date/formatters"]=function(a){var d=a.klass,k=a.slice,j=a.extract_kwargs,g=a.ensure_kwargs,f=a.kwrestargs,e=a.send,h=a.to_a,i=a.defs,b=a.alias,c=[],l=a.$r(c),m=a.nil;return a.add_stubs('def_formatter,asctime,iso8601,rfc2822,xmlschema'),function(l,m,n){var c=d(l,m,'Date'),o=[c].concat(n),p=a.$r(o);return i(c,'$def_formatter',function(o,m){var c,b,i,d,l=this;return c=k(arguments),b=j(c),b=g(b),i=c,d=f(b,{}),e(p('Time'),'def_formatter',h(i).concat([a.to_hash(d).$merge(new Map([["on",l]]))]))},-1),c.$def_formatter("asctime","%c"),b(c,"ctime","asctime"),c.$def_formatter("iso8601","%F"),b(c,"xmlschema","iso8601"),c.$def_formatter("rfc3339","%FT%T%:z"),c.$def_formatter("rfc2822","%a, %-d %b %Y %T %z"),b(c,"rfc822","rfc2822"),c.$def_formatter("httpdate","%a, %d %b %Y %T GMT",new Map([["utc",!0]])),c.$def_formatter("jisx0301","%J"),b(c,"to_s","iso8601")}(c[0],null,c),function(c,e){var a=d(c,e,'DateTime');return a.$def_formatter("xmlschema","%FT%T",new Map([["fractions",!0],["tz_format","%:z"]])),b(a,"iso8601","xmlschema"),b(a,"rfc3339","xmlschema"),a.$def_formatter("jisx0301","%JT%T",new Map([["fractions",!0],["tz_format","%:z"]])),b(a,"to_s","xmlschema"),a.$def_formatter("zone","%:z")}(c[0],l('Date'))},Opal.modules.date=function(b){var q=b.klass,e=b.const_set,i=b.rb_plus,a=b.def,f=b.send,h=b.alias,j=b.rb_minus,p=b.return_self,r=b.return_ivar,l=b.truthy,m=b.rb_lt,o=b.rb_times,n=b.defs,g=b.top,k=[],c=b.nil,d=b.$$$;return b.add_stubs('require,include,extend,new,-@,+,allocate,join,compact,map,to_proc,downcase,wrap,raise,attr_reader,<=>,jd,===,<<,prev_month,dup,def_delegators,day,month,clone,prev_day,next_day,_days_in_month,class,-,year,prev_year,to_s,strftime,to_i,<,*,reverse,step,abs,each,==,next'),g.$require("forwardable"),g.$require("date/infinity"),g.$require("time"),function(w,u,v){var g=q(w,u,'Date'),k=[g].concat(v),s=b.$r(k),t=g.$$prototype;return t.date=t.start=c,g.$include(s('Comparable')),g.$extend(s('Forwardable')),e(k[0],'JULIAN',s('Infinity').$new()),e(k[0],'GREGORIAN',s('Infinity').$new()['$-@']()),e(k[0],'ITALY',2299161),e(k[0],'ENGLAND',2361222),e(k[0],'MONTHNAMES',i([c],["January","February","March","April","May","June","July","August","September","October","November","December"])),e(k[0],'ABBR_MONTHNAMES',["jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"]),e(k[0],'DAYNAMES',["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]),e(k[0],'ABBR_DAYNAMES',["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]),function(e,g){var i=[e].concat(g),d=b.$r(i);return a(e,'$wrap',function(b){var e=this,a=c;return a=e.$allocate(),a.start=d('ITALY'),a.date=b,a}),a(e,'$parse',function(C,r){var u=this,m,B,t,i,A,l,v,j,n,h,g,k,o,w;r==null&&(r=!0),m=new Date,B=m.getDate(),t=m.getMonth(),i=m.getFullYear(),A=m.getDay(),l=d('MONTHNAMES').$compact().$join("|");function b(a){return a[1]}function c(a){return a[2]}function e(a){return a[3]}function s(a){return a[4]}function x(a){return function(c){var b=a(c);return b>=69?b+=1900:b+=2e3,b}}function p(a){return function(b){var c=a(b).toLowerCase();return d('ABBR_MONTHNAMES').indexOf(c)+1}}function a(a){return function(b){var c=a(b);return parseInt(c,10)}}function z(a){return function(c){var b=a(c);return r?b+2e3:b}}function y(a){return function(b){var c=a(b),e=f(d('DAYNAMES'),'map',[],"downcase".$to_proc()).indexOf(c.$downcase());return B-A+e}}function q(a){return function(b){var c=a(b);return f(d('MONTHNAMES').$compact(),'map',[],"downcase".$to_proc()).indexOf(c.$downcase())+1}}v=[{regexp:/^(\d{2})$/,year:i,month:t,day:a(b)},{regexp:/^(\d{3})$/,year:i,month:0,day:a(b)},{regexp:/^(\d{2})(\d{2})$/,year:i,month:a(b),day:a(c)},{regexp:/^(\d{2})(\d{3})$/,year:x(a(b)),month:0,day:a(c)},{regexp:/^(\d{2})(\d{2})(\d{2})$/,year:x(a(b)),month:a(c),day:a(e)},{regexp:/^(\d{4})(\d{3})$/,year:a(b),month:0,day:a(c)},{regexp:/^(\d{4})(\d{2})(\d{2})$/,year:a(b),month:a(c),day:a(e)},{regexp:/^([a-z]{3})[\s\.\/\-](\d{3,4})$/,year:a(c),month:p(b),day:1},{regexp:/^(\d{1,2})[\s\.\/\-]([a-z]{3})[\s\.\/\-](\d{3,4})$/i,year:a(e),month:p(c),day:a(b)},{regexp:/^([a-z]{3})[\s\.\/\-](\d{1,2})[\s\.\/\-](\d{3,4})$/i,year:a(e),month:p(b),day:a(c)},{regexp:/^(\d{3,4})[\s\.\/\-]([a-z]{3})[\s\.\/\-](\d{1,2})$/i,year:a(b),month:p(c),day:a(e)},{regexp:/^(\-?\d{3,4})[\s\.\/\-](\d{1,2})[\s\.\/\-](\d{1,2})$/,year:a(b),month:a(c),day:a(e)},{regexp:/^(\d{2})[\s\.\/\-](\d{1,2})[\s\.\/\-](\d{1,2})$/,year:z(a(b)),month:a(c),day:a(e)},{regexp:/^(\d{1,2})[\s\.\/\-](\d{1,2})[\s\.\/\-](\-?\d{3,4})$/,year:a(e),month:a(c),day:a(b)},{regexp:new RegExp("^("+d('DAYNAMES').$join("|")+")$",'i'),year:i,month:t,day:y(b)},{regexp:new RegExp("^("+l+")[\\s\\.\\/\\-](\\d{1,2})(th|nd|rd)[\\s\\.\\/\\-](\\-?\\d{3,4})$","i"),year:a(s),month:q(b),day:a(c)},{regexp:new RegExp("^("+l+")[\\s\\.\\/\\-](\\d{1,2})(th|nd|rd)","i"),year:i,month:q(b),day:a(c)},{regexp:new RegExp("^(\\d{1,2})(th|nd|rd)[\\s\\.\\/\\-]("+l+")[\\s\\.\\/\\-](\\-?\\d{3,4})$","i"),year:a(s),month:q(e),day:a(b)},{regexp:new RegExp("^(\\-?\\d{3,4})[\\s\\.\\/\\-]("+l+")[\\s\\.\\/\\-](\\d{1,2})(th|nd|rd)$","i"),year:a(b),month:q(c),day:a(e)}];for(n=0;n=0&&g<=1970&&w.setFullYear(g),u.$wrap(w);return u.$raise(d('ArgumentError'),"invalid date")},-2),a(e,'$today',function(){var a=this;return a.$wrap(new Date)}),a(e,'$gregorian_leap?',function(a){return new Date(a,1,29).getMonth()-1===0}),h(e,"civil","new")}(b.get_singleton_class(g),k),a(g,'$initialize',function(b,c,a,d){var e=this;return b==null&&(b=-4712),c==null&&(c=1),a==null&&(a=1),d==null&&(d=s('ITALY')),b===1582&&c===10&&a>4&&a<15&&(a=4),e.date=new Date(b,c-1,a),e.start=d},-1),g.$attr_reader("start"),a(g,'$<=>',function(a){var e=this,f,g;return a.$$is_number?e.$jd()['$<=>'](a):d('Date')['$==='](a)?(f=e.date,g=a.date,b.is_a(e,d('DateTime'))||f.setHours(0,0,0,0),b.is_a(a,d('DateTime'))||g.setHours(0,0,0,0),fg?1:0:c}),a(g,'$>>',function(a){var b=this;return a.$$is_number||b.$raise(d('TypeError')),b['$<<'](a['$-@']())}),a(g,'$<<',function(a){var b=this;return a.$$is_number||b.$raise(d('TypeError')),b.$prev_month(a)}),a(g,'$clone',function(){var b=this,a=c;return a=s('Date').$wrap(b.date.$dup()),a.start=b.start,a}),g.$def_delegators("@date","sunday?","monday?","tuesday?","wednesday?","thursday?","friday?","saturday?","day","month","year","wday","yday"),h(g,"mday","day"),h(g,"mon","month"),a(g,'$jd',function(){var f=this,b=f.date.getMonth()+1,l=f.date.getDate(),d=f.date.getFullYear(),g=12,j=0,k=0,e,h,i,c,a;return g=g+j/60+k/3600,e=1,d<=1585&&(e=0),a=-1*Math.floor(7*(Math.floor((b+9)/12)+d)/4),h=1,b-9<0&&(h=-1),i=Math.abs(b-9),c=Math.floor(d+h*Math.floor(i/7)),c=-1*Math.floor((Math.floor(c/100)+1)*3/4),a=a+Math.floor(275*b/9)+l+e*c,a=a+1721027+2*e+367*d-.5,a=a+g/24,a}),a(g,'$julian?',function(){var a=this;return a.date","hash"],'each',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),d.$undef_method(b)},{$$s:b}),d(b.$private_instance_methods(),'each',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),e(/^block_given\?$|^iterator\?$|^__.*__$/['$=~'](b))?a:d.$undef_method(b)},{$$s:b})},{$$s:f}),f.$include(k),n(f,'$const_missing',function(a){return t.$const_get(a)}),c(f,'$initialize',function(a){var b=this;return b.$__setobj__(a)}),f.$ruby2_keywords(c(f,'$method_missing',function m(b,q){var k=m.$$p||a,p,f,c=this,n=a,h=a;return m.$$p=null,p=o(arguments,1),f=p,n=!0,h=d(c,'__getobj__',[],function(){return n=!1}),e(n)&&e(c['$target_respond_to?'](h,b,!1))?d(h,'__send__',[b].concat(j(f)),k.$to_proc()):e(i['$method_defined?'](b))||e(i['$private_method_defined?'](b))?d(i.$instance_method(b),'bind_call',[c].concat(j(f)),k.$to_proc()):g(c,l(c,'method_missing',m,!1,!0),'method_missing',[b].concat(j(f)),k.$to_proc())},-2)),c(f,'$respond_to_missing?',function(f,i){var c=this,b=a,g=a,h=a;return b=!0,g=d(c,'__getobj__',[],function(){return b=!1}),b=e(h=b)?c['$target_respond_to?'](g,f,i):h,e(b)&&e(i)&&D(c['$target_respond_to?'](g,f,!1))?(c.$warn("delegator does not forward private method #"+f,new Map([["uplevel",3]])),!1):b}),p(m[0],'KERNEL_RESPOND_TO',i.$instance_method("respond_to?")),f.$private_constant("KERNEL_RESPOND_TO"),f.$private(c(f,'$target_respond_to?',function(b,c,d){var f=a;return A(q('Object'),f=b)?b['$respond_to?'](c,d):e(q('KERNEL_RESPOND_TO').$bind_call(b,"respond_to?"))?b['$respond_to?'](c,d):q('KERNEL_RESPOND_TO').$bind_call(b,c,d)})),c(f,'$methods',function c(b){var e=c.$$p||a,d=this;return c.$$p=null,b==null&&(b=!0),d.$__getobj__().$methods(b)['$|'](g(d,l(d,'methods',c,!1,!0),'methods',[b],e))},-1),c(f,'$public_methods',function c(b){var e=c.$$p||a,d=this;return c.$$p=null,b==null&&(b=!0),d.$__getobj__().$public_methods(b)['$|'](g(d,l(d,'public_methods',c,!1,!0),'public_methods',[b],e))},-1),c(f,'$protected_methods',function c(b){var e=c.$$p||a,d=this;return c.$$p=null,b==null&&(b=!0),d.$__getobj__().$protected_methods(b)['$|'](g(d,l(d,'protected_methods',c,!1,!0),'protected_methods',[b],e))},-1),c(f,'$==',function(a){var b=this;return!!e(a['$equal?'](b))||b.$__getobj__()['$=='](a)}),c(f,'$!=',function(a){var b=this;return!e(a['$equal?'](b))&&b.$__getobj__()['$!='](a)}),c(f,'$eql?',function(a){var b=this;return!!e(a['$equal?'](b))||a['$eql?'](b.$__getobj__())}),c(f,'$!',function(){var a=this;return a.$__getobj__()['$!']()}),c(f,'$__getobj__',function(){var a=this;return a.$__raise__(h('NotImplementedError'),"need to define `__getobj__'")}),c(f,'$__setobj__',function(c){var a=this;return a.$__raise__(h('NotImplementedError'),"need to define `__setobj__'")}),c(f,'$marshal_dump',function(){var b=this,c=a;return c=d(b.$instance_variables(),'reject',[],function(b){return b==null&&(b=a),/^@delegate_/['$=~'](b)}),["__v2__",c,d(c,'map',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),d.$instance_variable_get(b)},{$$s:b}),b.$__getobj__()]}),c(f,'$marshal_load',function(g){var b,c,e=this,h=a,f=a,i=a,j=a;return c=g,b=z(c),h=b[0]==null?a:b[0],f=b[1]==null?a:b[1],i=b[2]==null?a:b[2],j=b[3]==null?a:b[3],c,y(h,"__v2__")?(d(f,'each_with_index',[],function d(b,c){var e=d.$$s==null?this:d.$$s;return b==null&&(b=a),c==null&&(c=a),e.$instance_variable_set(b,i['$[]'](c))},{$$s:e}),e.$__setobj__(j)):e.$__setobj__(g)}),c(f,'$initialize_clone',function(d,c){var b,e=this;return c=x(c),b=u(c,"freeze"),b==null&&(b=a),e.$__setobj__(d.$__getobj__().$clone(new Map([["freeze",b]])))},-2),c(f,'$initialize_dup',function(a){var b=this;return b.$__setobj__(a.$__getobj__().$dup())}),f.$private("initialize_clone","initialize_dup"),c(f,'$freeze',function(){var a=this;return a.$__getobj__().$freeze(),B(a),C(a)}),c(f,'$frozen?',function(){var a=this;return a.$$frozen||!1}),f.delegator_api=f.$public_instance_methods(),n(f,'$public_api',v("delegator_api"))}(m[0],f('BasicObject'),m),function(f,g){var d=r(f,g,'SimpleDelegator'),i=d.$$prototype;return i.delegate_sd_obj=a,c(d,'$__getobj__',function f(){var c,g=f.$$p||a,d=this;if(f.$$p=null,!e((c=d.delegate_sd_obj,c!=null&&c!==a)?'instance-variable':a)){if(g!==a)return b.yieldX(g,[]);d.$__raise__(h('ArgumentError'),"not delegated")}return d.delegate_sd_obj}),c(d,'$__setobj__',function(b){var a=this;return e(a['$equal?'](b))&&a.$__raise__(h('ArgumentError'),"cannot delegate to self"),a.delegate_sd_obj=b})}(m[0],f('Delegator')),n(f('Delegator'),'$delegating_block',function b(c){var f=b.$$p||a,e=this;return b.$$p=null,w(function b(k){var h=b.$$p||a,e,f,i=b.$$s==null?this:b.$$s,g=a;return b.$$p=null,e=o(arguments),f=e,g=i.$__getobj__(),d(g,'__send__',[c].concat(j(f)),h.$to_proc())},{$$arity:-1,$$s:e}).$ruby2_keywords()}),c(s,'$DelegateClass',function l(m){var s=l.$$p||a,n=this,i=a,r=a,o=a,p=a;return l.$$p=null,i=f('Class').$new(f('Delegator')),r=[].concat(j(h('Delegator').$public_api())).concat(["to_s","inspect","=~","!~","==="]),o=m.$protected_instance_methods(),o=q(o,r),p=m.$public_instance_methods(),p=q(p,r),d(i,'module_eval',[],function i(){var g=i.$$s==null?this:i.$$s;return c(g,'$__getobj__',function f(){var d,g=f.$$p||a,c=this;if(c.delegate_dc_obj==null&&(c.delegate_dc_obj=a),f.$$p=null,!e((d=c.delegate_dc_obj,d!=null&&d!==a)?'instance-variable':a)){if(g!==a)return b.yieldX(g,[]);c.$__raise__(h('ArgumentError'),"not delegated")}return c.delegate_dc_obj}),c(g,'$__setobj__',function(b){var a=this;return e(a['$equal?'](b))&&a.$__raise__(h('ArgumentError'),"cannot delegate to self"),a.delegate_dc_obj=b}),d(o,'each',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),d.$define_method(b,f('Delegator').$delegating_block(b)),d.$protected(b)},{$$s:g}),d(p,'each',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),d.$define_method(b,f('Delegator').$delegating_block(b))},{$$s:g})},{$$s:n}),d(i,'define_singleton_method',["public_instance_methods"],function a(b){var c=a.$$s==null?this:a.$$s;return b==null&&(b=!0),g(c,k(c,'DelegateClass',a.$$def||l,!1,!1),'DelegateClass',[b],null)['$|'](m.$public_instance_methods())},{$$arity:-1,$$s:n}),d(i,'define_singleton_method',["protected_instance_methods"],function a(b){var c=a.$$s==null?this:a.$$s;return b==null&&(b=!0),g(c,k(c,'DelegateClass',a.$$def||l,!1,!1),'DelegateClass',[b],null)['$|'](m.$protected_instance_methods())},{$$arity:-1,$$s:n}),d(i,'define_singleton_method',["instance_methods"],function a(b){var c=a.$$s==null?this:a.$$s;return b==null&&(b=!0),g(c,k(c,'DelegateClass',a.$$def||l,!1,!1),'DelegateClass',[b],null)['$|'](m.$instance_methods())},{$$arity:-1,$$s:n}),d(i,'define_singleton_method',["public_instance_method"],function h(c){var d=h.$$s==null?this:h.$$s;c==null&&(c=a);try{return g(d,k(d,'DelegateClass',h.$$def||l,!1,!1),'DelegateClass',[c],null)}catch(a){if(b.rescue(a,[f('NameError')]))try{return e(d.$public_instance_methods()['$include?'](c))||d.$raise(),m.$public_instance_method(c)}finally{b.pop_exception(a)}else throw a}},{$$s:n}),d(i,'define_singleton_method',["instance_method"],function h(c){var d=h.$$s==null?this:h.$$s;c==null&&(c=a);try{return g(d,k(d,'DelegateClass',h.$$def||l,!1,!1),'DelegateClass',[c],null)}catch(a){if(b.rescue(a,[f('NameError')]))try{return e(d.$instance_methods()['$include?'](c))||d.$raise(),m.$instance_method(c)}finally{b.pop_exception(a)}else throw a}},{$$s:n}),e(s)&&d(i,'module_eval',[],s.$to_proc()),i})},Opal.modules.enumerator=Opal.return_val(Opal.nil),Opal.modules.iconv=Opal.return_val(Opal.nil),Opal.modules.json=function(a){var h=a.module,c=a.klass,l=a.send,j=a.Object,i=a.eqeqeq,f=a.defs,g=a.truthy,d=a.def,k=a.return_val,b=[],e=a.nil,m=a.$$$;return a.add_stubs('raise,new,push,[]=,[],create_id,json_create,const_get,attr_accessor,create_id=,===,parse,generate,from_object,merge,to_json,responds_to?,to_io,write,to_s,to_a,strftime'),function(q,s){var b=h(q,'JSON'),n=[b].concat(s),d=a.$r(n),k,r;c(n[0],d('StandardError'),'JSONError'),c(n[0],d('JSONError'),'ParserError'),r=a.hasOwnProperty;function p(a){try{return JSON.parse(a)}catch(a){b.$raise(m(d('JSON'),'ParserError'),a.message)}}function o(b,c){var m,i,f,g,n,h;switch(typeof b){case'string':return b;case'number':return b;case'boolean':return!!b;case'undefined':return e;case'object':if(!b)return e;if(b.$$is_array){i=a.hash_get(c,'array_class').$new();for(g=0,n=b.length;g','<'];e.eachDirectiveAndCount=function(m,n){var a,i,e,h,l,d;function j(){a=null,i=0,e=[],h=!1}j();function k(){if(a==null){j();return}var d=/[sSiIlLqQjJ]/.test(a);!d&&e.length>0&&b.$raise(c('ArgumentError'),"'"+e[0]+"' allowed only after types sSiIlLqQjJ"),e.indexOf('<')!==-1&&e.indexOf('>')!==-1&&b.$raise(c('RangeError'),"Can't use both '<' and '>'"),h||(i=1),e.indexOf('>')!==-1&&(a=a+'>'),n(a,i),j()}for(l=0;l,length,inspect,[],unpack'),j.$require("base64"),j.$require("corelib/pack_unpack/format_string_parser"),function(E,V,M){var A=n(E,V,'String'),G=[A].concat(M),Y=a.$r(G),B=d,D=d,W=a.PackUnpack.eachDirectiveAndCount,K,l,y,z,X;function _(a){return function(b){var c=a(b);return c.$flatten()}}function r(a){return function(b){var c=a(b);return c.map(function(a){return a.reverse().reduce(function(a,b){return a*256+b},0)})}}function q(a,b){return function(g){for(var c=b(g),d=[],h=c.length/a,e=0,f;e=c/2&&(a-=c),a})}}function v(a){return function(b){var c=a(b);return c.map(function(a){return String.fromCharCode(a)})}}function s(a){return function(b){var c=a(b);return c.join('')}}function w(a){return function(b){var c=a(b);return[c]}}function L(a){var b=a.map(function(a){return a.charCodeAt(0)});return function(a){return function(d){for(var c=a(d);b.indexOf(c[c.length-1])!==-1;)c=c.slice(0,c.length-1);return c}}}K=L(["\u0000"," "]);function u(a){return function(b){var c=a(b);return c.map(function(a){return a.reverse()})}}function F(a){return function(i){var c=a(i),o=!1,b=0,g=0,e=[],d,j,h,f,l,m,k,n;do if(b45)return'';for(g+=d;d>0;)j=c[b],h=c[b+1],f=c[b+2],l=c[b+3],m=(j-32&63)<<2|(h-32&63)>>4,k=(h-32&63)<<4|(f-32&63)>>2,n=(f-32&63)<<6|l-32&63,e.push(m&255),e.push(k&255),e.push(n&255),b+=4,d-=3;++b}else break;while(!0)return e.slice(0,g)}}function Z(a){return function(b){var c=a(b),d=c.map(function(a){return a.toString(2)});return d}}function H(a){return function(h){for(var e=a(h),f=[],c='',d=0,g,b,i,j;d':r(u(q(2,j))),'L>':r(u(q(4,j))),'Q>':r(u(q(8,j))),c:t(1,j),s:t(2,r(q(2,j))),l:t(4,r(q(4,j))),q:t(8,r(q(8,j))),j:null,'s>':t(2,r(u(q(2,j)))),'l>':t(4,r(u(q(4,j)))),'q>':t(8,r(u(q(8,j)))),n:null,N:null,v:null,V:null,U:j,w:H(j),D:null,d:null,F:null,f:null,E:null,e:null,G:null,g:null,A:w(s(v(K(j)))),a:w(s(v(j))),Z:s(v(j)),B:s(j),b:s(j),H:s(j),h:s(j),u:s(v(F(j))),M:J(s(v(j))),m:I(s(v(j))),P:null,p:null};function p(a){return function(b){var c=b.slice(0,a);return b=b.slice(a,b.length),{chunk:c,rest:b}}}function N(f){var g=0,h=f.length,a,d,k,e,j,l,m;function i(){var a=f[g++];return h=f.length-g,a}if(a=i(),a>>7==0)return{chunk:[a],rest:f.slice(g)};a>>6==2&&b.$raise(c('ArgumentError'),"malformed UTF-8 character"),a>>5==6?d=1:a>>4==14?d=2:a>>3==30?d=3:a>>2==62?d=4:a>>1==126?d=5:b.$raise("malformed UTF-8 character"),d>h&&(B=d+1,D=h+1,b.$raise(c('ArgumentError'),"malformed UTF-8 character (expected "+B+" bytes, given "+D+" bytes)")),k=(1<<8-d-1)-1,e=a&k;for(j=0;j>6!=2&&b.$raise("Invalid multibyte sequence"),e=e<<6|a&63;return e<=65535?{chunk:[e],rest:f.slice(g)}:(e-=65536,l=(e>>10&1023)+55296,m=(e&1023)+56320,{chunk:[l,m],rest:f.slice(g)})}function O(a){var b=a.indexOf(32);return b===-1?{chunk:a,rest:[]}:{chunk:a.slice(0,b),rest:a.slice(b,a.length)}}function P(a,c){for(var e='',f,g,h,b,d;c>0&&a.length>0;)if(f=a[0],g=Math.min(c,8),h=Math.ceil(g/8),a=a.slice(1,a.length),f!=null){b=f.toString(2),b=Array(8-b.length+1).join('0').concat(b).split('').reverse().join('');for(d=0;d0&&a.length>0;)if(f=a[0],g=Math.min(c,8),h=Math.ceil(g/8),a=a.slice(1,a.length),f!=null){b=f.toString(2),b=Array(8-b.length+1).join('0').concat(b);for(d=0;d0&&a.length>0;)e=a[0],b=e.toString(16),a=a.slice(1,a.length),b=Array(2-b.length+1).join('0').concat(b),c===1?(d.push(b[0]),c--):(d.push(b[0],b[1]),c-=2);return{chunk:d,rest:a}}function U(a,c){for(var d=[],e,b;c>0&&a.length>0;)e=a[0],b=e.toString(16),a=a.slice(1,a.length),b=Array(2-b.length+1).join('0').concat(b),c===1?(d.push(b[1]),c--):(d.push(b[1],b[0]),c-=2);return{chunk:d,rest:a}}function o(a){return function(b,e){var d=[],c,f;if(e===1/0)while(b.length>0)c=a(b),b=c.rest,d=d.concat(c.chunk);else for(f=0;f':o(p(2)),'L>':o(p(4)),'Q>':o(p(8)),c:o(p(1)),s:o(p(2)),l:o(p(4)),q:o(p(8)),j:null,'s>':o(p(2)),'l>':o(p(4)),'q>':o(p(8)),n:null,N:null,v:null,V:null,U:o(N),w:o(R),D:null,d:null,F:null,f:null,E:null,e:null,G:null,g:null,A:o(p(1)),a:o(p(1)),Z:S,B:Q,b:P,H:T,h:U,u:o(O),M:C,m:C,P:null,p:null},z={C:!0,S:!0,L:!0,Q:!0,J:null,'S>':!0,'L>':!0,'Q>':!0,c:!0,s:!0,l:!0,q:!0,j:null,'s>':!0,'l>':!0,'q>':!0,n:null,N:null,v:null,V:null,U:!1,w:!1,D:null,d:null,F:null,f:null,E:null,e:null,G:null,g:null,A:!1,a:!1,Z:!1,B:!1,b:!1,H:!1,h:!1,u:!1,M:!1,m:!1,P:null,p:null},X={'C*':l.C,'c*':l.c,'A*':l.A,'a*':l.a,'M*':w(l.M),'m*':w(l.m),'S*':l.S,'s*':l.s,'L*':l.L,'l*':l.l,'Q*':l.Q,'q*':l.q,'S>*':l['S>'],'s>*':l['s>'],'L>*':l['L>'],'l>*':l['l>'],'Q>*':l['Q>'],'q>*':l['q>']};function x(a,b){y[b]=y[a],l[b]=l[a],z[b]=z[a]}return x('S>','n'),x('L>','N'),x('S','v'),x('L','V'),i(A,'$unpack',function(o,q){var a,i=this,j,s,t,p,n,r;if(q=e(q),a=f(q,"offset"),a==null&&(a=0),g(m(a,0))&&b.$raise(c('ArgumentError'),"offset can't be negative"),o=h['$coerce_to!'](o,c('String'),"to_str").$gsub(/\s/,"").$delete("\u0000"),j=[],o=="U*"&&i.internal_encoding.name==="UTF-8"&&typeof i.codePointAt=="function"){t=0,j=new Array(i.length);for(p=a;p65535&&p++;return j.slice(0,t)}if(n=i.$bytes(),g(k(a,n.$length()))?b.$raise(c('ArgumentError'),"offset outside of string"):d,n=n.slice(a),r=X[o],r)return r(n);function v(a,b){while(a.length=,_racc_evalact,!,>,-,push,racc_shift,-@,_racc_do_reduce,racc_accept,throw,on_error,<=,pop,racc_e_pop,inspect,racc_next_state,*,racc_reduce,sprintf,token_to_str,print,racc_token2str,puts,racc_print_stacks,empty?,each,racc_print_states,each_index'),function(d,e){var f=q(d,'Racc'),b=[f].concat(e),g=c.$r(b);return p(b[0],g('StandardError'),'ParseError'),a}(i[0],i),b((u=j('::','ParseError','skip_raise'))?'constant':a)||e(i[0],'ParseError',j(w('Racc'),'ParseError')),function(u,w){var z=q(u,'Racc'),i=[z].concat(w),B=c.$r(i),A;return b((A=B('Racc_No_Extensions','skip_raise'))?'constant':a)||e(i[0],'Racc_No_Extensions',!1),function(B,z,A){var i=p(B,z,'Parser'),q=[i].concat(A),w=c.$r(q),u=i.$$prototype;return u.yydebug=u.racc_debug_out=u.racc_error_status=u.racc_t=u.racc_vstack=u.racc_val=u.racc_state=u.racc_tstack=a,e(q[0],'Racc_Runtime_Version',"1.4.6"),e(q[0],'Racc_Runtime_Revision',["originalRevision:","1.8"]['$[]'](1)),e(q[0],'Racc_Runtime_Core_Version_R',"1.4.6"),e(q[0],'Racc_Runtime_Core_Revision_R',["originalRevision:","1.8"]['$[]'](1)),e(q[0],'Racc_Main_Parsing_Routine',"_racc_do_parse_rb"),e(q[0],'Racc_YY_Parse_Method',"_racc_yyparse_rb"),e(q[0],'Racc_Runtime_Core_Version',w('Racc_Runtime_Core_Version_R')),e(q[0],'Racc_Runtime_Core_Revision',w('Racc_Runtime_Core_Revision_R')),e(q[0],'Racc_Runtime_Type',"ruby"),s(w('Parser'),'$racc_runtime_type',function(){return w('Racc_Runtime_Type')}),d(i,'$_racc_setup',function(){var e,f,c=this,g=a,d=a;return m.stderr==null&&(m.stderr=a),b(j(c.$class(),'Racc_debug_parser'))||(c.yydebug=!1),b((e=c.yydebug,e!=null&&e!==a)?'instance-variable':a)||(c.yydebug=!1),b(c.yydebug)&&(b((f=c.racc_debug_out,f!=null&&f!==a)?'instance-variable':a)||(c.racc_debug_out=m.stderr),c.racc_debug_out=b(g=c.racc_debug_out)?g:m.stderr),d=j(c.$class(),'Racc_arg'),b(o(d.$size(),14))&&d['$[]='](13,!0),d}),d(i,'$_racc_init_sysvars',function(){var b=this;return b.racc_state=[0],b.racc_tstack=[],b.racc_vstack=[],b.racc_t=a,b.racc_val=a,b.racc_read_next=!0,b.racc_user_yyerror=!1,b.racc_error_status=0}),d(i,'$do_parse',function(){var a=this;return a.$__send__(w('Racc_Main_Parsing_Routine'),a.$_racc_setup(),!1)}),d(i,'$next_token',function(){var a=this;return a.$raise(w('NotImplementedError'),""+a.$class()+"#next_token is not defined")}),d(i,'$_racc_do_parse_rb',function(t,u){var c,m,n=this,r=a,p=a,o=a,q=a,d=a,s=a,j=a,i=a,e=a;return m=t,c=l(m),r=c[0]==null?a:c[0],p=c[1]==null?a:c[1],o=c[2]==null?a:c[2],q=c[3]==null?a:c[3],d=c[4]==null?a:c[4],d=c[5]==null?a:c[5],d=c[6]==null?a:c[6],d=c[7]==null?a:c[7],d=c[8]==null?a:c[8],d=c[9]==null?a:c[9],s=c[10]==null?a:c[10],d=c[11]==null?a:c[11],d=c[12]==null?a:c[12],d=c[13]==null?a:c[13],m,n.$_racc_init_sysvars(),j=i=e=a,g(n,'catch',["racc_end_parse"],function m(){var d,g,c=m.$$s==null?this:m.$$s,n=a;for(c.racc_state==null&&(c.racc_state=a),c.racc_read_next==null&&(c.racc_read_next=a),c.racc_t==null&&(c.racc_t=a),c.yydebug==null&&(c.yydebug=a),c.racc_val==null&&(c.racc_val=a);b(!0);)for(b(e=q['$[]'](c.racc_state['$[]'](-1)))?(b(c.racc_read_next)&&v(c.racc_t,0)&&(g=c.$next_token(),d=l(g),j=d[0]==null?a:d[0],c.racc_val=d[1]==null?a:d[1],g,b(j)?c.racc_t=b(n=s['$[]'](j))?n:1:c.racc_t=0,b(c.yydebug)&&c.$racc_read_token(c.racc_t,j,c.racc_val),c.racc_read_next=!1),e=h(e,c.racc_t),b(k(e,0))&&b(i=r['$[]'](e))&&f(p['$[]'](e),c.racc_state['$[]'](-1))||(i=o['$[]'](c.racc_state['$[]'](-1)))):i=o['$[]'](c.racc_state['$[]'](-1));b(i=c.$_racc_evalact(i,t)););},{$$s:n})}),d(i,'$yyparse',function(b,c){var a=this;return a.$__send__(w('Racc_YY_Parse_Method'),b,c,a.$_racc_setup(),!0)}),d(i,'$_racc_yyparse_rb',function(u,t,m,v){var c,o,p=this,r=a,q=a,j=a,n=a,i=a,s=a,e=a,d=a;return o=m,c=l(o),r=c[0]==null?a:c[0],q=c[1]==null?a:c[1],j=c[2]==null?a:c[2],n=c[3]==null?a:c[3],i=c[4]==null?a:c[4],i=c[5]==null?a:c[5],i=c[6]==null?a:c[6],i=c[7]==null?a:c[7],i=c[8]==null?a:c[8],i=c[9]==null?a:c[9],s=c[10]==null?a:c[10],i=c[11]==null?a:c[11],i=c[12]==null?a:c[12],i=c[13]==null?a:c[13],o,p.$_racc_init_sysvars(),e=a,d=a,g(p,'catch',["racc_end_parse"],function i(){var c=i.$$s==null?this:i.$$s;for(c.racc_state==null&&(c.racc_state=a);!b(d=n['$[]'](c.racc_state['$[]'](-1)));)while(b(e=c.$_racc_evalact(j['$[]'](c.racc_state['$[]'](-1)),m)));return g(u,'__send__',[t],function o(g,l){var c=o.$$s==null?this:o.$$s,i=a,p=a;for(c.racc_t==null&&(c.racc_t=a),c.racc_state==null&&(c.racc_state=a),c.racc_read_next==null&&(c.racc_read_next=a),g==null&&(g=a),l==null&&(l=a),b(g)?c.racc_t=b(i=s['$[]'](g))?i:1:c.racc_t=0,c.racc_val=l,c.racc_read_next=!1,d=h(d,c.racc_t),b(k(d,0))&&b(e=r['$[]'](d))&&f(q['$[]'](d),c.racc_state['$[]'](-1))||(e=j['$[]'](c.racc_state['$[]'](-1)));b(e=c.$_racc_evalact(e,m)););while(b(b(i=b(p=(d=n['$[]'](c.racc_state['$[]'](-1)))['$!']())?p:c.racc_read_next['$!']())?i:c.racc_t['$=='](0)))for(b(d)&&b(d=h(d,c.racc_t))&&b(k(d,0))&&b(e=r['$[]'](d))&&f(q['$[]'](d),c.racc_state['$[]'](-1))||(e=j['$[]'](c.racc_state['$[]'](-1)));b(e=c.$_racc_evalact(e,m)););},{$$s:c})},{$$s:p})}),d(i,'$_racc_evalact',function(e,t){var d,q,c=this,w=a,u=a,i=a,v=a,m=a,p=a,s=a,j=a;if(q=t,d=l(q),w=d[0]==null?a:d[0],u=d[1]==null?a:d[1],i=d[2]==null?a:d[2],v=d[3]==null?a:d[3],i=d[4]==null?a:d[4],i=d[5]==null?a:d[5],i=d[6]==null?a:d[6],i=d[7]==null?a:d[7],i=d[8]==null?a:d[8],i=d[9]==null?a:d[9],i=d[10]==null?a:d[10],m=d[11]==null?a:d[11],p=d[12]==null?a:d[12],i=d[13]==null?a:d[13],i=d[14]==null?a:d[14],q,b(n(e,0))&&b(o(e,m)))b(n(c.racc_error_status,0))&&(f(c.racc_t,1)||(c.racc_error_status=r(c.racc_error_status,1))),c.racc_vstack.$push(c.racc_val),c.racc_state.$push(e),c.racc_read_next=!0,b(c.yydebug)&&(c.racc_tstack.$push(c.racc_t),c.$racc_shift(c.racc_t,c.racc_tstack,c.racc_vstack));else if(b(o(e,0))&&b(n(e,p['$-@']()))){if(s=g(c,'catch',["racc_jump"],function c(){var b=c.$$s==null?this:c.$$s;return b.racc_state==null&&(b.racc_state=a),b.racc_state.$push(b.$_racc_do_reduce(t,e)),!1},{$$s:c}),b(s))switch(s.valueOf()){case 1:return c.racc_user_yyerror=!0,p['$-@']();case 2:return m;default:c.$raise("[Racc Bug] unknown jump code")}}else if(f(e,m))b(c.yydebug)&&c.$racc_accept(),c.$throw("racc_end_parse",c.racc_vstack['$[]'](0));else if(f(e,p['$-@']())){switch(c.racc_error_status.valueOf()){case 0:b(t['$[]'](21))||c.$on_error(c.racc_t,c.racc_val,c.racc_vstack);break;case 3:f(c.racc_t,0)&&c.$throw("racc_end_parse",a),c.racc_read_next=!0;break;default:a}for(c.racc_user_yyerror=!1,c.racc_error_status=3;b(!0);){if(b(j=v['$[]'](c.racc_state['$[]'](-1))))if(j=h(j,1),b(k(j,0))&&b(e=w['$[]'](j))&&f(u['$[]'](j),c.racc_state['$[]'](-1)))break;b(x(c.racc_state.$size(),1))&&c.$throw("racc_end_parse",a),c.racc_state.$pop(),c.racc_vstack.$pop(),b(c.yydebug)&&(c.racc_tstack.$pop(),c.$racc_e_pop(c.racc_state,c.racc_tstack,c.racc_vstack))}return e}else c.$raise("[Racc Bug] unknown action "+e.$inspect());return b(c.yydebug)&&c.$racc_next_state(c.racc_state['$[]'](-1),c.racc_state),a}),d(i,'$_racc_do_reduce',function(G,F){var c,u,g=this,j=a,D=a,C=a,B=a,A=a,z=a,o=a,x=a,v=a,i=a,m=a,e=a,d=a,p=a,t=a,n=a,E=a,q=a,s=a,w=a;if(u=G,c=l(u),j=c[0]==null?a:c[0],j=c[1]==null?a:c[1],j=c[2]==null?a:c[2],j=c[3]==null?a:c[3],D=c[4]==null?a:c[4],C=c[5]==null?a:c[5],B=c[6]==null?a:c[6],A=c[7]==null?a:c[7],z=c[8]==null?a:c[8],o=c[9]==null?a:c[9],j=c[10]==null?a:c[10],j=c[11]==null?a:c[11],j=c[12]==null?a:c[12],x=c[13]==null?a:c[13],u,v=g.racc_state,i=g.racc_vstack,m=g.racc_tstack,e=y(F,-3),d=o['$[]'](e),p=o['$[]'](h(e,1)),t=o['$[]'](h(e,2)),n=[],b(g.yydebug)&&(E=m['$[]'](d['$-@'](),d)),q=i['$[]'](d['$-@'](),d),b(g.yydebug)&&m['$[]='](d['$-@'](),d,n),i['$[]='](d['$-@'](),d,n),v['$[]='](d['$-@'](),d,n),b(x)?i.$push(g.$__send__(t,q,i,q['$[]'](0))):i.$push(g.$__send__(t,q,i)),m.$push(p),b(g.yydebug)&&g.$racc_reduce(E,p,m,i),s=r(p,z),b(e=A['$[]'](s)))if(e=h(e,v['$[]'](-1)),b(k(e,0))&&b(w=D['$[]'](e))&&f(C['$[]'](e),s))return w;return B['$[]'](s)}),d(i,'$on_error',function(e,f,h){var c=this,d=a;return c.$raise(w('ParseError'),c.$sprintf("\nparse error on value %s (%s)",f.$inspect(),b(d=c.$token_to_str(e))?d:"?"))}),d(i,'$yyerror',function(){var a=this;return a.$throw("racc_jump",1)}),d(i,'$yyaccept',function(){var a=this;return a.$throw("racc_jump",2)}),d(i,'$yyerrok',t("racc_error_status",0)),d(i,'$racc_read_token',function(b,c,d){var a=this;return a.racc_debug_out.$print("read "),a.racc_debug_out.$print(c.$inspect(),"(",a.$racc_token2str(b),") "),a.racc_debug_out.$puts(d.$inspect()),a.racc_debug_out.$puts()}),d(i,'$racc_shift',function(b,c,d){var a=this;return a.racc_debug_out.$puts("shift "+a.$racc_token2str(b)),a.$racc_print_stacks(c,d),a.racc_debug_out.$puts()}),d(i,'$racc_reduce',function(e,f,h,i){var d=this,c=a;return c=d.racc_debug_out,c.$print("reduce "),b(e['$empty?']())?c.$print(" "):g(e,'each',[],function d(b){var e=d.$$s==null?this:d.$$s;return b==null&&(b=a),c.$print(" ",e.$racc_token2str(b))},{$$s:d}),c.$puts(" --> "+d.$racc_token2str(f)),d.$racc_print_stacks(h,i),d.racc_debug_out.$puts()}),d(i,'$racc_accept',function(){var a=this;return a.racc_debug_out.$puts("accept"),a.racc_debug_out.$puts()}),d(i,'$racc_e_pop',function(b,c,d){var a=this;return a.racc_debug_out.$puts("error recovering mode: pop token"),a.$racc_print_states(b),a.$racc_print_stacks(c,d),a.racc_debug_out.$puts()}),d(i,'$racc_next_state',function(b,c){var a=this;return a.racc_debug_out.$puts("goto "+b),a.$racc_print_states(c),a.racc_debug_out.$puts()}),d(i,'$racc_print_stacks',function(c,e){var d=this,b=a;return b=d.racc_debug_out,b.$print(" ["),g(c,'each_index',[],function f(d){var g=f.$$s==null?this:f.$$s;return d==null&&(d=a),b.$print(" (",g.$racc_token2str(c['$[]'](d))," ",e['$[]'](d).$inspect(),")")},{$$s:d}),b.$puts(" ]")}),d(i,'$racc_print_states',function(c){var d=this,b=a;return b=d.racc_debug_out,b.$print(" ["),g(c,'each',[],function(c){return c==null&&(c=a),b.$print(" ",c)}),b.$puts(" ]")}),d(i,'$racc_token2str',function(c){var d=this,e=a;return b(e=j(d.$class(),'Racc_token_to_s_table')['$[]'](c))?e:d.$raise("[Racc Bug] can't convert token "+c+" to string")}),d(i,'$token_to_str',function(a){var b=this;return j(b.$class(),'Racc_token_to_s_table')['$[]'](a)})}(i[0],null,i)}(i[0],i)},Opal.modules["parser/version"]=function(a){var c=a.module,d=a.const_set,b=[],e=a.nil;return function(a,b){var e=c(a,'Parser'),f=[e].concat(b);return d(f[0],'VERSION',"3.3.9.0")}(b[0],b)},Opal.modules["racc/parser"]=function(c){var q=c.module,p=c.klass,b=c.truthy,e=c.const_set,s=c.defs,m=c.gvars,o=c.rb_lt,d=c.def,l=c.to_ary,g=c.send,v=c.neqeq,h=c.rb_plus,f=c.eqeq,k=c.rb_ge,n=c.rb_gt,r=c.rb_minus,x=c.rb_le,y=c.rb_times,t=c.assign_ivar_val,u,i=[],w=c.$r(i),a=c.nil,j=c.$$$;return c.add_stubs('[],class,<,size,[]=,__send__,_racc_setup,raise,_racc_init_sysvars,catch,!=,next_token,racc_read_token,+,==,>=,_racc_evalact,!,>,-,push,racc_shift,-@,_racc_do_reduce,racc_accept,throw,on_error,<=,pop,racc_e_pop,inspect,racc_next_state,*,racc_reduce,sprintf,token_to_str,print,racc_token2str,puts,racc_print_stacks,empty?,each,racc_print_states,each_index'),function(d,e){var f=q(d,'Racc'),b=[f].concat(e),g=c.$r(b);return p(b[0],g('StandardError'),'ParseError'),a}(i[0],i),b((u=j('::','ParseError','skip_raise'))?'constant':a)||e(i[0],'ParseError',j(w('Racc'),'ParseError')),function(u,w){var z=q(u,'Racc'),i=[z].concat(w),B=c.$r(i),A;return b((A=B('Racc_No_Extensions','skip_raise'))?'constant':a)||e(i[0],'Racc_No_Extensions',!1),function(B,z,A){var i=p(B,z,'Parser'),q=[i].concat(A),w=c.$r(q),u=i.$$prototype;return u.yydebug=u.racc_debug_out=u.racc_error_status=u.racc_t=u.racc_vstack=u.racc_val=u.racc_state=u.racc_tstack=a,e(q[0],'Racc_Runtime_Version',"1.4.6"),e(q[0],'Racc_Runtime_Revision',["originalRevision:","1.8"]['$[]'](1)),e(q[0],'Racc_Runtime_Core_Version_R',"1.4.6"),e(q[0],'Racc_Runtime_Core_Revision_R',["originalRevision:","1.8"]['$[]'](1)),e(q[0],'Racc_Main_Parsing_Routine',"_racc_do_parse_rb"),e(q[0],'Racc_YY_Parse_Method',"_racc_yyparse_rb"),e(q[0],'Racc_Runtime_Core_Version',w('Racc_Runtime_Core_Version_R')),e(q[0],'Racc_Runtime_Core_Revision',w('Racc_Runtime_Core_Revision_R')),e(q[0],'Racc_Runtime_Type',"ruby"),s(w('Parser'),'$racc_runtime_type',function(){return w('Racc_Runtime_Type')}),d(i,'$_racc_setup',function(){var e,f,c=this,g=a,d=a;return m.stderr==null&&(m.stderr=a),b(j(c.$class(),'Racc_debug_parser'))||(c.yydebug=!1),b((e=c.yydebug,e!=null&&e!==a)?'instance-variable':a)||(c.yydebug=!1),b(c.yydebug)&&(b((f=c.racc_debug_out,f!=null&&f!==a)?'instance-variable':a)||(c.racc_debug_out=m.stderr),c.racc_debug_out=b(g=c.racc_debug_out)?g:m.stderr),d=j(c.$class(),'Racc_arg'),b(o(d.$size(),14))&&d['$[]='](13,!0),d}),d(i,'$_racc_init_sysvars',function(){var b=this;return b.racc_state=[0],b.racc_tstack=[],b.racc_vstack=[],b.racc_t=a,b.racc_val=a,b.racc_read_next=!0,b.racc_user_yyerror=!1,b.racc_error_status=0}),d(i,'$do_parse',function(){var a=this;return a.$__send__(w('Racc_Main_Parsing_Routine'),a.$_racc_setup(),!1)}),d(i,'$next_token',function(){var a=this;return a.$raise(w('NotImplementedError'),""+a.$class()+"#next_token is not defined")}),d(i,'$_racc_do_parse_rb',function(t,u){var c,m,n=this,r=a,p=a,o=a,q=a,d=a,s=a,j=a,i=a,e=a;return m=t,c=l(m),r=c[0]==null?a:c[0],p=c[1]==null?a:c[1],o=c[2]==null?a:c[2],q=c[3]==null?a:c[3],d=c[4]==null?a:c[4],d=c[5]==null?a:c[5],d=c[6]==null?a:c[6],d=c[7]==null?a:c[7],d=c[8]==null?a:c[8],d=c[9]==null?a:c[9],s=c[10]==null?a:c[10],d=c[11]==null?a:c[11],d=c[12]==null?a:c[12],d=c[13]==null?a:c[13],m,n.$_racc_init_sysvars(),j=i=e=a,g(n,'catch',["racc_end_parse"],function m(){var d,g,c=m.$$s==null?this:m.$$s,n=a;for(c.racc_state==null&&(c.racc_state=a),c.racc_read_next==null&&(c.racc_read_next=a),c.racc_t==null&&(c.racc_t=a),c.yydebug==null&&(c.yydebug=a),c.racc_val==null&&(c.racc_val=a);b(!0);)for(b(e=q['$[]'](c.racc_state['$[]'](-1)))?(b(c.racc_read_next)&&v(c.racc_t,0)&&(g=c.$next_token(),d=l(g),j=d[0]==null?a:d[0],c.racc_val=d[1]==null?a:d[1],g,b(j)?c.racc_t=b(n=s['$[]'](j))?n:1:c.racc_t=0,b(c.yydebug)&&c.$racc_read_token(c.racc_t,j,c.racc_val),c.racc_read_next=!1),e=h(e,c.racc_t),b(k(e,0))&&b(i=r['$[]'](e))&&f(p['$[]'](e),c.racc_state['$[]'](-1))||(i=o['$[]'](c.racc_state['$[]'](-1)))):i=o['$[]'](c.racc_state['$[]'](-1));b(i=c.$_racc_evalact(i,t)););},{$$s:n})}),d(i,'$yyparse',function(b,c){var a=this;return a.$__send__(w('Racc_YY_Parse_Method'),b,c,a.$_racc_setup(),!0)}),d(i,'$_racc_yyparse_rb',function(u,t,m,v){var c,o,p=this,r=a,q=a,j=a,n=a,i=a,s=a,e=a,d=a;return o=m,c=l(o),r=c[0]==null?a:c[0],q=c[1]==null?a:c[1],j=c[2]==null?a:c[2],n=c[3]==null?a:c[3],i=c[4]==null?a:c[4],i=c[5]==null?a:c[5],i=c[6]==null?a:c[6],i=c[7]==null?a:c[7],i=c[8]==null?a:c[8],i=c[9]==null?a:c[9],s=c[10]==null?a:c[10],i=c[11]==null?a:c[11],i=c[12]==null?a:c[12],i=c[13]==null?a:c[13],o,p.$_racc_init_sysvars(),e=a,d=a,g(p,'catch',["racc_end_parse"],function i(){var c=i.$$s==null?this:i.$$s;for(c.racc_state==null&&(c.racc_state=a);!b(d=n['$[]'](c.racc_state['$[]'](-1)));)while(b(e=c.$_racc_evalact(j['$[]'](c.racc_state['$[]'](-1)),m)));return g(u,'__send__',[t],function o(g,l){var c=o.$$s==null?this:o.$$s,i=a,p=a;for(c.racc_t==null&&(c.racc_t=a),c.racc_state==null&&(c.racc_state=a),c.racc_read_next==null&&(c.racc_read_next=a),g==null&&(g=a),l==null&&(l=a),b(g)?c.racc_t=b(i=s['$[]'](g))?i:1:c.racc_t=0,c.racc_val=l,c.racc_read_next=!1,d=h(d,c.racc_t),b(k(d,0))&&b(e=r['$[]'](d))&&f(q['$[]'](d),c.racc_state['$[]'](-1))||(e=j['$[]'](c.racc_state['$[]'](-1)));b(e=c.$_racc_evalact(e,m)););while(b(b(i=b(p=(d=n['$[]'](c.racc_state['$[]'](-1)))['$!']())?p:c.racc_read_next['$!']())?i:c.racc_t['$=='](0)))for(b(d)&&b(d=h(d,c.racc_t))&&b(k(d,0))&&b(e=r['$[]'](d))&&f(q['$[]'](d),c.racc_state['$[]'](-1))||(e=j['$[]'](c.racc_state['$[]'](-1)));b(e=c.$_racc_evalact(e,m)););},{$$s:c})},{$$s:p})}),d(i,'$_racc_evalact',function(e,t){var d,q,c=this,w=a,u=a,i=a,v=a,m=a,p=a,s=a,j=a;if(q=t,d=l(q),w=d[0]==null?a:d[0],u=d[1]==null?a:d[1],i=d[2]==null?a:d[2],v=d[3]==null?a:d[3],i=d[4]==null?a:d[4],i=d[5]==null?a:d[5],i=d[6]==null?a:d[6],i=d[7]==null?a:d[7],i=d[8]==null?a:d[8],i=d[9]==null?a:d[9],i=d[10]==null?a:d[10],m=d[11]==null?a:d[11],p=d[12]==null?a:d[12],i=d[13]==null?a:d[13],i=d[14]==null?a:d[14],q,b(n(e,0))&&b(o(e,m)))b(n(c.racc_error_status,0))&&(f(c.racc_t,1)||(c.racc_error_status=r(c.racc_error_status,1))),c.racc_vstack.$push(c.racc_val),c.racc_state.$push(e),c.racc_read_next=!0,b(c.yydebug)&&(c.racc_tstack.$push(c.racc_t),c.$racc_shift(c.racc_t,c.racc_tstack,c.racc_vstack));else if(b(o(e,0))&&b(n(e,p['$-@']()))){if(s=g(c,'catch',["racc_jump"],function c(){var b=c.$$s==null?this:c.$$s;return b.racc_state==null&&(b.racc_state=a),b.racc_state.$push(b.$_racc_do_reduce(t,e)),!1},{$$s:c}),b(s))switch(s.valueOf()){case 1:return c.racc_user_yyerror=!0,p['$-@']();case 2:return m;default:c.$raise("[Racc Bug] unknown jump code")}}else if(f(e,m))b(c.yydebug)&&c.$racc_accept(),c.$throw("racc_end_parse",c.racc_vstack['$[]'](0));else if(f(e,p['$-@']())){switch(c.racc_error_status.valueOf()){case 0:b(t['$[]'](21))||c.$on_error(c.racc_t,c.racc_val,c.racc_vstack);break;case 3:f(c.racc_t,0)&&c.$throw("racc_end_parse",a),c.racc_read_next=!0;break;default:a}for(c.racc_user_yyerror=!1,c.racc_error_status=3;b(!0);){if(b(j=v['$[]'](c.racc_state['$[]'](-1))))if(j=h(j,1),b(k(j,0))&&b(e=w['$[]'](j))&&f(u['$[]'](j),c.racc_state['$[]'](-1)))break;b(x(c.racc_state.$size(),1))&&c.$throw("racc_end_parse",a),c.racc_state.$pop(),c.racc_vstack.$pop(),b(c.yydebug)&&(c.racc_tstack.$pop(),c.$racc_e_pop(c.racc_state,c.racc_tstack,c.racc_vstack))}return e}else c.$raise("[Racc Bug] unknown action "+e.$inspect());return b(c.yydebug)&&c.$racc_next_state(c.racc_state['$[]'](-1),c.racc_state),a}),d(i,'$_racc_do_reduce',function(G,F){var c,u,g=this,j=a,D=a,C=a,B=a,A=a,z=a,o=a,x=a,v=a,i=a,m=a,e=a,d=a,p=a,t=a,n=a,E=a,q=a,s=a,w=a;if(u=G,c=l(u),j=c[0]==null?a:c[0],j=c[1]==null?a:c[1],j=c[2]==null?a:c[2],j=c[3]==null?a:c[3],D=c[4]==null?a:c[4],C=c[5]==null?a:c[5],B=c[6]==null?a:c[6],A=c[7]==null?a:c[7],z=c[8]==null?a:c[8],o=c[9]==null?a:c[9],j=c[10]==null?a:c[10],j=c[11]==null?a:c[11],j=c[12]==null?a:c[12],x=c[13]==null?a:c[13],u,v=g.racc_state,i=g.racc_vstack,m=g.racc_tstack,e=y(F,-3),d=o['$[]'](e),p=o['$[]'](h(e,1)),t=o['$[]'](h(e,2)),n=[],b(g.yydebug)&&(E=m['$[]'](d['$-@'](),d)),q=i['$[]'](d['$-@'](),d),b(g.yydebug)&&m['$[]='](d['$-@'](),d,n),i['$[]='](d['$-@'](),d,n),v['$[]='](d['$-@'](),d,n),b(x)?i.$push(g.$__send__(t,q,i,q['$[]'](0))):i.$push(g.$__send__(t,q,i)),m.$push(p),b(g.yydebug)&&g.$racc_reduce(E,p,m,i),s=r(p,z),b(e=A['$[]'](s)))if(e=h(e,v['$[]'](-1)),b(k(e,0))&&b(w=D['$[]'](e))&&f(C['$[]'](e),s))return w;return B['$[]'](s)}),d(i,'$on_error',function(e,f,h){var c=this,d=a;return c.$raise(w('ParseError'),c.$sprintf("\nparse error on value %s (%s)",f.$inspect(),b(d=c.$token_to_str(e))?d:"?"))}),d(i,'$yyerror',function(){var a=this;return a.$throw("racc_jump",1)}),d(i,'$yyaccept',function(){var a=this;return a.$throw("racc_jump",2)}),d(i,'$yyerrok',t("racc_error_status",0)),d(i,'$racc_read_token',function(b,c,d){var a=this;return a.racc_debug_out.$print("read "),a.racc_debug_out.$print(c.$inspect(),"(",a.$racc_token2str(b),") "),a.racc_debug_out.$puts(d.$inspect()),a.racc_debug_out.$puts()}),d(i,'$racc_shift',function(b,c,d){var a=this;return a.racc_debug_out.$puts("shift "+a.$racc_token2str(b)),a.$racc_print_stacks(c,d),a.racc_debug_out.$puts()}),d(i,'$racc_reduce',function(e,f,h,i){var d=this,c=a;return c=d.racc_debug_out,c.$print("reduce "),b(e['$empty?']())?c.$print(" "):g(e,'each',[],function d(b){var e=d.$$s==null?this:d.$$s;return b==null&&(b=a),c.$print(" ",e.$racc_token2str(b))},{$$s:d}),c.$puts(" --> "+d.$racc_token2str(f)),d.$racc_print_stacks(h,i),d.racc_debug_out.$puts()}),d(i,'$racc_accept',function(){var a=this;return a.racc_debug_out.$puts("accept"),a.racc_debug_out.$puts()}),d(i,'$racc_e_pop',function(b,c,d){var a=this;return a.racc_debug_out.$puts("error recovering mode: pop token"),a.$racc_print_states(b),a.$racc_print_stacks(c,d),a.racc_debug_out.$puts()}),d(i,'$racc_next_state',function(b,c){var a=this;return a.racc_debug_out.$puts("goto "+b),a.$racc_print_states(c),a.racc_debug_out.$puts()}),d(i,'$racc_print_stacks',function(c,e){var d=this,b=a;return b=d.racc_debug_out,b.$print(" ["),g(c,'each_index',[],function f(d){var g=f.$$s==null?this:f.$$s;return d==null&&(d=a),b.$print(" (",g.$racc_token2str(c['$[]'](d))," ",e['$[]'](d).$inspect(),")")},{$$s:d}),b.$puts(" ]")}),d(i,'$racc_print_states',function(c){var d=this,b=a;return b=d.racc_debug_out,b.$print(" ["),g(c,'each',[],function(c){return c==null&&(c=a),b.$print(" ",c)}),b.$puts(" ]")}),d(i,'$racc_token2str',function(c){var d=this,e=a;return b(e=j(d.$class(),'Racc_token_to_s_table')['$[]'](c))?e:d.$raise("[Racc Bug] can't convert token "+c+" to string")}),d(i,'$token_to_str',function(a){var b=this;return j(b.$class(),'Racc_token_to_s_table')['$[]'](a)})}(i[0],null,i)}(i[0],i)},Opal.modules["parser/messages"]=function(a){var b=a.module,d=a.const_set,e=a.truthy,f=a.eqeqeq,g=a.defs,c=[],h=a.nil;return a.add_stubs('freeze,[],empty?,===,format'),function(i,j){var k=b(i,'Parser'),c=[k].concat(j);return d(c[0],'MESSAGES',new Map([["unicode_point_too_large","invalid Unicode codepoint (too large)"],["invalid_escape","invalid escape character syntax"],["incomplete_escape","incomplete character syntax"],["invalid_hex_escape","invalid hex escape"],["invalid_unicode_escape","invalid Unicode escape"],["unterminated_unicode","unterminated Unicode escape"],["escape_eof","escape sequence meets end of file"],["string_eof","unterminated string meets end of file"],["regexp_options","unknown regexp options: %{options}"],["cvar_name","`%{name}' is not allowed as a class variable name"],["ivar_name","`%{name}' is not allowed as an instance variable name"],["gvar_name","`%{name}' is not allowed as a global variable name"],["trailing_in_number","trailing `%{character}' in number"],["empty_numeric","numeric literal without digits"],["invalid_octal","invalid octal digit"],["no_dot_digit_literal","no . floating literal anymore; put 0 before dot"],["bare_backslash","bare backslash only allowed before newline"],["unexpected","unexpected `%{character}'"],["embedded_document","embedded document meets end of file (and they embark on a romantic journey)"],["heredoc_id_has_newline","here document identifier across newlines, never match"],["heredoc_id_ends_with_nl","here document identifier ends with a newline"],["unterminated_heredoc_id","unterminated heredoc id"],["invalid_escape_use","invalid character syntax; use ?%{escape}"],["ambiguous_literal","ambiguous first argument; put parentheses or a space even after the operator"],["ambiguous_regexp","ambiguity between regexp and two divisions: wrap regexp in parentheses or add a space after `/' operator"],["ambiguous_prefix","`%{prefix}' interpreted as argument prefix"],["triple_dot_at_eol","... at EOL, should be parenthesized"],["nth_ref_alias","cannot define an alias for a back-reference variable"],["begin_in_method","BEGIN in method"],["backref_assignment","cannot assign to a back-reference variable"],["invalid_assignment","cannot assign to a keyword"],["module_name_const","class or module name must be a constant literal"],["unexpected_token","unexpected token %{token}"],["argument_const","formal argument cannot be a constant"],["argument_ivar","formal argument cannot be an instance variable"],["argument_gvar","formal argument cannot be a global variable"],["argument_cvar","formal argument cannot be a class variable"],["duplicate_argument","duplicate argument name"],["empty_symbol","empty symbol literal"],["odd_hash","odd number of entries for a hash"],["singleton_literal","cannot define a singleton method for a literal"],["dynamic_const","dynamic constant assignment"],["const_reassignment","constant re-assignment"],["module_in_def","module definition in method body"],["class_in_def","class definition in method body"],["unexpected_percent_str","%{type}: unknown type of percent-literal"],["block_and_blockarg","both block argument and literal block are passed"],["masgn_as_condition","multiple assignment in conditional context"],["block_given_to_yield","block given to yield"],["invalid_regexp","%{message}"],["invalid_return","Invalid return in class/module body"],["csend_in_lhs_of_masgn","&. inside multiple assignment destination"],["cant_assign_to_numparam","cannot assign to numbered parameter %{name}"],["reserved_for_numparam","%{name} is reserved for numbered parameter"],["ordinary_param_defined","ordinary parameter is defined"],["numparam_used_in_outer_scope","numbered parameter is already used in an outer scope"],["circular_argument_reference","circular argument reference %{var_name}"],["pm_interp_in_var_name","symbol literal with interpolation is not allowed"],["lvar_name","`%{name}' is not allowed as a local variable name"],["undefined_lvar","no such local variable: `%{name}'"],["duplicate_variable_name","duplicate variable name %{name}"],["duplicate_pattern_key","duplicate hash pattern key %{name}"],["endless_setter","setter method cannot be defined in an endless method definition"],["invalid_id_to_get","identifier %{identifier} is not valid to get"],["forward_arg_after_restarg","... after rest argument"],["no_anonymous_blockarg","no anonymous block parameter"],["no_anonymous_restarg","no anonymous rest parameter"],["no_anonymous_kwrestarg","no anonymous keyword rest parameter"],["ambiguous_anonymous_restarg","anonymous rest parameter is also used within block"],["ambiguous_anonymous_kwrestarg","anonymous keyword rest parameter is also used within block"],["ambiguous_anonymous_blockarg","anonymous block parameter is also used within block"],["useless_else","else without rescue is useless"],["duplicate_hash_key","key is duplicated and overwritten"],["ambiguous_it_call","`it` calls without arguments refers to the first block param"],["invalid_encoding","literal contains escape sequences incompatible with UTF-8"],["invalid_action","cannot %{action}"],["clobbered","clobbered by: %{action}"],["different_replacements","different replacements: %{replacement} vs %{other_replacement}"],["swallowed_insertions","this replacement:"],["swallowed_insertions_conflict","swallows some inner rewriting actions:"],["crossing_deletions","the deletion of:"],["crossing_deletions_conflict","is crossing:"],["crossing_insertions","the rewriting action on:"],["crossing_insertions_conflict","is crossing that on:"]]).$freeze()),function(i,j){var c=b(i,'Messages'),k=[c].concat(j),d=a.$r(k);return g(c,'$compile',function(c,a){var g=this,b=h;return b=d('MESSAGES')['$[]'](c),f(d('Hash'),a)&&e(a['$empty?']())?b:g.$format(b,a)})}(c[0],c)}(c[0],c)},Opal.modules["parser/deprecation"]=function(a){var c=a.module,d=a.truthy,f=a.def,e=[],b=a.nil,g=a.$$$;return a.add_stubs('attr_writer,warn'),function(a,e){var h=c(a,'Parser'),i=[h].concat(e);return function(e){var a=c(e,'Deprecation');return a.$attr_writer("warned_of_deprecation"),f(a,'$warn_of_deprecation',function(){var a=this,c=b,e=b;return a.warned_of_deprecation==null&&(a.warned_of_deprecation=b),a.warned_of_deprecation=d(c=a.warned_of_deprecation)?c:d(e=a.$warn(g(a,'DEPRECATION_WARNING')))?e:!0})}(i[0])}(e[0],e)},Opal.modules["parser/ast/processor"]=function(d){var h=d.module,k=d.klass,c=d.def,a=d.alias,e=d.to_a,f=d.not,i=d.truthy,l=d.slice,j=[],b=d.nil,g=d.$$$;return d.add_stubs('include,updated,process_all,process_regular_node,on_var,process_variable_node,!,nil?,process,on_vasgn,process_var_asgn_node,on_argument,process_argument_node,is_a?,[],children,on_send,warn'),function(m,n){var o=h(m,'Parser'),j=[o].concat(n);return function(m,n){var o=h(m,'AST'),j=[o].concat(n);return function(j,m,n){var h=k(j,m,'Processor'),o=[h].concat(n),p=d.$r(o);return h.$include(g(g(g('AST'),'Processor'),'Mixin')),c(h,'$process_regular_node',function(a){var c=this;return a.$updated(b,c.$process_all(a))}),a(h,"on_dstr","process_regular_node"),a(h,"on_dsym","process_regular_node"),a(h,"on_regexp","process_regular_node"),a(h,"on_xstr","process_regular_node"),a(h,"on_splat","process_regular_node"),a(h,"on_kwsplat","process_regular_node"),a(h,"on_array","process_regular_node"),a(h,"on_pair","process_regular_node"),a(h,"on_hash","process_regular_node"),a(h,"on_kwargs","process_regular_node"),a(h,"on_irange","process_regular_node"),a(h,"on_erange","process_regular_node"),c(h,'$on_var',function(a){return a}),c(h,'$process_variable_node',function(a){var b=this;return b.$on_var(a)}),a(h,"on_lvar","process_variable_node"),a(h,"on_ivar","process_variable_node"),a(h,"on_gvar","process_variable_node"),a(h,"on_cvar","process_variable_node"),a(h,"on_back_ref","process_variable_node"),a(h,"on_nth_ref","process_variable_node"),c(h,'$on_vasgn',function(c){var a,h=this,g=b,d=b;return a=[].concat(e(c)),g=a[0]==null?b:a[0],d=a[1]==null?b:a[1],a,f(d['$nil?']())?c.$updated(b,[g,h.$process(d)]):c}),c(h,'$process_var_asgn_node',function(a){var b=this;return b.$on_vasgn(a)}),a(h,"on_lvasgn","process_var_asgn_node"),a(h,"on_ivasgn","process_var_asgn_node"),a(h,"on_gvasgn","process_var_asgn_node"),a(h,"on_cvasgn","process_var_asgn_node"),a(h,"on_and_asgn","process_regular_node"),a(h,"on_or_asgn","process_regular_node"),c(h,'$on_op_asgn',function(d){var a,f=this,g=b,h=b,c=b;return a=[].concat(e(d)),g=a[0]==null?b:a[0],h=a[1]==null?b:a[1],c=a[2]==null?b:a[2],a,d.$updated(b,[f.$process(g),h,f.$process(c)])}),a(h,"on_mlhs","process_regular_node"),a(h,"on_masgn","process_regular_node"),c(h,'$on_const',function(c){var a,g=this,d=b,f=b;return a=[].concat(e(c)),d=a[0]==null?b:a[0],f=a[1]==null?b:a[1],a,c.$updated(b,[g.$process(d),f])}),c(h,'$on_casgn',function(d){var a,g=this,h=b,i=b,c=b;return a=[].concat(e(d)),h=a[0]==null?b:a[0],i=a[1]==null?b:a[1],c=a[2]==null?b:a[2],a,f(c['$nil?']())?d.$updated(b,[g.$process(h),i,g.$process(c)]):d.$updated(b,[g.$process(h),i])}),a(h,"on_args","process_regular_node"),c(h,'$on_argument',function(c){var a,h=this,g=b,d=b;return a=[].concat(e(c)),g=a[0]==null?b:a[0],d=a[1]==null?b:a[1],a,f(d['$nil?']())?c.$updated(b,[g,h.$process(d)]):c}),c(h,'$process_argument_node',function(a){var b=this;return b.$on_argument(a)}),a(h,"on_arg","process_argument_node"),a(h,"on_optarg","process_argument_node"),a(h,"on_restarg","process_argument_node"),a(h,"on_blockarg","process_argument_node"),a(h,"on_shadowarg","process_argument_node"),a(h,"on_kwarg","process_argument_node"),a(h,"on_kwoptarg","process_argument_node"),a(h,"on_kwrestarg","process_argument_node"),a(h,"on_forward_arg","process_argument_node"),c(h,'$on_procarg0',function(a){var b=this;return i(a.$children()['$[]'](0)['$is_a?'](p('Symbol')))?b.$on_argument(a):b.$process_regular_node(a)}),a(h,"on_arg_expr","process_regular_node"),a(h,"on_restarg_expr","process_regular_node"),a(h,"on_blockarg_expr","process_regular_node"),a(h,"on_block_pass","process_regular_node"),a(h,"on_forwarded_restarg","process_regular_node"),a(h,"on_forwarded_kwrestarg","process_regular_node"),a(h,"on_module","process_regular_node"),a(h,"on_class","process_regular_node"),a(h,"on_sclass","process_regular_node"),c(h,'$on_def',function(d){var a,f=this,g=b,h=b,c=b;return a=[].concat(e(d)),g=a[0]==null?b:a[0],h=a[1]==null?b:a[1],c=a[2]==null?b:a[2],a,d.$updated(b,[g,f.$process(h),f.$process(c)])}),c(h,'$on_defs',function(f){var a,c=this,g=b,h=b,d=b,i=b;return a=[].concat(e(f)),g=a[0]==null?b:a[0],h=a[1]==null?b:a[1],d=a[2]==null?b:a[2],i=a[3]==null?b:a[3],a,f.$updated(b,[c.$process(g),h,c.$process(d),c.$process(i)])}),a(h,"on_undef","process_regular_node"),a(h,"on_alias","process_regular_node"),c(h,'$on_send',function(f){var a,g=this,c=b,h=b,d=b;return a=[].concat(e(f)),c=a[0]==null?b:a[0],h=a[1]==null?b:a[1],d=l(a,2),a,i(c)&&(c=g.$process(c)),f.$updated(b,[c,h].concat(e(g.$process_all(d))))}),a(h,"on_csend","on_send"),a(h,"on_index","process_regular_node"),a(h,"on_indexasgn","process_regular_node"),a(h,"on_block","process_regular_node"),a(h,"on_lambda","process_regular_node"),c(h,'$on_numblock',function(d){var a,f=this,g=b,h=b,c=b;return a=[].concat(e(d)),g=a[0]==null?b:a[0],h=a[1]==null?b:a[1],c=a[2]==null?b:a[2],a,d.$updated(b,[f.$process(g),h,f.$process(c)])}),a(h,"on_while","process_regular_node"),a(h,"on_while_post","process_regular_node"),a(h,"on_until","process_regular_node"),a(h,"on_until_post","process_regular_node"),a(h,"on_for","process_regular_node"),a(h,"on_return","process_regular_node"),a(h,"on_break","process_regular_node"),a(h,"on_next","process_regular_node"),a(h,"on_redo","process_regular_node"),a(h,"on_retry","process_regular_node"),a(h,"on_super","process_regular_node"),a(h,"on_yield","process_regular_node"),a(h,"on_defined?","process_regular_node"),a(h,"on_not","process_regular_node"),a(h,"on_and","process_regular_node"),a(h,"on_or","process_regular_node"),a(h,"on_if","process_regular_node"),a(h,"on_when","process_regular_node"),a(h,"on_case","process_regular_node"),a(h,"on_iflipflop","process_regular_node"),a(h,"on_eflipflop","process_regular_node"),a(h,"on_match_current_line","process_regular_node"),a(h,"on_match_with_lvasgn","process_regular_node"),a(h,"on_resbody","process_regular_node"),a(h,"on_rescue","process_regular_node"),a(h,"on_ensure","process_regular_node"),a(h,"on_begin","process_regular_node"),a(h,"on_kwbegin","process_regular_node"),a(h,"on_preexe","process_regular_node"),a(h,"on_postexe","process_regular_node"),a(h,"on_case_match","process_regular_node"),a(h,"on_in_match","process_regular_node"),a(h,"on_match_pattern","process_regular_node"),a(h,"on_match_pattern_p","process_regular_node"),a(h,"on_in_pattern","process_regular_node"),a(h,"on_if_guard","process_regular_node"),a(h,"on_unless_guard","process_regular_node"),a(h,"on_match_var","process_variable_node"),a(h,"on_match_rest","process_regular_node"),a(h,"on_pin","process_regular_node"),a(h,"on_match_alt","process_regular_node"),a(h,"on_match_as","process_regular_node"),a(h,"on_array_pattern","process_regular_node"),a(h,"on_array_pattern_with_tail","process_regular_node"),a(h,"on_hash_pattern","process_regular_node"),a(h,"on_const_pattern","process_regular_node"),a(h,"on_find_pattern","process_regular_node"),c(h,'$process_variable_node',function(b){var a=this;return a.$warn("Parser::AST::Processor#process_variable_node is deprecated as a public API and will be removed. Please use Parser::AST::Processor#on_var instead."),a.$on_var(b)}),c(h,'$process_var_asgn_node',function(b){var a=this;return a.$warn("Parser::AST::Processor#process_var_asgn_node is deprecated as a public API and will be removed. Please use Parser::AST::Processor#on_vasgn instead."),a.$on_vasgn(b)}),c(h,'$process_argument_node',function(b){var a=this;return a.$warn("Parser::AST::Processor#process_argument_node is deprecated as a public API and will be removed. Please use Parser::AST::Processor#on_argument instead."),a.$on_argument(b)}),c(h,'$on_empty_else',function(a){return a})}(j[0],null,j)}(j[0],j)}(j[0],j)},Opal.modules["parser/meta"]=function(a){var b=a.module,c=a.const_set,e=a.rb_plus,d=[],f=a.nil;return a.add_stubs('freeze,private_constant,to_set,+'),function(f,g){var h=b(f,'Parser'),d=[h].concat(g);return function(g,h){var f=b(g,'Meta'),d=[f].concat(h),i=a.$r(d);return c(d[0],'PRISM_TRANSLATION_PARSER_NODE_TYPES',["itarg","itblock"].$freeze()),f.$private_constant("PRISM_TRANSLATION_PARSER_NODE_TYPES"),c(d[0],'NODE_TYPES',e(a.large_array_unpack("true,false,nil,int,float,str,dstr,sym,dsym,xstr,regopt,regexp,array,splat,pair,kwsplat,hash,irange,erange,self,lvar,ivar,cvar,gvar,const,defined?,lvasgn,ivasgn,cvasgn,gvasgn,casgn,mlhs,masgn,op_asgn,and_asgn,ensure,rescue,arg_expr,or_asgn,back_ref,nth_ref,match_with_lvasgn,match_current_line,module,class,sclass,def,defs,undef,alias,args,cbase,arg,optarg,restarg,blockarg,block_pass,kwarg,kwoptarg,kwrestarg,kwnilarg,send,csend,super,zsuper,yield,block,and,not,or,if,when,case,while,until,while_post,until_post,for,break,next,redo,return,resbody,kwbegin,begin,retry,preexe,postexe,iflipflop,eflipflop,shadowarg,complex,rational,__FILE__,__LINE__,__ENCODING__,ident,lambda,indexasgn,index,procarg0,restarg_expr,blockarg_expr,objc_kwarg,objc_restarg,objc_varargs,numargs,numblock,forward_args,forwarded_args,forward_arg,case_match,in_match,in_pattern,match_var,pin,match_alt,match_as,match_rest,array_pattern,match_with_trailing_comma,array_pattern_with_tail,hash_pattern,const_pattern,if_guard,unless_guard,match_nil_pattern,empty_else,find_pattern,kwargs,match_pattern_p,match_pattern,forwarded_restarg,forwarded_kwrestarg"),i('PRISM_TRANSLATION_PARSER_NODE_TYPES')).$to_set().$freeze())}(d[0],d)}(d[0],d)},Opal.modules["parser/source/buffer"]=function(b){var m=b.module,t=b.klass,r=b.const_set,v=b.regexp,c=b.enc,d=b.truthy,o=b.gvars,p=b.eqeq,k=b.neqeq,l=b.defs,z=b.slice,y=b.extract_kwargs,A=b.ensure_kwargs,s=b.hash_get,i=b.send,e=b.def,q=b.not,h=b.rb_plus,f=b.rb_minus,u=b.rb_ge,j=b.rb_lt,w=b.send2,x=b.find_super,n=[],a=b.nil,g=b.$$$;return b.add_stubs('attr_reader,empty?,=~,start_with?,freeze,==,[],!=,nil?,match,find,raise,message,encoding,recognize_encoding,force_encoding,encode,to_s,source=,open,read,frozen?,dup,reencode_string,class,valid_encoding?,name,raw_source=,gsub,!,ascii_only?,is_a?,size,begin,line_index_for_position,line_begins,+,-,to_a,lines,end_with?,<<,each,chomp!,fetch,source_lines,>=,<,new,source,source_range,private,index,bsearch,[]=,method_defined?,bsearch_index'),function(B,C){var D=m(B,'Parser'),n=[D].concat(C);return function(B,C){var D=m(B,'Source'),n=[D].concat(C);return function(F,D,E){var m=t(F,D,'Buffer'),C=[m].concat(E),n=b.$r(C),B=m.$$prototype;return B.name=B.source=B.slice_source=B.first_line=B.lines=B.source_range=B.line_begins=B.line_index_for_position=B.line_range=a,m.$attr_reader("name","first_line"),r(C[0],'ENCODING_RE',v([c("[\\s#](en)?coding\\s*[:=]\\s*","ASCII-8BIT"),c("(","ASCII-8BIT"),c("","ASCII-8BIT"),c("(utf8-mac)","ASCII-8BIT"),c("|","ASCII-8BIT"),c("","ASCII-8BIT"),c("([A-Za-z0-9_-]+?)(-unix|-dos|-mac)","ASCII-8BIT"),c("|","ASCII-8BIT"),c("([A-Za-z0-9_-]+)","ASCII-8BIT"),c(")","ASCII-8BIT"),c("","ASCII-8BIT")])),l(m,'$recognize_encoding',function(q){var f,h,t=this,i=a,l=a,e=a,j=a,r=a,m=a,s=a;if(d(q['$empty?']()))return a;if(q['$=~'](/^(.*)\n?(.*\n)?/),f=[(h=o['~'])===a?a:h['$[]'](1),(h=o['~'])===a?a:h['$[]'](2)],i=f[0],l=f[1],f,d(i['$start_with?'](c("\xEF\xBB\xBF","ASCII-8BIT").$freeze())))return g(n('Encoding'),'UTF_8');if(p(i['$[]'](0,2),c("#!","ASCII-8BIT").$freeze())?e=l:e=i,d(e['$nil?']())||k(e['$[]'](0),c("#","ASCII-8BIT")))return a;if(d(j=n('ENCODING_RE').$match(e)))try{return n('Encoding').$find(d(r=d(m=j['$[]'](3))?m:j['$[]'](4))?r:j['$[]'](6))}catch(a){if(b.rescue(a,[n('ArgumentError')])){s=a;try{return t.$raise(g(n('Parser'),'UnknownEncodingInMagicComment'),s.$message())}finally{b.pop_exception(a)}}else throw a}else return a}),l(m,'$reencode_string',function(b){var f=this,e=a,c=a;return e=b.$encoding(),c=f.$recognize_encoding(b.$force_encoding(g(n('Encoding'),'BINARY'))),d(c['$nil?']())?b.$force_encoding(e):p(c,g(n('Encoding'),'BINARY'))?b:b.$force_encoding(c).$encode(g(n('Encoding'),'UTF_8'))}),e(m,'$initialize',function(j,l,m){var g,h,e,c,f,b=this;return g=z(arguments,1),h=y(g),h=A(h),g.length>0&&(e=g.shift()),e==null&&(e=1),c=s(h,"source"),c==null&&(c=a),b.name=j.$to_s(),b.source=a,b.first_line=e,b.lines=a,b.line_begins=a,b.slice_source=a,b.line_index_for_position=new Map,d(c)?(f=[c],i(b,'source=',f),f[f.length-1]):a},-2),e(m,'$read',function(){var b=this;return i(n('File'),'open',[b.name,c("rb","ASCII-8BIT")],function d(c){var b,e=d.$$s==null?this:d.$$s;return c==null&&(c=a),(b=[c.$read()],i(e,'source=',b),b[b.length-1])},{$$s:b}),b}),e(m,'$source',function(){var a=this;return d(a.source['$nil?']())&&a.$raise(n('RuntimeError'),c("Cannot extract source from uninitialized Source::Buffer","ASCII-8BIT")),a.source}),e(m,'$source=',function(a){var b,e=this;return d(a['$frozen?']())&&(a=a.$dup()),a=e.$class().$reencode_string(a),d(a['$valid_encoding?']())||e.$raise(n('EncodingError'),c("invalid byte sequence in ","ASCII-8BIT")+a.$encoding().$name()),(b=[a],i(e,'raw_source=',b),b[b.length-1])}),e(m,'$raw_source=',function(e){var b=this;return d(b.source)&&b.$raise(n('ArgumentError'),c("Source::Buffer is immutable","ASCII-8BIT")),b.source=e.$gsub(c("\r\n","ASCII-8BIT").$freeze(),c("\n","ASCII-8BIT").$freeze()).$freeze(),q(b.source['$ascii_only?']())&&k(b.source.$encoding(),g(n('Encoding'),'UTF_32LE'))&&k(b.source.$encoding(),g(n('Encoding'),'BINARY'))?b.slice_source=b.source.$encode(g(n('Encoding'),'UTF_32LE')):a}),e(m,'$slice',function(c,b){var e=this;return b==null&&(b=a),d(b['$nil?']())&&(d(c['$is_a?'](g('Range')))?(b=c.$size(),c=c.$begin()):b=1),d(e.slice_source['$nil?']())?e.source['$[]'](c,b):e.slice_source['$[]'](c,b).$encode(e.source.$encoding())},-2),e(m,'$decompose_position',function(d){var b=this,c=a,e=a;return c=b.$line_index_for_position(d),e=b.$line_begins()['$[]'](c),[h(b.first_line,c),f(d,e)]}),e(m,'$line_for_position',function(b){var a=this;return h(a.$line_index_for_position(b),a.first_line)}),e(m,'$column_for_position',function(b){var c=this,d=a;return d=c.$line_index_for_position(b),f(b,c.$line_begins()['$[]'](d))}),e(m,'$source_lines',function(){var b=this,f=a,e=a;return b.lines=d(f=b.lines)?f:(e=b.source.$lines().$to_a(),d(b.source['$end_with?'](c("\n","ASCII-8BIT").$freeze()))?e['$<<'](c("","ASCII-8BIT").$dup()):a,i(e,'each',[],function(b){return b==null&&(b=a),b['$chomp!'](c("\n","ASCII-8BIT").$freeze()),b.$freeze()}),e.$freeze())}),e(m,'$source_line',function(b){var a=this;return a.$source_lines().$fetch(f(b,a.first_line)).$dup()}),e(m,'$line_range',function(g){var b=this,e=a;return e=f(g,b.first_line),d(j(e,0))||d(u(h(e,1),b.$line_begins().$size()))?b.$raise(n('IndexError'),c("Parser::Source::Buffer: range for line ","ASCII-8BIT")+(""+g+c(" requested, valid line numbers are ","ASCII-8BIT")+b.first_line+c("..","ASCII-8BIT"))+(""+f(h(b.first_line,b.$line_begins().$size()),2))):n('Range').$new(b,b.$line_begins()['$[]'](e),f(b.$line_begins()['$[]'](h(e,1)),1))}),e(m,'$source_range',function(){var b=this,c=a;return b.source_range=d(c=b.source_range)?c:n('Range').$new(b,0,b.$source().$size())}),e(m,'$last_line',function(){var a=this;return f(h(a.$line_begins().$size(),a.first_line),2)}),e(m,'$freeze',function c(){var d=c.$$p||a,b=this;return c.$$p=null,b.$source_lines(),b.$line_begins(),b.$source_range(),w(b,x(b,'freeze',c,!1,!0),'freeze',[],d)}),e(m,'$inspect',function(){var a=this;return c("#<","ASCII-8BIT")+a.$class()+c(" ","ASCII-8BIT")+a.$name()+c(">","ASCII-8BIT")}),m.$private(),e(m,'$line_begins',function(){var e=this,g=a,f=a,b=a;return e.line_begins=d(g=e.line_begins)?g:function(){return f=[0],b=0,function(){while(d(b=e.source.$index(c("\n","ASCII-8BIT").$freeze(),b)))b=h(b,1),f['$<<'](b);return a}(),f['$<<'](h(e.source.$size(),1)),f}()}),e(m,'$line_index_for_position',function(c){var b=this,g=a,e=a;return d(g=b.line_index_for_position['$[]'](c))?g:(e=f(b.$bsearch(b.$line_begins(),c),1),d(b.line_index_for_position['$frozen?']())||b.line_index_for_position['$[]='](c,e),e)}),d(n('Array')['$method_defined?']("bsearch_index"))?e(m,'$bsearch',function(b,e){var c=a;return d(c=i(b,'bsearch_index',[],function(b){return b==null&&(b=a),j(e,b)}))?c:f(b.$size(),1)}):e(m,'$bsearch',function(e,h){var g=this,c=a;return g.line_range=d(c=g.line_range)?c:b.Range.$new(0,e.$size(),!0),d(c=i(g.line_range,'bsearch',[],function(b){return b==null&&(b=a),j(h,e['$[]'](b))}))?c:f(e.$size(),1)})}(n[0],null,n)}(n[0],n)}(n[0],n)},Opal.modules["parser/source/range"]=function(b){var l=b.module,q=b.klass,c=b.truthy,p=b.rb_lt,a=b.def,i=b.rb_minus,o=b.alias,m=b.neqeq,n=b.slice,t=b.to_ary,e=b.rb_plus,j=b.ensure_kwargs,f=b.hash_get,g=b.rb_ge,r=b.rb_times,s=b.eqeq,k=[],d=b.nil,h=b.$$$;return b.add_stubs('include,attr_reader,<,raise,nil?,freeze,with,-,size,line_for_position,alias_method,column_for_position,!=,line,last_line,inspect,column,last_column,source_line,slice,include?,source,to_a,begin_pos,end_pos,decompose_position,join,name,+,new,min,max,disjoint?,empty?,>=,!,<=>,contains?,overlaps?,==,*,source_buffer,is_a?,nonzero?,hash'),function(u,v){var w=l(u,'Parser'),k=[w].concat(v);return function(u,v){var w=l(u,'Source'),k=[w].concat(v);return function(y,v,w){var k=q(y,v,'Range'),x=[k].concat(w),l=b.$r(x),u=k.$$prototype;return u.begin_pos=u.end_pos=u.source_buffer=d,k.$include(l('Comparable')),k.$attr_reader("source_buffer"),k.$attr_reader("begin_pos","end_pos"),a(k,'$initialize',function(d,e,f){var b,a=this;return c(p(f,e))&&a.$raise(l('ArgumentError'),"Parser::Source::Range: end_pos must not be less than begin_pos"),c(d['$nil?']())&&a.$raise(l('ArgumentError'),"Parser::Source::Range: source_buffer must not be nil"),a.source_buffer=d,b=[e,f],a.begin_pos=b[0],a.end_pos=b[1],b,a.$freeze()}),a(k,'$begin',function(){var a=this;return a.$with(new Map([["end_pos",a.begin_pos]]))}),a(k,'$end',function(){var a=this;return a.$with(new Map([["begin_pos",a.end_pos]]))}),a(k,'$size',function(){var a=this;return i(a.end_pos,a.begin_pos)}),o(k,"length","size"),a(k,'$line',function(){var a=this;return a.source_buffer.$line_for_position(a.begin_pos)}),k.$alias_method("first_line","line"),a(k,'$column',function(){var a=this;return a.source_buffer.$column_for_position(a.begin_pos)}),a(k,'$last_line',function(){var a=this;return a.source_buffer.$line_for_position(a.end_pos)}),a(k,'$last_column',function(){var a=this;return a.source_buffer.$column_for_position(a.end_pos)}),a(k,'$column_range',function(){var a=this;return m(a.$line(),a.$last_line())&&a.$raise(l('RangeError'),""+a.$inspect()+" spans more than one line"),b.Range.$new(a.$column(),a.$last_column(),!0)}),a(k,'$source_line',function(){var a=this;return a.source_buffer.$source_line(a.$line())}),a(k,'$source',function(){var a=this;return a.source_buffer.$slice(a.begin_pos,i(a.end_pos,a.begin_pos))}),a(k,'$is?',function(e){var a,b,c=this;return a=n(arguments),b=a,b['$include?'](c.$source())},-1),a(k,'$to_a',function(){var a=this;return b.Range.$new(a.begin_pos,a.end_pos,!0).$to_a()}),a(k,'$to_range',function(){var a=this;return b.Range.$new(a.$begin_pos(),a.$end_pos(),!0)}),a(k,'$to_s',function(){var a,b,c=this,f=d,g=d;return b=c.source_buffer.$decompose_position(c.begin_pos),a=t(b),f=a[0]==null?d:a[0],g=a[1]==null?d:a[1],b,[c.source_buffer.$name(),f,e(g,1)].$join(":")}),a(k,'$with',function(a){var b,c,d=this;return a=j(a),b=f(a,"begin_pos"),b==null&&(b=d.begin_pos),c=f(a,"end_pos"),c==null&&(c=d.end_pos),l('Range').$new(d.source_buffer,b,c)},-1),a(k,'$adjust',function(a){var b,c,d=this;return a=j(a),b=f(a,"begin_pos"),b==null&&(b=0),c=f(a,"end_pos"),c==null&&(c=0),l('Range').$new(d.source_buffer,e(d.begin_pos,b),e(d.end_pos,c))},-1),a(k,'$resize',function(b){var a=this;return a.$with(new Map([["end_pos",e(a.begin_pos,b)]]))}),a(k,'$join',function(b){var a=this;return l('Range').$new(a.source_buffer,[a.begin_pos,b.$begin_pos()].$min(),[a.end_pos,b.$end_pos()].$max())}),a(k,'$intersect',function(b){var a=this;return c(a['$disjoint?'](b))?d:l('Range').$new(a.source_buffer,[a.begin_pos,b.$begin_pos()].$max(),[a.end_pos,b.$end_pos()].$min())}),a(k,'$disjoint?',function(a){var b=this,e=d;return c(b['$empty?']())&&c(a['$empty?']())?b.begin_pos['$!='](a.$begin_pos()):c(e=g(b.begin_pos,a.$end_pos()))?e:g(a.$begin_pos(),b.end_pos)}),a(k,'$overlaps?',function(a){var b=this;return b['$disjoint?'](a)['$!']()}),a(k,'$contains?',function(a){var b=this;return g(e(a.$begin_pos()['$<=>'](b.begin_pos),b.end_pos['$<=>'](a.$end_pos())),c(a['$empty?']())?2:1)}),a(k,'$contained?',function(a){var b=this;return a['$contains?'](b)}),a(k,'$crossing?',function(a){var b=this;return!!c(b['$overlaps?'](a))&&r(b.begin_pos['$<=>'](a.$begin_pos()),b.end_pos['$<=>'](a.$end_pos()))['$=='](1)}),a(k,'$empty?',function(){var a=this;return a.begin_pos['$=='](a.end_pos)}),a(k,'$<=>',function(a){var b=this,e=d;return c(a['$is_a?'](h(h(h('Parser'),'Source'),'Range')))&&s(b.source_buffer,a.$source_buffer())?c(e=b.begin_pos['$<=>'](a.$begin_pos())['$nonzero?']())?e:b.end_pos['$<=>'](a.$end_pos()):d}),k.$alias_method("eql?","=="),a(k,'$hash',function(){var a=this;return[a.source_buffer,a.begin_pos,a.end_pos].$hash()}),a(k,'$inspect',function(){var a=this;return"#"})}(k[0],null,k)}(k[0],k)}(k[0],k)},Opal.modules["parser/source/comment"]=function(a){var h=a.module,i=a.klass,e=a.defs,c=a.def,f=a.truthy,g=[],b=a.nil,d=a.$$$;return a.add_stubs('attr_reader,alias_method,new,associate,associate_locations,associate_by_identity,freeze,source,start_with?,text,==,type,is_a?,location,to_s,expression,inspect'),function(j,k){var l=h(j,'Parser'),g=[l].concat(k);return function(j,k){var l=h(j,'Source'),g=[l].concat(k);return function(j,k,l){var g=i(j,k,'Comment'),m=[g].concat(l),h=a.$r(m),n=g.$$prototype;return n.location=b,g.$attr_reader("text"),g.$attr_reader("location"),g.$alias_method("loc","location"),e(g,'$associate',function(c,d){var a=b;return a=h('Associator').$new(c,d),a.$associate()}),e(g,'$associate_locations',function(c,d){var a=b;return a=h('Associator').$new(c,d),a.$associate_locations()}),e(g,'$associate_by_identity',function(c,d){var a=b;return a=h('Associator').$new(c,d),a.$associate_by_identity()}),c(g,'$initialize',function(b){var a=this;return a.location=d(d(h('Parser'),'Source'),'Map').$new(b),a.text=b.$source().$freeze(),a.$freeze()}),c(g,'$type',function(){var a=this;return f(a.$text()['$start_with?']("#".$freeze()))?"inline":f(a.$text()['$start_with?']("=begin".$freeze()))?"document":b}),c(g,'$inline?',function(){var a=this;return a.$type()['$==']("inline")}),c(g,'$document?',function(){var a=this;return a.$type()['$==']("document")}),c(g,'$==',function(a){var e=this,c=b;return f(c=a['$is_a?'](d(h('Source'),'Comment')))?e.location['$=='](a.$location()):c}),c(g,'$inspect',function(){var a=this;return"#"})}(g[0],null,g)}(g[0],g)}(g[0],g)},Opal.modules["parser/source/comment/associator"]=function(c){var l=c.module,n=c.klass,d=c.def,j=c.const_set,b=c.truthy,e=c.send,h=c.eqeq,g=c.rb_le,m=c.rb_plus,f=c.not,k=[],a=c.nil,i=c.$$$;return c.add_stubs('attr_accessor,do_associate,private,freeze,[],include?,type,sort_by,compact,children,begin_pos,expression,loc,select,is_a?,new,[]=,==,compare_by_identity,advance_comment,advance_through_directives,visit,process_leading_comments,location,<=,line,last_line,each,children_in_source_order,process_trailing_comments,current_comment_before?,associate_and_advance_comment,current_comment_before_end?,current_comment_decorates?,+,!,end_pos,<<,start_with?,text,=~'),function(o,p){var q=l(o,'Parser'),k=[q].concat(p);return function(o,p){var q=l(o,'Source'),k=[q].concat(p),r=c.$r(k);return function(s,q,r){var k=n(s,q,'Associator'),p=[k].concat(r),o=c.$r(p),l=k.$$prototype;return l.map_using=l.mapping=l.skip_directives=l.ast=l.current_comment=l.comment_num=l.comments=a,k.$attr_accessor("skip_directives"),d(k,'$initialize',function(b,c){var a=this;return a.ast=b,a.comments=c,a.skip_directives=!0}),d(k,'$associate',function(){var a=this;return a.map_using="eql",a.$do_associate()}),d(k,'$associate_locations',function(){var a=this;return a.map_using="location",a.$do_associate()}),d(k,'$associate_by_identity',function(){var a=this;return a.map_using="identity",a.$do_associate()}),k.$private(),j(p[0],'POSTFIX_TYPES',o('Set')['$[]']("if","while","while_post","until","until_post","masgn").$freeze()),d(k,'$children_in_source_order',function(c){return b(o('POSTFIX_TYPES')['$include?'](c.$type()))?e(c.$children().$compact(),'sort_by',[],function(b){return b==null&&(b=a),b.$loc().$expression().$begin_pos()}):e(c.$children(),'select',[],function(c){var d=a,e=a;return c==null&&(c=a),b(d=b(e=c['$is_a?'](i(o('AST'),'Node')))?c.$loc():e)?c.$loc().$expression():d})}),d(k,'$do_associate',function(){var c=this;return c.mapping=e(o('Hash'),'new',[],function(c,d){var b;return c==null&&(c=a),d==null&&(d=a),(b=[d,[]],e(c,'[]=',b),b[b.length-1])}),h(c.map_using,"identity")&&c.mapping.$compare_by_identity(),c.comment_num=-1,c.$advance_comment(),b(c.skip_directives)&&c.$advance_through_directives(),b(c.ast)&&c.$visit(c.ast),c.mapping}),d(k,'$visit',function(d){var c=this,f=a;return c.$process_leading_comments(d),!b(c.current_comment)?a:(f=d.$location(),b(g(c.current_comment.$location().$line(),f.$last_line()))||b(f['$is_a?'](i(o('Map'),'Heredoc'))))?(e(c.$children_in_source_order(d),'each',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),d.$visit(b)},{$$s:c}),c.$process_trailing_comments(d)):a}),d(k,'$process_leading_comments',function(c){var d=this;if(h(c.$type(),"begin"))return a;while(b(d['$current_comment_before?'](c)))d.$associate_and_advance_comment(c)}),d(k,'$process_trailing_comments',function(a){for(var c=this;b(c['$current_comment_before_end?'](a));)c.$associate_and_advance_comment(a);while(b(c['$current_comment_decorates?'](a)))c.$associate_and_advance_comment(a)}),d(k,'$advance_comment',function(){var a=this;return a.comment_num=m(a.comment_num,1),a.current_comment=a.comments['$[]'](a.comment_num)}),d(k,'$current_comment_before?',function(e){var b=this,c=a,d=a;return!f(b.current_comment)&&(c=b.current_comment.$location().$expression(),d=e.$location().$expression(),g(c.$end_pos(),d.$begin_pos()))}),d(k,'$current_comment_before_end?',function(e){var b=this,c=a,d=a;return!f(b.current_comment)&&(c=b.current_comment.$location().$expression(),d=e.$location().$expression(),g(c.$end_pos(),d.$end_pos()))}),d(k,'$current_comment_decorates?',function(b){var a=this;return!f(a.current_comment)&&a.current_comment.$location().$line()['$=='](b.$location().$last_line())}),d(k,'$associate_and_advance_comment',function(c){var b=this,d=a;return d=h(b.map_using,"location")?c.$location():c,b.mapping['$[]'](d)['$<<'](b.current_comment),b.$advance_comment()}),j(p[0],'MAGIC_COMMENT_RE',/^#\s*(-\*-|)\s*(frozen_string_literal|warn_indent|warn_past_scope):.*\1$/),d(k,'$advance_through_directives',function(){var c=this;return b(c.current_comment)&&b(c.current_comment.$text()['$start_with?']("#!".$freeze()))&&c.$advance_comment(),b(c.current_comment)&&b(c.current_comment.$text()['$=~'](o('MAGIC_COMMENT_RE')))&&c.$advance_comment(),b(c.current_comment)&&b(c.current_comment.$text()['$=~'](i(o('Buffer'),'ENCODING_RE')))?c.$advance_comment():a})}(r('Comment'),null,k)}(k[0],k)}(k[0],k)},Opal.modules["parser/source/rewriter"]=function(d){var n=d.module,r=d.klass,f=d.send,j=d.gvars,b=d.def,e=d.rb_minus,h=d.rb_plus,c=d.truthy,l=d.not,k=d.neqeq,i=d.rb_le,o=d.rb_ge,p=d.rb_lt,q=d.const_set,m=[],a=d.nil,g=d.$$$;return d.add_stubs('attr_reader,warn_of_deprecation,class,new,consumer=,lambda,puts,render,append,freeze,begin,end,-,+,in_transaction?,raise,dup,source,each,sort,begin_pos,range,length,[]=,replacement,private,empty?,clobbered_insertion?,!,allow_multiple_insertions?,raise_clobber_error,record_insertion,adjacent_updates?,find,overlaps?,replace_compatible_with_insertion?,merge_actions!,<<,active_queue,adjacent_insertions?,merge_actions,delete,can_merge?,record_replace,active_insertions=,|,active_insertions,active_clobber=,active_clobber,clobbered_position_mask,size,!=,&,<=,end_pos,adjacent_insertion_mask,select,adjacent?,adjacent_position_mask,>=,==,[],all?,intersect,nil?,max,sort_by,push,join,first,max_by,merge_replacements,replace_actions,disjoint?,<,process,extend'),function(s,t){var u=n(s,'Parser'),m=[u].concat(t);return function(s,t){var u=n(s,'Source'),m=[u].concat(t);return function(w,u,v){var m=r(w,u,'Rewriter'),t=[m].concat(v),n=d.$r(t),s=m.$$prototype;return s.diagnostics=s.insert_before_multi_order=s.insert_after_multi_order=s.source_buffer=s.queue=s.clobber=s.insertions=s.pending_queue=s.pending_clobber=s.pending_insertions=a,m.$attr_reader("source_buffer"),m.$attr_reader("diagnostics"),b(m,'$initialize',function(c){var b=this;return b.$class().$warn_of_deprecation(),b.diagnostics=g(n('Diagnostic'),'Engine').$new(),b.diagnostics['$consumer='](f(b,'lambda',[],function(b){return j.stderr==null&&(j.stderr=a),b==null&&(b=a),j.stderr.$puts(b.$render())})),b.source_buffer=c,b.queue=[],b.clobber=0,b.insertions=0,b.insert_before_multi_order=0,b.insert_after_multi_order=0,b.pending_queue=a,b.pending_clobber=a,b.pending_insertions=a}),b(m,'$remove',function(a){var b=this;return b.$append(g(n('Rewriter'),'Action').$new(a,"".$freeze()))}),b(m,'$insert_before',function(a,b){var c=this;return c.$append(g(n('Rewriter'),'Action').$new(a.$begin(),b))}),b(m,'$wrap',function(a,c,d){var b=this;return b.$append(g(n('Rewriter'),'Action').$new(a.$begin(),c)),b.$append(g(n('Rewriter'),'Action').$new(a.$end(),d))}),b(m,'$insert_before_multi',function(b,c){var a=this;return a.insert_before_multi_order=e(a.insert_before_multi_order,1),a.$append(g(n('Rewriter'),'Action').$new(b.$begin(),c,!0,a.insert_before_multi_order))}),b(m,'$insert_after',function(a,b){var c=this;return c.$append(g(n('Rewriter'),'Action').$new(a.$end(),b))}),b(m,'$insert_after_multi',function(b,c){var a=this;return a.insert_after_multi_order=h(a.insert_after_multi_order,1),a.$append(g(n('Rewriter'),'Action').$new(b.$end(),c,!0,a.insert_after_multi_order))}),b(m,'$replace',function(a,b){var c=this;return c.$append(g(n('Rewriter'),'Action').$new(a,b))}),b(m,'$process',function(){var b=this,g=a,i=a;return c(b['$in_transaction?']())&&b.$raise("Do not call "+b.$class()+"#"+"process"+" inside a transaction"),g=0,i=b.source_buffer.$source().$dup(),f(b.queue.$sort(),'each',[],function(b){var c=a,f=a;return b==null&&(b=a),c=h(b.$range().$begin_pos(),g),f=h(c,b.$range().$length()),i['$[]='](d.Range.$new(c,f,!0),b.$replacement()),g=h(g,e(b.$replacement().$length(),b.$range().$length()))}),i}),b(m,'$transaction',function e(){var f=e.$$p||a,b=this;return e.$$p=null,function(){try{return f!==a||b.$raise(""+b.$class()+"#"+"transaction"+" requires block"),c(b['$in_transaction?']())&&b.$raise("Nested transaction is not supported"),b.pending_queue=b.queue.$dup(),b.pending_clobber=b.clobber,b.pending_insertions=b.insertions,d.yieldX(f,[]),b.queue=b.pending_queue,b.clobber=b.pending_clobber,b.insertions=b.pending_insertions,b}finally{b.pending_queue=a,b.pending_clobber=a,b.pending_insertions=a}}()}),m.$private(),b(m,'$append',function(d){var b=this,e=a,h=a,g=a,i=a;if(e=d.$range(),c(e['$empty?']())){if(c(d.$replacement()['$empty?']()))return b;l(d['$allow_multiple_insertions?']())&&c(h=b['$clobbered_insertion?'](e))&&b.$raise_clobber_error(d,[h]),b.$record_insertion(e),c(g=b['$adjacent_updates?'](e))?(h=f(g,'find',[],function f(b){var h=f.$$s==null?this:f.$$s,g=a;return b==null&&(b=a),c(g=b.$range()['$overlaps?'](e))?h['$replace_compatible_with_insertion?'](b,d)['$!']():g},{$$s:b}),c(h)&&b.$raise_clobber_error(d,[h]),b['$merge_actions!'](d,g)):b.$active_queue()['$<<'](d)}else c(i=b['$adjacent_insertions?'](e))&&f(i,'each',[],function g(b){var f=g.$$s==null?this:g.$$s;return b==null&&(b=a),c(e['$overlaps?'](b.$range()))&&l(f['$replace_compatible_with_insertion?'](d,b))?f.$raise_clobber_error(d,[b]):(d=f.$merge_actions(d,[b]),f.$active_queue().$delete(b))},{$$s:b}),c(g=b['$adjacent_updates?'](e))?c(b['$can_merge?'](d,g))?(b.$record_replace(e),b['$merge_actions!'](d,g)):b.$raise_clobber_error(d,g):(b.$record_replace(e),b.$active_queue()['$<<'](d));return b}),b(m,'$record_insertion',function(c){var a,b=this;return a=[b.$active_insertions()['$|'](1['$<<'](c.$begin_pos()))],f(b,'active_insertions=',a),a[a.length-1]}),b(m,'$record_replace',function(c){var a,b=this;return a=[b.$active_clobber()['$|'](b.$clobbered_position_mask(c))],f(b,'active_clobber=',a),a[a.length-1]}),b(m,'$clobbered_position_mask',function(a){return e(1['$<<'](a.$size()),1)['$<<'](a.$begin_pos())}),b(m,'$adjacent_position_mask',function(a){return e(1['$<<'](h(a.$size(),2)),1)['$<<'](e(a.$begin_pos(),1))}),b(m,'$adjacent_insertion_mask',function(a){return e(1['$<<'](h(a.$size(),1)),1)['$<<'](a.$begin_pos())}),b(m,'$clobbered_insertion?',function(e){var d=this,b=a;return b=e.$begin_pos(),k(d.$active_insertions()['$&'](1['$<<'](b)),0)?f(d.$active_queue(),'find',[],function(d){var e=a;return d==null&&(d=a),c(e=i(d.$range().$begin_pos(),b))?i(b,d.$range().$end_pos()):e}):a}),b(m,'$adjacent_insertions?',function(e){var b=this,d=a;return k(b.$active_insertions()['$&'](b.$adjacent_insertion_mask(e)),0)?(d=f(b.$active_queue(),'select',[],function d(b){var g=d.$$s==null?this:d.$$s,f=a;return b==null&&(b=a),c(f=b.$range()['$empty?']())?g['$adjacent?'](e,b.$range()):f},{$$s:b}),c(d['$empty?']()))?a:d:a}),b(m,'$adjacent_updates?',function(c){var b=this;return k(b.$active_clobber()['$&'](b.$adjacent_position_mask(c)),0)?f(b.$active_queue(),'select',[],function d(b){var e=d.$$s==null?this:d.$$s;return b==null&&(b=a),e['$adjacent?'](c,b.$range())},{$$s:b}):a}),b(m,'$replace_compatible_with_insertion?',function(b,d){var f=a,g=a,h=a;return c(f=c(g=o(e(b.$replacement().$length(),b.$range().$size()),d.$range().$size()))?h=e(d.$range().$begin_pos(),b.$range().$begin_pos()):g)?b.$replacement()['$[]'](h,d.$replacement().$length())['$=='](d.$replacement()):f}),b(m,'$can_merge?',function(d,g){var b=a;return b=d.$range(),f(g,'all?',[],function(f){var g=a,h=a,i=a,l=a,k=a,m=a,j=a,n=a;return!!(f==null&&(f=a),g=b.$intersect(f.$range()),c(g['$nil?']()))||(h=e(g.$begin_pos(),b.$begin_pos()),i=e(g.$begin_pos(),f.$range().$begin_pos()),l=[e(f.$range().$length(),i),e(f.$replacement().$length(),i)].$max(),k=[e(b.$length(),h),e(d.$replacement().$length(),h)].$max(),m=c(j=d.$replacement()['$[]'](h,l))?j:"".$freeze(),n=c(j=f.$replacement()['$[]'](i,k))?j:"".$freeze(),m['$=='](n))})}),b(m,'$merge_actions',function(d,e){var h=this,b=a,c=a;return b=f(e.$push(d),'sort_by',[],function(b){return b==null&&(b=a),[b.$range().$begin_pos(),b.$range().$end_pos()]}),c=b.$first().$range().$join(f(b,'max_by',[],function(b){return b==null&&(b=a),b.$range().$end_pos()}).$range()),g(n('Rewriter'),'Action').$new(c,h.$merge_replacements(b))}),b(m,'$merge_actions!',function(c,d){var b=this,e=a;return e=b.$merge_actions(c,d),b.$active_queue().$delete(c),b.$replace_actions(d,e)}),b(m,'$merge_replacements',function(i){var g=a,b=a;return g="".$dup(),b=a,f(i,'each',[],function(f){var j=a,i=a;return f==null&&(f=a),l(b)||c(f.$range()['$disjoint?'](b.$range()))?g['$<<'](f.$replacement()):(j=[h(b.$range().$begin_pos(),b.$replacement().$length()),b.$range().$end_pos()].$max(),i=e(j,f.$range().$begin_pos()),c(p(i,f.$replacement().$size()))&&g['$<<'](f.$replacement()['$[]'](d.Range.$new(i,-1,!1)))),b=f}),g}),b(m,'$replace_actions',function(c,d){var b=this;return f(c,'each',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),d.$active_queue().$delete(b)},{$$s:b}),b.$active_queue()['$<<'](d)}),b(m,'$raise_clobber_error',function(d,e){var c=this,b=a;return b=n('Diagnostic').$new("error","invalid_action",new Map([["action",d]]),d.$range()),c.diagnostics.$process(b),b=n('Diagnostic').$new("note","clobbered",new Map([["action",e['$[]'](0)]]),e['$[]'](0).$range()),c.diagnostics.$process(b),c.$raise(n('ClobberingError'),"Parser::Source::Rewriter detected clobbering")}),b(m,'$in_transaction?',function(){var a=this;return a.pending_queue['$nil?']()['$!']()}),b(m,'$active_queue',function(){var b=this,d=a;return c(d=b.pending_queue)?d:b.queue}),b(m,'$active_clobber',function(){var b=this,d=a;return c(d=b.pending_clobber)?d:b.clobber}),b(m,'$active_insertions',function(){var b=this,d=a;return c(d=b.pending_insertions)?d:b.insertions}),b(m,'$active_clobber=',function(b){var a=this;return c(a.pending_clobber)?a.pending_clobber=b:a.clobber=b}),b(m,'$active_insertions=',function(b){var a=this;return c(a.pending_insertions)?a.pending_insertions=b:a.insertions=b}),b(m,'$adjacent?',function(b,d){var e=a;return c(e=i(b.$begin_pos(),d.$end_pos()))?i(d.$begin_pos(),b.$end_pos()):e}),q(t[0],'DEPRECATION_WARNING',["Parser::Source::Rewriter is deprecated.","Please update your code to use Parser::Source::TreeRewriter instead"].$join("\n").$freeze()),m.$extend(n('Deprecation'))}(m[0],null,m)}(m[0],m)}(m[0],m)},Opal.modules["parser/source/rewriter/action"]=function(a){var d=a.module,h=a.klass,b=a.def,c=a.truthy,e=a.eqeq,f=[],g=a.nil;return a.add_stubs('include,attr_reader,alias_method,freeze,<=>,begin_pos,range,zero?,order,empty?,==,length,inspect'),function(i,j){var k=d(i,'Parser'),f=[k].concat(j);return function(i,j){var k=d(i,'Source'),f=[k].concat(j),l=a.$r(f);return function(m,i,j){var d=h(m,i,'Action'),k=[d].concat(j),l=a.$r(k),f=d.$$prototype;return f.replacement=f.range=g,d.$include(l('Comparable')),d.$attr_reader("range","replacement","allow_multiple_insertions","order"),d.$alias_method("allow_multiple_insertions?","allow_multiple_insertions"),b(d,'$initialize',function(e,b,c,d){var a=this;return b==null&&(b=""),c==null&&(c=!1),d==null&&(d=0),a.range=e,a.replacement=b,a.allow_multiple_insertions=c,a.order=d,a.$freeze()},-2),b(d,'$<=>',function(b){var d=this,a=g;return a=d.$range().$begin_pos()['$<=>'](b.$range().$begin_pos()),!c(a['$zero?']())?a:d.$order()['$<=>'](b.$order())}),b(d,'$to_s',function(){var a=this;return e(a.range.$length(),0)&&c(a.replacement['$empty?']())?"do nothing":e(a.range.$length(),0)?"insert "+a.replacement.$inspect():c(a.replacement['$empty?']())?"remove "+a.range.$length()+" character(s)":"replace "+a.range.$length()+" character(s) with "+a.replacement.$inspect()})}(l('Rewriter'),null,f)}(f[0],f)}(f[0],f)},Opal.modules["parser/source/tree_rewriter"]=function(b){var n=b.module,x=b.klass,i=b.ensure_kwargs,f=b.hash_get,q=b.lambda,h=b.gvars,c=b.def,g=b.eqeq,d=b.truthy,l=b.rb_plus,m=b.send,y=b.return_ivar,j=b.const_set,o=b.eqeqeq,w=b.range,k=b.to_ary,r=b.rb_minus,s=b.rb_gt,t=b.rb_lt,u=b.kwrestargs,v=b.slice,p=[],a=b.nil,e=b.$$$;return b.add_stubs('attr_reader,new,consumer=,puts,render,freeze,check_policy_validity,method,adjust,source_range,empty?,==,source_buffer,raise,combine,action_root,merge!,dup,contract,+,begin_pos,range,end_pos,check_range_validity,moved,to_s,replace,wrap,source,each,ordered_replacements,<<,[],length,join,nested_actions,class,name,action_summary,warn_of_deprecation,insert_before,insert_after,extend,protected,private,as_replacements,===,size,first,map,to_range,inspect,-,values,>,<,trigger_policy,process'),function(z,A){var B=n(z,'Parser'),p=[B].concat(A);return function(z,A){var B=n(z,'Source'),p=[B].concat(A);return function(D,B,C){var n=x(D,B,'TreeRewriter'),A=[n].concat(C),p=b.$r(A),z=n.$$prototype;return z.diagnostics=z.source_buffer=z.enforcer=z.action_root=z.in_transaction=z.policy=a,n.$attr_reader("source_buffer"),n.$attr_reader("diagnostics"),c(n,'$initialize',function(l,c){var d,g,j,b=this,k=a;return c=i(c),d=f(c,"crossing_deletions"),d==null&&(d="accept"),g=f(c,"different_replacements"),g==null&&(g="accept"),j=f(c,"swallowed_insertions"),j==null&&(j="accept"),b.diagnostics=e(p('Diagnostic'),'Engine').$new(),b.diagnostics['$consumer='](q(function(b){return h.stderr==null&&(h.stderr=a),b==null&&(b=a),h.stderr.$puts(b.$render())})),b.source_buffer=l,b.in_transaction=!1,b.policy=new Map([["crossing_deletions",d],["different_replacements",g],["swallowed_insertions",j]]).$freeze(),b.$check_policy_validity(),b.enforcer=b.$method("enforce_policy"),k=b.source_buffer.$source_range().$adjust(new Map([["begin_pos",-1],["end_pos",1]])),b.action_root=e(p('TreeRewriter'),'Action').$new(k,b.enforcer)},-2),c(n,'$empty?',function(){var a=this;return a.action_root['$empty?']()}),c(n,'$merge!',function(b){var a=this;return g(a.$source_buffer(),b.$source_buffer())||a.$raise("TreeRewriter are not for the same source_buffer"),a.action_root=a.action_root.$combine(b.$action_root()),a}),c(n,'$merge',function(a){var b=this;return b.$dup()['$merge!'](a)}),c(n,'$import!',function(k,h){var c,b=this,g=a,j=a,m=a;return h=i(h),c=f(h,"offset"),c==null&&(c=0),d(k['$empty?']())?b:(g=k.$action_root().$contract(),j=e(e(e('Parser'),'Source'),'Range').$new(b.source_buffer,l(g.$range().$begin_pos(),c),l(g.$range().$end_pos(),c)),b.$check_range_validity(j),m=g.$moved(b.source_buffer,c),b.action_root=b.action_root.$combine(m),b)},-2),c(n,'$replace',function(a,b){var c=this;return c.$combine(a,new Map([["replacement",b]]))}),c(n,'$wrap',function(a,b,c){var d=this;return d.$combine(a,new Map([["insert_before",b.$to_s()],["insert_after",c.$to_s()]]))}),c(n,'$remove',function(a){var b=this;return b.$replace(a,"".$freeze())}),c(n,'$insert_before',function(b,c){var d=this;return d.$wrap(b,c,a)}),c(n,'$insert_after',function(b,c){var d=this;return d.$wrap(b,a,c)}),c(n,'$process',function(){var f=this,c=a,d=a,e=a;return c=f.source_buffer.$source(),d=[],e=0,m(f.action_root.$ordered_replacements(),'each',[],function(f,g){return f==null&&(f=a),g==null&&(g=a),d['$<<'](c['$[]'](b.Range.$new(e,f.$begin_pos(),!0)))['$<<'](g),e=f.$end_pos()}),d['$<<'](c['$[]'](b.Range.$new(e,c.$length(),!0))),d.$join()}),c(n,'$as_replacements',function(){var a=this;return a.action_root.$ordered_replacements()}),c(n,'$as_nested_actions',function(){var a=this;return a.action_root.$nested_actions()}),c(n,'$transaction',function f(){var g=f.$$p||a,c=this,h=a,e=a;return f.$$p=null,function(){try{return g!==a||c.$raise(""+c.$class()+"#"+"transaction"+" requires block"),h=c.in_transaction,c.in_transaction=!0,e=c.action_root,b.yieldX(g,[]),e=a,c}finally{d(e)?c.action_root=e:a,c.in_transaction=h}}()}),c(n,'$in_transaction?',y("in_transaction")),c(n,'$inspect',function(){var a=this;return"#<"+a.$class()+" "+a.$source_buffer().$name()+": "+a.$action_summary()+">"}),c(n,'$insert_before_multi',function(b,c){var a=this;return a.$class().$warn_of_deprecation(),a.$insert_before(b,c)}),c(n,'$insert_after_multi',function(b,c){var a=this;return a.$class().$warn_of_deprecation(),a.$insert_after(b,c)}),j(A[0],'DEPRECATION_WARNING',["TreeRewriter#insert_before_multi and insert_before_multi exist only for legacy compatibility.","Please update your code to use `wrap`, `insert_before` or `insert_after` instead."].$join("\n").$freeze()),n.$extend(p('Deprecation')),n.$protected(),n.$attr_reader("action_root"),n.$private(),c(n,'$action_summary',function(){var h=this,b=a,f=a,c=a,e=a;return b=h.$as_replacements(),o(0,f=b.$size())?"empty":(o(w(1,3,!1),f)||(b=b.$first(3),c="…"),e=m(b,'map',[],function(f){var b,h,c=a,e=a;return f==null&&(f=a),h=f,b=k(h),c=b[0]==null?a:b[0],e=b[1]==null?a:b[1],h,d(e['$empty?']())?"-"+c.$to_range():g(c.$size(),0)?"+"+e.$inspect()+"@"+c.$begin_pos():"^"+e.$inspect()+"@"+c.$to_range()},{$$has_top_level_mlhs_arg:!0}),d(c)&&e['$<<'](c),e.$join(", "))}),j(A[0],'ACTIONS',["accept","warn","raise"].$freeze()),c(n,'$check_policy_validity',function(){var c=this,b=a;return b=r(c.policy.$values(),p('ACTIONS')),d(b['$empty?']())?a:c.$raise(p('ArgumentError'),"Invalid policy: "+b.$join(", "))}),c(n,'$combine',function(d,g){var c=this,f=a;return d=c.$check_range_validity(d),f=e(p('TreeRewriter'),'Action').$new(d,c.enforcer,b.to_hash(g)),c.action_root=c.action_root.$combine(f),c}),c(n,'$check_range_validity',function(a){var b=this;return(d(t(a.$begin_pos(),0))||d(s(a.$end_pos(),b.source_buffer.$source().$size())))&&b.$raise(p('IndexError'),"The range "+a.$to_range()+" is outside the bounds of the source"),a}),c(n,'$enforce_policy',function c(e){var i=c.$$p||a,f=this,h=a;return c.$$p=null,g(f.policy['$[]'](e),"accept")?a:d(h=b.yieldX(i,[]))?f.$trigger_policy(e,b.to_hash(h)):a}),j(A[0],'POLICY_TO_LEVEL',new Map([["warn","warning"],["raise","error"]]).$freeze()),c(n,'$trigger_policy',function(o,c){var b,h,q,m,r,j=this,n=a,t=a,l=a,s=a;return c=i(c),b=f(c,"range"),b==null&&(b=j.$raise()),h=f(c,"conflict"),h==null&&(h=a),q=u(c,{range:!0,conflict:!0}),n=d(t=j.policy['$[]'](o))?t:"raise",l=e(p('Parser'),'Diagnostic').$new(p('POLICY_TO_LEVEL')['$[]'](n),o,q,b),j.diagnostics.$process(l),d(h)&&(r=h,m=k(r),b=m[0]==null?a:m[0],s=v(m,1),r,l=e(p('Parser'),'Diagnostic').$new(p('POLICY_TO_LEVEL')['$[]'](n),""+o+"_conflict",q,b,s),j.diagnostics.$process(l)),g(n,"raise")?j.$raise(e(p('Parser'),'ClobberingError'),"Parser::Source::TreeRewriter detected clobbering"):a},-2)}(p[0],null,p)}(p[0],p)}(p[0],p)},Opal.modules["parser/source/tree_rewriter/action"]=function(c){var l=c.module,v=c.klass,q=c.ensure_kwargs,f=c.hash_get,d=c.def,b=c.truthy,e=c.send,o=c.not,j=c.rb_plus,k=c.eqeq,g=c.to_a,m=c.rb_gt,h=c.rb_minus,p=c.rb_ge,u=c.rb_le,r=c.rb_lt,s=c.slice,t=c.neqeq,n=[],a=c.nil,i=c.$$$;return c.add_stubs('attr_reader,freeze,empty?,do_combine,==,<<,begin,concat,flat_map,to_proc,end,!,insert_before,insert_after,replacement,raise,insertion?,with,begin_pos,range,first,children,end_pos,last,new,+,map,moved,protected,swallow,class,merge,place_in_hierarchy,analyse_hierarchy,[],fuse_deletions,combine_children,inject,size,bsearch,bsearch_child_index,>,-,>=,<=>,<=,check_fusible,<,shift,pop,compact!,each,call,call_enforcer_for_merge,!=,select'),function(w,x){var y=l(w,'Parser'),n=[y].concat(x);return function(n,w){var x=l(n,'Source'),y=[x].concat(w),z=c.$r(y);return function(w,x){var l=v(w,x,'Action'),n=l.$$prototype;return n.insert_before=n.insert_after=n.children=n.replacement=n.range=n.enforcer=a,l.$attr_reader("range","replacement","insert_before","insert_after"),d(l,'$initialize',function(j,k,d){var h,i,e,g,b,c=this;return d=q(d),h=f(d,"insert_before"),h==null&&(h=""),i=f(d,"replacement"),i==null&&(i=a),e=f(d,"insert_after"),e==null&&(e=""),g=f(d,"children"),g==null&&(g=[]),b=[j,k,g.$freeze(),h.$freeze(),i,e.$freeze()],c.range=b[0],c.enforcer=b[1],c.children=b[2],c.insert_before=b[3],c.replacement=b[4],c.insert_after=b[5],b,c.$freeze()},-3),d(l,'$combine',function(a){var c=this;return b(a['$empty?']())?c:c.$do_combine(a)}),d(l,'$empty?',function(){var c=this,f=a,d=a,e=a;return b(f=b(d=b(e=c.insert_before['$empty?']())?c.insert_after['$empty?']():e)?c.children['$empty?']():d)?b(d=c.replacement['$=='](a))?d:b(e=c.replacement['$empty?']())?c.range['$empty?']():e:f}),d(l,'$ordered_replacements',function(){var c=this,d=a;return d=[],b(c.insert_before['$empty?']())||d['$<<']([c.range.$begin(),c.insert_before]),b(c.replacement)&&d['$<<']([c.range,c.replacement]),d.$concat(e(c.children,'flat_map',[],"ordered_replacements".$to_proc())),b(c.insert_after['$empty?']())||d['$<<']([c.range.$end(),c.insert_after]),d}),d(l,'$nested_actions',function(){var c=this,d=a;return d=[],(o(c.insert_before['$empty?']())||o(c.insert_after['$empty?']()))&&d['$<<'](["wrap",c.range,c.insert_before,c.insert_after]),b(c.replacement)&&d['$<<'](["replace",c.range,c.replacement]),d.$concat(e(c.children,'flat_map',[],"nested_actions".$to_proc()))}),d(l,'$insertion?',function(){var c=this,e=a,d=a;return b(e=b(d=c.$insert_before()['$empty?']()['$!']())?d:c.$insert_after()['$empty?']()['$!']())?e:b(d=c.$replacement())?c.$replacement()['$empty?']()['$!']():d}),d(l,'$contract',function(){var c=this,d=a;return b(c['$empty?']())&&c.$raise("Empty actions can not be contracted"),b(c['$insertion?']())?c:(d=c.range.$with(new Map([["begin_pos",c.$children().$first().$range().$begin_pos()],["end_pos",c.$children().$last().$range().$end_pos()]])),c.$with(new Map([["range",d]])))}),d(l,'$moved',function(d,c){var b=this,f=a;return f=i(i(i('Parser'),'Source'),'Range').$new(d,j(b.range.$begin_pos(),c),j(b.range.$end_pos(),c)),b.$with(new Map([["range",f],["children",e(b.$children(),'map',[],function(b){return b==null&&(b=a),b.$moved(d,c)})]]))}),l.$protected(),l.$attr_reader("children"),d(l,'$with',function(a){var j,g,d,h,e,i,c=this;return a=q(a),j=f(a,"range"),j==null&&(j=c.range),g=f(a,"enforcer"),g==null&&(g=c.enforcer),d=f(a,"children"),d==null&&(d=c.children),h=f(a,"insert_before"),h==null&&(h=c.insert_before),e=f(a,"replacement"),e==null&&(e=c.replacement),i=f(a,"insert_after"),i==null&&(i=c.insert_after),b(e)&&(d=c.$swallow(d)),c.$class().$new(j,g,new Map([["children",d],["insert_before",h],["replacement",e],["insert_after",i]]))},-1),d(l,'$do_combine',function(a){var b=this;return k(a.$range(),b.range)?b.$merge(a):b.$place_in_hierarchy(a)}),d(l,'$place_in_hierarchy',function(d){var e=this,c=a,f=a;return c=e.$analyse_hierarchy(d),b(c['$[]']("fusible"))?e.$fuse_deletions(d,c['$[]']("fusible"),[].concat(g(c['$[]']("sibbling_left"))).concat(g(c['$[]']("child"))).concat(g(c['$[]']("sibbling_right")))):(f=b(c['$[]']("parent"))?c['$[]']("parent").$do_combine(d):b(c['$[]']("child"))?d.$with(new Map([["children",c['$[]']("child")],["enforcer",e.enforcer]])).$combine_children(d.$children()):d,e.$with(new Map([["children",[].concat(g(c['$[]']("sibbling_left"))).concat([f]).concat(g(c['$[]']("sibbling_right")))]])))}),d(l,'$combine_children',function(b){var c=this;return e(b,'inject',[c],function(b,c){return b==null&&(b=a),c==null&&(c=a),b.$place_in_hierarchy(c)})}),d(l,'$fuse_deletions',function(c,h,i){var j=this,d=a,b=a,f=a;return d=j.$with(new Map([["children",i]])),b=e([c].concat(g(h)),'map',[],"range".$to_proc()).$inject("join"),f=c.$with(new Map([["range",b]])),d.$do_combine(f)}),d(l,'$bsearch_child_index',function g(d){var j=g.$$p||a,h=this,f=a,i=a;return g.$$p=null,d==null&&(d=0),f=h.children.$size(),b(i=e(c.Range.$new(d,f,!0),'bsearch',[],function e(b){var d=e.$$s==null?this:e.$$s;return d.children==null&&(d.children=a),b==null&&(b=a),c.yield1(j,d.children['$[]'](b))},{$$s:h}))?i:f},-1),d(l,'$analyse_hierarchy',function(w){var d=this,i=a,f=a,v=a,g=a,q=a,s=a,o=a,n=a,l=a,t=a;switch(i=w.$range(),f=e(d,'bsearch_child_index',[],function(b){return b==null&&(b=a),m(b.$range().$end_pos(),i.$begin_pos())}),v=k(f,0)?0:h(f,1),g=e(d,'bsearch_child_index',[v],function(b){return b==null&&(b=a),p(b.$range().$begin_pos(),i.$end_pos())}),q=h(g,f),q.valueOf()){case 0:break;case-1:f=h(f,1),g=j(g,1),s=d.children['$[]'](f);break;default:o=d.children['$[]'](f).$range().$begin_pos()['$<=>'](i.$begin_pos()),n=d.children['$[]'](h(g,1)).$range().$end_pos()['$<=>'](i.$end_pos()),k(q,1)&&b(u(o,0))&&b(p(n,0))?s=d.children['$[]'](f):(l=d.children['$[]'](c.Range.$new(f,g,!0)),t=d.$check_fusible(w,b(r(o,0))?l.$shift():a,b(m(n,0))?l.$pop():a))}return new Map([["parent",s],["sibbling_left",d.children['$[]'](c.Range.$new(0,f,!0))],["sibbling_right",d.children['$[]'](c.Range.$new(g,d.children.$size(),!0))],["fusible",t],["child",l]])}),d(l,'$check_fusible',function(d,i){var f,c,g=this;return f=s(arguments,1),c=f,c['$compact!'](),b(c['$empty?']())?a:(e(c,'each',[],function g(c){var f=g.$$s==null?this:g.$$s,h=a;return f.enforcer==null&&(f.enforcer=a),c==null&&(c=a),h=b(d['$insertion?']())||b(c['$insertion?']())?"crossing_insertions":"crossing_deletions",e(f.enforcer,'call',[h],function(){return new Map([["range",d.$range()],["conflict",c.$range()]])})},{$$s:g}),c)},-2),d(l,'$merge',function(c){var d=this,e=a;return d.$call_enforcer_for_merge(c),d.$with(new Map([["insert_before",""+c.$insert_before()+d.$insert_before()],["replacement",b(e=c.$replacement())?e:d.replacement],["insert_after",""+d.$insert_after()+c.$insert_after()]])).$combine_children(c.$children())}),d(l,'$call_enforcer_for_merge',function(c){var d=this;return e(d.enforcer,'call',["different_replacements"],function e(){var d=e.$$s==null?this:e.$$s;return d.replacement==null&&(d.replacement=a),d.range==null&&(d.range=a),b(d.replacement)&&b(c.$replacement())&&t(d.replacement,c.$replacement())?new Map([["range",d.range],["replacement",c.$replacement()],["other_replacement",d.replacement]]):a},{$$s:d})}),d(l,'$swallow',function(d){var c=this;return e(c.enforcer,'call',["swallowed_insertions"],function g(){var c=g.$$s==null?this:g.$$s,f=a;return c.range==null&&(c.range=a),f=e(d,'select',[],"insertion?".$to_proc()),b(f['$empty?']())?a:new Map([["range",c.range],["conflict",e(f,'map',[],"range".$to_proc())]])},{$$s:c}),[]})}(z('TreeRewriter'),null)}(n[0],n)}(n[0],n)},Opal.modules["parser/source/map"]=function(b){var g=b.module,h=b.klass,e=b.assign_ivar,a=b.def,l=b.send2,m=b.find_super,d=b.send,i=b.truthy,j=b.eqeq,k=b.range,f=[],c=b.nil;return b.add_stubs('attr_reader,freeze,line,alias_method,column,last_line,last_column,with,update_expression,==,class,reduce,map,instance_variables,instance_variable_get,send,inject,to_sym,[]=,[],protected,tap,dup,to_proc'),function(f,n){var o=g(f,'Parser'),b=[o].concat(n);return function(b,f){var n=g(b,'Source'),o=[n].concat(f);return function(g,n){var b=h(g,n,'Map'),f=b.$$prototype;return f.node=f.expression=c,b.$attr_reader("node"),b.$attr_reader("expression"),a(b,'$initialize',e("expression")),a(b,'$initialize_copy',function a(d){var e=a.$$p||c,b=this;return a.$$p=null,l(b,m(b,'initialize_copy',a,!1,!0),'initialize_copy',[d],e),b.node=c}),a(b,'$node=',function(b){var a=this;return a.node=b,a.$freeze(),a.node}),a(b,'$line',function(){var a=this;return a.expression.$line()}),b.$alias_method("first_line","line"),a(b,'$column',function(){var a=this;return a.expression.$column()}),a(b,'$last_line',function(){var a=this;return a.expression.$last_line()}),a(b,'$last_column',function(){var a=this;return a.expression.$last_column()}),a(b,'$with_expression',function(a){var b=this;return d(b,'with',[],function(b){return b==null&&(b=c),b.$update_expression(a)})}),a(b,'$==',function(b){var a=this,e=c;return i(e=b.$class()['$=='](a.$class()))?d(a.$instance_variables(),'map',[],function d(a){var e=d.$$s==null?this:d.$$s;return a==null&&(a=c),e.$instance_variable_get(a)['$=='](b.$send("instance_variable_get",a))},{$$s:a}).$reduce("&"):e}),a(b,'$to_hash',function(){var a=this;return d(a.$instance_variables(),'inject',[new Map],function d(a,b){var e=d.$$s==null?this:d.$$s;return a==null&&(a=c),b==null&&(b=c),j(b.$to_sym(),"@node")?a:(a['$[]='](b['$[]'](k(1,-1,!1)).$to_sym(),e.$instance_variable_get(b)),a)},{$$s:a})}),b.$protected(),a(b,'$with',function a(){var b=a.$$p||c,e=this;return a.$$p=null,d(e.$dup(),'tap',[],b.$to_proc())}),a(b,'$update_expression',e("expression"))}(o[0],null)}(b[0],b)}(f[0],f)},Opal.modules["parser/source/map/operator"]=function(a){var b=a.module,d=a.klass,e=a.send2,f=a.find_super,g=a.def,c=[],h=a.nil;return a.add_stubs('attr_reader'),function(i,j){var k=b(i,'Parser'),c=[k].concat(j);return function(i,j){var k=b(i,'Source'),l=[k].concat(j),c=a.$r(l);return function(b,c){var a=d(b,c,'Operator');return a.$attr_reader("operator"),g(a,'$initialize',function a(c,d){var g=a.$$p||h,b=this;return a.$$p=null,b.operator=c,e(b,f(b,'initialize',a,!1,!0),'initialize',[d],null)})}(c('Map'),c('Map'))}(c[0],c)}(c[0],c)},Opal.modules["parser/source/map/collection"]=function(a){var b=a.module,d=a.klass,e=a.send2,f=a.find_super,g=a.def,c=[],h=a.nil;return a.add_stubs('attr_reader'),function(i,j){var k=b(i,'Parser'),c=[k].concat(j);return function(i,j){var k=b(i,'Source'),l=[k].concat(j),c=a.$r(l);return function(b,c){var a=d(b,c,'Collection');return a.$attr_reader("begin"),a.$attr_reader("end"),g(a,'$initialize',function c(d,g,i){var b,j=c.$$p||h,a=this;return c.$$p=null,b=[d,g],a.begin=b[0],a.end=b[1],b,e(a,f(a,'initialize',c,!1,!0),'initialize',[i],null)})}(c('Map'),c('Map'))}(c[0],c)}(c[0],c)},Opal.modules["parser/source/map/constant"]=function(a){var c=a.module,i=a.klass,j=a.send2,f=a.find_super,b=a.def,g=a.send,h=a.assign_ivar,d=[],e=a.nil;return a.add_stubs('attr_reader,with,update_operator,protected'),function(k,l){var m=c(k,'Parser'),d=[m].concat(l);return function(k,l){var m=c(k,'Source'),n=[m].concat(l),d=a.$r(n);return function(c,d){var a=i(c,d,'Constant');return a.$attr_reader("double_colon"),a.$attr_reader("name"),a.$attr_reader("operator"),b(a,'$initialize',function c(d,g,h){var b,i=c.$$p||e,a=this;return c.$$p=null,b=[d,g],a.double_colon=b[0],a.name=b[1],b,j(a,f(a,'initialize',c,!1,!0),'initialize',[h],null)}),b(a,'$with_operator',function(a){var b=this;return g(b,'with',[],function(b){return b==null&&(b=e),b.$update_operator(a)})}),a.$protected(),b(a,'$update_operator',h("operator"))}(d('Map'),d('Map'))}(d[0],d)}(d[0],d)},Opal.modules["parser/source/map/variable"]=function(a){var c=a.module,i=a.klass,j=a.send2,f=a.find_super,b=a.def,g=a.send,h=a.assign_ivar,d=[],e=a.nil;return a.add_stubs('attr_reader,with,update_operator,protected'),function(k,l){var m=c(k,'Parser'),d=[m].concat(l);return function(k,l){var m=c(k,'Source'),n=[m].concat(l),d=a.$r(n);return function(c,d){var a=i(c,d,'Variable');return a.$attr_reader("name"),a.$attr_reader("operator"),b(a,'$initialize',function a(d,b){var g=a.$$p||e,c=this;return a.$$p=null,b==null&&(b=d),c.name=d,j(c,f(c,'initialize',a,!1,!0),'initialize',[b],null)},-2),b(a,'$with_operator',function(a){var b=this;return g(b,'with',[],function(b){return b==null&&(b=e),b.$update_operator(a)})}),a.$protected(),b(a,'$update_operator',h("operator"))}(d('Map'),d('Map'))}(d[0],d)}(d[0],d)},Opal.modules["parser/source/map/keyword"]=function(a){var b=a.module,d=a.klass,e=a.send2,f=a.find_super,g=a.def,c=[],h=a.nil;return a.add_stubs('attr_reader'),function(i,j){var k=b(i,'Parser'),c=[k].concat(j);return function(i,j){var k=b(i,'Source'),l=[k].concat(j),c=a.$r(l);return function(b,c){var a=d(b,c,'Keyword');return a.$attr_reader("keyword"),a.$attr_reader("begin"),a.$attr_reader("end"),g(a,'$initialize',function c(j,d,g,i){var b,k=c.$$p||h,a=this;return c.$$p=null,a.keyword=j,b=[d,g],a.begin=b[0],a.end=b[1],b,e(a,f(a,'initialize',c,!1,!0),'initialize',[i],null)})}(c('Map'),c('Map'))}(c[0],c)}(c[0],c)},Opal.modules["parser/source/map/definition"]=function(a){var b=a.module,e=a.klass,f=a.send2,g=a.find_super,h=a.def,c=[],d=a.nil;return a.add_stubs('attr_reader,join'),function(i,j){var k=b(i,'Parser'),c=[k].concat(j);return function(i,j){var k=b(i,'Source'),l=[k].concat(j),c=a.$r(l);return function(c,i){var a=e(c,i,'Definition'),b=a.$$prototype;return b.keyword=b.end=d,a.$attr_reader("keyword"),a.$attr_reader("operator"),a.$attr_reader("name"),a.$attr_reader("end"),h(a,'$initialize',function b(c,e,h,i){var j=b.$$p||d,a=this;return b.$$p=null,a.keyword=c,a.operator=e,a.name=h,a.end=i,f(a,g(a,'initialize',b,!1,!0),'initialize',[a.keyword.$join(a.end)],null)})}(c('Map'),c('Map'))}(c[0],c)}(c[0],c)},Opal.modules["parser/source/map/method_definition"]=function(a){var c=a.module,i=a.klass,e=a.send2,f=a.find_super,g=a.truthy,h=a.def,d=[],b=a.nil;return a.add_stubs('attr_reader,join'),function(j,k){var l=c(j,'Parser'),d=[l].concat(k);return function(j,k){var l=c(j,'Source'),m=[l].concat(k),d=a.$r(m);return function(c,d){var a=i(c,d,'MethodDefinition'),j=a.$$prototype;return j.keyword=b,a.$attr_reader("keyword"),a.$attr_reader("operator"),a.$attr_reader("name"),a.$attr_reader("end"),a.$attr_reader("assignment"),h(a,'$initialize',function c(i,l,m,h,j,k){var n=c.$$p||b,a=this,d=b;return c.$$p=null,a.keyword=i,a.operator=l,a.name=m,a.end=h,a.assignment=j,e(a,f(a,'initialize',c,!1,!0),'initialize',[a.keyword.$join(g(d=h)?d:k)],null)})}(d('Map'),d('Map'))}(d[0],d)}(d[0],d)},Opal.modules["parser/source/map/send"]=function(a){var c=a.module,i=a.klass,j=a.send2,f=a.find_super,b=a.def,g=a.send,h=a.assign_ivar,d=[],e=a.nil;return a.add_stubs('attr_reader,with,update_operator,protected'),function(k,l){var m=c(k,'Parser'),d=[m].concat(l);return function(k,l){var m=c(k,'Source'),n=[m].concat(l),d=a.$r(n);return function(c,d){var a=i(c,d,'Send');return a.$attr_reader("dot"),a.$attr_reader("selector"),a.$attr_reader("operator"),a.$attr_reader("begin"),a.$attr_reader("end"),b(a,'$initialize',function c(d,k,g,h,i){var b,l=c.$$p||e,a=this;return c.$$p=null,a.dot=d,a.selector=k,b=[g,h],a.begin=b[0],a.end=b[1],b,j(a,f(a,'initialize',c,!1,!0),'initialize',[i],null)}),b(a,'$with_operator',function(a){var b=this;return g(b,'with',[],function(b){return b==null&&(b=e),b.$update_operator(a)})}),a.$protected(),b(a,'$update_operator',h("operator"))}(d('Map'),d('Map'))}(d[0],d)}(d[0],d)},Opal.modules["parser/source/map/index"]=function(a){var d=a.module,i=a.klass,j=a.send2,f=a.find_super,c=a.def,g=a.send,h=a.assign_ivar,e=[],b=a.nil;return a.add_stubs('attr_reader,with,update_operator,protected'),function(k,l){var m=d(k,'Parser'),e=[m].concat(l);return function(k,l){var m=d(k,'Source'),n=[m].concat(l),e=a.$r(n);return function(d,e){var a=i(d,e,'Index');return a.$attr_reader("begin"),a.$attr_reader("end"),a.$attr_reader("operator"),c(a,'$initialize',function d(e,g,h){var c,i=d.$$p||b,a=this;return d.$$p=null,c=[e,g],a.begin=c[0],a.end=c[1],c,a.operator=b,j(a,f(a,'initialize',d,!1,!0),'initialize',[h],null)}),c(a,'$with_operator',function(a){var c=this;return g(c,'with',[],function(c){return c==null&&(c=b),c.$update_operator(a)})}),a.$protected(),c(a,'$update_operator',h("operator"))}(e('Map'),e('Map'))}(e[0],e)}(e[0],e)},Opal.modules["parser/source/map/condition"]=function(a){var b=a.module,d=a.klass,e=a.send2,f=a.find_super,g=a.def,c=[],h=a.nil;return a.add_stubs('attr_reader'),function(i,j){var k=b(i,'Parser'),c=[k].concat(j);return function(i,j){var k=b(i,'Source'),l=[k].concat(j),c=a.$r(l);return function(b,c){var a=d(b,c,'Condition');return a.$attr_reader("keyword"),a.$attr_reader("begin"),a.$attr_reader("else"),a.$attr_reader("end"),g(a,'$initialize',function c(d,k,g,i,j){var b,l=c.$$p||h,a=this;return c.$$p=null,a.keyword=d,b=[k,g,i],a.begin=b[0],a.else=b[1],a.end=b[2],b,e(a,f(a,'initialize',c,!1,!0),'initialize',[j],null)})}(c('Map'),c('Map'))}(c[0],c)}(c[0],c)},Opal.modules["parser/source/map/ternary"]=function(a){var b=a.module,d=a.klass,e=a.send2,f=a.find_super,g=a.def,c=[],h=a.nil;return a.add_stubs('attr_reader'),function(i,j){var k=b(i,'Parser'),c=[k].concat(j);return function(i,j){var k=b(i,'Source'),l=[k].concat(j),c=a.$r(l);return function(b,c){var a=d(b,c,'Ternary');return a.$attr_reader("question"),a.$attr_reader("colon"),g(a,'$initialize',function c(d,g,i){var b,j=c.$$p||h,a=this;return c.$$p=null,b=[d,g],a.question=b[0],a.colon=b[1],b,e(a,f(a,'initialize',c,!1,!0),'initialize',[i],null)})}(c('Map'),c('Map'))}(c[0],c)}(c[0],c)},Opal.modules["parser/source/map/for"]=function(a){var b=a.module,d=a.klass,e=a.send2,f=a.find_super,g=a.def,c=[],h=a.nil;return a.add_stubs('attr_reader'),function(i,j){var k=b(i,'Parser'),c=[k].concat(j);return function(i,j){var k=b(i,'Source'),l=[k].concat(j),c=a.$r(l);return function(b,c){var a=d(b,c,'For');return a.$attr_reader("keyword","in"),a.$attr_reader("begin","end"),g(a,'$initialize',function c(d,k,g,i,j){var a,l=c.$$p||h,b=this;return c.$$p=null,a=[d,k],b.keyword=a[0],b.in=a[1],a,a=[g,i],b.begin=a[0],b.end=a[1],a,e(b,f(b,'initialize',c,!1,!0),'initialize',[j],null)})}(c('Map'),c('Map'))}(c[0],c)}(c[0],c)},Opal.modules["parser/source/map/rescue_body"]=function(a){var b=a.module,d=a.klass,e=a.send2,f=a.find_super,g=a.def,c=[],h=a.nil;return a.add_stubs('attr_reader'),function(i,j){var k=b(i,'Parser'),c=[k].concat(j);return function(i,j){var k=b(i,'Source'),l=[k].concat(j),c=a.$r(l);return function(b,c){var a=d(b,c,'RescueBody');return a.$attr_reader("keyword"),a.$attr_reader("assoc"),a.$attr_reader("begin"),g(a,'$initialize',function b(c,d,g,i){var j=b.$$p||h,a=this;return b.$$p=null,a.keyword=c,a.assoc=d,a.begin=g,e(a,f(a,'initialize',b,!1,!0),'initialize',[i],null)})}(c('Map'),c('Map'))}(c[0],c)}(c[0],c)},Opal.modules["parser/source/map/heredoc"]=function(a){var b=a.module,d=a.klass,e=a.send2,f=a.find_super,g=a.def,c=[],h=a.nil;return a.add_stubs('attr_reader'),function(i,j){var k=b(i,'Parser'),c=[k].concat(j);return function(i,j){var k=b(i,'Source'),l=[k].concat(j),c=a.$r(l);return function(b,c){var a=d(b,c,'Heredoc');return a.$attr_reader("heredoc_body"),a.$attr_reader("heredoc_end"),g(a,'$initialize',function b(c,d,g){var i=b.$$p||h,a=this;return b.$$p=null,a.heredoc_body=d,a.heredoc_end=g,e(a,f(a,'initialize',b,!1,!0),'initialize',[c],null)})}(c('Map'),c('Map'))}(c[0],c)}(c[0],c)},Opal.modules["parser/source/map/objc_kwarg"]=function(a){var b=a.module,d=a.klass,e=a.send2,f=a.find_super,g=a.def,c=[],h=a.nil;return a.add_stubs('attr_reader'),function(i,j){var k=b(i,'Parser'),c=[k].concat(j);return function(i,j){var k=b(i,'Source'),l=[k].concat(j),c=a.$r(l);return function(b,c){var a=d(b,c,'ObjcKwarg');return a.$attr_reader("keyword"),a.$attr_reader("operator"),a.$attr_reader("argument"),g(a,'$initialize',function c(j,d,g,i){var b,k=c.$$p||h,a=this;return c.$$p=null,b=[j,d,g],a.keyword=b[0],a.operator=b[1],a.argument=b[2],b,e(a,f(a,'initialize',c,!1,!0),'initialize',[i],null)})}(c('Map'),c('Map'))}(c[0],c)}(c[0],c)},Opal.modules["parser/syntax_error"]=function(a){var c=a.module,d=a.klass,e=a.send2,f=a.find_super,g=a.def,b=[],h=a.nil;return a.add_stubs('attr_reader,message'),function(i,j){var k=c(i,'Parser'),b=[k].concat(j),l=a.$r(b);return function(b,c){var a=d(b,c,'SyntaxError');return a.$attr_reader("diagnostic"),g(a,'$initialize',function a(c){var d=a.$$p||h,b=this;return a.$$p=null,b.diagnostic=c,e(b,f(b,'initialize',a,!1,!0),'initialize',[c.$message()],null)})}(b[0],l('StandardError'))}(b[0],b)},Opal.modules["parser/clobbering_error"]=function(a){var c=a.module,d=a.klass,b=[],e=a.nil;return function(f,g){var h=c(f,'Parser'),b=[h].concat(g),i=a.$r(b);return d(b[0],i('RuntimeError'),'ClobberingError'),e}(b[0],b)},Opal.modules["parser/unknown_encoding_in_magic_comment_error"]=function(a){var c=a.module,d=a.klass,b=[],e=a.nil;return function(f,g){var h=c(f,'Parser'),b=[h].concat(g),i=a.$r(b);return d(b[0],i('ArgumentError'),'UnknownEncodingInMagicComment'),e}(b[0],b)},Opal.modules["parser/diagnostic"]=function(a){var m=a.module,k=a.klass,q=a.const_set,c=a.truthy,e=a.def,p=a.eqeq,d=a.rb_plus,i=a.rb_minus,r=a.to_ary,l=a.rb_gt,f=a.rb_times,g=a.send,n=a.rb_ge,o=a.not,h=a.neqeq,j=[],b=a.nil;return a.add_stubs('freeze,attr_reader,include?,raise,join,inspect,dup,compile,is?,==,line,last_line,+,message,render_line,first_line_only,last_line_only,-,source_buffer,decompose_position,end_pos,>,private,source_line,*,length,each,line_range,intersect,[]=,column_range,size,>=,!,map,name,!=,resize,=~,source,adjust'),function(s,t){var u=m(s,'Parser'),j=[u].concat(t);return function(w,u,v){var j=k(w,u,'Diagnostic'),t=[j].concat(v),s=a.$r(t),m=j.$$prototype;return m.reason=m.arguments=m.location=m.level=m.highlights=b,q(t[0],'LEVELS',["note","warning","error","fatal"].$freeze()),j.$attr_reader("level","reason","arguments"),j.$attr_reader("location","highlights"),e(j,'$initialize',function(d,h,i,f,e){var a=this,g=b;return e==null&&(e=[]),c(s('LEVELS')['$include?'](d))||a.$raise(s('ArgumentError'),""+("Diagnostic#level must be one of "+s('LEVELS').$join(", ")+"; ")+(""+d.$inspect()+" provided.")),c(f)||a.$raise("Expected a location"),a.level=d,a.reason=h,a.arguments=(c(g=i)?g:new Map).$dup().$freeze(),a.location=f,a.highlights=e.$dup().$freeze(),a.$freeze()},-5),e(j,'$message',function(){var a=this;return s('Messages').$compile(a.reason,a.arguments)}),e(j,'$render',function(){var e,f,a=this,h=b,j=b,g=b,k=b,m=b,n=b;return p(a.location.$line(),a.location.$last_line())||c(a.location['$is?']("\n"))?d([""+a.location+": "+a.level+": "+a.$message()],a.$render_line(a.location)):(h=a.$first_line_only(a.location),j=a.$last_line_only(a.location),g=d(i(a.location.$last_line(),a.location.$line()),1),k=a.location.$source_buffer(),f=k.$decompose_position(a.location.$end_pos()),e=r(f),m=e[0]==null?b:e[0],n=e[1]==null?b:e[1],f,d(d([""+a.location+"-"+m+":"+n+": "+a.level+": "+a.$message()],a.$render_line(h,l(g,2),!1)),a.$render_line(j,!1,!0)))}),j.$private(),e(j,'$render_line',function(a,h,j){var l=this,k=b,e=b;return h==null&&(h=!1),j==null&&(j=!1),k=a.$source_line(),e=f(" ",k.$length()),g(l.highlights,'each',[],function(d){var h,i=b;return d==null&&(d=b),i=a.$source_buffer().$line_range(a.$line()),c(d=d.$intersect(i))?(h=[d.$column_range(),f("~",d.$size())],g(e,'[]=',h),h[h.length-1]):b}),c(a['$is?']("\n"))?e=d(e,"^"):o(j)&&c(n(a.$size(),1))?e['$[]='](a.$column_range(),d("^",f("~",i(a.$size(),1)))):e['$[]='](a.$column_range(),f("~",a.$size())),c(h)&&(e=d(e,"...")),g([k,e],'map',[],function(c){return c==null&&(c=b),""+a.$source_buffer().$name()+":"+a.$line()+": "+c})},-2),e(j,'$first_line_only',function(a){return h(a.$line(),a.$last_line())?a.$resize(a.$source()['$=~'](/\n/)):a}),e(j,'$last_line_only',function(a){return h(a.$line(),a.$last_line())?a.$adjust(new Map([["begin_pos",a.$source()['$=~'](/[^\n]*$/)]])):a})}(j[0],null,j)}(j[0],j)},Opal.modules["parser/diagnostic/engine"]=function(a){var f=a.module,g=a.klass,d=a.def,b=a.truthy,e=[],c=a.nil,h=a.$$$;return a.add_stubs('attr_accessor,ignore?,call,raise?,raise,protected,==,level'),function(i,j){var k=f(i,'Parser'),e=[k].concat(j),l=a.$r(e);return function(m,i,j){var e=g(m,i,'Engine'),k=[e].concat(j),l=a.$r(k),f=e.$$prototype;return f.consumer=f.ignore_warnings=f.all_errors_are_fatal=c,e.$attr_accessor("consumer"),e.$attr_accessor("all_errors_are_fatal"),e.$attr_accessor("ignore_warnings"),d(e,'$initialize',function(a){var b=this;return a==null&&(a=c),b.consumer=a,b.all_errors_are_fatal=!1,b.ignore_warnings=!1},-1),d(e,'$process',function(c){var a=this;return b(a['$ignore?'](c))||b(a.consumer)&&a.consumer.$call(c),b(a['$raise?'](c))&&a.$raise(h(l('Parser'),'SyntaxError'),c),a}),e.$protected(),d(e,'$ignore?',function(d){var e=this,a=c;return b(a=e.ignore_warnings)?d.$level()['$==']("warning"):a}),d(e,'$raise?',function(a){var f=this,d=c,e=c;return b(d=b(e=f.all_errors_are_fatal)?a.$level()['$==']("error"):e)?d:a.$level()['$==']("fatal")})}(l('Diagnostic'),null,e)}(e[0],e)},Opal.modules["parser/static_environment"]=function(b){var h=b.module,i=b.klass,d=b.const_set,a=b.def,e=b.truthy,f=b.send,g=[],c=b.nil;return b.add_stubs('reset,[],push,dup,delete,add,pop,to_sym,include?,declare,declared?,any?,empty?'),function(j,k){var l=h(j,'Parser'),g=[l].concat(k);return function(n,l,m){var h=i(n,l,'StaticEnvironment'),j=[h].concat(m),g=b.$r(j),k=h.$$prototype;return k.stack=k.variables=c,d(j[0],'FORWARD_ARGS',"FORWARD_ARGS"),d(j[0],'ANONYMOUS_RESTARG_IN_CURRENT_SCOPE',"ANONYMOUS_RESTARG_IN_CURRENT_SCOPE"),d(j[0],'ANONYMOUS_RESTARG_INHERITED',"ANONYMOUS_RESTARG_INHERITED"),d(j[0],'ANONYMOUS_KWRESTARG_IN_CURRENT_SCOPE',"ANONYMOUS_KWRESTARG_IN_CURRENT_SCOPE"),d(j[0],'ANONYMOUS_KWRESTARG_INHERITED',"ANONYMOUS_KWRESTARG_INHERITED"),d(j[0],'ANONYMOUS_BLOCKARG_IN_CURRENT_SCOPE',"ANONYMOUS_BLOCKARG_IN_CURRENT_SCOPE"),d(j[0],'ANONYMOUS_BLOCKARG_INHERITED',"ANONYMOUS_BLOCKARG_INHERITED"),a(h,'$initialize',function(){var a=this;return a.$reset()}),a(h,'$reset',function(){var a=this;return a.variables=g('Set')['$[]'](),a.stack=[]}),a(h,'$extend_static',function(){var a=this;return a.stack.$push(a.variables),a.variables=g('Set')['$[]'](),a}),a(h,'$extend_dynamic',function(){var a=this;return a.stack.$push(a.variables),a.variables=a.variables.$dup(),e(a.variables.$delete(g('ANONYMOUS_BLOCKARG_IN_CURRENT_SCOPE')))&&a.variables.$add(g('ANONYMOUS_BLOCKARG_INHERITED')),e(a.variables.$delete(g('ANONYMOUS_RESTARG_IN_CURRENT_SCOPE')))&&a.variables.$add(g('ANONYMOUS_RESTARG_INHERITED')),e(a.variables.$delete(g('ANONYMOUS_KWRESTARG_IN_CURRENT_SCOPE')))&&a.variables.$add(g('ANONYMOUS_KWRESTARG_INHERITED')),a}),a(h,'$unextend',function(){var a=this;return a.variables=a.stack.$pop(),a}),a(h,'$declare',function(b){var a=this;return a.variables.$add(b.$to_sym()),a}),a(h,'$declared?',function(a){var b=this;return b.variables['$include?'](a.$to_sym())}),a(h,'$declare_forward_args',function(){var a=this;return a.$declare(g('FORWARD_ARGS'))}),a(h,'$declared_forward_args?',function(){var a=this;return a['$declared?'](g('FORWARD_ARGS'))}),a(h,'$declare_anonymous_blockarg',function(){var a=this;return a.$declare(g('ANONYMOUS_BLOCKARG_IN_CURRENT_SCOPE'))}),a(h,'$declared_anonymous_blockarg?',function(){var a=this,b=c;return e(b=a['$declared?'](g('ANONYMOUS_BLOCKARG_IN_CURRENT_SCOPE')))?b:a['$declared?'](g('ANONYMOUS_BLOCKARG_INHERITED'))}),a(h,'$declared_anonymous_blockarg_in_current_scpe?',function(){var a=this;return a['$declared?'](g('ANONYMOUS_BLOCKARG_IN_CURRENT_SCOPE'))}),a(h,'$parent_has_anonymous_blockarg?',function(){var a=this;return f(a.stack,'any?',[],function(a){return a==null&&(a=c),a['$include?'](g('ANONYMOUS_BLOCKARG_IN_CURRENT_SCOPE'))})}),a(h,'$declare_anonymous_restarg',function(){var a=this;return a.$declare(g('ANONYMOUS_RESTARG_IN_CURRENT_SCOPE'))}),a(h,'$declared_anonymous_restarg?',function(){var a=this,b=c;return e(b=a['$declared?'](g('ANONYMOUS_RESTARG_IN_CURRENT_SCOPE')))?b:a['$declared?'](g('ANONYMOUS_RESTARG_INHERITED'))}),a(h,'$declared_anonymous_restarg_in_current_scope?',function(){var a=this;return a['$declared?'](g('ANONYMOUS_RESTARG_IN_CURRENT_SCOPE'))}),a(h,'$parent_has_anonymous_restarg?',function(){var a=this;return f(a.stack,'any?',[],function(a){return a==null&&(a=c),a['$include?'](g('ANONYMOUS_RESTARG_IN_CURRENT_SCOPE'))})}),a(h,'$declare_anonymous_kwrestarg',function(){var a=this;return a.$declare(g('ANONYMOUS_KWRESTARG_IN_CURRENT_SCOPE'))}),a(h,'$declared_anonymous_kwrestarg?',function(){var a=this,b=c;return e(b=a['$declared?'](g('ANONYMOUS_KWRESTARG_IN_CURRENT_SCOPE')))?b:a['$declared?'](g('ANONYMOUS_KWRESTARG_INHERITED'))}),a(h,'$declared_anonymous_kwrestarg_in_current_scope?',function(){var a=this;return a['$declared?'](g('ANONYMOUS_KWRESTARG_IN_CURRENT_SCOPE'))}),a(h,'$parent_has_anonymous_kwrestarg?',function(){var a=this;return f(a.stack,'any?',[],function(a){return a==null&&(a=c),a['$include?'](g('ANONYMOUS_KWRESTARG_IN_CURRENT_SCOPE'))})}),a(h,'$empty?',function(){var a=this;return a.stack['$empty?']()})}(g[0],null,g)}(g[0],g)},Opal.modules["parser/lexer-F0"]=function(f){var x=f.klass,e=f.truthy,j=f.send,a=f.rb_minus,g=f.def,k=f.gvars,h=f.eqeq,q=f.const_set,c=f.rb_plus,s=f.to_ary,n=f.rb_le,m=f.rb_gt,t=f.neqeq,b=f.eqeqeq,r=f.range,i=f.rb_ge,l=f.not,o=f.rb_lt,v=f.slice,u=[],w=f.$r(u),d=f.nil,p=f.$$$;return f.add_stubs('attr_accessor,private,_lex_actions=,_lex_trans_keys=,_lex_key_spans=,_lex_index_offsets=,_lex_indicies=,_lex_trans_targs=,_lex_trans_actions=,_lex_to_state_actions=,_lex_from_state_actions=,_lex_eof_trans=,lex_start=,lex_error=,lex_en_expr_variable=,lex_en_expr_fname=,lex_en_expr_endfn=,lex_en_expr_dot=,lex_en_expr_arg=,lex_en_expr_cmdarg=,lex_en_expr_endarg=,lex_en_expr_mid=,lex_en_expr_beg=,lex_en_expr_labelarg=,lex_en_expr_value=,lex_en_expr_end=,lex_en_leading_dot=,lex_en_line_comment=,lex_en_line_begin=,lex_en_inside_string=,attr_reader,respond_to?,class,send,lambda,emit,Rational,Complex,-,construct_float,reset,Float,lex_en_line_begin,new,source,==,encoding,unpack,[],source_buffer=,source_pts=,lex_en_expr_dot,lex_en_expr_fname,lex_en_expr_value,lex_en_expr_beg,lex_en_expr_mid,lex_en_expr_arg,lex_en_expr_cmdarg,lex_en_expr_end,lex_en_expr_endarg,lex_en_expr_endfn,lex_en_expr_labelarg,lex_en_inside_string,fetch,invert,push,count,pop,dedent_level,empty?,shift,+,size,<=,>,<<,!=,===,e_lbrace,close_interp_on_current_literal,on_newline,emit_comment_from_range,version?,tok,emit_global_var,stack_pop,emit_class_var,emit_instance_var,emit_table,[]=,chr,push_literal,in_argdef,>=,freeze,arg_or_cmdarg,check_ambiguous_slash,last,diagnostic,range,active?,emit_do,slice,length,start_with?,read_character_constant,=~,declared?,!,nil?,any?,<,end_with?,rstrip,herebody_s,herebody_s=,emit_colon_with_digits,in_kwarg,emit_singleton_class,inspect,numeric_literal_int,to_i,call,emit_rbrace_rparen_rbrack,to_f,emit_comment,advance,lex_error,protected,include?,process,literal,start_interp_brace,index,lexpop,each,upcase'),function(C,A,B){var u=x(C,A,'Lexer'),z=[u].concat(B),w=f.$r(z),y=u.$$prototype;return y.version=y.source_buffer=y.source_pts=y.strings=y.cs=y.cmdarg_stack=y.cmdarg=y.cond_stack=y.cond=y.token_queue=y._lex_actions=y.p=y.command_start=y.emit_integer=y.emit_rational=y.emit_imaginary=y.emit_imaginary_rational=y.emit_integer_re=y.emit_integer_if=y.emit_integer_rescue=y.emit_float=y.emit_imaginary_float=y.emit_float_if=y.emit_float_rescue=y.paren_nest=y.ts=y.te=y.stack=y.top=y.act=y.context=y.lambda_stack=y.static_env=y.newline_s=y.num_base=y.num_suffix_s=y.num_xfrm=y.eq_begin_s=y.cs_before_block_comment=y.tokens=y.comments=y.sharp_s=y.diagnostics=y.num_digits_s=d,function(a,b){return a.$attr_accessor("_lex_actions"),a.$private("_lex_actions","_lex_actions=")}(f.get_singleton_class(u),z),u['$_lex_actions='](f.large_array_unpack("0,1,0,1,16,1,17,1,18,1,19,1,32,1,33,1,34,1,35,1,37,1,38,1,39,1,40,1,41,1,42,1,43,1,44,1,45,1,46,1,47,1,48,1,49,1,50,1,51,1,52,1,53,1,54,1,55,1,56,1,57,1,61,1,62,1,63,1,64,1,65,1,66,1,67,1,68,1,69,1,70,1,71,1,72,1,73,1,74,1,75,1,76,1,77,1,78,1,79,1,80,1,81,1,82,1,83,1,84,1,85,1,86,1,87,1,88,1,89,1,90,1,91,1,93,1,94,1,95,1,100,1,101,1,102,1,103,1,104,1,105,1,106,1,107,1,112,1,113,1,114,1,115,1,116,1,119,1,120,1,121,1,122,1,125,1,126,1,128,1,129,1,130,1,131,1,132,1,133,1,135,1,136,1,139,1,140,1,141,1,142,1,144,1,145,1,155,1,156,1,157,1,158,1,159,1,160,1,161,1,162,1,163,1,164,1,165,1,166,1,168,1,169,1,170,1,171,1,172,1,173,1,174,1,176,1,178,1,179,1,180,1,184,1,186,1,187,1,189,1,190,1,191,1,192,1,193,1,194,1,195,1,196,1,197,1,198,1,199,1,200,1,201,1,203,1,204,1,205,1,206,1,207,1,208,1,210,1,211,1,230,1,231,1,232,1,233,1,234,1,235,1,236,1,237,1,238,1,240,1,241,1,242,1,243,1,244,1,246,1,247,1,248,1,250,1,252,1,254,1,255,1,256,1,258,1,259,1,260,1,263,1,264,1,266,1,267,1,268,1,269,1,270,1,271,1,274,1,275,1,276,1,277,1,278,1,279,1,280,1,281,1,282,1,283,1,286,1,287,1,288,1,289,1,290,1,291,1,292,1,293,1,294,1,295,1,296,2,0,18,2,0,100,2,0,104,2,0,105,2,0,167,2,0,169,2,0,239,2,0,284,2,0,285,2,0,288,2,0,289,2,2,249,2,3,249,2,4,249,2,5,249,2,6,249,2,7,249,2,9,251,2,10,251,2,11,251,2,12,251,2,13,251,2,14,111,2,14,134,2,14,181,2,14,245,2,15,261,2,16,0,2,16,32,2,16,33,2,16,34,2,16,75,2,16,84,2,16,94,2,16,105,2,16,116,2,16,118,2,16,135,2,16,142,2,16,143,2,16,155,2,16,168,2,16,190,2,16,201,2,16,202,2,16,208,2,16,209,2,16,264,2,16,265,2,16,292,2,17,18,2,18,0,2,18,75,2,18,84,2,18,94,2,18,117,2,18,135,2,18,142,2,18,190,2,18,201,2,18,208,2,18,264,2,18,292,2,19,92,2,19,177,2,19,188,2,19,271,2,20,92,2,20,177,2,20,188,2,20,257,2,21,177,2,21,188,2,22,177,2,22,188,2,23,177,2,23,188,2,24,177,2,24,198,2,25,177,2,25,188,2,26,177,2,27,253,2,28,110,2,28,182,2,28,262,2,29,261,2,30,108,2,30,109,2,30,127,2,30,183,2,30,260,2,31,261,2,35,0,2,36,175,2,37,179,2,38,179,2,39,185,2,41,47,2,42,47,2,43,47,2,44,47,2,45,47,2,46,47,2,47,1,2,53,0,2,53,49,2,53,58,2,53,59,2,53,60,2,53,96,2,53,97,2,53,98,2,53,99,2,53,123,2,53,124,2,53,137,2,53,138,2,53,147,2,53,148,2,53,149,2,53,150,2,53,151,2,53,152,2,53,153,2,53,154,2,53,212,2,53,213,2,53,215,2,53,216,2,53,217,2,53,218,2,53,219,2,53,220,2,53,221,2,53,223,2,53,224,2,53,225,2,53,226,2,53,227,2,53,228,2,53,229,2,53,272,2,53,273,3,17,18,0,3,17,18,75,3,17,18,84,3,17,18,94,3,17,18,117,3,17,18,135,3,17,18,142,3,17,18,190,3,17,18,201,3,17,18,208,3,17,18,264,3,17,18,292,3,45,47,1,3,46,47,1,3,47,1,249,3,48,8,251,3,49,8,251,3,53,0,99,3,53,16,98,3,53,16,124,3,53,16,272,3,53,18,146,3,53,18,214,3,53,18,272,3,53,33,97,3,53,39,152,3,53,39,153,3,53,45,221,4,41,47,1,249,4,42,47,1,249,4,43,47,1,249,4,44,47,1,249,4,45,47,1,249,4,46,47,1,249,4,53,16,33,97,4,53,17,18,146,4,53,17,18,272,4,53,47,1,222,5,53,45,47,1,222,5,53,46,47,1,222")),function(a,b){return a.$attr_accessor("_lex_trans_keys"),a.$private("_lex_trans_keys","_lex_trans_keys=")}(f.get_singleton_class(u),z),u['$_lex_trans_keys='](f.large_array_unpack("0,0,0,127,0,127,0,127,0,127,0,127,0,127,0,127,58,58,58,58,46,46,0,127,58,58,60,60,62,62,10,10,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,115,115,99,99,117,117,101,101,108,116,101,101,115,115,115,115,105,105,108,108,105,105,108,108,58,58,0,127,10,10,0,127,9,92,10,10,9,92,58,58,98,98,101,101,103,103,105,105,110,110,0,127,61,61,9,92,9,92,9,92,9,92,9,92,10,10,0,127,0,127,61,126,93,93,0,127,0,127,10,10,34,34,10,10,39,39,0,127,10,96,96,96,0,127,0,127,0,127,0,127,0,127,0,127,58,58,58,58,0,127,43,57,48,57,48,57,48,57,48,57,115,115,99,99,117,117,101,101,99,99,117,117,101,101,0,127,58,58,9,92,9,92,9,92,9,92,9,92,9,92,60,60,10,10,9,92,9,92,10,10,10,10,10,10,10,10,46,46,101,101,103,103,105,105,110,110,69,69,78,78,68,68,95,95,95,95,0,26,0,0,36,64,0,127,48,57,0,127,0,127,0,127,0,127,9,32,0,0,61,126,10,10,10,10,0,127,0,127,48,57,115,115,38,38,42,42,64,64,58,58,60,61,62,62,61,126,61,61,61,62,0,127,0,127,0,127,0,127,0,127,0,127,0,127,93,93,10,10,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,124,124,0,127,0,127,9,32,10,10,10,10,46,46,10,10,0,0,0,127,0,127,61,61,0,0,9,32,0,0,61,126,10,10,10,10,38,38,42,42,64,64,60,61,62,62,61,126,61,61,61,62,0,127,93,93,10,10,124,124,0,126,0,127,0,61,9,61,9,61,0,0,9,61,9,62,46,46,46,46,58,58,9,32,0,0,0,127,0,0,9,124,0,0,10,10,10,10,0,0,9,61,58,58,60,60,62,62,9,32,10,10,0,127,102,102,101,101,110,110,104,104,0,127,0,127,0,127,0,0,0,127,10,10,0,123,9,32,10,10,10,10,10,10,0,0,111,111,0,0,0,127,0,127,9,32,0,0,10,10,10,10,10,10,0,0,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,58,61,0,0,61,126,61,61,0,0,0,0,0,0,9,32,61,61,9,32,61,126,10,10,10,10,0,127,38,61,0,0,42,61,61,61,9,92,9,92,9,92,46,46,46,46,10,10,0,26,0,127,0,127,61,61,0,0,61,126,61,62,0,0,0,0,0,0,0,0,61,126,0,127,48,57,38,38,42,42,64,64,60,61,62,62,61,61,61,62,0,127,48,57,0,127,124,124,64,64,60,61,0,0,10,34,10,39,96,96,62,62,61,126,61,62,0,26,0,127,0,127,0,127,0,0,10,10,0,0,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,61,126,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,0,61,124,0,92,9,32,0,0,10,10,10,10,10,10,0,0,0,127,0,127,9,32,0,0,10,10,10,10,10,10,0,0,0,127,0,127,61,61,0,0,9,32,0,0,61,126,10,10,10,10,0,127,0,127,48,57,61,61,38,61,0,0,0,0,42,61,61,62,46,57,46,46,10,10,48,101,48,95,46,120,48,114,43,57,48,105,102,102,0,0,101,105,0,0,0,0,48,114,48,114,48,114,48,114,105,114,102,102,0,0,101,105,115,115,0,0,0,0,48,114,48,114,48,114,48,114,48,114,48,114,48,114,48,114,46,114,48,114,46,114,48,114,58,58,60,61,62,62,61,126,61,61,61,62,0,127,0,127,0,0,0,127,0,127,0,127,0,127,0,127,0,127,0,0,10,10,0,0,0,0,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,9,92,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,0,61,124,0,0,9,92,9,92,9,92,46,46,46,46,10,10,46,46,10,10,10,61,10,10,10,101,10,110,10,100,10,10,0,95,9,32,0,0,10,10,10,10,98,98,9,32,10,10,95,95,0")),function(a,b){return a.$attr_accessor("_lex_key_spans"),a.$private("_lex_key_spans","_lex_key_spans=")}(f.get_singleton_class(u),z),u['$_lex_key_spans='](f.large_array_unpack("0,128,128,128,128,128,128,128,1,1,1,128,1,1,1,1,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,1,1,1,1,9,1,1,1,1,1,1,1,1,128,1,128,84,1,84,1,1,1,1,1,1,128,1,84,84,84,84,84,1,128,128,66,1,128,128,1,1,1,1,128,87,1,128,128,128,128,128,128,1,1,128,15,10,10,10,10,1,1,1,1,1,1,1,128,1,84,84,84,84,84,84,1,1,84,84,1,1,1,1,1,1,1,1,1,1,1,1,1,1,27,0,29,128,10,128,128,128,128,24,0,66,1,1,128,128,10,1,1,1,1,1,2,1,66,1,2,128,128,128,128,128,128,128,1,1,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,1,128,128,24,1,1,1,1,0,128,128,1,0,24,0,66,1,1,1,1,1,2,1,66,1,2,128,1,1,1,127,128,62,53,53,0,53,54,1,1,1,24,0,128,0,116,0,1,1,0,53,1,1,1,24,1,128,1,1,1,1,128,128,128,0,128,1,124,24,1,1,1,0,1,0,128,128,24,0,1,1,1,0,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,4,0,66,1,0,0,0,24,1,24,66,1,1,128,24,0,20,1,84,84,84,1,1,1,27,128,128,1,0,66,2,0,0,0,0,66,128,10,1,1,1,2,1,1,2,128,10,128,1,1,2,0,25,30,1,1,66,2,27,128,128,128,0,1,0,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,66,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,0,64,93,24,0,1,1,1,0,128,128,24,0,1,1,1,0,128,128,1,0,24,0,66,1,1,128,128,10,1,24,0,0,20,2,12,1,1,54,48,75,67,15,58,1,0,5,0,0,67,67,67,67,10,1,0,5,1,0,0,67,67,67,67,67,67,67,67,69,67,69,67,1,2,1,66,1,2,128,128,0,128,128,128,128,128,128,0,1,0,0,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,84,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,0,64,0,84,84,84,1,1,1,1,1,52,1,92,101,91,1,96,24,0,1,1,1,24,1,1")),function(a,b){return a.$attr_accessor("_lex_index_offsets"),a.$private("_lex_index_offsets","_lex_index_offsets=")}(f.get_singleton_class(u),z),u['$_lex_index_offsets='](f.large_array_unpack("0,0,129,258,387,516,645,774,903,905,907,909,1038,1040,1042,1044,1046,1175,1304,1433,1562,1691,1820,1949,2078,2207,2336,2465,2594,2723,2852,2981,3110,3239,3368,3370,3372,3374,3376,3386,3388,3390,3392,3394,3396,3398,3400,3402,3531,3533,3662,3747,3749,3834,3836,3838,3840,3842,3844,3846,3975,3977,4062,4147,4232,4317,4402,4404,4533,4662,4729,4731,4860,4989,4991,4993,4995,4997,5126,5214,5216,5345,5474,5603,5732,5861,5990,5992,5994,6123,6139,6150,6161,6172,6183,6185,6187,6189,6191,6193,6195,6197,6326,6328,6413,6498,6583,6668,6753,6838,6840,6842,6927,7012,7014,7016,7018,7020,7022,7024,7026,7028,7030,7032,7034,7036,7038,7040,7068,7069,7099,7228,7239,7368,7497,7626,7755,7780,7781,7848,7850,7852,7981,8110,8121,8123,8125,8127,8129,8131,8134,8136,8203,8205,8208,8337,8466,8595,8724,8853,8982,9111,9113,9115,9244,9373,9502,9631,9760,9889,10018,10147,10276,10405,10534,10663,10792,10921,11050,11179,11308,11437,11566,11695,11824,11953,12082,12211,12340,12469,12598,12727,12856,12985,13114,13243,13372,13501,13630,13759,13888,14017,14146,14275,14404,14533,14662,14791,14920,15049,15178,15307,15436,15565,15694,15823,15952,16081,16210,16339,16468,16597,16726,16855,16984,17113,17242,17371,17500,17629,17758,17887,18016,18145,18274,18403,18532,18661,18790,18919,19048,19177,19306,19435,19564,19693,19822,19824,19953,20082,20107,20109,20111,20113,20115,20116,20245,20374,20376,20377,20402,20403,20470,20472,20474,20476,20478,20480,20483,20485,20552,20554,20557,20686,20688,20690,20692,20820,20949,21012,21066,21120,21121,21175,21230,21232,21234,21236,21261,21262,21391,21392,21509,21510,21512,21514,21515,21569,21571,21573,21575,21600,21602,21731,21733,21735,21737,21739,21868,21997,22126,22127,22256,22258,22383,22408,22410,22412,22414,22415,22417,22418,22547,22676,22701,22702,22704,22706,22708,22709,22838,22967,23096,23225,23354,23483,23612,23741,23870,23999,24128,24257,24386,24515,24644,24773,24902,25031,25036,25037,25104,25106,25107,25108,25109,25134,25136,25161,25228,25230,25232,25361,25386,25387,25408,25410,25495,25580,25665,25667,25669,25671,25699,25828,25957,25959,25960,26027,26030,26031,26032,26033,26034,26101,26230,26241,26243,26245,26247,26250,26252,26254,26257,26386,26397,26526,26528,26530,26533,26534,26560,26591,26593,26595,26662,26665,26693,26822,26951,27080,27081,27083,27084,27213,27342,27471,27600,27729,27858,27987,28116,28245,28374,28503,28632,28761,28890,29019,29148,29277,29406,29535,29664,29793,29922,30051,30180,30309,30438,30567,30696,30825,30954,31083,31212,31341,31470,31599,31728,31857,31986,32115,32244,32373,32502,32631,32760,32889,33018,33147,33276,33405,33534,33663,33792,33921,34050,34179,34308,34437,34566,34695,34824,34953,35020,35149,35278,35407,35536,35665,35794,35923,36052,36181,36310,36439,36568,36697,36826,36955,37084,37213,37342,37471,37600,37729,37858,37987,38116,38245,38246,38311,38405,38430,38431,38433,38435,38437,38438,38567,38696,38721,38722,38724,38726,38728,38729,38858,38987,38989,38990,39015,39016,39083,39085,39087,39216,39345,39356,39358,39383,39384,39385,39406,39409,39422,39424,39426,39481,39530,39606,39674,39690,39749,39751,39752,39758,39759,39760,39828,39896,39964,40032,40043,40045,40046,40052,40054,40055,40056,40124,40192,40260,40328,40396,40464,40532,40600,40670,40738,40808,40876,40878,40881,40883,40950,40952,40955,41084,41213,41214,41343,41472,41601,41730,41859,41988,41989,41991,41992,41993,42122,42251,42380,42509,42638,42767,42896,43025,43154,43283,43412,43541,43670,43799,43928,44057,44186,44315,44444,44573,44702,44831,44960,45089,45218,45347,45476,45605,45734,45863,45992,46121,46250,46379,46508,46637,46766,46851,46980,47109,47238,47367,47496,47625,47754,47883,48012,48141,48270,48399,48528,48657,48786,48915,49044,49173,49302,49431,49560,49689,49818,49947,50076,50205,50334,50463,50592,50721,50850,50979,51108,51237,51366,51495,51624,51753,51882,52011,52140,52269,52398,52527,52656,52785,52914,53043,53172,53301,53430,53559,53688,53817,53946,54075,54204,54333,54462,54591,54720,54849,54978,55107,55236,55237,55302,55303,55388,55473,55558,55560,55562,55564,55566,55568,55621,55623,55716,55818,55910,55912,56009,56034,56035,56037,56039,56041,56066,56068")),function(a,b){return a.$attr_accessor("_lex_indicies"),a.$private("_lex_indicies","_lex_indicies=")}(f.get_singleton_class(u),z),u['$_lex_indicies='](f.large_array_unpack("2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,2,1,2,1,1,2,2,1,1,1,3,1,1,4,4,4,4,4,4,4,4,4,4,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1,2,2,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,1,2,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,5,5,5,5,5,5,5,5,5,5,2,2,2,2,2,2,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,2,2,2,2,5,2,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,2,2,2,2,2,5,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,7,7,7,7,7,7,7,7,7,7,2,2,2,2,2,2,2,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,2,2,2,2,7,2,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,2,2,2,2,2,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,8,8,8,8,9,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,8,8,8,8,8,9,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,10,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,14,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,13,13,13,13,13,13,13,13,15,12,12,12,12,14,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,12,12,12,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,12,12,12,12,13,15,12,12,16,17,12,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,20,18,18,18,18,18,18,18,18,18,18,18,18,18,18,19,19,19,19,19,19,19,19,19,19,21,18,18,18,18,20,18,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,18,18,18,18,19,18,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,18,18,18,18,18,19,21,18,23,22,24,22,25,22,22,22,22,22,22,22,22,22,22,27,22,27,27,27,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,27,22,22,22,22,28,29,22,30,22,31,32,33,34,35,28,22,22,22,22,22,22,22,22,22,22,36,22,37,33,38,39,22,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,40,41,33,42,26,22,26,26,26,26,26,26,26,26,43,26,26,26,26,26,26,26,26,44,26,26,45,26,46,26,26,26,47,48,22,42,22,26,22,22,22,22,22,22,22,22,22,49,22,49,49,49,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,49,22,22,22,22,50,51,22,52,22,53,54,55,56,57,50,22,22,22,22,22,22,22,22,22,22,58,22,59,55,60,61,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,62,63,55,24,19,22,19,19,19,19,19,19,19,19,64,19,19,19,19,19,19,19,19,65,19,19,66,19,67,19,19,19,68,69,22,24,22,19,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,19,22,19,19,19,19,19,70,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,22,19,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,19,22,19,19,19,19,71,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,22,19,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,19,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,72,19,19,19,19,19,19,19,22,22,22,22,22,19,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,19,22,19,19,73,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,22,19,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,19,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,74,19,19,19,19,19,22,22,22,22,22,19,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,19,22,19,19,19,19,70,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,22,19,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,19,22,19,19,19,19,19,19,19,19,19,19,19,19,19,75,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,22,19,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,19,22,19,19,19,19,19,19,19,19,19,19,19,76,19,19,19,19,19,19,19,77,19,19,19,19,19,19,22,22,22,22,22,19,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,19,22,19,19,19,19,78,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,22,19,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,19,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,79,19,19,19,19,19,19,19,22,22,22,22,22,19,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,19,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,70,19,19,19,19,19,19,19,22,22,22,22,22,19,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,19,22,19,19,19,19,19,19,19,19,80,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,22,19,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,19,22,19,19,19,19,19,19,19,19,19,19,19,70,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,22,19,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,19,22,19,19,19,19,19,19,19,81,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,22,19,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,19,22,19,19,19,19,19,19,19,19,82,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,22,19,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,19,22,19,19,19,19,19,19,19,19,19,19,19,74,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,22,19,84,83,85,83,86,83,55,83,87,83,83,83,83,83,83,83,88,83,89,83,90,83,55,83,91,83,55,83,92,83,86,83,94,93,95,95,95,95,95,95,95,95,95,97,95,97,97,97,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,97,95,95,95,95,95,95,95,98,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,95,99,95,95,96,95,96,96,96,100,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,95,95,95,95,95,96,101,95,95,95,95,95,95,95,95,95,95,103,95,103,103,103,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,103,95,95,95,95,95,95,95,104,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,95,105,95,95,102,95,102,102,102,106,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,95,95,95,95,95,102,108,107,108,108,108,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,108,107,107,107,107,107,107,107,109,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,110,107,111,107,112,107,112,112,112,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,112,107,107,107,107,107,107,107,113,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,114,107,115,116,118,117,119,117,120,117,121,117,122,117,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,123,123,123,123,123,123,123,123,123,123,124,124,124,124,124,124,124,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,124,124,124,124,124,124,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,124,124,124,124,124,123,125,115,126,127,126,126,126,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,126,115,115,128,115,115,115,115,115,115,115,115,115,115,115,115,129,129,129,129,129,129,129,129,129,129,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,130,115,131,132,131,131,131,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,131,115,115,133,115,115,115,115,115,115,115,115,115,115,115,115,134,134,134,134,134,134,134,134,134,134,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,135,115,137,138,137,137,137,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,137,136,136,139,136,136,136,136,136,136,136,136,136,136,136,136,140,140,140,140,140,140,140,140,140,140,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,141,136,143,144,143,143,143,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,143,142,142,145,142,142,142,142,142,142,142,142,142,142,142,142,146,146,146,146,146,146,146,146,146,146,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,147,142,143,148,143,143,143,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,143,142,142,145,142,142,142,142,142,142,142,142,142,142,142,142,146,146,146,146,146,146,146,146,146,146,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,147,142,127,115,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,151,151,149,151,149,151,151,149,149,151,151,151,152,151,151,153,153,153,153,153,153,153,153,153,153,151,151,151,151,151,151,151,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,149,151,149,149,150,151,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,149,149,149,151,149,150,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,151,151,151,151,151,151,151,151,151,151,149,149,149,149,149,149,149,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,149,149,149,149,151,149,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,149,149,149,149,149,151,154,151,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,151,149,154,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,156,149,149,149,149,157,149,149,149,149,149,158,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,125,149,149,149,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,149,149,149,149,155,159,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,149,149,149,158,149,155,161,161,161,161,161,161,161,161,161,161,162,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,160,160,160,160,160,160,160,160,160,160,161,161,161,161,161,161,161,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,161,161,161,161,160,161,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,161,161,161,161,161,160,164,163,167,166,162,161,167,168,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,156,149,149,149,149,157,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,149,149,149,149,155,159,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,149,149,149,149,149,155,170,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,167,169,167,170,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,172,115,115,115,115,115,115,115,115,115,115,115,115,115,115,171,171,171,171,171,171,171,171,171,171,173,115,115,174,115,172,115,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,115,115,115,115,171,115,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,115,115,115,115,115,171,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,172,149,149,149,149,149,149,149,149,149,149,149,149,149,149,171,171,171,171,171,171,171,171,171,171,173,149,149,174,149,172,149,171,171,171,171,171,171,175,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,149,149,149,149,171,149,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,149,149,149,149,149,171,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,172,149,149,149,149,149,149,149,149,149,149,149,149,149,149,171,171,171,171,171,171,171,171,171,171,173,149,149,174,149,172,149,171,171,171,171,171,171,171,171,176,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,149,149,149,149,171,149,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,149,149,149,149,149,171,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,172,149,149,149,149,149,149,149,149,149,149,149,149,149,149,171,171,171,171,171,171,171,171,171,171,173,149,149,174,149,172,149,171,171,171,171,171,171,171,171,171,171,171,171,171,177,171,171,171,171,171,171,171,171,171,171,171,171,149,149,149,149,171,149,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,149,149,149,149,149,171,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,172,149,149,149,149,149,149,149,149,149,149,149,149,149,149,171,171,171,171,171,171,171,171,171,171,173,149,149,174,149,172,149,171,171,171,177,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,149,149,149,149,171,149,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,149,149,149,149,149,171,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,180,178,178,178,178,178,178,178,178,178,178,178,178,178,178,179,179,179,179,179,179,179,179,179,179,181,178,178,178,178,180,178,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,178,178,178,178,179,178,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,178,178,178,178,178,179,181,178,178,182,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,184,184,184,184,184,184,184,184,184,184,183,183,183,183,183,183,183,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,183,183,183,183,184,183,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,183,183,183,183,183,184,186,185,186,185,185,187,187,187,187,187,187,187,187,187,187,185,187,187,187,187,187,187,187,187,187,187,185,188,188,188,188,188,188,188,188,188,188,185,190,190,190,190,190,190,190,190,190,190,189,191,191,191,191,191,191,191,191,191,191,189,193,192,194,192,195,192,196,192,198,197,199,197,200,197,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,201,201,201,201,201,201,201,201,201,201,183,183,183,183,183,183,183,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,183,183,183,183,201,183,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,183,183,183,183,183,201,202,189,203,204,203,203,203,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,203,189,189,205,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,206,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,207,189,208,209,208,208,208,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,208,189,189,210,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,211,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,212,189,214,215,214,214,214,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,214,213,213,216,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,217,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,218,213,220,221,220,220,220,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,220,219,219,222,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,223,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,224,219,220,221,220,220,220,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,220,219,219,222,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,225,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,224,219,220,226,220,220,220,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,220,219,219,222,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,223,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,224,219,227,189,204,189,229,230,229,229,229,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,229,228,228,231,228,228,232,228,228,228,228,228,228,228,233,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,234,228,236,230,236,236,236,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,236,235,235,231,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,234,235,239,238,241,240,242,237,243,237,244,228,246,245,247,245,248,245,249,245,250,245,251,245,252,245,253,245,254,245,255,245,245,245,255,245,245,245,245,245,256,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,255,245,257,258,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,259,2,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,0,0,0,0,0,0,0,0,0,0,260,260,260,260,260,260,260,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,260,260,260,260,0,260,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,260,260,260,260,260,0,4,4,4,4,4,4,4,4,4,4,260,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,5,5,5,5,5,5,5,5,5,5,261,261,261,261,261,261,261,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,261,261,261,261,5,261,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,261,261,261,261,261,5,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,7,7,7,7,7,7,7,7,7,7,262,262,262,262,262,262,262,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,262,262,262,262,7,262,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,262,262,262,262,262,7,264,265,265,265,264,265,265,265,265,266,267,266,266,266,265,265,265,265,265,265,265,265,265,265,265,265,264,265,265,265,265,265,266,268,265,269,270,271,272,265,265,265,273,274,265,274,265,275,265,265,265,265,265,265,265,265,265,265,276,265,277,278,279,265,265,280,281,280,280,282,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,283,284,265,275,285,275,286,287,288,289,290,291,263,263,292,263,263,263,293,294,295,263,263,296,297,298,299,263,300,263,301,263,265,302,265,274,265,263,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,304,303,303,303,303,303,303,303,303,303,303,303,303,303,303,263,263,263,263,263,263,263,263,263,263,303,303,303,304,303,304,303,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,303,303,303,303,263,303,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,303,303,303,303,303,263,266,305,266,266,266,305,305,305,305,305,305,305,305,305,305,305,305,305,305,305,305,305,305,266,305,306,275,307,307,275,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,275,307,308,309,310,311,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,9,9,312,9,312,9,9,312,312,9,9,9,314,9,9,315,315,315,315,315,315,315,315,315,315,9,9,9,9,9,9,9,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,312,9,312,312,313,9,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,312,312,312,9,312,313,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,313,313,313,313,313,313,313,313,313,313,316,316,316,316,316,316,316,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,316,316,316,316,313,316,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,316,316,316,316,316,313,315,315,315,315,315,315,315,315,315,315,316,317,307,275,307,275,307,275,307,319,318,275,320,307,275,307,321,275,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,275,312,275,307,275,275,307,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,304,303,303,303,303,303,303,303,303,303,303,303,303,303,303,280,280,280,280,280,280,280,280,280,280,303,303,303,304,303,304,303,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,303,303,303,303,280,303,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,303,303,303,303,303,280,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,304,322,322,322,322,322,322,322,322,322,322,322,322,322,322,280,280,280,280,280,280,280,280,280,280,322,322,322,304,322,304,322,280,280,280,280,323,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,280,322,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,322,280,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,304,322,322,322,322,322,322,322,322,322,322,322,322,322,322,280,280,280,280,280,280,280,280,280,280,322,322,322,304,322,304,322,280,280,280,280,280,280,324,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,280,322,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,322,280,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,304,322,322,322,322,322,322,322,322,322,322,322,322,322,322,280,280,280,280,280,280,280,280,280,280,322,322,322,304,322,304,322,280,280,280,280,280,280,280,280,325,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,280,322,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,322,280,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,304,322,322,322,322,322,322,322,322,322,322,322,322,322,322,280,280,280,280,280,280,280,280,280,280,322,322,322,304,322,304,322,280,280,280,280,280,280,280,280,280,280,280,280,280,326,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,280,322,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,322,280,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,304,322,322,322,322,322,322,322,322,322,322,322,322,322,322,280,280,280,280,280,280,280,280,280,280,322,322,322,304,322,304,322,280,280,280,280,280,280,280,280,280,280,280,280,280,327,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,280,322,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,322,280,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,304,322,322,322,322,322,322,322,322,322,322,322,322,322,322,280,280,280,280,280,280,280,280,280,280,322,322,322,304,322,304,322,280,280,280,326,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,280,322,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,322,280,321,312,267,312,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,329,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,330,331,263,263,263,263,263,332,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,333,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,334,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,335,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,336,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,337,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,338,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,339,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,340,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,341,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,342,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,343,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,339,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,344,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,343,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,345,263,346,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,347,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,348,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,341,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,341,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,349,263,263,263,263,263,263,263,263,263,263,263,263,350,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,351,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,352,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,341,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,353,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,354,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,341,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,355,263,263,263,263,263,263,263,263,263,263,356,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,357,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,341,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,358,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,348,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,359,263,263,263,263,263,263,263,263,263,341,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,360,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,304,361,361,361,361,361,361,361,361,361,361,361,361,361,361,263,263,263,263,263,263,263,263,263,263,361,361,361,304,361,304,361,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,361,361,361,361,263,361,263,263,263,263,263,263,263,263,362,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,361,361,361,361,361,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,363,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,364,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,365,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,366,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,367,263,368,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,369,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,341,263,263,263,370,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,341,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,341,263,263,263,263,263,263,263,263,263,263,263,263,263,263,371,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,372,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,357,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,373,263,263,263,263,263,263,263,263,263,263,263,263,263,295,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,355,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,341,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,341,263,263,263,263,263,263,263,341,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,374,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,375,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,376,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,357,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,377,263,263,263,378,263,263,263,263,263,379,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,379,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,341,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,341,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,380,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,381,263,263,263,263,263,263,263,263,263,263,263,263,263,263,382,383,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,341,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,384,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,357,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,385,263,263,386,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,341,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,352,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,387,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,388,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,370,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,389,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,295,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,390,263,263,263,263,263,263,263,263,263,384,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,352,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,391,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,392,263,263,263,263,263,263,263,393,263,263,263,263,263,263,263,394,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,370,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,358,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,378,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,395,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,352,263,263,263,376,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,396,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,397,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,346,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,275,307,399,400,400,400,399,400,400,400,400,401,400,401,401,401,400,400,400,400,400,400,400,400,400,400,400,400,399,400,400,400,400,400,401,400,400,402,400,400,400,400,400,400,400,400,400,400,403,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,400,404,400,400,398,400,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,400,400,400,400,400,398,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,14,405,405,405,405,405,405,405,405,405,405,405,405,405,405,13,13,13,13,13,13,13,13,13,13,15,405,405,405,405,14,405,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,405,405,405,405,13,405,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,405,405,405,405,405,13,401,406,401,401,401,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,401,406,407,408,409,410,411,405,412,405,413,415,416,416,416,415,416,416,416,416,417,418,417,417,417,416,416,416,416,416,416,416,416,416,416,416,416,415,416,416,416,416,416,417,419,416,420,416,421,422,416,416,416,423,424,416,424,416,421,416,416,416,416,416,416,416,416,416,416,416,416,425,426,427,416,416,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,429,430,416,421,414,421,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,416,431,416,424,416,414,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,433,432,432,432,432,432,432,432,432,432,432,432,432,432,432,414,414,414,414,414,414,414,414,414,414,432,432,432,432,432,433,432,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,432,432,432,432,414,432,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,432,432,432,432,432,414,435,434,436,417,437,417,417,417,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,417,437,438,421,439,439,421,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,421,439,440,441,442,443,421,439,421,439,421,439,421,444,439,421,439,446,421,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,421,445,421,439,421,421,439,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,433,447,447,447,447,447,447,447,447,447,447,447,447,447,447,428,428,428,428,428,428,428,428,428,428,447,447,447,447,447,433,447,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,447,447,447,447,428,447,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,447,447,447,447,447,428,446,445,418,445,421,439,449,448,448,448,449,448,448,448,448,450,451,450,450,450,448,448,448,448,448,448,448,448,448,448,448,448,449,448,448,448,448,448,450,448,448,452,448,24,453,448,454,448,455,24,55,456,57,24,448,448,448,448,448,448,448,448,448,448,457,448,458,55,459,460,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,55,461,55,24,448,448,448,448,448,448,448,448,448,448,462,448,448,448,448,448,448,448,448,463,448,448,464,448,465,448,448,448,68,69,448,24,448,466,466,466,466,466,466,466,466,466,450,466,450,450,450,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,450,466,466,466,466,50,51,466,52,466,53,54,55,56,57,50,466,466,466,466,466,466,466,466,466,466,58,466,59,55,60,61,466,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,62,63,55,24,19,466,19,19,19,19,19,19,19,19,64,19,19,19,19,19,19,19,19,65,19,19,66,19,67,19,19,19,68,69,466,24,466,19,467,468,468,468,467,468,468,468,468,55,469,55,55,55,468,468,468,468,468,468,468,468,468,468,468,468,467,468,468,468,468,468,55,468,468,468,468,468,468,468,468,468,468,468,468,468,468,468,468,468,468,468,468,468,468,468,468,468,468,468,468,55,468,55,469,55,55,55,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,55,18,18,18,18,18,24,18,18,18,18,18,18,18,55,18,18,18,18,18,18,18,18,18,18,18,18,18,18,55,18,55,469,55,55,55,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,55,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,55,18,470,55,469,55,55,55,471,471,471,471,471,471,471,471,471,471,471,471,471,471,471,471,471,471,55,471,471,471,471,471,471,471,471,471,472,471,471,471,471,471,471,471,471,471,471,471,471,471,471,471,471,471,471,55,471,55,469,55,55,55,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,55,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,55,55,18,473,467,55,467,475,474,477,478,477,477,477,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,477,476,479,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,20,467,467,467,467,467,467,467,467,467,467,467,467,467,467,19,19,19,19,19,19,19,19,19,19,21,467,467,467,467,20,467,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,467,467,467,467,19,467,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,467,467,467,467,467,19,480,55,469,55,55,55,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,55,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,55,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,24,467,481,482,483,484,485,486,55,469,55,55,55,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,55,467,467,467,467,467,467,467,467,467,24,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,55,467,55,474,24,487,24,487,488,489,488,488,488,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,488,476,490,487,491,491,491,491,491,491,491,491,491,27,491,27,27,27,491,491,491,491,491,491,491,491,491,491,491,491,491,491,491,491,491,491,27,491,491,491,491,28,29,491,30,491,31,32,33,34,35,28,491,491,491,491,491,491,491,491,491,491,36,491,37,33,38,39,491,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,40,41,33,42,26,491,26,26,26,26,26,26,26,26,43,26,26,26,26,26,26,26,26,44,26,26,45,26,46,26,26,26,47,48,491,42,491,26,55,487,492,487,493,487,494,487,495,94,94,94,495,94,94,94,94,496,94,496,496,496,94,94,94,94,94,94,94,94,94,94,94,94,495,94,94,94,94,94,496,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,94,497,94,94,96,94,96,96,96,100,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,94,94,94,94,94,96,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,498,93,93,93,93,93,93,93,93,93,93,93,93,93,93,96,96,96,96,96,96,96,96,96,96,94,93,93,93,93,498,93,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,93,93,93,93,96,93,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,93,93,93,93,93,96,499,499,499,499,499,499,499,499,499,97,499,97,97,97,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,97,499,499,499,499,499,499,499,98,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,499,99,499,499,96,499,96,96,96,100,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,499,499,499,499,499,96,500,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,498,499,499,499,499,499,499,499,499,499,499,499,499,499,499,96,96,96,96,96,96,96,96,96,96,94,499,499,499,499,498,499,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,499,499,499,499,96,499,96,96,96,96,96,96,96,96,96,96,96,96,96,96,501,96,96,96,96,96,96,96,96,96,96,96,499,499,499,499,499,96,101,499,503,502,502,502,503,502,502,502,502,504,502,504,504,504,502,502,502,502,502,502,502,502,502,502,502,502,503,502,502,502,502,502,504,502,502,505,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,506,502,502,502,502,502,502,502,507,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,508,502,504,509,504,504,504,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,504,509,510,511,512,513,515,514,516,517,514,518,520,521,521,521,520,521,521,521,521,522,523,522,522,522,521,521,521,521,521,521,521,521,521,521,521,521,520,521,521,521,521,521,522,521,521,524,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,521,525,521,521,519,521,519,519,519,519,519,519,519,519,526,519,519,519,519,519,519,519,519,527,519,519,528,519,529,519,519,519,521,521,521,521,521,519,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,519,519,519,519,519,519,519,519,519,519,530,530,530,530,530,530,530,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,530,530,530,530,519,530,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,530,530,530,530,530,519,522,531,522,522,522,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,522,531,532,533,534,535,536,538,537,539,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,519,540,519,519,519,519,519,541,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,519,540,519,519,519,519,542,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,519,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,543,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,519,540,519,519,544,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,519,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,545,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,519,540,519,519,519,519,541,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,519,540,519,519,519,519,519,519,519,519,519,519,519,519,519,546,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,519,540,519,519,519,519,519,519,519,519,519,519,519,547,519,519,519,519,519,519,519,548,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,519,540,519,519,519,519,549,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,519,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,550,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,519,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,541,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,519,540,519,519,519,519,519,519,519,519,551,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,519,540,519,519,519,519,519,519,519,519,519,519,519,541,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,519,540,519,519,519,519,519,519,519,552,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,519,540,519,519,519,519,519,519,519,519,553,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,519,540,519,519,519,519,519,519,519,519,519,519,519,545,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,555,125,125,125,555,125,125,125,125,556,557,556,556,556,125,125,125,125,125,125,125,125,125,125,125,125,555,125,125,125,125,125,556,558,125,559,125,560,561,125,562,125,563,564,125,565,566,567,125,125,125,125,125,125,125,125,125,125,568,125,569,570,571,572,125,573,574,573,573,575,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,576,577,125,578,579,125,580,581,582,583,584,585,554,554,586,554,554,554,587,588,589,554,554,590,591,592,593,554,594,554,595,554,596,597,125,578,125,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,602,601,601,603,601,604,606,607,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,608,605,610,609,611,612,613,556,614,556,556,556,614,614,614,614,614,614,614,614,614,614,614,614,614,614,614,614,614,614,556,614,616,615,618,619,618,618,618,617,617,617,617,617,617,617,617,617,617,617,617,617,617,617,617,617,617,618,617,125,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,125,620,621,622,623,624,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,625,625,625,625,625,625,625,625,625,625,626,626,626,626,626,626,626,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,626,626,626,626,626,626,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,626,626,626,626,626,625,629,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,125,628,630,632,631,631,631,631,631,631,631,631,631,631,631,631,631,631,631,631,631,631,125,631,125,115,126,127,126,126,126,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,126,628,628,128,628,628,628,628,628,628,628,628,628,628,628,628,129,129,129,129,129,129,129,129,129,129,628,628,628,125,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,130,628,143,144,143,143,143,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,143,142,142,145,142,142,142,142,142,142,142,142,142,142,142,142,146,146,146,146,146,146,146,146,146,146,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,147,142,126,127,126,126,126,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,126,628,628,128,628,628,628,628,628,628,628,628,628,628,628,628,129,129,129,129,129,129,129,129,129,129,628,628,628,125,125,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,130,628,634,620,636,635,638,637,620,639,639,639,620,639,639,639,639,639,639,639,639,639,639,639,639,639,639,639,639,639,639,639,639,639,620,639,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,641,642,620,643,151,644,642,620,620,645,646,620,646,620,151,620,620,620,620,620,620,620,620,620,620,647,620,648,649,650,620,651,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,652,620,620,151,640,151,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,620,653,620,654,620,640,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,656,655,655,655,655,655,655,655,655,655,655,655,655,655,655,640,640,640,640,640,640,640,640,640,640,655,655,655,657,655,656,655,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,655,655,655,655,640,655,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,655,655,655,655,655,640,659,658,660,662,663,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,664,661,666,667,665,668,669,670,671,151,655,655,672,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,151,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,150,150,150,150,150,150,150,150,150,150,655,655,655,655,655,655,655,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,655,655,655,655,150,655,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,655,655,655,655,655,150,153,153,153,153,153,153,153,153,153,153,655,673,655,151,655,151,655,151,674,655,151,655,151,655,151,151,655,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,677,677,677,677,677,677,677,677,677,677,675,675,675,675,675,675,678,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,675,675,675,675,676,675,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,675,675,675,675,675,676,680,680,680,680,680,680,680,680,680,680,679,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,683,683,683,683,683,683,683,683,683,683,681,681,681,681,681,681,681,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,681,681,681,681,682,681,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,681,681,681,681,681,682,673,655,672,655,684,685,620,686,166,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,167,156,168,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,167,157,167,170,125,620,578,125,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,125,620,125,629,620,690,689,689,689,690,689,689,689,689,689,689,689,689,689,689,689,689,689,689,689,689,689,689,689,689,689,690,689,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,172,115,115,115,115,115,115,115,115,115,115,115,115,115,115,171,171,171,171,171,171,171,171,171,171,173,115,115,174,115,172,115,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,115,115,115,115,171,115,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,115,115,115,115,115,171,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,172,620,620,620,620,620,620,620,620,620,620,620,620,620,620,171,171,171,171,171,171,171,171,171,171,173,620,620,174,620,172,620,171,171,171,171,691,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,620,620,620,620,171,620,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,620,620,620,620,620,171,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,172,620,620,620,620,620,620,620,620,620,620,620,620,620,620,171,171,171,171,171,171,171,171,171,171,173,620,620,174,620,172,620,171,171,171,171,171,171,171,171,171,171,171,171,171,692,171,171,171,171,171,171,171,171,171,171,171,171,620,620,620,620,171,620,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,620,620,620,620,620,171,693,694,620,615,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,695,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,696,697,554,554,554,554,554,698,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,699,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,700,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,701,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,702,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,703,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,704,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,705,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,706,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,707,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,172,115,115,115,115,115,115,115,115,115,115,115,115,115,115,554,554,554,554,554,554,554,554,554,554,173,115,115,174,115,172,115,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,115,115,115,115,554,115,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,115,115,115,115,115,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,708,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,709,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,705,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,710,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,709,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,711,554,712,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,713,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,714,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,707,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,707,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,715,554,554,554,554,554,554,554,554,554,554,554,554,716,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,717,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,718,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,707,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,719,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,720,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,707,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,721,554,554,554,554,554,554,554,554,554,554,722,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,723,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,707,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,724,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,714,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,725,554,554,554,554,554,554,554,554,554,707,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,707,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,726,554,727,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,728,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,707,554,554,554,725,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,707,554,554,554,554,554,554,554,554,554,554,554,554,554,554,729,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,730,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,723,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,731,554,554,554,554,554,554,554,554,554,554,554,554,554,589,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,721,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,707,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,732,554,554,554,554,554,554,554,707,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,733,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,734,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,735,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,723,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,736,554,554,554,737,554,554,554,554,554,738,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,738,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,707,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,707,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,739,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,740,554,554,554,554,554,554,554,554,554,554,554,554,554,554,741,742,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,707,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,743,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,744,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,745,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,748,746,746,746,746,746,746,746,746,746,746,746,746,746,746,747,747,747,747,747,747,747,747,747,747,749,746,746,750,746,748,746,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,746,746,746,746,747,746,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,746,746,746,746,746,747,606,751,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,608,605,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,752,554,554,753,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,707,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,718,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,754,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,755,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,725,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,756,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,589,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,757,554,554,554,554,554,554,554,554,554,758,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,718,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,723,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,759,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,760,554,554,554,554,554,554,554,761,554,554,554,554,554,554,554,762,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,725,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,763,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,764,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,732,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,765,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,732,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,766,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,718,554,554,554,767,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,768,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,732,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,769,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,770,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,712,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,771,125,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,772,620,774,773,773,773,774,773,773,773,773,775,776,775,775,775,773,773,773,773,773,773,773,773,773,773,773,773,774,773,773,773,773,773,775,773,773,777,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,778,773,775,779,775,775,775,779,779,779,779,779,779,779,779,779,779,779,779,779,779,779,779,779,779,775,779,780,781,782,783,784,786,785,787,789,790,790,790,789,790,790,790,790,791,792,791,791,791,790,790,790,790,790,790,790,790,790,790,790,790,789,790,790,790,790,790,791,790,793,794,790,790,790,793,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,790,795,790,790,788,790,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,790,790,790,790,790,788,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,180,796,796,796,796,796,796,796,796,796,796,796,796,796,796,179,179,179,179,179,179,179,179,179,179,181,796,796,796,796,180,796,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,796,796,796,796,179,796,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,796,796,796,796,796,179,791,797,791,791,791,797,797,797,797,797,797,797,797,797,797,797,797,797,797,797,797,797,797,791,797,798,799,800,801,802,803,796,804,806,807,807,807,806,807,807,807,807,808,809,808,808,808,807,807,807,807,807,807,807,807,807,807,807,807,806,807,807,807,807,807,808,810,811,812,813,814,815,811,816,817,818,814,819,820,821,814,822,823,823,823,823,823,823,823,823,823,824,825,826,827,828,829,830,831,832,831,831,833,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,834,835,836,814,837,811,838,839,840,841,842,843,805,805,844,805,805,805,845,846,847,805,805,848,849,850,851,805,852,805,853,805,854,855,856,857,807,805,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,858,189,189,189,189,189,189,189,189,189,189,189,189,189,189,805,805,805,805,805,805,805,805,805,805,189,189,189,189,189,858,189,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,189,189,189,189,805,189,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,189,189,189,189,189,805,860,859,861,808,862,808,808,808,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,808,862,863,865,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,865,864,866,867,868,869,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,184,184,870,184,870,184,184,870,870,184,184,184,871,184,184,872,872,872,872,872,872,872,872,872,872,184,184,184,184,184,184,184,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,870,184,870,870,201,184,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,870,870,870,184,870,201,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,201,201,201,201,201,201,201,201,201,201,873,873,873,873,873,873,873,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,873,873,873,873,201,873,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,873,873,873,873,873,201,872,872,872,872,872,872,872,872,872,872,873,874,189,814,875,875,875,875,875,875,875,876,875,875,875,875,875,875,875,875,875,875,875,875,875,875,874,875,877,878,814,879,879,879,879,879,879,879,879,879,879,879,879,879,879,879,879,879,879,874,879,874,880,875,882,881,188,188,188,188,188,188,188,188,188,188,881,884,883,885,883,188,188,188,188,188,188,188,188,188,188,886,886,886,886,886,886,886,886,886,886,886,887,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,888,886,886,886,886,886,887,886,187,187,187,187,187,187,187,187,187,187,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,186,886,890,889,891,891,891,891,891,891,891,891,891,891,889,889,889,889,889,889,889,889,892,889,893,894,889,889,889,889,889,889,889,889,889,895,889,889,889,889,889,889,889,889,896,889,889,889,889,889,889,897,889,889,892,889,893,894,889,889,889,898,889,889,889,889,889,895,889,889,899,889,889,889,889,889,896,889,190,190,190,190,190,190,190,190,190,190,900,900,900,900,900,900,900,900,900,900,900,901,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,902,900,900,900,900,900,901,900,900,900,903,900,900,900,900,900,900,900,900,904,900,905,189,905,189,189,191,191,191,191,191,191,191,191,191,191,189,191,191,191,191,191,191,191,191,191,191,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,905,906,906,906,906,906,906,906,906,906,907,906,909,908,910,912,911,911,911,913,911,914,915,891,891,891,891,891,891,891,891,891,891,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,897,889,889,889,889,889,889,889,889,889,898,889,889,889,889,889,889,889,889,899,889,916,916,916,916,916,916,916,916,916,916,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,917,889,889,889,889,889,889,889,889,889,898,889,889,889,889,889,889,889,889,899,889,919,919,919,919,919,919,919,919,919,919,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,920,918,918,918,918,918,918,918,918,918,921,918,918,918,918,918,918,918,918,922,918,919,919,919,919,919,919,919,919,919,919,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,923,918,918,918,918,918,918,918,918,918,921,918,918,918,918,918,918,918,918,922,918,921,918,918,918,918,918,918,918,918,922,918,925,924,926,928,927,927,927,929,927,931,930,932,933,935,935,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,936,934,934,934,934,934,934,934,934,934,937,934,934,934,934,934,934,934,934,938,934,939,939,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,940,918,918,918,918,918,918,918,918,918,921,918,918,918,918,918,918,918,918,922,918,939,939,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,923,918,918,918,918,918,918,918,918,918,921,918,918,918,918,918,918,918,918,922,918,942,942,942,942,942,942,942,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,943,941,941,941,941,941,941,941,941,941,944,941,941,941,941,941,941,941,941,945,941,947,947,947,947,947,947,947,947,947,947,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,948,946,946,946,946,946,946,946,946,946,949,946,946,946,946,946,946,946,946,950,946,952,952,952,952,952,952,952,952,952,952,951,951,951,951,951,951,951,952,952,952,952,952,952,951,951,951,951,951,951,951,951,951,951,951,951,951,951,951,951,951,951,951,951,951,951,951,951,953,951,952,952,952,952,952,952,951,951,954,951,951,951,951,951,951,951,951,955,951,956,956,956,956,956,956,956,956,956,956,918,918,918,918,918,918,918,956,956,956,956,956,956,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,957,918,956,956,956,956,956,956,918,918,921,918,918,918,918,918,918,918,918,922,918,956,956,956,956,956,956,956,956,956,956,918,918,918,918,918,918,918,956,956,956,956,956,956,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,923,918,956,956,956,956,956,956,918,918,921,918,918,918,918,918,918,918,918,922,918,959,958,960,960,960,960,960,960,960,960,960,960,958,958,958,958,958,958,958,958,958,958,958,961,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,962,958,958,958,958,958,961,958,958,958,963,958,958,958,958,958,958,958,958,964,958,965,965,965,965,965,965,965,965,965,965,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,966,958,958,958,958,958,958,958,958,958,963,958,958,958,958,958,958,958,958,964,958,967,918,968,968,968,968,968,968,968,968,968,968,918,918,918,918,918,918,918,918,918,918,918,969,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,970,918,918,918,918,918,969,918,918,918,921,918,918,918,918,918,918,918,918,922,918,968,968,968,968,968,968,968,968,968,968,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,923,918,918,918,918,918,918,918,918,918,921,918,918,918,918,918,918,918,918,922,918,876,883,814,971,875,865,875,972,973,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,865,883,865,875,865,814,875,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,201,201,201,201,201,201,201,201,201,201,870,870,870,870,870,870,974,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,870,870,870,870,201,870,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,870,870,870,870,870,201,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,858,189,189,189,189,189,189,189,189,189,189,189,189,189,189,831,831,831,831,831,831,831,831,831,831,975,189,189,189,189,858,189,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,189,189,189,189,831,189,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,189,189,189,189,189,831,976,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,858,977,977,977,977,977,977,977,977,977,977,977,977,977,977,831,831,831,831,831,831,831,831,831,831,975,977,977,977,977,858,977,831,831,831,831,978,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,831,977,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,977,831,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,858,977,977,977,977,977,977,977,977,977,977,977,977,977,977,831,831,831,831,831,831,831,831,831,831,975,977,977,977,977,858,977,831,831,831,831,831,831,979,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,831,977,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,977,831,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,858,977,977,977,977,977,977,977,977,977,977,977,977,977,977,831,831,831,831,831,831,831,831,831,831,975,977,977,977,977,858,977,831,831,831,831,831,831,831,831,980,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,831,977,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,977,831,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,858,977,977,977,977,977,977,977,977,977,977,977,977,977,977,831,831,831,831,831,831,831,831,831,831,975,977,977,977,977,858,977,831,831,831,831,831,831,831,831,831,831,831,831,831,981,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,831,977,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,977,831,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,858,977,977,977,977,977,977,977,977,977,977,977,977,977,977,831,831,831,831,831,831,831,831,831,831,975,977,977,977,977,858,977,831,831,831,831,831,831,831,831,831,831,831,831,831,982,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,831,977,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,977,831,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,858,977,977,977,977,977,977,977,977,977,977,977,977,977,977,831,831,831,831,831,831,831,831,831,831,975,977,977,977,977,858,977,831,831,831,981,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,831,977,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,977,831,983,985,984,986,987,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,989,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,990,991,805,805,805,805,805,992,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,993,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,994,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,995,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,996,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,997,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,998,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,999,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,1000,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,1001,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,1002,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,1003,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,1004,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,1005,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,1006,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,1007,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,1003,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,1008,805,1009,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,1010,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,1011,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1012,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,1013,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1014,805,805,805,805,805,805,805,805,805,805,805,805,1015,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,1016,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,1017,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,1013,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1018,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,1019,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,1020,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,1021,805,805,805,805,805,805,805,805,805,805,1022,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1023,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1013,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,1024,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1025,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1026,805,805,805,805,805,805,805,988,988,988,988,988,805,1027,1027,1027,1027,1027,1027,1027,1027,1027,203,204,203,203,203,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,203,858,1027,205,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,805,805,805,805,805,805,805,805,805,805,1027,1027,206,1027,1027,858,1027,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1027,207,1027,1027,805,1027,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1027,1027,1027,1027,1027,805,220,221,220,220,220,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,220,219,219,222,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,225,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,224,219,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1029,805,805,805,805,805,805,805,805,805,1030,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,1031,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,858,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,805,805,805,805,805,805,805,805,805,805,1032,1032,1032,1032,1032,858,1032,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1032,1032,1032,1032,805,1032,805,805,805,805,805,805,805,805,1033,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1032,1032,1032,1032,1032,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,1034,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1035,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,1036,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,1037,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,1038,805,1039,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1040,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1013,805,805,805,1041,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,1013,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,1006,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1042,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1043,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1023,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,1044,805,805,805,805,805,805,805,805,805,805,805,805,805,847,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,1045,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1046,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1006,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1013,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,1047,805,805,805,805,805,805,805,1013,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1048,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,1049,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1050,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,1023,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1051,805,805,805,1052,805,805,805,805,805,1053,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1054,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1020,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,1006,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1055,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1056,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,1057,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1058,1059,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1006,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,1060,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1061,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1047,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1062,805,805,1063,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1006,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1064,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,1020,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1065,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1066,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,1067,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,1006,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1068,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1069,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1055,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,1070,805,805,805,805,805,805,805,805,805,1071,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1017,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1046,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,1072,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,1073,805,805,805,805,805,805,805,1074,805,805,805,805,805,805,805,1075,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1076,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,1012,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1077,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1078,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1047,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,1079,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,1047,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,1080,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1017,805,805,805,1081,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,1082,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1047,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,1083,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1084,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,1085,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,1055,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,1086,874,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,814,864,1087,1089,1088,1089,1089,1089,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1089,1088,1088,1090,1088,1088,1091,1088,1088,1088,1088,1088,1088,1088,233,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1092,1088,229,230,229,229,229,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,229,1093,1093,231,1093,1093,232,1093,1093,1093,1093,1093,1093,1093,233,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,234,1093,236,1094,236,236,236,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,236,1094,1094,231,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,234,1094,1096,1095,1098,1097,239,238,244,1093,242,1093,1100,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1101,1099,1100,1099,1100,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1103,1099,1100,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1104,1099,1100,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1105,1099,1107,1105,1109,1108,1108,1108,1109,1108,1108,1108,1108,1110,1111,1110,1110,1110,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1109,1108,1108,1108,1108,1108,1110,1108,1108,1112,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1113,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1114,1108,1108,1115,1108,1110,1116,1110,1110,1110,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1110,1116,1117,1118,1119,1120,1121,1123,1122,1125,1126,1125,1125,1125,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1125,1124,1111,1122,1127,1122,0")),function(a,b){return a.$attr_accessor("_lex_trans_targs"),a.$private("_lex_trans_targs","_lex_trans_targs=")}(f.get_singleton_class(u),z),u['$_lex_trans_targs='](f.large_array_unpack("130,129,0,2,131,132,4,133,134,134,134,134,247,7,8,9,247,247,276,11,12,276,276,280,280,16,11,17,278,279,281,282,280,276,283,284,286,13,14,287,288,15,280,18,19,24,31,290,291,17,278,279,281,282,280,276,283,284,286,13,14,287,288,15,18,19,24,31,290,291,289,20,21,22,23,25,26,29,27,28,30,32,33,276,35,36,37,39,42,40,41,43,45,307,307,307,308,47,310,48,311,49,308,47,310,48,311,345,50,345,51,52,50,345,51,345,345,345,55,56,57,58,356,345,345,345,61,62,63,345,66,61,62,63,345,66,64,64,62,63,366,65,64,64,62,63,366,65,62,345,383,345,68,384,390,72,399,400,77,78,72,73,398,73,398,345,74,75,76,401,79,80,347,53,349,82,83,406,508,85,86,87,508,516,516,516,90,538,537,516,540,542,516,95,96,97,546,516,99,100,557,526,579,103,104,105,109,110,103,104,105,109,110,106,106,104,105,107,108,106,106,104,105,107,108,627,104,516,696,111,698,113,117,699,115,696,112,696,114,698,114,698,116,698,696,710,119,120,121,716,123,124,125,126,127,710,710,128,1,3,129,129,129,135,134,134,136,137,138,139,141,144,145,146,147,134,148,149,151,153,154,155,159,161,162,163,179,184,191,196,203,210,213,214,218,212,222,230,234,236,241,243,246,134,134,134,134,134,134,140,134,140,134,142,5,143,134,6,134,134,150,152,134,156,157,158,154,160,134,164,165,174,177,166,167,168,169,170,171,172,173,135,175,176,178,180,183,181,182,185,188,186,187,189,190,192,194,193,195,197,198,134,199,200,201,202,134,204,207,205,206,208,209,211,215,216,217,219,221,220,223,224,225,227,226,228,229,231,232,233,235,237,238,239,240,242,244,245,248,247,247,249,250,252,253,247,247,247,251,247,251,10,254,247,256,255,255,259,260,261,262,255,264,265,266,267,269,271,272,273,274,275,255,257,255,258,255,255,255,255,255,263,255,263,268,255,270,255,276,276,277,292,293,279,295,296,283,297,298,299,300,301,303,304,305,306,276,276,276,276,276,276,280,285,276,276,276,276,276,276,276,276,276,294,276,294,276,276,276,276,302,276,34,38,44,307,309,312,46,307,307,308,313,313,314,315,317,319,320,313,313,316,313,316,313,318,313,313,313,322,321,321,323,324,325,327,329,330,335,342,321,321,321,321,326,321,326,321,328,321,321,322,331,332,333,334,336,337,340,338,339,341,343,344,346,345,354,355,357,358,360,361,362,363,365,367,368,371,372,397,403,404,405,406,407,408,409,410,364,412,429,434,441,446,448,454,457,458,462,456,466,477,481,484,492,496,499,500,345,50,51,345,53,348,345,345,350,352,353,345,351,345,345,345,345,345,54,345,345,345,345,345,359,345,359,345,345,59,345,60,345,345,364,345,369,345,370,345,345,345,373,382,345,67,385,386,387,345,388,69,391,392,70,395,396,345,374,376,345,375,345,345,377,380,381,345,378,379,345,345,345,345,345,345,389,345,383,393,394,345,393,345,383,393,71,402,345,345,345,345,345,81,84,345,411,413,414,424,427,415,416,417,418,419,420,421,422,423,425,426,428,430,433,431,432,435,438,436,437,439,440,442,444,443,445,447,449,451,450,452,453,455,423,459,460,461,463,465,464,467,468,469,474,470,471,472,345,346,347,53,473,352,475,476,478,479,480,482,483,485,486,487,490,488,489,491,493,494,495,497,498,345,364,501,501,502,503,504,506,501,501,501,505,501,505,501,507,501,509,508,508,510,511,508,512,514,508,508,508,508,513,508,513,515,508,517,516,516,520,521,522,516,523,525,528,529,530,531,532,516,533,534,539,567,571,516,572,574,576,516,577,578,580,584,586,587,589,590,608,613,620,628,635,642,647,648,652,646,657,667,673,676,685,689,693,694,695,528,518,516,519,516,516,516,516,516,516,524,516,524,516,88,527,516,516,516,516,516,516,516,516,516,535,516,536,516,516,89,91,516,92,548,559,562,541,563,564,549,553,555,516,541,92,543,545,93,516,543,516,544,516,516,94,547,516,516,550,552,516,550,551,553,555,552,516,554,516,516,556,558,516,98,516,516,516,560,552,553,555,560,561,516,550,552,553,555,516,550,552,553,555,516,565,552,553,555,565,566,516,92,567,541,568,553,555,569,552,92,569,541,570,573,575,516,101,102,516,516,581,582,583,578,585,516,516,588,516,516,516,591,592,601,606,593,594,595,596,597,598,599,600,517,602,603,604,605,517,607,609,612,610,611,517,517,614,617,615,616,618,619,517,621,623,622,624,625,626,516,516,629,517,630,516,631,632,633,634,518,636,639,637,638,640,641,643,644,645,517,649,650,651,653,655,656,654,517,658,659,660,663,661,662,664,665,666,668,670,669,671,672,674,675,677,678,680,683,679,681,682,684,686,687,688,690,691,692,516,516,696,697,701,702,703,696,696,696,700,696,696,705,704,706,704,707,708,709,704,704,710,710,711,712,713,715,717,718,710,710,710,714,710,714,710,118,710,710,710,122")),function(a,b){return a.$attr_accessor("_lex_trans_actions"),a.$private("_lex_trans_actions","_lex_trans_actions=")}(f.get_singleton_class(u),z),u['$_lex_trans_actions='](f.large_array_unpack("0,53,0,0,0,0,0,0,95,65,93,71,111,0,0,0,99,101,161,0,0,135,157,727,733,1,3,3,481,971,3,484,971,499,971,3,3,481,3,487,3,3,901,3,3,3,3,3,3,0,11,925,0,13,925,139,925,0,0,11,0,15,0,0,0,0,0,0,0,0,733,0,0,0,0,0,0,0,0,0,0,0,0,159,0,0,0,0,0,0,0,0,0,171,163,169,742,0,0,0,742,1,905,3,3,3,905,259,0,219,0,1,3,520,3,265,217,261,0,0,0,0,0,255,201,223,0,1,0,195,0,3,478,3,517,3,5,547,829,547,976,547,0,7,550,7,913,7,397,263,0,209,0,0,0,0,751,751,0,0,17,17,676,0,1,257,0,0,0,751,0,0,766,0,0,0,0,766,287,0,0,0,275,351,295,347,0,51,51,353,805,805,349,0,0,0,0,345,0,0,0,0,0,0,1,0,0,0,3,478,3,3,3,5,547,829,547,547,547,0,7,550,7,7,7,917,397,291,371,0,823,0,45,45,0,369,0,373,5,981,0,921,1,909,357,393,0,0,0,0,0,0,0,0,0,381,427,395,0,0,55,59,57,724,75,73,0,1,0,0,51,51,0,0,0,67,0,0,0,0,721,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,97,63,89,490,85,833,5,553,0,91,0,0,0,83,0,87,69,0,0,79,0,0,0,718,0,81,0,0,0,0,0,0,0,0,0,0,0,0,718,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,77,0,0,0,0,61,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,51,105,103,0,0,51,0,109,107,837,5,556,0,0,1,493,0,117,115,0,1,0,0,113,0,0,0,0,0,0,0,0,0,0,121,0,586,0,598,125,496,123,841,5,559,0,0,127,0,119,141,143,736,1,0,733,0,0,733,0,0,0,0,0,0,51,51,51,153,151,131,406,658,147,730,0,149,133,145,137,403,646,463,505,845,5,562,0,661,155,129,400,897,502,0,0,0,165,51,51,0,167,664,739,175,177,0,0,0,0,0,179,849,5,565,0,181,1,508,173,466,748,185,183,0,1,0,0,0,0,0,0,193,189,514,853,5,568,0,191,1,511,187,745,0,0,0,0,0,0,0,0,0,0,0,0,769,225,0,712,0,0,51,757,0,0,757,757,0,0,51,772,0,772,0,772,772,772,0,0,772,769,769,769,769,769,769,769,769,769,769,769,769,769,769,769,769,769,0,0,247,25,25,592,9,0,604,613,0,766,0,619,0,637,631,625,249,523,3,251,221,412,253,857,5,571,0,231,199,0,241,0,667,229,757,227,0,243,0,245,409,197,0,0,205,0,0,0,0,215,0,0,0,0,0,0,0,235,0,0,589,0,601,610,0,0,0,616,0,0,634,640,628,622,207,203,0,682,19,19,0,237,0,685,21,21,0,0,679,233,239,211,213,0,0,649,1,769,769,769,769,769,769,769,769,769,769,769,769,766,769,769,769,769,769,769,769,769,769,769,769,769,769,769,769,769,769,769,769,769,769,769,769,769,763,769,769,769,769,769,769,769,769,769,769,769,769,760,688,933,929,23,23,760,769,769,769,769,769,769,769,769,769,769,769,769,769,769,769,769,769,769,769,469,754,267,269,0,1,0,0,271,529,861,5,574,0,273,1,526,51,281,279,0,1,277,0,0,285,283,535,865,5,577,0,1,532,811,315,313,0,1,0,293,0,51,817,0,0,0,0,307,0,0,799,799,0,309,0,0,0,305,51,808,808,808,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,820,814,595,0,607,341,541,337,301,869,5,580,0,343,0,0,327,303,335,297,670,673,333,289,329,0,339,0,415,323,0,0,966,881,37,0,0,997,0,0,37,706,706,893,802,0,43,715,0,889,41,448,0,451,454,0,0,460,457,37,37,885,0,0,39,39,0,433,0,442,430,51,0,439,0,445,436,956,33,33,700,700,0,0,946,29,29,694,694,951,31,31,697,697,941,27,27,691,691,0,0,961,877,937,991,35,703,703,937,35,709,799,986,0,0,0,299,0,0,643,325,808,808,808,796,808,652,311,1,538,655,331,0,0,0,0,0,0,0,0,0,0,0,0,793,0,0,0,0,796,0,0,0,0,0,778,784,0,0,0,0,0,0,787,0,0,0,0,0,784,321,319,0,775,0,317,0,0,0,0,790,0,0,0,0,0,0,0,0,0,781,0,0,0,0,0,0,0,790,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,472,475,359,826,826,45,826,367,361,365,0,363,355,0,421,0,377,0,0,0,375,418,383,385,0,1,0,51,0,51,387,544,873,5,583,0,391,0,389,379,424,0")),function(a,b){return a.$attr_accessor("_lex_to_state_actions"),a.$private("_lex_to_state_actions","_lex_to_state_actions=")}(f.get_singleton_class(u),z),u['$_lex_to_state_actions='](f.large_array_unpack("0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,47,47,0,0,0,0,47,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,47,0,0,0,0,0,0,0,47,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,47,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,47,0,0,0,0,0,47,0,0,0,0,0,0,0,47,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,47,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,47,0,0,0,0,0,0,47,0,0,0,0,0,0,0,47,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,47,0,0,0,0,0,0,0,47,0,0,0,0,0,47,0,0,0,0,0,0,0,0")),function(a,b){return a.$attr_accessor("_lex_from_state_actions"),a.$private("_lex_from_state_actions","_lex_from_state_actions=")}(f.get_singleton_class(u),z),u['$_lex_from_state_actions='](f.large_array_unpack("0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,49,49,0,0,0,0,49,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,49,0,0,0,0,0,0,0,49,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,49,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,49,0,0,0,0,0,49,0,0,0,0,0,0,0,49,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,49,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,49,0,0,0,0,0,0,49,0,0,0,0,0,0,0,49,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,49,0,0,0,0,0,0,0,49,0,0,0,0,0,49,0,0,0,0,0,0,0,0")),function(a,b){return a.$attr_accessor("_lex_eof_trans"),a.$private("_lex_eof_trans","_lex_eof_trans=")}(f.get_singleton_class(u),z),u['$_lex_eof_trans='](f.large_array_unpack("0,0,0,0,0,9,11,13,13,13,13,19,19,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,84,84,84,84,84,84,84,84,84,84,84,84,94,96,96,96,108,108,108,116,118,118,118,118,118,124,116,116,116,116,116,116,116,150,150,150,150,150,150,116,166,116,166,150,150,116,116,150,150,150,150,179,179,179,184,186,186,186,190,190,193,193,193,193,198,198,198,184,190,190,190,190,190,190,190,190,190,229,236,238,238,238,238,229,246,246,246,246,246,246,246,246,246,246,0,0,261,261,262,263,0,304,306,307,308,309,311,313,317,317,308,308,308,308,319,308,308,313,308,308,304,323,323,323,323,323,323,313,313,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,362,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,308,0,406,407,408,410,406,406,414,0,433,435,437,438,439,440,441,443,440,440,440,440,440,446,440,440,448,446,446,440,0,467,468,19,19,471,472,19,468,468,475,477,480,468,481,468,482,483,485,487,468,475,488,488,477,488,492,488,488,488,488,0,94,500,501,500,500,0,510,511,513,515,517,515,519,0,531,532,533,534,536,538,540,541,541,541,541,541,541,541,541,541,541,541,541,541,541,541,541,0,599,602,605,606,610,612,613,614,615,616,618,621,622,624,626,629,631,632,116,629,634,629,621,636,638,621,621,656,659,661,662,666,669,670,671,672,656,656,656,656,656,656,656,656,656,656,676,680,682,656,656,621,687,688,688,688,621,621,621,689,116,621,621,694,621,616,599,599,599,599,599,599,599,599,599,599,599,116,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,747,606,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,772,621,0,780,781,782,784,786,788,0,797,798,799,800,802,797,805,0,190,860,862,863,864,865,867,869,871,874,874,190,876,878,879,880,876,882,884,884,887,887,890,901,190,907,909,911,912,915,916,890,890,919,919,919,925,927,928,931,933,934,935,919,919,942,947,952,919,919,959,959,919,919,884,876,876,884,876,876,871,190,977,978,978,978,978,978,978,984,871,987,988,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,1028,1029,989,989,1033,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,1087,865,1088,0,1094,1095,1096,1098,1094,1094,1094,0,1103,1103,1103,1103,1107,0,1117,1118,1119,1121,1123,1125,1123,1123")),function(a,b){return a.$attr_accessor("lex_start")}(f.get_singleton_class(u),z),u['$lex_start='](128),function(a,b){return a.$attr_accessor("lex_error")}(f.get_singleton_class(u),z),u['$lex_error='](0),function(a,b){return a.$attr_accessor("lex_en_expr_variable")}(f.get_singleton_class(u),z),u['$lex_en_expr_variable='](129),function(a,b){return a.$attr_accessor("lex_en_expr_fname")}(f.get_singleton_class(u),z),u['$lex_en_expr_fname='](134),function(a,b){return a.$attr_accessor("lex_en_expr_endfn")}(f.get_singleton_class(u),z),u['$lex_en_expr_endfn='](247),function(a,b){return a.$attr_accessor("lex_en_expr_dot")}(f.get_singleton_class(u),z),u['$lex_en_expr_dot='](255),function(a,b){return a.$attr_accessor("lex_en_expr_arg")}(f.get_singleton_class(u),z),u['$lex_en_expr_arg='](276),function(a,b){return a.$attr_accessor("lex_en_expr_cmdarg")}(f.get_singleton_class(u),z),u['$lex_en_expr_cmdarg='](307),function(a,b){return a.$attr_accessor("lex_en_expr_endarg")}(f.get_singleton_class(u),z),u['$lex_en_expr_endarg='](313),function(a,b){return a.$attr_accessor("lex_en_expr_mid")}(f.get_singleton_class(u),z),u['$lex_en_expr_mid='](321),function(a,b){return a.$attr_accessor("lex_en_expr_beg")}(f.get_singleton_class(u),z),u['$lex_en_expr_beg='](345),function(a,b){return a.$attr_accessor("lex_en_expr_labelarg")}(f.get_singleton_class(u),z),u['$lex_en_expr_labelarg='](501),function(a,b){return a.$attr_accessor("lex_en_expr_value")}(f.get_singleton_class(u),z),u['$lex_en_expr_value='](508),function(a,b){return a.$attr_accessor("lex_en_expr_end")}(f.get_singleton_class(u),z),u['$lex_en_expr_end='](516),function(a,b){return a.$attr_accessor("lex_en_leading_dot")}(f.get_singleton_class(u),z),u['$lex_en_leading_dot='](696),function(a,b){return a.$attr_accessor("lex_en_line_comment")}(f.get_singleton_class(u),z),u['$lex_en_line_comment='](704),function(a,b){return a.$attr_accessor("lex_en_line_begin")}(f.get_singleton_class(u),z),u['$lex_en_line_begin='](710),function(a,b){return a.$attr_accessor("lex_en_inside_string")}(f.get_singleton_class(u),z),u['$lex_en_inside_string='](128),u.$attr_reader("source_buffer"),u.$attr_accessor("diagnostics"),u.$attr_accessor("static_env"),u.$attr_accessor("force_utf32"),u.$attr_accessor("cond","cmdarg","context","command_start"),u.$attr_accessor("tokens","comments"),u.$attr_reader("paren_nest","cmdarg_stack","cond_stack","lambda_stack","version"),g(u,'$initialize',function(c){var b=this;return b.version=c,b.static_env=d,b.context=d,b.tokens=d,b.comments=d,b._lex_actions=e(b.$class()['$respond_to?']("_lex_actions",!0))?b.$class().$send("_lex_actions"):[],b.emit_integer=j(b,'lambda',[],function c(a,b){var e=c.$$s==null?this:c.$$s;return a==null&&(a=d),b==null&&(b=d),e.$emit("tINTEGER",a),b},{$$s:b}),b.emit_rational=j(b,'lambda',[],function c(a,b){var e=c.$$s==null?this:c.$$s;return a==null&&(a=d),b==null&&(b=d),e.$emit("tRATIONAL",e.$Rational(a)),b},{$$s:b}),b.emit_imaginary=j(b,'lambda',[],function c(a,b){var e=c.$$s==null?this:c.$$s;return a==null&&(a=d),b==null&&(b=d),e.$emit("tIMAGINARY",e.$Complex(0,a)),b},{$$s:b}),b.emit_imaginary_rational=j(b,'lambda',[],function e(a,b){var c=e.$$s==null?this:e.$$s;return a==null&&(a=d),b==null&&(b=d),c.$emit("tIMAGINARY",c.$Complex(0,c.$Rational(a))),b},{$$s:b}),b.emit_integer_re=j(b,'lambda',[],function f(c,e){var b=f.$$s==null?this:f.$$s;return b.ts==null&&(b.ts=d),b.te==null&&(b.te=d),c==null&&(c=d),e==null&&(e=d),b.$emit("tINTEGER",c,b.ts,a(b.te,2)),a(e,2)},{$$s:b}),b.emit_integer_if=j(b,'lambda',[],function f(c,e){var b=f.$$s==null?this:f.$$s;return b.ts==null&&(b.ts=d),b.te==null&&(b.te=d),c==null&&(c=d),e==null&&(e=d),b.$emit("tINTEGER",c,b.ts,a(b.te,2)),a(e,2)},{$$s:b}),b.emit_integer_rescue=j(b,'lambda',[],function f(c,e){var b=f.$$s==null?this:f.$$s;return b.ts==null&&(b.ts=d),b.te==null&&(b.te=d),c==null&&(c=d),e==null&&(e=d),b.$emit("tINTEGER",c,b.ts,a(b.te,6)),a(e,6)},{$$s:b}),b.emit_float=j(b,'lambda',[],function c(a,b){var e=c.$$s==null?this:c.$$s;return a==null&&(a=d),b==null&&(b=d),e.$emit("tFLOAT",e.$construct_float(a)),b},{$$s:b}),b.emit_imaginary_float=j(b,'lambda',[],function e(a,b){var c=e.$$s==null?this:e.$$s;return a==null&&(a=d),b==null&&(b=d),c.$emit("tIMAGINARY",c.$Complex(0,c.$construct_float(a))),b},{$$s:b}),b.emit_float_if=j(b,'lambda',[],function f(c,e){var b=f.$$s==null?this:f.$$s;return b.ts==null&&(b.ts=d),b.te==null&&(b.te=d),c==null&&(c=d),e==null&&(e=d),b.$emit("tFLOAT",b.$construct_float(c),b.ts,a(b.te,2)),a(e,2)},{$$s:b}),b.emit_float_rescue=j(b,'lambda',[],function f(c,e){var b=f.$$s==null?this:f.$$s;return b.ts==null&&(b.ts=d),b.te==null&&(b.te=d),c==null&&(c=d),e==null&&(e=d),b.$emit("tFLOAT",b.$construct_float(c),b.ts,a(b.te,6)),a(e,6)},{$$s:b}),b.$reset()}),g(u,'$construct_float',function(c){var a,e=this,b=d;return k.VERBOSE==null&&(k.VERBOSE=d),function(){try{return a=[k.VERBOSE,d],b=a[0],k.VERBOSE=a[1],a,e.$Float(c)}finally{k.VERBOSE=b}}()}),g(u,'$reset',function(b){var a=this;return b==null&&(b=!0),e(b)&&(a.cs=a.$class().$lex_en_line_begin(),a.cond=w('StackState').$new("cond"),a.cmdarg=w('StackState').$new("cmdarg"),a.cond_stack=[],a.cmdarg_stack=[]),a.force_utf32=!1,a.source_pts=d,a.p=0,a.ts=d,a.te=d,a.act=0,a.stack=[],a.top=0,a.token_queue=[],a.eq_begin_s=d,a.sharp_s=d,a.newline_s=d,a.num_base=d,a.num_digits_s=d,a.num_suffix_s=d,a.num_xfrm=d,a.paren_nest=0,a.lambda_stack=[],a.command_start=!0,a.cs_before_block_comment=a.$class().$lex_en_line_begin(),a.strings=p(w('Parser'),'LexerStrings').$new(a,a.version)},-1),g(u,'$source_buffer=',function(f){var b,a=this,c=d;return a.source_buffer=f,e(a.source_buffer)?(c=a.source_buffer.$source(),h(c.$encoding(),p(w('Encoding'),'UTF_8'))?a.source_pts=c.$unpack("U*"):a.source_pts=c.$unpack("C*"),h(a.source_pts['$[]'](0),65279)&&(a.p=1)):a.source_pts=d,a.strings['$source_buffer='](a.source_buffer),(b=[a.source_pts],j(a.strings,'source_pts=',b),b[b.length-1])}),g(u,'$encoding',function(){var a=this;return a.source_buffer.$source().$encoding()}),q(z[0],'LEX_STATES',new Map([["line_begin",u.$lex_en_line_begin()],["expr_dot",u.$lex_en_expr_dot()],["expr_fname",u.$lex_en_expr_fname()],["expr_value",u.$lex_en_expr_value()],["expr_beg",u.$lex_en_expr_beg()],["expr_mid",u.$lex_en_expr_mid()],["expr_arg",u.$lex_en_expr_arg()],["expr_cmdarg",u.$lex_en_expr_cmdarg()],["expr_end",u.$lex_en_expr_end()],["expr_endarg",u.$lex_en_expr_endarg()],["expr_endfn",u.$lex_en_expr_endfn()],["expr_labelarg",u.$lex_en_expr_labelarg()],["inside_string",u.$lex_en_inside_string()]])),g(u,'$state',function(){var a=this;return w('LEX_STATES').$invert().$fetch(a.cs,a.cs)}),g(u,'$state=',function(a){var b=this;return b.cs=w('LEX_STATES').$fetch(a)}),g(u,'$push_cmdarg',function(){var a=this;return a.cmdarg_stack.$push(a.cmdarg),a.cmdarg=w('StackState').$new("cmdarg."+a.cmdarg_stack.$count())}),g(u,'$pop_cmdarg',function(){var a=this;return a.cmdarg=a.cmdarg_stack.$pop()}),g(u,'$push_cond',function(){var a=this;return a.cond_stack.$push(a.cond),a.cond=w('StackState').$new("cond."+a.cond_stack.$count())}),g(u,'$pop_cond',function(){var a=this;return a.cond=a.cond_stack.$pop()}),g(u,'$dedent_level',function(){var a=this;return a.strings.$dedent_level()}),g(u,'$advance',function(){var x,J,f=this,G=d,V=d,ao=d,am=d,W=d,al=d,ae=d,ak=d,aj=d,$=d,L=d,O=d,g=d,P=d,D=d,ai=d,S=d,N=d,Q=d,T=d,A=d,F=d,p=d,X=d,ac=d,v=d,Y=d,u=d,q=d,U=d,j=d,y=d,_=d,ah=d,aa=d,ab=d,ag=d,ad=d,E=d,B=d,z=d,I=d,R=d,af=d,K=d,M=d,H=d,an=d,Z=d,C=d;if(!e(f.token_queue['$empty?']()))return f.token_queue.$shift();for(G=f.$class(),V=G.$send("_lex_trans_keys"),ao=G.$send("_lex_key_spans"),am=G.$send("_lex_index_offsets"),W=G.$send("_lex_indicies"),al=G.$send("_lex_trans_targs"),ae=G.$send("_lex_trans_actions"),ak=G.$send("_lex_to_state_actions"),aj=G.$send("_lex_from_state_actions"),$=G.$send("_lex_eof_trans"),L=f._lex_actions,O=c(f.source_pts.$size(),2),x=[f.p,O],g=x[0],P=x[1],x,D=f.command_start,f.command_start=!1,ai=!1,J=d,x=s(J),S=x[0]==null?d:x[0],N=x[1]==null?d:x[1],Q=x[2]==null?d:x[2],T=x[3]==null?d:x[3],A=x[4]==null?d:x[4],F=x[5]==null?d:x[5],J,p=0,X=10,ac=15,v=20,Y=30,u=40;e(!0);){if(q=!1,e(n(p,0))){if(h(g,O)){p=Y;continue}if(h(f.cs,0)){p=u;continue}}if(e(n(p,X))){for(A=aj['$[]'](f.cs),F=L['$[]'](A),A=c(A,1);e(m(F,0));)switch(F=a(F,1),A=c(A,1),L['$[]'](a(A,1)).valueOf()){case 52:f.ts=g;break;default:d}if(e(q))continue;Q=f.cs['$<<'](1),T=am['$[]'](f.cs),S=ao['$[]'](f.cs),U=e(j=f.source_pts['$[]'](g))?j:0,N=e(m(S,0))&&e(n(V['$[]'](Q),U))&&e(n(U,V['$[]'](c(Q,1))))?W['$[]'](a(c(T,U),V['$[]'](Q))):W['$[]'](c(T,S))}if(e(n(p,ac))){if(f.cs=al['$[]'](N),t(ae['$[]'](N),0))for(A=ae['$[]'](N),F=L['$[]'](A),A=c(A,1);e(m(F,0));)if(F=a(F,1),A=c(A,1),b(0,j=L['$[]'](a(A,1))))f.newline_s=g;else if(b(1,j))f.num_xfrm=f.emit_integer;else if(b(2,j))f.num_xfrm=f.emit_rational;else if(b(3,j))f.num_xfrm=f.emit_imaginary;else if(b(4,j))f.num_xfrm=f.emit_imaginary_rational;else if(b(5,j))f.num_xfrm=f.emit_integer_re;else if(b(6,j))f.num_xfrm=f.emit_integer_if;else if(b(7,j))f.num_xfrm=f.emit_integer_rescue;else if(b(8,j))f.num_xfrm=f.emit_float;else if(b(9,j))f.num_xfrm=f.emit_imaginary_float;else if(b(10,j))f.num_xfrm=f.emit_float_if;else if(b(11,j))f.num_xfrm=f.emit_rational;else if(b(12,j))f.num_xfrm=f.emit_imaginary_rational;else if(b(13,j))f.num_xfrm=f.emit_float_rescue;else if(b(14,j))f.$e_lbrace();else if(b(15,j)){if(e(f.strings.$close_interp_on_current_literal(g))){g=a(g,1),f.cs=128,g=c(g,1),q=!0,p=u;break}f.paren_nest=a(f.paren_nest,1)}else if(b(16,j))g=f.$on_newline(g);else if(b(17,j))f.sharp_s=a(g,1);else if(b(18,j))f.$emit_comment_from_range(g,O);else if(b(19,j))y=g;else if(b(20,j))y=a(g,2);else if(b(21,j))y=g;else if(b(22,j))y=a(g,2);else if(b(23,j))y=a(g,2);else if(b(24,j))y=a(g,2);else if(b(25,j))y=a(g,3);else if(b(26,j))y=a(g,2);else if(b(27,j))y=a(g,2);else if(b(28,j))f.cond.$push(!1),f.cmdarg.$push(!1),f.paren_nest=c(f.paren_nest,1);else if(b(29,j))f.paren_nest=a(f.paren_nest,1);else if(b(30,j))f.cond.$push(!1),f.cmdarg.$push(!1),f.paren_nest=c(f.paren_nest,1),e(f['$version?'](18))&&(f.command_start=!0);else if(b(31,j))f.paren_nest=a(f.paren_nest,1);else if(b(32,j))y=g;else if(b(33,j))y=g;else if(b(34,j))y=g;else if(b(35,j))_=g;else if(b(36,j))ah=g;else if(b(37,j))y=a(g,1),aa="ivar_name";else if(b(38,j))y=a(g,2),aa="cvar_name";else if(b(39,j))y=g;else if(b(40,j))ab=f.$tok(),ag=f.ts,ad=f.te;else if(b(41,j))f.num_base=16,f.num_digits_s=g;else if(b(42,j))f.num_base=10,f.num_digits_s=g;else if(b(43,j))f.num_base=8,f.num_digits_s=g;else if(b(44,j))f.num_base=2,f.num_digits_s=g;else if(b(45,j))f.num_base=10,f.num_digits_s=f.ts;else if(b(46,j))f.num_base=8,f.num_digits_s=f.ts;else if(b(47,j))f.num_suffix_s=g;else if(b(48,j))f.num_suffix_s=g;else if(b(49,j))f.num_suffix_s=g;else if(b(50,j))y=g;else if(b(53,j))f.te=c(g,1);else if(b(54,j)){f.te=c(g,1),f.$emit_global_var(),f.cs=f.$stack_pop(),g=c(g,1),q=!0,p=u;break}else if(b(55,j)){f.te=g,g=a(g,1),f.$emit_global_var(),f.cs=f.$stack_pop(),g=c(g,1),q=!0,p=u;break}else if(b(56,j)){f.te=g,g=a(g,1),f.$emit_class_var(),f.cs=f.$stack_pop(),g=c(g,1),q=!0,p=u;break}else if(b(57,j)){f.te=g,g=a(g,1),f.$emit_instance_var(),f.cs=f.$stack_pop(),g=c(g,1),q=!0,p=u;break}else if(b(58,j))f.act=4;else if(b(59,j))f.act=5;else if(b(60,j))f.act=6;else if(b(61,j)){f.te=c(g,1),f.$emit_table(w('KEYWORDS_BEGIN')),f.cs=247,g=c(g,1),q=!0,p=u;break}else if(b(62,j)){f.te=c(g,1),f.$emit("tIDENTIFIER"),f.cs=247,g=c(g,1),q=!0,p=u;break}else if(b(63,j)){f.te=c(g,1),g=a(f.ts,1),f.cs=516,f.stack['$[]='](f.top,f.cs),f.top=c(f.top,1),f.cs=129,q=!0,p=v;break}else if(b(64,j)){f.te=c(g,1),f.$emit_table(w('PUNCTUATION')),f.cs=247,g=c(g,1),q=!0,p=u;break}else if(b(65,j)){f.te=c(g,1),g=a(g,1),g=a(g,1),f.cs=516,q=!0,p=v;break}else if(b(66,j))if(f.te=c(g,1),e(f['$version?'](23))){x=[f.$tok()['$[]'](r(0,-2,!1)),f.$tok()['$[]'](-1).$chr()],E=x[0],B=x[1],x,f.strings.$push_literal(E,B,f.ts),f.cs=128,q=!0,p=v;break}else{g=a(f.ts,1),f.cs=516,q=!0,p=v;break}else if(b(67,j)){f.te=c(g,1),g=a(g,1),f.cs=516,q=!0,p=v;break}else if(b(68,j)){f.te=c(g,1),g=a(g,1),g=c(g,1),q=!0,p=u;break}else if(b(69,j)){f.te=g,g=a(g,1),f.$emit_table(w('KEYWORDS_BEGIN')),f.cs=247,g=c(g,1),q=!0,p=u;break}else if(b(70,j)){f.te=g,g=a(g,1),f.$emit("tCONSTANT"),f.cs=247,g=c(g,1),q=!0,p=u;break}else if(b(71,j)){f.te=g,g=a(g,1),f.$emit("tIDENTIFIER"),f.cs=247,g=c(g,1),q=!0,p=u;break}else if(b(72,j)){f.te=g,g=a(g,1),g=a(f.ts,1),f.cs=516,f.stack['$[]='](f.top,f.cs),f.top=c(f.top,1),f.cs=129,q=!0,p=v;break}else if(b(73,j)){f.te=g,g=a(g,1),f.$emit_table(w('PUNCTUATION')),f.cs=247,g=c(g,1),q=!0,p=u;break}else if(b(74,j)){f.te=g,g=a(g,1),g=a(g,1),f.cs=345,q=!0,p=v;break}else if(b(75,j))f.te=g,g=a(g,1);else if(b(76,j)){f.te=g,g=a(g,1),g=a(g,1),f.cs=516,q=!0,p=v;break}else if(b(77,j)){g=a(f.te,1),f.$emit_table(w('PUNCTUATION')),f.cs=247,g=c(g,1),q=!0,p=u;break}else if(b(78,j)){g=a(f.te,1),g=a(g,1),f.cs=516,q=!0,p=v;break}else if(b(79,j))if(b(4,z=f.act)){g=a(f.te,1),f.$emit_table(w('KEYWORDS_BEGIN')),f.cs=247,g=c(g,1),q=!0,p=u;break}else if(b(5,z)){g=a(f.te,1),f.$emit("tCONSTANT"),f.cs=247,g=c(g,1),q=!0,p=u;break}else if(b(6,z)){g=a(f.te,1),f.$emit("tIDENTIFIER"),f.cs=247,g=c(g,1),q=!0,p=u;break}else d;else if(b(80,j)){f.te=c(g,1),f.$emit("tLABEL",f.$tok(f.ts,a(f.te,2)),f.ts,a(f.te,1)),g=a(g,1),f.cs=501,g=c(g,1),q=!0,p=u;break}else if(b(81,j))if(f.te=c(g,1),e(i(f.version,31))&&e(f.context.$in_argdef())){f.$emit("tBDOT3","...".$freeze()),f.cs=516,g=c(g,1),q=!0,p=u;break}else{g=a(g,3),f.cs=516,q=!0,p=v;break}else if(b(82,j)){f.te=c(g,1),g=a(g,1),f.cs=516,q=!0,p=v;break}else if(b(83,j)){f.te=c(g,1),g=a(g,1),g=c(g,1),q=!0,p=u;break}else if(b(84,j))f.te=g,g=a(g,1);else if(b(85,j)){f.te=g,g=a(g,1),g=a(g,1),f.cs=516,q=!0,p=v;break}else if(b(86,j)){g=a(f.te,1),g=a(g,1),f.cs=516,q=!0,p=v;break}else if(b(87,j)){f.te=c(g,1),f.$emit_table(w('PUNCTUATION')),f.cs=276,g=c(g,1),q=!0,p=u;break}else if(b(88,j)){f.te=c(g,1),g=a(g,1),f.cs=516,q=!0,p=v;break}else if(b(89,j)){f.te=c(g,1),g=a(g,1),g=c(g,1),q=!0,p=u;break}else if(b(90,j)){f.te=g,g=a(g,1),f.$emit("tCONSTANT"),f.cs=f.$arg_or_cmdarg(D),g=c(g,1),q=!0,p=u;break}else if(b(91,j)){f.te=g,g=a(g,1),f.$emit("tIDENTIFIER"),f.cs=f.$arg_or_cmdarg(D),g=c(g,1),q=!0,p=u;break}else if(b(92,j)){f.te=g,g=a(g,1),f.$emit("tFID",f.$tok(f.ts,y),f.ts,y),f.cs=f.$arg_or_cmdarg(D),g=a(y,1),g=c(g,1),q=!0,p=u;break}else if(b(93,j)){f.te=g,g=a(g,1),f.$emit_table(w('PUNCTUATION')),f.cs=276,g=c(g,1),q=!0,p=u;break}else if(b(94,j))f.te=g,g=a(g,1);else if(b(95,j)){f.te=g,g=a(g,1),g=a(g,1),f.cs=516,q=!0,p=v;break}else if(b(96,j))f.act=33;else if(b(97,j))f.act=34;else if(b(98,j))f.act=39;else if(b(99,j))f.act=40;else if(b(100,j)){f.te=c(g,1),g=a(f.ts,1),f.cs=516,q=!0,p=v;break}else if(b(101,j)){f.te=c(g,1),f.$check_ambiguous_slash(y),g=a(y,1),f.cs=345,q=!0,p=v;break}else if(b(102,j)){f.te=c(g,1),g=a(g,1),g=a(g,1),f.cs=345,q=!0,p=v;break}else if(b(103,j)){f.te=c(g,1),g=a(f.ts,1),f.cs=345,q=!0,p=v;break}else if(b(104,j)){f.te=c(g,1),g=a(y,1),f.cs=516,q=!0,p=v;break}else if(b(105,j)){f.te=c(g,1),g=a(f.ts,1),f.cs=516,q=!0,p=v;break}else if(b(106,j)){f.te=c(g,1),g=a(g,1),f.cs=345,q=!0,p=v;break}else if(b(107,j)){f.te=c(g,1),g=a(g,1),g=c(g,1),q=!0,p=u;break}else if(b(108,j))if(f.te=g,g=a(g,1),e(f['$version?'](18))){f.$emit("tLPAREN2","(".$freeze(),a(f.te,1),f.te),f.cs=508,g=c(g,1),q=!0,p=u;break}else{f.$emit("tLPAREN_ARG","(".$freeze(),a(f.te,1),f.te),f.cs=345,g=c(g,1),q=!0,p=u;break}else if(b(109,j)){f.te=g,g=a(g,1),f.$emit("tLPAREN2","(".$freeze()),f.cs=345,g=c(g,1),q=!0,p=u;break}else if(b(110,j)){f.te=g,g=a(g,1),f.$emit("tLBRACK","[".$freeze(),a(f.te,1),f.te),f.cs=345,g=c(g,1),q=!0,p=u;break}else if(b(111,j)){f.te=g,g=a(g,1),h(f.lambda_stack.$last(),f.paren_nest)?(f.lambda_stack.$pop(),f.$emit("tLAMBEG","{".$freeze(),a(f.te,1),f.te)):f.$emit("tLCURLY","{".$freeze(),a(f.te,1),f.te),f.command_start=!0,f.paren_nest=c(f.paren_nest,1),f.cs=508,g=c(g,1),q=!0,p=u;break}else if(b(112,j)){f.te=g,g=a(g,1),g=a(g,1),f.cs=345,q=!0,p=v;break}else if(b(113,j)){f.te=g,g=a(g,1),f.$diagnostic("warning","ambiguous_prefix",new Map([["prefix",f.$tok(y,f.te)]]),f.$range(y,f.te)),g=a(y,1),f.cs=345,q=!0,p=v;break}else if(b(114,j)){f.te=g,g=a(g,1),g=a(g,1),f.cs=345,q=!0,p=v;break}else if(b(115,j)){f.te=g,g=a(g,1),g=a(f.ts,1),f.cs=516,q=!0,p=v;break}else if(b(116,j))f.te=g,g=a(g,1);else if(b(117,j)){f.te=g,g=a(g,1),f.cs=516,q=!0,p=v;break}else if(b(118,j)){f.te=g,g=a(g,1),g=a(g,1),f.cs=516,q=!0,p=v;break}else if(b(119,j)){f.te=g,g=a(g,1),g=a(g,1),f.cs=345,q=!0,p=v;break}else if(b(120,j))g=a(f.te,1);else if(b(121,j)){g=a(f.te,1),g=a(g,1),f.cs=345,q=!0,p=v;break}else if(b(122,j))if(b(33,z=f.act)){g=a(f.te,1),f.$check_ambiguous_slash(y),g=a(y,1),f.cs=345,q=!0,p=v;break}else if(b(34,z)){g=a(f.te,1),f.$diagnostic("warning","ambiguous_prefix",new Map([["prefix",f.$tok(y,f.te)]]),f.$range(y,f.te)),g=a(y,1),f.cs=345,q=!0,p=v;break}else if(b(39,z)){g=a(f.te,1),g=a(f.ts,1),f.cs=516,q=!0,p=v;break}else g=a(f.te,1);else if(b(123,j))f.act=46;else if(b(124,j))f.act=47;else if(b(125,j)){f.te=c(g,1),g=a(f.ts,1),f.cs=276,q=!0,p=v;break}else if(b(126,j)){f.te=c(g,1),g=a(g,1),g=c(g,1),q=!0,p=u;break}else if(b(127,j))if(f.te=g,g=a(g,1),f.$emit("tLPAREN_ARG","(".$freeze(),a(f.te,1),f.te),e(f['$version?'](18))){f.cs=508,g=c(g,1),q=!0,p=u;break}else{f.cs=345,g=c(g,1),q=!0,p=u;break}else if(b(128,j)){f.te=g,g=a(g,1),g=a(f.ts,1),f.cs=276,q=!0,p=v;break}else if(b(129,j)){g=a(f.te,1),g=a(f.ts,1),f.cs=276,q=!0,p=v;break}else if(b(130,j))if(b(46,z=f.act)){g=a(f.te,1),e(f.cond['$active?']())?f.$emit("kDO_COND","do".$freeze(),a(f.te,2),f.te):f.$emit("kDO","do".$freeze(),a(f.te,2),f.te),f.cs=508,g=c(g,1),q=!0,p=u;break}else if(b(47,z)){g=a(f.te,1),g=a(f.ts,1),f.cs=276,q=!0,p=v;break}else d;else if(b(131,j)){f.te=c(g,1),f.$emit_do(!0),f.cs=508,g=c(g,1),q=!0,p=u;break}else if(b(132,j)){f.te=c(g,1),g=a(g,1),f.cs=516,q=!0,p=v;break}else if(b(133,j)){f.te=c(g,1),g=a(g,1),g=c(g,1),q=!0,p=u;break}else if(b(134,j)){f.te=g,g=a(g,1),h(f.lambda_stack.$last(),f.paren_nest)?(f.lambda_stack.$pop(),f.$emit("tLAMBEG","{".$freeze())):f.$emit("tLBRACE_ARG","{".$freeze()),f.paren_nest=c(f.paren_nest,1),f.command_start=!0,f.cs=508,g=c(g,1),q=!0,p=u;break}else if(b(135,j))f.te=g,g=a(g,1);else if(b(136,j)){f.te=g,g=a(g,1),g=a(g,1),f.cs=516,q=!0,p=v;break}else if(b(137,j))f.act=54;else if(b(138,j))f.act=55;else if(b(139,j)){f.te=c(g,1),g=a(g,1),f.cs=345,q=!0,p=v;break}else if(b(140,j)){f.te=c(g,1),g=a(g,1),g=c(g,1),q=!0,p=u;break}else if(b(141,j)){f.te=g,g=a(g,1),g=a(f.ts,1),f.cs=345,q=!0,p=v;break}else if(b(142,j))f.te=g,g=a(g,1);else if(b(143,j)){f.te=g,g=a(g,1),g=a(g,1),f.cs=516,q=!0,p=v;break}else if(b(144,j)){f.te=g,g=a(g,1),g=a(g,1),f.cs=345,q=!0,p=v;break}else if(b(145,j))if(b(54,z=f.act)){g=a(f.te,1),f.$emit_table(w('KEYWORDS')),f.cs=345,g=c(g,1),q=!0,p=u;break}else if(b(55,z)){g=a(f.te,1),g=a(f.ts,1),f.cs=345,q=!0,p=v;break}else d;else if(b(146,j))f.act=60;else if(b(147,j))f.act=67;else if(b(148,j))f.act=76;else if(b(149,j))f.act=80;else if(b(150,j))f.act=81;else if(b(151,j))f.act=82;else if(b(152,j))f.act=86;else if(b(153,j))f.act=87;else if(b(154,j))f.act=91;else if(b(155,j)){f.te=c(g,1),f.$emit("tUNARY_NUM",f.$tok(f.ts,c(f.ts,1)),f.ts,c(f.ts,1)),g=a(g,1),f.cs=516,g=c(g,1),q=!0,p=u;break}else if(b(156,j)){f.te=c(g,1),E=B=f.$tok()['$[]'](0).$chr(),f.strings.$push_literal(E,B,f.ts),g=a(g,1),f.cs=128,q=!0,p=v;break}else if(b(157,j)){f.te=c(g,1),x=[f.source_buffer.$slice(f.ts,1).$chr(),f.$tok()['$[]'](-1).$chr()],E=x[0],B=x[1],x,f.strings.$push_literal(E,B,f.ts),f.cs=128,q=!0,p=v;break}else if(b(158,j)){f.te=c(g,1),x=[f.$tok()['$[]'](r(0,-2,!1)),f.$tok()['$[]'](-1).$chr()],E=x[0],B=x[1],x,f.strings.$push_literal(E,B,f.ts),f.cs=128,q=!0,p=v;break}else if(b(159,j)){f.te=c(g,1),g=a(g,1),g=a(g,1),f.$emit("tSYMBEG",f.$tok(f.ts,c(f.ts,1)),f.ts,c(f.ts,1)),f.cs=134,q=!0,p=v;break}else if(b(160,j)){f.te=c(g,1),x=[f.$tok(),f.$tok()['$[]'](-1).$chr()],E=x[0],B=x[1],x,f.strings.$push_literal(E,B,f.ts),f.cs=128,q=!0,p=v;break}else if(b(161,j)){f.te=c(g,1),f.$emit("tSYMBOL",f.$tok(c(f.ts,1),c(f.ts,2))),f.cs=516,g=c(g,1),q=!0,p=u;break}else if(b(162,j)){f.te=c(g,1),I=f.$tok(c(f.ts,1)),e(i(f.version,33))&&e(I['$start_with?']("$0"))&&e(m(I.$length(),2))&&f.$diagnostic("error","gvar_name",new Map([["name",I]]),f.$range(c(f.ts,1),f.te)),f.$emit("tSYMBOL",I,f.ts),f.cs=516,g=c(g,1),q=!0,p=u;break}else if(b(163,j)){if(f.te=c(g,1),J=f.strings.$read_character_constant(f.ts),x=s(J),g=x[0]==null?d:x[0],R=x[1]==null?d:x[1],J,g=a(g,1),e(f.token_queue['$empty?']())){f.cs=R,q=!0,p=v;break}f.cs=R,g=c(g,1),q=!0,p=u;break}else if(b(164,j))f.te=c(g,1),f.$diagnostic("fatal","incomplete_escape",d,f.$range(f.ts,c(f.ts,1)));else if(b(165,j)){f.te=c(g,1),f.$emit_table(w('PUNCTUATION_BEGIN')),g=c(g,1),q=!0,p=u;break}else if(b(166,j)){f.te=c(g,1),g=a(g,1),e(f['$version?'](18))?(af=f.$tok(f.ts,a(f.te,2)),f.$emit(e(f.source_buffer.$slice(f.ts,1)['$=~'](/[A-Z]/))?"tCONSTANT":"tIDENTIFIER",af,f.ts,a(f.te,2)),g=a(g,1),l(f.static_env['$nil?']())&&e(f.static_env['$declared?'](af))?f.cs=516:f.cs=f.$arg_or_cmdarg(D)):(f.$emit("tLABEL",f.$tok(f.ts,a(f.te,2)),f.ts,a(f.te,1)),f.cs=501),g=c(g,1),q=!0,p=u;break}else if(b(167,j)){f.te=c(g,1),K=a(f.te,1)['$=='](f.newline_s),M=!1,H=e(K)?a(f.te,1):f.te,e(i(f.version,30))?e(f.lambda_stack['$any?']())&&h(c(f.lambda_stack.$last(),1),f.paren_nest)?f.$emit("tDOT3","...".$freeze(),f.ts,H):(f.$emit("tBDOT3","...".$freeze(),f.ts,H),e(i(f.version,31))&&e(K)&&e(f.context.$in_argdef())&&(f.$emit("tNL",a(f.te,1),f.te),M=!0)):e(i(f.version,27))?f.$emit("tBDOT3","...".$freeze(),f.ts,H):f.$emit("tDOT3","...".$freeze(),f.ts,H),e(K)&&l(M)&&(g=a(g,1)),f.cs=345,g=c(g,1),q=!0,p=u;break}else if(b(168,j)){f.te=c(g,1),f.$emit("tIDENTIFIER",ab,ag,ad),g=a(ad,1),l(f.static_env['$nil?']())&&e(f.static_env['$declared?'](ab))&&e(o(f.version,25))?f.cs=247:f.cs=307,g=c(g,1),q=!0,p=u;break}else if(b(169,j)){f.te=c(g,1),g=a(f.ts,1),f.cs_before_block_comment=f.cs,f.cs=710,q=!0,p=v;break}else if(b(170,j)){f.te=c(g,1),g=a(f.ts,1),f.cs=516,q=!0,p=v;break}else if(b(171,j)){f.te=c(g,1),g=a(g,1),g=c(g,1),q=!0,p=u;break}else if(b(172,j)){f.te=g,g=a(g,1),f.$emit("tUNARY_NUM",f.$tok(f.ts,c(f.ts,1)),f.ts,c(f.ts,1)),g=a(g,1),f.cs=516,g=c(g,1),q=!0,p=u;break}else if(b(173,j)){f.te=g,g=a(g,1),f.$emit("tSTAR","*".$freeze()),g=c(g,1),q=!0,p=u;break}else if(b(174,j))f.te=g,g=a(g,1),f.$diagnostic("fatal","string_eof",d,f.$range(f.ts,c(f.ts,1)));else if(b(175,j))if(f.te=g,g=a(g,1),f.$tok(f.ts,_)['$=~'](/^<<(-?)(~?)(["'`]?)(.*)\3$/m),an=e(z=((x=k['~'])===d?d:x['$[]'](1))['$empty?']()['$!']())?z:((x=k['~'])===d?d:x['$[]'](2))['$empty?']()['$!'](),Z=((x=k['~'])===d?d:x['$[]'](2))['$empty?']()['$!'](),E=e(((x=k['~'])===d?d:x['$[]'](3))['$empty?']())?'<<"'.$freeze():c("<<".$freeze(),(x=k['~'])===d?d:x['$[]'](3)),B=(x=k['~'])===d?d:x['$[]'](4),e(i(f.version,27))?(e(m(B.$count("\n"),0))||e(m(B.$count("\r"),0)))&&f.$diagnostic("error","unterminated_heredoc_id",d,f.$range(f.ts,c(f.ts,1))):e(i(f.version,24))&&e(m(B.$count("\n"),0))&&(e(B['$end_with?']("\n"))?(f.$diagnostic("warning","heredoc_id_ends_with_nl",d,f.$range(f.ts,c(f.ts,1))),B=B.$rstrip()):f.$diagnostic("fatal","heredoc_id_has_newline",d,f.$range(f.ts,c(f.ts,1)))),e(Z)&&e(f['$version?'](18,19,20,21,22))){f.$emit("tLSHFT","<<".$freeze(),f.ts,c(f.ts,2)),g=c(f.ts,1),f.cs=345,g=c(g,1),q=!0,p=u;break}else f.strings.$push_literal(E,B,f.ts,_,an,Z),e(z=f.strings.$herebody_s())?z:f.strings['$herebody_s='](ah),g=a(f.strings.$herebody_s(),1),f.cs=128;else if(b(176,j))f.te=g,g=a(g,1),f.$diagnostic("error","unterminated_heredoc_id",d,f.$range(f.ts,c(f.ts,1)));else if(b(177,j)){f.te=g,g=a(g,1),f.$emit("tSYMBOL",f.$tok(c(f.ts,1),y),f.ts,y),g=a(y,1),f.cs=516,g=c(g,1),q=!0,p=u;break}else if(b(178,j)){f.te=g,g=a(g,1),I=f.$tok(c(f.ts,1)),e(i(f.version,33))&&e(I['$start_with?']("$0"))&&e(m(I.$length(),2))&&f.$diagnostic("error","gvar_name",new Map([["name",I]]),f.$range(c(f.ts,1),f.te)),f.$emit("tSYMBOL",I,f.ts),f.cs=516,g=c(g,1),q=!0,p=u;break}else if(b(179,j)){f.te=g,g=a(g,1),f.$emit_colon_with_digits(g,y,aa),f.cs=516,g=c(g,1),q=!0,p=u;break}else if(b(180,j))f.te=g,g=a(g,1),f.$diagnostic("fatal","incomplete_escape",d,f.$range(f.ts,c(f.ts,1)));else if(b(181,j)){f.te=g,g=a(g,1),h(f.lambda_stack.$last(),f.paren_nest)?(f.lambda_stack.$pop(),f.command_start=!0,f.$emit("tLAMBEG","{".$freeze())):f.$emit("tLBRACE","{".$freeze()),f.paren_nest=c(f.paren_nest,1),g=c(g,1),q=!0,p=u;break}else if(b(182,j)){f.te=g,g=a(g,1),f.$emit("tLBRACK","[".$freeze()),g=c(g,1),q=!0,p=u;break}else if(b(183,j)){f.te=g,g=a(g,1),f.$emit("tLPAREN","(".$freeze()),g=c(g,1),q=!0,p=u;break}else if(b(184,j)){f.te=g,g=a(g,1),f.$emit_table(w('PUNCTUATION_BEGIN')),g=c(g,1),q=!0,p=u;break}else if(b(185,j)){f.te=g,g=a(g,1),f.$emit("kRESCUE","rescue".$freeze(),f.ts,y),g=a(y,1),f.cs=321,g=c(g,1),q=!0,p=u;break}else if(b(186,j)){f.te=g,g=a(g,1),e(i(f.version,27))?f.$emit("tBDOT2"):f.$emit("tDOT2"),f.cs=345,g=c(g,1),q=!0,p=u;break}else if(b(187,j)){f.te=g,g=a(g,1),K=a(f.te,1)['$=='](f.newline_s),M=!1,H=e(K)?a(f.te,1):f.te,e(i(f.version,30))?e(f.lambda_stack['$any?']())&&h(c(f.lambda_stack.$last(),1),f.paren_nest)?f.$emit("tDOT3","...".$freeze(),f.ts,H):(f.$emit("tBDOT3","...".$freeze(),f.ts,H),e(i(f.version,31))&&e(K)&&e(f.context.$in_argdef())&&(f.$emit("tNL",a(f.te,1),f.te),M=!0)):e(i(f.version,27))?f.$emit("tBDOT3","...".$freeze(),f.ts,H):f.$emit("tDOT3","...".$freeze(),f.ts,H),e(K)&&l(M)&&(g=a(g,1)),f.cs=345,g=c(g,1),q=!0,p=u;break}else if(b(188,j)){f.te=g,g=a(g,1),g=a(f.ts,1),f.cs=516,q=!0,p=v;break}else if(b(189,j))if(f.te=g,g=a(g,1),f.$emit("tIDENTIFIER"),l(f.static_env['$nil?']())&&e(f.static_env['$declared?'](f.$tok()))){f.cs=247,g=c(g,1),q=!0,p=u;break}else if(e(i(f.version,32))&&e(f.$tok()['$=~'](/^_[1-9]$/))){f.cs=247,g=c(g,1),q=!0,p=u;break}else{f.cs=f.$arg_or_cmdarg(D),g=c(g,1),q=!0,p=u;break}else if(b(190,j))f.te=g,g=a(g,1);else if(b(191,j)){f.te=g,g=a(g,1),g=a(f.ts,1),f.cs_before_block_comment=f.cs,f.cs=710,q=!0,p=v;break}else if(b(192,j)){f.te=g,g=a(g,1),g=a(f.ts,1),f.cs=516,q=!0,p=v;break}else if(b(193,j))g=a(f.te,1),f.$diagnostic("fatal","string_eof",d,f.$range(f.ts,c(f.ts,1)));else if(b(194,j))g=a(f.te,1),f.$diagnostic("error","unterminated_heredoc_id",d,f.$range(f.ts,c(f.ts,1)));else if(b(195,j))if(g=a(f.te,1),f.$emit("tIDENTIFIER"),l(f.static_env['$nil?']())&&e(f.static_env['$declared?'](f.$tok()))){f.cs=247,g=c(g,1),q=!0,p=u;break}else if(e(i(f.version,32))&&e(f.$tok()['$=~'](/^_[1-9]$/))){f.cs=247,g=c(g,1),q=!0,p=u;break}else{f.cs=f.$arg_or_cmdarg(D),g=c(g,1),q=!0,p=u;break}else if(b(196,j))g=a(f.te,1);else if(b(197,j)){g=a(f.te,1),g=a(f.ts,1),f.cs=516,q=!0,p=v;break}else if(b(198,j))if(b(60,z=f.act)){g=a(f.te,1),f.$emit("tUNARY_NUM",f.$tok(f.ts,c(f.ts,1)),f.ts,c(f.ts,1)),g=a(g,1),f.cs=516,g=c(g,1),q=!0,p=u;break}else if(b(67,z))g=a(f.te,1),f.$diagnostic("error","unterminated_heredoc_id",d,f.$range(f.ts,c(f.ts,1)));else if(b(76,z))if(g=a(f.te,1),e(i(f.version,27))){f.$emit("tPIPE",f.$tok(f.ts,c(f.ts,1)),f.ts,c(f.ts,1)),g=a(g,1),f.cs=345,g=c(g,1),q=!0,p=u;break}else{g=a(g,2),f.cs=516,q=!0,p=v;break}else if(b(80,z)){g=a(f.te,1),f.$emit_table(w('PUNCTUATION_BEGIN')),g=c(g,1),q=!0,p=u;break}else if(b(81,z)){g=a(f.te,1),f.$emit("kRESCUE","rescue".$freeze(),f.ts,y),g=a(y,1),f.cs=321,g=c(g,1),q=!0,p=u;break}else if(b(82,z)){g=a(f.te,1),f.$emit_table(w('KEYWORDS_BEGIN')),f.command_start=!0,f.cs=508,g=c(g,1),q=!0,p=u;break}else if(b(86,z)){g=a(f.te,1),g=a(f.ts,1),f.cs=516,q=!0,p=v;break}else if(b(87,z))if(g=a(f.te,1),f.$emit("tIDENTIFIER"),l(f.static_env['$nil?']())&&e(f.static_env['$declared?'](f.$tok()))){f.cs=247,g=c(g,1),q=!0,p=u;break}else if(e(i(f.version,32))&&e(f.$tok()['$=~'](/^_[1-9]$/))){f.cs=247,g=c(g,1),q=!0,p=u;break}else{f.cs=f.$arg_or_cmdarg(D),g=c(g,1),q=!0,p=u;break}else if(b(91,z)){g=a(f.te,1),g=a(f.ts,1),f.cs=516,q=!0,p=v;break}else d;else if(b(199,j)){f.te=c(g,1),g=a(g,1),f.cs=345,q=!0,p=v;break}else if(b(200,j)){f.te=c(g,1),g=a(g,1),g=c(g,1),q=!0,p=u;break}else if(b(201,j))f.te=g,g=a(g,1);else if(b(202,j))if(f.te=g,g=a(g,1),e(f.context.$in_kwarg())){g=a(g,1),f.cs=516,q=!0,p=v;break}else{f.cs=710,q=!0,p=v;break}else if(b(203,j)){f.te=g,g=a(g,1),g=a(g,1),f.cs=345,q=!0,p=v;break}else if(b(204,j)){f.te=c(g,1),g=a(f.ts,1),f.cs=516,q=!0,p=v;break}else if(b(205,j)){f.te=c(g,1),f.strings.$push_literal(f.$tok(),f.$tok(),f.ts),f.cs=128,q=!0,p=v;break}else if(b(206,j)){f.te=c(g,1),g=a(g,1),f.cs=345,q=!0,p=v;break}else if(b(207,j)){f.te=c(g,1),g=a(g,1),g=c(g,1),q=!0,p=u;break}else if(b(208,j))f.te=g,g=a(g,1);else if(b(209,j)){f.te=g,g=a(g,1),f.cs=710,q=!0,p=v;break}else if(b(210,j)){f.te=g,g=a(g,1),g=a(g,1),f.cs=345,q=!0,p=v;break}else if(b(211,j)){g=a(f.te,1),g=a(g,1),f.cs=345,q=!0,p=v;break}else if(b(212,j))f.act=104;else if(b(213,j))f.act=105;else if(b(214,j))f.act=106;else if(b(215,j))f.act=107;else if(b(216,j))f.act=108;else if(b(217,j))f.act=109;else if(b(218,j))f.act=110;else if(b(219,j))f.act=111;else if(b(220,j))f.act=112;else if(b(221,j))f.act=113;else if(b(222,j))f.act=115;else if(b(223,j))f.act=116;else if(b(224,j))f.act=117;else if(b(225,j))f.act=119;else if(b(226,j))f.act=123;else if(b(227,j))f.act=124;else if(b(228,j))f.act=126;else if(b(229,j))f.act=127;else if(b(230,j)){f.te=c(g,1),f.$emit("tLAMBDA","->".$freeze(),f.ts,c(f.ts,2)),f.lambda_stack.$push(f.paren_nest),f.cs=247,g=c(g,1),q=!0,p=u;break}else if(b(231,j)){f.te=c(g,1),f.$emit_singleton_class(),f.cs=508,g=c(g,1),q=!0,p=u;break}else if(b(232,j)){f.te=c(g,1),x=[f.$tok(),f.$tok()['$[]'](-1).$chr()],E=x[0],B=x[1],x,f.strings.$push_literal(E,B,f.ts,d,!1,!1,!0),f.cs=128,q=!0,p=v;break}else if(b(233,j)){f.te=c(g,1),g=a(f.ts,1),f.stack['$[]='](f.top,f.cs),f.top=c(f.top,1),f.cs=129,q=!0,p=v;break}else if(b(234,j)){f.te=c(g,1),f.$emit_table(w('PUNCTUATION')),f.cs=255,g=c(g,1),q=!0,p=u;break}else if(b(235,j)){f.te=c(g,1),f.$emit_table(w('PUNCTUATION')),f.cs=508,g=c(g,1),q=!0,p=u;break}else if(b(236,j)){f.te=c(g,1),f.$emit_table(w('PUNCTUATION')),f.cs=508,g=c(g,1),q=!0,p=u;break}else if(b(237,j)){f.te=c(g,1),f.$emit("tOP_ASGN",f.$tok(f.ts,a(f.te,1))),f.cs=345,g=c(g,1),q=!0,p=u;break}else if(b(238,j)){f.te=c(g,1),f.$emit("tEH","?".$freeze()),f.cs=508,g=c(g,1),q=!0,p=u;break}else if(b(239,j)){f.te=c(g,1),h(f.paren_nest,0)&&f.$diagnostic("warning","triple_dot_at_eol",d,f.$range(f.ts,a(f.te,1))),f.$emit("tDOT3","...".$freeze(),f.ts,a(f.te,1)),g=a(g,1),f.cs=345,g=c(g,1),q=!0,p=u;break}else if(b(240,j)){f.te=c(g,1),f.$emit_table(w('PUNCTUATION')),f.cs=345,g=c(g,1),q=!0,p=u;break}else if(b(241,j)){f.te=c(g,1),f.$emit("tSEMI",";".$freeze()),f.command_start=!0,f.cs=508,g=c(g,1),q=!0,p=u;break}else if(b(242,j))f.te=c(g,1),f.$diagnostic("error","bare_backslash",d,f.$range(f.ts,c(f.ts,1))),g=a(g,1);else if(b(243,j))f.te=c(g,1),f.$diagnostic("fatal","unexpected",new Map([["character",f.$tok().$inspect()['$[]'](r(1,-2,!1))]]));else if(b(244,j)){f.te=c(g,1),g=a(g,1),g=c(g,1),q=!0,p=u;break}else if(b(245,j)){f.te=g,g=a(g,1),h(f.lambda_stack.$last(),f.paren_nest)?(f.lambda_stack.$pop(),h(f.$tok(),"{".$freeze())?f.$emit("tLAMBEG","{".$freeze()):f.$emit("kDO_LAMBDA","do".$freeze())):h(f.$tok(),"{".$freeze())?f.$emit("tLCURLY","{".$freeze()):f.$emit_do(),h(f.$tok(),"{".$freeze())&&(f.paren_nest=c(f.paren_nest,1)),f.command_start=!0,f.cs=508,g=c(g,1),q=!0,p=u;break}else if(b(246,j)){f.te=g,g=a(g,1),f.$emit_table(w('KEYWORDS')),f.cs=134,g=c(g,1),q=!0,p=u;break}else if(b(247,j)){f.te=g,g=a(g,1),f.$emit_singleton_class(),f.cs=508,g=c(g,1),q=!0,p=u;break}else if(b(248,j)){f.te=g,g=a(g,1),f.$emit_table(w('KEYWORDS')),f.command_start=!0,f.cs=508,g=c(g,1),q=!0,p=u;break}else if(b(249,j)){f.te=g,g=a(g,1),C=f.$numeric_literal_int(),e(f['$version?'](18,19,20))?(f.$emit("tINTEGER",C.$to_i(f.num_base),f.ts,f.num_suffix_s),g=a(f.num_suffix_s,1)):g=f.num_xfrm.$call(C.$to_i(f.num_base),g),g=c(g,1),q=!0,p=u;break}else if(b(250,j))f.te=g,g=a(g,1),f.$diagnostic("error","no_dot_digit_literal");else if(b(251,j)){f.te=g,g=a(g,1),C=f.$tok(f.ts,f.num_suffix_s),e(f['$version?'](18,19,20))?(f.$emit("tFLOAT",f.$Float(C),f.ts,f.num_suffix_s),g=a(f.num_suffix_s,1)):g=f.num_xfrm.$call(C,g),g=c(g,1),q=!0,p=u;break}else if(b(252,j)){f.te=g,g=a(g,1),f.$emit("tCONSTANT"),f.cs=f.$arg_or_cmdarg(D),g=c(g,1),q=!0,p=u;break}else if(b(253,j)){f.te=g,g=a(g,1),f.$emit("tCONSTANT",f.$tok(f.ts,y),f.ts,y),g=a(y,1),g=c(g,1),q=!0,p=u;break}else if(b(254,j)){f.te=g,g=a(g,1),g=a(f.ts,1),f.stack['$[]='](f.top,f.cs),f.top=c(f.top,1),f.cs=129,q=!0,p=v;break}else if(b(255,j)){f.te=g,g=a(g,1),f.$emit_table(w('PUNCTUATION')),f.cs=255,g=c(g,1),q=!0,p=u;break}else if(b(256,j))if(f.te=g,g=a(g,1),f.$emit("tIDENTIFIER"),l(f.static_env['$nil?']())&&e(f.static_env['$declared?'](f.$tok()))){f.cs=247,g=c(g,1),q=!0,p=u;break}else if(e(i(f.version,32))&&e(f.$tok()['$=~'](/^_[1-9]$/))){f.cs=247,g=c(g,1),q=!0,p=u;break}else{f.cs=f.$arg_or_cmdarg(D),g=c(g,1),q=!0,p=u;break}else if(b(257,j)){f.te=g,g=a(g,1),h(y,f.te)?f.$emit("tFID"):(f.$emit("tIDENTIFIER",f.$tok(f.ts,y),f.ts,y),g=a(y,1)),f.cs=276,g=c(g,1),q=!0,p=u;break}else if(b(258,j)){f.te=g,g=a(g,1),f.$emit_table(w('PUNCTUATION')),f.cs=508,g=c(g,1),q=!0,p=u;break}else if(b(259,j)){f.te=g,g=a(g,1),f.$emit_table(w('PUNCTUATION')),f.cs=508,g=c(g,1),q=!0,p=u;break}else if(b(260,j)){f.te=g,g=a(g,1),f.$emit_table(w('PUNCTUATION')),f.cs=345,g=c(g,1),q=!0,p=u;break}else if(b(261,j)){f.te=g,g=a(g,1),f.$emit_rbrace_rparen_rbrack(),(h(f.$tok(),"}".$freeze())||h(f.$tok(),"]".$freeze()))&&(e(i(f.version,25))?f.cs=516:f.cs=313),g=c(g,1),q=!0,p=u;break}else if(b(262,j)){f.te=g,g=a(g,1),f.$emit("tLBRACK2","[".$freeze()),f.cs=345,g=c(g,1),q=!0,p=u;break}else if(b(263,j)){f.te=g,g=a(g,1),f.$emit_table(w('PUNCTUATION')),f.cs=345,g=c(g,1),q=!0,p=u;break}else if(b(264,j))f.te=g,g=a(g,1);else if(b(265,j)){f.te=g,g=a(g,1),f.cs=696,q=!0,p=v;break}else if(b(266,j))f.te=g,g=a(g,1),f.$diagnostic("fatal","unexpected",new Map([["character",f.$tok().$inspect()['$[]'](r(1,-2,!1))]]));else if(b(267,j)){g=a(f.te,1),C=f.$numeric_literal_int(),e(f['$version?'](18,19,20))?(f.$emit("tINTEGER",C.$to_i(f.num_base),f.ts,f.num_suffix_s),g=a(f.num_suffix_s,1)):g=f.num_xfrm.$call(C.$to_i(f.num_base),g),g=c(g,1),q=!0,p=u;break}else if(b(268,j))g=a(f.te,1),f.$diagnostic("error","no_dot_digit_literal");else if(b(269,j)){g=a(f.te,1),C=f.$tok(f.ts,f.num_suffix_s),e(f['$version?'](18,19,20))?(f.$emit("tFLOAT",f.$Float(C),f.ts,f.num_suffix_s),g=a(f.num_suffix_s,1)):g=f.num_xfrm.$call(C,g),g=c(g,1),q=!0,p=u;break}else if(b(270,j))g=a(f.te,1),f.$diagnostic("fatal","unexpected",new Map([["character",f.$tok().$inspect()['$[]'](r(1,-2,!1))]]));else if(b(271,j))if(b(104,z=f.act)){g=a(f.te,1),h(f.lambda_stack.$last(),f.paren_nest)?(f.lambda_stack.$pop(),h(f.$tok(),"{".$freeze())?f.$emit("tLAMBEG","{".$freeze()):f.$emit("kDO_LAMBDA","do".$freeze())):h(f.$tok(),"{".$freeze())?f.$emit("tLCURLY","{".$freeze()):f.$emit_do(),h(f.$tok(),"{".$freeze())&&(f.paren_nest=c(f.paren_nest,1)),f.command_start=!0,f.cs=508,g=c(g,1),q=!0,p=u;break}else if(b(105,z)){g=a(f.te,1),f.$emit_table(w('KEYWORDS')),f.cs=134,g=c(g,1),q=!0,p=u;break}else if(b(106,z)){g=a(f.te,1),f.$emit_singleton_class(),f.cs=508,g=c(g,1),q=!0,p=u;break}else if(b(107,z)){g=a(f.te,1),f.$emit_table(w('KEYWORDS')),f.cs=345,g=c(g,1),q=!0,p=u;break}else if(b(108,z)){g=a(f.te,1),f.$emit_table(w('KEYWORDS')),f.command_start=!0,f.cs=508,g=c(g,1),q=!0,p=u;break}else if(b(109,z)){g=a(f.te,1),f.$emit_table(w('KEYWORDS')),f.cs=321,g=c(g,1),q=!0,p=u;break}else if(b(110,z))if(g=a(f.te,1),f.$emit_table(w('KEYWORDS')),e(f['$version?'](18))&&h(f.$tok(),"not".$freeze())){f.cs=345,g=c(g,1),q=!0,p=u;break}else{f.cs=276,g=c(g,1),q=!0,p=u;break}else if(b(111,z)){g=a(f.te,1),e(f['$version?'](18))?(f.$emit("tIDENTIFIER"),l(f.static_env['$nil?']())&&e(f.static_env['$declared?'](f.$tok()))||(f.cs=f.$arg_or_cmdarg(D))):f.$emit("k__ENCODING__","__ENCODING__".$freeze()),g=c(g,1),q=!0,p=u;break}else if(b(112,z)){g=a(f.te,1),f.$emit_table(w('KEYWORDS')),g=c(g,1),q=!0,p=u;break}else if(b(113,z)){g=a(f.te,1),C=f.$numeric_literal_int(),e(f['$version?'](18,19,20))?(f.$emit("tINTEGER",C.$to_i(f.num_base),f.ts,f.num_suffix_s),g=a(f.num_suffix_s,1)):g=f.num_xfrm.$call(C.$to_i(f.num_base),g),g=c(g,1),q=!0,p=u;break}else if(b(115,z))if(g=a(f.te,1),e(f['$version?'](18,19,20)))f.$diagnostic("error","trailing_in_number",new Map([["character",f.$tok(a(f.te,1),f.te)]]),f.$range(a(f.te,1),f.te));else{f.$emit("tINTEGER",f.$tok(f.ts,a(f.te,1)).$to_i(),f.ts,a(f.te,1)),g=a(g,1),g=c(g,1),q=!0,p=u;break}else if(b(116,z))if(g=a(f.te,1),e(f['$version?'](18,19,20)))f.$diagnostic("error","trailing_in_number",new Map([["character",f.$tok(a(f.te,1),f.te)]]),f.$range(a(f.te,1),f.te));else{f.$emit("tFLOAT",f.$tok(f.ts,a(f.te,1)).$to_f(),f.ts,a(f.te,1)),g=a(g,1),g=c(g,1),q=!0,p=u;break}else if(b(117,z)){g=a(f.te,1),C=f.$tok(f.ts,f.num_suffix_s),e(f['$version?'](18,19,20))?(f.$emit("tFLOAT",f.$Float(C),f.ts,f.num_suffix_s),g=a(f.num_suffix_s,1)):g=f.num_xfrm.$call(C,g),g=c(g,1),q=!0,p=u;break}else if(b(119,z)){g=a(f.te,1),f.$emit("tCONSTANT"),f.cs=f.$arg_or_cmdarg(D),g=c(g,1),q=!0,p=u;break}else if(b(123,z))if(g=a(f.te,1),f.$emit("tIDENTIFIER"),l(f.static_env['$nil?']())&&e(f.static_env['$declared?'](f.$tok()))){f.cs=247,g=c(g,1),q=!0,p=u;break}else if(e(i(f.version,32))&&e(f.$tok()['$=~'](/^_[1-9]$/))){f.cs=247,g=c(g,1),q=!0,p=u;break}else{f.cs=f.$arg_or_cmdarg(D),g=c(g,1),q=!0,p=u;break}else if(b(124,z)){g=a(f.te,1),h(y,f.te)?f.$emit("tFID"):(f.$emit("tIDENTIFIER",f.$tok(f.ts,y),f.ts,y),g=a(y,1)),f.cs=276,g=c(g,1),q=!0,p=u;break}else if(b(126,z)){g=a(f.te,1),f.$emit_table(w('PUNCTUATION')),f.cs=508,g=c(g,1),q=!0,p=u;break}else if(b(127,z)){g=a(f.te,1),f.$emit_table(w('PUNCTUATION')),f.cs=345,g=c(g,1),q=!0,p=u;break}else d;else if(b(272,j))f.act=140;else if(b(273,j))f.act=144;else if(b(274,j))if(f.te=c(g,1),f.$emit("tNL",d,f.newline_s,c(f.newline_s,1)),e(o(f.version,27))){g=a(g,1),f.cs=710,g=c(g,1),q=!0,p=u;break}else{f.$emit("tBDOT3"),f.cs=345,g=c(g,1),q=!0,p=u;break}else if(b(275,j)){f.te=c(g,1),g=a(y,1),f.cs=516,q=!0,p=v;break}else if(b(276,j)){f.te=c(g,1),f.$emit("tNL",d,f.newline_s,c(f.newline_s,1)),g=a(g,1),f.cs=710,g=c(g,1),q=!0,p=u;break}else if(b(277,j)){if(f.te=g,g=a(g,1),e(o(f.version,27))){f.$emit("tNL",d,f.newline_s,c(f.newline_s,1)),g=a(g,1),f.cs=710,g=c(g,1),q=!0,p=u;break}}else if(b(278,j))if(f.te=g,g=a(g,1),f.$emit("tNL",d,f.newline_s,c(f.newline_s,1)),e(o(f.version,27))){g=a(g,1),f.cs=710,g=c(g,1),q=!0,p=u;break}else{f.$emit("tBDOT2"),f.cs=345,g=c(g,1),q=!0,p=u;break}else if(b(279,j)){f.te=g,g=a(g,1),g=a(y,1),f.cs=516,q=!0,p=v;break}else if(b(280,j)){f.te=g,g=a(g,1),f.$emit("tNL",d,f.newline_s,c(f.newline_s,1)),g=a(g,1),f.cs=710,g=c(g,1),q=!0,p=u;break}else if(b(281,j)){if(g=a(f.te,1),e(o(f.version,27))){f.$emit("tNL",d,f.newline_s,c(f.newline_s,1)),g=a(g,1),f.cs=710,g=c(g,1),q=!0,p=u;break}}else if(b(282,j)){g=a(f.te,1),f.$emit("tNL",d,f.newline_s,c(f.newline_s,1)),g=a(g,1),f.cs=710,g=c(g,1),q=!0,p=u;break}else if(b(283,j))if(b(140,z=f.act)){if(g=a(f.te,1),e(o(f.version,27))){f.$emit("tNL",d,f.newline_s,c(f.newline_s,1)),g=a(g,1),f.cs=710,g=c(g,1),q=!0,p=u;break}}else if(b(144,z)){g=a(f.te,1),f.$emit("tNL",d,f.newline_s,c(f.newline_s,1)),g=a(g,1),f.cs=710,g=c(g,1),q=!0,p=u;break}else d;else if(b(284,j)){f.te=c(g,1),f.$emit_comment(f.eq_begin_s,f.te),f.cs=f.cs_before_block_comment,q=!0,p=v;break}else if(b(285,j))f.te=c(g,1);else if(b(286,j)){f.te=g,g=a(g,1),f.$emit_comment(f.eq_begin_s,f.te),f.cs=f.cs_before_block_comment,q=!0,p=v;break}else if(b(287,j))f.te=g,g=a(g,1),f.$diagnostic("fatal","embedded_document",d,f.$range(f.eq_begin_s,c(f.eq_begin_s,"=begin".$length())));else if(b(288,j)){f.te=c(g,1),f.eq_begin_s=f.ts,f.cs=704,q=!0,p=v;break}else if(b(289,j))f.te=c(g,1),g=a(O,3);else if(b(290,j)){f.te=c(g,1),D=!0,g=a(g,1),f.cs=508,q=!0,p=v;break}else if(b(291,j)){f.te=c(g,1),g=a(g,1),g=c(g,1),q=!0,p=u;break}else if(b(292,j))f.te=g,g=a(g,1);else if(b(293,j)){f.te=g,g=a(g,1),f.eq_begin_s=f.ts,f.cs=704,q=!0,p=v;break}else if(b(294,j)){f.te=g,g=a(g,1),D=!0,g=a(g,1),f.cs=508,q=!0,p=v;break}else if(b(295,j)){g=a(f.te,1),D=!0,g=a(g,1),f.cs=508,q=!0,p=v;break}else if(b(296,j)){f.te=c(g,1),J=f.strings.$advance(g),x=s(J),g=x[0]==null?d:x[0],R=x[1]==null?d:x[1],J,g=a(g,1),f.cs=R,g=c(g,1),q=!0,p=u;break}else d;if(e(q))continue}if(e(n(p,v))){for(A=ak['$[]'](f.cs),F=L['$[]'](A),A=c(A,1);e(m(F,0));)switch(F=a(F,1),A=c(A,1),L['$[]'](a(A,1)).valueOf()){case 51:f.ts=d;break;default:d}if(e(q))continue;if(h(f.cs,0)){p=u;continue}if(g=c(g,1),t(g,O)){p=X;continue}}if(e(n(p,Y)))if(h(g,P))if(e(m($['$[]'](f.cs),0))){N=a($['$[]'](f.cs),1),p=ac;continue}if(e(n(p,u)))break}return e(!1)&&ai,f.p=g,e(f.token_queue['$any?']())?f.token_queue.$shift():h(f.cs,G.$lex_error())?[!1,["$error".$freeze(),f.$range(a(g,1),g)]]:(P=f.source_pts.$size(),[!1,["$eof".$freeze(),f.$range(P,P)]])}),u.$protected(),g(u,'$version?',function(e){var a,b,c=this;return a=v(arguments),b=a,b['$include?'](c.version)},-1),g(u,'$stack_pop',function(){var b=this;return b.top=a(b.top,1),b.stack['$[]'](b.top)}),g(u,'$tok',function(b,c){var d=this;return b==null&&(b=d.ts),c==null&&(c=d.te),d.source_buffer.$slice(b,a(c,b))},-1),g(u,'$range',function(a,b){var c=this;return a==null&&(a=c.ts),b==null&&(b=c.te),p(p(w('Parser'),'Source'),'Range').$new(c.source_buffer,a,b)},-1),g(u,'$emit',function(h,c,f,g){var a=this,b=d;return c==null&&(c=a.$tok()),f==null&&(f=a.ts),g==null&&(g=a.te),b=[h,[c,a.$range(f,g)]],a.token_queue.$push(b),e(a.tokens)&&a.tokens.$push(b),b},-2),g(u,'$emit_table',function(f,a,b){var c=this,e=d;return a==null&&(a=c.ts),b==null&&(b=c.te),e=c.$tok(a,b),c.$emit(f['$[]'](e),e,a,b)},-2),g(u,'$emit_do',function(b){var a=this;return b==null&&(b=!1),e(a.cond['$active?']())?a.$emit("kDO_COND","do".$freeze()):e(a.cmdarg['$active?']())||e(b)?a.$emit("kDO_BLOCK","do".$freeze()):a.$emit("kDO","do".$freeze())},-1),g(u,'$arg_or_cmdarg',function(b){var a=this;return e(b)?a.$class().$lex_en_expr_cmdarg():a.$class().$lex_en_expr_arg()}),g(u,'$emit_comment',function(b,c){var a=this;return b==null&&(b=a.ts),c==null&&(c=a.te),e(a.comments)&&a.comments.$push(p(p(w('Parser'),'Source'),'Comment').$new(a.$range(b,c))),e(a.tokens)&&a.tokens.$push(["tCOMMENT",[a.$tok(b,c),a.$range(b,c)]]),d},-1),g(u,'$emit_comment_from_range',function(b,d){var c=this;return c.$emit_comment(c.sharp_s,h(b,d)?a(b,2):b)}),g(u,'$diagnostic',function(f,g,a,b,c){var e=this;return a==null&&(a=d),b==null&&(b=e.$range()),c==null&&(c=[]),e.diagnostics.$process(p(w('Parser'),'Diagnostic').$new(f,g,a,b,c))},-3),g(u,'$e_lbrace',function(){var a=this,b=d;return a.cond.$push(!1),a.cmdarg.$push(!1),b=a.strings.$literal(),e(b)?b.$start_interp_brace():d}),g(u,'$numeric_literal_int',function(){var b=this,f=d,i=d,g=d;return f=b.$tok(b.num_digits_s,b.num_suffix_s),e(f['$end_with?']("_".$freeze()))?b.$diagnostic("error","trailing_in_number",new Map([["character","_".$freeze()]]),b.$range(a(b.te,1),b.te)):e(f['$empty?']())&&h(b.num_base,8)&&e(b['$version?'](18))?f="0".$freeze():e(f['$empty?']())?b.$diagnostic("error","empty_numeric"):h(b.num_base,8)&&e(i=f.$index(/[89]/))&&(g=c(b.num_digits_s,i),b.$diagnostic("error","invalid_octal",d,b.$range(g,c(g,1)))),f}),g(u,'$on_newline',function(a){var b=this;return b.strings.$on_newline(a)}),g(u,'$check_ambiguous_slash',function(a){var b=this;return h(b.$tok(a,c(a,1)),"/".$freeze())?e(o(b.version,30))?b.$diagnostic("warning","ambiguous_literal",d,b.$range(a,c(a,1))):b.$diagnostic("warning","ambiguous_regexp",d,b.$range(a,c(a,1))):d}),g(u,'$emit_global_var',function(b,d){var a=this;return b==null&&(b=a.ts),d==null&&(d=a.te),e(a.$tok(b,d)['$=~'](/^\$([1-9][0-9]*)$/))?a.$emit("tNTH_REF",a.$tok(c(b,1),d).$to_i(),b,d):e(a.$tok()['$=~'](/^\$([&`'+])$/))?a.$emit("tBACK_REF",a.$tok(b,d),b,d):a.$emit("tGVAR",a.$tok(b,d),b,d)},-1),g(u,'$emit_class_var',function(b,c){var a=this;return b==null&&(b=a.ts),c==null&&(c=a.te),e(a.$tok(b,c)['$=~'](/^@@[0-9]/))&&a.$diagnostic("error","cvar_name",new Map([["name",a.$tok(b,c)]])),a.$emit("tCVAR",a.$tok(b,c),b,c)},-1),g(u,'$emit_instance_var',function(b,c){var a=this;return b==null&&(b=a.ts),c==null&&(c=a.te),e(a.$tok(b,c)['$=~'](/^@[0-9]/))&&a.$diagnostic("error","ivar_name",new Map([["name",a.$tok(b,c)]])),a.$emit("tIVAR",a.$tok(b,c),b,c)},-1),g(u,'$emit_rbrace_rparen_rbrack',function(){var a=this;return a.$emit_table(w('PUNCTUATION')),e(o(a.version,24))?(a.cond.$lexpop(),a.cmdarg.$lexpop()):(a.cond.$pop(),a.cmdarg.$pop())}),g(u,'$emit_colon_with_digits',function(b,d,f){var a=this;return e(i(a.version,27))?a.$diagnostic("error",f,new Map([["name",a.$tok(d,a.te)]]),a.$range(d,a.te)):(a.$emit("tCOLON",a.$tok(a.ts,c(a.ts,1)),a.ts,c(a.ts,1)),b=a.ts),b}),g(u,'$emit_singleton_class',function(){var b=this;return b.$emit("kCLASS","class".$freeze(),b.ts,c(b.ts,5)),b.$emit("tLSHFT","<<".$freeze(),a(b.te,2),b.te)}),q(z[0],'PUNCTUATION',new Map([["=","tEQL"],["&","tAMPER2"],["|","tPIPE"],["!","tBANG"],["^","tCARET"],["+","tPLUS"],["-","tMINUS"],["*","tSTAR2"],["/","tDIVIDE"],["%","tPERCENT"],["~","tTILDE"],[",","tCOMMA"],[";","tSEMI"],[".","tDOT"],["..","tDOT2"],["...","tDOT3"],["[","tLBRACK2"],["]","tRBRACK"],["(","tLPAREN2"],[")","tRPAREN"],["?","tEH"],[":","tCOLON"],["&&","tANDOP"],["||","tOROP"],["-@","tUMINUS"],["+@","tUPLUS"],["~@","tTILDE"],["**","tPOW"],["->","tLAMBDA"],["=~","tMATCH"],["!~","tNMATCH"],["==","tEQ"],["!=","tNEQ"],[">","tGT"],[">>","tRSHFT"],[">=","tGEQ"],["<","tLT"],["<<","tLSHFT"],["<=","tLEQ"],["=>","tASSOC"],["::","tCOLON2"],["===","tEQQ"],["<=>","tCMP"],["[]","tAREF"],["[]=","tASET"],["{","tLCURLY"],["}","tRCURLY"],["`","tBACK_REF2"],["!@","tBANG"],["&.","tANDDOT"]])),q(z[0],'PUNCTUATION_BEGIN',new Map([["&","tAMPER"],["*","tSTAR"],["**","tDSTAR"],["+","tUPLUS"],["-","tUMINUS"],["::","tCOLON3"],["(","tLPAREN"],["{","tLBRACE"],["[","tLBRACK"]])),q(z[0],'KEYWORDS',new Map([["if","kIF_MOD"],["unless","kUNLESS_MOD"],["while","kWHILE_MOD"],["until","kUNTIL_MOD"],["rescue","kRESCUE_MOD"],["defined?","kDEFINED"],["BEGIN","klBEGIN"],["END","klEND"]])),q(z[0],'KEYWORDS_BEGIN',new Map([["if","kIF"],["unless","kUNLESS"],["while","kWHILE"],["until","kUNTIL"],["rescue","kRESCUE"],["defined?","kDEFINED"],["BEGIN","klBEGIN"],["END","klEND"]])),q(z[0],'ESCAPE_WHITESPACE',new Map([[" ","\\s"],["\r","\\r"],["\n","\\n"],[" ","\\t"],[" ","\\v"],[" ","\\f"]])),j(f.large_array_unpack("class,module,def,undef,begin,end,then,elsif,else,ensure,case,when,for,break,next,redo,retry,in,do,return,yield,super,self,nil,true,false,and,or,not,alias,__FILE__,__LINE__,__ENCODING__"),'each',[],function(a){var b,c;return a==null&&(a=d),(b=[a,(c=[a,"k"+a.$upcase()],j(w('KEYWORDS'),'[]=',c),c[c.length-1])],j(w('KEYWORDS_BEGIN'),'[]=',b),b[b.length-1])})}(w('Parser'),null,u)},Opal.modules["parser/lexer-F1"]=function(e){var w=e.klass,d=e.truthy,i=e.send,a=e.rb_minus,g=e.def,k=e.gvars,f=e.eqeq,p=e.const_set,b=e.rb_plus,r=e.to_ary,m=e.rb_le,n=e.rb_gt,s=e.neqeq,q=e.range,h=e.rb_ge,j=e.not,l=e.rb_lt,u=e.slice,t=[],v=e.$r(t),c=e.nil,o=e.$$$;return e.add_stubs('attr_accessor,private,_lex_trans_keys=,_lex_key_spans=,_lex_index_offsets=,_lex_indicies=,_lex_trans_targs=,_lex_trans_actions=,_lex_to_state_actions=,_lex_from_state_actions=,_lex_eof_trans=,lex_start=,lex_error=,lex_en_expr_variable=,lex_en_expr_fname=,lex_en_expr_endfn=,lex_en_expr_dot=,lex_en_expr_arg=,lex_en_expr_cmdarg=,lex_en_expr_endarg=,lex_en_expr_mid=,lex_en_expr_beg=,lex_en_expr_labelarg=,lex_en_expr_value=,lex_en_expr_end=,lex_en_leading_dot=,lex_en_line_comment=,lex_en_line_begin=,lex_en_inside_string=,attr_reader,respond_to?,class,send,lambda,emit,Rational,Complex,-,construct_float,reset,Float,lex_en_line_begin,new,source,==,encoding,unpack,[],source_buffer=,source_pts=,lex_en_expr_dot,lex_en_expr_fname,lex_en_expr_value,lex_en_expr_beg,lex_en_expr_mid,lex_en_expr_arg,lex_en_expr_cmdarg,lex_en_expr_end,lex_en_expr_endarg,lex_en_expr_endfn,lex_en_expr_labelarg,lex_en_inside_string,fetch,invert,push,count,pop,dedent_level,empty?,shift,+,size,<=,<<,>,!=,on_newline,emit_comment_from_range,tok,emit_global_var,stack_pop,emit_class_var,emit_instance_var,emit_table,[]=,version?,chr,push_literal,in_argdef,>=,freeze,arg_or_cmdarg,check_ambiguous_slash,diagnostic,range,active?,emit_do,slice,length,start_with?,read_character_constant,=~,declared?,!,nil?,<,emit_colon_with_digits,last,any?,emit_singleton_class,inspect,numeric_literal_int,to_i,call,to_f,emit_comment,advance,e_lbrace,close_interp_on_current_literal,emit_rbrace_rparen_rbrack,in_kwarg,end_with?,rstrip,herebody_s,herebody_s=,lex_error,protected,include?,process,literal,start_interp_brace,index,lexpop,each,upcase'),function(B,z,A){var t=w(B,z,'Lexer'),y=[t].concat(A),v=e.$r(y),x=t.$$prototype;return x.version=x.source_buffer=x.source_pts=x.strings=x.cs=x.cmdarg_stack=x.cmdarg=x.cond_stack=x.cond=x.token_queue=x._lex_actions=x.p=x.command_start=x.ts=x.te=x.stack=x.top=x.act=x.context=x.static_env=x.newline_s=x.lambda_stack=x.paren_nest=x.num_base=x.num_suffix_s=x.num_xfrm=x.eq_begin_s=x.cs_before_block_comment=x.emit_rational=x.emit_imaginary=x.emit_imaginary_rational=x.emit_integer_re=x.emit_integer_if=x.emit_integer_rescue=x.emit_imaginary_float=x.emit_float_if=x.emit_float_rescue=x.emit_integer=x.emit_float=x.tokens=x.comments=x.sharp_s=x.diagnostics=x.num_digits_s=c,function(a,b){return a.$attr_accessor("_lex_trans_keys"),a.$private("_lex_trans_keys","_lex_trans_keys=")}(e.get_singleton_class(t),y),t['$_lex_trans_keys='](e.large_array_unpack("0,0,0,127,0,127,0,127,0,127,0,127,0,127,0,127,58,58,58,58,46,46,0,127,58,58,60,60,62,62,10,10,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,115,115,99,99,117,117,101,101,108,116,101,101,115,115,115,115,105,105,108,108,105,105,108,108,58,58,0,127,10,10,0,127,9,92,10,10,9,92,58,58,98,98,101,101,103,103,105,105,110,110,0,127,61,61,9,92,9,92,9,92,9,92,9,92,10,10,0,127,0,127,61,126,93,93,0,127,0,127,10,10,34,34,10,10,39,39,0,127,10,96,96,96,0,127,0,127,0,127,0,127,0,127,0,127,58,58,58,58,0,127,43,57,48,57,48,57,48,57,48,57,115,115,99,99,117,117,101,101,99,99,117,117,101,101,0,127,58,58,9,92,9,92,9,92,9,92,9,92,9,92,60,60,10,10,9,92,9,92,10,10,10,10,10,10,10,10,46,46,101,101,103,103,105,105,110,110,69,69,78,78,68,68,95,95,95,95,0,26,0,0,36,64,0,127,48,57,0,127,0,127,0,127,0,127,9,32,0,0,61,126,10,10,10,10,0,127,0,127,48,57,115,115,38,38,42,42,64,64,58,58,60,61,62,62,61,126,61,61,61,62,0,127,0,127,0,127,0,127,0,127,0,127,0,127,93,93,10,10,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,124,124,0,127,0,127,9,32,10,10,10,10,46,46,10,10,0,0,0,127,0,127,61,61,0,0,9,32,0,0,61,126,10,10,10,10,38,38,42,42,64,64,60,61,62,62,61,126,61,61,61,62,0,127,93,93,10,10,124,124,0,126,0,127,0,61,9,61,9,61,0,0,9,61,9,62,46,46,46,46,58,58,9,32,0,0,0,127,0,0,9,124,0,0,10,10,10,10,0,0,9,61,58,58,60,60,62,62,9,32,10,10,0,127,102,102,101,101,110,110,104,104,0,127,0,127,0,127,0,0,0,127,10,10,0,123,9,32,10,10,10,10,10,10,0,0,111,111,0,0,0,127,0,127,9,32,0,0,10,10,10,10,10,10,0,0,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,58,61,0,0,61,126,61,61,0,0,0,0,0,0,9,32,61,61,9,32,61,126,10,10,10,10,0,127,38,61,0,0,42,61,61,61,9,92,9,92,9,92,46,46,46,46,10,10,0,26,0,127,0,127,61,61,0,0,61,126,61,62,0,0,0,0,0,0,0,0,61,126,0,127,48,57,38,38,42,42,64,64,60,61,62,62,61,61,61,62,0,127,48,57,0,127,124,124,64,64,60,61,0,0,10,34,10,39,96,96,62,62,61,126,61,62,0,26,0,127,0,127,0,127,0,0,10,10,0,0,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,61,126,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,0,61,124,0,92,9,32,0,0,10,10,10,10,10,10,0,0,0,127,0,127,9,32,0,0,10,10,10,10,10,10,0,0,0,127,0,127,61,61,0,0,9,32,0,0,61,126,10,10,10,10,0,127,0,127,48,57,61,61,38,61,0,0,0,0,42,61,61,62,46,57,46,46,10,10,48,101,48,95,46,120,48,114,43,57,48,105,102,102,0,0,101,105,0,0,0,0,48,114,48,114,48,114,48,114,105,114,102,102,0,0,101,105,115,115,0,0,0,0,48,114,48,114,48,114,48,114,48,114,48,114,48,114,48,114,46,114,48,114,46,114,48,114,58,58,60,61,62,62,61,126,61,61,61,62,0,127,0,127,0,0,0,127,0,127,0,127,0,127,0,127,0,127,0,0,10,10,0,0,0,0,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,9,92,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,0,61,124,0,0,9,92,9,92,9,92,46,46,46,46,10,10,46,46,10,10,10,61,10,10,10,101,10,110,10,100,10,10,0,95,9,32,0,0,10,10,10,10,98,98,9,32,10,10,95,95,0")),function(a,b){return a.$attr_accessor("_lex_key_spans"),a.$private("_lex_key_spans","_lex_key_spans=")}(e.get_singleton_class(t),y),t['$_lex_key_spans='](e.large_array_unpack("0,128,128,128,128,128,128,128,1,1,1,128,1,1,1,1,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,1,1,1,1,9,1,1,1,1,1,1,1,1,128,1,128,84,1,84,1,1,1,1,1,1,128,1,84,84,84,84,84,1,128,128,66,1,128,128,1,1,1,1,128,87,1,128,128,128,128,128,128,1,1,128,15,10,10,10,10,1,1,1,1,1,1,1,128,1,84,84,84,84,84,84,1,1,84,84,1,1,1,1,1,1,1,1,1,1,1,1,1,1,27,0,29,128,10,128,128,128,128,24,0,66,1,1,128,128,10,1,1,1,1,1,2,1,66,1,2,128,128,128,128,128,128,128,1,1,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,1,128,128,24,1,1,1,1,0,128,128,1,0,24,0,66,1,1,1,1,1,2,1,66,1,2,128,1,1,1,127,128,62,53,53,0,53,54,1,1,1,24,0,128,0,116,0,1,1,0,53,1,1,1,24,1,128,1,1,1,1,128,128,128,0,128,1,124,24,1,1,1,0,1,0,128,128,24,0,1,1,1,0,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,4,0,66,1,0,0,0,24,1,24,66,1,1,128,24,0,20,1,84,84,84,1,1,1,27,128,128,1,0,66,2,0,0,0,0,66,128,10,1,1,1,2,1,1,2,128,10,128,1,1,2,0,25,30,1,1,66,2,27,128,128,128,0,1,0,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,66,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,0,64,93,24,0,1,1,1,0,128,128,24,0,1,1,1,0,128,128,1,0,24,0,66,1,1,128,128,10,1,24,0,0,20,2,12,1,1,54,48,75,67,15,58,1,0,5,0,0,67,67,67,67,10,1,0,5,1,0,0,67,67,67,67,67,67,67,67,69,67,69,67,1,2,1,66,1,2,128,128,0,128,128,128,128,128,128,0,1,0,0,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,84,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,0,64,0,84,84,84,1,1,1,1,1,52,1,92,101,91,1,96,24,0,1,1,1,24,1,1")),function(a,b){return a.$attr_accessor("_lex_index_offsets"),a.$private("_lex_index_offsets","_lex_index_offsets=")}(e.get_singleton_class(t),y),t['$_lex_index_offsets='](e.large_array_unpack("0,0,129,258,387,516,645,774,903,905,907,909,1038,1040,1042,1044,1046,1175,1304,1433,1562,1691,1820,1949,2078,2207,2336,2465,2594,2723,2852,2981,3110,3239,3368,3370,3372,3374,3376,3386,3388,3390,3392,3394,3396,3398,3400,3402,3531,3533,3662,3747,3749,3834,3836,3838,3840,3842,3844,3846,3975,3977,4062,4147,4232,4317,4402,4404,4533,4662,4729,4731,4860,4989,4991,4993,4995,4997,5126,5214,5216,5345,5474,5603,5732,5861,5990,5992,5994,6123,6139,6150,6161,6172,6183,6185,6187,6189,6191,6193,6195,6197,6326,6328,6413,6498,6583,6668,6753,6838,6840,6842,6927,7012,7014,7016,7018,7020,7022,7024,7026,7028,7030,7032,7034,7036,7038,7040,7068,7069,7099,7228,7239,7368,7497,7626,7755,7780,7781,7848,7850,7852,7981,8110,8121,8123,8125,8127,8129,8131,8134,8136,8203,8205,8208,8337,8466,8595,8724,8853,8982,9111,9113,9115,9244,9373,9502,9631,9760,9889,10018,10147,10276,10405,10534,10663,10792,10921,11050,11179,11308,11437,11566,11695,11824,11953,12082,12211,12340,12469,12598,12727,12856,12985,13114,13243,13372,13501,13630,13759,13888,14017,14146,14275,14404,14533,14662,14791,14920,15049,15178,15307,15436,15565,15694,15823,15952,16081,16210,16339,16468,16597,16726,16855,16984,17113,17242,17371,17500,17629,17758,17887,18016,18145,18274,18403,18532,18661,18790,18919,19048,19177,19306,19435,19564,19693,19822,19824,19953,20082,20107,20109,20111,20113,20115,20116,20245,20374,20376,20377,20402,20403,20470,20472,20474,20476,20478,20480,20483,20485,20552,20554,20557,20686,20688,20690,20692,20820,20949,21012,21066,21120,21121,21175,21230,21232,21234,21236,21261,21262,21391,21392,21509,21510,21512,21514,21515,21569,21571,21573,21575,21600,21602,21731,21733,21735,21737,21739,21868,21997,22126,22127,22256,22258,22383,22408,22410,22412,22414,22415,22417,22418,22547,22676,22701,22702,22704,22706,22708,22709,22838,22967,23096,23225,23354,23483,23612,23741,23870,23999,24128,24257,24386,24515,24644,24773,24902,25031,25036,25037,25104,25106,25107,25108,25109,25134,25136,25161,25228,25230,25232,25361,25386,25387,25408,25410,25495,25580,25665,25667,25669,25671,25699,25828,25957,25959,25960,26027,26030,26031,26032,26033,26034,26101,26230,26241,26243,26245,26247,26250,26252,26254,26257,26386,26397,26526,26528,26530,26533,26534,26560,26591,26593,26595,26662,26665,26693,26822,26951,27080,27081,27083,27084,27213,27342,27471,27600,27729,27858,27987,28116,28245,28374,28503,28632,28761,28890,29019,29148,29277,29406,29535,29664,29793,29922,30051,30180,30309,30438,30567,30696,30825,30954,31083,31212,31341,31470,31599,31728,31857,31986,32115,32244,32373,32502,32631,32760,32889,33018,33147,33276,33405,33534,33663,33792,33921,34050,34179,34308,34437,34566,34695,34824,34953,35020,35149,35278,35407,35536,35665,35794,35923,36052,36181,36310,36439,36568,36697,36826,36955,37084,37213,37342,37471,37600,37729,37858,37987,38116,38245,38246,38311,38405,38430,38431,38433,38435,38437,38438,38567,38696,38721,38722,38724,38726,38728,38729,38858,38987,38989,38990,39015,39016,39083,39085,39087,39216,39345,39356,39358,39383,39384,39385,39406,39409,39422,39424,39426,39481,39530,39606,39674,39690,39749,39751,39752,39758,39759,39760,39828,39896,39964,40032,40043,40045,40046,40052,40054,40055,40056,40124,40192,40260,40328,40396,40464,40532,40600,40670,40738,40808,40876,40878,40881,40883,40950,40952,40955,41084,41213,41214,41343,41472,41601,41730,41859,41988,41989,41991,41992,41993,42122,42251,42380,42509,42638,42767,42896,43025,43154,43283,43412,43541,43670,43799,43928,44057,44186,44315,44444,44573,44702,44831,44960,45089,45218,45347,45476,45605,45734,45863,45992,46121,46250,46379,46508,46637,46766,46851,46980,47109,47238,47367,47496,47625,47754,47883,48012,48141,48270,48399,48528,48657,48786,48915,49044,49173,49302,49431,49560,49689,49818,49947,50076,50205,50334,50463,50592,50721,50850,50979,51108,51237,51366,51495,51624,51753,51882,52011,52140,52269,52398,52527,52656,52785,52914,53043,53172,53301,53430,53559,53688,53817,53946,54075,54204,54333,54462,54591,54720,54849,54978,55107,55236,55237,55302,55303,55388,55473,55558,55560,55562,55564,55566,55568,55621,55623,55716,55818,55910,55912,56009,56034,56035,56037,56039,56041,56066,56068")),function(a,b){return a.$attr_accessor("_lex_indicies"),a.$private("_lex_indicies","_lex_indicies=")}(e.get_singleton_class(t),y),t['$_lex_indicies='](e.large_array_unpack("2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,2,1,2,1,1,2,2,1,1,1,3,1,1,4,4,4,4,4,4,4,4,4,4,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1,2,2,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,1,2,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,5,5,5,5,5,5,5,5,5,5,2,2,2,2,2,2,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,2,2,2,2,5,2,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,2,2,2,2,2,5,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,7,7,7,7,7,7,7,7,7,7,2,2,2,2,2,2,2,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,2,2,2,2,7,2,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,2,2,2,2,2,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,8,8,8,8,9,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,8,8,8,8,8,9,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,10,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,14,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,13,13,13,13,13,13,13,13,15,12,12,12,12,14,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,12,12,12,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,12,12,12,12,13,15,12,12,16,17,12,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,20,18,18,18,18,18,18,18,18,18,18,18,18,18,18,19,19,19,19,19,19,19,19,19,19,21,18,18,18,18,20,18,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,18,18,18,18,19,18,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,18,18,18,18,18,19,21,18,23,22,24,22,25,22,22,22,22,22,22,22,22,22,22,27,22,27,27,27,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,27,22,22,22,22,28,29,22,30,22,31,32,33,34,35,28,22,22,22,22,22,22,22,22,22,22,36,22,37,33,38,39,22,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,40,41,33,42,26,22,26,26,26,26,26,26,26,26,43,26,26,26,26,26,26,26,26,44,26,26,45,26,46,26,26,26,47,48,22,42,22,26,22,22,22,22,22,22,22,22,22,49,22,49,49,49,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,49,22,22,22,22,50,51,22,52,22,53,54,55,56,57,50,22,22,22,22,22,22,22,22,22,22,58,22,59,55,60,61,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,62,63,55,24,19,22,19,19,19,19,19,19,19,19,64,19,19,19,19,19,19,19,19,65,19,19,66,19,67,19,19,19,68,69,22,24,22,19,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,19,22,19,19,19,19,19,70,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,22,19,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,19,22,19,19,19,19,71,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,22,19,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,19,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,72,19,19,19,19,19,19,19,22,22,22,22,22,19,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,19,22,19,19,73,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,22,19,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,19,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,74,19,19,19,19,19,22,22,22,22,22,19,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,19,22,19,19,19,19,70,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,22,19,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,19,22,19,19,19,19,19,19,19,19,19,19,19,19,19,75,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,22,19,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,19,22,19,19,19,19,19,19,19,19,19,19,19,76,19,19,19,19,19,19,19,77,19,19,19,19,19,19,22,22,22,22,22,19,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,19,22,19,19,19,19,78,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,22,19,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,19,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,79,19,19,19,19,19,19,19,22,22,22,22,22,19,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,19,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,70,19,19,19,19,19,19,19,22,22,22,22,22,19,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,19,22,19,19,19,19,19,19,19,19,80,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,22,19,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,19,22,19,19,19,19,19,19,19,19,19,19,19,70,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,22,19,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,19,22,19,19,19,19,19,19,19,81,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,22,19,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,19,22,19,19,19,19,19,19,19,19,82,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,22,19,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,19,22,19,19,19,19,19,19,19,19,19,19,19,74,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,22,19,84,83,85,83,86,83,55,83,87,83,83,83,83,83,83,83,88,83,89,83,90,83,55,83,91,83,55,83,92,83,86,83,94,93,95,95,95,95,95,95,95,95,95,97,95,97,97,97,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,97,95,95,95,95,95,95,95,98,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,95,99,95,95,96,95,96,96,96,100,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,95,95,95,95,95,96,101,95,95,95,95,95,95,95,95,95,95,103,95,103,103,103,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,103,95,95,95,95,95,95,95,104,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,95,105,95,95,102,95,102,102,102,106,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,95,95,95,95,95,102,108,107,108,108,108,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,108,107,107,107,107,107,107,107,109,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,110,107,111,107,112,107,112,112,112,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,112,107,107,107,107,107,107,107,113,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,114,107,115,116,118,117,119,117,120,117,121,117,122,117,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,123,123,123,123,123,123,123,123,123,123,124,124,124,124,124,124,124,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,124,124,124,124,124,124,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,124,124,124,124,124,123,125,115,126,127,126,126,126,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,126,115,115,128,115,115,115,115,115,115,115,115,115,115,115,115,129,129,129,129,129,129,129,129,129,129,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,130,115,131,132,131,131,131,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,131,115,115,133,115,115,115,115,115,115,115,115,115,115,115,115,134,134,134,134,134,134,134,134,134,134,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,135,115,137,138,137,137,137,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,137,136,136,139,136,136,136,136,136,136,136,136,136,136,136,136,140,140,140,140,140,140,140,140,140,140,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,141,136,143,144,143,143,143,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,143,142,142,145,142,142,142,142,142,142,142,142,142,142,142,142,146,146,146,146,146,146,146,146,146,146,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,147,142,143,148,143,143,143,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,143,142,142,145,142,142,142,142,142,142,142,142,142,142,142,142,146,146,146,146,146,146,146,146,146,146,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,147,142,127,115,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,151,151,149,151,149,151,151,149,149,151,151,151,152,151,151,153,153,153,153,153,153,153,153,153,153,151,151,151,151,151,151,151,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,149,151,149,149,150,151,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,149,149,149,151,149,150,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,151,151,151,151,151,151,151,151,151,151,149,149,149,149,149,149,149,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,149,149,149,149,151,149,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,149,149,149,149,149,151,154,151,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,151,149,154,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,156,149,149,149,149,157,149,149,149,149,149,158,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,125,149,149,149,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,149,149,149,149,155,159,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,149,149,149,158,149,155,161,161,161,161,161,161,161,161,161,161,162,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,160,160,160,160,160,160,160,160,160,160,161,161,161,161,161,161,161,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,161,161,161,161,160,161,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,161,161,161,161,161,160,164,163,167,166,162,161,167,168,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,156,149,149,149,149,157,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,149,149,149,149,155,159,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,149,149,149,149,149,155,170,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,167,169,167,170,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,172,115,115,115,115,115,115,115,115,115,115,115,115,115,115,171,171,171,171,171,171,171,171,171,171,173,115,115,174,115,172,115,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,115,115,115,115,171,115,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,115,115,115,115,115,171,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,172,149,149,149,149,149,149,149,149,149,149,149,149,149,149,171,171,171,171,171,171,171,171,171,171,173,149,149,174,149,172,149,171,171,171,171,171,171,175,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,149,149,149,149,171,149,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,149,149,149,149,149,171,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,172,149,149,149,149,149,149,149,149,149,149,149,149,149,149,171,171,171,171,171,171,171,171,171,171,173,149,149,174,149,172,149,171,171,171,171,171,171,171,171,176,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,149,149,149,149,171,149,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,149,149,149,149,149,171,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,172,149,149,149,149,149,149,149,149,149,149,149,149,149,149,171,171,171,171,171,171,171,171,171,171,173,149,149,174,149,172,149,171,171,171,171,171,171,171,171,171,171,171,171,171,177,171,171,171,171,171,171,171,171,171,171,171,171,149,149,149,149,171,149,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,149,149,149,149,149,171,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,172,149,149,149,149,149,149,149,149,149,149,149,149,149,149,171,171,171,171,171,171,171,171,171,171,173,149,149,174,149,172,149,171,171,171,177,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,149,149,149,149,171,149,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,149,149,149,149,149,171,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,180,178,178,178,178,178,178,178,178,178,178,178,178,178,178,179,179,179,179,179,179,179,179,179,179,181,178,178,178,178,180,178,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,178,178,178,178,179,178,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,178,178,178,178,178,179,181,178,178,182,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,184,184,184,184,184,184,184,184,184,184,183,183,183,183,183,183,183,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,183,183,183,183,184,183,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,183,183,183,183,183,184,186,185,186,185,185,187,187,187,187,187,187,187,187,187,187,185,187,187,187,187,187,187,187,187,187,187,185,188,188,188,188,188,188,188,188,188,188,185,190,190,190,190,190,190,190,190,190,190,189,191,191,191,191,191,191,191,191,191,191,189,193,192,194,192,195,192,196,192,198,197,199,197,200,197,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,201,201,201,201,201,201,201,201,201,201,183,183,183,183,183,183,183,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,183,183,183,183,201,183,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,183,183,183,183,183,201,202,189,203,204,203,203,203,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,203,189,189,205,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,206,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,207,189,208,209,208,208,208,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,208,189,189,210,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,211,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,212,189,214,215,214,214,214,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,214,213,213,216,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,217,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,218,213,220,221,220,220,220,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,220,219,219,222,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,223,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,224,219,220,221,220,220,220,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,220,219,219,222,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,225,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,224,219,220,226,220,220,220,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,220,219,219,222,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,223,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,224,219,227,189,204,189,229,230,229,229,229,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,229,228,228,231,228,228,232,228,228,228,228,228,228,228,233,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,234,228,236,230,236,236,236,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,236,235,235,231,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,234,235,239,238,241,240,242,237,243,237,244,228,246,245,247,245,248,245,249,245,250,245,251,245,252,245,253,245,254,245,255,245,245,245,255,245,245,245,245,245,256,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,255,245,257,258,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,259,2,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,0,0,0,0,0,0,0,0,0,0,260,260,260,260,260,260,260,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,260,260,260,260,0,260,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,260,260,260,260,260,0,4,4,4,4,4,4,4,4,4,4,260,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,5,5,5,5,5,5,5,5,5,5,261,261,261,261,261,261,261,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,261,261,261,261,5,261,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,261,261,261,261,261,5,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,7,7,7,7,7,7,7,7,7,7,262,262,262,262,262,262,262,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,262,262,262,262,7,262,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,262,262,262,262,262,7,264,265,265,265,264,265,265,265,265,266,267,266,266,266,265,265,265,265,265,265,265,265,265,265,265,265,264,265,265,265,265,265,266,268,265,269,270,271,272,265,265,265,273,274,265,274,265,275,265,265,265,265,265,265,265,265,265,265,276,265,277,278,279,265,265,280,281,280,280,282,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,283,284,265,275,285,275,286,287,288,289,290,291,263,263,292,263,263,263,293,294,295,263,263,296,297,298,299,263,300,263,301,263,265,302,265,274,265,263,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,304,303,303,303,303,303,303,303,303,303,303,303,303,303,303,263,263,263,263,263,263,263,263,263,263,303,303,303,304,303,304,303,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,303,303,303,303,263,303,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,303,303,303,303,303,263,266,305,266,266,266,305,305,305,305,305,305,305,305,305,305,305,305,305,305,305,305,305,305,266,305,306,275,307,307,275,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,275,307,308,309,310,311,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,9,9,312,9,312,9,9,312,312,9,9,9,314,9,9,315,315,315,315,315,315,315,315,315,315,9,9,9,9,9,9,9,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,312,9,312,312,313,9,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,312,312,312,9,312,313,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,313,313,313,313,313,313,313,313,313,313,316,316,316,316,316,316,316,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,316,316,316,316,313,316,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,316,316,316,316,316,313,315,315,315,315,315,315,315,315,315,315,316,317,307,275,307,275,307,275,307,319,318,275,320,307,275,307,321,275,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,275,312,275,307,275,275,307,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,304,303,303,303,303,303,303,303,303,303,303,303,303,303,303,280,280,280,280,280,280,280,280,280,280,303,303,303,304,303,304,303,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,303,303,303,303,280,303,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,303,303,303,303,303,280,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,304,322,322,322,322,322,322,322,322,322,322,322,322,322,322,280,280,280,280,280,280,280,280,280,280,322,322,322,304,322,304,322,280,280,280,280,323,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,280,322,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,322,280,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,304,322,322,322,322,322,322,322,322,322,322,322,322,322,322,280,280,280,280,280,280,280,280,280,280,322,322,322,304,322,304,322,280,280,280,280,280,280,324,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,280,322,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,322,280,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,304,322,322,322,322,322,322,322,322,322,322,322,322,322,322,280,280,280,280,280,280,280,280,280,280,322,322,322,304,322,304,322,280,280,280,280,280,280,280,280,325,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,280,322,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,322,280,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,304,322,322,322,322,322,322,322,322,322,322,322,322,322,322,280,280,280,280,280,280,280,280,280,280,322,322,322,304,322,304,322,280,280,280,280,280,280,280,280,280,280,280,280,280,326,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,280,322,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,322,280,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,304,322,322,322,322,322,322,322,322,322,322,322,322,322,322,280,280,280,280,280,280,280,280,280,280,322,322,322,304,322,304,322,280,280,280,280,280,280,280,280,280,280,280,280,280,327,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,280,322,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,322,280,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,304,322,322,322,322,322,322,322,322,322,322,322,322,322,322,280,280,280,280,280,280,280,280,280,280,322,322,322,304,322,304,322,280,280,280,326,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,280,322,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,322,280,321,312,267,312,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,329,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,330,331,263,263,263,263,263,332,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,333,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,334,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,335,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,336,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,337,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,338,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,339,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,340,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,341,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,342,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,343,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,339,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,344,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,343,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,345,263,346,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,347,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,348,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,341,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,341,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,349,263,263,263,263,263,263,263,263,263,263,263,263,350,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,351,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,352,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,341,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,353,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,354,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,341,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,355,263,263,263,263,263,263,263,263,263,263,356,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,357,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,341,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,358,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,348,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,359,263,263,263,263,263,263,263,263,263,341,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,360,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,304,361,361,361,361,361,361,361,361,361,361,361,361,361,361,263,263,263,263,263,263,263,263,263,263,361,361,361,304,361,304,361,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,361,361,361,361,263,361,263,263,263,263,263,263,263,263,362,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,361,361,361,361,361,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,363,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,364,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,365,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,366,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,367,263,368,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,369,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,341,263,263,263,370,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,341,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,341,263,263,263,263,263,263,263,263,263,263,263,263,263,263,371,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,372,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,357,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,373,263,263,263,263,263,263,263,263,263,263,263,263,263,295,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,355,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,341,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,341,263,263,263,263,263,263,263,341,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,374,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,375,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,376,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,357,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,377,263,263,263,378,263,263,263,263,263,379,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,379,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,341,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,341,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,380,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,381,263,263,263,263,263,263,263,263,263,263,263,263,263,263,382,383,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,341,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,384,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,357,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,385,263,263,386,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,341,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,352,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,387,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,388,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,370,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,389,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,295,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,390,263,263,263,263,263,263,263,263,263,384,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,352,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,391,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,392,263,263,263,263,263,263,263,393,263,263,263,263,263,263,263,394,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,370,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,358,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,378,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,395,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,352,263,263,263,376,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,396,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,397,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,346,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,275,307,399,400,400,400,399,400,400,400,400,401,400,401,401,401,400,400,400,400,400,400,400,400,400,400,400,400,399,400,400,400,400,400,401,400,400,402,400,400,400,400,400,400,400,400,400,400,403,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,400,404,400,400,398,400,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,400,400,400,400,400,398,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,14,405,405,405,405,405,405,405,405,405,405,405,405,405,405,13,13,13,13,13,13,13,13,13,13,15,405,405,405,405,14,405,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,405,405,405,405,13,405,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,405,405,405,405,405,13,401,406,401,401,401,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,401,406,407,408,409,410,411,405,412,405,413,415,416,416,416,415,416,416,416,416,417,418,417,417,417,416,416,416,416,416,416,416,416,416,416,416,416,415,416,416,416,416,416,417,419,416,420,416,421,422,416,416,416,423,424,416,424,416,421,416,416,416,416,416,416,416,416,416,416,416,416,425,426,427,416,416,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,429,430,416,421,414,421,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,416,431,416,424,416,414,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,433,432,432,432,432,432,432,432,432,432,432,432,432,432,432,414,414,414,414,414,414,414,414,414,414,432,432,432,432,432,433,432,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,432,432,432,432,414,432,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,432,432,432,432,432,414,435,434,436,417,437,417,417,417,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,417,437,438,421,439,439,421,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,421,439,440,441,442,443,421,439,421,439,421,439,421,444,439,421,439,446,421,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,421,445,421,439,421,421,439,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,433,447,447,447,447,447,447,447,447,447,447,447,447,447,447,428,428,428,428,428,428,428,428,428,428,447,447,447,447,447,433,447,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,447,447,447,447,428,447,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,447,447,447,447,447,428,446,445,418,445,421,439,449,448,448,448,449,448,448,448,448,450,451,450,450,450,448,448,448,448,448,448,448,448,448,448,448,448,449,448,448,448,448,448,450,448,448,452,448,24,453,448,454,448,455,24,55,456,57,24,448,448,448,448,448,448,448,448,448,448,457,448,458,55,459,460,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,55,461,55,24,448,448,448,448,448,448,448,448,448,448,462,448,448,448,448,448,448,448,448,463,448,448,464,448,465,448,448,448,68,69,448,24,448,466,466,466,466,466,466,466,466,466,450,466,450,450,450,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,450,466,466,466,466,50,51,466,52,466,53,54,55,56,57,50,466,466,466,466,466,466,466,466,466,466,58,466,59,55,60,61,466,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,62,63,55,24,19,466,19,19,19,19,19,19,19,19,64,19,19,19,19,19,19,19,19,65,19,19,66,19,67,19,19,19,68,69,466,24,466,19,467,468,468,468,467,468,468,468,468,55,469,55,55,55,468,468,468,468,468,468,468,468,468,468,468,468,467,468,468,468,468,468,55,468,468,468,468,468,468,468,468,468,468,468,468,468,468,468,468,468,468,468,468,468,468,468,468,468,468,468,468,55,468,55,469,55,55,55,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,55,18,18,18,18,18,24,18,18,18,18,18,18,18,55,18,18,18,18,18,18,18,18,18,18,18,18,18,18,55,18,55,469,55,55,55,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,55,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,55,18,470,55,469,55,55,55,471,471,471,471,471,471,471,471,471,471,471,471,471,471,471,471,471,471,55,471,471,471,471,471,471,471,471,471,472,471,471,471,471,471,471,471,471,471,471,471,471,471,471,471,471,471,471,55,471,55,469,55,55,55,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,55,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,55,55,18,473,467,55,467,475,474,477,478,477,477,477,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,477,476,479,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,20,467,467,467,467,467,467,467,467,467,467,467,467,467,467,19,19,19,19,19,19,19,19,19,19,21,467,467,467,467,20,467,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,467,467,467,467,19,467,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,467,467,467,467,467,19,480,55,469,55,55,55,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,55,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,55,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,24,467,481,482,483,484,485,486,55,469,55,55,55,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,55,467,467,467,467,467,467,467,467,467,24,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,55,467,55,474,24,487,24,487,488,489,488,488,488,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,488,476,490,487,491,491,491,491,491,491,491,491,491,27,491,27,27,27,491,491,491,491,491,491,491,491,491,491,491,491,491,491,491,491,491,491,27,491,491,491,491,28,29,491,30,491,31,32,33,34,35,28,491,491,491,491,491,491,491,491,491,491,36,491,37,33,38,39,491,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,40,41,33,42,26,491,26,26,26,26,26,26,26,26,43,26,26,26,26,26,26,26,26,44,26,26,45,26,46,26,26,26,47,48,491,42,491,26,55,487,492,487,493,487,494,487,495,94,94,94,495,94,94,94,94,496,94,496,496,496,94,94,94,94,94,94,94,94,94,94,94,94,495,94,94,94,94,94,496,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,94,497,94,94,96,94,96,96,96,100,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,94,94,94,94,94,96,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,498,93,93,93,93,93,93,93,93,93,93,93,93,93,93,96,96,96,96,96,96,96,96,96,96,94,93,93,93,93,498,93,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,93,93,93,93,96,93,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,93,93,93,93,93,96,499,499,499,499,499,499,499,499,499,97,499,97,97,97,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,97,499,499,499,499,499,499,499,98,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,499,99,499,499,96,499,96,96,96,100,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,499,499,499,499,499,96,500,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,498,499,499,499,499,499,499,499,499,499,499,499,499,499,499,96,96,96,96,96,96,96,96,96,96,94,499,499,499,499,498,499,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,499,499,499,499,96,499,96,96,96,96,96,96,96,96,96,96,96,96,96,96,501,96,96,96,96,96,96,96,96,96,96,96,499,499,499,499,499,96,101,499,503,502,502,502,503,502,502,502,502,504,502,504,504,504,502,502,502,502,502,502,502,502,502,502,502,502,503,502,502,502,502,502,504,502,502,505,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,506,502,502,502,502,502,502,502,507,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,508,502,504,509,504,504,504,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,504,509,510,511,512,513,515,514,516,517,514,518,520,521,521,521,520,521,521,521,521,522,523,522,522,522,521,521,521,521,521,521,521,521,521,521,521,521,520,521,521,521,521,521,522,521,521,524,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,521,525,521,521,519,521,519,519,519,519,519,519,519,519,526,519,519,519,519,519,519,519,519,527,519,519,528,519,529,519,519,519,521,521,521,521,521,519,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,519,519,519,519,519,519,519,519,519,519,530,530,530,530,530,530,530,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,530,530,530,530,519,530,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,530,530,530,530,530,519,522,531,522,522,522,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,522,531,532,533,534,535,536,538,537,539,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,519,540,519,519,519,519,519,541,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,519,540,519,519,519,519,542,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,519,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,543,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,519,540,519,519,544,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,519,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,545,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,519,540,519,519,519,519,541,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,519,540,519,519,519,519,519,519,519,519,519,519,519,519,519,546,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,519,540,519,519,519,519,519,519,519,519,519,519,519,547,519,519,519,519,519,519,519,548,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,519,540,519,519,519,519,549,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,519,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,550,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,519,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,541,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,519,540,519,519,519,519,519,519,519,519,551,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,519,540,519,519,519,519,519,519,519,519,519,519,519,541,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,519,540,519,519,519,519,519,519,519,552,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,519,540,519,519,519,519,519,519,519,519,553,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,519,540,519,519,519,519,519,519,519,519,519,519,519,545,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,555,125,125,125,555,125,125,125,125,556,557,556,556,556,125,125,125,125,125,125,125,125,125,125,125,125,555,125,125,125,125,125,556,558,125,559,125,560,561,125,562,125,563,564,125,565,566,567,125,125,125,125,125,125,125,125,125,125,568,125,569,570,571,572,125,573,574,573,573,575,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,576,577,125,578,579,125,580,581,582,583,584,585,554,554,586,554,554,554,587,588,589,554,554,590,591,592,593,554,594,554,595,554,596,597,125,578,125,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,602,601,601,603,601,604,606,607,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,608,605,610,609,611,612,613,556,614,556,556,556,614,614,614,614,614,614,614,614,614,614,614,614,614,614,614,614,614,614,556,614,616,615,618,619,618,618,618,617,617,617,617,617,617,617,617,617,617,617,617,617,617,617,617,617,617,618,617,125,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,125,620,621,622,623,624,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,625,625,625,625,625,625,625,625,625,625,626,626,626,626,626,626,626,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,626,626,626,626,626,626,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,626,626,626,626,626,625,629,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,125,628,630,632,631,631,631,631,631,631,631,631,631,631,631,631,631,631,631,631,631,631,125,631,125,115,126,127,126,126,126,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,126,628,628,128,628,628,628,628,628,628,628,628,628,628,628,628,129,129,129,129,129,129,129,129,129,129,628,628,628,125,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,130,628,143,144,143,143,143,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,143,142,142,145,142,142,142,142,142,142,142,142,142,142,142,142,146,146,146,146,146,146,146,146,146,146,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,147,142,126,127,126,126,126,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,126,628,628,128,628,628,628,628,628,628,628,628,628,628,628,628,129,129,129,129,129,129,129,129,129,129,628,628,628,125,125,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,130,628,634,620,636,635,638,637,620,639,639,639,620,639,639,639,639,639,639,639,639,639,639,639,639,639,639,639,639,639,639,639,639,639,620,639,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,641,642,620,643,151,644,642,620,620,645,646,620,646,620,151,620,620,620,620,620,620,620,620,620,620,647,620,648,649,650,620,651,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,652,620,620,151,640,151,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,620,653,620,654,620,640,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,656,655,655,655,655,655,655,655,655,655,655,655,655,655,655,640,640,640,640,640,640,640,640,640,640,655,655,655,657,655,656,655,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,655,655,655,655,640,655,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,655,655,655,655,655,640,659,658,660,662,663,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,664,661,666,667,665,668,669,670,671,151,655,655,672,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,151,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,150,150,150,150,150,150,150,150,150,150,655,655,655,655,655,655,655,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,655,655,655,655,150,655,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,655,655,655,655,655,150,153,153,153,153,153,153,153,153,153,153,655,673,655,151,655,151,655,151,674,655,151,655,151,655,151,151,655,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,677,677,677,677,677,677,677,677,677,677,675,675,675,675,675,675,678,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,675,675,675,675,676,675,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,675,675,675,675,675,676,680,680,680,680,680,680,680,680,680,680,679,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,683,683,683,683,683,683,683,683,683,683,681,681,681,681,681,681,681,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,681,681,681,681,682,681,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,681,681,681,681,681,682,673,655,672,655,684,685,620,686,166,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,167,156,168,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,167,157,167,170,125,620,578,125,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,125,620,125,629,620,690,689,689,689,690,689,689,689,689,689,689,689,689,689,689,689,689,689,689,689,689,689,689,689,689,689,690,689,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,172,115,115,115,115,115,115,115,115,115,115,115,115,115,115,171,171,171,171,171,171,171,171,171,171,173,115,115,174,115,172,115,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,115,115,115,115,171,115,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,115,115,115,115,115,171,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,172,620,620,620,620,620,620,620,620,620,620,620,620,620,620,171,171,171,171,171,171,171,171,171,171,173,620,620,174,620,172,620,171,171,171,171,691,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,620,620,620,620,171,620,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,620,620,620,620,620,171,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,172,620,620,620,620,620,620,620,620,620,620,620,620,620,620,171,171,171,171,171,171,171,171,171,171,173,620,620,174,620,172,620,171,171,171,171,171,171,171,171,171,171,171,171,171,692,171,171,171,171,171,171,171,171,171,171,171,171,620,620,620,620,171,620,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,620,620,620,620,620,171,693,694,620,615,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,695,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,696,697,554,554,554,554,554,698,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,699,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,700,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,701,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,702,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,703,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,704,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,705,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,706,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,707,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,172,115,115,115,115,115,115,115,115,115,115,115,115,115,115,554,554,554,554,554,554,554,554,554,554,173,115,115,174,115,172,115,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,115,115,115,115,554,115,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,115,115,115,115,115,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,708,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,709,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,705,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,710,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,709,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,711,554,712,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,713,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,714,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,707,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,707,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,715,554,554,554,554,554,554,554,554,554,554,554,554,716,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,717,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,718,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,707,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,719,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,720,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,707,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,721,554,554,554,554,554,554,554,554,554,554,722,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,723,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,707,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,724,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,714,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,725,554,554,554,554,554,554,554,554,554,707,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,707,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,726,554,727,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,728,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,707,554,554,554,725,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,707,554,554,554,554,554,554,554,554,554,554,554,554,554,554,729,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,730,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,723,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,731,554,554,554,554,554,554,554,554,554,554,554,554,554,589,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,721,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,707,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,732,554,554,554,554,554,554,554,707,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,733,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,734,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,735,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,723,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,736,554,554,554,737,554,554,554,554,554,738,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,738,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,707,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,707,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,739,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,740,554,554,554,554,554,554,554,554,554,554,554,554,554,554,741,742,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,707,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,743,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,744,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,745,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,748,746,746,746,746,746,746,746,746,746,746,746,746,746,746,747,747,747,747,747,747,747,747,747,747,749,746,746,750,746,748,746,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,746,746,746,746,747,746,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,746,746,746,746,746,747,606,751,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,608,605,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,752,554,554,753,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,707,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,718,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,754,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,755,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,725,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,756,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,589,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,757,554,554,554,554,554,554,554,554,554,758,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,718,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,723,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,759,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,760,554,554,554,554,554,554,554,761,554,554,554,554,554,554,554,762,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,725,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,763,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,764,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,732,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,765,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,732,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,766,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,718,554,554,554,767,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,768,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,732,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,769,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,770,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,712,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,771,125,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,772,620,774,773,773,773,774,773,773,773,773,775,776,775,775,775,773,773,773,773,773,773,773,773,773,773,773,773,774,773,773,773,773,773,775,773,773,777,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,778,773,775,779,775,775,775,779,779,779,779,779,779,779,779,779,779,779,779,779,779,779,779,779,779,775,779,780,781,782,783,784,786,785,787,789,790,790,790,789,790,790,790,790,791,792,791,791,791,790,790,790,790,790,790,790,790,790,790,790,790,789,790,790,790,790,790,791,790,793,794,790,790,790,793,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,790,795,790,790,788,790,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,790,790,790,790,790,788,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,180,796,796,796,796,796,796,796,796,796,796,796,796,796,796,179,179,179,179,179,179,179,179,179,179,181,796,796,796,796,180,796,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,796,796,796,796,179,796,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,796,796,796,796,796,179,791,797,791,791,791,797,797,797,797,797,797,797,797,797,797,797,797,797,797,797,797,797,797,791,797,798,799,800,801,802,803,796,804,806,807,807,807,806,807,807,807,807,808,809,808,808,808,807,807,807,807,807,807,807,807,807,807,807,807,806,807,807,807,807,807,808,810,811,812,813,814,815,811,816,817,818,814,819,820,821,814,822,823,823,823,823,823,823,823,823,823,824,825,826,827,828,829,830,831,832,831,831,833,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,834,835,836,814,837,811,838,839,840,841,842,843,805,805,844,805,805,805,845,846,847,805,805,848,849,850,851,805,852,805,853,805,854,855,856,857,807,805,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,858,189,189,189,189,189,189,189,189,189,189,189,189,189,189,805,805,805,805,805,805,805,805,805,805,189,189,189,189,189,858,189,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,189,189,189,189,805,189,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,189,189,189,189,189,805,860,859,861,808,862,808,808,808,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,808,862,863,865,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,865,864,866,867,868,869,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,184,184,870,184,870,184,184,870,870,184,184,184,871,184,184,872,872,872,872,872,872,872,872,872,872,184,184,184,184,184,184,184,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,870,184,870,870,201,184,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,870,870,870,184,870,201,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,201,201,201,201,201,201,201,201,201,201,873,873,873,873,873,873,873,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,873,873,873,873,201,873,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,873,873,873,873,873,201,872,872,872,872,872,872,872,872,872,872,873,874,189,814,875,875,875,875,875,875,875,876,875,875,875,875,875,875,875,875,875,875,875,875,875,875,874,875,877,878,814,879,879,879,879,879,879,879,879,879,879,879,879,879,879,879,879,879,879,874,879,874,880,875,882,881,188,188,188,188,188,188,188,188,188,188,881,884,883,885,883,188,188,188,188,188,188,188,188,188,188,886,886,886,886,886,886,886,886,886,886,886,887,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,888,886,886,886,886,886,887,886,187,187,187,187,187,187,187,187,187,187,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,186,886,890,889,891,891,891,891,891,891,891,891,891,891,889,889,889,889,889,889,889,889,892,889,893,894,889,889,889,889,889,889,889,889,889,895,889,889,889,889,889,889,889,889,896,889,889,889,889,889,889,897,889,889,892,889,893,894,889,889,889,898,889,889,889,889,889,895,889,889,899,889,889,889,889,889,896,889,190,190,190,190,190,190,190,190,190,190,900,900,900,900,900,900,900,900,900,900,900,901,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,902,900,900,900,900,900,901,900,900,900,903,900,900,900,900,900,900,900,900,904,900,905,189,905,189,189,191,191,191,191,191,191,191,191,191,191,189,191,191,191,191,191,191,191,191,191,191,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,905,906,906,906,906,906,906,906,906,906,907,906,909,908,910,912,911,911,911,913,911,914,915,891,891,891,891,891,891,891,891,891,891,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,897,889,889,889,889,889,889,889,889,889,898,889,889,889,889,889,889,889,889,899,889,916,916,916,916,916,916,916,916,916,916,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,917,889,889,889,889,889,889,889,889,889,898,889,889,889,889,889,889,889,889,899,889,919,919,919,919,919,919,919,919,919,919,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,920,918,918,918,918,918,918,918,918,918,921,918,918,918,918,918,918,918,918,922,918,919,919,919,919,919,919,919,919,919,919,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,923,918,918,918,918,918,918,918,918,918,921,918,918,918,918,918,918,918,918,922,918,921,918,918,918,918,918,918,918,918,922,918,925,924,926,928,927,927,927,929,927,931,930,932,933,935,935,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,936,934,934,934,934,934,934,934,934,934,937,934,934,934,934,934,934,934,934,938,934,939,939,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,940,918,918,918,918,918,918,918,918,918,921,918,918,918,918,918,918,918,918,922,918,939,939,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,923,918,918,918,918,918,918,918,918,918,921,918,918,918,918,918,918,918,918,922,918,942,942,942,942,942,942,942,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,943,941,941,941,941,941,941,941,941,941,944,941,941,941,941,941,941,941,941,945,941,947,947,947,947,947,947,947,947,947,947,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,948,946,946,946,946,946,946,946,946,946,949,946,946,946,946,946,946,946,946,950,946,952,952,952,952,952,952,952,952,952,952,951,951,951,951,951,951,951,952,952,952,952,952,952,951,951,951,951,951,951,951,951,951,951,951,951,951,951,951,951,951,951,951,951,951,951,951,951,953,951,952,952,952,952,952,952,951,951,954,951,951,951,951,951,951,951,951,955,951,956,956,956,956,956,956,956,956,956,956,918,918,918,918,918,918,918,956,956,956,956,956,956,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,957,918,956,956,956,956,956,956,918,918,921,918,918,918,918,918,918,918,918,922,918,956,956,956,956,956,956,956,956,956,956,918,918,918,918,918,918,918,956,956,956,956,956,956,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,923,918,956,956,956,956,956,956,918,918,921,918,918,918,918,918,918,918,918,922,918,959,958,960,960,960,960,960,960,960,960,960,960,958,958,958,958,958,958,958,958,958,958,958,961,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,962,958,958,958,958,958,961,958,958,958,963,958,958,958,958,958,958,958,958,964,958,965,965,965,965,965,965,965,965,965,965,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,966,958,958,958,958,958,958,958,958,958,963,958,958,958,958,958,958,958,958,964,958,967,918,968,968,968,968,968,968,968,968,968,968,918,918,918,918,918,918,918,918,918,918,918,969,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,970,918,918,918,918,918,969,918,918,918,921,918,918,918,918,918,918,918,918,922,918,968,968,968,968,968,968,968,968,968,968,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,923,918,918,918,918,918,918,918,918,918,921,918,918,918,918,918,918,918,918,922,918,876,883,814,971,875,865,875,972,973,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,865,883,865,875,865,814,875,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,201,201,201,201,201,201,201,201,201,201,870,870,870,870,870,870,974,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,870,870,870,870,201,870,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,870,870,870,870,870,201,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,858,189,189,189,189,189,189,189,189,189,189,189,189,189,189,831,831,831,831,831,831,831,831,831,831,975,189,189,189,189,858,189,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,189,189,189,189,831,189,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,189,189,189,189,189,831,976,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,858,977,977,977,977,977,977,977,977,977,977,977,977,977,977,831,831,831,831,831,831,831,831,831,831,975,977,977,977,977,858,977,831,831,831,831,978,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,831,977,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,977,831,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,858,977,977,977,977,977,977,977,977,977,977,977,977,977,977,831,831,831,831,831,831,831,831,831,831,975,977,977,977,977,858,977,831,831,831,831,831,831,979,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,831,977,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,977,831,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,858,977,977,977,977,977,977,977,977,977,977,977,977,977,977,831,831,831,831,831,831,831,831,831,831,975,977,977,977,977,858,977,831,831,831,831,831,831,831,831,980,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,831,977,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,977,831,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,858,977,977,977,977,977,977,977,977,977,977,977,977,977,977,831,831,831,831,831,831,831,831,831,831,975,977,977,977,977,858,977,831,831,831,831,831,831,831,831,831,831,831,831,831,981,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,831,977,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,977,831,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,858,977,977,977,977,977,977,977,977,977,977,977,977,977,977,831,831,831,831,831,831,831,831,831,831,975,977,977,977,977,858,977,831,831,831,831,831,831,831,831,831,831,831,831,831,982,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,831,977,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,977,831,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,858,977,977,977,977,977,977,977,977,977,977,977,977,977,977,831,831,831,831,831,831,831,831,831,831,975,977,977,977,977,858,977,831,831,831,981,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,831,977,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,977,831,983,985,984,986,987,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,989,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,990,991,805,805,805,805,805,992,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,993,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,994,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,995,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,996,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,997,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,998,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,999,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,1000,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,1001,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,1002,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,1003,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,1004,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,1005,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,1006,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,1007,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,1003,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,1008,805,1009,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,1010,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,1011,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1012,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,1013,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1014,805,805,805,805,805,805,805,805,805,805,805,805,1015,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,1016,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,1017,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,1013,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1018,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,1019,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,1020,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,1021,805,805,805,805,805,805,805,805,805,805,1022,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1023,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1013,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,1024,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1025,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1026,805,805,805,805,805,805,805,988,988,988,988,988,805,1027,1027,1027,1027,1027,1027,1027,1027,1027,203,204,203,203,203,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,203,858,1027,205,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,805,805,805,805,805,805,805,805,805,805,1027,1027,206,1027,1027,858,1027,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1027,207,1027,1027,805,1027,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1027,1027,1027,1027,1027,805,220,221,220,220,220,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,220,219,219,222,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,225,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,224,219,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1029,805,805,805,805,805,805,805,805,805,1030,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,1031,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,858,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,805,805,805,805,805,805,805,805,805,805,1032,1032,1032,1032,1032,858,1032,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1032,1032,1032,1032,805,1032,805,805,805,805,805,805,805,805,1033,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1032,1032,1032,1032,1032,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,1034,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1035,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,1036,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,1037,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,1038,805,1039,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1040,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1013,805,805,805,1041,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,1013,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,1006,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1042,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1043,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1023,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,1044,805,805,805,805,805,805,805,805,805,805,805,805,805,847,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,1045,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1046,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1006,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1013,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,1047,805,805,805,805,805,805,805,1013,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1048,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,1049,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1050,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,1023,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1051,805,805,805,1052,805,805,805,805,805,1053,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1054,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1020,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,1006,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1055,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1056,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,1057,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1058,1059,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1006,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,1060,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1061,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1047,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1062,805,805,1063,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1006,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1064,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,1020,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1065,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1066,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,1067,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,1006,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1068,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1069,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1055,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,1070,805,805,805,805,805,805,805,805,805,1071,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1017,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1046,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,1072,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,1073,805,805,805,805,805,805,805,1074,805,805,805,805,805,805,805,1075,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1076,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,1012,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1077,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1078,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1047,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,1079,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,1047,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,1080,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1017,805,805,805,1081,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,1082,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1047,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,1083,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1084,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,1085,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,1055,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,1086,874,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,814,864,1087,1089,1088,1089,1089,1089,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1089,1088,1088,1090,1088,1088,1091,1088,1088,1088,1088,1088,1088,1088,233,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1092,1088,229,230,229,229,229,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,229,1093,1093,231,1093,1093,232,1093,1093,1093,1093,1093,1093,1093,233,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,234,1093,236,1094,236,236,236,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,236,1094,1094,231,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,234,1094,1096,1095,1098,1097,239,238,244,1093,242,1093,1100,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1101,1099,1100,1099,1100,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1103,1099,1100,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1104,1099,1100,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1105,1099,1107,1105,1109,1108,1108,1108,1109,1108,1108,1108,1108,1110,1111,1110,1110,1110,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1109,1108,1108,1108,1108,1108,1110,1108,1108,1112,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1113,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1114,1108,1108,1115,1108,1110,1116,1110,1110,1110,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1110,1116,1117,1118,1119,1120,1121,1123,1122,1125,1126,1125,1125,1125,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1125,1124,1111,1122,1127,1122,0")),function(a,b){return a.$attr_accessor("_lex_trans_targs"),a.$private("_lex_trans_targs","_lex_trans_targs=")}(e.get_singleton_class(t),y),t['$_lex_trans_targs='](e.large_array_unpack("130,129,0,2,131,132,4,133,134,134,134,134,247,7,8,9,247,247,276,11,12,276,276,280,280,16,11,17,278,279,281,282,280,276,283,284,286,13,14,287,288,15,280,18,19,24,31,290,291,17,278,279,281,282,280,276,283,284,286,13,14,287,288,15,18,19,24,31,290,291,289,20,21,22,23,25,26,29,27,28,30,32,33,276,35,36,37,39,42,40,41,43,45,307,307,307,308,47,310,48,311,49,308,47,310,48,311,345,50,345,51,52,50,345,51,345,345,345,55,56,57,58,356,345,345,345,61,62,63,345,66,61,62,63,345,66,64,64,62,63,366,65,64,64,62,63,366,65,62,345,383,345,68,384,390,72,399,400,77,78,72,73,398,73,398,345,74,75,76,401,79,80,347,53,349,82,83,406,508,85,86,87,508,516,516,516,90,538,537,516,540,542,516,95,96,97,546,516,99,100,557,526,579,103,104,105,109,110,103,104,105,109,110,106,106,104,105,107,108,106,106,104,105,107,108,627,104,516,696,111,698,113,117,699,115,696,112,696,114,698,114,698,116,698,696,710,119,120,121,716,123,124,125,126,127,710,710,128,1,3,129,129,129,135,134,134,136,137,138,139,141,144,145,146,147,134,148,149,151,153,154,155,159,161,162,163,179,184,191,196,203,210,213,214,218,212,222,230,234,236,241,243,246,134,134,134,134,134,134,140,134,140,134,142,5,143,134,6,134,134,150,152,134,156,157,158,154,160,134,164,165,174,177,166,167,168,169,170,171,172,173,135,175,176,178,180,183,181,182,185,188,186,187,189,190,192,194,193,195,197,198,134,199,200,201,202,134,204,207,205,206,208,209,211,215,216,217,219,221,220,223,224,225,227,226,228,229,231,232,233,235,237,238,239,240,242,244,245,248,247,247,249,250,252,253,247,247,247,251,247,251,10,254,247,256,255,255,259,260,261,262,255,264,265,266,267,269,271,272,273,274,275,255,257,255,258,255,255,255,255,255,263,255,263,268,255,270,255,276,276,277,292,293,279,295,296,283,297,298,299,300,301,303,304,305,306,276,276,276,276,276,276,280,285,276,276,276,276,276,276,276,276,276,294,276,294,276,276,276,276,302,276,34,38,44,307,309,312,46,307,307,308,313,313,314,315,317,319,320,313,313,316,313,316,313,318,313,313,313,322,321,321,323,324,325,327,329,330,335,342,321,321,321,321,326,321,326,321,328,321,321,322,331,332,333,334,336,337,340,338,339,341,343,344,346,345,354,355,357,358,360,361,362,363,365,367,368,371,372,397,403,404,405,406,407,408,409,410,364,412,429,434,441,446,448,454,457,458,462,456,466,477,481,484,492,496,499,500,345,50,51,345,53,348,345,345,350,352,353,345,351,345,345,345,345,345,54,345,345,345,345,345,359,345,359,345,345,59,345,60,345,345,364,345,369,345,370,345,345,345,373,382,345,67,385,386,387,345,388,69,391,392,70,395,396,345,374,376,345,375,345,345,377,380,381,345,378,379,345,345,345,345,345,345,389,345,383,393,394,345,393,345,383,393,71,402,345,345,345,345,345,81,84,345,411,413,414,424,427,415,416,417,418,419,420,421,422,423,425,426,428,430,433,431,432,435,438,436,437,439,440,442,444,443,445,447,449,451,450,452,453,455,423,459,460,461,463,465,464,467,468,469,474,470,471,472,345,346,347,53,473,352,475,476,478,479,480,482,483,485,486,487,490,488,489,491,493,494,495,497,498,345,364,501,501,502,503,504,506,501,501,501,505,501,505,501,507,501,509,508,508,510,511,508,512,514,508,508,508,508,513,508,513,515,508,517,516,516,520,521,522,516,523,525,528,529,530,531,532,516,533,534,539,567,571,516,572,574,576,516,577,578,580,584,586,587,589,590,608,613,620,628,635,642,647,648,652,646,657,667,673,676,685,689,693,694,695,528,518,516,519,516,516,516,516,516,516,524,516,524,516,88,527,516,516,516,516,516,516,516,516,516,535,516,536,516,516,89,91,516,92,548,559,562,541,563,564,549,553,555,516,541,92,543,545,93,516,543,516,544,516,516,94,547,516,516,550,552,516,550,551,553,555,552,516,554,516,516,556,558,516,98,516,516,516,560,552,553,555,560,561,516,550,552,553,555,516,550,552,553,555,516,565,552,553,555,565,566,516,92,567,541,568,553,555,569,552,92,569,541,570,573,575,516,101,102,516,516,581,582,583,578,585,516,516,588,516,516,516,591,592,601,606,593,594,595,596,597,598,599,600,517,602,603,604,605,517,607,609,612,610,611,517,517,614,617,615,616,618,619,517,621,623,622,624,625,626,516,516,629,517,630,516,631,632,633,634,518,636,639,637,638,640,641,643,644,645,517,649,650,651,653,655,656,654,517,658,659,660,663,661,662,664,665,666,668,670,669,671,672,674,675,677,678,680,683,679,681,682,684,686,687,688,690,691,692,516,516,696,697,701,702,703,696,696,696,700,696,696,705,704,706,704,707,708,709,704,704,710,710,711,712,713,715,717,718,710,710,710,714,710,714,710,118,710,710,710,122")),function(a,b){return a.$attr_accessor("_lex_trans_actions"),a.$private("_lex_trans_actions","_lex_trans_actions=")}(e.get_singleton_class(t),y),t['$_lex_trans_actions='](e.large_array_unpack("0,1,0,0,0,0,0,0,2,3,4,5,6,0,0,0,7,8,9,0,0,10,11,12,13,14,15,15,16,17,15,18,17,19,17,15,15,16,15,20,15,15,21,15,15,15,15,15,15,0,22,23,0,24,23,25,23,0,0,22,0,26,0,0,0,0,0,0,0,0,13,0,0,0,0,0,0,0,0,0,0,0,0,27,0,0,0,0,0,0,0,0,0,28,29,30,31,0,0,0,31,14,32,15,15,15,32,33,0,34,0,14,15,35,15,36,37,38,0,0,0,0,0,39,40,41,0,14,0,42,0,15,43,15,44,15,45,46,47,46,48,46,0,49,50,49,51,49,52,53,0,54,0,0,0,0,55,55,0,0,56,56,57,0,14,58,0,0,0,55,0,0,59,0,0,0,0,59,60,0,0,0,61,62,63,64,0,65,65,66,67,67,68,0,0,0,0,69,0,0,0,0,0,0,14,0,0,0,15,43,15,15,15,45,46,47,46,46,46,0,49,50,49,49,49,70,52,71,72,0,73,0,74,74,0,75,0,76,45,77,0,78,14,79,80,81,0,0,0,0,0,0,0,0,0,82,83,86,0,0,87,88,89,90,91,92,0,14,0,0,65,65,0,0,0,93,0,0,0,0,94,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,95,96,97,98,99,100,45,101,0,102,0,0,0,103,0,104,105,0,0,106,0,0,0,107,0,108,0,0,0,0,0,0,0,0,0,0,0,0,107,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,109,0,0,0,0,110,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,111,112,0,0,65,0,113,114,115,45,116,0,0,14,117,0,118,119,0,14,0,0,120,0,0,0,0,0,0,0,0,0,0,121,0,122,0,123,124,125,126,127,45,128,0,0,129,0,130,131,132,133,14,0,13,0,0,13,0,0,0,0,0,0,65,65,65,134,135,136,137,138,139,140,0,141,142,143,144,145,146,147,148,149,45,150,0,151,152,153,154,155,156,0,0,0,157,65,65,0,158,159,160,161,162,0,0,0,0,0,163,164,45,165,0,166,14,167,168,169,170,171,172,0,14,0,0,0,0,0,0,173,174,175,176,45,177,0,178,14,179,180,181,0,0,0,0,0,0,0,0,0,0,0,0,182,183,0,184,0,0,65,185,0,0,185,185,0,0,65,186,0,186,0,186,186,186,0,0,186,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,0,0,187,188,188,189,190,0,191,192,0,59,0,193,0,194,195,196,197,198,15,199,200,201,202,203,45,204,0,205,206,0,207,0,208,209,185,210,0,211,0,212,213,214,0,0,215,0,0,0,0,216,0,0,0,0,0,0,0,217,0,0,218,0,219,220,0,0,0,221,0,0,222,223,224,225,226,227,0,228,229,229,0,230,0,231,232,232,0,0,233,234,235,236,237,0,0,238,14,182,182,182,182,182,182,182,182,182,182,182,182,59,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,239,182,182,182,182,182,182,182,182,182,182,182,182,240,241,242,243,244,244,240,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,245,246,247,248,0,14,0,0,249,250,251,45,252,0,253,14,254,65,255,256,0,14,257,0,0,258,259,260,261,45,262,0,14,263,264,265,266,0,14,0,267,0,65,268,0,0,0,0,269,0,0,270,270,0,271,0,0,0,272,65,273,273,273,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,274,275,276,0,277,278,279,280,281,282,45,283,0,284,0,0,285,286,287,288,289,290,291,292,293,0,294,0,295,296,0,0,297,298,299,0,0,300,0,0,299,301,301,302,303,0,304,305,0,306,307,308,0,309,310,0,0,311,312,299,299,313,0,0,314,314,0,315,0,316,317,65,0,318,0,319,320,321,322,322,323,323,0,0,324,325,325,326,326,327,328,328,329,329,330,331,331,332,332,0,0,333,334,335,336,337,338,338,335,337,339,270,340,0,0,0,341,0,0,342,343,273,273,273,344,273,345,346,14,347,348,349,0,0,0,0,0,0,0,0,0,0,0,0,350,0,0,0,0,344,0,0,0,0,0,351,352,0,0,0,0,0,0,353,0,0,0,0,0,352,354,355,0,356,0,357,0,0,0,0,358,0,0,0,0,0,0,0,0,0,359,0,0,0,0,0,0,0,358,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,360,361,362,363,363,74,363,364,365,366,0,367,368,0,369,0,370,0,0,0,371,372,373,374,0,14,0,65,0,65,375,376,377,45,378,0,379,0,380,381,382,0")),function(a,b){return a.$attr_accessor("_lex_to_state_actions"),a.$private("_lex_to_state_actions","_lex_to_state_actions=")}(e.get_singleton_class(t),y),t['$_lex_to_state_actions='](e.large_array_unpack("0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,84,84,0,0,0,0,84,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,84,0,0,0,0,0,0,0,84,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,84,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,84,0,0,0,0,0,84,0,0,0,0,0,0,0,84,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,84,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,84,0,0,0,0,0,0,84,0,0,0,0,0,0,0,84,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,84,0,0,0,0,0,0,0,84,0,0,0,0,0,84,0,0,0,0,0,0,0,0")),function(a,b){return a.$attr_accessor("_lex_from_state_actions"),a.$private("_lex_from_state_actions","_lex_from_state_actions=")}(e.get_singleton_class(t),y),t['$_lex_from_state_actions='](e.large_array_unpack("0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,85,85,0,0,0,0,85,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,85,0,0,0,0,0,0,0,85,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,85,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,85,0,0,0,0,0,85,0,0,0,0,0,0,0,85,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,85,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,85,0,0,0,0,0,0,85,0,0,0,0,0,0,0,85,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,85,0,0,0,0,0,0,0,85,0,0,0,0,0,85,0,0,0,0,0,0,0,0")),function(a,b){return a.$attr_accessor("_lex_eof_trans"),a.$private("_lex_eof_trans","_lex_eof_trans=")}(e.get_singleton_class(t),y),t['$_lex_eof_trans='](e.large_array_unpack("0,0,0,0,0,9,11,13,13,13,13,19,19,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,84,84,84,84,84,84,84,84,84,84,84,84,94,96,96,96,108,108,108,116,118,118,118,118,118,124,116,116,116,116,116,116,116,150,150,150,150,150,150,116,166,116,166,150,150,116,116,150,150,150,150,179,179,179,184,186,186,186,190,190,193,193,193,193,198,198,198,184,190,190,190,190,190,190,190,190,190,229,236,238,238,238,238,229,246,246,246,246,246,246,246,246,246,246,0,0,261,261,262,263,0,304,306,307,308,309,311,313,317,317,308,308,308,308,319,308,308,313,308,308,304,323,323,323,323,323,323,313,313,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,362,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,308,0,406,407,408,410,406,406,414,0,433,435,437,438,439,440,441,443,440,440,440,440,440,446,440,440,448,446,446,440,0,467,468,19,19,471,472,19,468,468,475,477,480,468,481,468,482,483,485,487,468,475,488,488,477,488,492,488,488,488,488,0,94,500,501,500,500,0,510,511,513,515,517,515,519,0,531,532,533,534,536,538,540,541,541,541,541,541,541,541,541,541,541,541,541,541,541,541,541,0,599,602,605,606,610,612,613,614,615,616,618,621,622,624,626,629,631,632,116,629,634,629,621,636,638,621,621,656,659,661,662,666,669,670,671,672,656,656,656,656,656,656,656,656,656,656,676,680,682,656,656,621,687,688,688,688,621,621,621,689,116,621,621,694,621,616,599,599,599,599,599,599,599,599,599,599,599,116,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,747,606,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,772,621,0,780,781,782,784,786,788,0,797,798,799,800,802,797,805,0,190,860,862,863,864,865,867,869,871,874,874,190,876,878,879,880,876,882,884,884,887,887,890,901,190,907,909,911,912,915,916,890,890,919,919,919,925,927,928,931,933,934,935,919,919,942,947,952,919,919,959,959,919,919,884,876,876,884,876,876,871,190,977,978,978,978,978,978,978,984,871,987,988,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,1028,1029,989,989,1033,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,1087,865,1088,0,1094,1095,1096,1098,1094,1094,1094,0,1103,1103,1103,1103,1107,0,1117,1118,1119,1121,1123,1125,1123,1123")),function(a,b){return a.$attr_accessor("lex_start")}(e.get_singleton_class(t),y),t['$lex_start='](128),function(a,b){return a.$attr_accessor("lex_error")}(e.get_singleton_class(t),y),t['$lex_error='](0),function(a,b){return a.$attr_accessor("lex_en_expr_variable")}(e.get_singleton_class(t),y),t['$lex_en_expr_variable='](129),function(a,b){return a.$attr_accessor("lex_en_expr_fname")}(e.get_singleton_class(t),y),t['$lex_en_expr_fname='](134),function(a,b){return a.$attr_accessor("lex_en_expr_endfn")}(e.get_singleton_class(t),y),t['$lex_en_expr_endfn='](247),function(a,b){return a.$attr_accessor("lex_en_expr_dot")}(e.get_singleton_class(t),y),t['$lex_en_expr_dot='](255),function(a,b){return a.$attr_accessor("lex_en_expr_arg")}(e.get_singleton_class(t),y),t['$lex_en_expr_arg='](276),function(a,b){return a.$attr_accessor("lex_en_expr_cmdarg")}(e.get_singleton_class(t),y),t['$lex_en_expr_cmdarg='](307),function(a,b){return a.$attr_accessor("lex_en_expr_endarg")}(e.get_singleton_class(t),y),t['$lex_en_expr_endarg='](313),function(a,b){return a.$attr_accessor("lex_en_expr_mid")}(e.get_singleton_class(t),y),t['$lex_en_expr_mid='](321),function(a,b){return a.$attr_accessor("lex_en_expr_beg")}(e.get_singleton_class(t),y),t['$lex_en_expr_beg='](345),function(a,b){return a.$attr_accessor("lex_en_expr_labelarg")}(e.get_singleton_class(t),y),t['$lex_en_expr_labelarg='](501),function(a,b){return a.$attr_accessor("lex_en_expr_value")}(e.get_singleton_class(t),y),t['$lex_en_expr_value='](508),function(a,b){return a.$attr_accessor("lex_en_expr_end")}(e.get_singleton_class(t),y),t['$lex_en_expr_end='](516),function(a,b){return a.$attr_accessor("lex_en_leading_dot")}(e.get_singleton_class(t),y),t['$lex_en_leading_dot='](696),function(a,b){return a.$attr_accessor("lex_en_line_comment")}(e.get_singleton_class(t),y),t['$lex_en_line_comment='](704),function(a,b){return a.$attr_accessor("lex_en_line_begin")}(e.get_singleton_class(t),y),t['$lex_en_line_begin='](710),function(a,b){return a.$attr_accessor("lex_en_inside_string")}(e.get_singleton_class(t),y),t['$lex_en_inside_string='](128),t.$attr_reader("source_buffer"),t.$attr_accessor("diagnostics"),t.$attr_accessor("static_env"),t.$attr_accessor("force_utf32"),t.$attr_accessor("cond","cmdarg","context","command_start"),t.$attr_accessor("tokens","comments"),t.$attr_reader("paren_nest","cmdarg_stack","cond_stack","lambda_stack","version"),g(t,'$initialize',function(e){var b=this;return b.version=e,b.static_env=c,b.context=c,b.tokens=c,b.comments=c,b._lex_actions=d(b.$class()['$respond_to?']("_lex_actions",!0))?b.$class().$send("_lex_actions"):[],b.emit_integer=i(b,'lambda',[],function d(a,b){var e=d.$$s==null?this:d.$$s;return a==null&&(a=c),b==null&&(b=c),e.$emit("tINTEGER",a),b},{$$s:b}),b.emit_rational=i(b,'lambda',[],function d(a,b){var e=d.$$s==null?this:d.$$s;return a==null&&(a=c),b==null&&(b=c),e.$emit("tRATIONAL",e.$Rational(a)),b},{$$s:b}),b.emit_imaginary=i(b,'lambda',[],function d(a,b){var e=d.$$s==null?this:d.$$s;return a==null&&(a=c),b==null&&(b=c),e.$emit("tIMAGINARY",e.$Complex(0,a)),b},{$$s:b}),b.emit_imaginary_rational=i(b,'lambda',[],function e(a,b){var d=e.$$s==null?this:e.$$s;return a==null&&(a=c),b==null&&(b=c),d.$emit("tIMAGINARY",d.$Complex(0,d.$Rational(a))),b},{$$s:b}),b.emit_integer_re=i(b,'lambda',[],function f(d,e){var b=f.$$s==null?this:f.$$s;return b.ts==null&&(b.ts=c),b.te==null&&(b.te=c),d==null&&(d=c),e==null&&(e=c),b.$emit("tINTEGER",d,b.ts,a(b.te,2)),a(e,2)},{$$s:b}),b.emit_integer_if=i(b,'lambda',[],function f(d,e){var b=f.$$s==null?this:f.$$s;return b.ts==null&&(b.ts=c),b.te==null&&(b.te=c),d==null&&(d=c),e==null&&(e=c),b.$emit("tINTEGER",d,b.ts,a(b.te,2)),a(e,2)},{$$s:b}),b.emit_integer_rescue=i(b,'lambda',[],function f(d,e){var b=f.$$s==null?this:f.$$s;return b.ts==null&&(b.ts=c),b.te==null&&(b.te=c),d==null&&(d=c),e==null&&(e=c),b.$emit("tINTEGER",d,b.ts,a(b.te,6)),a(e,6)},{$$s:b}),b.emit_float=i(b,'lambda',[],function d(a,b){var e=d.$$s==null?this:d.$$s;return a==null&&(a=c),b==null&&(b=c),e.$emit("tFLOAT",e.$construct_float(a)),b},{$$s:b}),b.emit_imaginary_float=i(b,'lambda',[],function e(a,b){var d=e.$$s==null?this:e.$$s;return a==null&&(a=c),b==null&&(b=c),d.$emit("tIMAGINARY",d.$Complex(0,d.$construct_float(a))),b},{$$s:b}),b.emit_float_if=i(b,'lambda',[],function f(d,e){var b=f.$$s==null?this:f.$$s;return b.ts==null&&(b.ts=c),b.te==null&&(b.te=c),d==null&&(d=c),e==null&&(e=c),b.$emit("tFLOAT",b.$construct_float(d),b.ts,a(b.te,2)),a(e,2)},{$$s:b}),b.emit_float_rescue=i(b,'lambda',[],function f(d,e){var b=f.$$s==null?this:f.$$s;return b.ts==null&&(b.ts=c),b.te==null&&(b.te=c),d==null&&(d=c),e==null&&(e=c),b.$emit("tFLOAT",b.$construct_float(d),b.ts,a(b.te,6)),a(e,6)},{$$s:b}),b.$reset()}),g(t,'$construct_float',function(d){var a,e=this,b=c;return k.VERBOSE==null&&(k.VERBOSE=c),function(){try{return a=[k.VERBOSE,c],b=a[0],k.VERBOSE=a[1],a,e.$Float(d)}finally{k.VERBOSE=b}}()}),g(t,'$reset',function(b){var a=this;return b==null&&(b=!0),d(b)&&(a.cs=a.$class().$lex_en_line_begin(),a.cond=v('StackState').$new("cond"),a.cmdarg=v('StackState').$new("cmdarg"),a.cond_stack=[],a.cmdarg_stack=[]),a.force_utf32=!1,a.source_pts=c,a.p=0,a.ts=c,a.te=c,a.act=0,a.stack=[],a.top=0,a.token_queue=[],a.eq_begin_s=c,a.sharp_s=c,a.newline_s=c,a.num_base=c,a.num_digits_s=c,a.num_suffix_s=c,a.num_xfrm=c,a.paren_nest=0,a.lambda_stack=[],a.command_start=!0,a.cs_before_block_comment=a.$class().$lex_en_line_begin(),a.strings=o(v('Parser'),'LexerStrings').$new(a,a.version)},-1),g(t,'$source_buffer=',function(g){var b,a=this,e=c;return a.source_buffer=g,d(a.source_buffer)?(e=a.source_buffer.$source(),f(e.$encoding(),o(v('Encoding'),'UTF_8'))?a.source_pts=e.$unpack("U*"):a.source_pts=e.$unpack("C*"),f(a.source_pts['$[]'](0),65279)&&(a.p=1)):a.source_pts=c,a.strings['$source_buffer='](a.source_buffer),(b=[a.source_pts],i(a.strings,'source_pts=',b),b[b.length-1])}),g(t,'$encoding',function(){var a=this;return a.source_buffer.$source().$encoding()}),p(y[0],'LEX_STATES',new Map([["line_begin",t.$lex_en_line_begin()],["expr_dot",t.$lex_en_expr_dot()],["expr_fname",t.$lex_en_expr_fname()],["expr_value",t.$lex_en_expr_value()],["expr_beg",t.$lex_en_expr_beg()],["expr_mid",t.$lex_en_expr_mid()],["expr_arg",t.$lex_en_expr_arg()],["expr_cmdarg",t.$lex_en_expr_cmdarg()],["expr_end",t.$lex_en_expr_end()],["expr_endarg",t.$lex_en_expr_endarg()],["expr_endfn",t.$lex_en_expr_endfn()],["expr_labelarg",t.$lex_en_expr_labelarg()],["inside_string",t.$lex_en_inside_string()]])),g(t,'$state',function(){var a=this;return v('LEX_STATES').$invert().$fetch(a.cs,a.cs)}),g(t,'$state=',function(a){var b=this;return b.cs=v('LEX_STATES').$fetch(a)}),g(t,'$push_cmdarg',function(){var a=this;return a.cmdarg_stack.$push(a.cmdarg),a.cmdarg=v('StackState').$new("cmdarg."+a.cmdarg_stack.$count())}),g(t,'$pop_cmdarg',function(){var a=this;return a.cmdarg=a.cmdarg_stack.$pop()}),g(t,'$push_cond',function(){var a=this;return a.cond_stack.$push(a.cond),a.cond=v('StackState').$new("cond."+a.cond_stack.$count())}),g(t,'$pop_cond',function(){var a=this;return a.cond=a.cond_stack.$pop()}),g(t,'$dedent_level',function(){var a=this;return a.strings.$dedent_level()}),g(t,'$advance',function(){var w,E,e=this,B=c,Q=c,ag=c,aj=c,W=c,ah=c,Y=c,ae=c,ab=c,aa=c,ak=c,x=c,g=c,M=c,y=c,ad=c,T=c,I=c,L=c,O=c,al=c,am=c,i=c,X=c,V=c,t=c,_=c,o=c,R=c,ai=c,p=c,P=c,G=c,J=c,$=c,K=c,A=c,z=c,D=c,N=c,Z=c,F=c,H=c,C=c,u=c,ac=c,af=c,S=c,U=c;if(!d(e.token_queue['$empty?']()))return e.token_queue.$shift();for(B=e.$class(),Q=B.$send("_lex_trans_keys"),ag=B.$send("_lex_key_spans"),aj=B.$send("_lex_index_offsets"),W=B.$send("_lex_indicies"),ah=B.$send("_lex_trans_targs"),Y=B.$send("_lex_trans_actions"),ae=B.$send("_lex_to_state_actions"),ab=B.$send("_lex_from_state_actions"),aa=B.$send("_lex_eof_trans"),ak=e._lex_actions,x=b(e.source_pts.$size(),2),w=[e.p,x],g=w[0],M=w[1],w,y=e.command_start,e.command_start=!1,ad=!1,E=c,w=r(E),T=w[0]==null?c:w[0],I=w[1]==null?c:w[1],L=w[2]==null?c:w[2],O=w[3]==null?c:w[3],al=w[4]==null?c:w[4],am=w[5]==null?c:w[5],E,i=0,X=10,V=15,t=20,_=30,o=40;d(!0);){if(d(m(i,0))){if(f(g,x)){i=_;continue}if(f(e.cs,0)){i=o;continue}}if(d(m(i,X))){switch(ab['$[]'](e.cs).valueOf()){case 85:e.ts=g;break;default:c}L=e.cs['$<<'](1),O=aj['$[]'](e.cs),T=ag['$[]'](e.cs),R=d(ai=e.source_pts['$[]'](g))?ai:0,I=d(n(T,0))&&d(m(Q['$[]'](L),R))&&d(m(R,Q['$[]'](b(L,1))))?W['$[]'](a(b(O,R),Q['$[]'](L))):W['$[]'](b(O,T))}if(d(m(i,V)))if(e.cs=ah['$[]'](I),s(Y['$[]'](I),0))switch(Y['$[]'](I).valueOf()){case 14:e.newline_s=g;break;case 15:g=e.$on_newline(g);break;case 45:e.sharp_s=a(g,1);break;case 49:e.$emit_comment_from_range(g,x);break;case 190:p=g;break;case 22:p=g;break;case 24:p=g;break;case 26:p=g;break;case 56:P=g;break;case 229:p=a(g,1),G="ivar_name";break;case 232:p=a(g,2),G="cvar_name";break;case 244:p=g;break;case 188:J=e.$tok(),$=e.ts,K=e.te;break;case 331:e.num_base=16,e.num_digits_s=g;break;case 325:e.num_base=10,e.num_digits_s=g;break;case 328:e.num_base=8,e.num_digits_s=g;break;case 322:e.num_base=2,e.num_digits_s=g;break;case 337:e.num_base=10,e.num_digits_s=e.ts;break;case 299:e.num_base=8,e.num_digits_s=e.ts;break;case 314:e.num_suffix_s=g;break;case 307:e.num_suffix_s=g;break;case 304:e.num_suffix_s=g;break;case 74:p=g;break;case 65:e.te=b(g,1);break;case 1:e.te=b(g,1),e.$emit_global_var(),e.cs=e.$stack_pop(),g=b(g,1),i=o;continue;break;case 87:e.te=g,g=a(g,1),e.$emit_global_var(),e.cs=e.$stack_pop(),g=b(g,1),i=o;continue;break;case 89:e.te=g,g=a(g,1),e.$emit_class_var(),e.cs=e.$stack_pop(),g=b(g,1),i=o;continue;break;case 88:e.te=g,g=a(g,1),e.$emit_instance_var(),e.cs=e.$stack_pop(),g=b(g,1),i=o;continue;break;case 110:e.te=b(g,1),e.$emit_table(v('KEYWORDS_BEGIN')),e.cs=247,g=b(g,1),i=o;continue;break;case 96:e.te=b(g,1),e.$emit("tIDENTIFIER"),e.cs=247,g=b(g,1),i=o;continue;break;case 3:e.te=b(g,1),g=a(e.ts,1),e.cs=516,e.stack['$[]='](e.top,e.cs),e.top=b(e.top,1),e.cs=129,i=t;continue;break;case 93:e.te=b(g,1),e.$emit_table(v('PUNCTUATION')),e.cs=247,g=b(g,1),i=o;continue;break;case 105:e.te=b(g,1),g=a(g,1),g=a(g,1),e.cs=516,i=t;continue;break;case 5:if(e.te=b(g,1),d(e['$version?'](23))){w=[e.$tok()['$[]'](q(0,-2,!1)),e.$tok()['$[]'](-1).$chr()],A=w[0],z=w[1],w,e.strings.$push_literal(A,z,e.ts),e.cs=128,i=t;continue}else{g=a(e.ts,1),e.cs=516,i=t;continue}break;case 92:e.te=b(g,1),g=a(g,1),e.cs=516,i=t;continue;break;case 91:e.te=b(g,1),g=a(g,1),g=b(g,1),i=o;continue;break;case 109:e.te=g,g=a(g,1),e.$emit_table(v('KEYWORDS_BEGIN')),e.cs=247,g=b(g,1),i=o;continue;break;case 106:e.te=g,g=a(g,1),e.$emit("tCONSTANT"),e.cs=247,g=b(g,1),i=o;continue;break;case 108:e.te=g,g=a(g,1),e.$emit("tIDENTIFIER"),e.cs=247,g=b(g,1),i=o;continue;break;case 103:e.te=g,g=a(g,1),g=a(e.ts,1),e.cs=516,e.stack['$[]='](e.top,e.cs),e.top=b(e.top,1),e.cs=129,i=t;continue;break;case 99:e.te=g,g=a(g,1),e.$emit_table(v('PUNCTUATION')),e.cs=247,g=b(g,1),i=o;continue;break;case 104:e.te=g,g=a(g,1),g=a(g,1),e.cs=345,i=t;continue;break;case 97:e.te=g,g=a(g,1);break;case 102:e.te=g,g=a(g,1),g=a(g,1),e.cs=516,i=t;continue;break;case 4:g=a(e.te,1),e.$emit_table(v('PUNCTUATION')),e.cs=247,g=b(g,1),i=o;continue;break;case 2:g=a(e.te,1),g=a(g,1),e.cs=516,i=t;continue;break;case 95:switch(e.act.valueOf()){case 4:g=a(e.te,1),e.$emit_table(v('KEYWORDS_BEGIN')),e.cs=247,g=b(g,1),i=o;continue;break;case 5:g=a(e.te,1),e.$emit("tCONSTANT"),e.cs=247,g=b(g,1),i=o;continue;break;case 6:g=a(e.te,1),e.$emit("tIDENTIFIER"),e.cs=247,g=b(g,1),i=o;continue;break;default:c}break;case 7:e.te=b(g,1),e.$emit("tLABEL",e.$tok(e.ts,a(e.te,2)),e.ts,a(e.te,1)),g=a(g,1),e.cs=501,g=b(g,1),i=o;continue;break;case 8:if(e.te=b(g,1),d(h(e.version,31))&&d(e.context.$in_argdef())){e.$emit("tBDOT3","...".$freeze()),e.cs=516,g=b(g,1),i=o;continue}else{g=a(g,3),e.cs=516,i=t;continue}break;case 112:e.te=b(g,1),g=a(g,1),e.cs=516,i=t;continue;break;case 111:e.te=b(g,1),g=a(g,1),g=b(g,1),i=o;continue;break;case 114:e.te=g,g=a(g,1);break;case 113:e.te=g,g=a(g,1),g=a(g,1),e.cs=516,i=t;continue;break;case 6:g=a(e.te,1),g=a(g,1),e.cs=516,i=t;continue;break;case 120:e.te=b(g,1),e.$emit_table(v('PUNCTUATION')),e.cs=276,g=b(g,1),i=o;continue;break;case 119:e.te=b(g,1),g=a(g,1),e.cs=516,i=t;continue;break;case 118:e.te=b(g,1),g=a(g,1),g=b(g,1),i=o;continue;break;case 130:e.te=g,g=a(g,1),e.$emit("tCONSTANT"),e.cs=e.$arg_or_cmdarg(y),g=b(g,1),i=o;continue;break;case 121:e.te=g,g=a(g,1),e.$emit("tIDENTIFIER"),e.cs=e.$arg_or_cmdarg(y),g=b(g,1),i=o;continue;break;case 126:e.te=g,g=a(g,1),e.$emit_table(v('PUNCTUATION')),e.cs=276,g=b(g,1),i=o;continue;break;case 124:e.te=g,g=a(g,1);break;case 129:e.te=g,g=a(g,1),g=a(g,1),e.cs=516,i=t;continue;break;case 153:e.te=b(g,1),g=a(e.ts,1),e.cs=516,i=t;continue;break;case 136:e.te=b(g,1),e.$check_ambiguous_slash(p),g=a(p,1),e.cs=345,i=t;continue;break;case 142:e.te=b(g,1),g=a(g,1),g=a(g,1),e.cs=345,i=t;continue;break;case 10:e.te=b(g,1),g=a(e.ts,1),e.cs=345,i=t;continue;break;case 144:e.te=b(g,1),g=a(p,1),e.cs=516,i=t;continue;break;case 25:e.te=b(g,1),g=a(e.ts,1),e.cs=516,i=t;continue;break;case 131:e.te=b(g,1),g=a(g,1),e.cs=345,i=t;continue;break;case 132:e.te=b(g,1),g=a(g,1),g=b(g,1),i=o;continue;break;case 143:e.te=g,g=a(g,1),g=a(g,1),e.cs=345,i=t;continue;break;case 139:e.te=g,g=a(g,1),e.$diagnostic("warning","ambiguous_prefix",new Map([["prefix",e.$tok(p,e.te)]]),e.$range(p,e.te)),g=a(p,1),e.cs=345,i=t;continue;break;case 141:e.te=g,g=a(g,1),g=a(g,1),e.cs=345,i=t;continue;break;case 135:e.te=g,g=a(g,1),g=a(e.ts,1),e.cs=516,i=t;continue;break;case 134:e.te=g,g=a(g,1);break;case 152:e.te=g,g=a(g,1),g=a(g,1),e.cs=345,i=t;continue;break;case 11:g=a(e.te,1);break;case 27:g=a(e.te,1),g=a(g,1),e.cs=345,i=t;continue;break;case 9:switch(e.act.valueOf()){case 33:g=a(e.te,1),e.$check_ambiguous_slash(p),g=a(p,1),e.cs=345,i=t;continue;break;case 34:g=a(e.te,1),e.$diagnostic("warning","ambiguous_prefix",new Map([["prefix",e.$tok(p,e.te)]]),e.$range(p,e.te)),g=a(p,1),e.cs=345,i=t;continue;break;case 39:g=a(e.te,1),g=a(e.ts,1),e.cs=516,i=t;continue;break;default:g=a(e.te,1)}break;case 29:e.te=b(g,1),g=a(e.ts,1),e.cs=276,i=t;continue;break;case 157:e.te=b(g,1),g=a(g,1),g=b(g,1),i=o;continue;break;case 158:e.te=g,g=a(g,1),g=a(e.ts,1),e.cs=276,i=t;continue;break;case 30:g=a(e.te,1),g=a(e.ts,1),e.cs=276,i=t;continue;break;case 28:switch(e.act.valueOf()){case 46:g=a(e.te,1),d(e.cond['$active?']())?e.$emit("kDO_COND","do".$freeze(),a(e.te,2),e.te):e.$emit("kDO","do".$freeze(),a(e.te,2),e.te),e.cs=508,g=b(g,1),i=o;continue;break;case 47:g=a(e.te,1),g=a(e.ts,1),e.cs=276,i=t;continue;break;default:c}break;case 168:e.te=b(g,1),e.$emit_do(!0),e.cs=508,g=b(g,1),i=o;continue;break;case 161:e.te=b(g,1),g=a(g,1),e.cs=516,i=t;continue;break;case 162:e.te=b(g,1),g=a(g,1),g=b(g,1),i=o;continue;break;case 163:e.te=g,g=a(g,1);break;case 166:e.te=g,g=a(g,1),g=a(g,1),e.cs=516,i=t;continue;break;case 172:e.te=b(g,1),g=a(g,1),e.cs=345,i=t;continue;break;case 171:e.te=b(g,1),g=a(g,1),g=b(g,1),i=o;continue;break;case 180:e.te=g,g=a(g,1),g=a(e.ts,1),e.cs=345,i=t;continue;break;case 174:e.te=g,g=a(g,1);break;case 178:e.te=g,g=a(g,1),g=a(g,1),e.cs=345,i=t;continue;break;case 173:switch(e.act.valueOf()){case 54:g=a(e.te,1),e.$emit_table(v('KEYWORDS')),e.cs=345,g=b(g,1),i=o;continue;break;case 55:g=a(e.te,1),g=a(e.ts,1),e.cs=345,i=t;continue;break;default:c}break;case 42:e.te=b(g,1),e.$emit("tUNARY_NUM",e.$tok(e.ts,b(e.ts,1)),e.ts,b(e.ts,1)),g=a(g,1),e.cs=516,g=b(g,1),i=o;continue;break;case 214:e.te=b(g,1),A=z=e.$tok()['$[]'](0).$chr(),e.strings.$push_literal(A,z,e.ts),g=a(g,1),e.cs=128,i=t;continue;break;case 206:e.te=b(g,1),w=[e.source_buffer.$slice(e.ts,1).$chr(),e.$tok()['$[]'](-1).$chr()],A=w[0],z=w[1],w,e.strings.$push_literal(A,z,e.ts),e.cs=128,i=t;continue;break;case 40:e.te=b(g,1),w=[e.$tok()['$[]'](q(0,-2,!1)),e.$tok()['$[]'](-1).$chr()],A=w[0],z=w[1],w,e.strings.$push_literal(A,z,e.ts),e.cs=128,i=t;continue;break;case 227:e.te=b(g,1),g=a(g,1),g=a(g,1),e.$emit("tSYMBEG",e.$tok(e.ts,b(e.ts,1)),e.ts,b(e.ts,1)),e.cs=134,i=t;continue;break;case 215:e.te=b(g,1),w=[e.$tok(),e.$tok()['$[]'](-1).$chr()],A=w[0],z=w[1],w,e.strings.$push_literal(A,z,e.ts),e.cs=128,i=t;continue;break;case 226:e.te=b(g,1),e.$emit("tSYMBOL",e.$tok(b(e.ts,1),b(e.ts,2))),e.cs=516,g=b(g,1),i=o;continue;break;case 54:e.te=b(g,1),D=e.$tok(b(e.ts,1)),d(h(e.version,33))&&d(D['$start_with?']("$0"))&&d(n(D.$length(),2))&&e.$diagnostic("error","gvar_name",new Map([["name",D]]),e.$range(b(e.ts,1),e.te)),e.$emit("tSYMBOL",D,e.ts),e.cs=516,g=b(g,1),i=o;continue;break;case 236:if(e.te=b(g,1),E=e.strings.$read_character_constant(e.ts),w=r(E),g=w[0]==null?c:w[0],N=w[1]==null?c:w[1],E,g=a(g,1),d(e.token_queue['$empty?']())){e.cs=N,i=t;continue}e.cs=N,g=b(g,1),i=o;continue;break;case 237:e.te=b(g,1),e.$diagnostic("fatal","incomplete_escape",c,e.$range(e.ts,b(e.ts,1)));break;case 216:e.te=b(g,1),e.$emit_table(v('PUNCTUATION_BEGIN')),g=b(g,1),i=o;continue;break;case 37:e.te=b(g,1),g=a(g,1),d(e['$version?'](18))?(Z=e.$tok(e.ts,a(e.te,2)),e.$emit(d(e.source_buffer.$slice(e.ts,1)['$=~'](/[A-Z]/))?"tCONSTANT":"tIDENTIFIER",Z,e.ts,a(e.te,2)),g=a(g,1),j(e.static_env['$nil?']())&&d(e.static_env['$declared?'](Z))?e.cs=516:e.cs=e.$arg_or_cmdarg(y)):(e.$emit("tLABEL",e.$tok(e.ts,a(e.te,2)),e.ts,a(e.te,1)),e.cs=501),g=b(g,1),i=o;continue;break;case 34:e.te=b(g,1),e.$emit("tIDENTIFIER",J,$,K),g=a(K,1),j(e.static_env['$nil?']())&&d(e.static_env['$declared?'](J))&&d(l(e.version,25))?e.cs=247:e.cs=307,g=b(g,1),i=o;continue;break;case 200:e.te=b(g,1),g=a(e.ts,1),e.cs_before_block_comment=e.cs,e.cs=710,i=t;continue;break;case 41:e.te=b(g,1),g=a(e.ts,1),e.cs=516,i=t;continue;break;case 183:e.te=b(g,1),g=a(g,1),g=b(g,1),i=o;continue;break;case 210:e.te=g,g=a(g,1),e.$emit("tUNARY_NUM",e.$tok(e.ts,b(e.ts,1)),e.ts,b(e.ts,1)),g=a(g,1),e.cs=516,g=b(g,1),i=o;continue;break;case 209:e.te=g,g=a(g,1),e.$emit("tSTAR","*".$freeze()),g=b(g,1),i=o;continue;break;case 205:e.te=g,g=a(g,1),e.$diagnostic("fatal","string_eof",c,e.$range(e.ts,b(e.ts,1)));break;case 234:e.te=g,g=a(g,1),e.$diagnostic("error","unterminated_heredoc_id",c,e.$range(e.ts,b(e.ts,1)));break;case 217:e.te=g,g=a(g,1),D=e.$tok(b(e.ts,1)),d(h(e.version,33))&&d(D['$start_with?']("$0"))&&d(n(D.$length(),2))&&e.$diagnostic("error","gvar_name",new Map([["name",D]]),e.$range(b(e.ts,1),e.te)),e.$emit("tSYMBOL",D,e.ts),e.cs=516,g=b(g,1),i=o;continue;break;case 230:e.te=g,g=a(g,1),e.$emit_colon_with_digits(g,p,G),e.cs=516,g=b(g,1),i=o;continue;break;case 235:e.te=g,g=a(g,1),e.$diagnostic("fatal","incomplete_escape",c,e.$range(e.ts,b(e.ts,1)));break;case 207:e.te=g,g=a(g,1),e.$emit_table(v('PUNCTUATION_BEGIN')),g=b(g,1),i=o;continue;break;case 211:e.te=g,g=a(g,1),d(h(e.version,27))?e.$emit("tBDOT2"):e.$emit("tDOT2"),e.cs=345,g=b(g,1),i=o;continue;break;case 212:e.te=g,g=a(g,1),F=a(e.te,1)['$=='](e.newline_s),H=!1,C=d(F)?a(e.te,1):e.te,d(h(e.version,30))?d(e.lambda_stack['$any?']())&&f(b(e.lambda_stack.$last(),1),e.paren_nest)?e.$emit("tDOT3","...".$freeze(),e.ts,C):(e.$emit("tBDOT3","...".$freeze(),e.ts,C),d(h(e.version,31))&&d(F)&&d(e.context.$in_argdef())&&(e.$emit("tNL",a(e.te,1),e.te),H=!0)):d(h(e.version,27))?e.$emit("tBDOT3","...".$freeze(),e.ts,C):e.$emit("tDOT3","...".$freeze(),e.ts,C),d(F)&&j(H)&&(g=a(g,1)),e.cs=345,g=b(g,1),i=o;continue;break;case 187:if(e.te=g,g=a(g,1),e.$emit("tIDENTIFIER"),j(e.static_env['$nil?']())&&d(e.static_env['$declared?'](e.$tok()))){e.cs=247,g=b(g,1),i=o;continue}else if(d(h(e.version,32))&&d(e.$tok()['$=~'](/^_[1-9]$/))){e.cs=247,g=b(g,1),i=o;continue}else{e.cs=e.$arg_or_cmdarg(y),g=b(g,1),i=o;continue}break;case 197:e.te=g,g=a(g,1);break;case 199:e.te=g,g=a(g,1),g=a(e.ts,1),e.cs_before_block_comment=e.cs,e.cs=710,i=t;continue;break;case 202:e.te=g,g=a(g,1),g=a(e.ts,1),e.cs=516,i=t;continue;break;case 39:g=a(e.te,1),e.$diagnostic("fatal","string_eof",c,e.$range(e.ts,b(e.ts,1)));break;case 58:g=a(e.te,1),e.$diagnostic("error","unterminated_heredoc_id",c,e.$range(e.ts,b(e.ts,1)));break;case 33:if(g=a(e.te,1),e.$emit("tIDENTIFIER"),j(e.static_env['$nil?']())&&d(e.static_env['$declared?'](e.$tok()))){e.cs=247,g=b(g,1),i=o;continue}else if(d(h(e.version,32))&&d(e.$tok()['$=~'](/^_[1-9]$/))){e.cs=247,g=b(g,1),i=o;continue}else{e.cs=e.$arg_or_cmdarg(y),g=b(g,1),i=o;continue}break;case 38:g=a(e.te,1);break;case 53:g=a(e.te,1),g=a(e.ts,1),e.cs=516,i=t;continue;break;case 36:switch(e.act.valueOf()){case 60:g=a(e.te,1),e.$emit("tUNARY_NUM",e.$tok(e.ts,b(e.ts,1)),e.ts,b(e.ts,1)),g=a(g,1),e.cs=516,g=b(g,1),i=o;continue;break;case 67:g=a(e.te,1),e.$diagnostic("error","unterminated_heredoc_id",c,e.$range(e.ts,b(e.ts,1)));break;case 76:if(g=a(e.te,1),d(h(e.version,27))){e.$emit("tPIPE",e.$tok(e.ts,b(e.ts,1)),e.ts,b(e.ts,1)),g=a(g,1),e.cs=345,g=b(g,1),i=o;continue}else{g=a(g,2),e.cs=516,i=t;continue}break;case 80:g=a(e.te,1),e.$emit_table(v('PUNCTUATION_BEGIN')),g=b(g,1),i=o;continue;break;case 81:g=a(e.te,1),e.$emit("kRESCUE","rescue".$freeze(),e.ts,p),g=a(p,1),e.cs=321,g=b(g,1),i=o;continue;break;case 82:g=a(e.te,1),e.$emit_table(v('KEYWORDS_BEGIN')),e.command_start=!0,e.cs=508,g=b(g,1),i=o;continue;break;case 86:g=a(e.te,1),g=a(e.ts,1),e.cs=516,i=t;continue;break;case 87:if(g=a(e.te,1),e.$emit("tIDENTIFIER"),j(e.static_env['$nil?']())&&d(e.static_env['$declared?'](e.$tok()))){e.cs=247,g=b(g,1),i=o;continue}else if(d(h(e.version,32))&&d(e.$tok()['$=~'](/^_[1-9]$/))){e.cs=247,g=b(g,1),i=o;continue}else{e.cs=e.$arg_or_cmdarg(y),g=b(g,1),i=o;continue}break;case 91:g=a(e.te,1),g=a(e.ts,1),e.cs=516,i=t;continue;break;default:c}break;case 247:e.te=b(g,1),g=a(g,1),e.cs=345,i=t;continue;break;case 248:e.te=b(g,1),g=a(g,1),g=b(g,1),i=o;continue;break;case 249:e.te=g,g=a(g,1);break;case 253:e.te=g,g=a(g,1),g=a(g,1),e.cs=345,i=t;continue;break;case 61:e.te=b(g,1),g=a(e.ts,1),e.cs=516,i=t;continue;break;case 257:e.te=b(g,1),e.strings.$push_literal(e.$tok(),e.$tok(),e.ts),e.cs=128,i=t;continue;break;case 256:e.te=b(g,1),g=a(g,1),e.cs=345,i=t;continue;break;case 255:e.te=b(g,1),g=a(g,1),g=b(g,1),i=o;continue;break;case 259:e.te=g,g=a(g,1);break;case 258:e.te=g,g=a(g,1),g=a(g,1),e.cs=345,i=t;continue;break;case 60:g=a(e.te,1),g=a(g,1),e.cs=345,i=t;continue;break;case 292:e.te=b(g,1),e.$emit("tLAMBDA","->".$freeze(),e.ts,b(e.ts,2)),e.lambda_stack.$push(e.paren_nest),e.cs=247,g=b(g,1),i=o;continue;break;case 71:e.te=b(g,1),e.$emit_singleton_class(),e.cs=508,g=b(g,1),i=o;continue;break;case 267:e.te=b(g,1),w=[e.$tok(),e.$tok()['$[]'](-1).$chr()],A=w[0],z=w[1],w,e.strings.$push_literal(A,z,e.ts,c,!1,!1,!0),e.cs=128,i=t;continue;break;case 63:e.te=b(g,1),g=a(e.ts,1),e.stack['$[]='](e.top,e.cs),e.top=b(e.top,1),e.cs=129,i=t;continue;break;case 288:e.te=b(g,1),e.$emit_table(v('PUNCTUATION')),e.cs=255,g=b(g,1),i=o;continue;break;case 341:e.te=b(g,1),e.$emit_table(v('PUNCTUATION')),e.cs=508,g=b(g,1),i=o;continue;break;case 281:e.te=b(g,1),e.$emit_table(v('PUNCTUATION')),e.cs=508,g=b(g,1),i=o;continue;break;case 286:e.te=b(g,1),e.$emit("tOP_ASGN",e.$tok(e.ts,a(e.te,1))),e.cs=345,g=b(g,1),i=o;continue;break;case 272:e.te=b(g,1),e.$emit("tEH","?".$freeze()),e.cs=508,g=b(g,1),i=o;continue;break;case 269:e.te=b(g,1),e.$emit_table(v('PUNCTUATION')),e.cs=345,g=b(g,1),i=o;continue;break;case 271:e.te=b(g,1),e.$emit("tSEMI",";".$freeze()),e.command_start=!0,e.cs=508,g=b(g,1),i=o;continue;break;case 346:e.te=b(g,1),e.$diagnostic("error","bare_backslash",c,e.$range(e.ts,b(e.ts,1))),g=a(g,1);break;case 266:e.te=b(g,1),e.$diagnostic("fatal","unexpected",new Map([["character",e.$tok().$inspect()['$[]'](q(1,-2,!1))]]));break;case 265:e.te=b(g,1),g=a(g,1),g=b(g,1),i=o;continue;break;case 357:e.te=g,g=a(g,1),e.$emit_table(v('KEYWORDS')),e.cs=134,g=b(g,1),i=o;continue;break;case 355:e.te=g,g=a(g,1),e.$emit_singleton_class(),e.cs=508,g=b(g,1),i=o;continue;break;case 354:e.te=g,g=a(g,1),e.$emit_table(v('KEYWORDS')),e.command_start=!0,e.cs=508,g=b(g,1),i=o;continue;break;case 296:e.te=g,g=a(g,1),e.$diagnostic("error","no_dot_digit_literal");break;case 343:e.te=g,g=a(g,1),e.$emit("tCONSTANT"),e.cs=e.$arg_or_cmdarg(y),g=b(g,1),i=o;continue;break;case 285:e.te=g,g=a(g,1),g=a(e.ts,1),e.stack['$[]='](e.top,e.cs),e.top=b(e.top,1),e.cs=129,i=t;continue;break;case 293:e.te=g,g=a(g,1),e.$emit_table(v('PUNCTUATION')),e.cs=255,g=b(g,1),i=o;continue;break;case 349:if(e.te=g,g=a(g,1),e.$emit("tIDENTIFIER"),j(e.static_env['$nil?']())&&d(e.static_env['$declared?'](e.$tok()))){e.cs=247,g=b(g,1),i=o;continue}else if(d(h(e.version,32))&&d(e.$tok()['$=~'](/^_[1-9]$/))){e.cs=247,g=b(g,1),i=o;continue}else{e.cs=e.$arg_or_cmdarg(y),g=b(g,1),i=o;continue}break;case 291:e.te=g,g=a(g,1),e.$emit_table(v('PUNCTUATION')),e.cs=508,g=b(g,1),i=o;continue;break;case 287:e.te=g,g=a(g,1),e.$emit_table(v('PUNCTUATION')),e.cs=508,g=b(g,1),i=o;continue;break;case 280:e.te=g,g=a(g,1),e.$emit_table(v('PUNCTUATION')),e.cs=345,g=b(g,1),i=o;continue;break;case 294:e.te=g,g=a(g,1),e.$emit_table(v('PUNCTUATION')),e.cs=345,g=b(g,1),i=o;continue;break;case 278:e.te=g,g=a(g,1);break;case 284:e.te=g,g=a(g,1),e.$diagnostic("fatal","unexpected",new Map([["character",e.$tok().$inspect()['$[]'](q(1,-2,!1))]]));break;case 69:g=a(e.te,1),u=e.$numeric_literal_int(),d(e['$version?'](18,19,20))?(e.$emit("tINTEGER",u.$to_i(e.num_base),e.ts,e.num_suffix_s),g=a(e.num_suffix_s,1)):g=e.num_xfrm.$call(u.$to_i(e.num_base),g),g=b(g,1),i=o;continue;break;case 64:g=a(e.te,1),e.$diagnostic("error","no_dot_digit_literal");break;case 68:g=a(e.te,1),u=e.$tok(e.ts,e.num_suffix_s),d(e['$version?'](18,19,20))?(e.$emit("tFLOAT",e.$Float(u),e.ts,e.num_suffix_s),g=a(e.num_suffix_s,1)):g=e.num_xfrm.$call(u,g),g=b(g,1),i=o;continue;break;case 62:g=a(e.te,1),e.$diagnostic("fatal","unexpected",new Map([["character",e.$tok().$inspect()['$[]'](q(1,-2,!1))]]));break;case 66:switch(e.act.valueOf()){case 104:g=a(e.te,1),f(e.lambda_stack.$last(),e.paren_nest)?(e.lambda_stack.$pop(),f(e.$tok(),"{".$freeze())?e.$emit("tLAMBEG","{".$freeze()):e.$emit("kDO_LAMBDA","do".$freeze())):f(e.$tok(),"{".$freeze())?e.$emit("tLCURLY","{".$freeze()):e.$emit_do(),f(e.$tok(),"{".$freeze())&&(e.paren_nest=b(e.paren_nest,1)),e.command_start=!0,e.cs=508,g=b(g,1),i=o;continue;break;case 105:g=a(e.te,1),e.$emit_table(v('KEYWORDS')),e.cs=134,g=b(g,1),i=o;continue;break;case 106:g=a(e.te,1),e.$emit_singleton_class(),e.cs=508,g=b(g,1),i=o;continue;break;case 107:g=a(e.te,1),e.$emit_table(v('KEYWORDS')),e.cs=345,g=b(g,1),i=o;continue;break;case 108:g=a(e.te,1),e.$emit_table(v('KEYWORDS')),e.command_start=!0,e.cs=508,g=b(g,1),i=o;continue;break;case 109:g=a(e.te,1),e.$emit_table(v('KEYWORDS')),e.cs=321,g=b(g,1),i=o;continue;break;case 110:if(g=a(e.te,1),e.$emit_table(v('KEYWORDS')),d(e['$version?'](18))&&f(e.$tok(),"not".$freeze())){e.cs=345,g=b(g,1),i=o;continue}else{e.cs=276,g=b(g,1),i=o;continue}break;case 111:g=a(e.te,1),d(e['$version?'](18))?(e.$emit("tIDENTIFIER"),j(e.static_env['$nil?']())&&d(e.static_env['$declared?'](e.$tok()))||(e.cs=e.$arg_or_cmdarg(y))):e.$emit("k__ENCODING__","__ENCODING__".$freeze()),g=b(g,1),i=o;continue;break;case 112:g=a(e.te,1),e.$emit_table(v('KEYWORDS')),g=b(g,1),i=o;continue;break;case 113:g=a(e.te,1),u=e.$numeric_literal_int(),d(e['$version?'](18,19,20))?(e.$emit("tINTEGER",u.$to_i(e.num_base),e.ts,e.num_suffix_s),g=a(e.num_suffix_s,1)):g=e.num_xfrm.$call(u.$to_i(e.num_base),g),g=b(g,1),i=o;continue;break;case 115:if(g=a(e.te,1),d(e['$version?'](18,19,20)))e.$diagnostic("error","trailing_in_number",new Map([["character",e.$tok(a(e.te,1),e.te)]]),e.$range(a(e.te,1),e.te));else{e.$emit("tINTEGER",e.$tok(e.ts,a(e.te,1)).$to_i(),e.ts,a(e.te,1)),g=a(g,1),g=b(g,1),i=o;continue}break;case 116:if(g=a(e.te,1),d(e['$version?'](18,19,20)))e.$diagnostic("error","trailing_in_number",new Map([["character",e.$tok(a(e.te,1),e.te)]]),e.$range(a(e.te,1),e.te));else{e.$emit("tFLOAT",e.$tok(e.ts,a(e.te,1)).$to_f(),e.ts,a(e.te,1)),g=a(g,1),g=b(g,1),i=o;continue}break;case 117:g=a(e.te,1),u=e.$tok(e.ts,e.num_suffix_s),d(e['$version?'](18,19,20))?(e.$emit("tFLOAT",e.$Float(u),e.ts,e.num_suffix_s),g=a(e.num_suffix_s,1)):g=e.num_xfrm.$call(u,g),g=b(g,1),i=o;continue;break;case 119:g=a(e.te,1),e.$emit("tCONSTANT"),e.cs=e.$arg_or_cmdarg(y),g=b(g,1),i=o;continue;break;case 123:if(g=a(e.te,1),e.$emit("tIDENTIFIER"),j(e.static_env['$nil?']())&&d(e.static_env['$declared?'](e.$tok()))){e.cs=247,g=b(g,1),i=o;continue}else if(d(h(e.version,32))&&d(e.$tok()['$=~'](/^_[1-9]$/))){e.cs=247,g=b(g,1),i=o;continue}else{e.cs=e.$arg_or_cmdarg(y),g=b(g,1),i=o;continue}break;case 124:g=a(e.te,1),f(p,e.te)?e.$emit("tFID"):(e.$emit("tIDENTIFIER",e.$tok(e.ts,p),e.ts,p),g=a(p,1)),e.cs=276,g=b(g,1),i=o;continue;break;case 126:g=a(e.te,1),e.$emit_table(v('PUNCTUATION')),e.cs=508,g=b(g,1),i=o;continue;break;case 127:g=a(e.te,1),e.$emit_table(v('PUNCTUATION')),e.cs=345,g=b(g,1),i=o;continue;break;default:c}break;case 368:if(e.te=b(g,1),e.$emit("tNL",c,e.newline_s,b(e.newline_s,1)),d(l(e.version,27))){g=a(g,1),e.cs=710,g=b(g,1),i=o;continue}else{e.$emit("tBDOT3"),e.cs=345,g=b(g,1),i=o;continue}break;case 80:e.te=b(g,1),g=a(p,1),e.cs=516,i=t;continue;break;case 362:e.te=b(g,1),e.$emit("tNL",c,e.newline_s,b(e.newline_s,1)),g=a(g,1),e.cs=710,g=b(g,1),i=o;continue;break;case 365:if(e.te=g,g=a(g,1),d(l(e.version,27))){e.$emit("tNL",c,e.newline_s,b(e.newline_s,1)),g=a(g,1),e.cs=710,g=b(g,1),i=o;continue}break;case 367:if(e.te=g,g=a(g,1),e.$emit("tNL",c,e.newline_s,b(e.newline_s,1)),d(l(e.version,27))){g=a(g,1),e.cs=710,g=b(g,1),i=o;continue}else{e.$emit("tBDOT2"),e.cs=345,g=b(g,1),i=o;continue}break;case 366:e.te=g,g=a(g,1),g=a(p,1),e.cs=516,i=t;continue;break;case 364:e.te=g,g=a(g,1),e.$emit("tNL",c,e.newline_s,b(e.newline_s,1)),g=a(g,1),e.cs=710,g=b(g,1),i=o;continue;break;case 75:if(g=a(e.te,1),d(l(e.version,27))){e.$emit("tNL",c,e.newline_s,b(e.newline_s,1)),g=a(g,1),e.cs=710,g=b(g,1),i=o;continue}break;case 72:g=a(e.te,1),e.$emit("tNL",c,e.newline_s,b(e.newline_s,1)),g=a(g,1),e.cs=710,g=b(g,1),i=o;continue;break;case 76:switch(e.act.valueOf()){case 140:if(g=a(e.te,1),d(l(e.version,27))){e.$emit("tNL",c,e.newline_s,b(e.newline_s,1)),g=a(g,1),e.cs=710,g=b(g,1),i=o;continue}break;case 144:g=a(e.te,1),e.$emit("tNL",c,e.newline_s,b(e.newline_s,1)),g=a(g,1),e.cs=710,g=b(g,1),i=o;continue;break;default:c}break;case 371:e.te=g,g=a(g,1),e.$emit_comment(e.eq_begin_s,e.te),e.cs=e.cs_before_block_comment,i=t;continue;break;case 370:e.te=g,g=a(g,1),e.$diagnostic("fatal","embedded_document",c,e.$range(e.eq_begin_s,b(e.eq_begin_s,"=begin".$length())));break;case 381:e.te=b(g,1),e.eq_begin_s=e.ts,e.cs=704,i=t;continue;break;case 82:e.te=b(g,1),g=a(x,3);break;case 373:e.te=b(g,1),y=!0,g=a(g,1),e.cs=508,i=t;continue;break;case 374:e.te=b(g,1),g=a(g,1),g=b(g,1),i=o;continue;break;case 375:e.te=g,g=a(g,1);break;case 380:e.te=g,g=a(g,1),e.eq_begin_s=e.ts,e.cs=704,i=t;continue;break;case 379:e.te=g,g=a(g,1),y=!0,g=a(g,1),e.cs=508,i=t;continue;break;case 81:g=a(e.te,1),y=!0,g=a(g,1),e.cs=508,i=t;continue;break;case 86:e.te=b(g,1),E=e.strings.$advance(g),w=r(E),g=w[0]==null?c:w[0],N=w[1]==null?c:w[1],E,g=a(g,1),e.cs=N,g=b(g,1),i=o;continue;break;case 52:e.newline_s=g,e.$emit_comment_from_range(g,x);break;case 154:e.newline_s=g,e.te=b(g,1),g=a(e.ts,1),e.cs=516,i=t;continue;break;case 145:e.newline_s=g,e.te=b(g,1),g=a(p,1),e.cs=516,i=t;continue;break;case 137:e.newline_s=g,e.te=b(g,1),g=a(e.ts,1),e.cs=516,i=t;continue;break;case 213:e.newline_s=g,e.te=b(g,1),F=a(e.te,1)['$=='](e.newline_s),H=!1,C=d(F)?a(e.te,1):e.te,d(h(e.version,30))?d(e.lambda_stack['$any?']())&&f(b(e.lambda_stack.$last(),1),e.paren_nest)?e.$emit("tDOT3","...".$freeze(),e.ts,C):(e.$emit("tBDOT3","...".$freeze(),e.ts,C),d(h(e.version,31))&&d(F)&&d(e.context.$in_argdef())&&(e.$emit("tNL",a(e.te,1),e.te),H=!0)):d(h(e.version,27))?e.$emit("tBDOT3","...".$freeze(),e.ts,C):e.$emit("tDOT3","...".$freeze(),e.ts,C),d(F)&&j(H)&&(g=a(g,1)),e.cs=345,g=b(g,1),i=o;continue;break;case 201:e.newline_s=g,e.te=b(g,1),g=a(e.ts,1),e.cs_before_block_comment=e.cs,e.cs=710,i=t;continue;break;case 295:e.newline_s=g,e.te=b(g,1),f(e.paren_nest,0)&&e.$diagnostic("warning","triple_dot_at_eol",c,e.$range(e.ts,a(e.te,1))),e.$emit("tDOT3","...".$freeze(),e.ts,a(e.te,1)),g=a(g,1),e.cs=345,g=b(g,1),i=o;continue;break;case 372:e.newline_s=g,e.te=b(g,1),e.$emit_comment(e.eq_begin_s,e.te),e.cs=e.cs_before_block_comment,i=t;continue;break;case 369:e.newline_s=g,e.te=b(g,1);break;case 382:e.newline_s=g,e.te=b(g,1),e.eq_begin_s=e.ts,e.cs=704,i=t;continue;break;case 83:e.newline_s=g,e.te=b(g,1),g=a(x,3);break;case 317:e.num_xfrm=e.emit_rational,e.te=g,g=a(g,1),u=e.$numeric_literal_int(),d(e['$version?'](18,19,20))?(e.$emit("tINTEGER",u.$to_i(e.num_base),e.ts,e.num_suffix_s),g=a(e.num_suffix_s,1)):g=e.num_xfrm.$call(u.$to_i(e.num_base),g),g=b(g,1),i=o;continue;break;case 315:e.num_xfrm=e.emit_imaginary,e.te=g,g=a(g,1),u=e.$numeric_literal_int(),d(e['$version?'](18,19,20))?(e.$emit("tINTEGER",u.$to_i(e.num_base),e.ts,e.num_suffix_s),g=a(e.num_suffix_s,1)):g=e.num_xfrm.$call(u.$to_i(e.num_base),g),g=b(g,1),i=o;continue;break;case 320:e.num_xfrm=e.emit_imaginary_rational,e.te=g,g=a(g,1),u=e.$numeric_literal_int(),d(e['$version?'](18,19,20))?(e.$emit("tINTEGER",u.$to_i(e.num_base),e.ts,e.num_suffix_s),g=a(e.num_suffix_s,1)):g=e.num_xfrm.$call(u.$to_i(e.num_base),g),g=b(g,1),i=o;continue;break;case 318:e.num_xfrm=e.emit_integer_re,e.te=g,g=a(g,1),u=e.$numeric_literal_int(),d(e['$version?'](18,19,20))?(e.$emit("tINTEGER",u.$to_i(e.num_base),e.ts,e.num_suffix_s),g=a(e.num_suffix_s,1)):g=e.num_xfrm.$call(u.$to_i(e.num_base),g),g=b(g,1),i=o;continue;break;case 316:e.num_xfrm=e.emit_integer_if,e.te=g,g=a(g,1),u=e.$numeric_literal_int(),d(e['$version?'](18,19,20))?(e.$emit("tINTEGER",u.$to_i(e.num_base),e.ts,e.num_suffix_s),g=a(e.num_suffix_s,1)):g=e.num_xfrm.$call(u.$to_i(e.num_base),g),g=b(g,1),i=o;continue;break;case 319:e.num_xfrm=e.emit_integer_rescue,e.te=g,g=a(g,1),u=e.$numeric_literal_int(),d(e['$version?'](18,19,20))?(e.$emit("tINTEGER",u.$to_i(e.num_base),e.ts,e.num_suffix_s),g=a(e.num_suffix_s,1)):g=e.num_xfrm.$call(u.$to_i(e.num_base),g),g=b(g,1),i=o;continue;break;case 308:e.num_xfrm=e.emit_imaginary_float,e.te=g,g=a(g,1),u=e.$tok(e.ts,e.num_suffix_s),d(e['$version?'](18,19,20))?(e.$emit("tFLOAT",e.$Float(u),e.ts,e.num_suffix_s),g=a(e.num_suffix_s,1)):g=e.num_xfrm.$call(u,g),g=b(g,1),i=o;continue;break;case 309:e.num_xfrm=e.emit_float_if,e.te=g,g=a(g,1),u=e.$tok(e.ts,e.num_suffix_s),d(e['$version?'](18,19,20))?(e.$emit("tFLOAT",e.$Float(u),e.ts,e.num_suffix_s),g=a(e.num_suffix_s,1)):g=e.num_xfrm.$call(u,g),g=b(g,1),i=o;continue;break;case 310:e.num_xfrm=e.emit_rational,e.te=g,g=a(g,1),u=e.$tok(e.ts,e.num_suffix_s),d(e['$version?'](18,19,20))?(e.$emit("tFLOAT",e.$Float(u),e.ts,e.num_suffix_s),g=a(e.num_suffix_s,1)):g=e.num_xfrm.$call(u,g),g=b(g,1),i=o;continue;break;case 312:e.num_xfrm=e.emit_imaginary_rational,e.te=g,g=a(g,1),u=e.$tok(e.ts,e.num_suffix_s),d(e['$version?'](18,19,20))?(e.$emit("tFLOAT",e.$Float(u),e.ts,e.num_suffix_s),g=a(e.num_suffix_s,1)):g=e.num_xfrm.$call(u,g),g=b(g,1),i=o;continue;break;case 311:e.num_xfrm=e.emit_float_rescue,e.te=g,g=a(g,1),u=e.$tok(e.ts,e.num_suffix_s),d(e['$version?'](18,19,20))?(e.$emit("tFLOAT",e.$Float(u),e.ts,e.num_suffix_s),g=a(e.num_suffix_s,1)):g=e.num_xfrm.$call(u,g),g=b(g,1),i=o;continue;break;case 147:e.$e_lbrace(),e.te=g,g=a(g,1),f(e.lambda_stack.$last(),e.paren_nest)?(e.lambda_stack.$pop(),e.$emit("tLAMBEG","{".$freeze(),a(e.te,1),e.te)):e.$emit("tLCURLY","{".$freeze(),a(e.te,1),e.te),e.command_start=!0,e.paren_nest=b(e.paren_nest,1),e.cs=508,g=b(g,1),i=o;continue;break;case 169:e.$e_lbrace(),e.te=g,g=a(g,1),f(e.lambda_stack.$last(),e.paren_nest)?(e.lambda_stack.$pop(),e.$emit("tLAMBEG","{".$freeze())):e.$emit("tLBRACE_ARG","{".$freeze()),e.paren_nest=b(e.paren_nest,1),e.command_start=!0,e.cs=508,g=b(g,1),i=o;continue;break;case 245:e.$e_lbrace(),e.te=g,g=a(g,1),f(e.lambda_stack.$last(),e.paren_nest)?(e.lambda_stack.$pop(),e.command_start=!0,e.$emit("tLAMBEG","{".$freeze())):e.$emit("tLBRACE","{".$freeze()),e.paren_nest=b(e.paren_nest,1),g=b(g,1),i=o;continue;break;case 360:e.$e_lbrace(),e.te=g,g=a(g,1),f(e.lambda_stack.$last(),e.paren_nest)?(e.lambda_stack.$pop(),f(e.$tok(),"{".$freeze())?e.$emit("tLAMBEG","{".$freeze()):e.$emit("kDO_LAMBDA","do".$freeze())):f(e.$tok(),"{".$freeze())?e.$emit("tLCURLY","{".$freeze()):e.$emit_do(),f(e.$tok(),"{".$freeze())&&(e.paren_nest=b(e.paren_nest,1)),e.command_start=!0,e.cs=508,g=b(g,1),i=o;continue;break;case 361:if(d(e.strings.$close_interp_on_current_literal(g))){g=a(g,1),e.cs=128,g=b(g,1),i=o;continue}e.paren_nest=a(e.paren_nest,1),e.te=g,g=a(g,1),e.$emit_rbrace_rparen_rbrack(),(f(e.$tok(),"}".$freeze())||f(e.$tok(),"]".$freeze()))&&(d(h(e.version,25))?e.cs=516:e.cs=313),g=b(g,1),i=o;continue;break;case 43:g=e.$on_newline(g),e.newline_s=g;break;case 16:g=e.$on_newline(g),p=g;break;case 18:g=e.$on_newline(g),p=g;break;case 20:g=e.$on_newline(g),p=g;break;case 98:g=e.$on_newline(g),e.te=g,g=a(g,1);break;case 117:g=e.$on_newline(g),e.te=g,g=a(g,1);break;case 125:g=e.$on_newline(g),e.te=g,g=a(g,1);break;case 19:g=e.$on_newline(g),e.te=b(g,1),g=a(e.ts,1),e.cs=516,i=t;continue;break;case 156:g=e.$on_newline(g),e.te=g,g=a(g,1);break;case 148:g=e.$on_newline(g),e.te=g,g=a(g,1),g=a(g,1),e.cs=516,i=t;continue;break;case 167:g=e.$on_newline(g),e.te=g,g=a(g,1);break;case 179:g=e.$on_newline(g),e.te=g,g=a(g,1);break;case 175:g=e.$on_newline(g),e.te=g,g=a(g,1),g=a(g,1),e.cs=516,i=t;continue;break;case 44:g=e.$on_newline(g),e.te=b(g,1),e.$emit("tUNARY_NUM",e.$tok(e.ts,b(e.ts,1)),e.ts,b(e.ts,1)),g=a(g,1),e.cs=516,g=b(g,1),i=o;continue;break;case 35:g=e.$on_newline(g),e.te=b(g,1),e.$emit("tIDENTIFIER",J,$,K),g=a(K,1),j(e.static_env['$nil?']())&&d(e.static_env['$declared?'](J))&&d(l(e.version,25))?e.cs=247:e.cs=307,g=b(g,1),i=o;continue;break;case 198:g=e.$on_newline(g),e.te=g,g=a(g,1);break;case 254:g=e.$on_newline(g),e.te=g,g=a(g,1);break;case 250:if(g=e.$on_newline(g),e.te=g,g=a(g,1),d(e.context.$in_kwarg())){g=a(g,1),e.cs=516,i=t;continue}else{e.cs=710,i=t;continue}break;case 263:g=e.$on_newline(g),e.te=g,g=a(g,1);break;case 260:g=e.$on_newline(g),e.te=g,g=a(g,1),e.cs=710,i=t;continue;break;case 347:g=e.$on_newline(g),e.te=g,g=a(g,1);break;case 279:g=e.$on_newline(g),e.te=g,g=a(g,1),e.cs=696,i=t;continue;break;case 376:g=e.$on_newline(g),e.te=g,g=a(g,1);break;case 46:e.sharp_s=a(g,1),e.$emit_comment_from_range(g,x);break;case 50:e.$emit_comment_from_range(g,x),e.newline_s=g;break;case 101:e.$emit_comment_from_range(g,x),e.te=g,g=a(g,1);break;case 116:e.$emit_comment_from_range(g,x),e.te=g,g=a(g,1);break;case 128:e.$emit_comment_from_range(g,x),e.te=g,g=a(g,1);break;case 150:e.$emit_comment_from_range(g,x),e.te=g,g=a(g,1),e.cs=516,i=t;continue;break;case 165:e.$emit_comment_from_range(g,x),e.te=g,g=a(g,1);break;case 177:e.$emit_comment_from_range(g,x),e.te=g,g=a(g,1);break;case 204:e.$emit_comment_from_range(g,x),e.te=g,g=a(g,1);break;case 252:e.$emit_comment_from_range(g,x),e.te=g,g=a(g,1);break;case 262:e.$emit_comment_from_range(g,x),e.te=g,g=a(g,1);break;case 283:e.$emit_comment_from_range(g,x),e.te=g,g=a(g,1);break;case 378:e.$emit_comment_from_range(g,x),e.te=g,g=a(g,1);break;case 122:p=g,e.te=g,g=a(g,1),e.$emit("tFID",e.$tok(e.ts,p),e.ts,p),e.cs=e.$arg_or_cmdarg(y),g=a(p,1),g=b(g,1),i=o;continue;break;case 218:p=g,e.te=g,g=a(g,1),e.$emit("tSYMBOL",e.$tok(b(e.ts,1),p),e.ts,p),g=a(p,1),e.cs=516,g=b(g,1),i=o;continue;break;case 189:p=g,e.te=g,g=a(g,1),g=a(e.ts,1),e.cs=516,i=t;continue;break;case 276:switch(p=g,e.act.valueOf()){case 104:g=a(e.te,1),f(e.lambda_stack.$last(),e.paren_nest)?(e.lambda_stack.$pop(),f(e.$tok(),"{".$freeze())?e.$emit("tLAMBEG","{".$freeze()):e.$emit("kDO_LAMBDA","do".$freeze())):f(e.$tok(),"{".$freeze())?e.$emit("tLCURLY","{".$freeze()):e.$emit_do(),f(e.$tok(),"{".$freeze())&&(e.paren_nest=b(e.paren_nest,1)),e.command_start=!0,e.cs=508,g=b(g,1),i=o;continue;break;case 105:g=a(e.te,1),e.$emit_table(v('KEYWORDS')),e.cs=134,g=b(g,1),i=o;continue;break;case 106:g=a(e.te,1),e.$emit_singleton_class(),e.cs=508,g=b(g,1),i=o;continue;break;case 107:g=a(e.te,1),e.$emit_table(v('KEYWORDS')),e.cs=345,g=b(g,1),i=o;continue;break;case 108:g=a(e.te,1),e.$emit_table(v('KEYWORDS')),e.command_start=!0,e.cs=508,g=b(g,1),i=o;continue;break;case 109:g=a(e.te,1),e.$emit_table(v('KEYWORDS')),e.cs=321,g=b(g,1),i=o;continue;break;case 110:if(g=a(e.te,1),e.$emit_table(v('KEYWORDS')),d(e['$version?'](18))&&f(e.$tok(),"not".$freeze())){e.cs=345,g=b(g,1),i=o;continue}else{e.cs=276,g=b(g,1),i=o;continue}break;case 111:g=a(e.te,1),d(e['$version?'](18))?(e.$emit("tIDENTIFIER"),j(e.static_env['$nil?']())&&d(e.static_env['$declared?'](e.$tok()))||(e.cs=e.$arg_or_cmdarg(y))):e.$emit("k__ENCODING__","__ENCODING__".$freeze()),g=b(g,1),i=o;continue;break;case 112:g=a(e.te,1),e.$emit_table(v('KEYWORDS')),g=b(g,1),i=o;continue;break;case 113:g=a(e.te,1),u=e.$numeric_literal_int(),d(e['$version?'](18,19,20))?(e.$emit("tINTEGER",u.$to_i(e.num_base),e.ts,e.num_suffix_s),g=a(e.num_suffix_s,1)):g=e.num_xfrm.$call(u.$to_i(e.num_base),g),g=b(g,1),i=o;continue;break;case 115:if(g=a(e.te,1),d(e['$version?'](18,19,20)))e.$diagnostic("error","trailing_in_number",new Map([["character",e.$tok(a(e.te,1),e.te)]]),e.$range(a(e.te,1),e.te));else{e.$emit("tINTEGER",e.$tok(e.ts,a(e.te,1)).$to_i(),e.ts,a(e.te,1)),g=a(g,1),g=b(g,1),i=o;continue}break;case 116:if(g=a(e.te,1),d(e['$version?'](18,19,20)))e.$diagnostic("error","trailing_in_number",new Map([["character",e.$tok(a(e.te,1),e.te)]]),e.$range(a(e.te,1),e.te));else{e.$emit("tFLOAT",e.$tok(e.ts,a(e.te,1)).$to_f(),e.ts,a(e.te,1)),g=a(g,1),g=b(g,1),i=o;continue}break;case 117:g=a(e.te,1),u=e.$tok(e.ts,e.num_suffix_s),d(e['$version?'](18,19,20))?(e.$emit("tFLOAT",e.$Float(u),e.ts,e.num_suffix_s),g=a(e.num_suffix_s,1)):g=e.num_xfrm.$call(u,g),g=b(g,1),i=o;continue;break;case 119:g=a(e.te,1),e.$emit("tCONSTANT"),e.cs=e.$arg_or_cmdarg(y),g=b(g,1),i=o;continue;break;case 123:if(g=a(e.te,1),e.$emit("tIDENTIFIER"),j(e.static_env['$nil?']())&&d(e.static_env['$declared?'](e.$tok()))){e.cs=247,g=b(g,1),i=o;continue}else if(d(h(e.version,32))&&d(e.$tok()['$=~'](/^_[1-9]$/))){e.cs=247,g=b(g,1),i=o;continue}else{e.cs=e.$arg_or_cmdarg(y),g=b(g,1),i=o;continue}break;case 124:g=a(e.te,1),f(p,e.te)?e.$emit("tFID"):(e.$emit("tIDENTIFIER",e.$tok(e.ts,p),e.ts,p),g=a(p,1)),e.cs=276,g=b(g,1),i=o;continue;break;case 126:g=a(e.te,1),e.$emit_table(v('PUNCTUATION')),e.cs=508,g=b(g,1),i=o;continue;break;case 127:g=a(e.te,1),e.$emit_table(v('PUNCTUATION')),e.cs=345,g=b(g,1),i=o;continue;break;default:c}break;case 123:p=a(g,2),e.te=g,g=a(g,1),e.$emit("tFID",e.$tok(e.ts,p),e.ts,p),e.cs=e.$arg_or_cmdarg(y),g=a(p,1),g=b(g,1),i=o;continue;break;case 219:p=a(g,2),e.te=g,g=a(g,1),e.$emit("tSYMBOL",e.$tok(b(e.ts,1),p),e.ts,p),g=a(p,1),e.cs=516,g=b(g,1),i=o;continue;break;case 191:p=a(g,2),e.te=g,g=a(g,1),g=a(e.ts,1),e.cs=516,i=t;continue;break;case 277:p=a(g,2),e.te=g,g=a(g,1),f(p,e.te)?e.$emit("tFID"):(e.$emit("tIDENTIFIER",e.$tok(e.ts,p),e.ts,p),g=a(p,1)),e.cs=276,g=b(g,1),i=o;continue;break;case 220:p=g,e.te=g,g=a(g,1),e.$emit("tSYMBOL",e.$tok(b(e.ts,1),p),e.ts,p),g=a(p,1),e.cs=516,g=b(g,1),i=o;continue;break;case 192:p=g,e.te=g,g=a(g,1),g=a(e.ts,1),e.cs=516,i=t;continue;break;case 221:p=a(g,2),e.te=g,g=a(g,1),e.$emit("tSYMBOL",e.$tok(b(e.ts,1),p),e.ts,p),g=a(p,1),e.cs=516,g=b(g,1),i=o;continue;break;case 193:p=a(g,2),e.te=g,g=a(g,1),g=a(e.ts,1),e.cs=516,i=t;continue;break;case 225:p=a(g,2),e.te=g,g=a(g,1),e.$emit("tSYMBOL",e.$tok(b(e.ts,1),p),e.ts,p),g=a(p,1),e.cs=516,g=b(g,1),i=o;continue;break;case 196:p=a(g,2),e.te=g,g=a(g,1),g=a(e.ts,1),e.cs=516,i=t;continue;break;case 224:p=a(g,2),e.te=g,g=a(g,1),e.$emit("tSYMBOL",e.$tok(b(e.ts,1),p),e.ts,p),g=a(p,1),e.cs=516,g=b(g,1),i=o;continue;break;case 195:switch(p=a(g,2),e.act.valueOf()){case 60:g=a(e.te,1),e.$emit("tUNARY_NUM",e.$tok(e.ts,b(e.ts,1)),e.ts,b(e.ts,1)),g=a(g,1),e.cs=516,g=b(g,1),i=o;continue;break;case 67:g=a(e.te,1),e.$diagnostic("error","unterminated_heredoc_id",c,e.$range(e.ts,b(e.ts,1)));break;case 76:if(g=a(e.te,1),d(h(e.version,27))){e.$emit("tPIPE",e.$tok(e.ts,b(e.ts,1)),e.ts,b(e.ts,1)),g=a(g,1),e.cs=345,g=b(g,1),i=o;continue}else{g=a(g,2),e.cs=516,i=t;continue}break;case 80:g=a(e.te,1),e.$emit_table(v('PUNCTUATION_BEGIN')),g=b(g,1),i=o;continue;break;case 81:g=a(e.te,1),e.$emit("kRESCUE","rescue".$freeze(),e.ts,p),g=a(p,1),e.cs=321,g=b(g,1),i=o;continue;break;case 82:g=a(e.te,1),e.$emit_table(v('KEYWORDS_BEGIN')),e.command_start=!0,e.cs=508,g=b(g,1),i=o;continue;break;case 86:g=a(e.te,1),g=a(e.ts,1),e.cs=516,i=t;continue;break;case 87:if(g=a(e.te,1),e.$emit("tIDENTIFIER"),j(e.static_env['$nil?']())&&d(e.static_env['$declared?'](e.$tok()))){e.cs=247,g=b(g,1),i=o;continue}else if(d(h(e.version,32))&&d(e.$tok()['$=~'](/^_[1-9]$/))){e.cs=247,g=b(g,1),i=o;continue}else{e.cs=e.$arg_or_cmdarg(y),g=b(g,1),i=o;continue}break;case 91:g=a(e.te,1),g=a(e.ts,1),e.cs=516,i=t;continue;break;default:c}break;case 222:p=a(g,3),e.te=g,g=a(g,1),e.$emit("tSYMBOL",e.$tok(b(e.ts,1),p),e.ts,p),g=a(p,1),e.cs=516,g=b(g,1),i=o;continue;break;case 194:p=a(g,3),e.te=g,g=a(g,1),g=a(e.ts,1),e.cs=516,i=t;continue;break;case 223:p=a(g,2),e.te=g,g=a(g,1),e.$emit("tSYMBOL",e.$tok(b(e.ts,1),p),e.ts,p),g=a(p,1),e.cs=516,g=b(g,1),i=o;continue;break;case 342:p=a(g,2),e.te=g,g=a(g,1),e.$emit("tCONSTANT",e.$tok(e.ts,p),e.ts,p),g=a(p,1),g=b(g,1),i=o;continue;break;case 146:e.cond.$push(!1),e.cmdarg.$push(!1),e.paren_nest=b(e.paren_nest,1),e.te=g,g=a(g,1),e.$emit("tLBRACK","[".$freeze(),a(e.te,1),e.te),e.cs=345,g=b(g,1),i=o;continue;break;case 238:e.cond.$push(!1),e.cmdarg.$push(!1),e.paren_nest=b(e.paren_nest,1),e.te=g,g=a(g,1),e.$emit("tLBRACK","[".$freeze()),g=b(g,1),i=o;continue;break;case 345:e.cond.$push(!1),e.cmdarg.$push(!1),e.paren_nest=b(e.paren_nest,1),e.te=g,g=a(g,1),e.$emit("tLBRACK2","[".$freeze()),e.cs=345,g=b(g,1),i=o;continue;break;case 348:e.paren_nest=a(e.paren_nest,1),e.te=g,g=a(g,1),e.$emit_rbrace_rparen_rbrack(),(f(e.$tok(),"}".$freeze())||f(e.$tok(),"]".$freeze()))&&(d(h(e.version,25))?e.cs=516:e.cs=313),g=b(g,1),i=o;continue;break;case 138:if(e.cond.$push(!1),e.cmdarg.$push(!1),e.paren_nest=b(e.paren_nest,1),d(e['$version?'](18))&&(e.command_start=!0),e.te=g,g=a(g,1),d(e['$version?'](18))){e.$emit("tLPAREN2","(".$freeze(),a(e.te,1),e.te),e.cs=508,g=b(g,1),i=o;continue}else{e.$emit("tLPAREN_ARG","(".$freeze(),a(e.te,1),e.te),e.cs=345,g=b(g,1),i=o;continue}break;case 151:e.cond.$push(!1),e.cmdarg.$push(!1),e.paren_nest=b(e.paren_nest,1),d(e['$version?'](18))&&(e.command_start=!0),e.te=g,g=a(g,1),e.$emit("tLPAREN2","(".$freeze()),e.cs=345,g=b(g,1),i=o;continue;break;case 159:if(e.cond.$push(!1),e.cmdarg.$push(!1),e.paren_nest=b(e.paren_nest,1),d(e['$version?'](18))&&(e.command_start=!0),e.te=g,g=a(g,1),e.$emit("tLPAREN_ARG","(".$freeze(),a(e.te,1),e.te),d(e['$version?'](18))){e.cs=508,g=b(g,1),i=o;continue}else{e.cs=345,g=b(g,1),i=o;continue}break;case 208:e.cond.$push(!1),e.cmdarg.$push(!1),e.paren_nest=b(e.paren_nest,1),d(e['$version?'](18))&&(e.command_start=!0),e.te=g,g=a(g,1),e.$emit("tLPAREN","(".$freeze()),g=b(g,1),i=o;continue;break;case 289:e.cond.$push(!1),e.cmdarg.$push(!1),e.paren_nest=b(e.paren_nest,1),d(e['$version?'](18))&&(e.command_start=!0),e.te=g,g=a(g,1),e.$emit_table(v('PUNCTUATION')),e.cs=345,g=b(g,1),i=o;continue;break;case 290:e.paren_nest=a(e.paren_nest,1),e.te=g,g=a(g,1),e.$emit_rbrace_rparen_rbrack(),(f(e.$tok(),"}".$freeze())||f(e.$tok(),"]".$freeze()))&&(d(h(e.version,25))?e.cs=516:e.cs=313),g=b(g,1),i=o;continue;break;case 57:P=g,e.newline_s=g;break;case 233:if(ac=g,e.te=g,g=a(g,1),e.$tok(e.ts,P)['$=~'](/^<<(-?)(~?)(["'`]?)(.*)\3$/m),af=d(S=((w=k['~'])===c?c:w['$[]'](1))['$empty?']()['$!']())?S:((w=k['~'])===c?c:w['$[]'](2))['$empty?']()['$!'](),U=((w=k['~'])===c?c:w['$[]'](2))['$empty?']()['$!'](),A=d(((w=k['~'])===c?c:w['$[]'](3))['$empty?']())?'<<"'.$freeze():b("<<".$freeze(),(w=k['~'])===c?c:w['$[]'](3)),z=(w=k['~'])===c?c:w['$[]'](4),d(h(e.version,27))?(d(n(z.$count("\n"),0))||d(n(z.$count("\r"),0)))&&e.$diagnostic("error","unterminated_heredoc_id",c,e.$range(e.ts,b(e.ts,1))):d(h(e.version,24))&&d(n(z.$count("\n"),0))&&(d(z['$end_with?']("\n"))?(e.$diagnostic("warning","heredoc_id_ends_with_nl",c,e.$range(e.ts,b(e.ts,1))),z=z.$rstrip()):e.$diagnostic("fatal","heredoc_id_has_newline",c,e.$range(e.ts,b(e.ts,1)))),d(U)&&d(e['$version?'](18,19,20,21,22))){e.$emit("tLSHFT","<<".$freeze(),e.ts,b(e.ts,2)),g=b(e.ts,1),e.cs=345,g=b(g,1),i=o;continue}else e.strings.$push_literal(A,z,e.ts,P,af,U),d(S=e.strings.$herebody_s())?S:e.strings['$herebody_s='](ac),g=a(e.strings.$herebody_s(),1),e.cs=128;break;case 228:p=a(g,1),G="ivar_name",e.te=g,g=a(g,1),e.$emit_colon_with_digits(g,p,G),e.cs=516,g=b(g,1),i=o;continue;break;case 231:p=a(g,2),G="cvar_name",e.te=g,g=a(g,1),e.$emit_colon_with_digits(g,p,G),e.cs=516,g=b(g,1),i=o;continue;break;case 241:p=g,e.te=g,g=a(g,1),e.$emit("kRESCUE","rescue".$freeze(),e.ts,p),g=a(p,1),e.cs=321,g=b(g,1),i=o;continue;break;case 332:e.num_base=16,e.num_digits_s=g,e.num_suffix_s=g;break;case 326:e.num_base=10,e.num_digits_s=g,e.num_suffix_s=g;break;case 329:e.num_base=8,e.num_digits_s=g,e.num_suffix_s=g;break;case 323:e.num_base=2,e.num_digits_s=g,e.num_suffix_s=g;break;case 338:e.num_base=10,e.num_digits_s=e.ts,e.num_suffix_s=g;break;case 301:e.num_base=8,e.num_digits_s=e.ts,e.num_suffix_s=g;break;case 339:e.num_suffix_s=g,e.num_xfrm=e.emit_integer;break;case 184:e.te=b(g,1),e.newline_s=g;break;case 305:e.te=b(g,1),e.num_suffix_s=g;break;case 107:e.te=b(g,1),e.act=4;break;case 94:e.te=b(g,1),e.act=5;break;case 90:e.te=b(g,1),e.act=6;break;case 12:e.te=b(g,1),e.act=33;break;case 140:e.te=b(g,1),e.act=34;break;case 13:e.te=b(g,1),e.act=39;break;case 133:e.te=b(g,1),e.act=40;break;case 160:e.te=b(g,1),e.act=46;break;case 31:e.te=b(g,1),e.act=47;break;case 181:e.te=b(g,1),e.act=54;break;case 170:e.te=b(g,1),e.act=55;break;case 55:e.te=b(g,1),e.act=67;break;case 246:e.te=b(g,1),e.act=76;break;case 185:e.te=b(g,1),e.act=80;break;case 240:e.te=b(g,1),e.act=81;break;case 239:e.te=b(g,1),e.act=82;break;case 59:e.te=b(g,1),e.act=86;break;case 182:e.te=b(g,1),e.act=87;break;case 186:e.te=b(g,1),e.act=91;break;case 356:e.te=b(g,1),e.act=104;break;case 351:e.te=b(g,1),e.act=105;break;case 359:e.te=b(g,1),e.act=107;break;case 352:e.te=b(g,1),e.act=108;break;case 353:e.te=b(g,1),e.act=109;break;case 358:e.te=b(g,1),e.act=110;break;case 350:e.te=b(g,1),e.act=111;break;case 344:e.te=b(g,1),e.act=112;break;case 270:e.te=b(g,1),e.act=113;break;case 303:e.te=b(g,1),e.act=116;break;case 67:e.te=b(g,1),e.act=117;break;case 273:e.te=b(g,1),e.act=119;break;case 264:e.te=b(g,1),e.act=123;break;case 275:e.te=b(g,1),e.act=124;break;case 268:e.te=b(g,1),e.act=126;break;case 274:e.te=b(g,1),e.act=127;break;case 73:e.te=b(g,1),e.act=140;break;case 363:e.te=b(g,1),e.act=144;break;case 47:e.sharp_s=a(g,1),e.$emit_comment_from_range(g,x),e.newline_s=g;break;case 100:e.sharp_s=a(g,1),e.$emit_comment_from_range(g,x),e.te=g,g=a(g,1);break;case 115:e.sharp_s=a(g,1),e.$emit_comment_from_range(g,x),e.te=g,g=a(g,1);break;case 127:e.sharp_s=a(g,1),e.$emit_comment_from_range(g,x),e.te=g,g=a(g,1);break;case 149:e.sharp_s=a(g,1),e.$emit_comment_from_range(g,x),e.te=g,g=a(g,1),e.cs=516,i=t;continue;break;case 164:e.sharp_s=a(g,1),e.$emit_comment_from_range(g,x),e.te=g,g=a(g,1);break;case 176:e.sharp_s=a(g,1),e.$emit_comment_from_range(g,x),e.te=g,g=a(g,1);break;case 203:e.sharp_s=a(g,1),e.$emit_comment_from_range(g,x),e.te=g,g=a(g,1);break;case 251:e.sharp_s=a(g,1),e.$emit_comment_from_range(g,x),e.te=g,g=a(g,1);break;case 261:e.sharp_s=a(g,1),e.$emit_comment_from_range(g,x),e.te=g,g=a(g,1);break;case 282:e.sharp_s=a(g,1),e.$emit_comment_from_range(g,x),e.te=g,g=a(g,1);break;case 377:e.sharp_s=a(g,1),e.$emit_comment_from_range(g,x),e.te=g,g=a(g,1);break;case 334:e.num_base=10,e.num_digits_s=e.ts,e.num_suffix_s=g,e.num_xfrm=e.emit_integer;break;case 298:e.num_base=8,e.num_digits_s=e.ts,e.num_suffix_s=g,e.num_xfrm=e.emit_integer;break;case 313:e.num_suffix_s=g,e.num_xfrm=e.emit_integer,e.te=g,g=a(g,1),u=e.$numeric_literal_int(),d(e['$version?'](18,19,20))?(e.$emit("tINTEGER",u.$to_i(e.num_base),e.ts,e.num_suffix_s),g=a(e.num_suffix_s,1)):g=e.num_xfrm.$call(u.$to_i(e.num_base),g),g=b(g,1),i=o;continue;break;case 306:e.num_suffix_s=g,e.num_xfrm=e.emit_float,e.te=g,g=a(g,1),u=e.$tok(e.ts,e.num_suffix_s),d(e['$version?'](18,19,20))?(e.$emit("tFLOAT",e.$Float(u),e.ts,e.num_suffix_s),g=a(e.num_suffix_s,1)):g=e.num_xfrm.$call(u,g),g=b(g,1),i=o;continue;break;case 302:e.num_suffix_s=g,e.num_xfrm=e.emit_float,e.te=g,g=a(g,1),u=e.$tok(e.ts,e.num_suffix_s),d(e['$version?'](18,19,20))?(e.$emit("tFLOAT",e.$Float(u),e.ts,e.num_suffix_s),g=a(e.num_suffix_s,1)):g=e.num_xfrm.$call(u,g),g=b(g,1),i=o;continue;break;case 155:e.te=b(g,1),e.newline_s=g,e.act=40;break;case 21:e.te=b(g,1),g=e.$on_newline(g),e.act=39;break;case 32:e.te=b(g,1),g=e.$on_newline(g),e.act=47;break;case 79:e.te=b(g,1),g=e.$on_newline(g),e.act=140;break;case 51:e.te=b(g,1),e.$emit_comment_from_range(g,x),e.act=60;break;case 70:e.te=b(g,1),e.$emit_comment_from_range(g,x),e.act=106;break;case 78:e.te=b(g,1),e.$emit_comment_from_range(g,x),e.act=140;break;case 23:e.te=b(g,1),p=g,e.act=34;break;case 243:e.te=b(g,1),p=g,e.act=86;break;case 242:e.te=b(g,1),p=g,e.act=87;break;case 335:e.te=b(g,1),e.num_base=10,e.num_digits_s=e.ts,e.act=113;break;case 330:e.num_base=16,e.num_digits_s=g,e.num_suffix_s=g,e.num_xfrm=e.emit_integer,e.te=g,g=a(g,1),u=e.$numeric_literal_int(),d(e['$version?'](18,19,20))?(e.$emit("tINTEGER",u.$to_i(e.num_base),e.ts,e.num_suffix_s),g=a(e.num_suffix_s,1)):g=e.num_xfrm.$call(u.$to_i(e.num_base),g),g=b(g,1),i=o;continue;break;case 324:e.num_base=10,e.num_digits_s=g,e.num_suffix_s=g,e.num_xfrm=e.emit_integer,e.te=g,g=a(g,1),u=e.$numeric_literal_int(),d(e['$version?'](18,19,20))?(e.$emit("tINTEGER",u.$to_i(e.num_base),e.ts,e.num_suffix_s),g=a(e.num_suffix_s,1)):g=e.num_xfrm.$call(u.$to_i(e.num_base),g),g=b(g,1),i=o;continue;break;case 327:e.num_base=8,e.num_digits_s=g,e.num_suffix_s=g,e.num_xfrm=e.emit_integer,e.te=g,g=a(g,1),u=e.$numeric_literal_int(),d(e['$version?'](18,19,20))?(e.$emit("tINTEGER",u.$to_i(e.num_base),e.ts,e.num_suffix_s),g=a(e.num_suffix_s,1)):g=e.num_xfrm.$call(u.$to_i(e.num_base),g),g=b(g,1),i=o;continue;break;case 321:e.num_base=2,e.num_digits_s=g,e.num_suffix_s=g,e.num_xfrm=e.emit_integer,e.te=g,g=a(g,1),u=e.$numeric_literal_int(),d(e['$version?'](18,19,20))?(e.$emit("tINTEGER",u.$to_i(e.num_base),e.ts,e.num_suffix_s),g=a(e.num_suffix_s,1)):g=e.num_xfrm.$call(u.$to_i(e.num_base),g),g=b(g,1),i=o;continue;break;case 333:e.num_base=10,e.num_digits_s=e.ts,e.num_suffix_s=g,e.num_xfrm=e.emit_integer,e.te=g,g=a(g,1),u=e.$numeric_literal_int(),d(e['$version?'](18,19,20))?(e.$emit("tINTEGER",u.$to_i(e.num_base),e.ts,e.num_suffix_s),g=a(e.num_suffix_s,1)):g=e.num_xfrm.$call(u.$to_i(e.num_base),g),g=b(g,1),i=o;continue;break;case 297:e.num_base=8,e.num_digits_s=e.ts,e.num_suffix_s=g,e.num_xfrm=e.emit_integer,e.te=g,g=a(g,1),u=e.$numeric_literal_int(),d(e['$version?'](18,19,20))?(e.$emit("tINTEGER",u.$to_i(e.num_base),e.ts,e.num_suffix_s),g=a(e.num_suffix_s,1)):g=e.num_xfrm.$call(u.$to_i(e.num_base),g),g=b(g,1),i=o;continue;break;case 17:e.te=b(g,1),g=e.$on_newline(g),p=g,e.act=34;break;case 48:e.te=b(g,1),e.sharp_s=a(g,1),e.$emit_comment_from_range(g,x),e.act=60;break;case 77:e.te=b(g,1),e.sharp_s=a(g,1),e.$emit_comment_from_range(g,x),e.act=140;break;case 340:e.te=b(g,1),e.num_suffix_s=g,e.num_xfrm=e.emit_integer,e.act=115;break;case 336:e.te=b(g,1),e.num_base=10,e.num_digits_s=e.ts,e.num_suffix_s=g,e.num_xfrm=e.emit_integer,e.act=115;break;case 300:e.te=b(g,1),e.num_base=8,e.num_digits_s=e.ts,e.num_suffix_s=g,e.num_xfrm=e.emit_integer,e.act=115;break;default:c}if(d(m(i,t))){switch(ae['$[]'](e.cs).valueOf()){case 84:e.ts=c;break;default:c}if(f(e.cs,0)){i=o;continue}if(g=b(g,1),s(g,x)){i=X;continue}}if(d(m(i,_)))if(f(g,M))if(d(n(aa['$[]'](e.cs),0))){I=a(aa['$[]'](e.cs),1),i=V;continue}if(d(m(i,o)))break}return d(!1)&&ad,e.p=g,d(e.token_queue['$any?']())?e.token_queue.$shift():f(e.cs,B.$lex_error())?[!1,["$error".$freeze(),e.$range(a(g,1),g)]]:(M=e.source_pts.$size(),[!1,["$eof".$freeze(),e.$range(M,M)]])}),t.$protected(),g(t,'$version?',function(e){var a,b,c=this;return a=u(arguments),b=a,b['$include?'](c.version)},-1),g(t,'$stack_pop',function(){var b=this;return b.top=a(b.top,1),b.stack['$[]'](b.top)}),g(t,'$tok',function(b,c){var d=this;return b==null&&(b=d.ts),c==null&&(c=d.te),d.source_buffer.$slice(b,a(c,b))},-1),g(t,'$range',function(a,b){var c=this;return a==null&&(a=c.ts),b==null&&(b=c.te),o(o(v('Parser'),'Source'),'Range').$new(c.source_buffer,a,b)},-1),g(t,'$emit',function(h,e,f,g){var a=this,b=c;return e==null&&(e=a.$tok()),f==null&&(f=a.ts),g==null&&(g=a.te),b=[h,[e,a.$range(f,g)]],a.token_queue.$push(b),d(a.tokens)&&a.tokens.$push(b),b},-2),g(t,'$emit_table',function(f,a,b){var d=this,e=c;return a==null&&(a=d.ts),b==null&&(b=d.te),e=d.$tok(a,b),d.$emit(f['$[]'](e),e,a,b)},-2),g(t,'$emit_do',function(b){var a=this;return b==null&&(b=!1),d(a.cond['$active?']())?a.$emit("kDO_COND","do".$freeze()):d(a.cmdarg['$active?']())||d(b)?a.$emit("kDO_BLOCK","do".$freeze()):a.$emit("kDO","do".$freeze())},-1),g(t,'$arg_or_cmdarg',function(b){var a=this;return d(b)?a.$class().$lex_en_expr_cmdarg():a.$class().$lex_en_expr_arg()}),g(t,'$emit_comment',function(b,e){var a=this;return b==null&&(b=a.ts),e==null&&(e=a.te),d(a.comments)&&a.comments.$push(o(o(v('Parser'),'Source'),'Comment').$new(a.$range(b,e))),d(a.tokens)&&a.tokens.$push(["tCOMMENT",[a.$tok(b,e),a.$range(b,e)]]),c},-1),g(t,'$emit_comment_from_range',function(b,d){var c=this;return c.$emit_comment(c.sharp_s,f(b,d)?a(b,2):b)}),g(t,'$diagnostic',function(f,g,a,b,d){var e=this;return a==null&&(a=c),b==null&&(b=e.$range()),d==null&&(d=[]),e.diagnostics.$process(o(v('Parser'),'Diagnostic').$new(f,g,a,b,d))},-3),g(t,'$e_lbrace',function(){var a=this,b=c;return a.cond.$push(!1),a.cmdarg.$push(!1),b=a.strings.$literal(),d(b)?b.$start_interp_brace():c}),g(t,'$numeric_literal_int',function(){var e=this,g=c,i=c,h=c;return g=e.$tok(e.num_digits_s,e.num_suffix_s),d(g['$end_with?']("_".$freeze()))?e.$diagnostic("error","trailing_in_number",new Map([["character","_".$freeze()]]),e.$range(a(e.te,1),e.te)):d(g['$empty?']())&&f(e.num_base,8)&&d(e['$version?'](18))?g="0".$freeze():d(g['$empty?']())?e.$diagnostic("error","empty_numeric"):f(e.num_base,8)&&d(i=g.$index(/[89]/))&&(h=b(e.num_digits_s,i),e.$diagnostic("error","invalid_octal",c,e.$range(h,b(h,1)))),g}),g(t,'$on_newline',function(a){var b=this;return b.strings.$on_newline(a)}),g(t,'$check_ambiguous_slash',function(a){var e=this;return f(e.$tok(a,b(a,1)),"/".$freeze())?d(l(e.version,30))?e.$diagnostic("warning","ambiguous_literal",c,e.$range(a,b(a,1))):e.$diagnostic("warning","ambiguous_regexp",c,e.$range(a,b(a,1))):c}),g(t,'$emit_global_var',function(c,e){var a=this;return c==null&&(c=a.ts),e==null&&(e=a.te),d(a.$tok(c,e)['$=~'](/^\$([1-9][0-9]*)$/))?a.$emit("tNTH_REF",a.$tok(b(c,1),e).$to_i(),c,e):d(a.$tok()['$=~'](/^\$([&`'+])$/))?a.$emit("tBACK_REF",a.$tok(c,e),c,e):a.$emit("tGVAR",a.$tok(c,e),c,e)},-1),g(t,'$emit_class_var',function(b,c){var a=this;return b==null&&(b=a.ts),c==null&&(c=a.te),d(a.$tok(b,c)['$=~'](/^@@[0-9]/))&&a.$diagnostic("error","cvar_name",new Map([["name",a.$tok(b,c)]])),a.$emit("tCVAR",a.$tok(b,c),b,c)},-1),g(t,'$emit_instance_var',function(b,c){var a=this;return b==null&&(b=a.ts),c==null&&(c=a.te),d(a.$tok(b,c)['$=~'](/^@[0-9]/))&&a.$diagnostic("error","ivar_name",new Map([["name",a.$tok(b,c)]])),a.$emit("tIVAR",a.$tok(b,c),b,c)},-1),g(t,'$emit_rbrace_rparen_rbrack',function(){var a=this;return a.$emit_table(v('PUNCTUATION')),d(l(a.version,24))?(a.cond.$lexpop(),a.cmdarg.$lexpop()):(a.cond.$pop(),a.cmdarg.$pop())}),g(t,'$emit_colon_with_digits',function(c,e,f){var a=this;return d(h(a.version,27))?a.$diagnostic("error",f,new Map([["name",a.$tok(e,a.te)]]),a.$range(e,a.te)):(a.$emit("tCOLON",a.$tok(a.ts,b(a.ts,1)),a.ts,b(a.ts,1)),c=a.ts),c}),g(t,'$emit_singleton_class',function(){var c=this;return c.$emit("kCLASS","class".$freeze(),c.ts,b(c.ts,5)),c.$emit("tLSHFT","<<".$freeze(),a(c.te,2),c.te)}),p(y[0],'PUNCTUATION',new Map([["=","tEQL"],["&","tAMPER2"],["|","tPIPE"],["!","tBANG"],["^","tCARET"],["+","tPLUS"],["-","tMINUS"],["*","tSTAR2"],["/","tDIVIDE"],["%","tPERCENT"],["~","tTILDE"],[",","tCOMMA"],[";","tSEMI"],[".","tDOT"],["..","tDOT2"],["...","tDOT3"],["[","tLBRACK2"],["]","tRBRACK"],["(","tLPAREN2"],[")","tRPAREN"],["?","tEH"],[":","tCOLON"],["&&","tANDOP"],["||","tOROP"],["-@","tUMINUS"],["+@","tUPLUS"],["~@","tTILDE"],["**","tPOW"],["->","tLAMBDA"],["=~","tMATCH"],["!~","tNMATCH"],["==","tEQ"],["!=","tNEQ"],[">","tGT"],[">>","tRSHFT"],[">=","tGEQ"],["<","tLT"],["<<","tLSHFT"],["<=","tLEQ"],["=>","tASSOC"],["::","tCOLON2"],["===","tEQQ"],["<=>","tCMP"],["[]","tAREF"],["[]=","tASET"],["{","tLCURLY"],["}","tRCURLY"],["`","tBACK_REF2"],["!@","tBANG"],["&.","tANDDOT"]])),p(y[0],'PUNCTUATION_BEGIN',new Map([["&","tAMPER"],["*","tSTAR"],["**","tDSTAR"],["+","tUPLUS"],["-","tUMINUS"],["::","tCOLON3"],["(","tLPAREN"],["{","tLBRACE"],["[","tLBRACK"]])),p(y[0],'KEYWORDS',new Map([["if","kIF_MOD"],["unless","kUNLESS_MOD"],["while","kWHILE_MOD"],["until","kUNTIL_MOD"],["rescue","kRESCUE_MOD"],["defined?","kDEFINED"],["BEGIN","klBEGIN"],["END","klEND"]])),p(y[0],'KEYWORDS_BEGIN',new Map([["if","kIF"],["unless","kUNLESS"],["while","kWHILE"],["until","kUNTIL"],["rescue","kRESCUE"],["defined?","kDEFINED"],["BEGIN","klBEGIN"],["END","klEND"]])),p(y[0],'ESCAPE_WHITESPACE',new Map([[" ","\\s"],["\r","\\r"],["\n","\\n"],[" ","\\t"],[" ","\\v"],[" ","\\f"]])),i(e.large_array_unpack("class,module,def,undef,begin,end,then,elsif,else,ensure,case,when,for,break,next,redo,retry,in,do,return,yield,super,self,nil,true,false,and,or,not,alias,__FILE__,__LINE__,__ENCODING__"),'each',[],function(a){var b,d;return a==null&&(a=c),(b=[a,(d=[a,"k"+a.$upcase()],i(v('KEYWORDS'),'[]=',d),d[d.length-1])],i(v('KEYWORDS_BEGIN'),'[]=',b),b[b.length-1])})}(v('Parser'),null,t)},Opal.modules["parser/lexer-strings"]=function(f){var y=f.klass,n=f.const_set,z=f.hash_rehash,o=f.send,t=f.to_a,a=f.truthy,g=f.def,b=f.rb_plus,r=f.to_ary,j=f.rb_le,h=f.eqeq,m=f.rb_gt,e=f.rb_minus,q=f.neqeq,d=f.eqeqeq,i=f.not,s=f.slice,p=f.rb_lt,k=f.rb_ge,w=f.thrower,u=f.range,v=[],x=f.$r(v),c=f.nil,l=f.$$$;return f.add_stubs('attr_accessor,private,_lex_actions=,_lex_trans_keys=,_lex_key_spans=,_lex_index_offsets=,_lex_indicies=,_lex_trans_targs=,_lex_trans_actions=,_lex_to_state_actions=,_lex_from_state_actions=,_lex_eof_trans=,lex_start=,lex_error=,lex_en_interp_words=,lex_en_interp_string=,lex_en_plain_words=,lex_en_plain_string=,lex_en_interp_backslash_delimited=,lex_en_plain_backslash_delimited=,lex_en_interp_backslash_delimited_words=,lex_en_plain_backslash_delimited_words=,lex_en_regexp_modifiers=,lex_en_character=,lex_en_unknown=,freeze,ord,union,chars,respond_to?,class,send,reset,lex_en_unknown,lex_en_interp_string,lex_en_interp_words,lex_en_plain_string,+,size,source_pts,<=,==,[],>,-,<<,!=,===,unicode_points,unescape_char,diagnostic,read_post_meta_or_ctrl_char,slash_c_char,slash_m_char,encode_escaped_char,encode_escape,%,to_i,tok,range,chr,check_invalid_escapes,literal,extend_interp_code,lex_en_expr_value,extend_string_eol_check_eof,heredoc?,extend_string_eol_heredoc_line,nest_and_try_closing,heredoc_e,pop_literal,infer_indent_level,extend_string_eol_heredoc_intertwined,extend_string_eol_words,extend_string_slice_end,!,lex_en_expr_labelarg,extend_string_for_token_range,extend_interp_digit_var,extend_interp_var,emit_interp_var,extend_string_escaped,extend_space,emit,lex_en_expr_end,scan,any?,join,slice,source_buffer,emit_character_constant,raise,lex_en_character,advance,new,push,next_state_for_literal,backslash_delimited?,words?,interpolate?,lex_en_interp_backslash_delimited_words,lex_en_plain_backslash_delimited_words,lex_en_plain_words,lex_en_interp_backslash_delimited,lex_en_plain_backslash_delimited,last,pop,dedent_level,type,lex_en_inside_string,lex_en_regexp_modifiers,end_interp_brace_and_try_closing,version?,lexpop,cond,cmdarg,saved_herebody_s,continue_lexing,protected,include?,<,nil?,regexp?,munge_escape?,match,extend_string,squiggly_heredoc?,supports_line_continuation_via_slash?,gsub,>=,flush_string,extend_content,saved_herebody_s=,start_interp_brace,command_start=,start_with?,str_s,eof_codepoint?,active?,force_encoding,encoding,source,index,end_with?,each,length,&,|,getbyte,emit_invalid_escapes?'),function(E,C,D){var v=y(E,C,'LexerStrings'),x=[v].concat(D),B=f.$r(x),A=v.$$prototype;return A._lex_actions=A.cs=A.escape_s=A.lexer=A.herebody_s=A.ts=A.te=A.root_lexer_state=A.literal_stack=A.dedent_level=A.version=A.source_buffer=A.escape=c,function(a,b){return a.$attr_accessor("_lex_actions"),a.$private("_lex_actions","_lex_actions=")}(f.get_singleton_class(v),x),v['$_lex_actions='](f.large_array_unpack("0,1,0,1,18,1,22,1,23,1,24,1,25,1,26,1,27,1,28,1,32,1,33,1,34,1,35,1,36,1,37,1,38,1,42,1,43,1,44,1,46,1,47,1,48,1,49,1,52,1,53,1,54,1,55,1,56,1,57,1,60,1,61,1,62,1,63,1,64,1,65,1,66,1,69,1,70,1,71,1,72,1,73,1,74,1,75,1,76,1,77,1,79,1,80,1,81,2,0,27,2,0,37,2,0,46,2,0,52,2,0,56,2,0,62,2,0,65,2,0,72,2,0,77,2,1,31,2,1,41,2,1,78,2,2,31,2,2,41,2,2,78,2,3,31,2,3,41,2,3,78,2,8,31,2,8,41,2,8,78,2,10,31,2,10,41,2,10,78,2,11,31,2,11,41,2,11,78,2,12,31,2,12,41,2,12,78,2,13,31,2,13,41,2,13,78,2,14,31,2,14,41,2,14,78,2,15,31,2,15,41,2,15,78,2,16,31,2,16,41,2,16,78,2,17,31,2,17,41,2,17,78,2,18,45,2,18,51,2,19,30,2,19,40,2,19,59,2,19,68,2,20,29,2,20,30,2,20,39,2,20,40,2,20,58,2,20,59,2,20,67,2,20,68,2,21,29,2,21,30,2,21,39,2,21,40,2,21,58,2,21,59,2,21,67,2,21,68,2,22,78,2,25,0,3,0,50,18,3,2,5,31,3,2,5,41,3,2,5,78,3,2,6,31,3,2,6,41,3,2,6,78,3,4,5,31,3,4,5,41,3,4,5,78,3,4,6,31,3,4,6,41,3,4,6,78,3,8,6,31,3,8,6,41,3,8,6,78,3,9,5,31,3,9,5,41,3,9,5,78,3,15,16,31,3,15,16,41,3,15,16,78,3,18,17,31,3,18,17,41,3,18,17,78,4,2,5,6,31,4,2,5,6,41,4,2,5,6,78,4,4,5,6,31,4,4,5,6,41,4,4,5,6,78,4,7,5,6,31,4,7,5,6,41,4,7,5,6,78,4,9,5,6,31,4,9,5,6,41,4,9,5,6,78")),function(a,b){return a.$attr_accessor("_lex_trans_keys"),a.$private("_lex_trans_keys","_lex_trans_keys=")}(f.get_singleton_class(v),x),v['$_lex_trans_keys='](f.large_array_unpack("0,0,0,127,0,127,0,127,0,127,0,45,0,120,0,120,0,92,0,120,0,120,0,45,0,120,0,120,67,99,45,45,0,92,0,120,0,102,0,127,0,127,0,127,0,127,0,45,0,120,0,120,0,92,0,120,0,120,0,45,0,120,0,120,67,99,45,45,0,92,0,120,0,102,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,122,0,45,0,120,0,120,0,92,0,120,0,120,0,45,0,120,0,120,67,99,45,45,0,92,0,120,0,102,0,26,0,92,9,32,36,123,0,127,0,0,48,57,0,127,0,127,0,127,0,127,0,120,0,0,0,0,48,55,48,55,0,0,0,0,0,92,0,0,0,0,0,0,0,92,45,45,0,0,0,0,0,0,0,92,48,102,48,102,0,0,48,102,48,102,0,0,0,45,0,92,0,92,0,0,0,0,0,92,48,102,48,102,0,0,0,45,10,10,0,92,48,123,48,102,48,102,48,102,0,0,0,125,0,125,0,0,0,125,0,0,0,125,0,125,0,125,0,125,0,0,0,125,0,125,0,125,0,125,0,125,0,125,0,0,0,0,48,102,0,0,0,92,36,123,0,127,0,0,48,57,0,127,0,127,0,127,0,127,0,120,0,0,0,0,48,55,48,55,0,0,0,0,0,92,0,0,0,0,0,0,0,92,45,45,0,0,0,0,0,0,0,92,48,102,48,102,0,0,48,102,48,102,0,0,0,45,0,92,0,92,0,0,0,0,0,92,48,102,48,102,0,0,0,45,10,10,0,92,48,123,48,102,48,102,48,102,0,0,0,125,0,125,0,0,0,125,0,0,0,125,0,125,0,125,0,125,0,0,0,125,0,125,0,125,0,125,0,125,0,125,0,0,0,0,48,102,0,0,0,92,9,32,0,26,0,92,0,26,0,35,36,123,0,127,0,0,48,57,0,127,0,127,0,127,0,127,0,26,0,35,9,32,36,123,0,127,0,0,48,57,0,127,0,127,0,127,0,127,0,32,9,32,65,122,65,122,63,63,0,0,0,127,0,127,0,120,0,0,0,0,48,55,48,55,0,0,0,0,0,92,0,0,0,0,0,0,0,92,45,45,0,0,0,0,0,0,0,92,48,102,48,102,0,0,48,102,48,102,0,0,0,45,0,92,0,92,0,0,0,0,0,92,48,102,48,102,0,0,0,45,10,10,0,92,48,123,48,102,48,102,48,102,0,0,0,125,0,125,0,0,0,125,0,0,0,125,0,125,0,125,0,125,0,0,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,0,0,0,48,102,0,0,0")),function(a,b){return a.$attr_accessor("_lex_key_spans"),a.$private("_lex_key_spans","_lex_key_spans=")}(f.get_singleton_class(v),x),v['$_lex_key_spans='](f.large_array_unpack("0,128,128,128,128,46,121,121,93,121,121,46,121,121,33,1,93,121,103,128,128,128,128,46,121,121,93,121,121,46,121,121,33,1,93,121,103,128,128,128,128,128,128,128,128,123,46,121,121,93,121,121,46,121,121,33,1,93,121,103,27,93,24,88,128,0,10,128,128,128,128,121,0,0,8,8,0,0,93,0,0,0,93,1,0,0,0,93,55,55,0,55,55,0,46,93,93,0,0,93,55,55,0,46,1,93,76,55,55,55,0,126,126,0,126,0,126,126,126,126,0,126,126,126,126,126,126,0,0,55,0,93,88,128,0,10,128,128,128,128,121,0,0,8,8,0,0,93,0,0,0,93,1,0,0,0,93,55,55,0,55,55,0,46,93,93,0,0,93,55,55,0,46,1,93,76,55,55,55,0,126,126,0,126,0,126,126,126,126,0,126,126,126,126,126,126,0,0,55,0,93,24,27,93,27,36,88,128,0,10,128,128,128,128,27,36,24,88,128,0,10,128,128,128,128,33,24,58,58,1,0,128,128,121,0,0,8,8,0,0,93,0,0,0,93,1,0,0,0,93,55,55,0,55,55,0,46,93,93,0,0,93,55,55,0,46,1,93,76,55,55,55,0,126,126,0,126,0,126,126,126,126,0,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,0,0,55,0")),function(a,b){return a.$attr_accessor("_lex_index_offsets"),a.$private("_lex_index_offsets","_lex_index_offsets=")}(f.get_singleton_class(v),x),v['$_lex_index_offsets='](f.large_array_unpack("0,0,129,258,387,516,563,685,807,901,1023,1145,1192,1314,1436,1470,1472,1566,1688,1792,1921,2050,2179,2308,2355,2477,2599,2693,2815,2937,2984,3106,3228,3262,3264,3358,3480,3584,3713,3842,3971,4100,4229,4358,4487,4616,4740,4787,4909,5031,5125,5247,5369,5416,5538,5660,5694,5696,5790,5912,6016,6044,6138,6163,6252,6381,6382,6393,6522,6651,6780,6909,7031,7032,7033,7042,7051,7052,7053,7147,7148,7149,7150,7244,7246,7247,7248,7249,7343,7399,7455,7456,7512,7568,7569,7616,7710,7804,7805,7806,7900,7956,8012,8013,8060,8062,8156,8233,8289,8345,8401,8402,8529,8656,8657,8784,8785,8912,9039,9166,9293,9294,9421,9548,9675,9802,9929,10056,10057,10058,10114,10115,10209,10298,10427,10428,10439,10568,10697,10826,10955,11077,11078,11079,11088,11097,11098,11099,11193,11194,11195,11196,11290,11292,11293,11294,11295,11389,11445,11501,11502,11558,11614,11615,11662,11756,11850,11851,11852,11946,12002,12058,12059,12106,12108,12202,12279,12335,12391,12447,12448,12575,12702,12703,12830,12831,12958,13085,13212,13339,13340,13467,13594,13721,13848,13975,14102,14103,14104,14160,14161,14255,14280,14308,14402,14430,14467,14556,14685,14686,14697,14826,14955,15084,15213,15241,15278,15303,15392,15521,15522,15533,15662,15791,15920,16049,16083,16108,16167,16226,16228,16229,16358,16487,16609,16610,16611,16620,16629,16630,16631,16725,16726,16727,16728,16822,16824,16825,16826,16827,16921,16977,17033,17034,17090,17146,17147,17194,17288,17382,17383,17384,17478,17534,17590,17591,17638,17640,17734,17811,17867,17923,17979,17980,18107,18234,18235,18362,18363,18490,18617,18744,18871,18872,18999,19126,19253,19380,19507,19634,19761,19888,20015,20142,20269,20396,20523,20650,20777,20904,21031,21158,21285,21286,21287,21343")),function(a,b){return a.$attr_accessor("_lex_indicies"),a.$private("_lex_indicies","_lex_indicies=")}(f.get_singleton_class(v),x),v['$_lex_indicies='](f.large_array_unpack("0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,0,2,0,2,2,0,0,2,2,2,3,2,2,4,4,4,4,4,4,4,4,4,4,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,2,0,0,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,2,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,2,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,6,6,6,6,6,6,6,6,6,0,0,0,0,0,0,7,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,5,0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,9,9,9,9,9,9,9,9,9,0,0,0,0,0,0,0,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,0,0,0,0,8,0,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,0,0,0,0,0,8,10,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,10,13,13,13,10,13,13,13,13,13,14,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,10,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,15,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,16,13,10,13,13,13,10,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,10,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,17,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,16,13,10,18,18,18,10,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,10,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,19,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,20,18,10,21,21,21,10,21,21,21,21,21,22,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,10,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,23,21,10,21,21,21,10,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,10,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,23,21,10,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,24,11,10,25,25,25,10,25,25,25,25,25,26,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,10,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,27,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,28,25,25,25,25,25,25,29,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,30,25,10,25,25,25,10,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,10,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,30,25,31,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,32,10,32,10,10,33,33,33,10,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,10,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,34,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,35,33,10,13,13,13,10,13,13,13,13,13,14,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,10,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,17,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,16,13,10,36,36,36,10,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,10,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,37,37,37,37,37,37,37,37,37,37,36,36,36,36,36,36,36,37,37,37,37,37,37,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,37,37,37,37,37,37,36,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,40,40,38,40,38,40,40,38,38,40,40,40,41,40,40,42,42,42,42,42,42,42,42,42,42,40,40,40,40,40,40,40,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,38,40,38,38,39,40,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,38,38,38,40,38,39,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,40,40,40,40,40,40,40,40,40,40,38,38,38,38,38,38,38,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,38,38,38,38,40,38,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,38,38,38,38,38,40,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,44,44,44,44,44,44,44,44,44,44,38,38,38,38,38,38,45,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,38,38,38,38,43,38,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,38,38,38,38,38,43,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,47,47,47,47,47,47,47,47,47,47,38,38,38,38,38,38,38,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,38,38,38,38,46,38,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,38,38,38,38,38,46,48,49,49,49,48,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,48,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,50,49,48,51,51,51,48,51,51,51,51,51,52,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,48,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,53,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,54,51,48,51,51,51,48,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,48,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,55,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,54,51,48,56,56,56,48,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,48,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,57,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,58,56,48,59,59,59,48,59,59,59,59,59,60,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,48,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,61,59,48,59,59,59,48,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,48,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,61,59,48,49,49,49,48,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,48,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,62,49,48,63,63,63,48,63,63,63,63,63,64,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,48,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,65,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,66,63,63,63,63,63,63,67,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,68,63,48,63,63,63,48,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,48,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,68,63,69,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,70,48,70,48,48,71,71,71,48,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,48,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,72,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,73,71,48,51,51,51,48,51,51,51,51,51,52,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,48,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,55,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,54,51,48,74,74,74,48,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,48,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,75,75,75,75,75,75,75,75,75,75,74,74,74,74,74,74,74,75,75,75,75,75,75,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,75,75,75,75,75,75,74,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,78,78,76,78,76,78,78,76,76,78,78,78,79,78,78,80,80,80,80,80,80,80,80,80,80,78,78,78,78,78,78,78,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,76,78,76,76,77,78,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,76,76,76,78,76,77,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,78,78,78,78,78,78,78,78,78,78,76,76,76,76,76,76,76,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,76,76,76,76,78,76,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,76,76,76,76,76,78,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,82,82,82,82,82,82,82,82,82,82,76,76,76,76,76,76,83,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,76,76,76,76,81,76,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,76,76,76,76,76,81,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,85,85,85,85,85,85,85,85,85,85,76,76,76,76,76,76,76,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,76,76,76,76,84,76,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,76,76,76,76,76,84,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,88,88,86,88,86,88,88,86,86,88,88,88,89,88,88,90,90,90,90,90,90,90,90,90,90,88,88,88,88,88,88,88,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,86,88,86,86,87,88,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,86,86,86,88,86,87,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,88,88,88,88,88,88,88,88,88,88,86,86,86,86,86,86,86,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,86,86,86,86,88,86,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,86,86,86,86,86,88,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,92,92,92,92,92,92,92,92,92,92,86,86,86,86,86,86,93,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,86,86,86,86,91,86,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,86,86,86,86,86,91,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,95,95,95,95,95,95,95,95,95,95,86,86,86,86,86,86,86,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,86,86,86,86,94,86,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,86,86,86,86,86,94,97,96,96,96,97,96,96,96,96,98,99,98,98,98,96,96,96,96,96,96,96,96,96,96,96,96,97,96,96,96,96,96,98,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,96,101,96,96,100,96,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,96,102,103,103,103,102,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,102,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,104,103,102,105,105,105,102,105,105,105,105,105,106,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,102,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,107,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,108,105,102,105,105,105,102,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,102,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,109,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,108,105,102,110,110,110,102,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,102,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,111,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,112,110,102,113,113,113,102,113,113,113,113,113,114,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,102,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,115,113,102,113,113,113,102,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,102,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,115,113,102,103,103,103,102,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,102,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,116,103,102,117,117,117,102,117,117,117,117,117,118,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,102,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,119,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,120,117,117,117,117,117,117,121,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,122,117,102,117,117,117,102,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,102,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,122,117,123,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,124,102,124,102,102,125,125,125,102,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,102,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,126,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,127,125,102,105,105,105,102,105,105,105,105,105,106,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,102,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,109,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,108,105,102,128,128,128,102,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,102,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,129,129,129,129,129,129,129,129,129,129,128,128,128,128,128,128,128,129,129,129,129,129,129,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,129,129,129,129,129,129,128,97,130,130,130,97,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,97,130,132,131,131,131,132,131,131,131,131,133,134,133,133,133,131,131,131,131,131,131,131,131,131,131,131,131,132,131,131,131,131,131,133,131,131,135,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,136,131,133,137,133,133,133,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,133,137,139,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,140,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,141,138,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,1,1,1,1,1,1,1,1,1,1,142,142,142,142,142,142,142,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,142,142,142,142,1,142,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,142,142,142,142,142,1,142,4,4,4,4,4,4,4,4,4,4,142,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,5,5,5,5,5,5,5,5,5,5,143,143,143,143,143,143,143,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,143,143,143,143,5,143,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,143,143,143,143,143,5,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,5,5,5,5,5,5,5,5,5,5,144,144,144,144,144,144,144,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,144,144,144,144,6,144,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,144,144,144,144,144,6,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,8,8,8,8,8,8,8,8,8,8,145,145,145,145,145,145,145,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,145,145,145,145,8,145,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,145,145,145,145,145,8,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,8,8,8,8,8,8,8,8,8,8,146,146,146,146,146,146,146,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,146,146,146,146,9,146,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,146,146,146,146,146,9,149,148,148,148,149,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,149,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,150,150,150,150,150,150,150,150,148,148,148,148,148,148,148,148,148,148,148,151,148,148,148,148,148,148,148,148,148,152,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,153,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,154,148,148,155,148,156,157,159,159,159,159,159,159,159,159,158,160,160,160,160,160,160,160,160,158,158,161,161,33,33,33,161,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,161,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,34,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,162,33,163,164,165,165,33,33,33,165,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,165,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,34,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,166,33,32,165,167,168,169,169,18,18,18,169,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,169,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,19,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,170,18,171,171,171,171,171,171,171,171,171,171,169,169,169,169,169,169,169,171,171,171,171,171,171,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,171,171,171,171,171,171,169,173,173,173,173,173,173,173,173,173,173,172,172,172,172,172,172,172,173,173,173,173,173,173,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,173,173,173,173,173,173,172,172,174,174,174,174,174,174,174,174,174,174,165,165,165,165,165,165,165,174,174,174,174,174,174,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,174,174,174,174,174,174,165,176,176,176,176,176,176,176,176,176,176,175,175,175,175,175,175,175,176,176,176,176,176,176,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,176,176,176,176,176,176,175,175,165,11,11,11,165,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,165,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,177,11,161,18,18,18,161,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,161,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,19,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,20,18,161,178,178,178,161,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,161,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,179,178,180,181,181,178,178,178,181,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,181,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,182,178,183,183,183,183,183,183,183,183,183,183,181,181,181,181,181,181,181,183,183,183,183,183,183,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,183,183,183,183,183,183,181,185,185,185,185,185,185,185,185,185,185,184,184,184,184,184,184,184,185,185,185,185,185,185,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,185,185,185,185,185,185,184,184,181,11,11,11,181,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,181,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,177,11,186,181,181,18,18,18,181,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,181,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,19,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,20,18,188,188,188,188,188,188,188,188,188,188,187,187,187,187,187,187,187,188,188,188,188,188,188,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,188,188,188,188,188,188,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,189,187,190,190,190,190,190,190,190,190,190,190,187,187,187,187,187,187,187,190,190,190,190,190,190,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,190,190,190,190,190,190,187,191,191,191,191,191,191,191,191,191,191,187,187,187,187,187,187,187,191,191,191,191,191,191,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,191,191,191,191,191,191,187,192,192,192,192,192,192,192,192,192,192,187,187,187,187,187,187,187,192,192,192,192,192,192,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,192,192,192,192,192,192,187,193,196,195,195,195,196,195,195,195,195,197,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,196,195,195,195,195,195,197,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,198,198,198,198,198,198,198,198,198,198,195,195,195,195,195,195,195,198,198,198,198,198,198,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,198,198,198,198,198,198,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,199,195,196,195,195,195,196,195,195,195,195,194,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,196,195,195,195,195,195,194,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,200,200,200,200,200,200,200,200,200,200,195,195,195,195,195,195,195,200,200,200,200,200,200,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,200,200,200,200,200,200,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,201,195,194,196,200,200,200,196,200,200,200,200,194,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,196,200,200,200,200,200,194,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,194,200,202,196,203,203,203,196,203,203,203,203,197,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,196,203,203,203,203,203,197,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,198,198,198,198,198,198,198,198,198,198,203,203,203,203,203,203,203,198,198,198,198,198,198,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,198,198,198,198,198,198,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,194,203,196,203,203,203,196,203,203,203,203,194,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,196,203,203,203,203,203,194,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,200,200,200,200,200,200,200,200,200,200,203,203,203,203,203,203,203,200,200,200,200,200,200,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,200,200,200,200,200,200,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,196,203,196,203,203,203,196,203,203,203,203,204,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,196,203,203,203,203,203,204,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,205,205,205,205,205,205,205,205,205,205,203,203,203,203,203,203,203,205,205,205,205,205,205,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,205,205,205,205,205,205,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,206,203,196,203,203,203,196,203,203,203,203,204,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,196,203,203,203,203,203,204,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,198,198,198,198,198,198,198,198,198,198,203,203,203,203,203,203,203,198,198,198,198,198,198,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,198,198,198,198,198,198,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,206,203,207,196,203,203,203,196,203,203,203,203,204,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,196,203,203,203,203,203,204,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,208,208,208,208,208,208,208,208,208,208,203,203,203,203,203,203,203,208,208,208,208,208,208,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,208,208,208,208,208,208,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,206,203,196,203,203,203,196,203,203,203,203,204,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,196,203,203,203,203,203,204,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,209,209,209,209,209,209,209,209,209,209,203,203,203,203,203,203,203,209,209,209,209,209,209,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,209,209,209,209,209,209,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,206,203,196,203,203,203,196,203,203,203,203,204,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,196,203,203,203,203,203,204,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,210,210,210,210,210,210,210,210,210,210,203,203,203,203,203,203,203,210,210,210,210,210,210,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,210,210,210,210,210,210,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,206,203,196,203,203,203,196,203,203,203,203,204,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,196,203,203,203,203,203,204,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,211,211,211,211,211,211,211,211,211,211,203,203,203,203,203,203,203,211,211,211,211,211,211,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,211,211,211,211,211,211,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,206,203,196,203,203,203,196,203,203,203,203,204,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,196,203,203,203,203,203,204,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,212,212,212,212,212,212,212,212,212,212,203,203,203,203,203,203,203,212,212,212,212,212,212,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,212,212,212,212,212,212,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,206,203,196,203,203,203,196,203,203,203,203,194,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,196,203,203,203,203,203,194,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,212,212,212,212,212,212,212,212,212,212,203,203,203,203,203,203,203,212,212,212,212,212,212,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,212,212,212,212,212,212,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,194,203,213,214,216,216,216,216,216,216,216,216,216,216,215,215,215,215,215,215,215,216,216,216,216,216,216,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,216,216,216,216,216,216,215,215,218,217,217,217,218,217,217,217,217,217,219,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,218,217,217,217,217,217,217,217,217,220,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,221,217,223,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,224,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,225,222,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,39,39,39,39,39,39,39,39,39,39,226,226,226,226,226,226,226,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,226,226,226,226,39,226,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,226,226,226,226,226,39,226,42,42,42,42,42,42,42,42,42,42,226,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,43,43,43,43,43,43,43,43,43,43,227,227,227,227,227,227,227,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,227,227,227,227,43,227,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,227,227,227,227,227,43,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,43,43,43,43,43,43,43,43,43,43,228,228,228,228,228,228,228,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,228,228,228,228,44,228,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,228,228,228,228,228,44,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,46,46,46,46,46,46,46,46,46,46,229,229,229,229,229,229,229,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,229,229,229,229,46,229,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,229,229,229,229,229,46,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,46,46,46,46,46,46,46,46,46,46,230,230,230,230,230,230,230,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,230,230,230,230,47,230,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,230,230,230,230,230,47,233,232,232,232,233,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,233,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,234,234,234,234,234,234,234,234,232,232,232,232,232,232,232,232,232,232,232,235,232,232,232,232,232,232,232,232,232,236,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,237,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,238,232,232,239,232,240,241,243,243,243,243,243,243,243,243,242,244,244,244,244,244,244,244,244,242,242,245,245,71,71,71,245,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,245,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,72,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,246,71,247,248,249,249,71,71,71,249,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,249,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,72,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,250,71,70,249,251,252,253,253,56,56,56,253,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,253,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,57,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,254,56,255,255,255,255,255,255,255,255,255,255,253,253,253,253,253,253,253,255,255,255,255,255,255,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,255,255,255,255,255,255,253,257,257,257,257,257,257,257,257,257,257,256,256,256,256,256,256,256,257,257,257,257,257,257,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,257,257,257,257,257,257,256,256,258,258,258,258,258,258,258,258,258,258,249,249,249,249,249,249,249,258,258,258,258,258,258,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,258,258,258,258,258,258,249,260,260,260,260,260,260,260,260,260,260,259,259,259,259,259,259,259,260,260,260,260,260,260,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,260,260,260,260,260,260,259,259,249,49,49,49,249,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,249,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,261,49,245,56,56,56,245,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,245,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,57,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,58,56,245,262,262,262,245,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,245,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,263,262,264,265,265,262,262,262,265,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,265,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,266,262,267,267,267,267,267,267,267,267,267,267,265,265,265,265,265,265,265,267,267,267,267,267,267,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,267,267,267,267,267,267,265,269,269,269,269,269,269,269,269,269,269,268,268,268,268,268,268,268,269,269,269,269,269,269,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,269,269,269,269,269,269,268,268,265,49,49,49,265,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,265,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,261,49,270,265,265,56,56,56,265,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,265,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,57,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,58,56,272,272,272,272,272,272,272,272,272,272,271,271,271,271,271,271,271,272,272,272,272,272,272,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,272,272,272,272,272,272,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,273,271,274,274,274,274,274,274,274,274,274,274,271,271,271,271,271,271,271,274,274,274,274,274,274,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,274,274,274,274,274,274,271,275,275,275,275,275,275,275,275,275,275,271,271,271,271,271,271,271,275,275,275,275,275,275,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,275,275,275,275,275,275,271,276,276,276,276,276,276,276,276,276,276,271,271,271,271,271,271,271,276,276,276,276,276,276,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,276,276,276,276,276,276,271,277,280,279,279,279,280,279,279,279,279,281,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,280,279,279,279,279,279,281,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,282,282,282,282,282,282,282,282,282,282,279,279,279,279,279,279,279,282,282,282,282,282,282,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,282,282,282,282,282,282,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,283,279,280,279,279,279,280,279,279,279,279,278,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,280,279,279,279,279,279,278,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,284,284,284,284,284,284,284,284,284,284,279,279,279,279,279,279,279,284,284,284,284,284,284,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,284,284,284,284,284,284,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,285,279,278,280,284,284,284,280,284,284,284,284,278,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,280,284,284,284,284,284,278,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,278,284,286,280,287,287,287,280,287,287,287,287,281,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,280,287,287,287,287,287,281,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,282,282,282,282,282,282,282,282,282,282,287,287,287,287,287,287,287,282,282,282,282,282,282,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,282,282,282,282,282,282,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,278,287,280,287,287,287,280,287,287,287,287,278,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,280,287,287,287,287,287,278,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,284,284,284,284,284,284,284,284,284,284,287,287,287,287,287,287,287,284,284,284,284,284,284,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,284,284,284,284,284,284,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,280,287,280,287,287,287,280,287,287,287,287,288,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,280,287,287,287,287,287,288,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,289,289,289,289,289,289,289,289,289,289,287,287,287,287,287,287,287,289,289,289,289,289,289,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,289,289,289,289,289,289,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,290,287,280,287,287,287,280,287,287,287,287,288,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,280,287,287,287,287,287,288,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,282,282,282,282,282,282,282,282,282,282,287,287,287,287,287,287,287,282,282,282,282,282,282,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,282,282,282,282,282,282,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,290,287,291,280,287,287,287,280,287,287,287,287,288,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,280,287,287,287,287,287,288,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,292,292,292,292,292,292,292,292,292,292,287,287,287,287,287,287,287,292,292,292,292,292,292,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,292,292,292,292,292,292,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,290,287,280,287,287,287,280,287,287,287,287,288,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,280,287,287,287,287,287,288,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,293,293,293,293,293,293,293,293,293,293,287,287,287,287,287,287,287,293,293,293,293,293,293,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,293,293,293,293,293,293,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,290,287,280,287,287,287,280,287,287,287,287,288,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,280,287,287,287,287,287,288,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,294,294,294,294,294,294,294,294,294,294,287,287,287,287,287,287,287,294,294,294,294,294,294,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,294,294,294,294,294,294,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,290,287,280,287,287,287,280,287,287,287,287,288,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,280,287,287,287,287,287,288,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,295,295,295,295,295,295,295,295,295,295,287,287,287,287,287,287,287,295,295,295,295,295,295,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,295,295,295,295,295,295,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,290,287,280,287,287,287,280,287,287,287,287,288,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,280,287,287,287,287,287,288,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,296,296,296,296,296,296,296,296,296,296,287,287,287,287,287,287,287,296,296,296,296,296,296,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,296,296,296,296,296,296,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,290,287,280,287,287,287,280,287,287,287,287,278,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,280,287,287,287,287,287,278,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,296,296,296,296,296,296,296,296,296,296,287,287,287,287,287,287,287,296,296,296,296,296,296,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,296,296,296,296,296,296,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,278,287,297,298,300,300,300,300,300,300,300,300,300,300,299,299,299,299,299,299,299,300,300,300,300,300,300,299,299,299,299,299,299,299,299,299,299,299,299,299,299,299,299,299,299,299,299,299,299,299,299,299,299,300,300,300,300,300,300,299,299,302,301,301,301,302,301,301,301,301,303,304,303,303,303,301,301,301,301,301,301,301,301,301,301,301,301,302,301,301,301,301,301,303,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,305,301,303,306,303,303,303,306,306,306,306,306,306,306,306,306,306,306,306,306,306,306,306,306,306,303,306,307,308,308,308,307,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,307,308,310,309,309,309,310,309,309,309,309,309,311,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,310,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,312,309,313,314,314,314,313,314,314,314,314,314,315,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,313,314,317,316,316,316,317,316,316,316,316,316,318,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,317,316,316,316,316,316,316,316,316,319,316,321,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,322,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,323,320,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,77,77,77,77,77,77,77,77,77,77,324,324,324,324,324,324,324,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,324,324,324,324,77,324,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,324,324,324,324,324,77,324,80,80,80,80,80,80,80,80,80,80,324,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,81,81,81,81,81,81,81,81,81,81,325,325,325,325,325,325,325,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,325,325,325,325,81,325,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,325,325,325,325,325,81,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,81,81,81,81,81,81,81,81,81,81,326,326,326,326,326,326,326,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,326,326,326,326,82,326,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,326,326,326,326,326,82,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,84,84,84,84,84,84,84,84,84,84,327,327,327,327,327,327,327,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,327,327,327,327,84,327,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,327,327,327,327,327,84,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,84,84,84,84,84,84,84,84,84,84,328,328,328,328,328,328,328,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,328,328,328,328,85,328,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,328,328,328,328,328,85,330,329,329,329,330,329,329,329,329,329,331,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,330,329,333,332,332,332,333,332,332,332,332,334,335,334,334,334,332,332,332,332,332,332,332,332,332,332,332,332,333,332,332,332,332,332,334,332,332,336,332,334,337,334,334,334,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,334,337,339,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,340,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,341,338,342,342,342,342,342,342,342,342,342,342,342,342,342,342,342,342,342,342,342,342,342,342,342,342,342,342,342,342,342,342,342,342,342,342,342,342,342,342,342,342,342,342,342,342,342,342,342,342,87,87,87,87,87,87,87,87,87,87,342,342,342,342,342,342,342,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,342,342,342,342,87,342,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,342,342,342,342,342,87,342,90,90,90,90,90,90,90,90,90,90,342,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,91,91,91,91,91,91,91,91,91,91,343,343,343,343,343,343,343,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,343,343,343,343,91,343,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,343,343,343,343,343,91,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,91,91,91,91,91,91,91,91,91,91,344,344,344,344,344,344,344,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,344,344,344,344,92,344,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,344,344,344,344,344,92,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,94,94,94,94,94,94,94,94,94,94,345,345,345,345,345,345,345,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,345,345,345,345,94,345,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,345,345,345,345,345,94,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,94,94,94,94,94,94,94,94,94,94,346,346,346,346,346,346,346,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,346,346,346,346,95,346,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,346,346,346,346,346,95,348,347,347,347,348,347,347,347,347,349,350,349,349,349,347,347,347,347,347,347,347,347,347,347,347,347,348,347,347,347,347,347,349,347,349,351,349,349,349,351,351,351,351,351,351,351,351,351,351,351,351,351,351,351,351,351,351,349,351,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,352,352,352,352,352,352,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,352,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,354,354,354,354,354,354,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,354,355,97,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,356,356,356,356,357,356,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,356,356,356,356,356,357,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,359,359,359,359,359,359,359,359,359,359,358,358,358,358,358,358,358,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,358,358,358,358,359,358,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,358,358,358,358,358,359,362,361,361,361,362,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,362,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,363,363,363,363,363,363,363,363,361,361,361,361,361,361,361,361,361,361,361,364,361,361,361,361,361,361,361,361,361,365,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,366,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,367,361,361,368,361,369,370,372,372,372,372,372,372,372,372,371,373,373,373,373,373,373,373,373,371,371,374,374,125,125,125,374,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,374,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,126,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,375,125,376,377,378,378,125,125,125,378,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,378,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,126,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,379,125,124,378,380,381,382,382,110,110,110,382,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,382,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,111,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,383,110,384,384,384,384,384,384,384,384,384,384,382,382,382,382,382,382,382,384,384,384,384,384,384,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,384,384,384,384,384,384,382,386,386,386,386,386,386,386,386,386,386,385,385,385,385,385,385,385,386,386,386,386,386,386,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,386,386,386,386,386,386,385,385,387,387,387,387,387,387,387,387,387,387,378,378,378,378,378,378,378,387,387,387,387,387,387,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,387,387,387,387,387,387,378,389,389,389,389,389,389,389,389,389,389,388,388,388,388,388,388,388,389,389,389,389,389,389,388,388,388,388,388,388,388,388,388,388,388,388,388,388,388,388,388,388,388,388,388,388,388,388,388,388,389,389,389,389,389,389,388,388,378,103,103,103,378,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,378,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,390,103,374,110,110,110,374,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,374,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,111,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,112,110,374,391,391,391,374,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,374,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,392,391,393,394,394,391,391,391,394,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,394,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,395,391,396,396,396,396,396,396,396,396,396,396,394,394,394,394,394,394,394,396,396,396,396,396,396,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,396,396,396,396,396,396,394,398,398,398,398,398,398,398,398,398,398,397,397,397,397,397,397,397,398,398,398,398,398,398,397,397,397,397,397,397,397,397,397,397,397,397,397,397,397,397,397,397,397,397,397,397,397,397,397,397,398,398,398,398,398,398,397,397,394,103,103,103,394,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,394,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,390,103,399,394,394,110,110,110,394,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,394,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,111,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,112,110,401,401,401,401,401,401,401,401,401,401,400,400,400,400,400,400,400,401,401,401,401,401,401,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,401,401,401,401,401,401,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,402,400,403,403,403,403,403,403,403,403,403,403,400,400,400,400,400,400,400,403,403,403,403,403,403,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,403,403,403,403,403,403,400,404,404,404,404,404,404,404,404,404,404,400,400,400,400,400,400,400,404,404,404,404,404,404,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,404,404,404,404,404,404,400,405,405,405,405,405,405,405,405,405,405,400,400,400,400,400,400,400,405,405,405,405,405,405,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,405,405,405,405,405,405,400,406,409,408,408,408,409,408,408,408,408,410,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,409,408,408,408,408,408,410,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,411,411,411,411,411,411,411,411,411,411,408,408,408,408,408,408,408,411,411,411,411,411,411,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,411,411,411,411,411,411,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,412,408,409,408,408,408,409,408,408,408,408,407,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,409,408,408,408,408,408,407,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,413,413,413,413,413,413,413,413,413,413,408,408,408,408,408,408,408,413,413,413,413,413,413,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,413,413,413,413,413,413,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,414,408,407,409,413,413,413,409,413,413,413,413,407,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,409,413,413,413,413,413,407,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,407,413,415,409,416,416,416,409,416,416,416,416,410,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,410,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,417,417,417,417,417,417,417,417,417,417,416,416,416,416,416,416,416,417,417,417,417,417,417,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,417,417,417,417,417,417,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,407,416,409,416,416,416,409,416,416,416,416,407,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,407,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,413,413,413,413,413,413,413,413,413,413,416,416,416,416,416,416,416,413,413,413,413,413,413,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,413,413,413,413,413,413,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,409,416,416,416,409,416,416,416,416,418,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,418,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,419,419,419,419,419,419,419,419,419,419,416,416,416,416,416,416,416,419,419,419,419,419,419,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,419,419,419,419,419,419,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,420,416,409,416,416,416,409,416,416,416,416,418,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,418,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,417,417,417,417,417,417,417,417,417,417,416,416,416,416,416,416,416,417,417,417,417,417,417,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,417,417,417,417,417,417,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,420,416,421,409,416,416,416,409,416,416,416,416,418,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,418,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,422,422,422,422,422,422,422,422,422,422,416,416,416,416,416,416,416,422,422,422,422,422,422,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,422,422,422,422,422,422,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,420,416,409,416,416,416,409,416,416,416,416,418,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,418,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,423,423,423,423,423,423,423,423,423,423,416,416,416,416,416,416,416,423,423,423,423,423,423,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,423,423,423,423,423,423,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,420,416,409,416,416,416,409,416,416,416,416,418,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,418,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,424,424,424,424,424,424,424,424,424,424,416,416,416,416,416,416,416,424,424,424,424,424,424,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,424,424,424,424,424,424,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,420,416,409,416,416,416,409,416,416,416,416,418,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,418,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,425,425,425,425,425,425,425,425,425,425,416,416,416,416,416,416,416,425,425,425,425,425,425,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,425,425,425,425,425,425,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,420,416,409,416,416,416,409,416,416,416,416,418,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,418,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,426,426,426,426,426,426,426,426,426,426,416,416,416,416,416,416,416,426,426,426,426,426,426,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,426,426,426,426,426,426,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,420,416,409,416,416,416,409,416,416,416,416,407,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,407,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,426,426,426,426,426,426,426,426,426,426,416,416,416,416,416,416,416,426,426,426,426,426,426,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,426,426,426,426,426,426,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,407,416,409,416,416,416,409,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,428,428,428,428,428,428,428,428,428,428,416,416,416,416,416,416,416,428,428,428,428,428,428,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,428,428,428,428,428,428,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,420,416,409,416,416,416,409,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,429,429,429,429,429,429,429,429,429,429,416,416,416,416,416,416,416,429,429,429,429,429,429,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,429,429,429,429,429,429,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,420,416,409,416,416,416,409,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,430,430,430,430,430,430,430,430,430,430,416,416,416,416,416,416,416,430,430,430,430,430,430,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,430,430,430,430,430,430,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,407,416,409,416,416,416,409,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,431,431,431,431,431,431,431,431,431,431,416,416,416,416,416,416,416,431,431,431,431,431,431,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,431,431,431,431,431,431,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,407,416,409,416,416,416,409,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,432,432,432,432,432,432,432,432,432,432,416,416,416,416,416,416,416,432,432,432,432,432,432,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,432,432,432,432,432,432,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,407,416,409,416,416,416,409,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,433,433,433,433,433,433,433,433,433,433,416,416,416,416,416,416,416,433,433,433,433,433,433,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,433,433,433,433,433,433,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,407,416,409,416,416,416,409,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,434,434,434,434,434,434,434,434,434,434,416,416,416,416,416,416,416,434,434,434,434,434,434,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,434,434,434,434,434,434,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,407,416,409,416,416,416,409,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,426,426,426,426,426,426,426,426,426,426,416,416,416,416,416,416,416,426,426,426,426,426,426,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,426,426,426,426,426,426,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,407,416,409,416,416,416,409,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,435,435,435,435,435,435,435,435,435,435,416,416,416,416,416,416,416,435,435,435,435,435,435,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,435,435,435,435,435,435,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,420,416,409,416,416,416,409,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,436,436,436,436,436,436,436,436,436,436,416,416,416,416,416,416,416,436,436,436,436,436,436,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,436,436,436,436,436,436,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,420,416,409,416,416,416,409,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,437,437,437,437,437,437,437,437,437,437,416,416,416,416,416,416,416,437,437,437,437,437,437,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,437,437,437,437,437,437,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,420,416,409,416,416,416,409,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,438,438,438,438,438,438,438,438,438,438,416,416,416,416,416,416,416,438,438,438,438,438,438,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,438,438,438,438,438,438,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,420,416,409,416,416,416,409,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,426,426,426,426,426,426,426,426,426,426,416,416,416,416,416,416,416,426,426,426,426,426,426,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,426,426,426,426,426,426,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,420,416,439,440,442,442,442,442,442,442,442,442,442,442,441,441,441,441,441,441,441,442,442,442,442,442,442,441,441,441,441,441,441,441,441,441,441,441,441,441,441,441,441,441,441,441,441,441,441,441,441,441,441,442,442,442,442,442,442,441,441,0")),function(a,b){return a.$attr_accessor("_lex_trans_targs"),a.$private("_lex_trans_targs","_lex_trans_targs=")}(f.get_singleton_class(v),x),v['$_lex_trans_targs='](f.large_array_unpack("61,64,65,2,66,67,68,4,69,70,61,77,78,81,82,94,91,83,84,85,9,86,87,88,96,98,99,103,104,105,100,15,8,79,80,17,128,129,131,133,134,20,135,136,137,22,138,139,131,146,147,150,151,163,160,152,153,154,27,155,156,157,165,167,168,172,173,174,169,33,26,148,149,35,197,198,205,207,208,38,209,210,211,40,212,213,215,218,219,42,220,221,222,44,223,224,230,0,229,229,231,233,229,239,240,243,244,256,253,245,246,247,50,248,249,250,258,260,261,265,266,267,262,56,49,241,242,58,303,304,60,61,61,62,61,63,71,61,61,1,3,61,61,61,61,61,61,61,72,73,74,5,11,16,106,18,61,61,61,75,76,61,6,61,61,61,7,61,61,61,10,89,61,90,92,61,93,95,97,12,61,61,13,101,61,102,14,61,107,111,108,109,110,61,61,112,113,116,118,127,114,115,61,117,119,121,120,61,122,123,124,125,126,61,61,61,130,131,131,131,132,140,131,19,21,131,131,131,131,131,131,131,141,142,143,23,29,34,175,36,131,131,131,144,145,131,24,131,131,131,25,131,131,131,28,158,131,159,161,131,162,164,166,30,131,131,31,170,131,171,32,131,176,180,177,178,179,131,131,181,182,185,187,196,183,184,131,186,188,190,189,131,191,192,193,194,195,131,131,131,199,200,200,201,200,202,200,200,200,203,203,203,204,203,203,203,205,205,205,206,205,37,39,205,205,205,205,205,205,214,214,214,215,215,216,215,217,215,215,41,43,215,215,215,215,215,215,225,225,226,225,225,227,228,227,45,229,232,229,232,229,234,235,236,46,52,57,268,59,229,229,229,237,238,229,47,229,229,229,48,229,229,229,51,251,229,252,254,229,255,257,259,53,229,229,54,263,229,264,55,229,269,273,270,271,272,229,229,274,275,278,289,302,276,277,229,279,280,281,283,282,229,284,285,286,287,288,290,297,291,292,293,294,295,296,298,299,300,301,229,229,229,305")),function(a,b){return a.$attr_accessor("_lex_trans_actions"),a.$private("_lex_trans_actions","_lex_trans_actions=")}(f.get_singleton_class(v),x),v['$_lex_trans_actions='](f.large_array_unpack("25,0,0,0,0,0,0,0,0,0,23,0,11,0,301,0,0,11,0,0,0,0,301,0,11,0,301,0,11,11,0,0,0,0,0,0,0,0,37,0,0,0,0,0,0,0,0,0,35,0,11,0,301,0,0,11,0,0,0,0,301,0,11,0,301,0,11,11,0,0,0,0,0,0,0,0,61,0,0,0,0,0,0,0,0,0,77,0,0,0,0,0,0,0,0,0,0,0,89,121,0,11,93,0,11,0,301,0,0,11,0,0,0,0,301,0,11,0,301,0,11,11,0,0,0,0,0,0,0,0,95,17,15,0,97,11,11,19,21,0,0,13,238,277,274,253,250,392,3,3,3,3,3,3,3,3,133,223,160,0,0,142,0,332,151,308,0,419,356,404,0,0,449,0,0,368,0,11,0,0,344,320,0,0,434,0,1,196,0,0,0,0,0,187,214,0,0,0,0,0,0,0,380,0,0,0,0,124,0,0,0,0,0,205,178,169,0,31,29,100,11,11,33,0,0,27,241,283,280,259,256,396,3,3,3,3,3,3,3,3,136,226,163,0,0,145,0,336,154,312,0,424,360,409,0,0,454,0,0,372,0,11,0,0,348,324,0,0,439,0,1,199,0,0,0,0,0,190,217,0,0,0,0,0,0,0,384,0,0,0,0,127,0,0,0,0,0,208,181,172,0,41,39,0,103,0,43,45,232,49,47,106,0,51,235,304,57,55,109,11,59,0,0,53,244,289,286,265,262,65,63,112,71,69,0,115,11,73,75,0,0,67,247,295,292,271,268,81,79,0,118,83,85,0,87,0,298,5,91,0,400,3,3,3,3,3,3,3,3,139,229,166,0,0,148,0,340,157,316,0,429,364,414,0,0,459,0,0,376,0,11,0,0,352,328,0,0,444,0,1,202,0,0,0,0,0,193,220,0,0,0,0,0,0,0,388,0,0,0,0,0,130,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,211,184,175,0")),function(a,b){return a.$attr_accessor("_lex_to_state_actions"),a.$private("_lex_to_state_actions","_lex_to_state_actions=")}(f.get_singleton_class(v),x),v['$_lex_to_state_actions='](f.large_array_unpack("0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,7,0,7,0,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,0,0,7,0,7,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0")),function(a,b){return a.$attr_accessor("_lex_from_state_actions"),a.$private("_lex_from_state_actions","_lex_from_state_actions=")}(f.get_singleton_class(v),x),v['$_lex_from_state_actions='](f.large_array_unpack("0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,9,0,9,0,0,0,0,0,0,0,0,9,9,0,0,0,0,0,0,0,0,0,9,0,9,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0")),function(a,b){return a.$attr_accessor("_lex_eof_trans"),a.$private("_lex_eof_trans","_lex_eof_trans=")}(f.get_singleton_class(v),x),v['$_lex_eof_trans='](f.large_array_unpack("0,1,1,1,1,11,11,11,11,11,11,11,11,11,11,11,11,11,11,39,39,39,39,49,49,49,49,49,49,49,49,49,49,49,49,49,49,77,77,77,77,87,87,87,87,0,103,103,103,103,103,103,103,103,103,103,103,103,103,103,0,0,138,139,143,143,143,144,145,146,147,148,157,158,159,159,159,162,162,164,165,166,166,166,168,169,170,170,170,173,173,166,176,176,166,162,162,181,182,182,182,185,185,182,182,182,188,188,188,188,194,195,195,195,195,203,195,195,195,195,208,195,195,195,195,195,195,214,215,216,216,0,223,227,227,227,228,229,230,231,232,241,242,243,243,243,246,246,248,249,250,250,250,252,253,254,254,254,257,257,250,260,260,250,246,246,265,266,266,266,269,269,266,266,266,272,272,272,272,278,279,279,279,279,287,279,279,279,279,292,279,279,279,279,279,279,298,299,300,300,0,307,308,0,314,0,321,325,325,325,326,327,328,329,0,0,338,339,343,343,343,344,345,346,347,0,352,0,355,0,357,357,359,361,370,371,372,372,372,375,375,377,378,379,379,379,381,382,383,383,383,386,386,379,389,389,379,375,375,394,395,395,395,398,398,395,395,395,401,401,401,401,407,408,408,408,408,416,408,408,408,408,422,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,440,441,442,442")),function(a,b){return a.$attr_accessor("lex_start")}(f.get_singleton_class(v),x),v['$lex_start='](60),function(a,b){return a.$attr_accessor("lex_error")}(f.get_singleton_class(v),x),v['$lex_error='](0),function(a,b){return a.$attr_accessor("lex_en_interp_words")}(f.get_singleton_class(v),x),v['$lex_en_interp_words='](61),function(a,b){return a.$attr_accessor("lex_en_interp_string")}(f.get_singleton_class(v),x),v['$lex_en_interp_string='](131),function(a,b){return a.$attr_accessor("lex_en_plain_words")}(f.get_singleton_class(v),x),v['$lex_en_plain_words='](200),function(a,b){return a.$attr_accessor("lex_en_plain_string")}(f.get_singleton_class(v),x),v['$lex_en_plain_string='](203),function(a,b){return a.$attr_accessor("lex_en_interp_backslash_delimited")}(f.get_singleton_class(v),x),v['$lex_en_interp_backslash_delimited='](205),function(a,b){return a.$attr_accessor("lex_en_plain_backslash_delimited")}(f.get_singleton_class(v),x),v['$lex_en_plain_backslash_delimited='](214),function(a,b){return a.$attr_accessor("lex_en_interp_backslash_delimited_words")}(f.get_singleton_class(v),x),v['$lex_en_interp_backslash_delimited_words='](215),function(a,b){return a.$attr_accessor("lex_en_plain_backslash_delimited_words")}(f.get_singleton_class(v),x),v['$lex_en_plain_backslash_delimited_words='](225),function(a,b){return a.$attr_accessor("lex_en_regexp_modifiers")}(f.get_singleton_class(v),x),v['$lex_en_regexp_modifiers='](227),function(a,b){return a.$attr_accessor("lex_en_character")}(f.get_singleton_class(v),x),v['$lex_en_character='](229),function(a,b){return a.$attr_accessor("lex_en_unknown")}(f.get_singleton_class(v),x),v['$lex_en_unknown='](60),n(x[0],'ESCAPES',z(new Map([["a".$ord(),"\u0007"],["b".$ord(),""],["e".$ord(),"\u001b"],["f".$ord()," "],["n".$ord(),"\n"],["r".$ord(),"\r"],["s".$ord()," "],["t".$ord()," "],["v".$ord()," "],["\\".$ord(),"\\"]])).$freeze()),n(x[0],'REGEXP_META_CHARACTERS',o(B('Regexp'),'union',t("\\$()*+.<>?[]^{|}".$chars())).$freeze()),v.$attr_accessor("herebody_s"),v.$attr_accessor("source_buffer","source_pts"),g(v,'$initialize',function(c,d){var b=this;return b.lexer=c,b.version=d,b._lex_actions=a(b.$class()['$respond_to?']("_lex_actions",!0))?b.$class().$send("_lex_actions"):[],b.$reset()}),g(v,'$reset',function(){var a=this;return a.cs=a.$class().$lex_en_unknown(),a.literal_stack=[],a.escape_s=c,a.escape=c,a.herebody_s=c,a.dedent_level=c}),n(x[0],'LEX_STATES',new Map([["interp_string",v.$lex_en_interp_string()],["interp_words",v.$lex_en_interp_words()],["plain_string",v.$lex_en_plain_string()],["plain_words",v.$lex_en_plain_string()]])),g(v,'$advance',function(g){var z,P,f=this,D=c,K=c,_=c,Z=c,R=c,aa=c,M=c,V=c,W=c,S=c,E=c,A=c,Y=c,U=c,I=c,G=c,H=c,J=c,y=c,C=c,o=c,N=c,O=c,$=c,Q=c,t=c,u=c,L=c,n=c,F=c,k=c,x=c,p=c,s=c,v=c,w=c,T=c,X=c;for(D=f.$class(),K=D.$send("_lex_trans_keys"),_=D.$send("_lex_key_spans"),Z=D.$send("_lex_index_offsets"),R=D.$send("_lex_indicies"),aa=D.$send("_lex_trans_targs"),M=D.$send("_lex_trans_actions"),V=D.$send("_lex_to_state_actions"),W=D.$send("_lex_from_state_actions"),S=D.$send("_lex_eof_trans"),E=f._lex_actions,A=b(f.$source_pts().$size(),2),Y=A,U=!1,P=c,z=r(P),I=z[0]==null?c:z[0],G=z[1]==null?c:z[1],H=z[2]==null?c:z[2],J=z[3]==null?c:z[3],y=z[4]==null?c:z[4],C=z[5]==null?c:z[5],P,o=0,N=10,O=15,$=20,Q=30,t=40;a(!0);){if(u=!1,a(j(o,0))){if(h(g,A)){o=Q;continue}if(h(f.cs,0)){o=t;continue}}if(a(j(o,N))){for(y=W['$[]'](f.cs),C=E['$[]'](y),y=b(y,1);a(m(C,0));)switch(C=e(C,1),y=b(y,1),E['$[]'](e(y,1)).valueOf()){case 24:f.ts=g;break;default:c}if(a(u))continue;H=f.cs['$<<'](1),J=Z['$[]'](f.cs),I=_['$[]'](f.cs),L=a(n=f.$source_pts()['$[]'](g))?n:0,G=a(m(I,0))&&a(j(K['$[]'](H),L))&&a(j(L,K['$[]'](b(H,1))))?R['$[]'](e(b(J,L),K['$[]'](H))):R['$[]'](b(J,I))}if(a(j(o,O))){if(f.cs=aa['$[]'](G),q(M['$[]'](G),0))for(y=M['$[]'](G),C=E['$[]'](y),y=b(y,1);a(m(C,0));)if(C=e(C,1),y=b(y,1),d(0,n=E['$[]'](e(y,1))))f.newline_s=g;else if(d(1,n))f.$unicode_points(g);else if(d(2,n))f.$unescape_char(g);else if(d(3,n))f.$diagnostic("fatal","invalid_escape");else if(d(4,n))f.$read_post_meta_or_ctrl_char(g);else if(d(5,n))f.$slash_c_char();else if(d(6,n))f.$slash_m_char();else if(d(7,n))f.$encode_escaped_char(g);else if(d(8,n))f.escape="\u007F";else if(d(9,n))f.$encode_escaped_char(g);else if(d(10,n))f.escape=f.$encode_escape(f.$tok(f.escape_s,g).$to_i(8)['$%'](256));else if(d(11,n))f.escape=f.$encode_escape(f.$tok(b(f.escape_s,1),g).$to_i(16));else if(d(12,n))f.$diagnostic("fatal","invalid_hex_escape",c,f.$range(e(f.escape_s,1),b(g,2)));else if(d(13,n))f.escape=f.$tok(b(f.escape_s,1),g).$to_i(16).$chr(l(B('Encoding'),'UTF_8'));else if(d(14,n))f.$check_invalid_escapes(g);else if(d(15,n))f.$check_invalid_escapes(g);else if(d(16,n))f.$diagnostic("fatal","unterminated_unicode",c,f.$range(e(g,1),g));else if(d(17,n))f.$diagnostic("fatal","escape_eof",c,f.$range(e(g,1),g));else if(d(18,n))f.escape_s=g,f.escape=c;else if(d(19,n))F="gvar";else if(d(20,n))F="cvar";else if(d(21,n))F="ivar";else if(d(22,n))f.escape=c;else if(d(25,n))f.te=b(g,1);else if(d(26,n)){f.te=b(g,1),k=f.$literal(),f.$extend_interp_code(k),f.root_lexer_state=f.lexer.$class().$lex_en_expr_value(),g=b(g,1),u=!0,o=t;break}else if(d(27,n)){if(f.te=b(g,1),k=f.$literal(),f.$extend_string_eol_check_eof(k,A),a(k['$heredoc?']()))if(x=f.$extend_string_eol_heredoc_line(),a(k.$nest_and_try_closing(x,f.herebody_s,f.ts))){f.herebody_s=f.te,g=e(k.$heredoc_e(),1),f.cs=f.$pop_literal(),g=b(g,1),u=!0,o=t;break}else k.$infer_indent_level(x),f.herebody_s=f.te;else{if(a(k.$nest_and_try_closing(f.$tok(),f.ts,f.te))){f.cs=f.$pop_literal(),g=b(g,1),u=!0,o=t;break}g=f.$extend_string_eol_heredoc_intertwined(g)}f.$extend_string_eol_words(k,g)}else if(d(28,n))if(f.te=b(g,1),p=f.$tok(),s=f.$extend_string_slice_end(s),k=f.$literal(),i(k['$heredoc?']())&&a(v=k.$nest_and_try_closing(p,f.ts,f.te,s))){h(v['$[]'](0),"tLABEL_END")?(g=b(g,1),f.$pop_literal(),f.root_lexer_state=f.lexer.$class().$lex_en_expr_labelarg()):a(w=f.$pop_literal())&&(f.cs=w),g=b(g,1),u=!0,o=t;break}else f.$extend_string_for_token_range(k,p);else if(d(29,n))f.te=g,g=e(g,1),f.$extend_interp_digit_var();else if(d(30,n))f.te=g,g=e(g,1),k=f.$literal(),f.$extend_interp_var(k),f.$emit_interp_var(F);else if(d(31,n))f.te=g,g=e(g,1),f.$extend_string_escaped();else if(d(32,n))f.te=g,g=e(g,1),f.$literal().$extend_space(f.ts,f.te);else if(d(33,n))if(f.te=g,g=e(g,1),p=f.$tok(),s=f.$extend_string_slice_end(s),k=f.$literal(),i(k['$heredoc?']())&&a(v=k.$nest_and_try_closing(p,f.ts,f.te,s))){h(v['$[]'](0),"tLABEL_END")?(g=b(g,1),f.$pop_literal(),f.root_lexer_state=f.lexer.$class().$lex_en_expr_labelarg()):a(w=f.$pop_literal())&&(f.cs=w),g=b(g,1),u=!0,o=t;break}else f.$extend_string_for_token_range(k,p);else if(d(34,n))g=e(f.te,1),f.$extend_string_escaped();else if(d(35,n))if(g=e(f.te,1),p=f.$tok(),s=f.$extend_string_slice_end(s),k=f.$literal(),i(k['$heredoc?']())&&a(v=k.$nest_and_try_closing(p,f.ts,f.te,s))){h(v['$[]'](0),"tLABEL_END")?(g=b(g,1),f.$pop_literal(),f.root_lexer_state=f.lexer.$class().$lex_en_expr_labelarg()):a(w=f.$pop_literal())&&(f.cs=w),g=b(g,1),u=!0,o=t;break}else f.$extend_string_for_token_range(k,p);else if(d(36,n)){f.te=b(g,1),k=f.$literal(),f.$extend_interp_code(k),f.root_lexer_state=f.lexer.$class().$lex_en_expr_value(),g=b(g,1),u=!0,o=t;break}else if(d(37,n)){if(f.te=b(g,1),k=f.$literal(),f.$extend_string_eol_check_eof(k,A),a(k['$heredoc?']()))if(x=f.$extend_string_eol_heredoc_line(),a(k.$nest_and_try_closing(x,f.herebody_s,f.ts))){f.herebody_s=f.te,g=e(k.$heredoc_e(),1),f.cs=f.$pop_literal(),g=b(g,1),u=!0,o=t;break}else k.$infer_indent_level(x),f.herebody_s=f.te;else{if(a(k.$nest_and_try_closing(f.$tok(),f.ts,f.te))){f.cs=f.$pop_literal(),g=b(g,1),u=!0,o=t;break}g=f.$extend_string_eol_heredoc_intertwined(g)}f.$extend_string_eol_words(k,g)}else if(d(38,n))if(f.te=b(g,1),p=f.$tok(),s=f.$extend_string_slice_end(s),k=f.$literal(),i(k['$heredoc?']())&&a(v=k.$nest_and_try_closing(p,f.ts,f.te,s))){h(v['$[]'](0),"tLABEL_END")?(g=b(g,1),f.$pop_literal(),f.root_lexer_state=f.lexer.$class().$lex_en_expr_labelarg()):a(w=f.$pop_literal())&&(f.cs=w),g=b(g,1),u=!0,o=t;break}else f.$extend_string_for_token_range(k,p);else if(d(39,n))f.te=g,g=e(g,1),f.$extend_interp_digit_var();else if(d(40,n))f.te=g,g=e(g,1),k=f.$literal(),f.$extend_interp_var(k),f.$emit_interp_var(F);else if(d(41,n))f.te=g,g=e(g,1),f.$extend_string_escaped();else if(d(42,n))if(f.te=g,g=e(g,1),p=f.$tok(),s=f.$extend_string_slice_end(s),k=f.$literal(),i(k['$heredoc?']())&&a(v=k.$nest_and_try_closing(p,f.ts,f.te,s))){h(v['$[]'](0),"tLABEL_END")?(g=b(g,1),f.$pop_literal(),f.root_lexer_state=f.lexer.$class().$lex_en_expr_labelarg()):a(w=f.$pop_literal())&&(f.cs=w),g=b(g,1),u=!0,o=t;break}else f.$extend_string_for_token_range(k,p);else if(d(43,n))g=e(f.te,1),f.$extend_string_escaped();else if(d(44,n))if(g=e(f.te,1),p=f.$tok(),s=f.$extend_string_slice_end(s),k=f.$literal(),i(k['$heredoc?']())&&a(v=k.$nest_and_try_closing(p,f.ts,f.te,s))){h(v['$[]'](0),"tLABEL_END")?(g=b(g,1),f.$pop_literal(),f.root_lexer_state=f.lexer.$class().$lex_en_expr_labelarg()):a(w=f.$pop_literal())&&(f.cs=w),g=b(g,1),u=!0,o=t;break}else f.$extend_string_for_token_range(k,p);else if(d(45,n))f.te=b(g,1),f.$extend_string_escaped();else if(d(46,n)){if(f.te=b(g,1),k=f.$literal(),f.$extend_string_eol_check_eof(k,A),a(k['$heredoc?']()))if(x=f.$extend_string_eol_heredoc_line(),a(k.$nest_and_try_closing(x,f.herebody_s,f.ts))){f.herebody_s=f.te,g=e(k.$heredoc_e(),1),f.cs=f.$pop_literal(),g=b(g,1),u=!0,o=t;break}else k.$infer_indent_level(x),f.herebody_s=f.te;else{if(a(k.$nest_and_try_closing(f.$tok(),f.ts,f.te))){f.cs=f.$pop_literal(),g=b(g,1),u=!0,o=t;break}g=f.$extend_string_eol_heredoc_intertwined(g)}f.$extend_string_eol_words(k,g)}else if(d(47,n))if(f.te=b(g,1),p=f.$tok(),s=f.$extend_string_slice_end(s),k=f.$literal(),i(k['$heredoc?']())&&a(v=k.$nest_and_try_closing(p,f.ts,f.te,s))){h(v['$[]'](0),"tLABEL_END")?(g=b(g,1),f.$pop_literal(),f.root_lexer_state=f.lexer.$class().$lex_en_expr_labelarg()):a(w=f.$pop_literal())&&(f.cs=w),g=b(g,1),u=!0,o=t;break}else f.$extend_string_for_token_range(k,p);else if(d(48,n))f.te=g,g=e(g,1),f.$literal().$extend_space(f.ts,f.te);else if(d(49,n))if(f.te=g,g=e(g,1),p=f.$tok(),s=f.$extend_string_slice_end(s),k=f.$literal(),i(k['$heredoc?']())&&a(v=k.$nest_and_try_closing(p,f.ts,f.te,s))){h(v['$[]'](0),"tLABEL_END")?(g=b(g,1),f.$pop_literal(),f.root_lexer_state=f.lexer.$class().$lex_en_expr_labelarg()):a(w=f.$pop_literal())&&(f.cs=w),g=b(g,1),u=!0,o=t;break}else f.$extend_string_for_token_range(k,p);else if(d(50,n)){if(f.te=b(g,1),k=f.$literal(),f.$extend_string_eol_check_eof(k,A),a(k['$heredoc?']()))if(x=f.$extend_string_eol_heredoc_line(),a(k.$nest_and_try_closing(x,f.herebody_s,f.ts))){f.herebody_s=f.te,g=e(k.$heredoc_e(),1),f.cs=f.$pop_literal(),g=b(g,1),u=!0,o=t;break}else k.$infer_indent_level(x),f.herebody_s=f.te;else{if(a(k.$nest_and_try_closing(f.$tok(),f.ts,f.te))){f.cs=f.$pop_literal(),g=b(g,1),u=!0,o=t;break}g=f.$extend_string_eol_heredoc_intertwined(g)}f.$extend_string_eol_words(k,g)}else if(d(51,n))f.te=b(g,1),f.$extend_string_escaped();else if(d(52,n)){if(f.te=b(g,1),k=f.$literal(),f.$extend_string_eol_check_eof(k,A),a(k['$heredoc?']()))if(x=f.$extend_string_eol_heredoc_line(),a(k.$nest_and_try_closing(x,f.herebody_s,f.ts))){f.herebody_s=f.te,g=e(k.$heredoc_e(),1),f.cs=f.$pop_literal(),g=b(g,1),u=!0,o=t;break}else k.$infer_indent_level(x),f.herebody_s=f.te;else{if(a(k.$nest_and_try_closing(f.$tok(),f.ts,f.te))){f.cs=f.$pop_literal(),g=b(g,1),u=!0,o=t;break}g=f.$extend_string_eol_heredoc_intertwined(g)}f.$extend_string_eol_words(k,g)}else if(d(53,n))if(f.te=b(g,1),p=f.$tok(),s=f.$extend_string_slice_end(s),k=f.$literal(),i(k['$heredoc?']())&&a(v=k.$nest_and_try_closing(p,f.ts,f.te,s))){h(v['$[]'](0),"tLABEL_END")?(g=b(g,1),f.$pop_literal(),f.root_lexer_state=f.lexer.$class().$lex_en_expr_labelarg()):a(w=f.$pop_literal())&&(f.cs=w),g=b(g,1),u=!0,o=t;break}else f.$extend_string_for_token_range(k,p);else if(d(54,n))if(f.te=g,g=e(g,1),p=f.$tok(),s=f.$extend_string_slice_end(s),k=f.$literal(),i(k['$heredoc?']())&&a(v=k.$nest_and_try_closing(p,f.ts,f.te,s))){h(v['$[]'](0),"tLABEL_END")?(g=b(g,1),f.$pop_literal(),f.root_lexer_state=f.lexer.$class().$lex_en_expr_labelarg()):a(w=f.$pop_literal())&&(f.cs=w),g=b(g,1),u=!0,o=t;break}else f.$extend_string_for_token_range(k,p);else if(d(55,n)){f.te=b(g,1),k=f.$literal(),f.$extend_interp_code(k),f.root_lexer_state=f.lexer.$class().$lex_en_expr_value(),g=b(g,1),u=!0,o=t;break}else if(d(56,n)){if(f.te=b(g,1),k=f.$literal(),f.$extend_string_eol_check_eof(k,A),a(k['$heredoc?']()))if(x=f.$extend_string_eol_heredoc_line(),a(k.$nest_and_try_closing(x,f.herebody_s,f.ts))){f.herebody_s=f.te,g=e(k.$heredoc_e(),1),f.cs=f.$pop_literal(),g=b(g,1),u=!0,o=t;break}else k.$infer_indent_level(x),f.herebody_s=f.te;else{if(a(k.$nest_and_try_closing(f.$tok(),f.ts,f.te))){f.cs=f.$pop_literal(),g=b(g,1),u=!0,o=t;break}g=f.$extend_string_eol_heredoc_intertwined(g)}f.$extend_string_eol_words(k,g)}else if(d(57,n))if(f.te=b(g,1),p=f.$tok(),s=f.$extend_string_slice_end(s),k=f.$literal(),i(k['$heredoc?']())&&a(v=k.$nest_and_try_closing(p,f.ts,f.te,s))){h(v['$[]'](0),"tLABEL_END")?(g=b(g,1),f.$pop_literal(),f.root_lexer_state=f.lexer.$class().$lex_en_expr_labelarg()):a(w=f.$pop_literal())&&(f.cs=w),g=b(g,1),u=!0,o=t;break}else f.$extend_string_for_token_range(k,p);else if(d(58,n))f.te=g,g=e(g,1),f.$extend_interp_digit_var();else if(d(59,n))f.te=g,g=e(g,1),k=f.$literal(),f.$extend_interp_var(k),f.$emit_interp_var(F);else if(d(60,n))if(f.te=g,g=e(g,1),p=f.$tok(),s=f.$extend_string_slice_end(s),k=f.$literal(),i(k['$heredoc?']())&&a(v=k.$nest_and_try_closing(p,f.ts,f.te,s))){h(v['$[]'](0),"tLABEL_END")?(g=b(g,1),f.$pop_literal(),f.root_lexer_state=f.lexer.$class().$lex_en_expr_labelarg()):a(w=f.$pop_literal())&&(f.cs=w),g=b(g,1),u=!0,o=t;break}else f.$extend_string_for_token_range(k,p);else if(d(61,n))if(g=e(f.te,1),p=f.$tok(),s=f.$extend_string_slice_end(s),k=f.$literal(),i(k['$heredoc?']())&&a(v=k.$nest_and_try_closing(p,f.ts,f.te,s))){h(v['$[]'](0),"tLABEL_END")?(g=b(g,1),f.$pop_literal(),f.root_lexer_state=f.lexer.$class().$lex_en_expr_labelarg()):a(w=f.$pop_literal())&&(f.cs=w),g=b(g,1),u=!0,o=t;break}else f.$extend_string_for_token_range(k,p);else if(d(62,n)){if(f.te=b(g,1),k=f.$literal(),f.$extend_string_eol_check_eof(k,A),a(k['$heredoc?']()))if(x=f.$extend_string_eol_heredoc_line(),a(k.$nest_and_try_closing(x,f.herebody_s,f.ts))){f.herebody_s=f.te,g=e(k.$heredoc_e(),1),f.cs=f.$pop_literal(),g=b(g,1),u=!0,o=t;break}else k.$infer_indent_level(x),f.herebody_s=f.te;else{if(a(k.$nest_and_try_closing(f.$tok(),f.ts,f.te))){f.cs=f.$pop_literal(),g=b(g,1),u=!0,o=t;break}g=f.$extend_string_eol_heredoc_intertwined(g)}f.$extend_string_eol_words(k,g)}else if(d(63,n))if(f.te=b(g,1),p=f.$tok(),s=f.$extend_string_slice_end(s),k=f.$literal(),i(k['$heredoc?']())&&a(v=k.$nest_and_try_closing(p,f.ts,f.te,s))){h(v['$[]'](0),"tLABEL_END")?(g=b(g,1),f.$pop_literal(),f.root_lexer_state=f.lexer.$class().$lex_en_expr_labelarg()):a(w=f.$pop_literal())&&(f.cs=w),g=b(g,1),u=!0,o=t;break}else f.$extend_string_for_token_range(k,p);else if(d(64,n)){f.te=b(g,1),k=f.$literal(),f.$extend_interp_code(k),f.root_lexer_state=f.lexer.$class().$lex_en_expr_value(),g=b(g,1),u=!0,o=t;break}else if(d(65,n)){if(f.te=b(g,1),k=f.$literal(),f.$extend_string_eol_check_eof(k,A),a(k['$heredoc?']()))if(x=f.$extend_string_eol_heredoc_line(),a(k.$nest_and_try_closing(x,f.herebody_s,f.ts))){f.herebody_s=f.te,g=e(k.$heredoc_e(),1),f.cs=f.$pop_literal(),g=b(g,1),u=!0,o=t;break}else k.$infer_indent_level(x),f.herebody_s=f.te;else{if(a(k.$nest_and_try_closing(f.$tok(),f.ts,f.te))){f.cs=f.$pop_literal(),g=b(g,1),u=!0,o=t;break}g=f.$extend_string_eol_heredoc_intertwined(g)}f.$extend_string_eol_words(k,g)}else if(d(66,n))if(f.te=b(g,1),p=f.$tok(),s=f.$extend_string_slice_end(s),k=f.$literal(),i(k['$heredoc?']())&&a(v=k.$nest_and_try_closing(p,f.ts,f.te,s))){h(v['$[]'](0),"tLABEL_END")?(g=b(g,1),f.$pop_literal(),f.root_lexer_state=f.lexer.$class().$lex_en_expr_labelarg()):a(w=f.$pop_literal())&&(f.cs=w),g=b(g,1),u=!0,o=t;break}else f.$extend_string_for_token_range(k,p);else if(d(67,n))f.te=g,g=e(g,1),f.$extend_interp_digit_var();else if(d(68,n))f.te=g,g=e(g,1),k=f.$literal(),f.$extend_interp_var(k),f.$emit_interp_var(F);else if(d(69,n))f.te=g,g=e(g,1),f.$literal().$extend_space(f.ts,f.te);else if(d(70,n))if(f.te=g,g=e(g,1),p=f.$tok(),s=f.$extend_string_slice_end(s),k=f.$literal(),i(k['$heredoc?']())&&a(v=k.$nest_and_try_closing(p,f.ts,f.te,s))){h(v['$[]'](0),"tLABEL_END")?(g=b(g,1),f.$pop_literal(),f.root_lexer_state=f.lexer.$class().$lex_en_expr_labelarg()):a(w=f.$pop_literal())&&(f.cs=w),g=b(g,1),u=!0,o=t;break}else f.$extend_string_for_token_range(k,p);else if(d(71,n))if(g=e(f.te,1),p=f.$tok(),s=f.$extend_string_slice_end(s),k=f.$literal(),i(k['$heredoc?']())&&a(v=k.$nest_and_try_closing(p,f.ts,f.te,s))){h(v['$[]'](0),"tLABEL_END")?(g=b(g,1),f.$pop_literal(),f.root_lexer_state=f.lexer.$class().$lex_en_expr_labelarg()):a(w=f.$pop_literal())&&(f.cs=w),g=b(g,1),u=!0,o=t;break}else f.$extend_string_for_token_range(k,p);else if(d(72,n)){if(f.te=b(g,1),k=f.$literal(),f.$extend_string_eol_check_eof(k,A),a(k['$heredoc?']()))if(x=f.$extend_string_eol_heredoc_line(),a(k.$nest_and_try_closing(x,f.herebody_s,f.ts))){f.herebody_s=f.te,g=e(k.$heredoc_e(),1),f.cs=f.$pop_literal(),g=b(g,1),u=!0,o=t;break}else k.$infer_indent_level(x),f.herebody_s=f.te;else{if(a(k.$nest_and_try_closing(f.$tok(),f.ts,f.te))){f.cs=f.$pop_literal(),g=b(g,1),u=!0,o=t;break}g=f.$extend_string_eol_heredoc_intertwined(g)}f.$extend_string_eol_words(k,g)}else if(d(73,n))if(f.te=b(g,1),p=f.$tok(),s=f.$extend_string_slice_end(s),k=f.$literal(),i(k['$heredoc?']())&&a(v=k.$nest_and_try_closing(p,f.ts,f.te,s))){h(v['$[]'](0),"tLABEL_END")?(g=b(g,1),f.$pop_literal(),f.root_lexer_state=f.lexer.$class().$lex_en_expr_labelarg()):a(w=f.$pop_literal())&&(f.cs=w),g=b(g,1),u=!0,o=t;break}else f.$extend_string_for_token_range(k,p);else if(d(74,n))f.te=g,g=e(g,1),f.$literal().$extend_space(f.ts,f.te);else if(d(75,n)){f.te=b(g,1),f.$emit("tREGEXP_OPT",f.$tok(f.ts,e(f.te,1)),f.ts,e(f.te,1)),g=e(g,1),f.root_lexer_state=f.lexer.$class().$lex_en_expr_end(),g=b(g,1),u=!0,o=t;break}else if(d(76,n)){f.te=g,g=e(g,1),T=f.$tok().$scan(/[^imxouesn]/),a(T['$any?']())&&f.$diagnostic("error","regexp_options",new Map([["options",T.$join()]])),f.$emit("tREGEXP_OPT"),f.root_lexer_state=f.lexer.$class().$lex_en_expr_end(),g=b(g,1),u=!0,o=t;break}else if(d(77,n)){f.te=b(g,1),X=B('ESCAPE_WHITESPACE')['$[]'](f.$source_buffer().$slice(b(f.ts,1),1)),f.$diagnostic("warning","invalid_escape_use",new Map([["escape",X]]),f.$range()),g=e(f.ts,1),f.root_lexer_state=f.lexer.$class().$lex_en_expr_end(),g=b(g,1),u=!0,o=t;break}else if(d(78,n)){f.te=g,g=e(g,1),f.$emit_character_constant(),f.root_lexer_state=f.lexer.$class().$lex_en_expr_end(),g=b(g,1),u=!0,o=t;break}else if(d(79,n)){f.te=g,g=e(g,1),g=e(f.ts,1),f.root_lexer_state=f.lexer.$class().$lex_en_expr_end(),g=b(g,1),u=!0,o=t;break}else if(d(80,n)){g=e(f.te,1),f.$emit_character_constant(),f.root_lexer_state=f.lexer.$class().$lex_en_expr_end(),g=b(g,1),u=!0,o=t;break}else d(81,n)?(f.te=b(g,1),f.$raise("bug")):c;if(a(u))continue}if(a(j(o,$))){for(y=V['$[]'](f.cs),C=E['$[]'](y),y=b(y,1);a(m(C,0));)switch(C=e(C,1),y=b(y,1),E['$[]'](e(y,1)).valueOf()){case 23:f.ts=c;break;default:c}if(a(u))continue;if(h(f.cs,0)){o=t;continue}if(g=b(g,1),q(g,A)){o=N;continue}}if(a(j(o,Q)))if(h(g,Y))if(a(m(S['$[]'](f.cs),0))){G=e(S['$[]'](f.cs),1),o=O;continue}if(a(j(o,t)))break}return a(!1)&&U,[g,f.root_lexer_state]}),g(v,'$read_character_constant',function(b){var a=this;return a.cs=a.$class().$lex_en_character(),a.$advance(b)}),g(v,'$push_literal',function(g){var d,e,a=this,b=c;return d=s(arguments),e=d,b=o(l(l(B('Parser'),'Lexer'),'Literal'),'new',[a].concat(t(e))),a.literal_stack.$push(b),a.cs=a.$next_state_for_literal(b)},-1),g(v,'$next_state_for_literal',function(b){var c=this;return a(b['$words?']())&&a(b['$backslash_delimited?']())?a(b['$interpolate?']())?c.$class().$lex_en_interp_backslash_delimited_words():c.$class().$lex_en_plain_backslash_delimited_words():a(b['$words?']())&&i(b['$backslash_delimited?']())?a(b['$interpolate?']())?c.$class().$lex_en_interp_words():c.$class().$lex_en_plain_words():i(b['$words?']())&&a(b['$backslash_delimited?']())?a(b['$interpolate?']())?c.$class().$lex_en_interp_backslash_delimited():c.$class().$lex_en_plain_backslash_delimited():a(b['$interpolate?']())?c.$class().$lex_en_interp_string():c.$class().$lex_en_plain_string()}),g(v,'$continue_lexing',function(b){var a=this;return a.cs=a.$next_state_for_literal(b)}),g(v,'$literal',function(){var a=this;return a.literal_stack.$last()}),g(v,'$pop_literal',function(){var a=this,b=c;return b=a.literal_stack.$pop(),a.dedent_level=b.$dedent_level(),h(b.$type(),"tREGEXP_BEG")?(a.root_lexer_state=a.lexer.$class().$lex_en_inside_string(),a.$class().$lex_en_regexp_modifiers()):(a.root_lexer_state=a.lexer.$class().$lex_en_expr_end(),c)}),g(v,'$close_interp_on_current_literal',function(f){var b=this,d=c;return d=b.$literal(),a(d)&&a(d.$end_interp_brace_and_try_closing())?(a(b['$version?'](18,19))?(b.$emit("tRCURLY","}".$freeze(),e(f,1),f),b.lexer.$cond().$lexpop(),b.lexer.$cmdarg().$lexpop()):b.$emit("tSTRING_DEND","}".$freeze(),e(f,1),f),a(d.$saved_herebody_s())&&(b.herebody_s=d.$saved_herebody_s()),b.$continue_lexing(d),!0):c}),g(v,'$dedent_level',function(){var a,b=this,d=c;return a=[b.dedent_level,c],d=a[0],b.dedent_level=a[1],a,d}),g(v,'$on_newline',function(d){var b=this;return a(b.herebody_s)&&(d=b.herebody_s,b.herebody_s=c),d}),v.$protected(),g(v,'$eof_codepoint?',function(a){return[4,26,0]['$include?'](a)}),g(v,'$version?',function(e){var a,b,c=this;return a=s(arguments),b=a,b['$include?'](c.version)},-1),g(v,'$tok',function(a,b){var c=this;return a==null&&(a=c.ts),b==null&&(b=c.te),c.source_buffer.$slice(a,e(b,a))},-1),g(v,'$range',function(a,b){var c=this;return a==null&&(a=c.ts),b==null&&(b=c.te),l(l(B('Parser'),'Source'),'Range').$new(c.source_buffer,a,b)},-1),g(v,'$emit',function(e,b,c,d){var a=this;return b==null&&(b=a.$tok()),c==null&&(c=a.ts),d==null&&(d=a.te),a.lexer.$send("emit",e,b,c,d)},-2),g(v,'$diagnostic',function(f,g,a,b,d){var e=this;return a==null&&(a=c),b==null&&(b=e.$range()),d==null&&(d=[]),e.lexer.$send("diagnostic",f,g,a,b,d)},-3),g(v,'$cond',function(){var a=this;return a.lexer.$cond()}),g(v,'$emit_invalid_escapes?',function(){var b=this;return!!a(p(b.version,32))||(!!a(b.$literal()['$nil?']())||b.$literal()['$regexp?']()['$!']())}),g(v,'$extend_string_escaped',function(){var b=this,d=c,e=c,f=c;return d=b.$literal(),e=b.$source_buffer().$slice(b.escape_s,1).$chr(),a(d['$munge_escape?'](e))?a(d['$regexp?']())&&a(B('REGEXP_META_CHARACTERS').$match(e))?d.$extend_string(b.$tok(),b.ts,b.te):d.$extend_string(e,b.ts,b.te):a(d['$squiggly_heredoc?']())&&h(e,"\n".$freeze())?d.$extend_string(b.$tok(),b.ts,b.te):a(d['$supports_line_continuation_via_slash?']())&&h(e,"\n".$freeze())?d.$extend_string(b.$tok().$gsub("\\\n".$freeze(),"".$freeze()),b.ts,b.te):a(d['$regexp?']())&&a(k(b.version,31))&&a(["c","C","m","M"]['$include?'](e))?d.$extend_string(b.escape,b.ts,b.te):a(d['$regexp?']())?d.$extend_string(b.$tok().$gsub("\\\n".$freeze(),"".$freeze()),b.ts,b.te):d.$extend_string(a(f=b.escape)?f:b.$tok(),b.ts,b.te)}),g(v,'$extend_interp_code',function(b){var d,e=this;return b.$flush_string(),b.$extend_content(),e.$emit("tSTRING_DBEG","#{".$freeze()),a(b['$heredoc?']())&&(b['$saved_herebody_s='](e.herebody_s),e.herebody_s=c),b.$start_interp_brace(),(d=[!0],o(e.lexer,'command_start=',d),d[d.length-1])}),g(v,'$extend_interp_digit_var',function(){var d=this,e=c;return a(k(d.version,27))?d.$literal().$extend_string(d.$tok(),d.ts,d.te):(e=a(d.$tok()['$start_with?']("#@@"))?"cvar_name":"ivar_name",d.$diagnostic("error",e,new Map([["name",d.$tok(b(d.ts,1),d.te)]]),d.$range(b(d.ts,1),d.te)))}),g(v,'$extend_string_eol_check_eof',function(d,e){var a=this;return h(a.te,e)?a.$diagnostic("fatal","string_eof",c,a.$range(d.$str_s(),b(d.$str_s(),1))):c}),g(v,'$extend_string_eol_heredoc_line',function(){var b=this,d=c;return d=b.$tok(b.herebody_s,b.ts).$gsub(/\r+$/,"".$freeze()),a(b['$version?'](18,19,20))&&(d=d.$gsub(/\r.*$/,"".$freeze())),d}),g(v,'$extend_string_eol_heredoc_intertwined',function(d){var b=this;return a(b.herebody_s)&&(d=e(b.herebody_s,1),b.herebody_s=c),d}),g(v,'$extend_string_eol_words',function(c,d){var b=this;return a(c['$words?']())&&i(b['$eof_codepoint?'](b.$source_pts()['$[]'](d)))?c.$extend_space(b.ts,b.te):(c.$extend_string(b.$tok(),b.ts,b.te),c.$flush_string())}),g(v,'$extend_string_slice_end',function(c){var b=this;return a(k(b.version,22))&&i(b.$cond()['$active?']())&&(c=b.$source_buffer().$slice(b.te,2)),c}),g(v,'$extend_string_for_token_range',function(b,c){var a=this;return b.$extend_string(c,a.ts,a.te)}),g(v,'$encode_escape',function(a){var b=this;return a.$chr().$force_encoding(b.$source_buffer().$source().$encoding())}),g(v,'$unescape_char',function(f){var b=this,d=c;return d=b.$source_pts()['$[]'](e(f,1)),a(k(b.version,30))&&(h(d,117)||h(d,85))&&b.$diagnostic("fatal","invalid_escape"),a((b.escape=B('ESCAPES')['$[]'](d))['$nil?']())?b.escape=b.$encode_escape(b.$source_buffer().$slice(e(f,1),1)):c}),g(v,'$unicode_points',function(i){var d=this,g=c,f=c,j=c;return d.escape="",g=d.$tok(b(d.escape_s,2),e(i,1)),f=b(d.escape_s,2),a(p(d.version,24))&&((a(g['$start_with?'](" "))||a(g['$start_with?'](" ")))&&d.$diagnostic("fatal","invalid_unicode_escape",c,d.$range(b(d.escape_s,2),b(d.escape_s,3))),a(j=g.$index(/[ \t]{2}/))&&d.$diagnostic("fatal","invalid_unicode_escape",c,d.$range(b(b(f,j),1),b(b(f,j),2))),(a(g['$end_with?'](" "))||a(g['$end_with?'](" ")))&&d.$diagnostic("fatal","invalid_unicode_escape",c,d.$range(e(i,1),i))),function(){try{var e=w('break');return o(g.$scan(/([0-9a-fA-F]+)|([ \t]+)/),'each',[],function j(p){var g,n,d=j.$$s==null?this:j.$$s,i=c,o=c,m=c;return d.escape==null&&(d.escape=c),p==null&&(p=c),n=p,g=r(n),i=g[0]==null?c:g[0],o=g[1]==null?c:g[1],n,a(o)?f=b(f,o.$length()):(m=i.$to_i(16),a(k(m,1114112))&&(d.$diagnostic("error","unicode_point_too_large",c,d.$range(f,b(f,i.$length()))),e.$throw(c,j.$$is_lambda)),h(m['$&'](4294965248),55296)&&(d.$diagnostic("error","invalid_unicode_escape",c,d.$range(f,b(f,i.$length()))),e.$throw(c,j.$$is_lambda)),d.escape=b(d.escape,m.$chr(l(B('Encoding'),'UTF_8'))),f=b(f,i.$length()))},{$$s:d,$$has_top_level_mlhs_arg:!0})}catch(a){if(a===e)return a.$v;throw a}finally{e.is_orphan=!0}}()}),g(v,'$read_post_meta_or_ctrl_char',function(d){var b=this;return b.escape=b.$source_buffer().$slice(e(d,1),1).$chr(),a(k(b.version,27))&&(a(u(0,8,!1)['$include?'](b.escape.$ord()))||a(u(14,31,!1)['$include?'](b.escape.$ord())))?b.$diagnostic("fatal","invalid_escape"):c}),g(v,'$extend_interp_var',function(d){var a=this;return d.$flush_string(),d.$extend_content(),a.$emit("tSTRING_DVAR",c,a.ts,b(a.ts,1)),a.ts}),g(v,'$emit_interp_var',function(d){var a=this;switch(d.valueOf()){case"cvar":return a.lexer.$send("emit_class_var",b(a.ts,1),a.te);case"ivar":return a.lexer.$send("emit_instance_var",b(a.ts,1),a.te);case"gvar":return a.lexer.$send("emit_global_var",b(a.ts,1),a.te);default:return c}}),g(v,'$encode_escaped_char',function(b){var a=this;return a.escape=a.$encode_escape(a.$tok(e(b,2),b).$to_i(16))}),g(v,'$slash_c_char',function(){var a=this;return a.escape=a.$encode_escape(a.escape['$[]'](0).$ord()['$&'](159))}),g(v,'$slash_m_char',function(){var a=this;return a.escape=a.$encode_escape(a.escape['$[]'](0).$ord()['$|'](128))}),g(v,'$emit_character_constant',function(){var d=this,e=c,f=c;return e=a(f=d.escape)?f:d.$tok(b(d.ts,1)),a(d['$version?'](18))?d.$emit("tINTEGER",e.$getbyte(0)):d.$emit("tCHARACTER",e)}),g(v,'$check_ambiguous_slash',function(d){var e=this;return h(e.$tok(d,b(d,1)),"/".$freeze())?a(p(e.version,30))?e.$diagnostic("warning","ambiguous_literal",c,e.$range(d,b(d,1))):e.$diagnostic("warning","ambiguous_regexp",c,e.$range(d,b(d,1))):c}),g(v,'$check_invalid_escapes',function(d){var b=this;return a(b['$emit_invalid_escapes?']())?b.$diagnostic("fatal","invalid_unicode_escape",c,b.$range(e(b.escape_s,1),d)):c}),n(x[0],'ESCAPE_WHITESPACE',new Map([[" ","\\s"],["\r","\\r"],["\n","\\n"],[" ","\\t"],[" ","\\v"],[" ","\\f"]]))}(x('Parser'),null,v)},Opal.modules["parser/lexer/literal"]=function(d){var p=d.module,u=d.klass,h=d.const_set,e=d.enc,b=d.truthy,f=d.rb_plus,n=d.to_ary,c=d.def,m=d.return_ivar,g=d.eqeq,i=d.rb_minus,o=d.neqeq,v=d.not,j=d.send,l=d.eqeqeq,q=d.rb_gt,r=d.thrower,s=d.assign_ivar_val,t=d.regexp,k=[],a=d.nil;return d.add_stubs('ord,attr_reader,attr_accessor,coerce_encoding,include?,send,+,[],fetch,==,!,heredoc?,start_with?,freeze,clear_buffer,emit_start_tok,type,=~,words?,delimiter?,-,extend_space,!=,flush_string,emit,each_char,===,%,>,nil?,<<,empty?,extend_content,protected,end_with?,all?,bytes,sub,escape,lstrip,b,dup,force_encoding,encoding,source,source_buffer,length'),function(w,x){var y=p(w,'Parser'),k=[y].concat(x),z=d.$r(k);return function(A,y,z){var k=u(A,y,'Literal'),x=[k].concat(z),w=d.$r(x),p=k.$$prototype;return p.lexer=p.start_tok=p.str_type=p.monolithic=p.heredoc_e=p.dedent_body=p.end_delim=p.start_delim=p.nesting=p.label_allowed=p.buffer=p.str_s=p.interp_braces=p.buffer_s=p.buffer_e=p.space_emitted=p.interpolate=p.indent=a,h(x[0],'DELIMITERS',new Map([["(",e(")","ASCII-8BIT")],["[",e("]","ASCII-8BIT")],["{",e("}","ASCII-8BIT")],["<",e(">","ASCII-8BIT")]])),h(x[0],'SPACE',e(" ","ASCII-8BIT").$ord()),h(x[0],'TAB',e(" ","ASCII-8BIT").$ord()),h(x[0],'TYPES',new Map([["'",["tSTRING_BEG",!1]],["<<'",["tSTRING_BEG",!1]],["%q",["tSTRING_BEG",!1]],['"',["tSTRING_BEG",!0]],['<<"',["tSTRING_BEG",!0]],["%",["tSTRING_BEG",!0]],["%Q",["tSTRING_BEG",!0]],["%w",["tQWORDS_BEG",!1]],["%W",["tWORDS_BEG",!0]],["%i",["tQSYMBOLS_BEG",!1]],["%I",["tSYMBOLS_BEG",!0]],[":'",["tSYMBEG",!1]],["%s",["tSYMBEG",!1]],[':"',["tSYMBEG",!0]],["/",["tREGEXP_BEG",!0]],["%r",["tREGEXP_BEG",!0]],["%x",["tXSTRING_BEG",!0]],["`",["tXSTRING_BEG",!0]],["<<`",["tXSTRING_BEG",!0]]])),k.$attr_reader("heredoc_e","str_s","dedent_level"),k.$attr_accessor("saved_herebody_s"),c(k,'$initialize',function(q,d,g,j,k,l,m,o){var h,i,c=this,r=a,p=a;return k==null&&(k=a),l==null&&(l=!1),m==null&&(m=!1),o==null&&(o=!1),c.lexer=q,c.nesting=1,d=c.$coerce_encoding(d),g=c.$coerce_encoding(g),b(w('TYPES')['$include?'](d))||q.$send("diagnostic","error","unexpected_percent_str",new Map([["type",d]]),c.lexer.$send("range",j,f(j,2))),c.str_type=d,c.str_s=j,i=w('TYPES')['$[]'](d),h=n(i),c.start_tok=h[0]==null?a:h[0],c.interpolate=h[1]==null?a:h[1],i,c.start_delim=b(w('DELIMITERS')['$include?'](g))?g:a,c.end_delim=w('DELIMITERS').$fetch(g,g),c.heredoc_e=k,c.indent=l,c.label_allowed=o,c.dedent_body=m,c.dedent_level=a,c.interp_braces=0,c.space_emitted=!0,c.monolithic=b(r=b(p=c.start_tok['$==']("tSTRING_BEG"))?[e("'","ASCII-8BIT"),e('"',"ASCII-8BIT")]['$include?'](d):p)?c['$heredoc?']()['$!']():r,b(c.str_type['$start_with?'](e("%","ASCII-8BIT").$freeze()))&&(c.str_type=f(c.str_type,g)),c.$clear_buffer(),b(c.monolithic)?a:c.$emit_start_tok()},-5),c(k,'$interpolate?',m("interpolate")),c(k,'$words?',function(){var c=this,d=a,e=a,f=a;return b(d=b(e=b(f=c.$type()['$==']("tWORDS_BEG"))?f:c.$type()['$==']("tQWORDS_BEG"))?e:c.$type()['$==']("tSYMBOLS_BEG"))?d:c.$type()['$==']("tQSYMBOLS_BEG")}),c(k,'$regexp?',function(){var a=this;return a.$type()['$==']("tREGEXP_BEG")}),c(k,'$heredoc?',function(){var a=this;return a.heredoc_e['$!']()['$!']()}),c(k,'$plain_heredoc?',function(){var c=this,d=a;return b(d=c['$heredoc?']())?c.dedent_body['$!']():d}),c(k,'$squiggly_heredoc?',function(){var c=this,d=a;return b(d=c['$heredoc?']())?c.dedent_body:d}),c(k,'$backslash_delimited?',function(){var a=this;return a.end_delim['$=='](e("\\","ASCII-8BIT").$freeze())}),c(k,'$type',m("start_tok")),c(k,'$munge_escape?',function(a){var c=this;return!!(a=c.$coerce_encoding(a),b(c['$words?']())&&b(a['$=~'](/[ \t\v\r\f\n]/)))||[e("\\","ASCII-8BIT").$freeze(),c.start_delim,c.end_delim]['$include?'](a)}),c(k,'$nest_and_try_closing',function(h,j,k,d){var c=this;return d==null&&(d=a),h=c.$coerce_encoding(h),b(c.start_delim)&&g(c.start_delim,h)?c.nesting=f(c.nesting,1):b(c['$delimiter?'](h))&&(c.nesting=i(c.nesting,1)),g(c.nesting,0)?(b(c['$words?']())&&c.$extend_space(j,j),b(d)&&b(c.label_allowed)&&g(d['$[]'](0),e(":","ASCII-8BIT"))&&o(d['$[]'](1),e(":","ASCII-8BIT"))&&g(c.start_tok,"tSTRING_BEG"))?(c.$flush_string(),c.$emit("tLABEL_END",c.end_delim,j,f(k,1))):b(c.monolithic)?c.$emit("tSTRING",c.buffer,c.str_s,k):(b(c['$heredoc?']())||c.$flush_string(),c.$emit("tSTRING_END",c.end_delim,j,k)):a},-4),c(k,'$infer_indent_level',function(e){var d=this,c=a;return v(d.dedent_body)?a:(c=0,function(){try{var g=r('break');return j(e,'each_char',[],function e(h){var d=e.$$s==null?this:e.$$s,j=a;if(d.dedent_level==null&&(d.dedent_level=a),h==null&&(h=a),l(" ",j=h))return c=f(c,1);if(l(" ",j))return c=f(c,i(8,c['$%'](8)));(b(d.dedent_level['$nil?']())||b(q(d.dedent_level,c)))&&(d.dedent_level=c),g.$throw(a,e.$$is_lambda)},{$$s:d})}catch(a){if(a===g)return a.$v;throw a}finally{g.is_orphan=!0}}())}),c(k,'$start_interp_brace',function(){var a=this;return a.interp_braces=f(a.interp_braces,1)}),c(k,'$end_interp_brace_and_try_closing',function(){var a=this;return a.interp_braces=i(a.interp_braces,1),a.interp_braces['$=='](0)}),c(k,'$extend_string',function(e,f,g){var c=this,d=a;return c.buffer_s=b(d=c.buffer_s)?d:f,c.buffer_e=g,c.buffer['$<<'](e)}),c(k,'$flush_string',function(){var c=this;return b(c.monolithic)&&(c.$emit_start_tok(),c.monolithic=!1),b(c.buffer['$empty?']())?a:(c.$emit("tSTRING_CONTENT",c.buffer,c.buffer_s,c.buffer_e),c.$clear_buffer(),c.$extend_content())}),c(k,'$extend_content',s("space_emitted",!1)),c(k,'$extend_space',function(d,e){var c=this;return c.$flush_string(),b(c.space_emitted)?a:(c.$emit("tSPACE",a,d,e),c.space_emitted=!0)}),c(k,'$supports_line_continuation_via_slash?',function(){var c=this,d=a;return b(d=c['$words?']()['$!']())?c.interpolate:d}),k.$protected(),c(k,'$delimiter?',function(d){var c=this,f=a;return b(c['$heredoc?']())?b(f=d['$end_with?'](c.end_delim))?j(d.$sub(t([w('Regexp').$escape(c.end_delim),e("\\z","ASCII-8BIT")]),e("","ASCII-8BIT")).$bytes(),'all?',[],function(c){var d=a;return c==null&&(c=a),b(d=c['$=='](w('SPACE')))?d:c['$=='](w('TAB'))}):f:b(c.indent)?c.end_delim['$=='](d.$lstrip()):c.end_delim['$=='](d)}),c(k,'$coerce_encoding',function(a){return a.$b()}),c(k,'$clear_buffer',function(){var b=this;return b.buffer=e("","ASCII-8BIT").$dup(),b.buffer.$force_encoding(b.lexer.$source_buffer().$source().$encoding()),b.buffer_s=a,b.buffer_e=a}),c(k,'$emit_start_tok',function(){var c=this,d=a,e=a;return d=b(e=c.heredoc_e)?e:f(c.str_s,c.str_type.$length()),c.$emit(c.start_tok,c.str_type,c.str_s,d)}),c(k,'$emit',function(a,b,c,d){var e=this;return e.lexer.$send("emit",a,b,c,d)})}(z('Lexer'),null,k)}(k[0],k)},Opal.modules["parser/lexer/stack_state"]=function(a){var h=a.module,i=a.klass,b=a.def,e=a.assign_ivar_val,f=a.truthy,g=a.alias,d=[],c=a.nil;return a.add_stubs('freeze,clear,|,<<,&,>>,==,[],to_s'),function(d,j){var k=h(d,'Parser'),l=[k].concat(j),m=a.$r(l);return function(h,j){var a=i(h,j,'StackState'),d=a.$$prototype;return d.stack=d.name=c,b(a,'$initialize',function(b){var a=this;return a.name=b.$freeze(),a.$clear()}),b(a,'$clear',e("stack",0)),b(a,'$push',function(a){var b=this,d=c;return d=f(a)?1:0,b.stack=b.stack['$<<'](1)['$|'](d),a}),b(a,'$pop',function(){var a=this,b=c;return b=a.stack['$&'](1),a.stack=a.stack['$>>'](1),b['$=='](1)}),b(a,'$lexpop',function(){var a=this;return a.stack=a.stack['$>>'](1)['$|'](a.stack['$&'](1)),a.stack['$[]'](0)['$=='](1)}),b(a,'$active?',function(){var a=this;return a.stack['$[]'](0)['$=='](1)}),b(a,'$empty?',function(){var a=this;return a.stack['$=='](0)}),b(a,'$to_s',function(){var a=this;return"["+a.stack.$to_s(2)+" <= "+a.name+"]"}),g(a,"inspect","to_s")}(m('Lexer'),null)}(d[0],d)},Opal.modules["parser/lexer/dedenter"]=function(a){var u=a.module,t=a.klass,n=a.const_set,c=a.def,m=a.eqeq,e=a.send,f=a.truthy,l=a.to_ary,j=a.slice,k=a.rb_le,i=a.eqeqeq,d=a.rb_plus,h=a.rb_minus,o=a.rb_gt,p=a.rb_times,q=a.rb_divide,r=a.thrower,s=a.assign_ivar_val,g=[],b=a.nil,v=a.$$$;return a.add_stubs('encoding,split,force_encoding,==,length,map!,each,each_char,<=,===,+,-,>,*,/,slice!,replace,join,end_with?'),function(w,x){var y=u(w,'Parser'),g=[y].concat(x),z=a.$r(g);return function(x,y,z){var g=t(x,y,'Dedenter'),w=[g].concat(z),u=a.$r(w),A=g.$$prototype;return A.at_line_begin=b,n(w[0],'TAB_WIDTH',8),c(g,'$initialize',function(b){var a=this;return a.dedent_level=b,a.at_line_begin=!0,a.indent_level=0}),c(g,'$dedent',function(c){var g,n,s=this,t=b,a=b,w=b,x=b;return t=c.$encoding(),a=c.$force_encoding(v(u('Encoding'),'BINARY')).$split("\\\n"),m(a.$length(),1)?a=[c.$force_encoding(t)]:e(a,'map!',[],function(a){return a==null&&(a=b),a.$force_encoding(t)}),f(s.at_line_begin)?w=a:(n=a,g=l(n),x=g[0]==null?b:g[0],w=j(g,1),n),e(w,'each',[],function l(g){var j=l.$$s==null?this:l.$$s,c=b,a=b;return j.dedent_level==null&&(j.dedent_level=b),g==null&&(g=b),c=j.dedent_level,a=0,function(){try{var l=r('break');return e(g,'each_char',[],function e(g){var j=e.$$s==null?this:e.$$s,m=b;if(j.dedent_level==null&&(j.dedent_level=b),g==null&&(g=b),f(k(c,0))&&l.$throw(b,e.$$is_lambda),i(" ",m=g))return a=d(a,1),c=h(c,1);if(i(" ",m))return f(o(p(u('TAB_WIDTH'),d(q(a,u('TAB_WIDTH')),1)),j.dedent_level))&&l.$throw(b,e.$$is_lambda),a=d(a,1),c=h(c,u('TAB_WIDTH'));l.$throw(b,e.$$is_lambda)},{$$s:j})}catch(a){if(a===l)return a.$v;throw a}finally{l.is_orphan=!0}}(),g['$slice!'](0,a)},{$$s:s}),c.$replace(a.$join()),s.at_line_begin=c['$end_with?']("\n")}),c(g,'$interrupt',s("at_line_begin",!1))}(z('Lexer'),null,g)}(g[0],g)},Opal.modules["parser/builders/default"]=function(f){var y=f.module,z=f.klass,b=f.def,w=f.assign_ivar_val,g=f.to_a,c=f.truthy,e=f.eqeq,i=f.not,h=f.send,q=f.neqeq,n=f.to_ary,p=f.rb_ge,m=f.rb_gt,o=f.range,j=f.rb_minus,u=f.slice,k=f.rb_plus,x=f.rb_le,t=f.eqeqeq,r=f.rb_lt,v=f.thrower,l=f.gvars,s=[],a=f.nil,d=f.$$$;return f.add_stubs('attr_accessor,n0,token_map,numeric,n,value,new,loc,private,+@,-@,updated,join,expression,string_value,delimited_string_map,unquoted_map,collapse_string_parts?,nil?,first,children,string_map,prefix_string_map,to_sym,collection_map,empty?,==,version,diagnostic,!,type,dedent,map,interrupt,compact,uniq,sort,each_char,to_proc,static_regexp,message,<<,regexp_map,unary_op_map,binary_op_map,!=,%,size,last,each_slice,pair_keyword_map,pair_quoted_map,symbol_compose,adjust,=~,pair_keyword,accessible,each,eql?,>=,add?,range_map,variable_map,>,length,start_with?,name,source_buffer,dup,line,emit_encoding,class,any?,end_with?,to_s,try_declare_numparam,declared?,static_env,has_ordinary_params?,max_numparam_stack,in_block,context,var_send_map,top,current_arg_stack,parser,constant_map,in_def,[],check_assignment_to_numparam,check_reserved_for_numparam,declare,with_expression,with_operator,join_exprs,module_definition_map,definition_map,endless_definition_map,validate_definee,keyword_map,check_duplicate_args,validate_no_forward_arg_after_restarg,emit_forward_arg,forward_arg,arg_prefix_map,kwarg_map,emit_procarg0,emit_arg_inside_procarg0,location,resize,-,end,call_type_for_dot,emit_kwargs,rewrite_hash_args_to_kwargs,send_map,emit_lambda,expr_map,keyword,include?,block_map,array,+,emit_index,index_map,send_index_map,send_binary_op_map,static_regexp_node,names,send_unary_op_map,check_condition,condition_map,keyword_mod_map,ternary_map,for_map,count,rescue_body_map,eh_keyword_map,push,none?,one?,begin,guard_map,check_lvar_name,check_duplicate_pattern_variable,match_hash_var_from_str,match_var,check_duplicate_pattern_key,static_string,pair_quoted,match_hash_var,<=,===,check_duplicate_arg,is_a?,[]=,arg_name_collides?,<,in_dynamic_block?,has_numparams?,pattern_variables,pattern_hash_keys,with,begin_pos,end_pos,encode,valid_encoding?,process,diagnostics,send,kwargs?'),function(A,B){var C=y(A,'Parser'),s=[C].concat(B),D=f.$r(s);return function(E,C,D){var s=z(E,C,'Default'),A=[s].concat(D),y=f.$r(A),B=s.$$prototype;return B.parser=B.emit_file_line_as_literals=a,function(a,b){return a.$attr_accessor("emit_lambda")}(f.get_singleton_class(s),A),s.emit_lambda=!1,function(a,b){return a.$attr_accessor("emit_procarg0")}(f.get_singleton_class(s),A),s.emit_procarg0=!1,function(a,b){return a.$attr_accessor("emit_encoding")}(f.get_singleton_class(s),A),s.emit_encoding=!1,function(a,b){return a.$attr_accessor("emit_index")}(f.get_singleton_class(s),A),s.emit_index=!1,function(a,b){return a.$attr_accessor("emit_arg_inside_procarg0")}(f.get_singleton_class(s),A),s.emit_arg_inside_procarg0=!1,function(a,b){return a.$attr_accessor("emit_forward_arg")}(f.get_singleton_class(s),A),s.emit_forward_arg=!1,function(a,b){return a.$attr_accessor("emit_kwargs")}(f.get_singleton_class(s),A),s.emit_kwargs=!1,function(a,b){return a.$attr_accessor("emit_match_pattern")}(f.get_singleton_class(s),A),s.emit_match_pattern=!1,function(a,c){return b(a,'$modernize',function(){var a=this;return a.emit_lambda=!0,a.emit_procarg0=!0,a.emit_encoding=!0,a.emit_index=!0,a.emit_arg_inside_procarg0=!0,a.emit_forward_arg=!0,a.emit_kwargs=!0,a.emit_match_pattern=!0})}(f.get_singleton_class(s),A),s.$attr_accessor("parser"),s.$attr_accessor("emit_file_line_as_literals"),b(s,'$initialize',w("emit_file_line_as_literals",!0)),b(s,'$nil',function(b){var a=this;return a.$n0("nil",a.$token_map(b))}),b(s,'$true',function(b){var a=this;return a.$n0("true",a.$token_map(b))}),b(s,'$false',function(b){var a=this;return a.$n0("false",a.$token_map(b))}),b(s,'$integer',function(a){var b=this;return b.$numeric("int",a)}),b(s,'$float',function(a){var b=this;return b.$numeric("float",a)}),b(s,'$rational',function(a){var b=this;return b.$numeric("rational",a)}),b(s,'$complex',function(a){var b=this;return b.$numeric("complex",a)}),b(s,'$numeric',function(e,c){var b=this;return b.$n(e,[b.$value(c)],d(d(y('Source'),'Map'),'Operator').$new(a,b.$loc(c)))}),s.$private("numeric"),b(s,'$unary_num',function(h,f){var c,i=this,b=a,e=a;switch(c=[].concat(g(f)),b=c[0]==null?a:c[0],c,e=i.$loc(h),i.$value(h).valueOf()){case"+":b=b['$+@']();break;case"-":b=b['$-@']();break;default:a}return f.$updated(a,[b],new Map([["location",d(d(y('Source'),'Map'),'Operator').$new(e,e.$join(f.$loc().$expression()))]]))}),b(s,'$__LINE__',function(b){var a=this;return a.$n0("__LINE__",a.$token_map(b))}),b(s,'$string',function(b){var a=this;return a.$n("str",[a.$string_value(b)],a.$delimited_string_map(b))}),b(s,'$string_internal',function(b){var a=this;return a.$n("str",[a.$string_value(b)],a.$unquoted_map(b))}),b(s,'$string_compose',function(d,a,e){var b=this;return c(b['$collapse_string_parts?'](a))?c(d['$nil?']())&&c(e['$nil?']())?a.$first():b.$n("str",a.$first().$children(),b.$string_map(d,a,e)):b.$n("dstr",[].concat(g(a)),b.$string_map(d,a,e))}),b(s,'$character',function(b){var a=this;return a.$n("str",[a.$string_value(b)],a.$prefix_string_map(b))}),b(s,'$__FILE__',function(b){var a=this;return a.$n0("__FILE__",a.$token_map(b))}),b(s,'$symbol',function(b){var a=this;return a.$n("sym",[a.$string_value(b).$to_sym()],a.$prefix_string_map(b))}),b(s,'$symbol_internal',function(b){var a=this;return a.$n("sym",[a.$string_value(b).$to_sym()],a.$unquoted_map(b))}),b(s,'$symbol_compose',function(f,d,h){var b=this,i=a;return c(b['$collapse_string_parts?'](d))?(i=d.$first(),b.$n("sym",[i.$children().$first().$to_sym()],b.$collection_map(f,i.$loc().$expression(),h))):e(b.parser.$version(),18)&&c(d['$empty?']())?b.$diagnostic("error","empty_symbol",a,b.$loc(f).$join(b.$loc(h))):b.$n("dsym",[].concat(g(d)),b.$collection_map(f,d,h))}),b(s,'$xstring_compose',function(c,a,d){var b=this;return b.$n("xstr",[].concat(g(a)),b.$string_map(c,a,d))}),b(s,'$dedent_string',function(b,j){var g=a,f=a,k=a;if(i(j['$nil?']()))switch(g=d(y('Lexer'),'Dedenter').$new(j),b.$type().valueOf()){case"str":f=b.$children().$first(),g.$dedent(f);break;case"dstr":case"xstr":k=h(b.$children(),'map',[],function(b){if(b==null&&(b=a),e(b.$type(),"str")){if(f=b.$children().$first(),g.$dedent(f),c(f['$empty?']()))return a}else g.$interrupt();return b}),b=b.$updated(a,k.$compact());break;default:a}return b}),b(s,'$regexp_options',function(c){var b=this,d=a;return d=h(b.$value(c).$each_char().$sort().$uniq(),'map',[],"to_sym".$to_proc()),b.$n("regopt",d,b.$token_map(c))}),b(s,'$regexp_compose',function(g,h,i,c){var b=this,e=a;try{b.$static_regexp(h,c)}catch(a){if(f.rescue(a,[y('RegexpError'),d(y('Encoding'),'UndefinedConversionError')])){e=a;try{b.$diagnostic("error","invalid_regexp",new Map([["message",e.$message()]]),b.$loc(g).$join(b.$loc(i)))}finally{f.pop_exception(a)}}else throw a}return b.$n("regexp",h['$<<'](c),b.$regexp_map(g,i,c))}),b(s,'$array',function(c,a,d){var b=this;return b.$n("array",a,b.$collection_map(c,a,d))}),b(s,'$splat',function(e,b){var d=this;return b==null&&(b=a),c(b['$nil?']())?d.$n0("splat",d.$unary_op_map(e)):d.$n("splat",[b],d.$unary_op_map(e,b))},-2),b(s,'$word',function(b){var d=this;return c(d['$collapse_string_parts?'](b))?b.$first():d.$n("dstr",[].concat(g(b)),d.$collection_map(a,b,a))}),b(s,'$words_compose',function(c,a,d){var b=this;return b.$n("array",[].concat(g(a)),b.$collection_map(c,a,d))}),b(s,'$symbols_compose',function(d,b,e){var c=this;return b=h(b,'map',[],function(b){var c,d=a;switch(b==null&&(b=a),b.$type().valueOf()){case"str":return c=[].concat(g(b)),d=c[0]==null?a:c[0],c,b.$updated("sym",[d.$to_sym()]);case"dstr":return b.$updated("dsym");default:return b}}),c.$n("array",[].concat(g(b)),c.$collection_map(d,b,e))}),b(s,'$pair',function(a,d,b){var c=this;return c.$n("pair",[a,b],c.$binary_op_map(a,d,b))}),b(s,'$pair_list_18',function(b){var c=this;return q(b.$size()['$%'](2),0)?c.$diagnostic("error","odd_hash",a,b.$last().$loc().$expression()):h(b.$each_slice(2),'map',[],function d(b,c){var e=d.$$s==null?this:d.$$s;return b==null&&(b=a),c==null&&(c=a),e.$n("pair",[b,c],e.$binary_op_map(b,a,c))},{$$s:c})}),b(s,'$pair_keyword',function(f,g){var b,d,c=this,e=a,h=a,i=a;return d=c.$pair_keyword_map(f,g),b=n(d),e=b[0]==null?a:b[0],h=b[1]==null?a:b[1],d,i=c.$n("sym",[c.$value(f).$to_sym()],e),c.$n("pair",[i,g],h)}),b(s,'$pair_quoted',function(h,j,e,g){var b,c,d=this,f=a,i=a;return c=d.$pair_quoted_map(h,e,g),b=n(c),e=b[0]==null?a:b[0],f=b[1]==null?a:b[1],c,i=d.$symbol_compose(h,j,e),d.$n("pair",[i,g],f)}),b(s,'$pair_label',function(g){var b=this,i=a,e=a,f=a,h=a;return i=b.$loc(g),e=i.$adjust(new Map([["end_pos",-1]])),f=b.$value(g),h=c(f['$=~'](/^[[:upper:]]/))?b.$n("const",[a,f.$to_sym()],d(d(y('Source'),'Map'),'Constant').$new(a,e,e)):b.$n("ident",[f.$to_sym()],d(d(y('Source'),'Map'),'Variable').$new(e)),b.$pair_keyword(g,b.$accessible(h))}),b(s,'$kwsplat',function(c,a){var b=this;return b.$n("kwsplat",[a],b.$unary_op_map(c,a))}),b(s,'$associate',function(f,b,i){var d=this,e=a;return e=y('Set').$new(),h(b,'each',[],function i(b){var d,f=i.$$s==null?this:i.$$s,h=a;if(f.parser==null&&(f.parser=a),b==null&&(b=a),!c(b.$type()['$eql?']("pair")))return a;switch(d=[].concat(g(b)),h=d[0]==null?a:d[0],d,h.$type().valueOf()){case"sym":case"str":case"int":case"float":break;case"rational":case"complex":case"regexp":if(!c(p(f.parser.$version(),31)))return a;break;default:return a}return c(e['$add?'](h))?a:f.$diagnostic("warning","duplicate_hash_key",a,h.$loc().$expression())},{$$s:d}),d.$n("hash",[].concat(g(b)),d.$collection_map(f,b,i))}),b(s,'$range_inclusive',function(a,d,b){var c=this;return c.$n("irange",[a,b],c.$range_map(a,d,b))}),b(s,'$range_exclusive',function(a,d,b){var c=this;return c.$n("erange",[a,b],c.$range_map(a,d,b))}),b(s,'$self',function(b){var a=this;return a.$n0("self",a.$token_map(b))}),b(s,'$ident',function(b){var a=this;return a.$n("ident",[a.$value(b).$to_sym()],a.$variable_map(b))}),b(s,'$ivar',function(b){var a=this;return a.$n("ivar",[a.$value(b).$to_sym()],a.$variable_map(b))}),b(s,'$gvar',function(e){var b=this,d=a;return d=b.$value(e),c(d['$start_with?']("$0"))&&c(m(d.$length(),2))&&b.$diagnostic("error","gvar_name",new Map([["name",d]]),b.$loc(e)),b.$n("gvar",[d.$to_sym()],b.$variable_map(e))}),b(s,'$cvar',function(b){var a=this;return a.$n("cvar",[a.$value(b).$to_sym()],a.$variable_map(b))}),b(s,'$back_ref',function(b){var a=this;return a.$n("back_ref",[a.$value(b).$to_sym()],a.$token_map(b))}),b(s,'$nth_ref',function(b){var a=this;return a.$n("nth_ref",[a.$value(b)],a.$token_map(b))}),b(s,'$accessible',function(d){var j,b=this,f=a;switch(d.$type().valueOf()){case"__FILE__":return c(b.emit_file_line_as_literals)?b.$n("str",[d.$loc().$expression().$source_buffer().$name()],d.$loc().$dup()):d;break;case"__LINE__":return c(b.emit_file_line_as_literals)?b.$n("int",[d.$loc().$expression().$line()],d.$loc().$dup()):d;break;case"__ENCODING__":return i(b.$class().$emit_encoding())?b.$n("const",[b.$n("const",[a,"Encoding"],a),"UTF_8"],d.$loc().$dup()):d;break;case"ident":return j=[].concat(g(d)),f=j[0]==null?a:j[0],j,c(h(["?","!"],'any?',[],function(b){return b==null&&(b=a),f.$to_s()['$end_with?'](b)}))&&b.$diagnostic("error","invalid_id_to_get",new Map([["identifier",f.$to_s()]]),d.$loc().$expression()),c(p(b.parser.$version(),27))&&c(b.parser.$try_declare_numparam(d))?d.$updated("lvar"):c(b.parser.$static_env()['$declared?'](f))?(e(f.$to_s(),b.$parser().$current_arg_stack().$top())&&b.$diagnostic("error","circular_argument_reference",new Map([["var_name",f.$to_s()]]),d.$loc().$expression()),d.$updated("lvar")):(e(b.parser.$version(),33)&&e(f,"it")&&c(b.parser.$context().$in_block())&&i(b.parser.$max_numparam_stack()['$has_ordinary_params?']())&&b.$diagnostic("warning","ambiguous_it_call",a,d.$loc().$expression()),b.$n("send",[a,f],b.$var_send_map(d)));default:return d}}),b(s,'$const',function(c){var b=this;return b.$n("const",[a,b.$value(c).$to_sym()],b.$constant_map(a,a,c))}),b(s,'$const_global',function(d,e){var b=this,c=a;return c=b.$n0("cbase",b.$token_map(d)),b.$n("const",[c,b.$value(e).$to_sym()],b.$constant_map(c,d,e))}),b(s,'$const_fetch',function(b,d,c){var a=this;return a.$n("const",[b,a.$value(c).$to_sym()],a.$constant_map(b,d,c))}),b(s,'$__ENCODING__',function(b){var a=this;return a.$n0("__ENCODING__",a.$token_map(b))}),b(s,'$assignable',function(b){var e,d=this,i=a,h=a,f=a;switch(b.$type().valueOf()){case"cvar":return b.$updated("cvasgn");case"ivar":return b.$updated("ivasgn");case"gvar":return b.$updated("gvasgn");case"const":return c(d.parser.$context().$in_def())&&d.$diagnostic("error","dynamic_const",a,b.$loc().$expression()),b.$updated("casgn");case"ident":return e=[].concat(g(b)),i=e[0]==null?a:e[0],e,h=b.$children()['$[]'](0).$to_s(),f=b.$loc().$expression(),d.$check_assignment_to_numparam(h,f),d.$check_reserved_for_numparam(h,f),d.parser.$static_env().$declare(i),b.$updated("lvasgn");case"match_var":return e=[].concat(g(b)),i=e[0]==null?a:e[0],e,h=b.$children()['$[]'](0).$to_s(),f=b.$loc().$expression(),d.$check_assignment_to_numparam(h,f),d.$check_reserved_for_numparam(h,f),b;case"nil":case"self":case"true":case"false":case"__FILE__":case"__LINE__":case"__ENCODING__":return d.$diagnostic("error","invalid_assignment",a,b.$loc().$expression());case"back_ref":case"nth_ref":return d.$diagnostic("error","backref_assignment",a,b.$loc().$expression());default:return a}}),b(s,'$const_op_assignable',function(a){return a.$updated("casgn")}),b(s,'$assign',function(b,e,c){var d=this;return b['$<<'](c).$updated(a,a,new Map([["location",b.$loc().$with_operator(d.$loc(e)).$with_expression(d.$join_exprs(b,c))]]))}),b(s,'$op_assign',function(b,h,f){var c=this,g=a,d=a;switch(b.$type().valueOf()){case"gvasgn":case"ivasgn":case"lvasgn":case"cvasgn":case"casgn":case"send":case"csend":case"index":switch(g=c.$value(h)['$[]'](o(0,-1,!1)).$to_sym(),d=b.$loc().$with_operator(c.$loc(h)).$with_expression(c.$join_exprs(b,f)),e(b.$type(),"index")&&(b=b.$updated("indexasgn")),g.valueOf()){case"&&":return c.$n("and_asgn",[b,f],d);case"||":return c.$n("or_asgn",[b,f],d);default:return c.$n("op_asgn",[b,g,f],d)}break;case"back_ref":case"nth_ref":return c.$diagnostic("error","backref_assignment",a,b.$loc().$expression());default:return a}}),b(s,'$multi_lhs',function(c,a,d){var b=this;return b.$n("mlhs",[].concat(g(a)),b.$collection_map(c,a,d))}),b(s,'$multi_assign',function(a,d,b){var c=this;return c.$n("masgn",[a,b],c.$binary_op_map(a,d,b))}),b(s,'$def_class',function(g,b,d,e,f,c){var a=this;return a.$n("class",[b,e,f],a.$module_definition_map(g,b,d,c))}),b(s,'$def_sclass',function(c,d,e,f,g){var b=this;return b.$n("sclass",[e,f],b.$module_definition_map(c,a,d,g))}),b(s,'$def_module',function(d,b,e,f){var c=this;return c.$n("module",[b,e],c.$module_definition_map(d,b,a,f))}),b(s,'$def_method',function(d,c,e,f,g){var b=this;return b.$check_reserved_for_numparam(b.$value(c),b.$loc(c)),b.$n("def",[b.$value(c).$to_sym(),e,f],b.$definition_map(d,a,c,g))}),b(s,'$def_endless_method',function(e,c,f,g,d){var b=this;return b.$check_reserved_for_numparam(b.$value(c),b.$loc(c)),b.$n("def",[b.$value(c).$to_sym(),f,d],b.$endless_definition_map(e,a,c,g,d))}),b(s,'$def_singleton',function(e,c,f,b,g,d,h){var a=this;return a.$validate_definee(c),a.$check_reserved_for_numparam(a.$value(b),a.$loc(b)),a.$n("defs",[c,a.$value(b).$to_sym(),g,d],a.$definition_map(e,f,b,h))}),b(s,'$def_endless_singleton',function(h,d,f,b,g,e,c){var a=this;return a.$validate_definee(d),a.$check_reserved_for_numparam(a.$value(b),a.$loc(b)),a.$n("defs",[d,a.$value(b).$to_sym(),g,c],a.$endless_definition_map(h,f,b,e,c))}),b(s,'$undef_method',function(d,b){var c=this;return c.$n("undef",[].concat(g(b)),c.$keyword_map(d,a,b,a))}),b(s,'$alias',function(e,b,c){var d=this;return d.$n("alias",[b,c],d.$keyword_map(e,a,[b,c],a))}),b(s,'$args',function(h,b,j,g){var d=this,f=a;return g==null&&(g=!0),c(g)&&(b=d.$check_duplicate_args(b)),d.$validate_no_forward_arg_after_restarg(b),f=d.$collection_map(h,b,j),i(d.$class().$emit_forward_arg())&&e(b.$length(),1)&&e(b['$[]'](0).$type(),"forward_arg")?d.$n("forward_args",[],f):d.$n("args",b,f)},-4),b(s,'$numargs',function(b){var c=this;return c.$n("numargs",[b],a)}),b(s,'$forward_only_args',function(e,f,g){var b=this,d=a;return c(b.$class().$emit_forward_arg())?(d=b.$forward_arg(f),b.$n("args",[d],b.$collection_map(e,[d],g))):b.$n("forward_args",[],b.$collection_map(e,b.$token_map(f),g))}),b(s,'$forward_arg',function(b){var a=this;return a.$n("forward_arg",[],a.$token_map(b))}),b(s,'$arg',function(b){var a=this;return a.$check_reserved_for_numparam(a.$value(b),a.$loc(b)),a.$n("arg",[a.$value(b).$to_sym()],a.$variable_map(b))}),b(s,'$optarg',function(b,d,c){var a=this;return a.$check_reserved_for_numparam(a.$value(b),a.$loc(b)),a.$n("optarg",[a.$value(b).$to_sym(),c],a.$variable_map(b).$with_operator(a.$loc(d)).$with_expression(a.$loc(b).$join(c.$loc().$expression())))}),b(s,'$restarg',function(e,d){var b=this;return d==null&&(d=a),c(d)?(b.$check_reserved_for_numparam(b.$value(d),b.$loc(d)),b.$n("restarg",[b.$value(d).$to_sym()],b.$arg_prefix_map(e,d))):b.$n0("restarg",b.$arg_prefix_map(e))},-2),b(s,'$kwarg',function(b){var a=this;return a.$check_reserved_for_numparam(a.$value(b),a.$loc(b)),a.$n("kwarg",[a.$value(b).$to_sym()],a.$kwarg_map(b))}),b(s,'$kwoptarg',function(b,c){var a=this;return a.$check_reserved_for_numparam(a.$value(b),a.$loc(b)),a.$n("kwoptarg",[a.$value(b).$to_sym(),c],a.$kwarg_map(b,c))}),b(s,'$kwrestarg',function(e,d){var b=this;return d==null&&(d=a),c(d)?(b.$check_reserved_for_numparam(b.$value(d),b.$loc(d)),b.$n("kwrestarg",[b.$value(d).$to_sym()],b.$arg_prefix_map(e,d))):b.$n0("kwrestarg",b.$arg_prefix_map(e))},-2),b(s,'$kwnilarg',function(b,c){var a=this;return a.$n0("kwnilarg",a.$arg_prefix_map(b,c))}),b(s,'$shadowarg',function(b){var a=this;return a.$check_reserved_for_numparam(a.$value(b),a.$loc(b)),a.$n("shadowarg",[a.$value(b).$to_sym()],a.$variable_map(b))}),b(s,'$blockarg',function(f,b){var d=this,e=a;return i(b['$nil?']())&&d.$check_reserved_for_numparam(d.$value(b),d.$loc(b)),e=c(b)?d.$value(b).$to_sym():a,d.$n("blockarg",[e],d.$arg_prefix_map(f,b))}),b(s,'$procarg0',function(b){var f=this;return c(f.$class().$emit_procarg0())?e(b.$type(),"arg")&&c(f.$class().$emit_arg_inside_procarg0())?f.$n("procarg0",[b],d(d(y('Source'),'Map'),'Collection').$new(a,a,b.$location().$expression())):b.$updated("procarg0"):b}),b(s,'$arg_expr',function(a){var b=this;return e(a.$type(),"lvasgn")?a.$updated("arg"):b.$n("arg_expr",[a],a.$loc().$dup())}),b(s,'$restarg_expr',function(f,b){var d=this;return b==null&&(b=a),c(b['$nil?']())?d.$n0("restarg",d.$token_map(f)):e(b.$type(),"lvasgn")?b.$updated("restarg"):d.$n("restarg_expr",[b],b.$loc().$dup())},-2),b(s,'$blockarg_expr',function(d,a){var b=this;return e(a.$type(),"lvasgn")?a.$updated("blockarg"):b.$n("blockarg_expr",[a],a.$loc().$dup())}),b(s,'$objc_kwarg',function(h,i,g){var b=this,e=a,f=a;return e=b.$loc(h),c(i['$nil?']())?(e=e.$resize(j(e.$size(),1)),f=e.$end().$resize(1)):f=b.$loc(i),b.$n("objc_kwarg",[b.$value(h).$to_sym(),b.$value(g).$to_sym()],d(d(y('Source'),'Map'),'ObjcKwarg').$new(e,f,b.$loc(g),e.$join(b.$loc(g))))}),b(s,'$objc_restarg',function(f,b){var d=this;return b==null&&(b=a),c(b['$nil?']())?d.$n0("restarg",d.$arg_prefix_map(f)):e(b.$type(),"arg")?b.$updated("restarg",a,new Map([["location",b.$loc().$with_operator(d.$loc(f))]])):d.$n("objc_restarg",[b],d.$unary_op_map(f,b))},-2),b(s,'$call_type_for_dot',function(a){var b=this;return i(a['$nil?']())&&e(b.$value(a),"anddot")?"csend":"send"}),b(s,'$forwarded_args',function(b){var a=this;return a.$n("forwarded_args",[],a.$token_map(b))}),b(s,'$forwarded_restarg',function(b){var a=this;return a.$n("forwarded_restarg",[],a.$token_map(b))}),b(s,'$forwarded_kwrestarg',function(b){var a=this;return a.$n("forwarded_kwrestarg",[],a.$token_map(b))}),b(s,'$call_method',function(h,i,j,f,d,e){var b=this,k=a;return f==null&&(f=a),d==null&&(d=[]),e==null&&(e=a),k=b.$call_type_for_dot(i),c(b.$class().$emit_kwargs())&&b.$rewrite_hash_args_to_kwargs(d),c(j['$nil?']())?b.$n(k,[h,"call"].concat(g(d)),b.$send_map(h,i,a,f,d,e)):b.$n(k,[h,b.$value(j).$to_sym()].concat(g(d)),b.$send_map(h,i,j,f,d,e))},-4),b(s,'$call_lambda',function(d){var b=this;return c(b.$class().$emit_lambda())?b.$n0("lambda",b.$expr_map(b.$loc(d))):b.$n("send",[a,"lambda"],b.$send_map(a,a,d))}),b(s,'$block',function(f,l,j,r,p){var b,d,h=this,o=a,i=a,s=a,t=a,k=a,m=a,n=a;return e(f.$type(),"yield")&&h.$diagnostic("error","block_given_to_yield",a,f.$loc().$keyword(),[h.$loc(l)]),e(f.$type(),"super")?(b=[].concat(g(f)),d=b.length-1,d=d<0?0:d,o=u(b,0,d),i=b[d]==null?a:b[d],b):(b=[].concat(g(f)),s=b[0]==null?a:b[0],t=b[1]==null?a:b[1],d=b.length-1,d=d<2?2:d,o=u(b,2,d),i=b[d]==null?a:b[d],b),c(i)&&(e(i.$type(),"block_pass")||e(i.$type(),"forwarded_args"))&&(e(h.parser.$version(),33)&&q(f.$type(),"super")||q(h.parser.$version(),33))&&h.$diagnostic("error","block_and_blockarg",a,i.$loc().$expression(),[h.$loc(l)]),e(j.$type(),"numargs")?(k="numblock",j=j.$children()['$[]'](0)):k="block",c(["send","csend","index","super","zsuper","lambda"]['$include?'](f.$type()))?h.$n(k,[f,j,r],h.$block_map(f.$loc().$expression(),l,p)):(b=[].concat(g(f)),m=b[0]==null?a:b[0],b,n=h.$n(k,[m,j,r],h.$block_map(m.$loc().$expression(),l,p)),h.$n(f.$type(),[n],f.$loc().$with_expression(h.$join_exprs(f,n))))}),b(s,'$block_pass',function(c,a){var b=this;return b.$n("block_pass",[a],b.$unary_op_map(c,a))}),b(s,'$objc_varargs',function(c,h){var b,i=this,f=a,e=a,d=a;return b=[].concat(g(c)),f=b[0]==null?a:b[0],e=b[1]==null?a:b[1],b,d=i.$array(a,[e].concat(g(h)),a).$updated("objc_varargs"),c.$updated(a,[f,d],new Map([["location",c.$loc().$with_expression(c.$loc().$expression().$join(d.$loc().$expression()))]]))}),b(s,'$attr_asgn',function(d,e,f){var b=this,g=a,c=a;return g=k(b.$value(f),"=").$to_sym(),c=b.$call_type_for_dot(e),b.$n(c,[d,g],b.$send_map(d,e,f))}),b(s,'$index',function(b,e,d,f){var a=this;return c(a.$class().$emit_kwargs())&&a.$rewrite_hash_args_to_kwargs(d),c(a.$class().$emit_index())?a.$n("index",[b].concat(g(d)),a.$index_map(b,e,f)):a.$n("send",[b,"[]"].concat(g(d)),a.$send_index_map(b,e,f))}),b(s,'$index_asgn',function(b,e,d,f){var a=this;return c(a.$class().$emit_kwargs())&&a.$rewrite_hash_args_to_kwargs(d),c(a.$class().$emit_index())?a.$n("indexasgn",[b].concat(g(d)),a.$index_map(b,e,f)):a.$n("send",[b,"[]="].concat(g(d)),a.$send_index_map(b,e,f))}),b(s,'$binary_op',function(g,i,h){var b=this,d=a,f=a,j=a;if(d=b.$send_binary_op_map(g,i,h),e(b.parser.$version(),18))if(f=b.$value(i),e(f,"!=")?j=b.$n("send",[g,"==",h],d):e(f,"!~")&&(j=b.$n("send",[g,"=~",h],d)),c(["!=","!~"]['$include?'](f)))return b.$n("not",[j],b.$expr_map(d.$expression()));return b.$n("send",[g,b.$value(i).$to_sym(),h],d)}),b(s,'$match_op',function(d,i,e){var b=this,f=a,g=a;return f=b.$send_binary_op_map(d,i,e),c(g=b.$static_regexp_node(d))?(h(g.$names(),'each',[],function d(b){var c=d.$$s==null?this:d.$$s;return c.parser==null&&(c.parser=a),b==null&&(b=a),c.parser.$static_env().$declare(b)},{$$s:b}),b.$n("match_with_lvasgn",[d,e],f)):b.$n("send",[d,"=~",e],f)}),b(s,'$unary_op',function(c,e){var b=this,d=a;switch(b.$value(c).valueOf()){case"+":case"-":d=k(b.$value(c),"@");break;default:d=b.$value(c)}return b.$n("send",[e,d.$to_sym()],b.$send_unary_op_map(c,e))}),b(s,'$not_op',function(i,f,d,g){var b=this,h=a;return f==null&&(f=a),d==null&&(d=a),g==null&&(g=a),e(b.parser.$version(),18)?b.$n("not",[b.$check_condition(d)],b.$unary_op_map(i,d)):c(d['$nil?']())?(h=b.$n0("begin",b.$collection_map(f,a,g)),b.$n("send",[h,"!"],b.$send_unary_op_map(i,h))):b.$n("send",[b.$check_condition(d),"!"],b.$send_map(a,a,i,f,[d],g))},-2),b(s,'$logical_op',function(d,a,e,b){var c=this;return c.$n(d,[a,b],c.$binary_op_map(a,e,b))}),b(s,'$condition',function(e,d,f,c,g,b,h){var a=this;return a.$n("if",[a.$check_condition(d),c,b],a.$condition_map(e,d,f,c,g,b,h))}),b(s,'$condition_mod',function(e,f,h,g){var b=this,d=a;return b.$n("if",[b.$check_condition(g),e,f],b.$keyword_mod_map(c(d=e)?d:f,h,g))}),b(s,'$ternary',function(b,e,c,f,d){var a=this;return a.$n("if",[a.$check_condition(b),c,d],a.$ternary_map(b,e,c,f,d))}),b(s,'$when',function(d,e,f,g){var c=this,b=a;return b=e['$<<'](g),c.$n("when",b,c.$keyword_map(d,f,b,a))}),b(s,'$case',function(i,c,f,h,d,e){var b=this;return b.$n("case",[c].concat(g(f['$<<'](d))),b.$condition_map(i,c,a,a,h,d,e))}),b(s,'$loop',function(h,d,e,f,g,c){var b=this;return b.$n(h,[b.$check_condition(e),g],b.$keyword_map(d,f,a,c))}),b(s,'$loop_mod',function(a,b,f,d){var c=this;return e(b.$type(),"kwbegin")&&(a=""+a+"_post"),c.$n(a,[c.$check_condition(d),b],c.$keyword_mod_map(b,f,d))}),b(s,'$for',function(c,h,d,e,f,b,g){var a=this;return a.$n("for",[h,e,b],a.$for_map(c,d,f,g))}),b(s,'$keyword_cmd',function(f,j,g,b,h){var d=this,i=a;return g==null&&(g=a),b==null&&(b=[]),h==null&&(h=a),e(f,"yield")&&c(m(b.$count(),0))&&(i=b.$last(),e(i.$type(),"block_pass")&&d.$diagnostic("error","block_given_to_yield",a,d.$loc(j),[i.$loc().$expression()])),c(["yield","super"]['$include?'](f))&&c(d.$class().$emit_kwargs())&&d.$rewrite_hash_args_to_kwargs(b),d.$n(f,b,d.$keyword_map(j,g,b,h))},-3),b(s,'$preexe',function(b,c,d,e){var a=this;return a.$n("preexe",[d],a.$keyword_map(b,c,[],e))}),b(s,'$postexe',function(b,c,d,e){var a=this;return a.$n("postexe",[d],a.$keyword_map(b,c,[],e))}),b(s,'$rescue_body',function(g,c,e,d,f,a){var b=this;return b.$n("resbody",[c,d,a],b.$rescue_body_map(g,c,e,d,f,a))}),b(s,'$begin_body',function(b,f,j,l,n,m){var d=this,h=a;return f==null&&(f=[]),j==null&&(j=a),l==null&&(l=a),n==null&&(n=a),m==null&&(m=a),c(f['$any?']())?c(j)?b=d.$n("rescue",[b].concat(g(k(f,[l]))),d.$eh_keyword_map(b,a,f,j,l)):b=d.$n("rescue",[b].concat(g(k(f,[a]))),d.$eh_keyword_map(b,a,f,a,a)):c(j)&&(h=[],i(b['$nil?']())&&(e(b.$type(),"begin")?h=k(h,b.$children()):h.$push(b)),h.$push(d.$n("begin",[l],d.$collection_map(j,[l],a))),b=d.$n("begin",h,d.$collection_map(a,h,a))),c(n)&&(b=d.$n("ensure",[b,m],d.$eh_keyword_map(b,n,[m],a,a))),b},-2),b(s,'$compstmt',function(b){var d=this;return c(b['$none?']())?a:c(b['$one?']())?b.$first():d.$n("begin",b,d.$collection_map(a,b,a))}),b(s,'$begin',function(f,b,g){var d=this;return c(b['$nil?']())?d.$n0("begin",d.$collection_map(f,a,g)):e(b.$type(),"mlhs")||e(b.$type(),"begin")&&c(b.$loc().$begin()['$nil?']())&&c(b.$loc().$end()['$nil?']())?d.$n(b.$type(),b.$children(),d.$collection_map(f,b.$children(),g)):d.$n("begin",[b],d.$collection_map(f,[b],g))}),b(s,'$begin_keyword',function(f,b,g){var d=this;return c(b['$nil?']())?d.$n0("kwbegin",d.$collection_map(f,a,g)):e(b.$type(),"begin")&&c(b.$loc().$begin()['$nil?']())&&c(b.$loc().$end()['$nil?']())?d.$n("kwbegin",b.$children(),d.$collection_map(f,b.$children(),g)):d.$n("kwbegin",[b],d.$collection_map(f,[b],g))}),b(s,'$case_match',function(k,f,j,e,d,h){var b=this;return c(e)&&i(d)&&(d=b.$n("empty_else",a,b.$token_map(e))),b.$n("case_match",[f].concat(g(j['$<<'](d))),b.$condition_map(k,f,a,a,e,d,h))}),b(s,'$in_match',function(a,d,b){var c=this;return c.$n("in_match",[a,b],c.$binary_op_map(a,d,b))}),b(s,'$match_pattern',function(a,d,b){var c=this;return c.$n("match_pattern",[a,b],c.$binary_op_map(a,d,b))}),b(s,'$match_pattern_p',function(a,d,b){var c=this;return c.$n("match_pattern_p",[a,b],c.$binary_op_map(a,d,b))}),b(s,'$in_pattern',function(h,d,e,f,g){var c=this,b=a;return b=[d,e,g],c.$n("in_pattern",b,c.$keyword_map(h,f,b.$compact(),a))}),b(s,'$if_guard',function(c,a){var b=this;return b.$n("if_guard",[a],b.$guard_map(c,a))}),b(s,'$unless_guard',function(c,a){var b=this;return b.$n("unless_guard",[a],b.$guard_map(c,a))}),b(s,'$match_var',function(d){var b=this,c=a,e=a;return c=b.$value(d).$to_sym(),e=b.$loc(d),b.$check_lvar_name(c,e),b.$check_duplicate_pattern_variable(c,e),b.parser.$static_env().$declare(c),b.$n("match_var",[c],b.$variable_map(d))}),b(s,'$match_hash_var',function(g){var b=this,c=a,f=a,e=a;return c=b.$value(g).$to_sym(),f=b.$loc(g),e=f.$adjust(new Map([["end_pos",-1]])),b.$check_lvar_name(c,e),b.$check_duplicate_pattern_variable(c,e),b.parser.$static_env().$declare(c),b.$n("match_var",[c],d(d(y('Source'),'Map'),'Variable').$new(e,f))}),b(s,'$match_hash_var_from_str',function(k,l,i){var j,b=this,e=a,h=a,f=a,n=a,o=a,p=a;switch(c(m(l.$length(),1))&&b.$diagnostic("error","pm_interp_in_var_name",a,b.$loc(k).$join(b.$loc(i))),e=l['$[]'](0),e.$type().valueOf()){case"str":return j=[].concat(g(e)),h=j[0]==null?a:j[0],j,f=e.$loc().$expression(),b.$check_lvar_name(h,f),b.$check_duplicate_pattern_variable(h,f),b.parser.$static_env().$declare(h),c(n=e.$loc().$begin())&&(f=f.$adjust(new Map([["begin_pos",n.$length()]]))),c(o=e.$loc().$end())&&(f=f.$adjust(new Map([["end_pos",o.$length()['$-@']()]]))),p=b.$loc(k).$join(e.$loc().$expression()).$join(b.$loc(i)),b.$n("match_var",[h.$to_sym()],d(d(y('Source'),'Map'),'Variable').$new(f,p));case"begin":return b.$match_hash_var_from_str(k,e.$children(),i);default:return b.$diagnostic("error","pm_interp_in_var_name",a,b.$loc(k).$join(b.$loc(i)))}}),b(s,'$match_rest',function(f,d){var b=this,e=a;return d==null&&(d=a),c(d['$nil?']())?b.$n0("match_rest",b.$unary_op_map(f)):(e=b.$match_var(d),b.$n("match_rest",[e],b.$unary_op_map(f,e)))},-2),b(s,'$hash_pattern',function(d,e,f){var b=this,c=a;return c=b.$check_duplicate_args(e),b.$n("hash_pattern",c,b.$collection_map(d,c,f))}),b(s,'$array_pattern',function(i,f,j){var b=this,d=a,g=a,k=a;return c(f['$nil?']())?b.$n("array_pattern",a,b.$collection_map(i,[],j)):(d=!1,g=h(f,'map',[],function(b){return b==null&&(b=a),e(b.$type(),"match_with_trailing_comma")?(d=!0,b.$children().$first()):(d=!1,b)}),k=c(d)?"array_pattern_with_tail":"array_pattern",b.$n(k,g,b.$collection_map(i,f,j)))}),b(s,'$find_pattern',function(c,a,d){var b=this;return b.$n("find_pattern",a,b.$collection_map(c,a,d))}),b(s,'$match_with_trailing_comma',function(b,c){var a=this;return a.$n("match_with_trailing_comma",[b],a.$expr_map(b.$loc().$expression().$join(a.$loc(c))))}),b(s,'$const_pattern',function(b,e,f,c){var a=this;return a.$n("const_pattern",[b,f],d(d(y('Source'),'Map'),'Collection').$new(a.$loc(e),a.$loc(c),b.$loc().$expression().$join(a.$loc(c))))}),b(s,'$pin',function(c,a){var b=this;return b.$n("pin",[a],b.$send_unary_op_map(c,a))}),b(s,'$match_alt',function(b,f,c){var d=this,e=a;return e=d.$binary_op_map(b,f,c),d.$n("match_alt",[b,c],e)}),b(s,'$match_as',function(b,f,c){var d=this,e=a;return e=d.$binary_op_map(b,f,c),d.$n("match_as",[b,c],e)}),b(s,'$match_nil_pattern',function(b,c){var a=this;return a.$n0("match_nil_pattern",a.$arg_prefix_map(b,c))}),b(s,'$match_pair',function(o,f,l){var d,i,b=this,g=a,j=a,h=a,k=a,m=a;return e(o,"label")?(b.$check_duplicate_pattern_key(f['$[]'](0),f['$[]'](1)),b.$pair_keyword(f,l)):(i=f,d=n(i),g=d[0]==null?a:d[0],j=d[1]==null?a:d[1],h=d[2]==null?a:d[2],i,k=b.$loc(g).$join(b.$loc(h)),c(m=b.$static_string(j))?b.$check_duplicate_pattern_key(m,k):b.$diagnostic("error","pm_interp_in_var_name",a,k),b.$pair_quoted(g,j,h,l))}),b(s,'$match_label',function(j,g){var b,c,h=this,d=a,f=a,i=a;return e(j,"label")?h.$match_hash_var(g):(c=g,b=n(c),d=b[0]==null?a:b[0],f=b[1]==null?a:b[1],i=b[2]==null?a:b[2],c,h.$match_hash_var_from_str(d,f,i))}),s.$private(),b(s,'$check_condition',function(b){var d,f=this,h=a,i=a,j=a,k=a,l=a,m=a;switch(b.$type().valueOf()){case"masgn":return c(x(f.parser.$version(),23))?f.$diagnostic("error","masgn_as_condition",a,b.$loc().$expression()):b;break;case"begin":return e(b.$children().$count(),1)?b.$updated(a,[f.$check_condition(b.$children().$last())]):b;break;case"and":case"or":return d=[].concat(g(b)),h=d[0]==null?a:d[0],i=d[1]==null?a:d[1],d,e(f.parser.$version(),18)?b:b.$updated(b.$type(),[f.$check_condition(h),f.$check_condition(i)]);break;case"irange":case"erange":return d=[].concat(g(b)),h=d[0]==null?a:d[0],i=d[1]==null?a:d[1],d,j=t("irange",k=b.$type())?"iflipflop":t("erange",k)?"eflipflop":a,c(h['$nil?']())||(l=f.$check_condition(h)),c(i['$nil?']())||(m=f.$check_condition(i)),b.$updated(j,[l,m]);case"regexp":return f.$n("match_current_line",[b],f.$expr_map(b.$loc().$expression()));default:return b}}),b(s,'$check_duplicate_args',function(d,b){var e=this;return b==null&&(b=new Map),h(d,'each',[],function f(d){var e=f.$$s==null?this:f.$$s;switch(d==null&&(d=a),d.$type().valueOf()){case"arg":case"optarg":case"restarg":case"blockarg":case"kwarg":case"kwoptarg":case"kwrestarg":case"shadowarg":return e.$check_duplicate_arg(d,b);case"procarg0":return c(d.$children()['$[]'](0)['$is_a?'](y('Symbol')))?e.$check_duplicate_arg(d,b):e.$check_duplicate_args(d.$children(),b);break;case"mlhs":return e.$check_duplicate_args(d.$children(),b);default:return a}},{$$s:e})},-2),b(s,'$check_duplicate_arg',function(i,e){var b,j=this,f=a,d=a,k=a;return e==null&&(e=new Map),b=[].concat(g(i)),f=b[0]==null?a:b[0],b,d=e['$[]'](f),b=[].concat(g(d)),k=b[0]==null?a:b[0],b,c(d['$nil?']())?(b=[f,i],h(e,'[]=',b),b[b.length-1]):c(j['$arg_name_collides?'](f,k))?j.$diagnostic("error","duplicate_argument",a,i.$loc().$name(),[d.$loc().$name()]):a},-2),b(s,'$validate_no_forward_arg_after_restarg',function(d){var e=this,b=a,c=a;return b=a,c=a,h(d,'each',[],function(d){switch(d==null&&(d=a),d.$type().valueOf()){case"restarg":return b=d;case"forward_arg":return c=d;default:return a}}),i(c['$nil?']())&&i(b['$nil?']())?e.$diagnostic("error","forward_arg_after_restarg",a,c.$loc().$expression(),[b.$loc().$expression()]):a}),b(s,'$check_assignment_to_numparam',function(e,h){var b=this,f=a,g=a,d=a;return c(r(b.parser.$version(),27))?a:(f=c(g=c(d=b.parser.$context()['$in_dynamic_block?']())?e['$=~'](/^_([1-9])$/):d)?b.parser.$max_numparam_stack()['$has_numparams?']():g,c(f))?b.$diagnostic("error","cant_assign_to_numparam",new Map([["name",e]]),h):a}),b(s,'$check_reserved_for_numparam',function(b,e){var d=this;return c(r(d.parser.$version(),30))?a:c(b['$=~'](/^_([1-9])$/))?d.$diagnostic("error","reserved_for_numparam",new Map([["name",b]]),e):a}),b(s,'$arg_name_collides?',function(b,e){var g=this,d=a,f=a;switch(g.parser.$version().valueOf()){case 18:return b['$=='](e);case 19:return c(d=b['$!=']("_"))?b['$=='](e):d;break;default:return c(d=c(f=b)?b['$[]'](0)['$!=']("_"):f)?b['$=='](e):d}}),b(s,'$check_lvar_name',function(b,d){var e=this;return c(b['$=~'](/^[[[:lower:]]_][[[:alnum:]]_]*$/))?a:e.$diagnostic("error","lvar_name",new Map([["name",b]]),d)}),b(s,'$check_duplicate_pattern_variable',function(b,e){var d=this;return c(b.$to_s()['$start_with?']("_"))?a:(c(d.parser.$pattern_variables()['$declared?'](b))&&d.$diagnostic("error","duplicate_variable_name",new Map([["name",b.$to_s()]]),e),d.parser.$pattern_variables().$declare(b))}),b(s,'$check_duplicate_pattern_key',function(a,d){var b=this;return c(b.parser.$pattern_hash_keys()['$declared?'](a))&&b.$diagnostic("error","duplicate_pattern_key",new Map([["name",a.$to_s()]]),d),b.parser.$pattern_hash_keys().$declare(a)}),b(s,'$n',function(a,b,c){return d(y('AST'),'Node').$new(a,b,new Map([["location",c]]))}),b(s,'$n0',function(a,b){var c=this;return c.$n(a,[],b)}),b(s,'$join_exprs',function(a,b){return a.$loc().$expression().$join(b.$loc().$expression())}),b(s,'$token_map',function(a){var b=this;return d(y('Source'),'Map').$new(b.$loc(a))}),b(s,'$delimited_string_map',function(c){var e=this,b=a,f=a,g=a;return b=e.$loc(c),f=b.$with(new Map([["end_pos",k(b.$begin_pos(),1)]])),g=b.$with(new Map([["begin_pos",j(b.$end_pos(),1)]])),d(d(y('Source'),'Map'),'Collection').$new(f,g,e.$loc(c))}),b(s,'$prefix_string_map',function(c){var e=this,b=a,f=a;return b=e.$loc(c),f=b.$with(new Map([["end_pos",k(b.$begin_pos(),1)]])),d(d(y('Source'),'Map'),'Collection').$new(f,a,e.$loc(c))}),b(s,'$unquoted_map',function(b){var c=this;return d(d(y('Source'),'Map'),'Collection').$new(a,a,c.$loc(b))}),b(s,'$pair_keyword_map',function(f,g){var h=this,b=a,e=a,c=a;return b=h.$loc(f),e=b.$adjust(new Map([["end_pos",-1]])),c=b.$with(new Map([["begin_pos",j(b.$end_pos(),1)]])),[d(d(y('Source'),'Map'),'Collection').$new(a,a,e),d(d(y('Source'),'Map'),'Operator').$new(c,b.$join(g.$loc().$expression()))]}),b(s,'$pair_quoted_map',function(i,g,h){var c=this,b=a,e=a,f=a;return b=c.$loc(g),e=b.$with(new Map([["begin_pos",j(b.$end_pos(),2)],["end_pos",j(b.$end_pos(),1)]])),f=b.$with(new Map([["begin_pos",j(b.$end_pos(),1)]])),[[c.$value(g),e],d(d(y('Source'),'Map'),'Operator').$new(f,c.$loc(i).$join(h.$loc().$expression()))]}),b(s,'$expr_map',function(a){return d(y('Source'),'Map').$new(a)}),b(s,'$collection_map',function(e,h,f){var b=this,g=a;return c(e['$nil?']())||c(f['$nil?']())?c(h['$any?']())?g=b.$join_exprs(h.$first(),h.$last()):i(e['$nil?']())?g=b.$loc(e):i(f['$nil?']())&&(g=b.$loc(f)):g=b.$loc(e).$join(b.$loc(f)),d(d(y('Source'),'Map'),'Collection').$new(b.$loc(e),b.$loc(f),g)}),b(s,'$string_map',function(e,f,g){var b=this,h=a;return c(e)&&c(b.$value(e)['$start_with?']("<<"))?(c(f['$any?']())?h=b.$join_exprs(f.$first(),f.$last()):h=b.$loc(g).$begin(),d(d(y('Source'),'Map'),'Heredoc').$new(b.$loc(e),h,b.$loc(g))):b.$collection_map(e,f,g)}),b(s,'$regexp_map',function(b,c,e){var a=this;return d(d(y('Source'),'Map'),'Collection').$new(a.$loc(b),a.$loc(c),a.$loc(b).$join(e.$loc().$expression()))}),b(s,'$constant_map',function(g,h,e){var b=this,f=a;return c(g['$nil?']())?f=b.$loc(e):f=g.$loc().$expression().$join(b.$loc(e)),d(d(y('Source'),'Map'),'Constant').$new(b.$loc(h),b.$loc(e),f)}),b(s,'$variable_map',function(a){var b=this;return d(d(y('Source'),'Map'),'Variable').$new(b.$loc(a))}),b(s,'$binary_op_map',function(b,c,e){var a=this;return d(d(y('Source'),'Map'),'Operator').$new(a.$loc(c),a.$join_exprs(b,e))}),b(s,'$unary_op_map',function(e,b){var f=this,g=a;return b==null&&(b=a),c(b['$nil?']())?g=f.$loc(e):g=f.$loc(e).$join(b.$loc().$expression()),d(d(y('Source'),'Map'),'Operator').$new(f.$loc(e),g)},-2),b(s,'$range_map',function(b,h,e){var f=this,g=a;return c(b)&&c(e)?g=f.$join_exprs(b,e):c(b)?g=b.$loc().$expression().$join(f.$loc(h)):c(e)&&(g=f.$loc(h).$join(e.$loc().$expression())),d(d(y('Source'),'Map'),'Operator').$new(f.$loc(h),g)}),b(s,'$arg_prefix_map',function(g,b){var e=this,f=a;return b==null&&(b=a),c(b['$nil?']())?f=e.$loc(g):f=e.$loc(g).$join(e.$loc(b)),d(d(y('Source'),'Map'),'Variable').$new(e.$loc(b),f)},-2),b(s,'$kwarg_map',function(f,b){var g=this,h=a,i=a,e=a;return b==null&&(b=a),h=g.$loc(f),i=h.$adjust(new Map([["end_pos",-1]])),c(b)?e=g.$loc(f).$join(b.$loc().$expression()):e=g.$loc(f),d(d(y('Source'),'Map'),'Variable').$new(i,e)},-2),b(s,'$module_definition_map',function(g,f,h,i){var b=this,e=a;return c(f)&&(e=f.$loc().$expression()),d(d(y('Source'),'Map'),'Definition').$new(b.$loc(g),b.$loc(h),e,b.$loc(i))}),b(s,'$definition_map',function(c,e,f,g){var b=this;return d(d(y('Source'),'Map'),'MethodDefinition').$new(b.$loc(c),b.$loc(e),b.$loc(f),b.$loc(g),a,a)}),b(s,'$endless_definition_map',function(i,e,f,g,h){var b=this,c=a;return c=h.$loc().$expression(),d(d(y('Source'),'Map'),'MethodDefinition').$new(b.$loc(i),b.$loc(e),b.$loc(f),a,b.$loc(g),c)}),b(s,'$send_map',function(k,l,f,j,g,e){var b=this,i=a,h=a;return j==null&&(j=a),g==null&&(g=[]),e==null&&(e=a),c(k)?i=k.$loc().$expression():c(f)&&(i=b.$loc(f)),c(e)?h=b.$loc(e):c(g['$any?']())?h=g.$last().$loc().$expression():c(f)&&(h=b.$loc(f)),d(d(y('Source'),'Map'),'Send').$new(b.$loc(l),b.$loc(f),b.$loc(j),b.$loc(e),i.$join(h))},-4),b(s,'$var_send_map',function(b){return d(d(y('Source'),'Map'),'Send').$new(a,b.$loc().$expression(),a,a,b.$loc().$expression())}),b(s,'$send_binary_op_map',function(c,e,f){var b=this;return d(d(y('Source'),'Map'),'Send').$new(a,b.$loc(e),a,a,b.$join_exprs(c,f))}),b(s,'$send_unary_op_map',function(b,g){var e=this,f=a;return c(g['$nil?']())?f=e.$loc(b):f=e.$loc(b).$join(g.$loc().$expression()),d(d(y('Source'),'Map'),'Send').$new(a,e.$loc(b),a,a,f)}),b(s,'$index_map',function(c,e,b){var a=this;return d(d(y('Source'),'Map'),'Index').$new(a.$loc(e),a.$loc(b),c.$loc().$expression().$join(a.$loc(b)))}),b(s,'$send_index_map',function(e,f,c){var b=this;return d(d(y('Source'),'Map'),'Send').$new(a,b.$loc(f).$join(b.$loc(c)),a,a,e.$loc().$expression().$join(b.$loc(c)))}),b(s,'$block_map',function(c,e,b){var a=this;return d(d(y('Source'),'Map'),'Collection').$new(a.$loc(e),a.$loc(b),c.$join(a.$loc(b)))}),b(s,'$keyword_map',function(h,k,b,g){var e=this,j=a,f=a;return b=c(j=b)?j:[],c(g)?f=e.$loc(g):c(b['$any?']())&&i(b.$last()['$nil?']())?f=b.$last().$loc().$expression():c(b['$any?']())&&c(m(b.$count(),1))?f=b['$[]'](-2).$loc().$expression():f=e.$loc(h),d(d(y('Source'),'Map'),'Keyword').$new(e.$loc(h),e.$loc(k),e.$loc(g),e.$loc(h).$join(f))}),b(s,'$keyword_mod_map',function(c,e,f){var b=this;return d(d(y('Source'),'Map'),'Keyword').$new(b.$loc(e),a,a,b.$join_exprs(c,f))}),b(s,'$condition_map',function(k,l,j,h,i,f,g){var b=this,e=a;return c(g)?e=b.$loc(g):c(f)&&c(f.$loc().$expression())?e=f.$loc().$expression():c(b.$loc(i))?e=b.$loc(i):c(h)&&c(h.$loc().$expression())?e=h.$loc().$expression():c(b.$loc(j))?e=b.$loc(j):e=l.$loc().$expression(),d(d(y('Source'),'Map'),'Condition').$new(b.$loc(k),b.$loc(j),b.$loc(i),b.$loc(g),b.$loc(k).$join(e))}),b(s,'$ternary_map',function(b,c,g,e,f){var a=this;return d(d(y('Source'),'Map'),'Ternary').$new(a.$loc(c),a.$loc(e),a.$join_exprs(b,f))}),b(s,'$for_map',function(b,e,f,c){var a=this;return d(d(y('Source'),'Map'),'For').$new(a.$loc(b),a.$loc(e),a.$loc(f),a.$loc(c),a.$loc(b).$join(a.$loc(c)))}),b(s,'$rescue_body_map',function(g,j,k,i,f,h){var e=this,b=a;return c(h)&&(b=h.$loc().$expression()),c(b['$nil?']())&&c(f)&&(b=e.$loc(f)),c(b['$nil?']())&&c(i)&&(b=i.$loc().$expression()),c(b['$nil?']())&&c(j)&&(b=j.$loc().$expression()),c(b['$nil?']())&&(b=e.$loc(g)),d(d(y('Source'),'Map'),'RescueBody').$new(e.$loc(g),e.$loc(k),e.$loc(f),e.$loc(g).$join(b))}),b(s,'$eh_keyword_map',function(l,g,h,j,k){var b=this,f=a,e=a;return c(l['$nil?']())?c(g['$nil?']())?f=h.$first().$loc().$expression():f=b.$loc(g):f=l.$loc().$expression(),c(j)?c(k['$nil?']())?e=b.$loc(j):e=k.$loc().$expression():i(h.$last()['$nil?']())?e=h.$last().$loc().$expression():e=b.$loc(g),d(d(y('Source'),'Map'),'Condition').$new(b.$loc(g),a,b.$loc(j),a,f.$join(e))}),b(s,'$guard_map',function(e,f){var g=this,b=a,c=a;return b=g.$loc(e),c=f.$loc().$expression(),d(d(y('Source'),'Map'),'Keyword').$new(b,a,a,b.$join(c))}),b(s,'$static_string',function(e){var b,d;try{return b=v('return'),d=this,h(e,'map',[],function e(d){var g=e.$$s==null?this:e.$$s,f=a;switch(d==null&&(d=a),d.$type().valueOf()){case"str":return d.$children()['$[]'](0);case"begin":if(c(f=g.$static_string(d.$children())))return f;b.$throw(a,e.$$is_lambda);break;default:b.$throw(a,e.$$is_lambda)}},{$$s:d,$$ret:b}).$join()}catch(a){if(a===b)return a.$v;throw a}finally{b.is_orphan=!0}}),b(s,'$static_regexp',function(h,e){var f,i=this,b=a,g=a;return l.VERBOSE==null&&(l.VERBOSE=a),b=i.$static_string(h),c(b['$nil?']())?a:(b=c(e.$children()['$include?']("u"))?b.$encode(d(y('Encoding'),'UTF_8')):c(e.$children()['$include?']("e"))?b.$encode(d(y('Encoding'),'EUC_JP')):c(e.$children()['$include?']("s"))?b.$encode(d(y('Encoding'),'WINDOWS_31J')):c(e.$children()['$include?']("n"))?b.$encode(d(y('Encoding'),'BINARY')):b,function(){try{return f=[l.VERBOSE,a],g=f[0],l.VERBOSE=f[1],f,y('Regexp').$new(b,c(e.$children()['$include?']("x"))?d(y('Regexp'),'EXTENDED'):a)}finally{l.VERBOSE=g}}())}),b(s,'$static_regexp_node',function(b){var d,f=this,g=a,i=a;return e(b.$type(),"regexp")?c(p(f.parser.$version(),33))&&c(h(b.$children()['$[]'](o(0,-2,!1)),'any?',[],function(b){return b==null&&(b=a),b.$type()['$!=']("str")}))?a:(d=[b.$children()['$[]'](o(0,-2,!1)),b.$children()['$[]'](-1)],g=d[0],i=d[1],d,f.$static_regexp(g,i)):a}),b(s,'$collapse_string_parts?',function(b){var d=a;return c(d=b['$one?']())?["str","dstr"]['$include?'](b.$first().$type()):d}),b(s,'$value',function(a){return a['$[]'](0)}),b(s,'$string_value',function(b){var d=this;return c(b['$[]'](0)['$valid_encoding?']())||d.$diagnostic("error","invalid_encoding",a,b['$[]'](1)),b['$[]'](0)}),b(s,'$loc',function(b){return c(b)&&c(b['$[]'](0))?b['$[]'](1):a}),b(s,'$diagnostic',function(d,f,g,h,b){var c=this;return b==null&&(b=[]),c.parser.$diagnostics().$process(y('Diagnostic').$new(d,f,g,h,b)),e(d,"error")?c.parser.$send("yyerror"):a},-5),b(s,'$validate_definee',function(b){var c=this;switch(b.$type().valueOf()){case"int":case"str":case"dstr":case"sym":case"dsym":case"regexp":case"array":case"hash":return c.$diagnostic("error","singleton_literal",a,b.$loc().$expression()),!1;default:return!0}}),b(s,'$rewrite_hash_args_to_kwargs',function(b){var d,f=this;return c(b['$any?']())&&c(f['$kwargs?'](b.$last()))?(d=[j(b.$length(),1),b['$[]'](j(b.$length(),1)).$updated("kwargs")],h(b,'[]=',d),d[d.length-1]):c(m(b.$length(),1))&&e(b.$last().$type(),"block_pass")&&c(f['$kwargs?'](b['$[]'](j(b.$length(),2))))?(d=[j(b.$length(),2),b['$[]'](j(b.$length(),2)).$updated("kwargs")],h(b,'[]=',d),d[d.length-1]):a}),b(s,'$kwargs?',function(b){var d=a,e=a;return c(d=c(e=b.$type()['$==']("hash"))?b.$loc().$begin()['$nil?']():e)?b.$loc().$end()['$nil?']():d})}(D('Builders'),null,s)}(s[0],s)},Opal.modules["parser/context"]=function(a){var d=a.module,i=a.klass,e=a.const_set,b=a.def,f=a.send,g=a.to_a,h=a.truthy,c=[],j=a.nil;return a.add_stubs('reset,attr_accessor,in_block,in_lambda'),function(k,l){var m=d(k,'Parser'),c=[m].concat(l);return function(k,l,m){var c=i(k,l,'Context'),d=[c].concat(m),n=a.$r(d);return e(d[0],'FLAGS',["in_defined","in_kwarg","in_argdef","in_def","in_class","in_block","in_lambda","cant_return"]),b(c,'$initialize',function(){var a=this;return a.$reset()}),b(c,'$reset',function(){var a=this;return a.in_defined=!1,a.in_kwarg=!1,a.in_argdef=!1,a.in_def=!1,a.in_class=!1,a.in_block=!1,a.in_lambda=!1,a.cant_return=!1}),f(c,'attr_accessor',g(n('FLAGS'))),b(c,'$in_dynamic_block?',function(){var a=this,b=j;return h(b=a.$in_block())?b:a.$in_lambda()})}(c[0],null,c)}(c[0],c)},Opal.modules["parser/max_numparam_stack"]=function(a){var e=a.module,f=a.klass,g=a.const_set,b=a.def,l=a.truthy,h=a.rb_gt,i=a.ensure_kwargs,j=a.get_kwarg,k=a.send,d=[],c=a.nil;return a.add_stubs('attr_reader,==,size,set,top,>,max,[],last,push,pop,private,[]='),function(m,n){var o=e(m,'Parser'),d=[o].concat(n);return function(n,o,p){var d=f(n,o,'MaxNumparamStack'),e=[d].concat(p),m=a.$r(e),q=d.$$prototype;return q.stack=c,d.$attr_reader("stack"),g(e[0],'ORDINARY_PARAMS',-1),b(d,'$initialize',function(){var a=this;return a.stack=[]}),b(d,'$empty?',function(){var a=this;return a.stack.$size()['$=='](0)}),b(d,'$has_ordinary_params!',function(){var a=this;return a.$set(m('ORDINARY_PARAMS'))}),b(d,'$has_ordinary_params?',function(){var a=this;return a.$top()['$=='](m('ORDINARY_PARAMS'))}),b(d,'$has_numparams?',function(){var a=this,b=c;return l(b=a.$top())?h(a.$top(),0):b}),b(d,'$register',function(b){var a=this;return a.$set([a.$top(),b].$max())}),b(d,'$top',function(){var a=this;return a.stack.$last()['$[]']("value")}),b(d,'$push',function(a){var b,c=this;return a=i(a),b=j(a,"static"),c.stack.$push(new Map([["value",0],["static",b]]))}),b(d,'$pop',function(){var a=this;return a.stack.$pop()['$[]']("value")}),d.$private(),b(d,'$set',function(b){var a,c=this;return a=["value",b],k(c.stack.$last(),'[]=',a),a[a.length-1]})}(d[0],null,d)}(d[0],d)},Opal.modules["parser/current_arg_stack"]=function(a){var d=a.module,e=a.klass,b=a.def,f=a.rb_minus,g=a.send,c=[],h=a.nil;return a.add_stubs('attr_reader,freeze,==,size,<<,[]=,-,length,pop,clear,last'),function(a,c){var i=d(a,'Parser'),j=[i].concat(c);return function(c,d){var a=e(c,d,'CurrentArgStack'),i=a.$$prototype;return i.stack=h,a.$attr_reader("stack"),b(a,'$initialize',function(){var a=this;return a.stack=[],a.$freeze()}),b(a,'$empty?',function(){var a=this;return a.stack.$size()['$=='](0)}),b(a,'$push',function(a){var b=this;return b.stack['$<<'](a)}),b(a,'$set',function(c){var a,b=this;return a=[f(b.stack.$length(),1),c],g(b.stack,'[]=',a),a[a.length-1]}),b(a,'$pop',function(){var a=this;return a.stack.$pop()}),b(a,'$reset',function(){var a=this;return a.stack.$clear()}),b(a,'$top',function(){var a=this;return a.stack.$last()})}(j[0],null)}(c[0],c)},Opal.modules["parser/variables_stack"]=function(b){var d=b.module,e=b.klass,a=b.def,c=[],f=b.nil;return b.add_stubs('push,empty?,<<,new,pop,clear,last,to_sym,include?'),function(g,h){var i=d(g,'Parser'),c=[i].concat(h);return function(d,g,h){var c=e(d,g,'VariablesStack'),i=[c].concat(h),j=b.$r(i),k=c.$$prototype;return k.stack=f,a(c,'$initialize',function(){var a=this;return a.stack=[],a.$push()}),a(c,'$empty?',function(){var a=this;return a.stack['$empty?']()}),a(c,'$push',function(){var a=this;return a.stack['$<<'](j('Set').$new())}),a(c,'$pop',function(){var a=this;return a.stack.$pop()}),a(c,'$reset',function(){var a=this;return a.stack.$clear()}),a(c,'$declare',function(a){var b=this;return b.stack.$last()['$<<'](a.$to_sym())}),a(c,'$declared?',function(a){var b=this;return b.stack.$last()['$include?'](a.$to_sym())})}(c[0],null,c)}(c[0],c)},Opal.modules["parser/base"]=function(b){var n=b.module,o=b.klass,f=b.defs,e=b.send,g=b.gvars,j=b.eqeq,h=b.truthy,c=b.def,m=b.not,k=b.eqeqeq,i=b.to_ary,l=[],a=b.nil,d=b.$$$;return b.add_stubs('default_parser,setup_source_buffer,default_encoding,parse,parse_with_comments,read,new,all_errors_are_fatal=,diagnostics,ignore_warnings=,consumer=,lambda,puts,render,force_encoding,dup,==,name,raw_source=,source=,private_class_method,attr_reader,version,diagnostics=,static_env=,context=,parser=,[],class,reset,source_buffer=,do_parse,comments=,comments,tokens=,!,raise,tokens,private,advance,===,diagnostic,map,process,yyerror,token_to_str'),function(p,q){var r=n(p,'Parser'),l=[r].concat(q),s=b.$r(l);return function(t,q,r){var l=o(t,q,'Base'),s=[l].concat(r),n=b.$r(s),p=l.$$prototype;return p.lexer=p.diagnostics=p.static_env=p.context=p.builder=p.current_arg_stack=p.pattern_variables=p.pattern_hash_keys=a,f(l,'$parse',function(g,b,c){var f=this,d=a,e=a;return b==null&&(b="(string)"),c==null&&(c=1),d=f.$default_parser(),e=f.$setup_source_buffer(b,c,g,d.$default_encoding()),d.$parse(e)},-2),f(l,'$parse_with_comments',function(g,b,c){var f=this,d=a,e=a;return b==null&&(b="(string)"),c==null&&(c=1),d=f.$default_parser(),e=f.$setup_source_buffer(b,c,g,d.$default_encoding()),d.$parse_with_comments(e)},-2),f(l,'$parse_file',function(a){var b=this;return b.$parse(n('File').$read(a),a)}),f(l,'$parse_file_with_comments',function(a){var b=this;return b.$parse_with_comments(n('File').$read(a),a)}),f(l,'$default_parser',function(){var c=this,b=a;return b=c.$new(),b.$diagnostics()['$all_errors_are_fatal='](!0),b.$diagnostics()['$ignore_warnings='](!0),b.$diagnostics()['$consumer='](e(c,'lambda',[],function(b){return g.stderr==null&&(g.stderr=a),b==null&&(b=a),g.stderr.$puts(b.$render())})),b}),f(l,'$setup_source_buffer',function(e,f,c,g){var h=this,b=a;return c=c.$dup().$force_encoding(g),b=d(n('Source'),'Buffer').$new(e,f),j(h.$name(),"Parser::Ruby18")?b['$raw_source='](c):b['$source='](c),b}),l.$private_class_method("setup_source_buffer"),l.$attr_reader("lexer"),l.$attr_reader("diagnostics"),l.$attr_reader("builder"),l.$attr_reader("static_env"),l.$attr_reader("source_buffer"),l.$attr_reader("context"),l.$attr_reader("max_numparam_stack"),l.$attr_reader("current_arg_stack"),l.$attr_reader("pattern_variables"),l.$attr_reader("pattern_hash_keys"),c(l,'$initialize',function(c){var b=this;return c==null&&(c=d(d(n('Parser'),'Builders'),'Default').$new()),b.diagnostics=d(n('Diagnostic'),'Engine').$new(),b.static_env=n('StaticEnvironment').$new(),b.context=n('Context').$new(),b.max_numparam_stack=n('MaxNumparamStack').$new(),b.current_arg_stack=n('CurrentArgStack').$new(),b.pattern_variables=n('VariablesStack').$new(),b.pattern_hash_keys=n('VariablesStack').$new(),b.lexer=n('Lexer').$new(b.$version()),b.lexer['$diagnostics='](b.diagnostics),b.lexer['$static_env='](b.static_env),b.lexer['$context='](b.context),b.builder=c,b.builder['$parser='](b),b.last_token=a,h(d(b.$class(),'Racc_debug_parser'))&&h(n('ENV')['$[]']("RACC_DEBUG"))&&(b.yydebug=!0),b.$reset()},-1),c(l,'$reset',function(){var b=this;return b.source_buffer=a,b.lexer.$reset(),b.static_env.$reset(),b.context.$reset(),b.current_arg_stack.$reset(),b.pattern_variables.$reset(),b.pattern_hash_keys.$reset(),b}),c(l,'$parse',function(d){var c,b=this,f=a;return function(){try{return b.lexer['$source_buffer='](d),b.source_buffer=d,h(f=b.$do_parse())?f:a}finally{b.source_buffer=a,(c=[a],e(b.lexer,'source_buffer=',c),c[c.length-1])}}()}),c(l,'$parse_with_comments',function(d){var b,c=this;return function(){try{return c.lexer['$comments=']([]),[c.$parse(d),c.lexer.$comments()]}finally{b=[a],e(c.lexer,'comments=',b),b[b.length-1]}}()}),c(l,'$tokenize',function(i,g){var c,f=this,h=a;return g==null&&(g=!1),function(){try{f.lexer['$tokens=']([]),f.lexer['$comments=']([]);try{h=f.$parse(i)}catch(a){if(b.rescue(a,[d(n('Parser'),'SyntaxError')]))try{m(g)&&f.$raise()}finally{b.pop_exception(a)}else throw a}return[h,f.lexer.$comments(),f.lexer.$tokens()]}finally{c=[a],e(f.lexer,'tokens=',c),c[c.length-1],(c=[a],e(f.lexer,'comments=',c),c[c.length-1])}}()},-2),l.$private(),c(l,'$next_token',function(){var c=this,b=a;return b=c.lexer.$advance(),c.last_token=b,b}),c(l,'$check_kwarg_name',function(b){var d=this,c=a;return k(/^[a-z_]/,c=b['$[]'](0))?a:k(/^[A-Z]/,c)?d.$diagnostic("error","argument_const",a,b):a}),c(l,'$diagnostic',function(k,m,o,p,d){var b,c,f=this,g=a,h=a,l=a;return d==null&&(d=[]),c=p,b=i(c),g=b[0]==null?a:b[0],h=b[1]==null?a:b[1],c,l=e(d,'map',[],function(c){var b,d,e=a;return c==null&&(c=a),d=c,b=i(d),g=b[0]==null?a:b[0],e=b[1]==null?a:b[1],d,e}),f.diagnostics.$process(n('Diagnostic').$new(k,m,o,h,l)),j(k,"error")?f.$yyerror():a},-5),c(l,'$on_error',function(h,g,l){var b,c,d=this,e=a,j=a,f=a;return e=d.$token_to_str(h),c=g,b=i(c),j=b[0]==null?a:b[0],f=b[1]==null?a:b[1],c,d.diagnostics.$process(n('Diagnostic').$new("error","unexpected_token",new Map([["token",e]]),f))})}(l[0],d(s('Racc'),'Parser'),l)}(l[0],l)},Opal.modules["parser/rewriter"]=function(a){var f=a.module,g=a.klass,b=a.def,k=a.const_set,l=a.slice,h=a.send2,i=a.find_super,j=a.to_a,e=[],d=a.nil,c=a.$$$;return a.add_stubs('new,process,include?,type,remove,wrap,insert_before,insert_after,replace,freeze,join,extend,warn_of_deprecation,class,warned_of_deprecation='),function(m,n){var o=f(m,'Parser'),e=[o].concat(n),p=a.$r(e);return function(n,o,p){var e=g(n,o,'Rewriter'),m=[e].concat(p),f=a.$r(m),q=e.$$prototype;return q.source_rewriter=d,b(e,'$rewrite',function(b,d){var a=this;return a.source_rewriter=c(f('Source'),'Rewriter').$new(b),a.$process(d),a.source_rewriter.$process()}),b(e,'$assignment?',function(a){return["lvasgn","ivasgn","gvasgn","cvasgn","casgn"]['$include?'](a.$type())}),b(e,'$remove',function(a){var b=this;return b.source_rewriter.$remove(a)}),b(e,'$wrap',function(a,b,c){var d=this;return d.source_rewriter.$wrap(a,b,c)}),b(e,'$insert_before',function(a,b){var c=this;return c.source_rewriter.$insert_before(a,b)}),b(e,'$insert_after',function(a,b){var c=this;return c.source_rewriter.$insert_after(a,b)}),b(e,'$replace',function(a,b){var c=this;return c.source_rewriter.$replace(a,b)}),k(m[0],'DEPRECATION_WARNING',["Parser::Rewriter is deprecated.","Please update your code to use Parser::TreeRewriter instead"].$join("\n").$freeze()),e.$extend(f('Deprecation')),b(e,'$initialize',function a(m){var e,g,k=a.$$p||d,b=this;return a.$$p=null,e=l(arguments),g=e,b.$class().$warn_of_deprecation(),c(f('Source'),'Rewriter')['$warned_of_deprecation='](!0),h(b,i(b,'initialize',a,!1,!0),'initialize',j(g),k)},-1)}(e[0],c(c(p('Parser'),'AST'),'Processor'),e)}(e[0],e)},Opal.modules["parser/tree_rewriter"]=function(a){var e=a.module,i=a.klass,f=a.ensure_kwargs,g=a.kwrestargs,b=a.def,d=[],h=a.nil,c=a.$$$;return a.add_stubs('new,process,include?,type,remove,wrap,insert_before,insert_after,replace'),function(j,k){var l=e(j,'Parser'),d=[l].concat(k),m=a.$r(d);return function(e,j,k){var d=i(e,j,'TreeRewriter'),l=[d].concat(k),m=a.$r(l),n=d.$$prototype;return n.source_rewriter=h,b(d,'$rewrite',function(h,i,b){var e,d=this;return b=f(b),e=g(b,{}),d.source_rewriter=c(c(m('Parser'),'Source'),'TreeRewriter').$new(h,a.to_hash(e)),d.$process(i),d.source_rewriter.$process()},-3),b(d,'$assignment?',function(a){return["lvasgn","ivasgn","gvasgn","cvasgn","casgn"]['$include?'](a.$type())}),b(d,'$remove',function(a){var b=this;return b.source_rewriter.$remove(a)}),b(d,'$wrap',function(a,b,c){var d=this;return d.source_rewriter.$wrap(a,b,c)}),b(d,'$insert_before',function(a,b){var c=this;return c.source_rewriter.$insert_before(a,b)}),b(d,'$insert_after',function(a,b){var c=this;return c.source_rewriter.$insert_after(a,b)}),b(d,'$replace',function(a,b){var c=this;return c.source_rewriter.$replace(a,b)})}(d[0],c(c(m('Parser'),'AST'),'Processor'),d)}(d[0],d)},Opal.modules.parser=function(a){var f=a.truthy,c=a.module,g=a.eqeq,b=a.top,e=[],d=a.$r(e),i=a.nil,h=a.$$$;return a.add_stubs('=~,raise,require,=='),f(d('RUBY_VERSION')['$=~'](/^1\.[89]\./))&&(b.$require("./parser.rb/../parser/version"),b.$raise(d('LoadError'),"parser v"+h(d('Parser'),'VERSION')+" cannot run on Ruby "+d('RUBY_VERSION')+".\n"+"Please upgrade to Ruby 2.0.0 or higher, or use an older version of the parser gem.\n")),b.$require("set"),b.$require("racc/parser"),b.$require("ast"),function(e,f){var b=c(e,'Parser'),d=[b].concat(f),h=a.$r(d);return b.$require("./parser.rb/../parser/version"),b.$require("./parser.rb/../parser/messages"),b.$require("./parser.rb/../parser/deprecation"),function(b){var a=c(b,'AST');return a.$require("./parser.rb/../parser/ast/node"),a.$require("./parser.rb/../parser/ast/processor"),a.$require("./parser.rb/../parser/meta")}(d[0]),function(b){var a=c(b,'Source');return a.$require("./parser.rb/../parser/source/buffer"),a.$require("./parser.rb/../parser/source/range"),a.$require("./parser.rb/../parser/source/comment"),a.$require("./parser.rb/../parser/source/comment/associator"),a.$require("./parser.rb/../parser/source/rewriter"),a.$require("./parser.rb/../parser/source/rewriter/action"),a.$require("./parser.rb/../parser/source/tree_rewriter"),a.$require("./parser.rb/../parser/source/tree_rewriter/action"),a.$require("./parser.rb/../parser/source/map"),a.$require("./parser.rb/../parser/source/map/operator"),a.$require("./parser.rb/../parser/source/map/collection"),a.$require("./parser.rb/../parser/source/map/constant"),a.$require("./parser.rb/../parser/source/map/variable"),a.$require("./parser.rb/../parser/source/map/keyword"),a.$require("./parser.rb/../parser/source/map/definition"),a.$require("./parser.rb/../parser/source/map/method_definition"),a.$require("./parser.rb/../parser/source/map/send"),a.$require("./parser.rb/../parser/source/map/index"),a.$require("./parser.rb/../parser/source/map/condition"),a.$require("./parser.rb/../parser/source/map/ternary"),a.$require("./parser.rb/../parser/source/map/for"),a.$require("./parser.rb/../parser/source/map/rescue_body"),a.$require("./parser.rb/../parser/source/map/heredoc"),a.$require("./parser.rb/../parser/source/map/objc_kwarg")}(d[0]),b.$require("./parser.rb/../parser/syntax_error"),b.$require("./parser.rb/../parser/clobbering_error"),b.$require("./parser.rb/../parser/unknown_encoding_in_magic_comment_error"),b.$require("./parser.rb/../parser/diagnostic"),b.$require("./parser.rb/../parser/diagnostic/engine"),b.$require("./parser.rb/../parser/static_environment"),g(h('RUBY_ENGINE'),"truffleruby")?b.$require("./parser.rb/../parser/lexer-F0"):b.$require("./parser.rb/../parser/lexer-F1"),b.$require("./parser.rb/../parser/lexer-strings"),b.$require("./parser.rb/../parser/lexer/literal"),b.$require("./parser.rb/../parser/lexer/stack_state"),b.$require("./parser.rb/../parser/lexer/dedenter"),function(a){var b=c(a,'Builders');return b.$require("./parser.rb/../parser/builders/default")}(d[0]),b.$require("./parser.rb/../parser/context"),b.$require("./parser.rb/../parser/max_numparam_stack"),b.$require("./parser.rb/../parser/current_arg_stack"),b.$require("./parser.rb/../parser/variables_stack"),b.$require("./parser.rb/../parser/base"),b.$require("./parser.rb/../parser/rewriter"),b.$require("./parser.rb/../parser/tree_rewriter")}(e[0],e)},Opal.modules["parser/ruby32"]=function(e){var s=e.module,r=e.klass,j=e.return_val,a=e.def,f=e.truthy,g=e.not,h=e.send,q=e.rb_gt,p=e.thrower,t=e.hash_rehash,k=e.const_set,d=e.to_a,c=e.to_ary,l=e.eqeq,i=e.slice,m=e.top,n=[],b=e.nil,o=e.$$$;return e.add_stubs('require,end_with?,[],!,include?,diagnostic,extend_static,push,cmdarg,cond,unextend,pop,children,in_dynamic_block?,declared?,static_env,=~,expression,loc,has_ordinary_params?,max_numparam_stack,dup,stack,reverse_each,>,declare,register,to_i,make_shareable,compstmt,<<,preexe,nil?,empty?,begin_body,state=,alias,gvar,back_ref,undef_method,condition_mod,loop_mod,rescue_body,postexe,multi_assign,assign,array,op_assign,index,call_method,const_op_assignable,const_fetch,endless_method_name,def_endless_method,local_pop,in_def=,in_def,def_endless_singleton,logical_op,not_op,command_start=,in_kwarg,in_kwarg=,match_pattern,match_pattern_p,local_push,in_argdef=,in_block=,in_block,block,keyword_cmd,multi_lhs,begin,splat,concat,assignable,index_asgn,==,attr_asgn,const_global,const,symbol_internal,range_inclusive,range_exclusive,binary_op,unary_op,match_op,in_defined=,ternary,associate,declared_forward_args?,forwarded_args,block_pass,declared_anonymous_blockarg?,declared_anonymous_restarg?,forwarded_restarg,begin_keyword,condition,loop,case,case_match,for,in_class=,def_class,in_class,def_sclass,def_module,def_method,def_singleton,context,in_lambda,arg,restarg,size,procarg0,args,has_ordinary_params!,set,shadowarg,extend_dynamic,in_lambda=,call_lambda,has_numparams?,numargs,top,any?,when,in_pattern,if_guard,unless_guard,match_with_trailing_comma,array_pattern,find_pattern,hash_pattern,match_as,match_alt,const_pattern,match_rest,match_pair,match_label,match_nil_pattern,accessible,match_var,ident,pin,string_compose,dedent_string,dedent_level,string,character,xstring_compose,regexp_options,regexp_compose,words_compose,word,symbols_compose,string_internal,ivar,cvar,symbol,symbol_compose,respond_to?,negate,unary_num,integer,float,rational,complex,nil,self,true,false,__FILE__,__LINE__,__ENCODING__,nth_ref,declare_forward_args,forward_arg,check_kwarg_name,kwoptarg,kwarg,kwnilarg,kwrestarg,declare_anonymous_kwrestarg,optarg,declare_anonymous_restarg,blockarg,declare_anonymous_blockarg,pair,pair_keyword,pair_label,pair_quoted,kwsplat,declared_anonymous_kwrestarg?,forwarded_kwrestarg,yyerrok'),m.$require("racc/parser.rb"),m.$require("parser/ruby32.rb/../../parser"),function(n,u){var v=s(n,'Parser'),m=[v].concat(u),w=e.$r(m);return function(N,M,L){var m=r(N,M,'Ruby32'),u=[m].concat(L),s=e.$r(u),z=b,A=b,B=b,I=b,D=b,E=b,F=b,G=b,H=b,v=b,w=b,x=b,y=b,C=b,n=m.$$prototype,J,K;return n.static_env=n.lexer=n.max_numparam_stack=n.context=n.current_arg_stack=n.builder=n.pattern_variables=n.pattern_hash_keys=n.last_token=b,a(m,'$version',j(32)),a(m,'$default_encoding',function(){return o(s('Encoding'),'UTF_8')}),a(m,'$endless_method_name',function(a){var c=this;return g(["===","==","!=","<=",">="]['$include?'](a['$[]'](0)))&&f(a['$[]'](0)['$end_with?']("="))?c.$diagnostic("error","endless_setter",b,a):b}),a(m,'$local_push',function(){var a=this;return a.static_env.$extend_static(),a.lexer.$cmdarg().$push(!1),a.lexer.$cond().$push(!1),a.max_numparam_stack.$push(new Map([["static",!0]]))}),a(m,'$local_pop',function(){var a=this;return a.static_env.$unextend(),a.lexer.$cmdarg().$pop(),a.lexer.$cond().$pop(),a.max_numparam_stack.$pop()}),a(m,'$try_declare_numparam',function(i){var a=this,c=b,d=b,e=b;return!!(c=i.$children()['$[]'](0),f(c['$=~'](/^_[1-9]$/))&&g(a.$static_env()['$declared?'](c))&&f(a.context['$in_dynamic_block?']()))&&(d=i.$loc().$expression(),f(a.$max_numparam_stack()['$has_ordinary_params?']())&&a.$diagnostic("error","ordinary_param_defined",b,[b,d]),e=a.$max_numparam_stack().$stack().$dup(),e.$pop(),function(){try{var c=p('break');return h(e,'reverse_each',[],function e(a){var h=e.$$s==null?this:e.$$s,g=b;if(a==null&&(a=b),f(a['$[]']("static")))c.$throw(b,e.$$is_lambda);else return g=q(a['$[]']("value"),0),f(g)?h.$diagnostic("error","numparam_used_in_outer_scope",b,[b,d]):b},{$$s:a})}catch(a){if(a===c)return a.$v;throw a}finally{c.is_orphan=!0}}(),a.$static_env().$declare(c),a.$max_numparam_stack().$register(c['$[]'](1).$to_i()),!0)}),z=e.large_array_unpack("-614,222,223,222,223,234,-116,-614,-614,-614,928,623,-614,-614,-614,228,-614,312,240,664,127,265,227,623,-614,126,-614,-614,-614,222,223,225,699,666,-117,-124,-614,-614,623,-614,-614,-614,-614,-614,623,623,623,-116,-117,-729,700,-123,895,262,-124,928,927,264,263,241,312,-740,836,-626,-119,-121,-614,-614,-614,-614,-614,-614,-614,-614,-614,-614,-614,-614,-614,-614,229,307,-614,-614,-614,663,-614,-614,831,241,-614,1000,-118,-614,-614,241,-614,241,-614,665,-614,-511,-614,-614,311,-614,-614,-614,-614,-614,-123,-614,-615,-614,-119,-107,312,222,223,-615,-615,-615,-116,241,-615,-615,-615,-614,-615,127,-614,-614,-614,-614,126,-614,-615,-614,-615,-615,-615,127,-614,-108,-115,-614,126,311,-615,-615,-121,-615,-615,-615,-615,-615,127,-120,-118,989,-114,126,127,127,127,-116,-117,126,126,126,-116,-117,-124,-110,-112,-120,-122,-124,-615,-615,-615,-615,-615,-615,-615,-615,-615,-615,-615,-615,-615,-615,127,-122,-615,-615,-615,126,-615,-615,999,-109,-615,311,3,-615,-615,-729,-615,928,-615,127,-615,651,-615,-615,126,-615,-615,-615,-615,-615,-322,-615,241,-615,123,-627,-123,-322,-322,-322,-119,-123,-715,-322,-322,-119,-322,-615,-715,-716,-615,-615,-615,-615,-322,-615,228,-615,312,234,241,651,-615,305,136,-615,-322,-322,-110,-322,-322,-322,-322,-322,104,105,-121,241,-716,219,614,-121,-112,-120,-118,653,652,525,-120,-118,104,105,-111,-113,-117,862,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,220,228,-322,-322,-322,-740,690,-322,305,-122,-322,229,307,-322,-122,653,652,649,-322,221,-322,651,-322,-322,-110,-322,-322,-322,-322,-322,238,-322,-720,-322,699,311,-124,603,-112,-720,-720,-720,106,107,-729,-720,-720,-322,-720,127,-322,-322,951,-113,126,-322,-720,-720,106,107,-109,922,-322,224,-110,-122,229,-110,-720,-720,923,-720,-720,-720,-720,-720,-102,-614,-112,-110,241,-112,-111,301,-614,653,652,651,-88,-124,685,651,127,-112,234,864,-123,126,-720,-720,-720,-720,-720,-720,-720,-720,-720,-720,-720,-720,-720,-720,362,757,-720,-720,-720,-358,691,-720,-119,363,-720,502,-358,-720,-109,686,651,-121,-720,1034,-720,-358,-720,-720,651,-720,-720,-720,-720,-720,-614,-720,-720,-720,241,-715,-111,-119,-740,653,652,649,651,653,652,649,238,-720,651,503,-720,-720,-715,-111,-109,-720,803,-109,651,-720,1062,1055,-720,234,432,-120,-720,-720,-720,-109,-358,-720,-720,-720,-121,-720,-111,127,-118,-111,653,652,126,-720,-720,-720,-720,-720,653,652,654,-111,-716,-115,473,-720,-720,1062,-720,-720,-720,-720,-720,-633,-614,-124,653,652,656,651,630,-614,653,652,658,513,-715,878,836,-740,-614,524,653,652,662,-720,-720,-720,-720,-720,-720,-720,-720,-720,-720,-720,-720,-720,-720,-715,526,-720,-720,-720,-615,924,-720,222,223,-720,636,-615,-720,-720,637,-720,-716,-720,127,-720,-615,-720,-720,126,-720,-720,-720,-720,-720,-614,-720,-720,-720,653,652,667,-118,228,-615,-716,-622,-621,282,283,522,-615,-720,-622,-621,-720,-720,-720,-720,523,-720,-623,-720,-626,-322,222,223,-720,-623,-627,-120,-322,-322,-322,527,-615,-322,-322,-322,-620,-322,895,240,630,281,280,-620,-617,-322,561,-322,-322,-322,429,-617,510,509,573,431,430,-322,-322,603,-322,-322,-322,-322,-322,229,-615,-107,-622,-621,-618,-619,636,-108,575,934,959,-618,-619,-116,930,577,636,-623,931,-117,959,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-620,757,-322,-322,-322,-114,925,-322,-617,685,-322,502,241,-322,-322,617,-322,-123,-322,136,-322,241,-322,-322,617,-322,-322,-322,-322,-322,-322,-322,-87,-322,-618,-619,90,-322,-322,-322,952,953,241,-322,-322,617,-322,-322,91,503,-322,-322,-322,-322,-322,-322,-110,-322,92,984,895,1055,-322,686,241,-122,-322,-322,-119,-322,-322,-322,-322,-322,241,1147,1148,1194,494,-624,491,490,489,499,492,588,-624,878,494,589,491,490,489,502,492,-624,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-112,596,-322,-322,-322,497,690,-322,984,895,-322,316,-121,-322,507,506,510,509,-322,241,-322,503,-322,-322,-109,-322,-322,-322,-322,-322,234,-322,-720,-322,-624,234,-118,307,600,-720,-720,-720,606,265,609,-720,-720,-322,-720,241,-322,-322,618,-322,619,-322,-720,-720,577,630,421,488,-322,634,635,-122,643,668,-720,-720,671,-720,-720,-720,-720,-720,672,-293,674,675,494,-625,491,490,489,499,492,956,-625,109,108,679,241,110,683,502,684,-625,-720,-720,-720,-720,-720,-720,-720,-720,-720,-720,-720,-720,-720,-720,307,697,-720,-720,-720,497,691,-720,698,241,-720,702,958,-720,507,506,510,509,-720,705,-720,503,-720,-720,706,-720,-720,-720,-720,-720,499,-720,-720,-720,-625,708,228,710,-387,722,502,-313,228,595,723,727,729,-720,-313,605,-720,-720,593,-720,735,-720,228,-313,523,736,265,488,-720,633,265,-120,7,81,82,83,11,65,631,510,509,71,72,265,503,265,75,-720,73,74,76,35,36,79,80,130,131,132,133,134,84,33,32,115,114,116,117,229,241,23,791,241,-313,229,241,10,53,9,12,119,118,120,111,64,109,108,112,229,110,121,122,228,104,105,49,50,48,228,639,-720,241,-323,-102,806,678,241,-720,641,-323,609,817,-715,822,676,241,-720,45,-323,824,38,827,832,66,67,-323,833,68,837,40,861,865,-323,52,866,-720,-294,265,879,856,857,-323,24,858,121,122,561,102,90,93,94,561,95,97,96,98,891,229,895,913,91,101,916,229,917,-720,241,-323,85,262,92,106,107,264,263,46,47,334,81,82,83,11,65,920,241,929,71,72,946,947,-323,75,948,73,74,76,35,36,79,80,257,961,963,301,969,84,33,32,115,114,116,117,971,1157,23,491,490,489,973,492,10,53,336,12,119,118,120,111,64,109,108,112,575,110,121,122,577,104,105,49,50,48,265,269,270,271,272,282,283,277,278,273,274,-322,258,259,817,241,275,276,-322,45,307,256,338,-716,307,66,67,-322,817,68,265,40,262,895,268,52,264,263,986,260,261,281,280,266,24,267,987,241,241,102,90,93,94,228,95,97,96,98,997,241,1162,-296,91,101,241,279,1008,1012,-293,1160,85,1016,92,106,107,705,-322,46,47,7,81,82,83,11,65,700,1019,1021,71,72,1023,1025,1025,75,241,73,74,76,35,36,79,80,130,131,132,133,134,84,33,32,115,114,116,117,777,241,23,241,229,1053,1056,680,10,53,9,12,119,118,120,111,64,109,108,112,928,110,121,122,971,104,105,49,50,48,265,269,270,271,272,282,283,277,278,273,274,-322,258,259,1068,241,275,276,-322,45,817,1085,38,-716,1087,66,67,-322,1092,68,1093,40,262,1098,268,52,264,263,1099,260,261,281,280,266,24,267,1100,-297,1113,102,90,93,94,228,95,97,96,98,1114,1115,1185,241,91,101,241,279,241,-265,241,641,85,241,92,106,107,241,-322,46,47,334,81,82,83,11,65,928,1122,1123,71,72,241,1127,241,75,1130,73,74,76,35,36,79,80,130,131,132,133,134,84,33,32,115,114,116,117,705,1133,23,1136,229,1138,1140,680,10,53,336,12,119,118,120,111,64,109,108,112,241,110,121,122,-387,104,105,49,50,48,265,269,270,271,272,282,283,277,278,273,274,228,258,259,1152,1163,275,276,1185,45,1164,1025,38,499,1025,66,67,641,1025,68,1183,40,262,502,268,52,264,263,1186,260,261,281,280,266,24,267,1191,1192,697,102,90,93,94,1114,95,97,96,98,1202,1202,705,1204,91,101,1206,279,510,509,1208,1210,85,503,92,106,107,1210,229,46,47,334,81,82,83,11,65,241,1025,-716,71,72,-715,1227,1210,75,1210,73,74,76,35,36,79,80,130,131,132,133,134,84,33,32,115,114,116,117,1210,1210,23,,,,,892,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,269,270,271,272,282,283,277,278,273,274,,258,259,,,275,276,,45,,,38,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,279,,,,,85,,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,921,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,269,270,271,272,282,283,277,278,273,274,,258,259,,,275,276,,45,,,38,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,279,,,,,85,,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,1157,23,491,490,489,,492,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,269,270,271,272,282,283,277,278,273,274,,258,259,,,275,276,,45,,,38,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,279,,,,,85,,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,269,270,271,272,282,283,277,278,273,274,,258,259,,,275,276,,45,,,338,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,241,279,,,,,85,,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,269,270,271,272,282,283,277,278,273,274,,258,259,,,275,276,,45,,,338,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,279,,,,,85,,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,269,270,271,272,282,283,277,278,273,274,,258,259,,,275,276,,45,,,38,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,279,,,,,85,,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,269,270,271,272,282,283,277,278,273,274,,258,259,,,275,276,,45,,,38,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,279,,,,,85,,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,269,270,271,272,282,283,277,278,273,274,,258,259,,,275,276,,45,,,38,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,279,,,,,85,,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,269,270,271,272,282,283,277,278,273,274,,258,259,,,275,276,,45,,,38,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,279,,,,,85,,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,269,270,271,272,282,283,277,278,273,274,,258,259,,,275,276,,45,,,38,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,279,,,,,85,,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,269,270,271,272,282,283,277,278,273,274,,258,259,,,275,276,,45,,,38,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,279,,,,,85,,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,494,23,491,490,489,,492,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,494,,491,490,489,,492,,715,,494,,491,490,489,,492,719,,45,,,38,,,66,67,,,68,494,40,491,490,489,52,492,715,,,,,,,24,,719,715,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,715,,,85,,92,106,107,,719,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,269,270,271,272,282,283,277,278,273,274,,-741,-741,,,275,276,,45,,,38,,,66,67,,265,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,262,,91,101,264,263,,260,261,,85,,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,269,270,271,272,282,283,277,278,273,274,,-741,-741,,,275,276,,45,,,38,,,66,67,,265,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,262,,91,101,264,263,,260,261,,85,,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,269,270,271,272,282,283,277,278,273,274,,-741,-741,,,275,276,,45,,,38,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,494,,491,490,489,85,492,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,715,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,269,270,271,272,282,283,277,278,273,274,,-741,-741,,,275,276,,45,,,38,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,494,,491,490,489,85,492,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,715,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,-741,-741,-741,-741,282,283,,,-741,-741,,,,,,275,276,,45,,,38,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,-741,-741,-741,-741,282,283,,,-741,-741,,,,,,275,276,,45,,,38,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,-741,-741,-741,-741,282,283,,,-741,-741,,,,,,275,276,,45,,,38,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,-741,-741,-741,-741,282,283,,,-741,-741,,,,,,275,276,,45,,,38,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,-741,-741,-741,-741,282,283,,,-741,-741,,,,,,275,276,,45,,,38,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,-741,-741,-741,-741,282,283,,,-741,-741,,,,,,275,276,,45,,,38,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,269,270,271,272,282,283,,,273,274,,,,,,275,276,,45,,,38,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,269,270,271,272,282,283,277,,273,274,,,,,,275,276,,45,,,38,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,,,,,,,,,,,,,,,,275,276,,45,,,38,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,,,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,9,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,,,,,,,,,,,,,,,,275,276,,45,,,38,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,,,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,,,,,,,,,,,,,,,,275,276,,246,,,254,,,66,67,,,68,,,262,,268,52,264,263,,260,261,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,-443,,46,47,,,,-443,-443,-443,,,-443,-443,-443,265,-443,,,,,,,,-443,-443,-443,-443,,,,275,276,,,,-443,-443,,-443,-443,-443,-443,-443,,,,262,,268,,264,263,,260,261,,,,,,,,,,,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,,,-443,-443,-443,,,-443,,307,-443,,,-443,-443,,-443,,-443,,-443,,-443,-443,,-443,-443,-443,-443,-443,-329,-443,-443,-443,,,,-329,-329,-329,,,-329,-329,-329,,-329,-443,265,,-443,-443,,-443,-329,-443,-329,-329,,,,,-443,,275,276,-329,-329,,-329,-329,-329,-329,-329,,,,,,,262,,,,264,263,,260,261,,,,,,,,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,,,-329,-329,-329,,,-329,,316,-329,,,-329,-329,,-329,,-329,,-329,,-329,-329,,-329,-329,-329,-329,-329,,-329,,-329,,,,,,,,,,,,,,-329,,,-329,-329,,-329,,-329,81,82,83,,65,,-329,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,325,,323,,52,,,329,,,,,,251,,,,,102,326,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,325,,323,,52,,,329,,,,,,251,,,,,102,326,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,325,,323,,52,,,329,,,,,,251,,,,,102,326,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,-314,,46,47,,,,-314,-314,-314,,,-314,-314,-314,,-314,,,,,,,,-314,,-314,-314,-314,,,,115,114,116,117,-314,-314,,-314,-314,-314,-314,-314,,,,,119,118,120,,,,,,,,,,,104,105,,,359,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,,,-314,-314,-314,,,-314,,,-314,,,-314,-314,,-314,,-314,,-314,,-314,-314,,-314,-314,-314,-314,-314,,-314,,-314,,102,90,93,94,,95,97,96,98,,,,-314,91,101,-314,-314,-314,-314,,-314,85,-314,92,106,107,,-314,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,45,,,38,,,66,67,,,68,,40,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,325,,,,52,,,329,,,,,,251,,,,,102,326,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,329,,,,,,251,,,,,102,326,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,127,,,,,126,85,,92,106,107,,,46,47,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,9,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,45,,,38,,,66,67,,,68,,40,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,421,85,,92,106,107,,,46,47,81,82,83,,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,45,,,38,,,66,67,,,68,,40,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,437,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,437,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,325,,323,,52,,,329,,,,,,251,,,,,102,326,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,241,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,325,,323,,52,,,329,,,,,,251,,,,,102,326,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,563,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,325,,323,,52,,,329,,,,,,251,,,,,102,326,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,325,,323,,52,,,329,,,,,,251,,,,,102,326,93,94,,95,97,96,98,,,,,91,101,241,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,45,,,38,,,66,67,,,68,,40,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,-275,,46,47,,,,-275,-275,-275,,,-275,-275,-275,,-275,,,,,,,,-275,-275,-275,-275,,,,,,,,,-275,-275,,-275,-275,-275,-275,-275,,,,,,,,,,,,,,,,,,,,,,,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,,,-275,-275,-275,,,-275,,307,-275,,,-275,-275,,-275,,-275,,-275,,-275,-275,,-275,-275,-275,-275,-275,,-275,-275,-275,494,,491,490,489,499,492,,,,,,,-275,,502,-275,-275,-721,-275,,-275,,,,-721,-721,-721,-275,,-721,-721,-721,,-721,,,497,,,,,-721,-721,-721,-721,-721,,510,509,,,,503,-721,-721,,-721,-721,-721,-721,-721,,,,,,,,,,,,,,,,,,,,,,,-721,-721,-721,-721,-721,-721,-721,-721,-721,-721,-721,-721,-721,-721,,,-721,-721,-721,,,-721,,,-721,,,-721,-721,,-721,,-721,,-721,,-721,-721,,-721,-721,-721,-721,-721,,-721,-721,-721,,,,,,,,,,,,,,-721,,,-721,-721,-721,-721,,-721,-722,-721,,,,,-721,-722,-722,-722,,,-722,-722,-722,,-722,,,,,,,,-722,-722,-722,-722,-722,,,,,,,,-722,-722,,-722,-722,-722,-722,-722,,,,,,,,,,,,,,,,,,,,,,,-722,-722,-722,-722,-722,-722,-722,-722,-722,-722,-722,-722,-722,-722,,,-722,-722,-722,,,-722,,,-722,,,-722,-722,,-722,,-722,,-722,,-722,-722,,-722,-722,-722,-722,-722,,-722,-722,-722,,,,,,,,,,,,,,-722,,,-722,-722,-722,-722,,-722,,-722,,81,82,83,-722,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,325,,323,,52,,,329,,,,,,251,,,,,102,326,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,-275,,46,47,,,,-275,-275,-275,,,-275,-275,-275,494,-275,491,490,489,499,492,,,-275,-275,-275,,,,502,,,,,,-275,-275,,-275,-275,-275,-275,-275,,494,,491,490,489,499,492,497,647,,,,,,,502,507,506,510,509,,,,503,,494,,491,490,489,499,492,-275,,,,,497,,-275,502,,,,307,-275,507,506,510,509,,,,503,,,,,,,,,497,488,,,,-275,-275,,,507,506,510,509,,,,503,,,,-275,,,-275,,81,82,83,-275,65,,488,,71,72,-275,,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,800,,323,,52,,,329,,,,,,251,,,,,102,326,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,323,,52,,,329,,,,,,251,,,,,102,326,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,45,,,38,,,66,67,,,68,,40,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,421,85,,92,106,107,,,46,47,81,82,83,,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,325,,323,,52,,,329,,,,,,251,,,,,102,326,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,800,,,,52,,,329,,,,,,251,,,,,102,326,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,329,,,,,,251,,,,,102,326,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,325,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,325,,323,,52,,,329,,,,,,251,,,,,102,326,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,325,,323,,52,,,329,,,,,,251,,,,,102,326,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,45,,,38,,,66,67,,,68,,40,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,870,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,325,,323,,52,,,329,,,,,,251,,,,,102,326,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,45,,,38,,,66,67,,,68,,40,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,800,,323,,52,,,329,,,,,,251,,,,,102,326,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,323,,52,,,329,,,,,,251,,,,,102,326,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,437,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,800,,323,,52,,,329,,,,,,251,,,,,102,326,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,563,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,800,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,323,,52,,,329,,,,,,251,,,,,102,326,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,325,,323,,52,,,329,,,,,,251,,,,,102,326,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,351,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,,,359,,,,,,,,,,,,,,,,,,,,347,,,343,,,66,67,,,68,,342,,,,,,,,,,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,,,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,351,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,,,359,,,,,,,,,,,,,,,,,,,,347,,,254,,,66,67,,,68,,,494,,491,490,489,499,492,,,,,,,,,502,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,361,,497,85,,92,106,107,81,82,83,,65,510,509,,71,72,503,,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,351,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,,,359,,,,,,,,,,,,,,,,,,,,396,,,38,,,66,67,,,68,,40,,,,,,,,,,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,,,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,351,,,119,118,120,401,64,109,108,402,,110,121,122,,104,105,,,359,,,,,,,,,,,,,,,,,408,,,403,,,254,,,66,67,,,68,,,,,,,,,,,,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,,,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,351,,,119,118,120,401,64,109,108,402,,110,121,122,,104,105,,,359,,,,,,,,,,,,,,,,,,,,403,,,254,,,66,67,,,68,,,,,,,,,,,,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,,,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,351,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,,,359,,,,,,,,,,,,,,,,,,,,347,,,254,,,66,67,,,68,,,494,,491,490,489,499,492,,,,,,,,,502,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,591,,497,85,,92,106,107,81,82,83,,65,510,509,,71,72,503,,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,351,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,,,359,,,,,,,,,,,,,,,,,,,,347,,,343,,,66,67,,,68,,,,,,,,,,,,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,,,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,351,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,,,359,,,,,,,,,,,,,,,,,,,,347,,,343,,,66,67,,,68,,,,,,,,,,,,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,,,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,351,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,,,359,,,,,,,,,,,,,,,,,,,,347,,,343,,,66,67,,,68,,,,,,,,,,,,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,,,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,351,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,,,359,,,,,,,,,,,,,,,,,,,,347,,,343,,,66,67,,,68,,,,,,,,,,,,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,,,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,351,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,,,359,,,,,,,,,,,,,,,,,,,,347,,,343,,,66,67,,,68,,,,,,,,,,,,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,,,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,351,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,,,359,,,,,,,,,,,,,,,,,,,,1106,,,254,,,66,67,,,68,,,,,,,,,,,,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,,,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,351,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,,,359,,,,,,,,,,,,,,,,,,,,1144,,,254,,,66,67,,,68,,,,,,,,,,,,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,,,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,351,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,,,359,,,,,,,,,,,,,,,,,,,,1144,,,254,,,66,67,,,68,,,,,,,,,,,,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,186,197,187,210,183,203,193,192,213,214,208,191,190,185,211,215,216,195,184,198,202,204,196,189,,,,205,212,207,206,199,209,194,182,201,200,,,,,,181,188,179,180,176,177,178,139,141,138,,140,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,,,175,102,,,,,,,,,,,,,,101,186,197,187,210,183,203,193,192,213,214,208,191,190,185,211,215,216,195,184,198,202,204,196,189,,,,205,212,207,206,199,209,194,182,201,200,,,,,,181,188,179,180,176,177,178,139,141,,,140,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,,,175,102,,,,,,,,,,,,,,101,186,197,187,210,183,203,193,192,213,214,208,191,190,185,211,215,216,195,184,198,202,204,196,189,,,,205,212,207,206,199,209,194,182,201,200,,,,,,181,188,179,180,176,177,178,139,141,,,140,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,,,175,102,,,,,,,,,,,,,,101,186,197,187,210,183,203,193,192,213,214,208,191,190,185,211,215,216,195,184,198,202,204,196,189,,,,205,212,207,206,199,209,194,182,201,200,,,,,,181,188,179,180,176,177,178,139,141,,,140,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,,,175,102,,,,,,,,,,,,,,101,186,197,187,210,183,203,193,192,213,214,208,191,190,185,211,215,216,195,184,198,202,204,196,189,,,,205,212,207,295,294,296,293,182,201,200,,,,,,181,188,179,180,290,291,292,288,141,109,108,289,,110,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,300,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,,,175,115,114,116,117,,,494,,491,490,489,499,492,,,,119,118,120,777,,502,,780,757,,,,,104,105,,,359,502,,,,,,,,,497,,,,,,,,,,779,510,509,750,,,503,748,,,749,,752,,,,,,,503,,,,,,,778,,,,102,758,93,94,,95,97,96,98,,,,,91,101,115,114,116,117,,,85,,92,106,107,,,765,766,,119,118,120,777,,,,780,757,,,,,104,105,,,359,502,,,,,,,,,,,,,,,,,,,779,,,750,,,,748,,,749,,752,,,,,,,503,,,,,,,778,,,,102,758,93,94,,95,97,96,98,,,,,91,101,115,114,116,117,,,85,,92,106,107,,,765,766,,119,118,120,777,,,,780,,,,,,104,105,,,359,,,,,,,,,,,,,,,,,,,,779,,,750,,,,748,,,749,,752,,,,,,,494,,491,490,489,499,492,778,,,,102,90,93,94,502,95,97,96,98,,,,,91,101,241,115,114,116,117,,85,,92,106,107,497,,765,766,,,119,118,120,777,,510,509,780,,,503,,,104,105,,,359,,,,,,,,,,,,,,,,,,,,779,,,750,,,,748,,,749,,,488,,,,,,,,,,,,,778,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,765,766,186,197,187,210,183,203,193,192,213,214,208,191,190,185,211,215,216,195,184,198,202,204,196,189,,,,205,212,207,206,199,209,194,182,201,200,,,,,,181,188,179,180,176,177,178,139,141,,,140,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,,,175,115,114,116,117,,,,,,494,,491,490,489,499,492,119,118,120,777,,,,780,502,,,,,104,105,,,359,,,,,,,,,,,,,497,,,,,,,779,,,750,510,509,,748,,503,749,,752,,,,,,,,,,,,,,778,,,,102,90,93,94,,95,97,96,98,,,,,91,101,115,114,116,117,488,,85,,92,106,107,,,765,766,,119,118,120,777,,,494,780,491,490,489,499,492,104,105,,,359,,,,502,,,,,,,,,,,,,,,,779,,,750,,,497,748,,,749,,,,,507,506,510,509,,,,503,,,,778,,,,102,90,93,94,,95,97,96,98,,,,,91,101,115,114,116,117,,,85,,92,106,107,,,765,766,,119,118,120,777,,,,780,757,,,,,104,105,,,359,502,,,,,,,,,,,,,,,,,,,779,,,750,,,,748,,,749,,752,,,,,,,503,,,,,,,778,,,,102,758,93,94,,95,97,96,98,,,,,91,101,115,114,116,117,,,85,,92,106,107,,,765,766,,119,118,120,777,,,,780,757,,,,,104,105,,,359,502,,,,,,,,,,,,,,,,,,,779,,,750,,,,748,,,749,,752,,,,,,,503,,,,,,,778,,,,102,758,93,94,,95,97,96,98,,,,,91,101,115,114,116,117,,,85,,92,106,107,,,765,766,,119,118,120,777,,,494,780,491,490,489,499,492,104,105,,,359,,,,502,,,,,,,,,,,,,,,,779,,,750,,,497,748,,,749,,752,,,507,506,510,509,,,,503,,,,778,,,,102,90,93,94,,95,97,96,98,,,,,91,101,115,114,116,117,,,85,,92,106,107,,,765,766,,119,118,120,777,,,494,780,491,490,489,499,492,104,105,,,359,,,,502,,,,,,,,,,,,,,,,779,,,750,,,497,748,,,749,,,,,,,510,509,,,,503,,,,778,,,,102,90,93,94,,95,97,96,98,,,,,91,101,115,114,116,117,,,85,,92,106,107,,,765,766,,119,118,120,777,,,,780,,,,,,104,105,,,359,,,,,,,,,,,,,,,,,,,,779,,,750,,,,748,,,749,,,,,,,,,,,,,,,,778,,,,102,90,93,94,,95,97,96,98,,,,,91,101,115,114,116,117,,,85,,92,106,107,,,765,766,,119,118,120,777,,,,780,757,,,,,104,105,,,359,502,,,,,,,,,,,,,,,,,,,779,,,750,,,,748,,,749,,752,,,,,,,503,,,,,,,778,,,,102,758,93,94,,95,97,96,98,,,,,91,101,115,114,116,117,,,85,,92,106,107,,,765,766,,119,118,120,777,,,,780,,,,,,104,105,,,359,,,,,,,,,,,,,,,,,,,,779,,,750,,,,748,,,749,,,,,,,,,,,,,,,,778,,,,102,90,93,94,,95,97,96,98,,,,,91,101,115,114,116,117,,,85,,92,106,107,,,765,766,,119,118,120,777,,,,780,,,,,,104,105,,,359,,,,,,,,,,,,,,,,,,,,779,,,750,,,,748,,,749,,,,,,,,,,,,,,,,778,,,,102,90,93,94,,95,97,96,98,,,,,91,101,115,114,116,117,,,85,,92,106,107,,,765,766,,119,118,120,777,,,,780,,,,,,104,105,,,359,,,,,,,,,,,,,,,,,,,,779,,,750,,,,748,,,749,,752,,,,,,,,,,,,,,778,,,,102,90,93,94,,95,97,96,98,,,,,91,101,115,114,116,117,,,85,,92,106,107,,,765,766,,119,118,120,777,,,,780,,,,,,104,105,,,359,,,,,,,,115,114,116,117,,,,,,,,,779,,,750,119,118,120,748,,,749,,,,,,,104,105,,,359,,,,,778,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,765,766,494,,491,490,489,499,492,,,,,102,90,93,94,502,95,97,96,98,,,,,91,101,115,114,116,117,,,85,,92,106,107,497,,,,,119,118,120,,507,506,510,509,,,,503,,104,105,,,359,115,114,116,117,,,,,,,,,,,,,119,118,120,241,,,,,,,,,,104,105,,,359,,,,,,,,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,494,,491,490,489,499,492,,494,,491,490,489,499,492,502,,,,,,,,502,,494,,491,490,489,499,492,,,,,,497,,,502,,,,,497,507,506,510,509,,,,503,507,506,510,509,,,,503,497,,,,,,,,,507,506,510,509,,,494,503,491,490,489,499,492,494,,491,490,489,499,492,,502,488,,,,,,502,,488,494,,491,490,489,499,492,,,,,,497,,,502,488,,,497,,,,510,509,,,,503,,510,509,,,,503,,497,,,,,,,,,,,510,509,,,,503,,,,,,,,,,,,459,463,,488,460,,,,,,488,,170,171,,167,149,150,151,158,155,157,,,152,153,,,488,172,173,159,160,,,,,,307,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,467,471,175,,466,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,307,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,559,463,175,,560,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,730,463,175,,731,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,307,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,732,471,175,,733,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,307,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,810,463,175,,811,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,307,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,813,471,175,,814,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,307,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,730,463,175,,731,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,307,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,732,471,175,,733,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,307,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,840,463,175,,841,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,307,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,842,471,175,,843,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,307,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,845,471,175,,846,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,307,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,559,463,175,,560,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,307,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,872,463,175,,873,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,307,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,875,471,175,,874,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,307,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,1197,463,175,,1198,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,307,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,1199,471,175,,1200,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,307,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,1214,471,175,,1213,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,307,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,,,175"),A=e.large_array_unpack("111,518,518,556,556,19,393,111,111,111,738,385,111,111,111,18,111,31,23,417,5,534,18,386,111,5,111,111,111,980,980,18,478,418,394,397,111,111,838,111,111,111,111,111,1015,1086,1088,1103,1104,930,478,634,1216,534,1107,935,738,534,534,23,69,19,1216,244,840,841,111,111,111,111,111,111,111,111,111,111,111,111,111,111,18,31,111,111,111,417,111,111,625,930,111,853,991,111,111,518,111,556,111,418,111,935,111,111,31,111,111,111,111,111,1163,111,112,111,1197,393,788,644,644,112,112,112,244,980,112,112,112,111,112,385,111,111,111,111,385,111,112,111,112,112,112,386,111,394,397,111,386,69,112,112,1198,112,112,112,112,112,838,1199,1218,838,634,838,1015,1086,1088,1103,1104,1015,1086,1088,1103,1104,1107,840,841,842,843,1107,112,112,112,112,112,112,112,112,112,112,112,112,112,112,625,1200,112,112,112,625,112,112,853,991,112,788,1,112,112,749,112,1057,112,644,112,659,112,112,644,112,112,112,112,112,466,112,749,112,3,245,1163,466,466,466,1197,1163,1199,466,466,1197,466,112,842,843,112,112,112,112,466,112,29,112,352,20,1057,412,112,29,9,112,466,466,810,466,466,466,466,466,48,48,1198,377,1200,12,377,1198,811,1199,1218,659,659,247,1199,1218,359,359,842,843,245,659,466,466,466,466,466,466,466,466,466,466,466,466,466,466,14,287,466,466,466,20,466,466,287,1200,466,29,352,466,1200,412,412,412,466,15,466,661,466,466,810,466,466,466,466,466,444,466,467,466,759,352,247,524,811,467,467,467,48,48,931,467,467,466,467,332,466,466,759,466,332,466,467,467,359,359,978,730,466,17,810,466,287,810,467,467,731,467,467,467,467,467,805,288,811,810,931,811,813,27,288,661,661,579,805,444,872,950,390,811,252,661,524,390,467,467,467,467,467,467,467,467,467,467,467,467,467,467,42,942,467,467,467,54,467,467,730,45,467,942,54,467,978,873,1125,731,467,926,467,54,467,467,413,467,467,467,467,467,288,467,467,467,53,813,813,872,252,579,579,579,414,950,950,950,21,467,415,942,467,467,401,467,978,467,579,978,416,732,950,942,467,253,217,467,732,732,732,978,54,732,732,732,873,732,813,512,926,813,1125,1125,512,732,732,732,732,732,413,413,413,813,402,21,230,732,732,1125,732,732,732,732,732,232,401,21,414,414,414,419,628,401,415,415,415,236,401,1005,628,253,401,246,416,416,416,732,732,732,732,732,732,732,732,732,732,732,732,732,732,401,248,732,732,732,402,732,732,16,16,732,403,402,732,732,403,732,402,732,995,732,402,732,732,995,732,732,732,732,732,401,732,732,732,419,419,419,1005,243,289,402,290,291,51,51,243,289,732,290,291,732,732,732,732,243,732,292,732,43,733,384,384,732,292,44,732,733,733,733,249,402,733,733,733,293,733,1091,255,1091,51,51,293,294,733,306,733,733,733,138,294,705,705,320,138,138,733,733,363,733,733,733,733,733,243,289,43,290,291,295,296,779,44,321,747,779,295,296,43,747,324,934,292,747,44,934,733,733,733,733,733,733,733,733,733,733,733,733,733,733,293,948,733,733,733,363,733,733,294,459,733,948,378,733,733,378,733,363,733,336,733,381,733,733,381,733,733,733,733,733,874,733,337,733,295,296,88,874,874,874,762,762,825,874,874,825,874,733,88,948,733,733,733,733,874,733,459,733,88,826,826,948,733,460,339,733,874,874,459,874,874,874,874,874,1155,1089,1089,1155,234,344,234,234,234,234,234,340,344,681,719,341,719,719,719,234,719,344,874,874,874,874,874,874,874,874,874,874,874,874,874,874,460,347,874,874,874,234,874,874,1187,1187,874,350,460,874,234,234,234,234,874,351,874,234,874,874,681,874,874,874,874,874,353,874,875,874,344,354,681,358,360,875,875,875,367,369,372,875,875,874,875,375,874,874,379,874,380,874,875,875,382,391,392,234,874,396,398,874,407,427,875,875,433,875,875,875,875,875,435,436,438,441,235,345,235,235,235,235,235,778,345,778,778,445,455,778,457,235,458,345,875,875,875,875,875,875,875,875,875,875,875,875,875,875,468,474,875,875,875,235,875,875,475,479,875,480,778,875,235,235,235,235,875,481,875,235,875,875,484,875,875,875,875,875,702,875,875,875,345,485,346,486,496,508,702,348,364,346,511,514,520,875,348,364,875,875,346,875,528,875,395,348,364,529,536,235,875,395,537,875,2,2,2,2,2,2,395,702,702,2,2,538,702,539,2,845,2,2,2,2,2,2,2,8,8,8,8,8,2,2,2,2,2,2,2,346,564,2,565,566,348,364,570,2,2,2,2,2,2,2,2,2,2,2,2,395,2,2,2,405,2,2,2,2,2,443,405,845,586,596,587,590,443,592,845,405,596,597,601,845,610,443,611,845,2,596,612,2,622,626,2,2,637,627,2,629,2,656,664,637,2,666,845,673,535,682,652,652,637,2,652,652,652,687,2,2,2,2,692,2,2,2,2,694,405,696,712,2,2,717,443,718,845,720,596,2,535,2,2,2,535,535,2,2,38,38,38,38,38,38,725,734,743,38,38,751,752,637,38,753,38,38,38,38,38,38,38,25,782,785,787,793,38,38,38,38,38,38,38,794,1098,38,1098,1098,1098,795,1098,38,38,38,38,38,38,38,38,38,38,38,38,797,38,38,38,799,38,38,38,38,38,25,25,25,25,25,25,25,25,25,25,25,814,25,25,807,809,25,25,814,38,812,25,38,814,815,38,38,814,816,38,819,38,25,828,25,38,25,25,834,25,25,25,25,25,38,25,835,839,848,38,38,38,38,1105,38,38,38,38,852,854,1105,869,38,38,871,25,880,893,896,1105,38,897,38,38,38,900,814,38,38,136,136,136,136,136,136,902,905,906,136,136,908,909,911,136,915,136,136,136,136,136,136,136,335,335,335,335,335,136,136,136,136,136,136,136,928,936,136,937,1105,941,944,448,136,136,136,136,136,136,136,136,136,136,136,136,949,136,136,136,964,136,136,136,136,136,448,448,448,448,448,448,448,448,448,448,448,846,448,448,967,968,448,448,846,136,977,982,136,846,985,136,136,846,992,136,994,136,448,1001,448,136,448,448,1002,448,448,448,448,448,136,448,1003,1004,1030,136,136,136,136,1143,136,136,136,136,1031,1036,1143,1041,136,136,1042,448,1043,448,1044,1143,136,1045,136,136,136,1046,846,136,136,219,219,219,219,219,219,1050,1051,1052,219,219,1054,1058,1065,219,1070,219,219,219,219,219,219,219,374,374,374,374,374,219,219,219,219,219,219,219,1071,1073,219,1074,1143,1075,1077,454,219,219,219,219,219,219,219,219,219,219,219,219,1078,219,219,219,1079,219,219,219,219,219,454,454,454,454,454,454,454,454,454,454,454,1184,454,454,1095,1106,454,454,1184,219,1109,1110,219,1130,1111,219,219,1184,1112,219,1141,219,454,1130,454,219,454,454,1144,454,454,454,454,454,219,454,1153,1154,1159,219,219,219,219,1169,219,219,219,219,1170,1171,1174,1177,219,219,1178,454,1130,1130,1179,1180,219,1130,219,219,219,1182,1184,219,219,231,231,231,231,231,231,1196,1201,1213,231,231,1214,1220,1221,231,1222,231,231,231,231,231,231,231,584,584,584,584,584,231,231,231,231,231,231,231,1223,1232,231,,,,,695,231,231,231,231,231,231,231,231,231,231,231,231,,231,231,231,,231,231,231,231,231,695,695,695,695,695,695,695,695,695,695,695,,695,695,,,695,695,,231,,,231,,,231,231,,,231,,231,695,,695,231,695,695,,695,695,695,695,695,231,695,,,,231,231,231,231,,231,231,231,231,,,,,231,231,,695,,,,,231,,231,231,231,,,231,231,237,237,237,237,237,237,,,,237,237,,,,237,,237,237,237,237,237,237,237,,,,,,237,237,237,237,237,237,237,,,237,,,,,726,237,237,237,237,237,237,237,237,237,237,237,237,,237,237,237,,237,237,237,237,237,726,726,726,726,726,726,726,726,726,726,726,,726,726,,,726,726,,237,,,237,,,237,237,,,237,,237,726,,726,237,726,726,,726,726,726,726,726,237,726,,,,237,237,237,237,,237,237,237,237,,,,,237,237,,726,,,,,237,,237,237,237,,,237,237,254,254,254,254,254,254,,,,254,254,,,,254,,254,254,254,254,254,254,254,,,,,,254,254,254,254,254,254,254,,1194,254,1194,1194,1194,,1194,254,254,254,254,254,254,254,254,254,254,254,254,,254,254,254,,254,254,254,254,254,318,318,318,318,318,318,318,318,318,318,318,,318,318,,,318,318,,254,,,254,,,254,254,,,254,,254,318,,318,254,318,318,,318,318,318,318,318,254,318,,,,254,254,254,254,,254,254,254,254,,,,,254,254,,318,,,,,254,,254,254,254,,,254,254,338,338,338,338,338,338,,,,338,338,,,,338,,338,338,338,338,338,338,338,,,,,,338,338,338,338,338,338,338,,,338,,,,,,338,338,338,338,338,338,338,338,338,338,338,338,,338,338,338,,338,338,338,338,338,553,553,553,553,553,553,553,553,553,553,553,,553,553,,,553,553,,338,,,338,,,338,338,,,338,,338,553,,553,338,553,553,,553,553,553,553,553,338,553,,,,338,338,338,338,,338,338,338,338,,,,,338,338,553,553,,,,,338,,338,338,338,,,338,338,343,343,343,343,343,343,,,,343,343,,,,343,,343,343,343,343,343,343,343,,,,,,343,343,343,343,343,343,343,,,343,,,,,,343,343,343,343,343,343,343,343,343,343,343,343,,343,343,343,,343,343,343,343,343,820,820,820,820,820,820,820,820,820,820,820,,820,820,,,820,820,,343,,,343,,,343,343,,,343,,343,820,,820,343,820,820,,820,820,820,820,820,343,820,,,,343,343,343,343,,343,343,343,343,,,,,343,343,,820,,,,,343,,343,343,343,,,343,343,373,373,373,373,373,373,,,,373,373,,,,373,,373,373,373,373,373,373,373,,,,,,373,373,373,373,373,373,373,,,373,,,,,,373,373,373,373,373,373,373,373,373,373,373,373,,373,373,373,,373,373,373,373,373,877,877,877,877,877,877,877,877,877,877,877,,877,877,,,877,877,,373,,,373,,,373,373,,,373,,373,877,,877,373,877,877,,877,877,877,877,877,373,877,,,,373,373,373,373,,373,373,373,373,,,,,373,373,,877,,,,,373,,373,373,373,,,373,373,388,388,388,388,388,388,,,,388,388,,,,388,,388,388,388,388,388,388,388,,,,,,388,388,388,388,388,388,388,,,388,,,,,,388,388,388,388,388,388,388,388,388,388,388,388,,388,388,388,,388,388,388,388,388,1009,1009,1009,1009,1009,1009,1009,1009,1009,1009,1009,,1009,1009,,,1009,1009,,388,,,388,,,388,388,,,388,,388,1009,,1009,388,1009,1009,,1009,1009,1009,1009,1009,388,1009,,,,388,388,388,388,,388,388,388,388,,,,,388,388,,1009,,,,,388,,388,388,388,,,388,388,389,389,389,389,389,389,,,,389,389,,,,389,,389,389,389,389,389,389,389,,,,,,389,389,389,389,389,389,389,,,389,,,,,,389,389,389,389,389,389,389,389,389,389,389,389,,389,389,389,,389,389,389,389,389,1010,1010,1010,1010,1010,1010,1010,1010,1010,1010,1010,,1010,1010,,,1010,1010,,389,,,389,,,389,389,,,389,,389,1010,,1010,389,1010,1010,,1010,1010,1010,1010,1010,389,1010,,,,389,389,389,389,,389,389,389,389,,,,,389,389,,1010,,,,,389,,389,389,389,,,389,389,621,621,621,621,621,621,,,,621,621,,,,621,,621,621,621,621,621,621,621,,,,,,621,621,621,621,621,621,621,,,621,,,,,,621,621,621,621,621,621,621,621,621,621,621,621,,621,621,621,,621,621,621,621,621,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,,1032,1032,,,1032,1032,,621,,,621,,,621,621,,,621,,621,1032,,1032,621,1032,1032,,1032,1032,1032,1032,1032,621,1032,,,,621,621,621,621,,621,621,621,621,,,,,621,621,,1032,,,,,621,,621,621,621,,,621,621,624,624,624,624,624,624,,,,624,624,,,,624,,624,624,624,624,624,624,624,,,,,,624,624,624,624,624,624,624,,,624,,,,,,624,624,624,624,624,624,624,624,624,624,624,624,,624,624,624,,624,624,624,624,624,1033,1033,1033,1033,1033,1033,1033,1033,1033,1033,1033,,1033,1033,,,1033,1033,,624,,,624,,,624,624,,,624,,624,1033,,1033,624,1033,1033,,1033,1033,1033,1033,1033,624,1033,,,,624,624,624,624,,624,624,624,624,,,,,624,624,,1033,,,,,624,,624,624,624,,,624,624,645,645,645,645,645,645,,,,645,645,,,,645,,645,645,645,645,645,645,645,,,,,,645,645,645,645,645,645,645,,,645,,,,,,645,645,645,645,645,645,645,645,645,645,645,645,,645,645,645,,645,645,645,645,645,1066,1066,1066,1066,1066,1066,1066,1066,1066,1066,1066,,1066,1066,,,1066,1066,,645,,,645,,,645,645,,,645,,645,1066,,1066,645,1066,1066,,1066,1066,1066,1066,1066,645,1066,,,,645,645,645,645,,645,645,645,645,,,,,645,645,,1066,,,,,645,,645,645,645,,,645,645,844,844,844,844,844,844,,,,844,844,,,,844,,844,844,844,844,844,844,844,,,,,,844,844,844,844,844,844,844,,497,844,497,497,497,,497,844,844,844,844,844,844,844,844,844,844,844,844,,844,844,844,,844,844,844,844,844,715,,715,715,715,,715,,497,,917,,917,917,917,,917,497,,844,,,844,,,844,844,,,844,916,844,916,916,916,844,916,715,,,,,,,844,,715,917,,844,844,844,844,,844,844,844,844,,,,,844,844,,,,916,,,844,,844,844,844,,916,844,844,849,849,849,849,849,849,,,,849,849,,,,849,,849,849,849,849,849,849,849,,,,,,849,849,849,849,849,849,849,,,849,,,,,,849,849,849,849,849,849,849,849,849,849,849,849,,849,849,849,,849,849,849,849,849,365,365,365,365,365,365,365,365,365,365,365,,365,365,,,365,365,,849,,,849,,,849,849,,549,849,,849,365,,365,849,365,365,,365,365,365,365,365,849,365,,,,849,849,849,849,,849,849,849,849,,,549,,849,849,549,549,,549,549,,849,,849,849,849,,,849,849,860,860,860,860,860,860,,,,860,860,,,,860,,860,860,860,860,860,860,860,,,,,,860,860,860,860,860,860,860,,,860,,,,,,860,860,860,860,860,860,860,860,860,860,860,860,,860,860,860,,860,860,860,860,860,366,366,366,366,366,366,366,366,366,366,366,,366,366,,,366,366,,860,,,860,,,860,860,,550,860,,860,366,,366,860,366,366,,366,366,366,366,366,860,366,,,,860,860,860,860,,860,860,860,860,,,550,,860,860,550,550,,550,550,,860,,860,860,860,,,860,860,895,895,895,895,895,895,,,,895,895,,,,895,,895,895,895,895,895,895,895,,,,,,895,895,895,895,895,895,895,,,895,,,,,,895,895,895,895,895,895,895,895,895,895,895,895,,895,895,895,,895,895,895,895,895,532,532,532,532,532,532,532,532,532,532,532,,532,532,,,532,532,,895,,,895,,,895,895,,,895,,895,532,,532,895,532,532,,532,532,532,532,532,895,532,,,,895,895,895,895,,895,895,895,895,,,,,895,895,,1113,,1113,1113,1113,895,1113,895,895,895,,,895,895,972,972,972,972,972,972,,,,972,972,,,,972,,972,972,972,972,972,972,972,1113,,,,,972,972,972,972,972,972,972,,,972,,,,,,972,972,972,972,972,972,972,972,972,972,972,972,,972,972,972,,972,972,972,972,972,533,533,533,533,533,533,533,533,533,533,533,,533,533,,,533,533,,972,,,972,,,972,972,,,972,,972,533,,533,972,533,533,,533,533,533,533,533,972,533,,,,972,972,972,972,,972,972,972,972,,,,,972,972,,1114,,1114,1114,1114,972,1114,972,972,972,,,972,972,990,990,990,990,990,990,,,,990,990,,,,990,,990,990,990,990,990,990,990,1114,,,,,990,990,990,990,990,990,990,,,990,,,,,,990,990,990,990,990,990,990,990,990,990,990,990,,990,990,990,,990,990,990,990,990,543,543,543,543,543,543,543,,,543,543,,,,,,543,543,,990,,,990,,,990,990,,,990,,990,543,,543,990,543,543,,543,543,543,543,543,990,543,,,,990,990,990,990,,990,990,990,990,,,,,990,990,,,,,,,990,,990,990,990,,,990,990,996,996,996,996,996,996,,,,996,996,,,,996,,996,996,996,996,996,996,996,,,,,,996,996,996,996,996,996,996,,,996,,,,,,996,996,996,996,996,996,996,996,996,996,996,996,,996,996,996,,996,996,996,996,996,544,544,544,544,544,544,544,,,544,544,,,,,,544,544,,996,,,996,,,996,996,,,996,,996,544,,544,996,544,544,,544,544,544,544,544,996,544,,,,996,996,996,996,,996,996,996,996,,,,,996,996,,,,,,,996,,996,996,996,,,996,996,1012,1012,1012,1012,1012,1012,,,,1012,1012,,,,1012,,1012,1012,1012,1012,1012,1012,1012,,,,,,1012,1012,1012,1012,1012,1012,1012,,,1012,,,,,,1012,1012,1012,1012,1012,1012,1012,1012,1012,1012,1012,1012,,1012,1012,1012,,1012,1012,1012,1012,1012,545,545,545,545,545,545,545,,,545,545,,,,,,545,545,,1012,,,1012,,,1012,1012,,,1012,,1012,545,,545,1012,545,545,,545,545,545,545,545,1012,545,,,,1012,1012,1012,1012,,1012,1012,1012,1012,,,,,1012,1012,,,,,,,1012,,1012,1012,1012,,,1012,1012,1067,1067,1067,1067,1067,1067,,,,1067,1067,,,,1067,,1067,1067,1067,1067,1067,1067,1067,,,,,,1067,1067,1067,1067,1067,1067,1067,,,1067,,,,,,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067,,1067,1067,1067,,1067,1067,1067,1067,1067,546,546,546,546,546,546,546,,,546,546,,,,,,546,546,,1067,,,1067,,,1067,1067,,,1067,,1067,546,,546,1067,546,546,,546,546,546,546,546,1067,546,,,,1067,1067,1067,1067,,1067,1067,1067,1067,,,,,1067,1067,,,,,,,1067,,1067,1067,1067,,,1067,1067,1096,1096,1096,1096,1096,1096,,,,1096,1096,,,,1096,,1096,1096,1096,1096,1096,1096,1096,,,,,,1096,1096,1096,1096,1096,1096,1096,,,1096,,,,,,1096,1096,1096,1096,1096,1096,1096,1096,1096,1096,1096,1096,,1096,1096,1096,,1096,1096,1096,1096,1096,547,547,547,547,547,547,547,,,547,547,,,,,,547,547,,1096,,,1096,,,1096,1096,,,1096,,1096,547,,547,1096,547,547,,547,547,547,547,547,1096,547,,,,1096,1096,1096,1096,,1096,1096,1096,1096,,,,,1096,1096,,,,,,,1096,,1096,1096,1096,,,1096,1096,1097,1097,1097,1097,1097,1097,,,,1097,1097,,,,1097,,1097,1097,1097,1097,1097,1097,1097,,,,,,1097,1097,1097,1097,1097,1097,1097,,,1097,,,,,,1097,1097,1097,1097,1097,1097,1097,1097,1097,1097,1097,1097,,1097,1097,1097,,1097,1097,1097,1097,1097,548,548,548,548,548,548,548,,,548,548,,,,,,548,548,,1097,,,1097,,,1097,1097,,,1097,,1097,548,,548,1097,548,548,,548,548,548,548,548,1097,548,,,,1097,1097,1097,1097,,1097,1097,1097,1097,,,,,1097,1097,,,,,,,1097,,1097,1097,1097,,,1097,1097,1102,1102,1102,1102,1102,1102,,,,1102,1102,,,,1102,,1102,1102,1102,1102,1102,1102,1102,,,,,,1102,1102,1102,1102,1102,1102,1102,,,1102,,,,,,1102,1102,1102,1102,1102,1102,1102,1102,1102,1102,1102,1102,,1102,1102,1102,,1102,1102,1102,1102,1102,551,551,551,551,551,551,551,,,551,551,,,,,,551,551,,1102,,,1102,,,1102,1102,,,1102,,1102,551,,551,1102,551,551,,551,551,551,551,551,1102,551,,,,1102,1102,1102,1102,,1102,1102,1102,1102,,,,,1102,1102,,,,,,,1102,,1102,1102,1102,,,1102,1102,1145,1145,1145,1145,1145,1145,,,,1145,1145,,,,1145,,1145,1145,1145,1145,1145,1145,1145,,,,,,1145,1145,1145,1145,1145,1145,1145,,,1145,,,,,,1145,1145,1145,1145,1145,1145,1145,1145,1145,1145,1145,1145,,1145,1145,1145,,1145,1145,1145,1145,1145,552,552,552,552,552,552,552,552,,552,552,,,,,,552,552,,1145,,,1145,,,1145,1145,,,1145,,1145,552,,552,1145,552,552,,552,552,552,552,552,1145,552,,,,1145,1145,1145,1145,,1145,1145,1145,1145,,,,,1145,1145,,,,,,,1145,,1145,1145,1145,,,1145,1145,1188,1188,1188,1188,1188,1188,,,,1188,1188,,,,1188,,1188,1188,1188,1188,1188,1188,1188,,,,,,1188,1188,1188,1188,1188,1188,1188,,,1188,,,,,,1188,1188,1188,1188,1188,1188,1188,1188,1188,1188,1188,1188,,1188,1188,1188,,1188,1188,1188,1188,1188,554,,,,,,,,,,,,,,,,554,554,,1188,,,1188,,,1188,1188,,,1188,,1188,554,,554,1188,554,554,,554,554,,,554,1188,554,,,,1188,1188,1188,1188,,1188,1188,1188,1188,,,,,1188,1188,,,,,,,1188,,1188,1188,1188,,,1188,1188,7,7,7,7,7,,,,7,7,,,,7,,7,7,7,7,7,7,7,,,,,,7,7,7,7,7,7,7,,,7,,,,,,7,7,7,7,7,7,7,7,7,7,7,7,,7,7,7,,7,7,7,7,7,607,,,,,,,,,,,,,,,,607,607,,7,,,7,,,7,7,,,7,,7,607,,607,7,607,607,,607,607,,,607,7,607,,,,7,7,7,7,,7,7,7,7,,,,,7,7,,,,24,24,24,7,24,7,7,7,24,24,7,7,,24,,24,24,24,24,24,24,24,,,,,,24,24,24,24,24,24,24,,,24,,,,,,,24,,,24,24,24,24,24,24,24,24,,24,24,24,,24,24,24,24,24,540,,,,,,,,,,,,,,,,540,540,,24,,,24,,,24,24,,,24,,,540,,540,24,540,540,,540,540,,,,24,,,,,24,24,24,24,,24,24,24,24,,,,,24,24,,,,,,,24,,24,24,24,32,,24,24,,,,32,32,32,,,32,32,32,541,32,,,,,,,,32,32,32,32,,,,541,541,,,,32,32,,32,32,32,32,32,,,,541,,541,,541,541,,541,541,,,,,,,,,,,32,32,32,32,32,32,32,32,32,32,32,32,32,32,,,32,32,32,,,32,,32,32,,,32,32,,32,,32,,32,,32,32,,32,32,32,32,32,33,32,32,32,,,,33,33,33,,,33,33,33,,33,32,542,,32,32,,32,33,32,33,33,,,,,32,,542,542,33,33,,33,33,33,33,33,,,,,,,542,,,,542,542,,542,542,,,,,,,,33,33,33,33,33,33,33,33,33,33,33,33,33,33,,,33,33,33,,,33,,33,33,,,33,33,,33,,33,,33,,33,33,,33,33,33,33,33,,33,,33,,,,,,,,,,,,,,33,,,33,33,,33,,33,34,34,34,,34,,33,,34,34,,,,34,,34,34,34,34,34,34,34,,,,,,34,34,34,34,34,34,34,,,34,,,,,,,34,,,34,34,34,34,34,34,34,34,34,34,34,34,,34,34,34,34,34,,,,,,,,,,,,,,,,,,,,34,,,34,,,34,34,,,34,,34,,34,,34,,,34,,,,,,34,,,,,34,34,34,34,,34,34,34,34,,,,,34,34,,,,35,35,35,34,35,34,34,34,35,35,34,34,,35,,35,35,35,35,35,35,35,,,,,,35,35,35,35,35,35,35,,,35,,,,,,,35,,,35,35,35,35,35,35,35,35,35,35,35,35,,35,35,35,35,35,,,,,,,,,,,,,,,,,,,,35,,,35,,,35,35,,,35,,35,,35,,35,,,35,,,,,,35,,,,,35,35,35,35,,35,35,35,35,,,,,35,35,,,,36,36,36,35,36,35,35,35,36,36,35,35,,36,,36,36,36,36,36,36,36,,,,,,36,36,36,36,36,36,36,,,36,,,,,,,36,,,36,36,36,36,36,36,36,36,36,36,36,36,,36,36,36,36,36,,,,,,,,,,,,,,,,,,,,36,,,36,,,36,36,,,36,,36,,36,,36,,,36,,,,,,36,,,,,36,36,36,36,,36,36,36,36,,,,,36,36,,,,46,46,46,36,46,36,36,36,46,46,36,36,,46,,46,46,46,46,46,46,46,,,,,,46,46,46,46,46,46,46,,,46,,,,,,,46,,,46,46,46,46,46,46,46,46,,46,46,46,,46,46,46,46,46,,,,,,,,,,,,,,,,,,,,46,,,46,,,46,46,,,46,,,,,,46,,,,,,,,,46,,,,,46,46,46,46,,46,46,46,46,,,,,46,46,,,,47,47,47,46,47,46,46,46,47,47,46,46,,47,,47,47,47,47,47,47,47,,,,,,47,47,47,47,47,47,47,,,47,,,,,,,47,,,47,47,47,47,47,47,47,47,,47,47,47,,47,47,47,47,47,,,,,,,,,,,,,,,,,,,,47,,,47,,,47,47,,,47,,,,,,47,,,,,,,,,47,,,,,47,47,47,47,,47,47,47,47,,,,,47,47,,,,49,49,49,47,49,47,47,47,49,49,47,47,,49,,49,49,49,49,49,49,49,,,,,,49,49,49,49,49,49,49,,,49,,,,,,,49,,,49,49,49,49,49,49,49,49,,49,49,49,,49,49,49,49,49,,,,,,,,,,,,,,,,,,,,49,,,49,,,49,49,,,49,,,,,,49,,,,,,,,,49,,,,,49,49,49,49,,49,49,49,49,,,,,49,49,,,,50,50,50,49,50,49,49,49,50,50,49,49,,50,,50,50,50,50,50,50,50,,,,,,50,50,50,50,50,50,50,,,50,,,,,,,50,,,50,50,50,50,50,50,50,50,,50,50,50,,50,50,50,50,50,,,,,,,,,,,,,,,,,,,,50,,,50,,,50,50,,,50,,,,,,50,,,,,,,,,50,,,,,50,50,50,50,,50,50,50,50,,,,,50,50,,,,52,52,52,50,52,50,50,50,52,52,50,50,,52,,52,52,52,52,52,52,52,,,,,,52,52,52,52,52,52,52,,,52,,,,,,,52,,,52,52,52,52,52,52,52,52,,52,52,52,,52,52,52,52,52,,,,,,,,,,,,,,,,,,,,52,,,52,,,52,52,,,52,,,,,,52,,,,,,,,,52,,,,,52,52,52,52,,52,52,52,52,,,,,52,52,,,,,,,52,,52,52,52,64,,52,52,,,,64,64,64,,,64,64,64,,64,,,,,,,,64,,64,64,64,,,,765,765,765,765,64,64,,64,64,64,64,64,,,,,765,765,765,,,,,,,,,,,765,765,,,765,64,64,64,64,64,64,64,64,64,64,64,64,64,64,,,64,64,64,,,64,,,64,,,64,64,,64,,64,,64,,64,64,,64,64,64,64,64,,64,,64,,765,765,765,765,,765,765,765,765,,,,64,765,765,64,64,64,64,,64,765,64,765,765,765,,64,66,66,66,66,66,,,,66,66,,,,66,,66,66,66,66,66,66,66,,,,,,66,66,66,66,66,66,66,,,66,,,,,,66,66,,66,66,66,66,66,66,66,66,66,,66,66,66,,66,66,66,66,66,,,,,,,,,,,,,,,,,,,,66,,,66,,,66,66,,,66,,66,,,,66,,,,,,,,,66,,,,,66,66,66,66,,66,66,66,66,,,,,66,66,,,,67,67,67,66,67,66,66,66,67,67,66,66,,67,,67,67,67,67,67,67,67,,,,,,67,67,67,67,67,67,67,,,67,,,,,,,67,,,67,67,67,67,67,67,67,67,67,67,67,67,,67,67,67,67,67,,,,,,,,,,,,,,,,,,,,67,,,67,,,67,67,,,67,,67,,,,67,,,67,,,,,,67,,,,,67,67,67,67,,67,67,67,67,,,,,67,67,,,,68,68,68,67,68,67,67,67,68,68,67,67,,68,,68,68,68,68,68,68,68,,,,,,68,68,68,68,68,68,68,,,68,,,,,,,68,,,68,68,68,68,68,68,68,68,68,68,68,68,,68,68,68,68,68,,,,,,,,,,,,,,,,,,,,68,,,68,,,68,68,,,68,,,,,,68,,,68,,,,,,68,,,,,68,68,68,68,,68,68,68,68,,,,,68,68,,,,71,71,71,68,71,68,68,68,71,71,68,68,,71,,71,71,71,71,71,71,71,,,,,,71,71,71,71,71,71,71,,,71,,,,,,,71,,,71,71,71,71,71,71,71,71,,71,71,71,,71,71,71,71,71,,,,,,,,,,,,,,,,,,,,71,,,71,,,71,71,,,71,,,,,,71,,,,,,,,,71,,,,,71,71,71,71,,71,71,71,71,,,,,71,71,,,,72,72,72,71,72,71,71,71,72,72,71,71,,72,,72,72,72,72,72,72,72,,,,,,72,72,72,72,72,72,72,,,72,,,,,,,72,,,72,72,72,72,72,72,72,72,,72,72,72,,72,72,72,72,72,,,,,,,,,,,,,,,,,,,,72,,,72,,,72,72,,,72,,,,,,72,,,,,,,,,72,,,,,72,72,72,72,,72,72,72,72,,,,,72,72,,,,75,75,75,72,75,72,72,72,75,75,72,72,,75,,75,75,75,75,75,75,75,,,,,,75,75,75,75,75,75,75,,,75,,,,,,,75,,,75,75,75,75,75,75,75,75,,75,75,75,,75,75,75,75,75,,,,,,,,,,,,,,,,,,,,75,,,75,,,75,75,,,75,,,,,,75,,,,,,,,,75,,,,,75,75,75,75,,75,75,75,75,,,,,75,75,75,,,,,75,75,,75,75,75,,,75,75,125,125,125,125,125,,,,125,125,,,,125,,125,125,125,125,125,125,125,,,,,,125,125,125,125,125,125,125,,,125,,,,,,125,125,125,125,125,125,125,125,125,125,125,125,,125,125,125,,125,125,125,125,125,,,,,,,,,,,,,,,,,,,,125,,,125,,,125,125,,,125,,125,,,,125,,,,,,,,,125,,,,,125,125,125,125,,125,125,125,125,,,,,125,125,,,,,,125,125,,125,125,125,,,125,125,130,130,130,,130,,,,130,130,,,,130,,130,130,130,130,130,130,130,,,,,,130,130,130,130,130,130,130,,,130,,,,,,,130,,,130,130,130,130,130,130,130,130,,130,130,130,,130,130,130,130,130,,,,,,,,,,,,,,,,,,,,130,,,130,,,130,130,,,130,,,,,,130,,,,,,,,,130,,,,,130,130,130,130,,130,130,130,130,,,,,130,130,,,,131,131,131,130,131,130,130,130,131,131,130,130,,131,,131,131,131,131,131,131,131,,,,,,131,131,131,131,131,131,131,,,131,,,,,,,131,,,131,131,131,131,131,131,131,131,,131,131,131,,131,131,131,131,131,,,,,,,,,,,,,,,,,,,,131,,,131,,,131,131,,,131,,,,,,131,,,,,,,,,131,,,,,131,131,131,131,,131,131,131,131,,,,,131,131,,,,132,132,132,131,132,131,131,131,132,132,131,131,,132,,132,132,132,132,132,132,132,,,,,,132,132,132,132,132,132,132,,,132,,,,,,,132,,,132,132,132,132,132,132,132,132,,132,132,132,,132,132,132,132,132,,,,,,,,,,,,,,,,,,,,132,,,132,,,132,132,,,132,,,,,,132,,,,,,,,,132,,,,,132,132,132,132,,132,132,132,132,,,,,132,132,,,,133,133,133,132,133,132,132,132,133,133,132,132,,133,,133,133,133,133,133,133,133,,,,,,133,133,133,133,133,133,133,,,133,,,,,,,133,,,133,133,133,133,133,133,133,133,,133,133,133,,133,133,133,133,133,,,,,,,,,,,,,,,,,,,,133,,,133,,,133,133,,,133,,,,,,133,,,,,,,,,133,,,,,133,133,133,133,,133,133,133,133,,,,,133,133,,,,,,,133,,133,133,133,,,133,133,134,134,134,134,134,,,,134,134,,,,134,,134,134,134,134,134,134,134,,,,,,134,134,134,134,134,134,134,,,134,,,,,,134,134,,134,134,134,134,134,134,134,134,134,,134,134,134,,134,134,134,134,134,,,,,,,,,,,,,,,,,,,,134,,,134,,,134,134,,,134,,134,,,,134,,,,,,,,,134,,,,,134,134,134,134,,134,134,134,134,,,,,134,134,,,,220,220,220,134,220,134,134,134,220,220,134,134,,220,,220,220,220,220,220,220,220,,,,,,220,220,220,220,220,220,220,,,220,,,,,,,220,,,220,220,220,220,220,220,220,220,,220,220,220,,220,220,220,220,220,,,,,,,,,,,,,,,,,,,,220,,,220,,,220,220,,,220,,220,,,,220,,,,,,,,,220,,,,,220,220,220,220,,220,220,220,220,,,,,220,220,,,,221,221,221,220,221,220,220,220,221,221,220,220,,221,,221,221,221,221,221,221,221,,,,,,221,221,221,221,221,221,221,,,221,,,,,,,221,,,221,221,221,221,221,221,221,221,,221,221,221,,221,221,221,221,221,,,,,,,,,,,,,,,,,,,,221,,,221,,,221,221,,,221,,221,,,,221,,,,,,,,,221,,,,,221,221,221,221,,221,221,221,221,,,,,221,221,,,,222,222,222,221,222,221,221,221,222,222,221,221,,222,,222,222,222,222,222,222,222,,,,,,222,222,222,222,222,222,222,,,222,,,,,,,222,,,222,222,222,222,222,222,222,222,,222,222,222,,222,222,222,222,222,,,,,,,,,,,,,,,,,,,,222,,,222,,,222,222,,,222,,,,,,222,,,,,,,,,222,,,,,222,222,222,222,,222,222,222,222,,,,,222,222,,,,223,223,223,222,223,222,222,222,223,223,222,222,,223,,223,223,223,223,223,223,223,,,,,,223,223,223,223,223,223,223,,,223,,,,,,,223,,,223,223,223,223,223,223,223,223,,223,223,223,,223,223,223,223,223,,,,,,,,,,,,,,,,,,,,223,,,223,,,223,223,,,223,,,,,,223,,,,,,,,,223,,,,,223,223,223,223,,223,223,223,223,,,,,223,223,,,,224,224,224,223,224,223,223,223,224,224,223,223,,224,,224,224,224,224,224,224,224,,,,,,224,224,224,224,224,224,224,,,224,,,,,,,224,,,224,224,224,224,224,224,224,224,,224,224,224,,224,224,224,224,224,,,,,,,,,,,,,,,,,,,,224,,,224,,,224,224,,,224,,,,,,224,,,,,,,,,224,,,,,224,224,224,224,,224,224,224,224,,,,,224,224,,,,225,225,225,224,225,224,224,224,225,225,224,224,,225,,225,225,225,225,225,225,225,,,,,,225,225,225,225,225,225,225,,,225,,,,,,,225,,,225,225,225,225,225,225,225,225,225,225,225,225,,225,225,225,225,225,,,,,,,,,,,,,,,,,,,,225,,,225,,,225,225,,,225,,225,,225,,225,,,225,,,,,,225,,,,,225,225,225,225,,225,225,225,225,,,,,225,225,,,,238,238,238,225,238,225,225,225,238,238,225,225,,238,,238,238,238,238,238,238,238,,,,,,238,238,238,238,238,238,238,,,238,,,,,,,238,,,238,238,238,238,238,238,238,238,,238,238,238,,238,238,238,238,238,,,,,,,,,,,,,,,,,,,,238,,,238,,,238,238,,,238,,,,,,238,,,,,,,,,238,,,,,238,238,238,238,,238,238,238,238,,,,,238,238,,,,239,239,239,238,239,238,238,238,239,239,238,238,,239,,239,239,239,239,239,239,239,,,,,,239,239,239,239,239,239,239,,,239,,,,,,,239,,,239,239,239,239,239,239,239,239,,239,239,239,,239,239,239,239,239,,,,,,,,,,,,,,,,,,,,239,,,239,,,239,239,,,239,,,,,,239,,,,,,,,,239,,,,,239,239,239,239,,239,239,239,239,,,,,239,239,,,,240,240,240,239,240,239,239,239,240,240,239,239,,240,,240,240,240,240,240,240,240,,,,,,240,240,240,240,240,240,240,,,240,,,,,,,240,,,240,240,240,240,240,240,240,240,,240,240,240,,240,240,240,240,240,,,,,,,,,,,,,,,,,,,,240,,,240,,,240,240,,,240,,,,,,240,,,,,,,,,240,,,,,240,240,240,240,,240,240,240,240,,,,,240,240,240,,,251,251,251,240,251,240,240,240,251,251,240,240,,251,,251,251,251,251,251,251,251,,,,,,251,251,251,251,251,251,251,,,251,,,,,,,251,,,251,251,251,251,251,251,251,251,,251,251,251,,251,251,251,251,251,,,,,,,,,,,,,,,,,,,,251,,,251,,,251,251,,,251,,,,,,251,,,,,,,,,251,,,,,251,251,251,251,,251,251,251,251,,,,,251,251,,,,258,258,258,251,258,251,251,251,258,258,251,251,,258,,258,258,258,258,258,258,258,,,,,,258,258,258,258,258,258,258,,,258,,,,,,,258,,,258,258,258,258,258,258,258,258,,258,258,258,,258,258,258,258,258,,,,,,,,,,,,,,,,,,,,258,,,258,,,258,258,,,258,,,,,,258,,,,,,,,,258,,,,,258,258,258,258,,258,258,258,258,,,,,258,258,,,,259,259,259,258,259,258,258,258,259,259,258,258,,259,,259,259,259,259,259,259,259,,,,,,259,259,259,259,259,259,259,,,259,,,,,,,259,,,259,259,259,259,259,259,259,259,,259,259,259,,259,259,259,259,259,,,,,,,,,,,,,,,,,,,,259,,,259,,,259,259,,,259,,,,,,259,,,,,,,,,259,,,,,259,259,259,259,,259,259,259,259,,,,,259,259,,,,260,260,260,259,260,259,259,259,260,260,259,259,,260,,260,260,260,260,260,260,260,,,,,,260,260,260,260,260,260,260,,,260,,,,,,,260,,,260,260,260,260,260,260,260,260,,260,260,260,,260,260,260,260,260,,,,,,,,,,,,,,,,,,,,260,,,260,,,260,260,,,260,,,,,,260,,,,,,,,,260,,,,,260,260,260,260,,260,260,260,260,,,,,260,260,,,,261,261,261,260,261,260,260,260,261,261,260,260,,261,,261,261,261,261,261,261,261,,,,,,261,261,261,261,261,261,261,,,261,,,,,,,261,,,261,261,261,261,261,261,261,261,,261,261,261,,261,261,261,261,261,,,,,,,,,,,,,,,,,,,,261,,,261,,,261,261,,,261,,,,,,261,,,,,,,,,261,,,,,261,261,261,261,,261,261,261,261,,,,,261,261,,,,262,262,262,261,262,261,261,261,262,262,261,261,,262,,262,262,262,262,262,262,262,,,,,,262,262,262,262,262,262,262,,,262,,,,,,,262,,,262,262,262,262,262,262,262,262,,262,262,262,,262,262,262,262,262,,,,,,,,,,,,,,,,,,,,262,,,262,,,262,262,,,262,,,,,,262,,,,,,,,,262,,,,,262,262,262,262,,262,262,262,262,,,,,262,262,,,,263,263,263,262,263,262,262,262,263,263,262,262,,263,,263,263,263,263,263,263,263,,,,,,263,263,263,263,263,263,263,,,263,,,,,,,263,,,263,263,263,263,263,263,263,263,,263,263,263,,263,263,263,263,263,,,,,,,,,,,,,,,,,,,,263,,,263,,,263,263,,,263,,,,,,263,,,,,,,,,263,,,,,263,263,263,263,,263,263,263,263,,,,,263,263,,,,264,264,264,263,264,263,263,263,264,264,263,263,,264,,264,264,264,264,264,264,264,,,,,,264,264,264,264,264,264,264,,,264,,,,,,,264,,,264,264,264,264,264,264,264,264,,264,264,264,,264,264,264,264,264,,,,,,,,,,,,,,,,,,,,264,,,264,,,264,264,,,264,,,,,,264,,,,,,,,,264,,,,,264,264,264,264,,264,264,264,264,,,,,264,264,,,,265,265,265,264,265,264,264,264,265,265,264,264,,265,,265,265,265,265,265,265,265,,,,,,265,265,265,265,265,265,265,,,265,,,,,,,265,,,265,265,265,265,265,265,265,265,,265,265,265,,265,265,265,265,265,,,,,,,,,,,,,,,,,,,,265,,,265,,,265,265,,,265,,,,,,265,,,,,,,,,265,,,,,265,265,265,265,,265,265,265,265,,,,,265,265,,,,266,266,266,265,266,265,265,265,266,266,265,265,,266,,266,266,266,266,266,266,266,,,,,,266,266,266,266,266,266,266,,,266,,,,,,,266,,,266,266,266,266,266,266,266,266,,266,266,266,,266,266,266,266,266,,,,,,,,,,,,,,,,,,,,266,,,266,,,266,266,,,266,,,,,,266,,,,,,,,,266,,,,,266,266,266,266,,266,266,266,266,,,,,266,266,,,,267,267,267,266,267,266,266,266,267,267,266,266,,267,,267,267,267,267,267,267,267,,,,,,267,267,267,267,267,267,267,,,267,,,,,,,267,,,267,267,267,267,267,267,267,267,,267,267,267,,267,267,267,267,267,,,,,,,,,,,,,,,,,,,,267,,,267,,,267,267,,,267,,,,,,267,,,,,,,,,267,,,,,267,267,267,267,,267,267,267,267,,,,,267,267,,,,268,268,268,267,268,267,267,267,268,268,267,267,,268,,268,268,268,268,268,268,268,,,,,,268,268,268,268,268,268,268,,,268,,,,,,,268,,,268,268,268,268,268,268,268,268,,268,268,268,,268,268,268,268,268,,,,,,,,,,,,,,,,,,,,268,,,268,,,268,268,,,268,,,,,,268,,,,,,,,,268,,,,,268,268,268,268,,268,268,268,268,,,,,268,268,,,,269,269,269,268,269,268,268,268,269,269,268,268,,269,,269,269,269,269,269,269,269,,,,,,269,269,269,269,269,269,269,,,269,,,,,,,269,,,269,269,269,269,269,269,269,269,,269,269,269,,269,269,269,269,269,,,,,,,,,,,,,,,,,,,,269,,,269,,,269,269,,,269,,,,,,269,,,,,,,,,269,,,,,269,269,269,269,,269,269,269,269,,,,,269,269,,,,270,270,270,269,270,269,269,269,270,270,269,269,,270,,270,270,270,270,270,270,270,,,,,,270,270,270,270,270,270,270,,,270,,,,,,,270,,,270,270,270,270,270,270,270,270,,270,270,270,,270,270,270,270,270,,,,,,,,,,,,,,,,,,,,270,,,270,,,270,270,,,270,,,,,,270,,,,,,,,,270,,,,,270,270,270,270,,270,270,270,270,,,,,270,270,,,,271,271,271,270,271,270,270,270,271,271,270,270,,271,,271,271,271,271,271,271,271,,,,,,271,271,271,271,271,271,271,,,271,,,,,,,271,,,271,271,271,271,271,271,271,271,,271,271,271,,271,271,271,271,271,,,,,,,,,,,,,,,,,,,,271,,,271,,,271,271,,,271,,,,,,271,,,,,,,,,271,,,,,271,271,271,271,,271,271,271,271,,,,,271,271,,,,272,272,272,271,272,271,271,271,272,272,271,271,,272,,272,272,272,272,272,272,272,,,,,,272,272,272,272,272,272,272,,,272,,,,,,,272,,,272,272,272,272,272,272,272,272,,272,272,272,,272,272,272,272,272,,,,,,,,,,,,,,,,,,,,272,,,272,,,272,272,,,272,,,,,,272,,,,,,,,,272,,,,,272,272,272,272,,272,272,272,272,,,,,272,272,,,,273,273,273,272,273,272,272,272,273,273,272,272,,273,,273,273,273,273,273,273,273,,,,,,273,273,273,273,273,273,273,,,273,,,,,,,273,,,273,273,273,273,273,273,273,273,,273,273,273,,273,273,273,273,273,,,,,,,,,,,,,,,,,,,,273,,,273,,,273,273,,,273,,,,,,273,,,,,,,,,273,,,,,273,273,273,273,,273,273,273,273,,,,,273,273,,,,274,274,274,273,274,273,273,273,274,274,273,273,,274,,274,274,274,274,274,274,274,,,,,,274,274,274,274,274,274,274,,,274,,,,,,,274,,,274,274,274,274,274,274,274,274,,274,274,274,,274,274,274,274,274,,,,,,,,,,,,,,,,,,,,274,,,274,,,274,274,,,274,,,,,,274,,,,,,,,,274,,,,,274,274,274,274,,274,274,274,274,,,,,274,274,,,,275,275,275,274,275,274,274,274,275,275,274,274,,275,,275,275,275,275,275,275,275,,,,,,275,275,275,275,275,275,275,,,275,,,,,,,275,,,275,275,275,275,275,275,275,275,,275,275,275,,275,275,275,275,275,,,,,,,,,,,,,,,,,,,,275,,,275,,,275,275,,,275,,,,,,275,,,,,,,,,275,,,,,275,275,275,275,,275,275,275,275,,,,,275,275,,,,276,276,276,275,276,275,275,275,276,276,275,275,,276,,276,276,276,276,276,276,276,,,,,,276,276,276,276,276,276,276,,,276,,,,,,,276,,,276,276,276,276,276,276,276,276,,276,276,276,,276,276,276,276,276,,,,,,,,,,,,,,,,,,,,276,,,276,,,276,276,,,276,,,,,,276,,,,,,,,,276,,,,,276,276,276,276,,276,276,276,276,,,,,276,276,,,,277,277,277,276,277,276,276,276,277,277,276,276,,277,,277,277,277,277,277,277,277,,,,,,277,277,277,277,277,277,277,,,277,,,,,,,277,,,277,277,277,277,277,277,277,277,,277,277,277,,277,277,277,277,277,,,,,,,,,,,,,,,,,,,,277,,,277,,,277,277,,,277,,,,,,277,,,,,,,,,277,,,,,277,277,277,277,,277,277,277,277,,,,,277,277,,,,278,278,278,277,278,277,277,277,278,278,277,277,,278,,278,278,278,278,278,278,278,,,,,,278,278,278,278,278,278,278,,,278,,,,,,,278,,,278,278,278,278,278,278,278,278,,278,278,278,,278,278,278,278,278,,,,,,,,,,,,,,,,,,,,278,,,278,,,278,278,,,278,,,,,,278,,,,,,,,,278,,,,,278,278,278,278,,278,278,278,278,,,,,278,278,,,,279,279,279,278,279,278,278,278,279,279,278,278,,279,,279,279,279,279,279,279,279,,,,,,279,279,279,279,279,279,279,,,279,,,,,,,279,,,279,279,279,279,279,279,279,279,,279,279,279,,279,279,279,279,279,,,,,,,,,,,,,,,,,,,,279,,,279,,,279,279,,,279,,,,,,279,,,,,,,,,279,,,,,279,279,279,279,,279,279,279,279,,,,,279,279,,,,284,284,284,279,284,279,279,279,284,284,279,279,,284,,284,284,284,284,284,284,284,,,,,,284,284,284,284,284,284,284,,,284,,,,,,,284,,,284,284,284,284,284,284,284,284,,284,284,284,,284,284,284,284,284,,,,,,,,,,,,,,,,,,,,284,,,284,,,284,284,,,284,,,,,,284,,,,,,,,,284,,,,,284,284,284,284,,284,284,284,284,,,,,284,284,,,,300,300,300,284,300,284,284,284,300,300,284,284,,300,,300,300,300,300,300,300,300,,,,,,300,300,300,300,300,300,300,,,300,,,,,,,300,,,300,300,300,300,300,300,300,300,,300,300,300,,300,300,300,300,300,,,,,,,,,,,,,,,,,,,,300,,,300,,,300,300,,,300,,,,,,300,,,,,,,,,300,,,,,300,300,300,300,,300,300,300,300,,,,,300,300,,,,307,307,307,300,307,300,300,300,307,307,300,300,,307,,307,307,307,307,307,307,307,,,,,,307,307,307,307,307,307,307,,,307,,,,,,,307,,,307,307,307,307,307,307,307,307,307,307,307,307,,307,307,307,307,307,,,,,,,,,,,,,,,,,,,,307,,,307,,,307,307,,,307,,307,,307,,307,,,307,,,,,,307,,,,,307,307,307,307,,307,307,307,307,,,,,307,307,,,,308,308,308,307,308,307,307,307,308,308,307,307,,308,,308,308,308,308,308,308,308,,,,,,308,308,308,308,308,308,308,,,308,,,,,,,308,,,308,308,308,308,308,308,308,308,308,308,308,308,,308,308,308,308,308,,,,,,,,,,,,,,,,,,,,308,,,308,,,308,308,,,308,,308,,308,,308,,,308,,,,,,308,,,,,308,308,308,308,,308,308,308,308,,,,,308,308,,,,316,316,316,308,316,308,308,308,316,316,308,308,,316,,316,316,316,316,316,316,316,,,,,,316,316,316,316,316,316,316,,,316,,,,,,,316,,,316,316,316,316,316,316,316,316,316,316,316,316,,316,316,316,316,316,,,,,,,,,,,,,,,,,,,,316,,,316,,,316,316,,,316,,316,,316,,316,,,316,,,,,,316,,,,,316,316,316,316,,316,316,316,316,,,,,316,316,316,,,323,323,323,316,323,316,316,316,323,323,316,316,,323,,323,323,323,323,323,323,323,,,,,,323,323,323,323,323,323,323,,,323,,,,,,,323,,,323,323,323,323,323,323,323,323,,323,323,323,,323,323,323,323,323,,,,,,,,,,,,,,,,,,,,323,,,323,,,323,323,,,323,,,,,,323,,,,,,,,,323,,,,,323,323,323,323,,323,323,323,323,,,,,323,323,,,,325,325,325,323,325,323,323,323,325,325,323,323,,325,,325,325,325,325,325,325,325,,,,,,325,325,325,325,325,325,325,,,325,,,,,,,325,,,325,325,325,325,325,325,325,325,,325,325,325,,325,325,325,325,325,,,,,,,,,,,,,,,,,,,,325,,,325,,,325,325,,,325,,,,,,325,,,,,,,,,325,,,,,325,325,325,325,,325,325,325,325,,,,,325,325,,,,328,328,328,325,328,325,325,325,328,328,325,325,,328,,328,328,328,328,328,328,328,,,,,,328,328,328,328,328,328,328,,,328,,,,,,,328,,,328,328,328,328,328,328,328,328,,328,328,328,,328,328,328,328,328,,,,,,,,,,,,,,,,,,,,328,,,328,,,328,328,,,328,,,,,,328,,,,,,,,,328,,,,,328,328,328,328,,328,328,328,328,,,,,328,328,,,,329,329,329,328,329,328,328,328,329,329,328,328,,329,,329,329,329,329,329,329,329,,,,,,329,329,329,329,329,329,329,,,329,,,,,,,329,,,329,329,329,329,329,329,329,329,,329,329,329,,329,329,329,329,329,,,,,,,,,,,,,,,,,,,,329,,,329,,,329,329,,,329,,,,,,329,,,,,,,,,329,,,,,329,329,329,329,,329,329,329,329,,,,,329,329,,,,,,,329,,329,329,329,,,329,329,334,334,334,334,334,,,,334,334,,,,334,,334,334,334,334,334,334,334,,,,,,334,334,334,334,334,334,334,,,334,,,,,,334,334,,334,334,334,334,334,334,334,334,334,,334,334,334,,334,334,334,334,334,,,,,,,,,,,,,,,,,,,,334,,,334,,,334,334,,,334,,334,,,,334,,,,,,,,,334,,,,,334,334,334,334,,334,334,334,334,,,,,334,334,,,,370,370,370,334,370,334,334,334,370,370,334,334,,370,,370,370,370,370,370,370,370,,,,,,370,370,370,370,370,370,370,,,370,,,,,,,370,,,370,370,370,370,370,370,370,370,,370,370,370,,370,370,370,370,370,,,,,,,,,,,,,,,,,,,,370,,,370,,,370,370,,,370,,,,,,370,,,,,,,,,370,,,,,370,370,370,370,,370,370,370,370,,,,,370,370,,,,387,387,387,370,387,370,370,370,387,387,370,370,,387,,387,387,387,387,387,387,387,,,,,,387,387,387,387,387,387,387,,,387,,,,,,,387,,,387,387,387,387,387,387,387,387,,387,387,387,,387,387,387,387,387,,,,,,,,,,,,,,,,,,,,387,,,387,,,387,387,,,387,,,,,,387,,,,,,,,,387,,,,,387,387,387,387,,387,387,387,387,,,,,387,387,,,,408,408,408,387,408,387,387,387,408,408,387,387,,408,,408,408,408,408,408,408,408,,,,,,408,408,408,408,408,408,408,,,408,,,,,,,408,,,408,408,408,408,408,408,408,408,,408,408,408,,408,408,408,408,408,,,,,,,,,,,,,,,,,,,,408,,,408,,,408,408,,,408,,,,,,408,,,,,,,,,408,,,,,408,408,408,408,,408,408,408,408,,,,,408,408,,,,437,437,437,408,437,408,408,408,437,437,408,408,,437,,437,437,437,437,437,437,437,,,,,,437,437,437,437,437,437,437,,,437,,,,,,,437,,,437,437,437,437,437,437,437,437,,437,437,437,,437,437,437,437,437,,,,,,,,,,,,,,,,,,,,437,,,437,,,437,437,,,437,,,,,,437,,,,,,,,,437,,,,,437,437,437,437,,437,437,437,437,,,,,437,437,,,,,,,437,,437,437,437,461,,437,437,,,,461,461,461,,,461,461,461,,461,,,,,,,,461,461,461,461,,,,,,,,,461,461,,461,461,461,461,461,,,,,,,,,,,,,,,,,,,,,,,461,461,461,461,461,461,461,461,461,461,461,461,461,461,,,461,461,461,,,461,,461,461,,,461,461,,461,,461,,461,,461,461,,461,461,461,461,461,,461,461,461,1138,,1138,1138,1138,1138,1138,,,,,,,461,,1138,461,461,471,461,,461,,,,471,471,471,461,,471,471,471,,471,,,1138,,,,,471,471,471,471,471,,1138,1138,,,,1138,471,471,,471,471,471,471,471,,,,,,,,,,,,,,,,,,,,,,,471,471,471,471,471,471,471,471,471,471,471,471,471,471,,,471,471,471,,,471,,,471,,,471,471,,471,,471,,471,,471,471,,471,471,471,471,471,,471,471,471,,,,,,,,,,,,,,471,,,471,471,471,471,,471,472,471,,,,,471,472,472,472,,,472,472,472,,472,,,,,,,,472,472,472,472,472,,,,,,,,472,472,,472,472,472,472,472,,,,,,,,,,,,,,,,,,,,,,,472,472,472,472,472,472,472,472,472,472,472,472,472,472,,,472,472,472,,,472,,,472,,,472,472,,472,,472,,472,,472,472,,472,472,472,472,472,,472,472,472,,,,,,,,,,,,,,472,,,472,472,472,472,,472,,472,,473,473,473,472,473,,,,473,473,,,,473,,473,473,473,473,473,473,473,,,,,,473,473,473,473,473,473,473,,,473,,,,,,,473,,,473,473,473,473,473,473,473,473,,473,473,473,,473,473,473,473,473,,,,,,,,,,,,,,,,,,,,473,,,473,,,473,473,,,473,,,,,,473,,,,,,,,,473,,,,,473,473,473,473,,473,473,473,473,,,,,473,473,,,,500,500,500,473,500,473,473,473,500,500,473,473,,500,,500,500,500,500,500,500,500,,,,,,500,500,500,500,500,500,500,,,500,,,,,,,500,,,500,500,500,500,500,500,500,500,,500,500,500,,500,500,500,500,500,,,,,,,,,,,,,,,,,,,,500,,,500,,,500,500,,,500,,,,,,500,,,,,,,,,500,,,,,500,500,500,500,,500,500,500,500,,,,,500,500,,,,513,513,513,500,513,500,500,500,513,513,500,500,,513,,513,513,513,513,513,513,513,,,,,,513,513,513,513,513,513,513,,,513,,,,,,,513,,,513,513,513,513,513,513,513,513,,513,513,513,,513,513,513,513,513,,,,,,,,,,,,,,,,,,,,513,,,513,,,513,513,,,513,,,,,,513,,,,,,,,,513,,,,,513,513,513,513,,513,513,513,513,,,,,513,513,,,,523,523,523,513,523,513,513,513,523,523,513,513,,523,,523,523,523,523,523,523,523,,,,,,523,523,523,523,523,523,523,,,523,,,,,,,523,,,523,523,523,523,523,523,523,523,523,523,523,523,,523,523,523,523,523,,,,,,,,,,,,,,,,,,,,523,,,523,,,523,523,,,523,,523,,523,,523,,,523,,,,,,523,,,,,523,523,523,523,,523,523,523,523,,,,,523,523,,,,525,525,525,523,525,523,523,523,525,525,523,523,,525,,525,525,525,525,525,525,525,,,,,,525,525,525,525,525,525,525,,,525,,,,,,,525,,,525,525,525,525,525,525,525,525,,525,525,525,,525,525,525,525,525,,,,,,,,,,,,,,,,,,,,525,,,525,,,525,525,,,525,,,,,,525,,,,,,,,,525,,,,,525,525,525,525,,525,525,525,525,,,,,525,525,,,,526,526,526,525,526,525,525,525,526,526,525,525,,526,,526,526,526,526,526,526,526,,,,,,526,526,526,526,526,526,526,,,526,,,,,,,526,,,526,526,526,526,526,526,526,526,,526,526,526,,526,526,526,526,526,,,,,,,,,,,,,,,,,,,,526,,,526,,,526,526,,,526,,,,,,526,,,,,,,,,526,,,,,526,526,526,526,,526,526,526,526,,,,,526,526,,,,527,527,527,526,527,526,526,526,527,527,526,526,,527,,527,527,527,527,527,527,527,,,,,,527,527,527,527,527,527,527,,,527,,,,,,,527,,,527,527,527,527,527,527,527,527,,527,527,527,,527,527,527,527,527,,,,,,,,,,,,,,,,,,,,527,,,527,,,527,527,,,527,,,,,,527,,,,,,,,,527,,,,,527,527,527,527,,527,527,527,527,,,,,527,527,,,,,,,527,,527,527,527,558,,527,527,,,,558,558,558,,,558,558,558,410,558,410,410,410,410,410,,,558,558,558,,,,410,,,,,,558,558,,558,558,558,558,558,,647,,647,647,647,647,647,410,410,,,,,,,647,410,410,410,410,,,,410,,1133,,1133,1133,1133,1133,1133,558,,,,,647,,558,1133,,,,558,558,647,647,647,647,,,,647,,,,,,,,,1133,410,,,,558,558,,,1133,1133,1133,1133,,,,1133,,,,558,,,558,,563,563,563,558,563,,647,,563,563,558,,,563,,563,563,563,563,563,563,563,,,,,,563,563,563,563,563,563,563,,,563,,,,,,,563,,,563,563,563,563,563,563,563,563,,563,563,563,,563,563,563,563,563,,,,,,,,,,,,,,,,,,,,563,,,563,,,563,563,,,563,,,,,,563,,,,,,,,,563,,,,,563,563,563,563,,563,563,563,563,,,,,563,563,,,,573,573,573,563,573,563,563,563,573,573,563,563,,573,,573,573,573,573,573,573,573,,,,,,573,573,573,573,573,573,573,,,573,,,,,,,573,,,573,573,573,573,573,573,573,573,573,573,573,573,,573,573,573,573,573,,,,,,,,,,,,,,,,,,,,573,,,573,,,573,573,,,573,,573,,573,,573,,,573,,,,,,573,,,,,573,573,573,573,,573,573,573,573,,,,,573,573,,,,575,575,575,573,575,573,573,573,575,575,573,573,,575,,575,575,575,575,575,575,575,,,,,,575,575,575,575,575,575,575,,,575,,,,,,,575,,,575,575,575,575,575,575,575,575,575,575,575,575,,575,575,575,575,575,,,,,,,,,,,,,,,,,,,,575,,,575,,,575,575,,,575,,,,575,,575,,,575,,,,,,575,,,,,575,575,575,575,,575,575,575,575,,,,,575,575,,,,577,577,577,575,577,575,575,575,577,577,575,575,,577,,577,577,577,577,577,577,577,,,,,,577,577,577,577,577,577,577,,,577,,,,,,,577,,,577,577,577,577,577,577,577,577,,577,577,577,,577,577,577,577,577,,,,,,,,,,,,,,,,,,,,577,,,577,,,577,577,,,577,,,,,,577,,,,,,,,,577,,,,,577,577,577,577,,577,577,577,577,,,,,577,577,,,,,,,577,,577,577,577,,,577,577,583,583,583,583,583,,,,583,583,,,,583,,583,583,583,583,583,583,583,,,,,,583,583,583,583,583,583,583,,,583,,,,,,583,583,583,583,583,583,583,583,583,583,583,583,,583,583,583,,583,583,583,583,583,,,,,,,,,,,,,,,,,,,,583,,,583,,,583,583,,,583,,583,,,,583,,,,,,,,,583,,,,,583,583,583,583,,583,583,583,583,,,,,583,583,,,,,,583,583,,583,583,583,,,583,583,593,593,593,,593,,,,593,593,,,,593,,593,593,593,593,593,593,593,,,,,,593,593,593,593,593,593,593,,,593,,,,,,,593,,,593,593,593,593,593,593,593,593,593,593,593,593,,593,593,593,593,593,,,,,,,,,,,,,,,,,,,,593,,,593,,,593,593,,,593,,593,,593,,593,,,593,,,,,,593,,,,,593,593,593,593,,593,593,593,593,,,,,593,593,,,,603,603,603,593,603,593,593,593,603,603,593,593,,603,,603,603,603,603,603,603,603,,,,,,603,603,603,603,603,603,603,,,603,,,,,,,603,,,603,603,603,603,603,603,603,603,,603,603,603,,603,603,603,603,603,,,,,,,,,,,,,,,,,,,,603,,,603,,,603,603,,,603,,,,,,603,,,,,,,,,603,,,,,603,603,603,603,,603,603,603,603,,,,,603,603,,,,606,606,606,603,606,603,603,603,606,606,603,603,,606,,606,606,606,606,606,606,606,,,,,,606,606,606,606,606,606,606,,,606,,,,,,,606,,,606,606,606,606,606,606,606,606,,606,606,606,,606,606,606,606,606,,,,,,,,,,,,,,,,,,,,606,,,606,,,606,606,,,606,,,,,,606,,,,,,,,,606,,,,,606,606,606,606,,606,606,606,606,,,,,606,606,,,,608,608,608,606,608,606,606,606,608,608,606,606,,608,,608,608,608,608,608,608,608,,,,,,608,608,608,608,608,608,608,,,608,,,,,,,608,,,608,608,608,608,608,608,608,608,,608,608,608,,608,608,608,608,608,,,,,,,,,,,,,,,,,,,,608,,,608,,,608,608,,,608,,,,,,608,,,,,,,,,608,,,,,608,608,608,608,,608,608,608,608,,,,,608,608,,,,614,614,614,608,614,608,608,608,614,614,608,608,,614,,614,614,614,614,614,614,614,,,,,,614,614,614,614,614,614,614,,,614,,,,,,,614,,,614,614,614,614,614,614,614,614,614,614,614,614,,614,614,614,614,614,,,,,,,,,,,,,,,,,,,,614,,,614,,,614,614,,,614,,614,,,,614,,,614,,,,,,614,,,,,614,614,614,614,,614,614,614,614,,,,,614,614,,,,617,617,617,614,617,614,614,614,617,617,614,614,,617,,617,617,617,617,617,617,617,,,,,,617,617,617,617,617,617,617,,,617,,,,,,,617,,,617,617,617,617,617,617,617,617,617,617,617,617,,617,617,617,617,617,,,,,,,,,,,,,,,,,,,,617,,,617,,,617,617,,,617,,,,,,617,,,617,,,,,,617,,,,,617,617,617,617,,617,617,617,617,,,,,617,617,,,,630,630,630,617,630,617,617,617,630,630,617,617,,630,,630,630,630,630,630,630,630,,,,,,630,630,630,630,630,630,630,,,630,,,,,,,630,,,630,630,630,630,630,630,630,630,,630,630,630,,630,630,630,630,630,,,,,,,,,,,,,,,,,,,,630,,,630,,,630,630,,,630,,630,,,,630,,,,,,,,,630,,,,,630,630,630,630,,630,630,630,630,,,,,630,630,,,,631,631,631,630,631,630,630,630,631,631,630,630,,631,,631,631,631,631,631,631,631,,,,,,631,631,631,631,631,631,631,,,631,,,,,,,631,,,631,631,631,631,631,631,631,631,631,631,631,631,,631,631,631,631,631,,,,,,,,,,,,,,,,,,,,631,,,631,,,631,631,,,631,,631,,631,,631,,,631,,,,,,631,,,,,631,631,631,631,,631,631,631,631,,,,,631,631,,,,641,641,641,631,641,631,631,631,641,641,631,631,,641,,641,641,641,641,641,641,641,,,,,,641,641,641,641,641,641,641,,,641,,,,,,,641,,,641,641,641,641,641,641,641,641,641,641,641,641,,641,641,641,641,641,,,,,,,,,,,,,,,,,,,,641,,,641,,,641,641,,,641,,641,,641,,641,,,641,,,,,,641,,,,,641,641,641,641,,641,641,641,641,,,,,641,641,,,,,,,641,,641,641,641,,,641,641,672,672,672,672,672,,,,672,672,,,,672,,672,672,672,672,672,672,672,,,,,,672,672,672,672,672,672,672,,,672,,,,,,672,672,,672,672,672,672,672,672,672,672,672,,672,672,672,,672,672,672,672,672,,,,,,,,,,,,,,,,,,,,672,,,672,,,672,672,,,672,,672,,,,672,,,,,,,,,672,,,,,672,672,672,672,,672,672,672,672,,,,,672,672,,,,674,674,674,672,674,672,672,672,674,674,672,672,,674,,674,674,674,674,674,674,674,,,,,,674,674,674,674,674,674,674,,,674,,,,,,,674,,,674,674,674,674,674,674,674,674,,674,674,674,,674,674,674,674,674,,,,,,,,,,,,,,,,,,,,674,,,674,,,674,674,,,674,,674,,,,674,,,,,,,,,674,,,,,674,674,674,674,,674,674,674,674,,,,,674,674,,,,675,675,675,674,675,674,674,674,675,675,674,674,,675,,675,675,675,675,675,675,675,,,,,,675,675,675,675,675,675,675,,,675,,,,,,,675,,,675,675,675,675,675,675,675,675,,675,675,675,,675,675,675,675,675,,,,,,,,,,,,,,,,,,,,675,,,675,,,675,675,,,675,,,,,,675,,,,,,,,,675,,,,,675,675,675,675,,675,675,675,675,,,,,675,675,,,,676,676,676,675,676,675,675,675,676,676,675,675,,676,,676,676,676,676,676,676,676,,,,,,676,676,676,676,676,676,676,,,676,,,,,,,676,,,676,676,676,676,676,676,676,676,676,676,676,676,,676,676,676,676,676,,,,,,,,,,,,,,,,,,,,676,,,676,,,676,676,,,676,,676,,676,,676,,,676,,,,,,676,,,,,676,676,676,676,,676,676,676,676,,,,,676,676,,,,,,,676,,676,676,676,,,676,676,679,679,679,679,679,,,,679,679,,,,679,,679,679,679,679,679,679,679,,,,,,679,679,679,679,679,679,679,,,679,,,,,,679,679,,679,679,679,679,679,679,679,679,679,,679,679,679,,679,679,679,679,679,,,,,,,,,,,,,,,,,,,,679,,,679,,,679,679,,,679,,679,,,,679,,,,,,,,,679,,,,,679,679,679,679,,679,679,679,679,,,,,679,679,,,,680,680,680,679,680,679,679,679,680,680,679,679,,680,,680,680,680,680,680,680,680,,,,,,680,680,680,680,680,680,680,,,680,,,,,,,680,,,680,680,680,680,680,680,680,680,,680,680,680,,680,680,680,680,680,,,,,,,,,,,,,,,,,,,,680,,,680,,,680,680,,,680,,,,,,680,,,,,,,,,680,,,,,680,680,680,680,,680,680,680,680,,,,,680,680,,,,683,683,683,680,683,680,680,680,683,683,680,680,,683,,683,683,683,683,683,683,683,,,,,,683,683,683,683,683,683,683,,,683,,,,,,,683,,,683,683,683,683,683,683,683,683,683,683,683,683,,683,683,683,683,683,,,,,,,,,,,,,,,,,,,,683,,,683,,,683,683,,,683,,683,,683,,683,,,683,,,,,,683,,,,,683,683,683,683,,683,683,683,683,,,,,683,683,,,,684,684,684,683,684,683,683,683,684,684,683,683,,684,,684,684,684,684,684,684,684,,,,,,684,684,684,684,684,684,684,,,684,,,,,,,684,,,684,684,684,684,684,684,684,684,684,684,684,684,,684,684,684,684,684,,,,,,,,,,,,,,,,,,,,684,,,684,,,684,684,,,684,,,,684,,684,,,684,,,,,,684,,,,,684,684,684,684,,684,684,684,684,,,,,684,684,,,,685,685,685,684,685,684,684,684,685,685,684,684,,685,,685,685,685,685,685,685,685,,,,,,685,685,685,685,685,685,685,,,685,,,,,,,685,,,685,685,685,685,685,685,685,685,,685,685,685,,685,685,685,685,685,,,,,,,,,,,,,,,,,,,,685,,,685,,,685,685,,,685,,,,,,685,,,,,,,,,685,,,,,685,685,685,685,,685,685,685,685,,,,,685,685,,,,686,686,686,685,686,685,685,685,686,686,685,685,,686,,686,686,686,686,686,686,686,,,,,,686,686,686,686,686,686,686,,,686,,,,,,,686,,,686,686,686,686,686,686,686,686,,686,686,686,,686,686,686,686,686,,,,,,,,,,,,,,,,,,,,686,,,686,,,686,686,,,686,,,,,,686,,,,,,,,,686,,,,,686,686,686,686,,686,686,686,686,,,,,686,686,,,,690,690,690,686,690,686,686,686,690,690,686,686,,690,,690,690,690,690,690,690,690,,,,,,690,690,690,690,690,690,690,,,690,,,,,,,690,,,690,690,690,690,690,690,690,690,,690,690,690,,690,690,690,690,690,,,,,,,,,,,,,,,,,,,,690,,,690,,,690,690,,,690,,,,,,690,,,,,,,,,690,,,,,690,690,690,690,,690,690,690,690,,,,,690,690,,,,691,691,691,690,691,690,690,690,691,691,690,690,,691,,691,691,691,691,691,691,691,,,,,,691,691,691,691,691,691,691,,,691,,,,,,,691,,,691,691,691,691,691,691,691,691,,691,691,691,,691,691,691,691,691,,,,,,,,,,,,,,,,,,,,691,,,691,,,691,691,,,691,,,,,,691,,,,,,,,,691,,,,,691,691,691,691,,691,691,691,691,,,,,691,691,,,,697,697,697,691,697,691,691,691,697,697,691,691,,697,,697,697,697,697,697,697,697,,,,,,697,697,697,697,697,697,697,,,697,,,,,,,697,,,697,697,697,697,697,697,697,697,,697,697,697,,697,697,697,697,697,,,,,,,,,,,,,,,,,,,,697,,,697,,,697,697,,,697,,697,,,,697,,,,,,,,,697,,,,,697,697,697,697,,697,697,697,697,,,,,697,697,,,,713,713,713,697,713,697,697,697,713,713,697,697,,713,,713,713,713,713,713,713,713,,,,,,713,713,713,713,713,713,713,,,713,,,,,,,713,,,713,713,713,713,713,713,713,713,,713,713,713,,713,713,713,713,713,,,,,,,,,,,,,,,,,,,,713,,,713,,,713,713,,,713,,,,,,713,,,,,,,,,713,,,,,713,713,713,713,,713,713,713,713,,,,,713,713,,,,735,735,735,713,735,713,713,713,735,735,713,713,,735,,735,735,735,735,735,735,735,,,,,,735,735,735,735,735,735,735,,,735,,,,,,,735,,,735,735,735,735,735,735,735,735,,735,735,735,,735,735,735,735,735,,,,,,,,,,,,,,,,,,,,735,,,735,,,735,735,,,735,,,,,,735,,,,,,,,,735,,,,,735,735,735,735,,735,735,735,735,,,,,735,735,,,,736,736,736,735,736,735,735,735,736,736,735,735,,736,,736,736,736,736,736,736,736,,,,,,736,736,736,736,736,736,736,,,736,,,,,,,736,,,736,736,736,736,736,736,736,736,,736,736,736,,736,736,736,736,736,,,,,,,,,,,,,,,,,,,,736,,,736,,,736,736,,,736,,,,,,736,,,,,,,,,736,,,,,736,736,736,736,,736,736,736,736,,,,,736,736,,,,791,791,791,736,791,736,736,736,791,791,736,736,,791,,791,791,791,791,791,791,791,,,,,,791,791,791,791,791,791,791,,,791,,,,,,,791,,,791,791,791,791,791,791,791,791,791,791,791,791,,791,791,791,791,791,,,,,,,,,,,,,,,,,,,,791,,,791,,,791,791,,,791,,791,,791,,791,,,791,,,,,,791,,,,,791,791,791,791,,791,791,791,791,,,,,791,791,,,,800,800,800,791,800,791,791,791,800,800,791,791,,800,,800,800,800,800,800,800,800,,,,,,800,800,800,800,800,800,800,,,800,,,,,,,800,,,800,800,800,800,800,800,800,800,,800,800,800,,800,800,800,800,800,,,,,,,,,,,,,,,,,,,,800,,,800,,,800,800,,,800,,,,,,800,,,,,,,,,800,,,,,800,800,800,800,,800,800,800,800,,,,,800,800,,,,803,803,803,800,803,800,800,800,803,803,800,800,,803,,803,803,803,803,803,803,803,,,,,,803,803,803,803,803,803,803,,,803,,,,,,,803,,,803,803,803,803,803,803,803,803,,803,803,803,,803,803,803,803,803,,,,,,,,,,,,,,,,,,,,803,,,803,,,803,803,,,803,,,,,,803,,,,,,,,,803,,,,,803,803,803,803,,803,803,803,803,,,,,803,803,,,,821,821,821,803,821,803,803,803,821,821,803,803,,821,,821,821,821,821,821,821,821,,,,,,821,821,821,821,821,821,821,,,821,,,,,,,821,,,821,821,821,821,821,821,821,821,,821,821,821,,821,821,821,821,821,,,,,,,,,,,,,,,,,,,,821,,,821,,,821,821,,,821,,,,,,821,,,,,,,,,821,,,,,821,821,821,821,,821,821,821,821,,,,,821,821,,,,850,850,850,821,850,821,821,821,850,850,821,821,,850,,850,850,850,850,850,850,850,,,,,,850,850,850,850,850,850,850,,,850,,,,,,,850,,,850,850,850,850,850,850,850,850,,850,850,850,,850,850,850,850,850,,,,,,,,,,,,,,,,,,,,850,,,850,,,850,850,,,850,,,,,,850,,,,,,,,,850,,,,,850,850,850,850,,850,850,850,850,,,,,850,850,,,,870,870,870,850,870,850,850,850,870,870,850,850,,870,,870,870,870,870,870,870,870,,,,,,870,870,870,870,870,870,870,,,870,,,,,,,870,,,870,870,870,870,870,870,870,870,,870,870,870,,870,870,870,870,870,,,,,,,,,,,,,,,,,,,,870,,,870,,,870,870,,,870,,,,,,870,,,,,,,,,870,,,,,870,870,870,870,,870,870,870,870,,,,,870,870,,,,878,878,878,870,878,870,870,870,878,878,870,870,,878,,878,878,878,878,878,878,878,,,,,,878,878,878,878,878,878,878,,,878,,,,,,,878,,,878,878,878,878,878,878,878,878,,878,878,878,,878,878,878,878,878,,,,,,,,,,,,,,,,,,,,878,,,878,,,878,878,,,878,,,,,,878,,,,,,,,,878,,,,,878,878,878,878,,878,878,878,878,,,,,878,878,,,,891,891,891,878,891,878,878,878,891,891,878,878,,891,,891,891,891,891,891,891,891,,,,,,891,891,891,891,891,891,891,,,891,,,,,,,891,,,891,891,891,891,891,891,891,891,,891,891,891,,891,891,891,891,891,,,,,,,,,,,,,,,,,,,,891,,,891,,,891,891,,,891,,,,,,891,,,,,,,,,891,,,,,891,891,891,891,,891,891,891,891,,,,,891,891,,,,892,892,892,891,892,891,891,891,892,892,891,891,,892,,892,892,892,892,892,892,892,,,,,,892,892,892,892,892,892,892,,,892,,,,,,,892,,,892,892,892,892,892,892,892,892,,892,892,892,,892,892,892,892,892,,,,,,,,,,,,,,,,,,,,892,,,892,,,892,892,,,892,,,,,,892,,,,,,,,,892,,,,,892,892,892,892,,892,892,892,892,,,,,892,892,,,,920,920,920,892,920,892,892,892,920,920,892,892,,920,,920,920,920,920,920,920,920,,,,,,920,920,920,920,920,920,920,,,920,,,,,,,920,,,920,920,920,920,920,920,920,920,,920,920,920,,920,920,920,920,920,,,,,,,,,,,,,,,,,,,,920,,,920,,,920,920,,,920,,,,,,920,,,,,,,,,920,,,,,920,920,920,920,,920,920,920,920,,,,,920,920,,,,921,921,921,920,921,920,920,920,921,921,920,920,,921,,921,921,921,921,921,921,921,,,,,,921,921,921,921,921,921,921,,,921,,,,,,,921,,,921,921,921,921,921,921,921,921,,921,921,921,,921,921,921,921,921,,,,,,,,,,,,,,,,,,,,921,,,921,,,921,921,,,921,,,,,,921,,,,,,,,,921,,,,,921,921,921,921,,921,921,921,921,,,,,921,921,,,,922,922,922,921,922,921,921,921,922,922,921,921,,922,,922,922,922,922,922,922,922,,,,,,922,922,922,922,922,922,922,,,922,,,,,,,922,,,922,922,922,922,922,922,922,922,,922,922,922,,922,922,922,922,922,,,,,,,,,,,,,,,,,,,,922,,,922,,,922,922,,,922,,,,,,922,,,,,,,,,922,,,,,922,922,922,922,,922,922,922,922,,,,,922,922,,,,923,923,923,922,923,922,922,922,923,923,922,922,,923,,923,923,923,923,923,923,923,,,,,,923,923,923,923,923,923,923,,,923,,,,,,,923,,,923,923,923,923,923,923,923,923,,923,923,923,,923,923,923,923,923,,,,,,,,,,,,,,,,,,,,923,,,923,,,923,923,,,923,,,,,,923,,,,,,,,,923,,,,,923,923,923,923,,923,923,923,923,,,,,923,923,,,,924,924,924,923,924,923,923,923,924,924,923,923,,924,,924,924,924,924,924,924,924,,,,,,924,924,924,924,924,924,924,,,924,,,,,,,924,,,924,924,924,924,924,924,924,924,,924,924,924,,924,924,924,924,924,,,,,,,,,,,,,,,,,,,,924,,,924,,,924,924,,,924,,,,,,924,,,,,,,,,924,,,,,924,924,924,924,,924,924,924,924,,,,,924,924,,,,925,925,925,924,925,924,924,924,925,925,924,924,,925,,925,925,925,925,925,925,925,,,,,,925,925,925,925,925,925,925,,,925,,,,,,,925,,,925,925,925,925,925,925,925,925,,925,925,925,,925,925,925,925,925,,,,,,,,,,,,,,,,,,,,925,,,925,,,925,925,,,925,,,,,,925,,,,,,,,,925,,,,,925,925,925,925,,925,925,925,925,,,,,925,925,,,,958,958,958,925,958,925,925,925,958,958,925,925,,958,,958,958,958,958,958,958,958,,,,,,958,958,958,958,958,958,958,,,958,,,,,,,958,,,958,958,958,958,958,958,958,958,,958,958,958,,958,958,958,958,958,,,,,,,,,,,,,,,,,,,,958,,,958,,,958,958,,,958,,,,,,958,,,,,,,,,958,,,,,958,958,958,958,,958,958,958,958,,,,,958,958,,,,961,961,961,958,961,958,958,958,961,961,958,958,,961,,961,961,961,961,961,961,961,,,,,,961,961,961,961,961,961,961,,,961,,,,,,,961,,,961,961,961,961,961,961,961,961,,961,961,961,,961,961,961,961,961,,,,,,,,,,,,,,,,,,,,961,,,961,,,961,961,,,961,,,,,,961,,,,,,,,,961,,,,,961,961,961,961,,961,961,961,961,,,,,961,961,,,,984,984,984,961,984,961,961,961,984,984,961,961,,984,,984,984,984,984,984,984,984,,,,,,984,984,984,984,984,984,984,,,984,,,,,,,984,,,984,984,984,984,984,984,984,984,,984,984,984,,984,984,984,984,984,,,,,,,,,,,,,,,,,,,,984,,,984,,,984,984,,,984,,,,,,984,,,,,,,,,984,,,,,984,984,984,984,,984,984,984,984,,,,,984,984,,,,989,989,989,984,989,984,984,984,989,989,984,984,,989,,989,989,989,989,989,989,989,,,,,,989,989,989,989,989,989,989,,,989,,,,,,,989,,,989,989,989,989,989,989,989,989,,989,989,989,,989,989,989,989,989,,,,,,,,,,,,,,,,,,,,989,,,989,,,989,989,,,989,,989,,,,989,,,,,,,,,989,,,,,989,989,989,989,,989,989,989,989,,,,,989,989,,,,1008,1008,1008,989,1008,989,989,989,1008,1008,989,989,,1008,,1008,1008,1008,1008,1008,1008,1008,,,,,,1008,1008,1008,1008,1008,1008,1008,,,1008,,,,,,,1008,,,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,,1008,1008,1008,1008,1008,,,,,,,,,,,,,,,,,,,,1008,,,1008,,,1008,1008,,,1008,,,,1008,,1008,,,1008,,,,,,1008,,,,,1008,1008,1008,1008,,1008,1008,1008,1008,,,,,1008,1008,,,,1034,1034,1034,1008,1034,1008,1008,1008,1034,1034,1008,1008,,1034,,1034,1034,1034,1034,1034,1034,1034,,,,,,1034,1034,1034,1034,1034,1034,1034,,,1034,,,,,,,1034,,,1034,1034,1034,1034,1034,1034,1034,1034,,1034,1034,1034,,1034,1034,1034,1034,1034,,,,,,,,,,,,,,,,,,,,1034,,,1034,,,1034,1034,,,1034,,,,,,1034,,,,,,,,,1034,,,,,1034,1034,1034,1034,,1034,1034,1034,1034,,,,,1034,1034,,,,1147,1147,1147,1034,1147,1034,1034,1034,1147,1147,1034,1034,,1147,,1147,1147,1147,1147,1147,1147,1147,,,,,,1147,1147,1147,1147,1147,1147,1147,,,1147,,,,,,,1147,,,1147,1147,1147,1147,1147,1147,1147,1147,,1147,1147,1147,,1147,1147,1147,1147,1147,,,,,,,,,,,,,,,,,,,,1147,,,1147,,,1147,1147,,,1147,,,,,,1147,,,,,,,,,1147,,,,,1147,1147,1147,1147,,1147,1147,1147,1147,,,,,1147,1147,,,,1148,1148,1148,1147,1148,1147,1147,1147,1148,1148,1147,1147,,1148,,1148,1148,1148,1148,1148,1148,1148,,,,,,1148,1148,1148,1148,1148,1148,1148,,,1148,,,,,,,1148,,,1148,1148,1148,1148,1148,1148,1148,1148,,1148,1148,1148,,1148,1148,1148,1148,1148,,,,,,,,,,,,,,,,,,,,1148,,,1148,,,1148,1148,,,1148,,,,,,1148,,,,,,,,,1148,,,,,1148,1148,1148,1148,,1148,1148,1148,1148,,,,,1148,1148,,,,1160,1160,1160,1148,1160,1148,1148,1148,1160,1160,1148,1148,,1160,,1160,1160,1160,1160,1160,1160,1160,,,,,,1160,1160,1160,1160,1160,1160,1160,,,1160,,,,,,,1160,,,1160,1160,1160,1160,1160,1160,1160,1160,1160,1160,1160,1160,,1160,1160,1160,1160,1160,,,,,,,,,,,,,,,,,,,,1160,,,1160,,,1160,1160,,,1160,,1160,,1160,,1160,,,1160,,,,,,1160,,,,,1160,1160,1160,1160,,1160,1160,1160,1160,,,,,1160,1160,,,,39,39,39,1160,39,1160,1160,1160,39,39,1160,1160,,39,,39,39,39,39,39,39,39,,,,,,39,39,39,39,39,39,39,,,39,,,,,,,39,,,39,39,39,39,39,39,39,39,,39,39,39,,39,39,,,39,,,,,,,,,,,,,,,,,,,,39,,,39,,,39,39,,,39,,39,,,,,,,,,,,,,,,,,,39,39,39,39,,39,39,39,39,,,,,39,39,,,,40,40,40,39,40,39,39,39,40,40,,,,40,,40,40,40,40,40,40,40,,,,,,40,40,40,40,40,40,40,,,40,,,,,,,40,,,40,40,40,40,40,40,40,40,,40,40,40,,40,40,,,40,,,,,,,,,,,,,,,,,,,,40,,,40,,,40,40,,,40,,,1206,,1206,1206,1206,1206,1206,,,,,,,,,1206,,40,40,40,40,,40,40,40,40,,,,,40,40,,,,40,,1206,40,,40,40,40,76,76,76,,76,1206,1206,,76,76,1206,,,76,,76,76,76,76,76,76,76,,,,,,76,76,76,76,76,76,76,,,76,,,,,,,76,,,76,76,76,76,76,76,76,76,,76,76,76,,76,76,,,76,,,,,,,,,,,,,,,,,,,,76,,,76,,,76,76,,,76,,76,,,,,,,,,,,,,,,,,,76,76,76,76,,76,76,76,76,,,,,76,76,,,,77,77,77,76,77,76,76,76,77,77,,,,77,,77,77,77,77,77,77,77,,,,,,77,77,77,77,77,77,77,,,77,,,,,,,77,,,77,77,77,77,77,77,77,77,,77,77,77,,77,77,,,77,,,,,,,,,,,,,,,,,77,,,77,,,77,,,77,77,,,77,,,,,,,,,,,,,,,,,,,,77,77,77,77,,77,77,77,77,,,,,77,77,,,,78,78,78,77,78,77,77,77,78,78,,,,78,,78,78,78,78,78,78,78,,,,,,78,78,78,78,78,78,78,,,78,,,,,,,78,,,78,78,78,78,78,78,78,78,,78,78,78,,78,78,,,78,,,,,,,,,,,,,,,,,,,,78,,,78,,,78,78,,,78,,,,,,,,,,,,,,,,,,,,78,78,78,78,,78,78,78,78,,,,,78,78,,,,342,342,342,78,342,78,78,78,342,342,,,,342,,342,342,342,342,342,342,342,,,,,,342,342,342,342,342,342,342,,,342,,,,,,,342,,,342,342,342,342,342,342,342,342,,342,342,342,,342,342,,,342,,,,,,,,,,,,,,,,,,,,342,,,342,,,342,342,,,342,,,1208,,1208,1208,1208,1208,1208,,,,,,,,,1208,,342,342,342,342,,342,342,342,342,,,,,342,342,,,,342,,1208,342,,342,342,342,361,361,361,,361,1208,1208,,361,361,1208,,,361,,361,361,361,361,361,361,361,,,,,,361,361,361,361,361,361,361,,,361,,,,,,,361,,,361,361,361,361,361,361,361,361,,361,361,361,,361,361,,,361,,,,,,,,,,,,,,,,,,,,361,,,361,,,361,361,,,361,,,,,,,,,,,,,,,,,,,,361,361,361,361,,361,361,361,361,,,,,361,361,,,,591,591,591,361,591,361,361,361,591,591,,,,591,,591,591,591,591,591,591,591,,,,,,591,591,591,591,591,591,591,,,591,,,,,,,591,,,591,591,591,591,591,591,591,591,,591,591,591,,591,591,,,591,,,,,,,,,,,,,,,,,,,,591,,,591,,,591,591,,,591,,,,,,,,,,,,,,,,,,,,591,591,591,591,,591,591,591,591,,,,,591,591,,,,600,600,600,591,600,591,591,591,600,600,,,,600,,600,600,600,600,600,600,600,,,,,,600,600,600,600,600,600,600,,,600,,,,,,,600,,,600,600,600,600,600,600,600,600,,600,600,600,,600,600,,,600,,,,,,,,,,,,,,,,,,,,600,,,600,,,600,600,,,600,,,,,,,,,,,,,,,,,,,,600,600,600,600,,600,600,600,600,,,,,600,600,,,,806,806,806,600,806,600,600,600,806,806,,,,806,,806,806,806,806,806,806,806,,,,,,806,806,806,806,806,806,806,,,806,,,,,,,806,,,806,806,806,806,806,806,806,806,,806,806,806,,806,806,,,806,,,,,,,,,,,,,,,,,,,,806,,,806,,,806,806,,,806,,,,,,,,,,,,,,,,,,,,806,806,806,806,,806,806,806,806,,,,,806,806,,,,817,817,817,806,817,806,806,806,817,817,,,,817,,817,817,817,817,817,817,817,,,,,,817,817,817,817,817,817,817,,,817,,,,,,,817,,,817,817,817,817,817,817,817,817,,817,817,817,,817,817,,,817,,,,,,,,,,,,,,,,,,,,817,,,817,,,817,817,,,817,,,,,,,,,,,,,,,,,,,,817,817,817,817,,817,817,817,817,,,,,817,817,,,,1016,1016,1016,817,1016,817,817,817,1016,1016,,,,1016,,1016,1016,1016,1016,1016,1016,1016,,,,,,1016,1016,1016,1016,1016,1016,1016,,,1016,,,,,,,1016,,,1016,1016,1016,1016,1016,1016,1016,1016,,1016,1016,1016,,1016,1016,,,1016,,,,,,,,,,,,,,,,,,,,1016,,,1016,,,1016,1016,,,1016,,,,,,,,,,,,,,,,,,,,1016,1016,1016,1016,,1016,1016,1016,1016,,,,,1016,1016,,,,1080,1080,1080,1016,1080,1016,1016,1016,1080,1080,,,,1080,,1080,1080,1080,1080,1080,1080,1080,,,,,,1080,1080,1080,1080,1080,1080,1080,,,1080,,,,,,,1080,,,1080,1080,1080,1080,1080,1080,1080,1080,,1080,1080,1080,,1080,1080,,,1080,,,,,,,,,,,,,,,,,,,,1080,,,1080,,,1080,1080,,,1080,,,,,,,,,,,,,,,,,,,,1080,1080,1080,1080,,1080,1080,1080,1080,,,,,1080,1080,,,,1142,1142,1142,1080,1142,1080,1080,1080,1142,1142,,,,1142,,1142,1142,1142,1142,1142,1142,1142,,,,,,1142,1142,1142,1142,1142,1142,1142,,,1142,,,,,,,1142,,,1142,1142,1142,1142,1142,1142,1142,1142,,1142,1142,1142,,1142,1142,,,1142,,,,,,,,,,,,,,,,,,,,1142,,,1142,,,1142,1142,,,1142,,,,,,,,,,,,,,,,,,,,1142,1142,1142,1142,,1142,1142,1142,1142,,,,,1142,1142,,,,,,,1142,,1142,1142,1142,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,,,,10,10,10,10,10,10,10,10,10,10,,,,,,10,10,10,10,10,10,10,10,10,10,,10,,,,,,,,10,10,,10,10,10,10,10,10,10,,,10,10,,,,10,10,10,10,,,,,,,,,,,,,,10,10,,10,10,10,10,10,10,10,10,10,10,10,10,,,10,10,,,,,,,,,,,,,,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,,,,11,11,11,11,11,11,11,11,11,11,,,,,,11,11,11,11,11,11,11,11,11,,,11,,,,,,,,11,11,,11,11,11,11,11,11,11,,,11,11,,,,11,11,11,11,,,,,,,,,,,,,,11,11,,11,11,11,11,11,11,11,11,11,11,11,11,,,11,11,,,,,,,,,,,,,,11,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,,,,428,428,428,428,428,428,428,428,428,428,,,,,,428,428,428,428,428,428,428,428,428,,,428,,,,,,,,428,428,,428,428,428,428,428,428,428,,,428,428,,,,428,428,428,428,,,,,,,,,,,,,,428,428,,428,428,428,428,428,428,428,428,428,428,428,428,,,428,428,,,,,,,,,,,,,,428,670,670,670,670,670,670,670,670,670,670,670,670,670,670,670,670,670,670,670,670,670,670,670,670,,,,670,670,670,670,670,670,670,670,670,670,,,,,,670,670,670,670,670,670,670,670,670,,,670,,,,,,,,670,670,,670,670,670,670,670,670,670,,,670,670,,,,670,670,670,670,,,,,,,,,,,,,,670,670,,670,670,670,670,670,670,670,670,670,670,670,670,,,670,670,,,,,,,,,,,,,,670,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,,,,26,26,26,26,26,26,26,26,26,26,,,,,,26,26,26,26,26,26,26,26,26,26,26,26,,26,,,,,,26,26,,26,26,26,26,26,26,26,,,26,26,,,,26,26,26,26,,,,,,26,,,,,,,,26,26,,26,26,26,26,26,26,26,26,26,26,26,26,,,26,530,530,530,530,,,1210,,1210,1210,1210,1210,1210,,,,530,530,530,530,,1210,,530,530,,,,,530,530,,,530,530,,,,,,,,,1210,,,,,,,,,,530,1210,1210,530,,,1210,530,,,530,,530,,,,,,,530,,,,,,,530,,,,530,530,530,530,,530,530,530,530,,,,,530,530,531,531,531,531,,,530,,530,530,530,,,530,530,,531,531,531,531,,,,531,531,,,,,531,531,,,531,531,,,,,,,,,,,,,,,,,,,531,,,531,,,,531,,,531,,531,,,,,,,531,,,,,,,531,,,,531,531,531,531,,531,531,531,531,,,,,531,531,748,748,748,748,,,531,,531,531,531,,,531,531,,748,748,748,748,,,,748,,,,,,748,748,,,748,,,,,,,,,,,,,,,,,,,,748,,,748,,,,748,,,748,,748,,,,,,,710,,710,710,710,710,710,748,,,,748,748,748,748,710,748,748,748,748,,,,,748,748,748,756,756,756,756,,748,,748,748,748,710,,748,748,,,756,756,756,756,,710,710,756,,,710,,,756,756,,,756,,,,,,,,,,,,,,,,,,,,756,,,756,,,,756,,,756,,,710,,,,,,,,,,,,,756,,,,756,756,756,756,,756,756,756,756,,,,,756,756,,,,,,,756,,756,756,756,,,756,756,783,783,783,783,783,783,783,783,783,783,783,783,783,783,783,783,783,783,783,783,783,783,783,783,,,,783,783,783,783,783,783,783,783,783,783,,,,,,783,783,783,783,783,783,783,783,783,,,783,,,,,,,,783,783,,783,783,783,783,783,783,783,,,783,783,,,,783,783,783,783,,,,,,,,,,,,,,783,783,,783,783,783,783,783,783,783,783,783,783,783,783,,,783,927,927,927,927,,,,,,1021,,1021,1021,1021,1021,1021,927,927,927,927,,,,927,1021,,,,,927,927,,,927,,,,,,,,,,,,,1021,,,,,,,927,,,927,1021,1021,,927,,1021,927,,927,,,,,,,,,,,,,,927,,,,927,927,927,927,,927,927,927,927,,,,,927,927,929,929,929,929,1021,,927,,927,927,927,,,927,927,,929,929,929,929,,,1136,929,1136,1136,1136,1136,1136,929,929,,,929,,,,1136,,,,,,,,,,,,,,,,929,,,929,,,1136,929,,,929,,,,,1136,1136,1136,1136,,,,1136,,,,929,,,,929,929,929,929,,929,929,929,929,,,,,929,929,932,932,932,932,,,929,,929,929,929,,,929,929,,932,932,932,932,,,,932,932,,,,,932,932,,,932,932,,,,,,,,,,,,,,,,,,,932,,,932,,,,932,,,932,,932,,,,,,,932,,,,,,,932,,,,932,932,932,932,,932,932,932,932,,,,,932,932,933,933,933,933,,,932,,932,932,932,,,932,932,,933,933,933,933,,,,933,933,,,,,933,933,,,933,933,,,,,,,,,,,,,,,,,,,933,,,933,,,,933,,,933,,933,,,,,,,933,,,,,,,933,,,,933,933,933,933,,933,933,933,933,,,,,933,933,939,939,939,939,,,933,,933,933,933,,,933,933,,939,939,939,939,,,1204,939,1204,1204,1204,1204,1204,939,939,,,939,,,,1204,,,,,,,,,,,,,,,,939,,,939,,,1204,939,,,939,,939,,,1204,1204,1204,1204,,,,1204,,,,939,,,,939,939,939,939,,939,939,939,939,,,,,939,939,945,945,945,945,,,939,,939,939,939,,,939,939,,945,945,945,945,,,1227,945,1227,1227,1227,1227,1227,945,945,,,945,,,,1227,,,,,,,,,,,,,,,,945,,,945,,,1227,945,,,945,,,,,,,1227,1227,,,,1227,,,,945,,,,945,945,945,945,,945,945,945,945,,,,,945,945,946,946,946,946,,,945,,945,945,945,,,945,945,,946,946,946,946,,,,946,,,,,,946,946,,,946,,,,,,,,,,,,,,,,,,,,946,,,946,,,,946,,,946,,,,,,,,,,,,,,,,946,,,,946,946,946,946,,946,946,946,946,,,,,946,946,988,988,988,988,,,946,,946,946,946,,,946,946,,988,988,988,988,,,,988,988,,,,,988,988,,,988,988,,,,,,,,,,,,,,,,,,,988,,,988,,,,988,,,988,,988,,,,,,,988,,,,,,,988,,,,988,988,988,988,,988,988,988,988,,,,,988,988,1115,1115,1115,1115,,,988,,988,988,988,,,988,988,,1115,1115,1115,1115,,,,1115,,,,,,1115,1115,,,1115,,,,,,,,,,,,,,,,,,,,1115,,,1115,,,,1115,,,1115,,,,,,,,,,,,,,,,1115,,,,1115,1115,1115,1115,,1115,1115,1115,1115,,,,,1115,1115,1123,1123,1123,1123,,,1115,,1115,1115,1115,,,1115,1115,,1123,1123,1123,1123,,,,1123,,,,,,1123,1123,,,1123,,,,,,,,,,,,,,,,,,,,1123,,,1123,,,,1123,,,1123,,,,,,,,,,,,,,,,1123,,,,1123,1123,1123,1123,,1123,1123,1123,1123,,,,,1123,1123,1127,1127,1127,1127,,,1123,,1123,1123,1123,,,1123,1123,,1127,1127,1127,1127,,,,1127,,,,,,1127,1127,,,1127,,,,,,,,,,,,,,,,,,,,1127,,,1127,,,,1127,,,1127,,1127,,,,,,,,,,,,,,1127,,,,1127,1127,1127,1127,,1127,1127,1127,1127,,,,,1127,1127,1202,1202,1202,1202,,,1127,,1127,1127,1127,,,1127,1127,,1202,1202,1202,1202,,,,1202,,,,,,1202,1202,,,1202,,,,,,,,766,766,766,766,,,,,,,,,1202,,,1202,766,766,766,1202,,,1202,,,,,,,766,766,,,766,,,,,1202,,,,1202,1202,1202,1202,,1202,1202,1202,1202,,,,,1202,1202,,,,,,,1202,,1202,1202,1202,,,1202,1202,971,,971,971,971,971,971,,,,,766,766,766,766,971,766,766,766,766,,,,,766,766,952,952,952,952,,,766,,766,766,766,971,,,,,952,952,952,,971,971,971,971,,,,971,,952,952,,,952,953,953,953,953,,,,,,,,,,,,,953,953,953,971,,,,,,,,,,953,953,,,953,,,,,,,,,,,,,,,,952,952,952,952,,952,952,952,952,,,,,952,952,,,,,,,952,,952,952,952,,,,,,,,,953,953,953,953,,953,953,953,953,,,,,953,953,,,,,,,953,,953,953,953,706,,706,706,706,706,706,,708,,708,708,708,708,708,706,,,,,,,,708,,1019,,1019,1019,1019,1019,1019,,,,,,706,,,1019,,,,,708,706,706,706,706,,,,706,708,708,708,708,,,,708,1019,,,,,,,,,1019,1019,1019,1019,,,1023,1019,1023,1023,1023,1023,1023,1025,,1025,1025,1025,1025,1025,,1023,706,,,,,,1025,,708,1164,,1164,1164,1164,1164,1164,,,,,,1023,,,1164,1019,,,1025,,,,1023,1023,,,,1023,,1025,1025,,,,1025,,1164,,,,,,,,,,,1164,1164,,,,1164,,,,,,,,,,,,226,226,,1023,226,,,,,,1025,,226,226,,226,226,226,226,226,226,226,,,226,226,,,1164,226,226,226,226,,,,,,226,,,,,,,,226,226,,226,226,226,226,226,226,226,226,226,226,226,226,227,227,226,,227,,,,,,,,227,227,,227,227,227,227,227,227,227,,,227,227,,,,227,227,227,227,,,,,,227,,,,,,,,227,227,,227,227,227,227,227,227,227,227,227,227,227,227,303,303,227,,303,,,,,,,,303,303,,303,303,303,303,303,303,303,,,303,303,,,,303,303,303,303,,,,,,,,,,,,,,303,303,,303,303,303,303,303,303,303,303,303,303,303,303,521,521,303,,521,,,,,,,,521,521,,521,521,521,521,521,521,521,,,521,521,,,,521,521,521,521,,,,,,521,,,,,,,,521,521,,521,521,521,521,521,521,521,521,521,521,521,521,522,522,521,,522,,,,,,,,522,522,,522,522,522,522,522,522,522,,,522,522,,,,522,522,522,522,,,,,,522,,,,,,,,522,522,,522,522,522,522,522,522,522,522,522,522,522,522,594,594,522,,594,,,,,,,,594,594,,594,594,594,594,594,594,594,,,594,594,,,,594,594,594,594,,,,,,594,,,,,,,,594,594,,594,594,594,594,594,594,594,594,594,594,594,594,595,595,594,,595,,,,,,,,595,595,,595,595,595,595,595,595,595,,,595,595,,,,595,595,595,595,,,,,,595,,,,,,,,595,595,,595,595,595,595,595,595,595,595,595,595,595,595,604,604,595,,604,,,,,,,,604,604,,604,604,604,604,604,604,604,,,604,604,,,,604,604,604,604,,,,,,604,,,,,,,,604,604,,604,604,604,604,604,604,604,604,604,604,604,604,605,605,604,,605,,,,,,,,605,605,,605,605,605,605,605,605,605,,,605,605,,,,605,605,605,605,,,,,,605,,,,,,,,605,605,,605,605,605,605,605,605,605,605,605,605,605,605,632,632,605,,632,,,,,,,,632,632,,632,632,632,632,632,632,632,,,632,632,,,,632,632,632,632,,,,,,632,,,,,,,,632,632,,632,632,632,632,632,632,632,632,632,632,632,632,633,633,632,,633,,,,,,,,633,633,,633,633,633,633,633,633,633,,,633,633,,,,633,633,633,633,,,,,,633,,,,,,,,633,633,,633,633,633,633,633,633,633,633,633,633,633,633,639,639,633,,639,,,,,,,,639,639,,639,639,639,639,639,639,639,,,639,639,,,,639,639,639,639,,,,,,639,,,,,,,,639,639,,639,639,639,639,639,639,639,639,639,639,639,639,640,640,639,,640,,,,,,,,640,640,,640,640,640,640,640,640,640,,,640,640,,,,640,640,640,640,,,,,,640,,,,,,,,640,640,,640,640,640,640,640,640,640,640,640,640,640,640,677,677,640,,677,,,,,,,,677,677,,677,677,677,677,677,677,677,,,677,677,,,,677,677,677,677,,,,,,677,,,,,,,,677,677,,677,677,677,677,677,677,677,677,677,677,677,677,678,678,677,,678,,,,,,,,678,678,,678,678,678,678,678,678,678,,,678,678,,,,678,678,678,678,,,,,,678,,,,,,,,678,678,,678,678,678,678,678,678,678,678,678,678,678,678,1161,1161,678,,1161,,,,,,,,1161,1161,,1161,1161,1161,1161,1161,1161,1161,,,1161,1161,,,,1161,1161,1161,1161,,,,,,1161,,,,,,,,1161,1161,,1161,1161,1161,1161,1161,1161,1161,1161,1161,1161,1161,1161,1162,1162,1161,,1162,,,,,,,,1162,1162,,1162,1162,1162,1162,1162,1162,1162,,,1162,1162,,,,1162,1162,1162,1162,,,,,,1162,,,,,,,,1162,1162,,1162,1162,1162,1162,1162,1162,1162,1162,1162,1162,1162,1162,1185,1185,1162,,1185,,,,,,,,1185,1185,,1185,1185,1185,1185,1185,1185,1185,,,1185,1185,,,,1185,1185,1185,1185,,,,,,1185,,,,,,,,1185,1185,,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,,,1185"),B=e.large_array_unpack(",204,979,226,,-110,,5154,964,144,24967,25095,159,,157,176,525,279,-62,-84,162,374,,-71,5285,1123,25479,358,,171,,-8,5426,5536,5670,5801,5932,,1123,23109,23240,,281,525,531,368,6063,6194,205,6325,6456,525,6587,318,342,,,,,,,,,,6728,,6869,7000,7131,35,,7262,7393,,,7524,23379,23510,23641,,,,,,,,,,612,,,,,,,,,,,,,,,,,,,,,,,0,112,,,,,,,,,,,,,7667,,,,,7810,7941,8072,8203,8346,,1267,,588,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,345,,1411,8477,8608,8739,8870,9001,9132,27591,27652,,,363,1555,372,,719,831,384,1699,9263,9394,9525,,,514,-23,141,480,193,409,536,,9656,307,388,1843,541,,,9787,9918,10049,10180,10311,10442,10573,10704,10835,10966,11097,11228,11359,11490,11621,11752,11883,12014,12145,12276,12407,12538,,,,,12669,,,226,302,515,517,518,532,550,558,584,585,,,,12800,,,27713,,,541,12931,13062,,,,,,,,13193,,1843,,512,532,,13324,585,13455,,,13586,13717,,,221,,13860,1252,599,579,1987,626,687,648,23772,2131,694,806,873,748,878,,724,691,225,743,748,,,,750,221,707,23911,,564,879,3283,3427,778,,779,13991,,757,2275,1396,721,,139,574,760,743,583,773,,577,-1,11,14122,2419,2563,264,845,727,-18,10,893,810,11,842,,,441,481,513,,962,,761,14253,,15821,,193,378,396,402,412,-41,-27,463,,,,,,,,756,25223,,,,,759,,835,746,14384,747,,,736,,968,246,850,,,1267,,,,,,1411,764,,763,765,615,669,14525,,,,,222,334,825,,,14657,14793,14930,908,913,,,-1,793,792,800,,,805,816,818,,,,,,,,,,807,3125,,,15061,,,,,,,,902,,,907,361,15192,950,,,,-35,,870,27774,27835,15323,253,15454,15585,15716,823,828,25562,25660,3571,3715,-45,1018,908,912,925,927,5285,5375,5488,3859,4003,4147,4291,4435,4579,3311,3455,4723,4867,1987,5011,,-33,,15857,,,,,15987,886,885,889,,,,892,,,16118,,16249,,16380,,329,,,,16523,1540,,918,917,,,918,24042,923,16666,27896,27957,972,968,,,24173,925,,16797,28018,28079,16928,5154,17059,,1051,932,976,,17190,,,17321,,,,2707,1056,,2851,62,1060,1064,508,1066,17452,17583,28140,28201,27,,,995,,28262,28323,17714,,,81,2995,,15851,,,,,1033,,,,958,,,153,,263,,,944,,947,,,,25351,,17857,950,17988,18119,18250,28384,28445,18393,18524,693,991,18655,18786,18917,19048,997,,,19179,19310,1002,,1060,1555,1091,19441,,,,,888,,,544,27424,,27432,,25811,,961,19572,,3154,,976,978,729,983,,,,,1087,1699,,,,277,286,473,612,1001,19703,19834,,-77,,,,,1023,,,,582,25758,94,,1002,1085,1006,,,25857,,,303,,,654,,,6728,27202,,,,,,,,,,,,838,612,,,1016,26000,,1140,,1123,91,,,19965,,1038,1050,1156,,1046,,1096,20096,,,20227,,245,24304,1070,,1074,236,250,1120,360,1123,1124,1084,24435,,1153,2131,20358,,,,604,738,,1208,,,,,,1218,1226,,,26,1106,40,41,151,152,3139,970,1267,,1107,3283,20489,,1238,63,1118,,,,,,3427,,,,,,,,,1117,20620,1123,306,343,722,834,,2275,20751,,1122,,,,,,,,,,,20882,21013,1248,,3571,1124,1173,,,1131,,1223,,,1142,1143,,1146,1147,,1148,,,,1153,3184,3164,,,21144,21275,21406,21537,21668,21799,347,26083,1252,26181,-41,252,26279,26377,622,-32,1174,1176,,26475,,1175,359,,1196,26573,26671,,637,1236,333,,27300,27334,,,,,21930,,,22061,,,1218,,,1234,1218,,,27255,3715,,,,,1220,338,,-7,,1345,,22192,1348,,,26769,22323,3859,68,1352,,1354,442,4003,,,,,1231,1281,1252,1247,445,,,22454,2419,2563,,4147,,,32,24566,,,27449,,26073,,27501,,27508,,,,,1248,1258,2707,2851,22585,,1259,,,,,1264,1267,1269,1271,1274,1278,,,,1331,1286,1287,,1293,,,122,1291,,,,,,,1295,2995,4291,,,1294,1314,,1315,1317,1319,,1344,1337,1326,24697,,,,,,33,,34,728,,615,,,,1482,4435,4579,1109,,,,4723,35,36,1165,1437,42,,1364,1365,1368,1372,3651,3795,26867,,,,,,,,26965,,370,,27063,,,1444,,,15876,,,26184,,14588,,,1398,24828,1309,1460,4867,,22716,22847,,,,,1410,1515,636,,,,1518,22978,28506,28567,98,27526,,,,,1397,1402,1403,,,1404,,,1405,1408,1412,1413,,1419,,1411,28628,,797,5011,,,,,,1829,,1432,102,138,145,181,1430,27161,,26478,,23287,,23819,,25549,,,1475,1478,,38,,146,,1435,1436,1438,1458,,,,26576,,,,,1459,"),I=e.large_array_unpack("-1,-741,-4,-741,-2,-727,-5,-741,-8,-741,-741,-741,-741,-31,-741,-741,-36,-741,-741,-637,-637,-313,-52,-729,-741,-61,-741,-69,-70,-71,-75,-287,-287,-287,-326,-354,-355,-87,-13,-91,-99,-101,-741,-624,-625,-741,-741,-741,-741,-741,-741,-239,-741,-729,-258,-304,-305,-306,-307,-308,-309,-310,-311,-312,-717,-315,-319,-740,-705,-335,-337,-741,-741,-63,-63,-727,-741,-741,-741,-356,-357,-359,-360,-361,-362,-421,-563,-564,-565,-566,-587,-569,-570,-589,-591,-574,-579,-583,-585,-601,-602,-603,-587,-605,-607,-608,-609,-610,-611,-612,-613,-715,-716,-616,-617,-618,-619,-620,-621,-622,-623,-628,-629,1234,-3,-728,-736,-737,-738,-7,-741,-741,-741,-741,-741,-9,-4,-19,-741,-130,-131,-132,-133,-134,-135,-136,-140,-141,-142,-143,-144,-145,-146,-147,-148,-149,-150,-151,-152,-153,-154,-155,-156,-157,-158,-159,-160,-161,-162,-163,-164,-165,-166,-167,-168,-169,-170,-171,-172,-173,-174,-175,-176,-177,-178,-179,-180,-181,-182,-183,-184,-185,-186,-187,-188,-189,-190,-191,-192,-193,-194,-195,-196,-197,-198,-199,-200,-201,-202,-203,-204,-205,-206,-207,-208,-209,-210,-24,-137,-13,-741,-741,-741,-741,-741,-277,-741,-741,-725,-726,-741,-13,-636,-634,-660,-660,-741,-13,-741,-741,-729,-730,-56,-741,-624,-625,-741,-313,-741,-741,-245,-741,-637,-637,-13,-741,-57,-59,-222,-223,-741,-741,-741,-741,-741,-741,-741,-741,-741,-741,-741,-741,-741,-741,-741,-741,-741,-741,-741,-741,-259,-260,-261,-262,-741,-65,-66,-741,-130,-131,-170,-171,-172,-188,-193,-200,-203,-624,-625,-703,-741,-430,-432,-741,-723,-724,-76,-277,-741,-334,-436,-445,-447,-82,-442,-83,-729,-84,-265,-282,-292,-292,-286,-290,-293,-295,-587,-707,-711,-714,-85,-86,-727,-14,-741,-17,-741,-89,-13,-729,-741,-92,-95,-13,-107,-108,-741,-741,-115,-326,-329,-729,-741,-637,-637,-354,-355,-358,-443,-741,-97,-741,-103,-323,-741,-224,-225,-606,-233,-234,-741,-246,-251,-13,-317,-729,-266,-729,-729,-741,-741,-729,-741,-336,-62,-741,-741,-741,-13,-13,-727,-741,-728,-624,-625,-741,-741,-313,-741,-372,-373,-125,-126,-741,-128,-741,-313,-632,-741,-350,-660,-567,-741,-741,-741,-741,-741,-741,-741,-741,-6,-739,-25,-26,-27,-28,-29,-741,-741,-21,-22,-23,-138,-741,-32,-35,-300,-295,-741,-299,-33,-741,-37,-741,-313,-49,-51,-211,-270,-293,-53,-54,-38,-212,-270,-729,-278,-292,-292,-715,-716,-287,-440,-717,-718,-719,-716,-715,-287,-439,-441,-717,-719,-741,-555,-741,-385,-386,-686,-729,-702,-702,-642,-643,-645,-645,-645,-659,-661,-662,-663,-664,-665,-666,-667,-668,-669,-741,-671,-673,-675,-680,-682,-683,-684,-691,-693,-694,-696,-697,-698,-700,-741,-741,-741,-48,-219,-55,-729,-333,-741,-741,-741,-277,-323,-741,-741,-741,-741,-741,-741,-741,-220,-221,-226,-227,-228,-229,-230,-231,-235,-236,-237,-238,-240,-241,-242,-243,-244,-247,-248,-249,-250,-729,-263,-67,-729,-451,-287,-715,-716,-73,-77,-661,-729,-292,-729,-288,-449,-451,-729,-328,-283,-741,-284,-741,-289,-741,-294,-741,-710,-713,-12,-728,-16,-18,-729,-88,-321,-104,-93,-741,-729,-277,-741,-741,-114,-741,-636,-606,-741,-100,-105,-741,-741,-741,-741,-264,-741,-330,-741,-729,-741,-267,-735,-734,-269,-735,-324,-325,-706,-13,-363,-364,-13,-741,-741,-741,-741,-741,-741,-277,-741,-741,-323,-63,-125,-126,-127,-741,-741,-277,-346,-630,-741,-13,-422,-660,-425,-568,-588,-593,-741,-595,-571,-590,-741,-592,-573,-741,-576,-741,-578,-581,-741,-582,-741,-604,-10,-20,-741,-30,-741,-303,-741,-741,-277,-741,-741,-741,-741,-444,-741,-279,-281,-741,-741,-78,-276,-437,-741,-741,-80,-438,-44,-254,-740,-740,-352,-524,-685,-635,-741,-640,-641,-741,-741,-652,-741,-655,-741,-657,-741,-741,-374,-741,-376,-378,-381,-384,-729,-674,-695,-699,-638,-46,-256,-353,-332,-731,-715,-716,-715,-716,-729,-741,-741,-58,-465,-468,-469,-470,-471,-473,-475,-478,-479,-534,-729,-491,-494,-504,-508,-513,-515,-516,-519,-520,-587,-523,-525,-526,-527,-532,-533,-741,-741,-537,-538,-539,-540,-541,-542,-543,-544,-545,-546,-547,-741,-741,-553,-60,-741,-741,-704,-741,-452,-72,-433,-449,-272,-279,-274,-741,-411,-741,-327,-292,-291,-296,-298,-708,-709,-741,-15,-90,-741,-96,-102,-729,-715,-716,-275,-720,-113,-741,-98,-741,-218,-232,-252,-741,-316,-318,-320,-729,-740,-365,-740,-64,-366,-367,-340,-341,-741,-741,-457,-343,-741,-729,-715,-716,-720,-322,-13,-125,-126,-129,-729,-13,-741,-348,-741,-741,-729,-594,-597,-598,-599,-600,-13,-572,-575,-577,-580,-584,-586,-139,-34,-301,-298,-729,-715,-716,-716,-715,-50,-271,-741,-732,-292,-40,-214,-41,-215,-79,-42,-217,-43,-216,-81,-741,-741,-740,-370,-13,-556,-740,-557,-558,-702,-681,-686,-701,-644,-645,-645,-672,-645,-645,-692,-645,-669,-388,-687,-729,-741,-741,-383,-670,-741,-741,-741,-741,-741,-741,-444,-466,-741,-741,-476,-477,-741,-741,-741,-496,-729,-729,-490,-497,-501,-741,-741,-493,-741,-741,-741,-507,-514,-518,-741,-522,-530,-531,-535,-536,-548,-549,-741,-126,-551,-741,-68,-431,-411,-435,-434,-741,-729,-446,-412,-729,-13,-448,-285,-297,-712,-94,-444,-106,-729,-268,-741,-368,-741,-741,-342,-344,-741,-741,-13,-444,-741,-444,-741,-741,-13,-351,-423,-426,-428,-415,-741,-741,-302,-444,-39,-213,-280,-45,-255,-11,-13,-562,-371,-741,-741,-560,-639,-741,-648,-741,-650,-741,-653,-741,-656,-658,-375,-377,-379,-382,-47,-257,-741,-467,-504,-472,-474,-483,-487,-729,-729,-729,-729,-729,-729,-552,-488,-489,-511,-498,-499,-502,-729,-587,-733,-729,-505,-509,-512,-517,-521,-528,-529,-729,-253,-13,-74,-273,-702,-702,-392,-394,-394,-394,-410,-741,-729,-669,-677,-678,-689,-450,-331,-338,-741,-339,-741,-462,-296,-740,-345,-347,-631,-741,-13,-13,-741,-424,-596,-561,-13,-624,-625,-741,-741,-313,-559,-645,-645,-645,-645,-741,-741,-741,-480,-481,-482,-484,-485,-486,-503,-741,-492,-741,-495,-741,-550,-453,-741,-390,-391,-395,-401,-403,-741,-406,-741,-408,-413,-741,-741,-676,-741,-13,-458,-741,-741,-454,-455,-456,-349,-741,-741,-729,-417,-419,-420,-555,-277,-741,-741,-323,-741,-646,-649,-651,-654,-380,-505,-500,-506,-510,-702,-679,-393,-394,-394,-394,-394,-690,-394,-414,-688,-741,-323,-740,-13,-463,-464,-427,-429,-416,-741,-554,-729,-715,-716,-720,-322,-645,-741,-389,-741,-398,-741,-400,-741,-404,-741,-407,-409,-322,-720,-369,-740,-418,-444,-647,-394,-394,-394,-394,-459,-460,-461,-741,-396,-399,-402,-405,-394,-397"),D=e.large_array_unpack("44,412,475,341,340,44,142,142,514,319,319,319,696,419,233,233,226,302,286,638,496,496,142,285,298,383,128,304,455,385,386,714,893,390,137,218,44,345,345,145,145,713,15,629,357,357,835,15,388,389,566,703,704,900,461,468,907,621,624,737,781,562,376,125,44,135,574,310,314,982,439,440,242,124,394,298,298,798,15,798,801,357,357,357,306,313,315,237,422,423,424,425,367,910,303,906,128,908,793,17,740,740,446,360,17,446,15,337,1029,601,564,613,616,479,512,620,399,487,487,446,720,1031,801,44,707,709,711,1036,320,320,320,558,44,1002,44,17,4,972,339,1052,943,452,129,391,610,785,1074,1,903,1156,1158,903,2,1181,1011,515,804,795,936,1043,1046,377,217,17,985,15,407,409,400,1054,659,661,598,598,15,435,15,954,955,8,317,330,331,428,8,433,530,798,798,801,531,829,1051,287,783,789,496,759,759,1059,319,670,370,574,1058,608,379,788,299,380,398,642,373,655,657,660,660,44,611,375,340,1181,17,472,821,849,996,645,1030,44,937,17,1076,17,1134,44,1078,579,1155,230,236,521,646,374,998,1217,1158,233,233,714,1077,410,44,918,853,847,738,738,1096,15,420,441,462,1097,441,557,568,569,434,445,427,15,445,964,1149,1088,1224,15,441,988,834,1188,319,319,1037,304,445,1038,932,648,933,319,942,487,15,798,321,321,321,945,1060,1061,8,957,340,897,1029,1067,1177,340,1015,426,411,8,438,438,17,1169,17,967,237,17,464,464,413,602,734,1172,17,378,381,414,44,415,17,17,44,1035,915,807,345,44,1041,1044,594,625,416,357,816,461,468,17,555,128,626,627,417,1141,418,345,1075,855,604,860,1063,1064,357,850,1059,902,905,44,901,1170,15,907,1059,1175,15,,1173,1171,,15,,,44,44,310,,583,,585,632,314,960,809,,,464,582,565,320,599,910,590,,337,1109,,320,128,337,15,1042,1045,852,1072,,,,237,812,,142,761,761,1150,15,15,1215,17,812,496,839,17,,,586,,17,677,885,592,848,1124,,890,694,,714,714,669,,567,1173,,145,628,863,812,863,570,,,,239,,812,,17,1018,528,529,935,,384,384,,871,384,1174,949,907,,17,17,,725,,,,496,519,496,,372,688,319,,,,,,693,461,468,,,,990,584,798,801,687,,,1089,472,,,692,1178,,,1179,854,,775,775,487,,,724,968,384,384,384,384,909,,911,974,,,1020,1022,898,1024,1026,1047,1027,1225,,977,602,446,462,740,981,907,,,,602,,446,446,319,571,321,446,446,,,,903,,321,1072,,44,1072,,1072,,,826,,345,828,472,587,1220,688,,357,,345,759,759,472,881,883,,357,319,886,888,759,844,787,,,,759,319,464,464,44,994,,44,15,1142,974,,450,451,472,462,,,,1226,472,,,,,462,1131,1132,44,517,518,830,714,714,,1072,319,1072,935,1072,759,1072,,935,935,,15,,,15,851,142,,462,950,44,1057,,1072,472,,462,44,,,17,,,,,15,,1102,,,464,464,899,,867,,,1195,,145,464,464,,,,556,,,,,,,15,462,738,441,,,17,15,,17,,445,838,441,441,,464,464,441,441,701,445,445,464,464,,445,445,,,17,1151,966,1203,775,,1071,1165,1166,1167,1168,,775,,,1079,1145,446,1146,,,775,775,,,1095,,17,602,728,17,464,464,962,17,965,,142,285,979,17,17,,,,17,17,,,438,384,,597,1006,,902,,,,,1073,,345,496,,,995,784,992,357,,644,,345,,790,612,792,615,615,357,796,615,,1003,761,761,,,,,,,797,,761,1129,805,1080,1219,44,761,,808,,44,688,868,1110,693,1111,,1112,,876,,44,,,1014,,,823,,,,1154,,,,,,,,825,,,,,,,761,15,,,453,1013,15,,,1017,44,,,,,682,,15,516,,,,,,,,,1071,,,1071,382,1071,1065,,441,1079,,,1079,,,775,445,775,,,775,775,,,,15,,775,1083,,,17,1086,775,775,880,17,,,,775,775,,,,,1091,17,,,,,,1196,,,1125,1180,,1182,44,,,919,,17,,,1101,,,1071,,1071,,1071,775,1071,44,812,1079,,17,,44,1201,782,,,1080,,,1080,,1071,1080,,1080,,,44,,15,,1104,,1094,,,,,357,,,,,,,,,15,,,,,1221,15,1222,,1223,,,,,,,,,,,,,15,880,,,1108,,1232,,,,1153,,,44,436,449,1159,17,,,,1080,,1080,,1080,298,1080,,,,,,357,18,17,,,,18,,17,44,44,1080,1135,1137,1139,44,,,1161,,1189,1190,15,243,17,,1187,,775,,,,,243,243,243,775,18,346,346,775,,,,,,,681,,,319,15,15,,,298,,15,44,,,,357,,,18,,,,1216,243,243,,472,243,395,405,405,,17,,,,1028,576,,578,,,580,581,,682,,,,472,,1039,,15,44,,516,,453,682,944,17,17,,,462,,17,775,1205,1207,1209,1211,,1212,,,18,,,,,243,243,243,243,18,,18,1069,,,,,980,,15,,,,,1084,,,,,,,,,17,,1228,1229,1230,1231,,,,,682,,,384,1233,464,464,,,,,,,,818,,615,,,,,,,,,767,767,,,464,682,673,,17,,,,,,682,,,1116,1117,1118,1001,,,,,,18,243,443,243,243,443,243,1126,,,,682,18,,,1128,,,18,443,243,243,,,,,,,,19,,,,,19,18,,,,,,,,721,,882,884,,,,887,889,,,,,,,,,384,,,,,19,353,353,,,,682,,,,,682,682,,,,243,768,768,,,384,,243,243,,,,19,,,,243,,,,,20,353,353,353,,20,926,,,1001,,,,18,799,,382,18,802,,938,346,18,,,,,,,,,,,,,,20,354,354,,346,,,,,,,,,,19,,18,,,799,,,382,19,,19,,,20,,243,18,18,,,449,,,354,354,354,,,,,978,682,682,682,,,243,,,767,,944,,,,,,767,,,,,,,,,767,767,,,991,,,,869,1001,,,,993,,,20,799,382,,,,,,,20,,20,,1007,,896,,,,,1005,19,,19,384,384,19,,,243,,914,,19,,,,,,19,19,,,,,,,,,,,,,,,,19,882,884,889,887,,,,,,,,,243,1193,,,,,768,,,,243,1040,,,768,,1048,1049,,,,,,768,768,20,,20,,,20,,,,,,,20,,,799,,682,20,20,,,,,975,,,976,,,,,,,,20,,,,769,769,,19,,,18,19,,,,353,19,767,346,767,243,,767,767,,,,346,,767,,,,,353,767,767,,,,1007,,767,767,,,19,,18,,,18,,,,,,,243,1004,,19,19,,1119,1120,1121,,243,,,,18,,,,,,767,,20,,,,20,,,,354,20,,,,,,,,,,18,,,443,243,,,18,354,,,,,443,443,,,,443,443,20,,,,,,768,,768,,,768,768,,,20,20,,768,,,,,,768,768,,,,,,768,768,,,,,,,,,,,,,,,,,,,,,,,,,,,1090,,,,,,,,768,,,,,,,,,,,382,,,,,,,,767,,,,,,,,767,,,1218,767,,,,,769,,,,,,,,769,,,346,,,,,,769,769,,,,346,,,,243,,,,21,,,,19,21,,,,,,,353,,,,,,,18,,353,,,18,243,,,,,,,,770,770,18,21,348,348,,767,,19,,,19,,,,,,,,443,,,,,,,,768,,,21,,19,,,768,18,771,771,768,397,406,406,20,,,,,,,,354,,,,,,,,19,354,,19,,,,19,,,,,,19,19,,,,19,19,,,20,,,20,,,,,21,,,,,,772,772,,21,243,21,,,,,20,,,,,,,,18,768,769,,769,,,769,769,,,,243,,769,,,,18,20,769,769,20,,18,,20,769,769,,,,20,20,,,,20,20,,18,,,,1105,,,,,,,,,,,,,,,,,,,769,,,,,,,21,,444,,,444,,,,,353,,21,,,,,,21,444,,353,,,,18,,,,,,,,,770,21,,,1143,,,,770,,,,,,19,,,770,770,19,18,18,,,,,18,,,,19,,,,,,,,771,,,,,,,,771,,19,354,,,,,,771,771,,,,354,,,,,19,1184,,,18,,243,243,,,,,,,,,21,,,243,21,769,20,,348,21,,20,,769,,772,,769,,,,,20,772,,,,348,,,,18,772,772,,,,,,21,20,,,,,,,,,,,,,,21,21,,20,,,,19,,,,,,,,,,,,,,,,,,19,,,,,,19,,,,,,,769,,,,,,770,,770,19,,770,770,353,,,,,770,,,,,,770,770,,,,,,770,770,,,,,,,,,,20,,771,,771,,,771,771,,,,,,771,,,,20,,771,771,19,,20,770,,771,771,,,,,,,353,,,,,20,,,,354,,,,,,,19,19,,,,,19,,,772,,772,771,,772,772,,,,,,772,,,,,,772,772,,,,,,772,772,,,,,,,,,20,,353,773,773,19,,,,,,,,354,,,,,,,21,,,,,,772,,348,20,20,,,,,20,,348,,,,,,,,,,,19,,,,,,,,,770,21,,,21,,,,770,,,,770,,,31,,,354,,31,20,,,,21,,,,,,,859,,,,,31,771,,,,,,,,771,31,31,31,771,31,21,,,444,,43,,21,,,43,,20,444,444,,,,444,444,,,,,,,,31,,297,,,31,31,,770,31,,,,,43,344,344,772,,,,,,,,772,,,,772,,,,,,,,,,,,,43,,,,771,,,,,,393,297,297,,,,,31,,,,,31,31,31,31,31,,31,,,,,,,,,,,,,,,773,,,,,,,,773,,,,,,,,43,773,773,772,,,348,,,43,,43,,,,,,348,,,,,,,,774,774,,,,,,,,,,,,,,,,,,21,,,,,21,,,31,31,31,31,31,31,31,,21,,,,31,,,,,,31,31,31,31,,,,,444,,,,,,,,,31,,,,,,,43,21,,,,,,,,,,,43,,,,,,43,,,,,,,,,,,,,,,,,43,,,,31,,,,,,,31,31,,,,,,,,31,,,,,,,,,,,,,,773,,773,,31,773,773,,31,21,,,773,31,,,,,773,773,,,,,,773,773,21,,,,,,21,,,,,,,,,,31,,,43,,,21,43,,,1107,344,43,,31,31,31,,773,,,,,,,,,,,,344,,,,,31,,774,,,,,43,,34,774,,,,34,,,,,774,774,,43,43,,,21,,,,,34,,,,,,,,406,,34,34,34,,34,,,,,,,,,,21,21,,,,,21,,,,31,,,,,,,,34,,,,,34,34,,,34,,,,,,,,,,,,,,,,,,,406,776,776,21,31,,,,,773,,,,,31,,,773,,,,773,,,,,,,,,,34,,,,,34,34,34,34,34,,34,,,,21,,,,,,,,,,,,,,,,,,,,,,,,,,,,31,,,,,,774,,774,,31,774,774,,,,,,774,,,,773,,774,774,,,,,,774,774,,,,,,31,,,31,43,,,,,,31,,344,34,34,34,34,34,34,34,31,344,,,31,34,,,,774,,34,34,34,34,,,,,,,,43,,,43,,,34,,,31,,,31,31,,,31,,,,,,31,31,43,,,31,31,,,,,,,,,,,,,,,,,,,,,,,43,34,,,,,,43,34,34,,,,,776,,,34,,,,,776,,,,,,,,,776,776,,,34,,,,34,,,,,34,,,,,,,,,,,,,,,,,,,774,,,,,,,,774,,,34,774,,,,,,,,,,,,,34,34,34,,,,,,,,,,,,,,,,,31,,34,,,,,,,,,,,,,,,,,,,,,31,,,,344,31,31,,,,,,,,,344,31,,,,774,,,,,,,,,,,,,,31,,,,,,,,43,,34,,,43,,,,31,,,,,,,43,,,,,776,,776,,,776,776,,,,,,776,,,,,,776,776,,34,,,,776,776,,,,43,34,,,,,,,,,,,,,,,,,,,,31,,,,,,,,,,776,,,,31,,,,,,,,,,,,31,,,,,,31,,,,,,31,,34,,,,,,,,,,34,,,,31,,43,,,,,,,,,,,,,,,,,,43,,,,34,,43,34,,,,,,,34,,,,,,,,43,,34,,1103,,34,,,,,,,31,,,,,,,,,,,,,,,,,,,,34,,,34,34,,,34,776,31,31,,,34,34,31,776,,34,34,776,250,43,,,,,,,,,318,318,318,,297,,,,,,,,365,366,,368,369,,371,,43,43,,,,,43,31,,31,31,,,318,318,,,,,,,,31,,,,,,,,,,,,,,,,,,,,,,776,,297,,,43,31,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,43,,,,,,34,,,,,,,,,,,,,,,,,,,,,,,34,,,,,34,34,,,,,,,,,,34,,,,,,,,,,,,,,,,,,34,,,,,,,,,,,318,448,,,454,318,34,,,,,,,,,,,,454,,,,,,,,,,,,,250,,,,,,,532,533,534,535,536,537,538,539,540,541,542,543,544,545,546,547,548,549,550,551,552,553,,,,,554,,,,,34,,,,,,,,,,,,,,34,,,,318,318,,,,,,,34,318,,,,,34,,318,,318,,34,318,318,,,,,,,,,,,,,,34,,,,,,,,,,,,,,,,,,,,,,,,,,,607,,,,,,,,,,,,,,,,,,,,,,,,,,,,34,,,,,,,,,,,,,,,,,,,,,,,,,,,,,34,34,,,,,34,,,,318,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,695,,,34,,34,34,,,,,,,,,,,,34,,,,,,,,,318,,,,,,,,,,,,,726,,,,,,34,,,,318,,454,454,454,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,366,,,,,,,,,,318,,318,,318,,,,,,,,,,,,,,,,318,,,,,,,,,,454,,,819,,820,,,,,,318,,,318,,,,,,,,,,,,,318,318,,,,,,,,,,318,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,318,454,318,,,,877,,,318,318,454,454,,,,454,454,,,,,,318,,,,,,,,,,,,,,,,318,,,,,,,,,,,,,,,,,,,,,,695,726,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,318,,,,,,,,,318,,,318,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,318,,,,,,,,454,,,,,,,,,,,,,1009,1010,,,,,,,,,,,,,,,,,,,,,,,,,,,,1032,1033,454,454,454,454,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1066,,,,,,,,,,,,,,,,,,,,,,,,,,,,318,,,,,,,,,,,,,,,,,,,318,,,,,,,,,,,,,,,,,,,,,,,,,,454,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,318"),E=e.large_array_unpack("72,198,10,68,11,72,75,75,10,36,36,36,12,198,87,87,33,158,46,73,230,230,75,48,72,107,117,33,31,19,19,128,13,19,17,17,72,72,72,77,77,135,23,112,82,82,113,23,44,44,92,139,139,133,55,55,231,110,110,41,41,57,87,7,72,9,94,91,91,111,24,24,22,5,72,72,72,95,23,95,239,82,82,82,56,56,56,119,19,19,19,19,80,235,51,146,117,146,58,29,177,177,20,69,29,20,23,64,127,70,31,89,89,157,157,89,23,225,225,20,129,130,239,72,228,228,228,192,88,88,88,55,72,149,72,29,2,147,65,192,187,28,6,5,10,161,145,1,140,151,152,140,3,236,14,28,16,161,175,178,178,88,18,29,13,23,74,74,21,178,214,214,224,224,23,25,23,202,202,8,63,63,63,27,8,11,42,95,95,239,43,45,191,50,52,60,230,200,200,191,36,78,83,94,193,84,86,93,105,106,114,116,120,215,215,215,215,72,121,122,11,236,29,75,123,124,125,126,131,72,176,29,136,29,142,72,143,198,150,35,35,33,153,8,154,151,152,87,87,128,149,155,72,128,156,73,174,174,159,23,6,23,91,160,23,162,164,165,22,22,2,23,22,168,169,170,171,23,23,172,112,173,36,36,180,33,22,182,183,157,184,36,188,225,23,95,90,90,90,189,195,196,8,205,11,206,127,147,145,11,207,8,210,8,88,88,29,130,29,58,119,29,61,61,211,68,31,192,29,90,90,212,72,213,29,29,72,175,129,70,72,72,175,175,33,19,216,82,70,55,55,29,51,117,11,11,217,149,218,72,146,219,33,220,202,202,82,223,191,200,229,72,233,193,23,231,191,234,23,,191,193,,23,,,72,72,91,,7,,9,33,91,73,31,,,61,5,88,88,80,235,69,,64,146,,88,117,64,23,176,176,10,140,,,,119,55,,75,201,201,13,23,23,111,29,55,230,31,29,,,65,,29,33,57,65,31,187,,57,36,,128,128,17,,63,191,,77,5,215,55,215,63,,,,40,,55,,29,139,35,35,174,,26,26,,31,26,133,174,231,,29,29,,36,,,,230,66,230,,40,91,36,,,,,,91,55,55,,,,110,8,95,239,56,,,41,75,,,56,146,,,146,157,,72,72,225,,,117,92,26,26,26,26,144,,144,94,,,228,228,24,228,228,73,228,13,,70,68,20,91,177,89,231,,,,68,,20,20,36,66,90,20,20,,,,140,,90,140,,72,140,,140,,,11,,72,11,75,66,146,91,,82,,72,200,200,75,28,28,,82,36,28,28,200,44,56,,,,200,36,61,61,72,10,,72,23,135,94,,26,26,75,91,,,,113,75,,,,,91,139,139,72,26,26,117,128,128,,140,36,140,174,140,200,140,,174,174,,23,,,23,117,75,,91,198,72,174,,140,75,,91,72,,,29,,,,,23,,110,,,61,61,87,,17,,,12,,77,61,61,,,,26,,,,,,,23,91,174,23,,,29,23,,29,,22,88,23,23,,61,61,23,23,66,22,22,61,61,,22,22,,,29,112,107,139,72,,132,228,228,228,228,,72,,,230,110,20,110,,,72,72,,,10,,29,68,66,29,61,61,46,29,158,,75,48,68,29,29,,,,29,29,,,88,26,,40,28,,200,,,,,144,,72,230,,,19,66,11,82,,26,,72,,66,40,66,40,40,82,66,40,,11,201,201,,,,,,,90,,201,10,66,232,228,72,201,,66,,72,91,8,144,91,144,,144,,8,,72,,,11,,,66,,,,10,,,,,,,,90,,,,,,,201,23,,,79,87,23,,,87,72,,,,,40,,23,79,,,,,,,,,132,,,132,85,132,19,,23,230,,,230,,,72,22,72,,,72,72,,,,23,,72,11,,,29,19,72,72,90,29,,,,72,72,,,,,11,29,,,,,,31,,,198,144,,144,72,,,66,,29,,,11,,,132,,132,,132,72,132,72,55,230,,29,,72,144,40,,,232,,,232,,132,232,,232,,,72,,23,,72,,117,,,,,82,,,,,,,,,23,,,,,144,23,144,,144,,,,,,,,,,,,,23,90,,,23,,144,,,,11,,,72,85,85,11,29,,,,232,,232,,232,72,232,,,,,,82,30,29,,,,30,,29,72,72,232,141,141,141,72,,,33,,19,19,23,30,29,,11,,72,,,,,30,30,30,72,30,30,30,72,,,,,,,32,,,36,23,23,,,72,,23,72,,,,82,,,30,,,,11,30,30,,75,30,30,30,30,,29,,,,66,85,,85,,,85,85,,40,,,,75,,66,,23,72,,79,,79,40,40,29,29,,,91,,29,72,141,141,141,141,,141,,,30,,,,,30,30,30,30,30,,30,66,,,,,26,,23,,,,,66,,,,,,,,,29,,141,141,141,141,,,,,40,,,26,141,61,61,,,,,,,,79,,40,,,,,,,,,97,97,,,61,40,85,,29,,,,,,40,,,66,66,66,40,,,,,,30,30,30,30,30,30,30,66,,,,40,30,,,66,,,30,30,30,30,,,,,,,,34,,,,,34,30,,,,,,,,85,,79,79,,,,79,79,,,,,,,,,26,,,,,34,34,34,,,,40,,,,,40,40,,,,30,98,98,,,26,,30,30,,,,34,,,,30,,,,,38,34,34,34,,38,32,,,40,,,,30,85,,85,30,85,,32,30,30,,,,,,,,,,,,,,38,38,38,,30,,,,,,,,,,34,,30,,,85,,,85,34,,34,,,38,,30,30,30,,,85,,,38,38,38,,,,,32,40,40,40,,,30,,,97,,40,,,,,,97,,,,,,,,,97,97,,,32,,,,85,40,,,,32,,,38,85,85,,,,,,,38,,38,,79,,85,,,,,32,34,,34,26,26,34,,,30,,85,,34,,,,,,34,34,,,,,,,,,,,,,,,,34,79,79,79,79,,,,,,,,,30,40,,,,,98,,,,30,32,,,98,,32,32,,,,,,98,98,38,,38,,,38,,,,,,,38,,,85,,40,38,38,,,,,85,,,85,,,,,,,,38,,,,99,99,,34,,,30,34,,,,34,34,97,30,97,30,,97,97,,,,30,,97,,,,,34,97,97,,,,79,,97,97,,,34,,30,,,30,,,,,,,30,85,,34,34,,32,32,32,,30,,,,30,,,,,,97,,38,,,,38,,,,38,38,,,,,,,,,,30,,,30,30,,,30,38,,,,,30,30,,,,30,30,38,,,,,,98,,98,,,98,98,,,38,38,,98,,,,,,98,98,,,,,,98,98,,,,,,,,,,,,,,,,,,,,,,,,,,,85,,,,,,,,98,,,,,,,,,,,85,,,,,,,,97,,,,,,,,97,,,32,97,,,,,99,,,,,,,,99,,,30,,,,,,99,99,,,,30,,,,30,,,,39,,,,34,39,,,,,,,34,,,,,,,30,,34,,,30,30,,,,,,,,100,100,30,39,39,39,,97,,34,,,34,,,,,,,,30,,,,,,,,98,,,39,,34,,,98,30,101,101,98,39,39,39,38,,,,,,,,38,,,,,,,,34,38,,34,,,,34,,,,,,34,34,,,,34,34,,,38,,,38,,,,,39,,,,,,102,102,,39,30,39,,,,,38,,,,,,,,30,98,99,,99,,,99,99,,,,30,,99,,,,30,38,99,99,38,,30,,38,99,99,,,,38,38,,,,38,38,,30,,,,30,,,,,,,,,,,,,,,,,,,99,,,,,,,39,,39,,,39,,,,,34,,39,,,,,,39,39,,34,,,,30,,,,,,,,,100,39,,,30,,,,100,,,,,,34,,,100,100,34,30,30,,,,,30,,,,34,,,,,,,,101,,,,,,,,101,,34,38,,,,,,101,101,,,,38,,,,,34,30,,,30,,30,30,,,,,,,,,39,,,30,39,99,38,,39,39,,38,,99,,102,,99,,,,,38,102,,,,39,,,,30,102,102,,,,,,39,38,,,,,,,,,,,,,,39,39,,38,,,,34,,,,,,,,,,,,,,,,,,34,,,,,,34,,,,,,,99,,,,,,100,,100,34,,100,100,34,,,,,100,,,,,,100,100,,,,,,100,100,,,,,,,,,,38,,101,,101,,,101,101,,,,,,101,,,,38,,101,101,34,,38,100,,101,101,,,,,,,34,,,,,38,,,,38,,,,,,,34,34,,,,,34,,,102,,102,101,,102,102,,,,,,102,,,,,,102,102,,,,,,102,102,,,,,,,,,38,,34,103,103,34,,,,,,,,38,,,,,,,39,,,,,,102,,39,38,38,,,,,38,,39,,,,,,,,,,,34,,,,,,,,,100,39,,,39,,,,100,,,,100,,,59,,,38,,59,38,,,,39,,,,,,,39,,,,,59,101,,,,,,,,101,59,59,59,101,59,39,,,39,,71,,39,,,71,,38,39,39,,,,39,39,,,,,,,,59,,71,,,59,59,,100,59,,,,,71,71,71,102,,,,,,,,102,,,,102,,,,,,,,,,,,,71,,,,101,,,,,,71,71,71,,,,,59,,,,,59,59,59,59,59,,59,,,,,,,,,,,,,,,103,,,,,,,,103,,,,,,,,71,103,103,102,,,39,,,71,,71,,,,,,39,,,,,,,,104,104,,,,,,,,,,,,,,,,,,39,,,,,39,,,59,59,59,59,59,59,59,,39,,,,59,,,,,,59,59,59,59,,,,,39,,,,,,,,,59,,,,,,,71,39,,,,,,,,,,,71,,,,,,71,,,,,,,,,,,,,,,,,71,,,,59,,,,,,,59,59,,,,,,,,59,,,,,,,,,,,,,,103,,103,,59,103,103,,59,39,,,103,59,,,,,103,103,,,,,,103,103,39,,,,,,39,,,,,,,,,,59,,,71,,,39,71,,,39,71,71,,59,59,59,,103,,,,,,,,,,,,71,,,,,59,,104,,,,,71,,62,104,,,,62,,,,,104,104,,71,71,,,39,,,,,62,,,,,,,,39,,62,62,62,,62,,,,,,,,,,39,39,,,,,39,,,,59,,,,,,,,62,,,,,62,62,,,62,,,,,,,,,,,,,,,,,,,39,109,109,39,59,,,,,103,,,,,59,,,103,,,,103,,,,,,,,,,62,,,,,62,62,62,62,62,,62,,,,39,,,,,,,,,,,,,,,,,,,,,,,,,,,,59,,,,,,104,,104,,59,104,104,,,,,,104,,,,103,,104,104,,,,,,104,104,,,,,,59,,,59,71,,,,,,59,,71,62,62,62,62,62,62,62,59,71,,,59,62,,,,104,,62,62,62,62,,,,,,,,71,,,71,,,62,,,59,,,59,59,,,59,,,,,,59,59,71,,,59,59,,,,,,,,,,,,,,,,,,,,,,,71,62,,,,,,71,62,62,,,,,109,,,62,,,,,109,,,,,,,,,109,109,,,62,,,,62,,,,,62,,,,,,,,,,,,,,,,,,,104,,,,,,,,104,,,62,104,,,,,,,,,,,,,62,62,62,,,,,,,,,,,,,,,,,59,,62,,,,,,,,,,,,,,,,,,,,,59,,,,71,59,59,,,,,,,,,71,59,,,,104,,,,,,,,,,,,,,59,,,,,,,,71,,62,,,71,,,,59,,,,,,,71,,,,,109,,109,,,109,109,,,,,,109,,,,,,109,109,,62,,,,109,109,,,,71,62,,,,,,,,,,,,,,,,,,,,59,,,,,,,,,,109,,,,59,,,,,,,,,,,,59,,,,,,59,,,,,,59,,62,,,,,,,,,,62,,,,59,,71,,,,,,,,,,,,,,,,,,71,,,,62,,71,62,,,,,,,62,,,,,,,,71,,62,,71,,62,,,,,,,59,,,,,,,,,,,,,,,,,,,,62,,,62,62,,,62,109,59,59,,,62,62,59,109,,62,62,109,37,71,,,,,,,,,37,37,37,,71,,,,,,,,37,37,,37,37,,37,,71,71,,,,,71,59,,59,59,,,37,37,,,,,,,,59,,,,,,,,,,,,,,,,,,,,,,109,,71,,,71,59,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,71,,,,,,62,,,,,,,,,,,,,,,,,,,,,,,62,,,,,62,62,,,,,,,,,,62,,,,,,,,,,,,,,,,,,62,,,,,,,,,,,37,37,,,37,37,62,,,,,,,,,,,,37,,,,,,,,,,,,,37,,,,,,,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,,,,,37,,,,,62,,,,,,,,,,,,,,62,,,,37,37,,,,,,,62,37,,,,,62,,37,,37,,62,37,37,,,,,,,,,,,,,,62,,,,,,,,,,,,,,,,,,,,,,,,,,,37,,,,,,,,,,,,,,,,,,,,,,,,,,,,62,,,,,,,,,,,,,,,,,,,,,,,,,,,,,62,62,,,,,62,,,,37,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,37,,,62,,62,62,,,,,,,,,,,,62,,,,,,,,,37,,,,,,,,,,,,,37,,,,,,62,,,,37,,37,37,37,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,37,,,,,,,,,,37,,37,,37,,,,,,,,,,,,,,,,37,,,,,,,,,,37,,,37,,37,,,,,,37,,,37,,,,,,,,,,,,,37,37,,,,,,,,,,37,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,37,37,37,,,,37,,,37,37,37,37,,,,37,37,,,,,,37,,,,,,,,,,,,,,,,37,,,,,,,,,,,,,,,,,,,,,,37,37,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,37,,,,,,,,,37,,,37,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,37,,,,,,,,37,,,,,,,,,,,,,37,37,,,,,,,,,,,,,,,,,,,,,,,,,,,,37,37,37,37,37,37,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,37,,,,,,,,,,,,,,,,,,,,,,,,,,,,37,,,,,,,,,,,,,,,,,,,37,,,,,,,,,,,,,,,,,,,,,,,,,,37,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,37"),F=e.large_array_unpack(",147,134,152,,68,135,58,177,56,-229,-34,-462,-664,-739,,-427,24,151,-42,-119,92,48,40,-150,-45,405,46,-83,97,1084,-197,677,-2,1330,220,-25,3624,1403,1907,443,-471,-70,-67,-25,-434,-8,,-3,,167,65,-361,,,-172,53,-245,-470,2540,-366,96,2955,146,69,100,253,,-36,63,-252,2582,-2,-384,89,-4,,29,-231,663,44,,5,151,-167,846,139,-5,94,-266,262,36,-257,-351,-255,-496,,747,855,1131,1412,1450,1508,1943,2202,182,141,-44,,2520,-328,-757,-348,-582,134,,-196,21,,67,147,-156,153,-385,-417,-625,-182,-808,-466,-377,-796,-688,-223,-649,,-455,-739,,,-429,-554,24,-839,-735,-169,-825,-611,-657,,-721,-860,-949,-948,-168,-609,166,-392,-121,-10,-741,-737,-412,-36,,-45,-45,,,-513,-817,-713,-940,-557,-865,-274,-590,-518,-430,-773,,-644,,-642,-459,-457,,,-609,-457,-451,,-747,-800,-742,,-648,-647,,-89,,-333,-105,-588,,,-475,-392,-587,,,224,231,237,238,-245,-200,250,259,260,-291,-290,,,-276,-181,-117,,,-360,-336,-214,-650,-131,-330,-753,-615,-983,,,-495"),G=e.large_array_unpack(",,,,5,,6,392,335,,,474,,983,,332,333,,,,13,14,22,248,,,16,,442,249,364,,,640,252,,27,25,253,247,520,,,,,,,387,144,26,,,,28,29,815,,,,352,,30,349,456,37,,,39,42,41,,244,245,404,,465,143,87,,447,103,51,54,284,,324,,894,457,,458,470,483,689,572,322,308,55,56,57,58,59,60,61,62,63,,309,69,70,,,,,,77,,622,78,231,,,,,,,,716,495,,717,718,481,476,477,,1176,712,1070,,482,,,,484,,486,,970,,,,493,,,,,,,,,,,469,,,794,786,,,,,,,1050,,739,940,741,742,746,743,744,,,745,747,,,,939,941,751,,753,754,755,756,,760,478,504,762,763,764,113,,,86,88,89,,,,,650,,,,,,99,100,,232,904,235,480,,485,912,498,500,501,1081,505,1082,508,511,327"),H=e.large_array_unpack("0,0,racc_error,0,150,_reduce_1,2,148,_reduce_2,2,149,_reduce_3,0,151,_reduce_4,1,151,_reduce_5,3,151,_reduce_6,2,151,_reduce_7,1,153,_reduce_none,2,153,_reduce_9,3,156,_reduce_10,4,157,_reduce_11,2,158,_reduce_12,0,162,_reduce_13,1,162,_reduce_14,3,162,_reduce_15,2,162,_reduce_16,1,163,_reduce_none,2,163,_reduce_18,0,174,_reduce_19,4,155,_reduce_20,3,155,_reduce_21,3,155,_reduce_22,3,155,_reduce_23,2,155,_reduce_24,3,155,_reduce_25,3,155,_reduce_26,3,155,_reduce_27,3,155,_reduce_28,3,155,_reduce_29,4,155,_reduce_30,1,155,_reduce_none,3,155,_reduce_32,3,155,_reduce_33,5,155,_reduce_34,3,155,_reduce_35,1,155,_reduce_none,3,167,_reduce_37,3,167,_reduce_38,6,167,_reduce_39,5,167,_reduce_40,5,167,_reduce_41,5,167,_reduce_42,5,167,_reduce_43,4,167,_reduce_44,6,167,_reduce_45,4,167,_reduce_46,6,167,_reduce_47,3,167,_reduce_48,1,175,_reduce_none,3,175,_reduce_50,1,175,_reduce_none,1,173,_reduce_none,3,173,_reduce_53,3,173,_reduce_54,3,173,_reduce_55,2,173,_reduce_56,0,189,_reduce_57,4,173,_reduce_58,0,190,_reduce_59,4,173,_reduce_60,1,173,_reduce_none,1,166,_reduce_none,0,194,_reduce_63,3,191,_reduce_64,1,193,_reduce_65,2,181,_reduce_66,0,199,_reduce_67,5,185,_reduce_68,1,169,_reduce_none,1,169,_reduce_none,1,200,_reduce_none,4,200,_reduce_72,0,207,_reduce_73,4,204,_reduce_74,1,206,_reduce_none,2,183,_reduce_76,3,183,_reduce_77,4,183,_reduce_78,5,183,_reduce_79,4,183,_reduce_80,5,183,_reduce_81,2,183,_reduce_82,2,183,_reduce_83,2,183,_reduce_84,2,183,_reduce_85,2,183,_reduce_86,1,168,_reduce_87,3,168,_reduce_88,1,212,_reduce_89,3,212,_reduce_90,1,211,_reduce_none,2,211,_reduce_92,3,211,_reduce_93,5,211,_reduce_94,2,211,_reduce_95,4,211,_reduce_96,2,211,_reduce_97,4,211,_reduce_98,1,211,_reduce_99,3,211,_reduce_100,1,215,_reduce_none,3,215,_reduce_102,2,214,_reduce_103,3,214,_reduce_104,1,217,_reduce_105,3,217,_reduce_106,1,216,_reduce_107,1,216,_reduce_108,4,216,_reduce_109,3,216,_reduce_110,3,216,_reduce_111,3,216,_reduce_112,3,216,_reduce_113,2,216,_reduce_114,1,216,_reduce_115,1,170,_reduce_116,1,170,_reduce_117,4,170,_reduce_118,3,170,_reduce_119,3,170,_reduce_120,3,170,_reduce_121,3,170,_reduce_122,2,170,_reduce_123,1,170,_reduce_124,1,220,_reduce_125,1,220,_reduce_none,2,221,_reduce_127,1,221,_reduce_128,3,221,_reduce_129,1,195,_reduce_none,1,195,_reduce_none,1,195,_reduce_none,1,195,_reduce_none,1,195,_reduce_none,1,164,_reduce_135,1,164,_reduce_none,1,165,_reduce_137,0,225,_reduce_138,4,165,_reduce_139,1,222,_reduce_none,1,222,_reduce_none,1,222,_reduce_none,1,222,_reduce_none,1,222,_reduce_none,1,222,_reduce_none,1,222,_reduce_none,1,222,_reduce_none,1,222,_reduce_none,1,222,_reduce_none,1,222,_reduce_none,1,222,_reduce_none,1,222,_reduce_none,1,222,_reduce_none,1,222,_reduce_none,1,222,_reduce_none,1,222,_reduce_none,1,222,_reduce_none,1,222,_reduce_none,1,222,_reduce_none,1,222,_reduce_none,1,222,_reduce_none,1,222,_reduce_none,1,222,_reduce_none,1,222,_reduce_none,1,222,_reduce_none,1,222,_reduce_none,1,222,_reduce_none,1,222,_reduce_none,1,222,_reduce_none,1,223,_reduce_none,1,223,_reduce_none,1,223,_reduce_none,1,223,_reduce_none,1,223,_reduce_none,1,223,_reduce_none,1,223,_reduce_none,1,223,_reduce_none,1,223,_reduce_none,1,223,_reduce_none,1,223,_reduce_none,1,223,_reduce_none,1,223,_reduce_none,1,223,_reduce_none,1,223,_reduce_none,1,223,_reduce_none,1,223,_reduce_none,1,223,_reduce_none,1,223,_reduce_none,1,223,_reduce_none,1,223,_reduce_none,1,223,_reduce_none,1,223,_reduce_none,1,223,_reduce_none,1,223,_reduce_none,1,223,_reduce_none,1,223,_reduce_none,1,223,_reduce_none,1,223,_reduce_none,1,223,_reduce_none,1,223,_reduce_none,1,223,_reduce_none,1,223,_reduce_none,1,223,_reduce_none,1,223,_reduce_none,1,223,_reduce_none,1,223,_reduce_none,1,223,_reduce_none,1,223,_reduce_none,1,223,_reduce_none,1,223,_reduce_none,3,184,_reduce_211,3,184,_reduce_212,6,184,_reduce_213,5,184,_reduce_214,5,184,_reduce_215,5,184,_reduce_216,5,184,_reduce_217,4,184,_reduce_218,3,184,_reduce_219,3,184,_reduce_220,3,184,_reduce_221,2,184,_reduce_222,2,184,_reduce_223,2,184,_reduce_224,2,184,_reduce_225,3,184,_reduce_226,3,184,_reduce_227,3,184,_reduce_228,3,184,_reduce_229,3,184,_reduce_230,3,184,_reduce_231,4,184,_reduce_232,2,184,_reduce_233,2,184,_reduce_234,3,184,_reduce_235,3,184,_reduce_236,3,184,_reduce_237,3,184,_reduce_238,1,184,_reduce_none,3,184,_reduce_240,3,184,_reduce_241,3,184,_reduce_242,3,184,_reduce_243,3,184,_reduce_244,2,184,_reduce_245,2,184,_reduce_246,3,184,_reduce_247,3,184,_reduce_248,3,184,_reduce_249,3,184,_reduce_250,0,231,_reduce_251,4,184,_reduce_252,6,184,_reduce_253,4,184,_reduce_254,6,184,_reduce_255,4,184,_reduce_256,6,184,_reduce_257,1,184,_reduce_none,1,230,_reduce_none,1,230,_reduce_none,1,230,_reduce_none,1,230,_reduce_none,3,228,_reduce_263,3,228,_reduce_264,1,232,_reduce_none,1,233,_reduce_none,2,233,_reduce_none,4,233,_reduce_268,2,233,_reduce_269,1,226,_reduce_none,3,226,_reduce_271,3,238,_reduce_272,5,238,_reduce_273,3,238,_reduce_274,0,240,_reduce_275,1,240,_reduce_none,0,178,_reduce_277,1,178,_reduce_none,2,178,_reduce_none,4,178,_reduce_280,2,178,_reduce_281,1,210,_reduce_282,2,210,_reduce_283,2,210,_reduce_284,4,210,_reduce_285,1,210,_reduce_286,0,243,_reduce_287,2,203,_reduce_288,2,242,_reduce_289,1,242,_reduce_290,2,241,_reduce_291,0,241,_reduce_292,1,235,_reduce_293,2,235,_reduce_294,1,235,_reduce_295,3,235,_reduce_296,4,235,_reduce_297,3,235,_reduce_298,1,172,_reduce_299,1,172,_reduce_none,3,171,_reduce_301,4,171,_reduce_302,2,171,_reduce_303,1,229,_reduce_none,1,229,_reduce_none,1,229,_reduce_none,1,229,_reduce_none,1,229,_reduce_none,1,229,_reduce_none,1,229,_reduce_none,1,229,_reduce_none,1,229,_reduce_none,1,229,_reduce_none,1,229,_reduce_314,0,267,_reduce_315,4,229,_reduce_316,0,268,_reduce_317,4,229,_reduce_318,0,269,_reduce_319,4,229,_reduce_320,3,229,_reduce_321,3,229,_reduce_322,2,229,_reduce_323,3,229,_reduce_324,3,229,_reduce_325,1,229,_reduce_326,4,229,_reduce_327,3,229,_reduce_328,1,229,_reduce_329,0,270,_reduce_330,6,229,_reduce_331,4,229,_reduce_332,3,229,_reduce_333,2,229,_reduce_334,1,229,_reduce_none,2,229,_reduce_336,1,229,_reduce_none,6,229,_reduce_338,6,229,_reduce_339,4,229,_reduce_340,4,229,_reduce_341,5,229,_reduce_342,4,229,_reduce_343,5,229,_reduce_344,6,229,_reduce_345,0,271,_reduce_346,6,229,_reduce_347,0,272,_reduce_348,7,229,_reduce_349,0,273,_reduce_350,5,229,_reduce_351,4,229,_reduce_352,4,229,_reduce_353,1,229,_reduce_354,1,229,_reduce_355,1,229,_reduce_356,1,229,_reduce_357,1,177,_reduce_none,1,262,_reduce_359,1,265,_reduce_360,1,196,_reduce_361,1,209,_reduce_362,1,257,_reduce_none,1,257,_reduce_none,2,257,_reduce_365,1,192,_reduce_none,1,192,_reduce_none,1,258,_reduce_none,5,258,_reduce_369,1,160,_reduce_none,2,160,_reduce_371,1,261,_reduce_none,1,261,_reduce_none,1,274,_reduce_374,3,274,_reduce_375,1,277,_reduce_376,3,277,_reduce_377,1,276,_reduce_none,3,276,_reduce_379,5,276,_reduce_380,1,276,_reduce_381,3,276,_reduce_382,2,278,_reduce_383,1,278,_reduce_384,1,279,_reduce_none,1,279,_reduce_none,0,284,_reduce_387,2,282,_reduce_388,4,283,_reduce_389,2,283,_reduce_390,2,283,_reduce_391,1,283,_reduce_392,2,288,_reduce_393,0,288,_reduce_394,1,289,_reduce_none,6,290,_reduce_396,8,290,_reduce_397,4,290,_reduce_398,6,290,_reduce_399,4,290,_reduce_400,2,290,_reduce_none,6,290,_reduce_402,2,290,_reduce_403,4,290,_reduce_404,6,290,_reduce_405,2,290,_reduce_406,4,290,_reduce_407,2,290,_reduce_408,4,290,_reduce_409,1,290,_reduce_none,0,294,_reduce_411,1,294,_reduce_412,3,295,_reduce_413,4,295,_reduce_414,1,296,_reduce_415,4,296,_reduce_416,1,297,_reduce_417,3,297,_reduce_418,1,298,_reduce_419,1,298,_reduce_none,0,302,_reduce_421,0,303,_reduce_422,5,256,_reduce_423,4,300,_reduce_424,1,300,_reduce_425,0,306,_reduce_426,4,301,_reduce_427,0,307,_reduce_428,4,301,_reduce_429,0,309,_reduce_430,4,305,_reduce_431,2,201,_reduce_432,4,201,_reduce_433,5,201,_reduce_434,5,201,_reduce_435,2,255,_reduce_436,4,255,_reduce_437,4,255,_reduce_438,3,255,_reduce_439,3,255,_reduce_440,3,255,_reduce_441,2,255,_reduce_442,1,255,_reduce_443,4,255,_reduce_444,0,311,_reduce_445,4,254,_reduce_446,0,312,_reduce_447,4,254,_reduce_448,0,313,_reduce_449,3,205,_reduce_450,0,314,_reduce_451,0,315,_reduce_452,4,308,_reduce_453,5,259,_reduce_454,1,316,_reduce_455,1,316,_reduce_none,0,319,_reduce_457,0,320,_reduce_458,7,260,_reduce_459,1,318,_reduce_460,1,318,_reduce_none,1,317,_reduce_462,3,317,_reduce_463,3,317,_reduce_464,1,188,_reduce_none,2,188,_reduce_466,3,188,_reduce_467,1,188,_reduce_468,1,188,_reduce_469,1,188,_reduce_470,1,321,_reduce_none,3,326,_reduce_472,1,326,_reduce_none,3,328,_reduce_474,1,328,_reduce_none,1,330,_reduce_476,1,331,_reduce_477,1,329,_reduce_none,1,329,_reduce_none,4,329,_reduce_480,4,329,_reduce_481,4,329,_reduce_482,3,329,_reduce_483,4,329,_reduce_484,4,329,_reduce_485,4,329,_reduce_486,3,329,_reduce_487,3,329,_reduce_488,3,329,_reduce_489,2,329,_reduce_490,0,335,_reduce_491,4,329,_reduce_492,2,329,_reduce_493,0,336,_reduce_494,4,329,_reduce_495,1,322,_reduce_496,1,322,_reduce_497,2,322,_reduce_498,2,322,_reduce_499,4,322,_reduce_500,1,322,_reduce_none,2,337,_reduce_502,3,337,_reduce_503,1,324,_reduce_504,3,324,_reduce_505,5,323,_reduce_506,2,339,_reduce_507,1,339,_reduce_508,1,340,_reduce_509,3,340,_reduce_510,1,338,_reduce_none,3,325,_reduce_512,1,325,_reduce_513,2,325,_reduce_514,1,325,_reduce_515,1,341,_reduce_516,3,341,_reduce_517,2,343,_reduce_518,1,343,_reduce_519,1,344,_reduce_520,3,344,_reduce_521,2,346,_reduce_522,1,346,_reduce_523,2,348,_reduce_524,1,342,_reduce_none,1,342,_reduce_526,1,332,_reduce_none,3,332,_reduce_528,3,332,_reduce_529,2,332,_reduce_530,2,332,_reduce_531,1,332,_reduce_none,1,332,_reduce_none,1,332,_reduce_none,2,332,_reduce_535,2,332,_reduce_536,1,349,_reduce_none,1,349,_reduce_none,1,349,_reduce_none,1,349,_reduce_none,1,349,_reduce_none,1,349,_reduce_none,1,349,_reduce_none,1,349,_reduce_none,1,349,_reduce_545,1,349,_reduce_none,1,327,_reduce_547,2,350,_reduce_548,2,350,_reduce_549,4,351,_reduce_550,2,333,_reduce_551,3,333,_reduce_552,1,333,_reduce_553,6,159,_reduce_554,0,159,_reduce_555,1,353,_reduce_556,1,353,_reduce_none,1,353,_reduce_none,2,354,_reduce_559,1,354,_reduce_none,2,161,_reduce_561,1,161,_reduce_none,1,244,_reduce_none,1,244,_reduce_none,1,245,_reduce_565,1,356,_reduce_566,2,356,_reduce_567,3,357,_reduce_568,1,357,_reduce_569,1,357,_reduce_570,3,246,_reduce_571,4,247,_reduce_572,3,248,_reduce_573,0,360,_reduce_574,3,360,_reduce_575,1,361,_reduce_576,2,361,_reduce_577,3,250,_reduce_578,0,363,_reduce_579,3,363,_reduce_580,3,249,_reduce_581,3,251,_reduce_582,0,364,_reduce_583,3,364,_reduce_584,0,365,_reduce_585,3,365,_reduce_586,0,345,_reduce_587,2,345,_reduce_588,0,358,_reduce_589,2,358,_reduce_590,0,359,_reduce_591,2,359,_reduce_592,1,362,_reduce_593,2,362,_reduce_594,0,367,_reduce_595,4,362,_reduce_596,1,366,_reduce_597,1,366,_reduce_598,1,366,_reduce_599,1,366,_reduce_none,1,224,_reduce_none,1,224,_reduce_none,1,368,_reduce_603,3,369,_reduce_604,1,355,_reduce_605,2,355,_reduce_606,1,227,_reduce_607,1,227,_reduce_608,1,227,_reduce_609,1,227,_reduce_610,1,352,_reduce_611,1,352,_reduce_612,1,352,_reduce_613,1,218,_reduce_614,1,218,_reduce_615,1,218,_reduce_none,1,219,_reduce_617,1,219,_reduce_618,1,219,_reduce_619,1,219,_reduce_620,1,219,_reduce_621,1,219,_reduce_622,1,219,_reduce_623,1,252,_reduce_624,1,252,_reduce_625,1,176,_reduce_626,1,176,_reduce_627,1,186,_reduce_628,1,186,_reduce_629,0,370,_reduce_630,4,263,_reduce_631,0,263,_reduce_632,1,182,_reduce_none,1,182,_reduce_634,3,371,_reduce_635,1,266,_reduce_none,0,373,_reduce_637,3,266,_reduce_638,4,372,_reduce_639,2,372,_reduce_640,2,372,_reduce_641,1,372,_reduce_642,1,372,_reduce_643,2,375,_reduce_644,0,375,_reduce_645,6,304,_reduce_646,8,304,_reduce_647,4,304,_reduce_648,6,304,_reduce_649,4,304,_reduce_650,6,304,_reduce_651,2,304,_reduce_652,4,304,_reduce_653,6,304,_reduce_654,2,304,_reduce_655,4,304,_reduce_656,2,304,_reduce_657,4,304,_reduce_658,1,304,_reduce_659,0,304,_reduce_660,1,239,_reduce_661,1,299,_reduce_662,1,299,_reduce_663,1,299,_reduce_664,1,299,_reduce_665,1,275,_reduce_none,1,275,_reduce_667,1,377,_reduce_668,1,378,_reduce_669,3,378,_reduce_670,1,291,_reduce_671,3,291,_reduce_672,1,379,_reduce_673,2,380,_reduce_674,1,380,_reduce_675,2,381,_reduce_676,1,381,_reduce_677,1,285,_reduce_678,3,285,_reduce_679,1,374,_reduce_680,3,374,_reduce_681,1,347,_reduce_none,1,347,_reduce_none,1,281,_reduce_684,2,280,_reduce_685,1,280,_reduce_686,3,382,_reduce_687,3,383,_reduce_688,1,292,_reduce_689,3,292,_reduce_690,1,376,_reduce_691,3,376,_reduce_692,1,384,_reduce_none,1,384,_reduce_none,2,293,_reduce_695,1,293,_reduce_696,1,385,_reduce_none,1,385,_reduce_none,2,287,_reduce_699,1,287,_reduce_700,2,286,_reduce_701,0,286,_reduce_702,1,197,_reduce_none,3,197,_reduce_704,0,253,_reduce_705,2,253,_reduce_none,1,237,_reduce_707,3,237,_reduce_708,3,386,_reduce_709,2,386,_reduce_710,1,386,_reduce_711,4,386,_reduce_712,2,386,_reduce_713,1,386,_reduce_714,1,208,_reduce_none,1,208,_reduce_none,1,208,_reduce_none,1,202,_reduce_none,1,202,_reduce_none,1,310,_reduce_none,1,310,_reduce_none,1,310,_reduce_none,1,198,_reduce_none,1,198,_reduce_none,1,180,_reduce_725,1,180,_reduce_726,0,152,_reduce_none,1,152,_reduce_none,0,187,_reduce_none,1,187,_reduce_none,2,213,_reduce_731,2,179,_reduce_732,2,334,_reduce_733,1,236,_reduce_none,1,236,_reduce_none,1,264,_reduce_736,1,264,_reduce_none,1,154,_reduce_none,2,154,_reduce_none,0,234,_reduce_740"),v=741,w=1234,x=t(new Map([[!1,0],["error",1],["kCLASS",2],["kMODULE",3],["kDEF",4],["kUNDEF",5],["kBEGIN",6],["kRESCUE",7],["kENSURE",8],["kEND",9],["kIF",10],["kUNLESS",11],["kTHEN",12],["kELSIF",13],["kELSE",14],["kCASE",15],["kWHEN",16],["kWHILE",17],["kUNTIL",18],["kFOR",19],["kBREAK",20],["kNEXT",21],["kREDO",22],["kRETRY",23],["kIN",24],["kDO",25],["kDO_COND",26],["kDO_BLOCK",27],["kDO_LAMBDA",28],["kRETURN",29],["kYIELD",30],["kSUPER",31],["kSELF",32],["kNIL",33],["kTRUE",34],["kFALSE",35],["kAND",36],["kOR",37],["kNOT",38],["kIF_MOD",39],["kUNLESS_MOD",40],["kWHILE_MOD",41],["kUNTIL_MOD",42],["kRESCUE_MOD",43],["kALIAS",44],["kDEFINED",45],["klBEGIN",46],["klEND",47],["k__LINE__",48],["k__FILE__",49],["k__ENCODING__",50],["tIDENTIFIER",51],["tFID",52],["tGVAR",53],["tIVAR",54],["tCONSTANT",55],["tLABEL",56],["tCVAR",57],["tNTH_REF",58],["tBACK_REF",59],["tSTRING_CONTENT",60],["tINTEGER",61],["tFLOAT",62],["tUPLUS",63],["tUMINUS",64],["tUNARY_NUM",65],["tPOW",66],["tCMP",67],["tEQ",68],["tEQQ",69],["tNEQ",70],["tGEQ",71],["tLEQ",72],["tANDOP",73],["tOROP",74],["tMATCH",75],["tNMATCH",76],["tDOT",77],["tDOT2",78],["tDOT3",79],["tAREF",80],["tASET",81],["tLSHFT",82],["tRSHFT",83],["tCOLON2",84],["tCOLON3",85],["tOP_ASGN",86],["tASSOC",87],["tLPAREN",88],["tLPAREN2",89],["tRPAREN",90],["tLPAREN_ARG",91],["tLBRACK",92],["tLBRACK2",93],["tRBRACK",94],["tLBRACE",95],["tLBRACE_ARG",96],["tSTAR",97],["tSTAR2",98],["tAMPER",99],["tAMPER2",100],["tTILDE",101],["tPERCENT",102],["tDIVIDE",103],["tDSTAR",104],["tPLUS",105],["tMINUS",106],["tLT",107],["tGT",108],["tPIPE",109],["tBANG",110],["tCARET",111],["tLCURLY",112],["tRCURLY",113],["tBACK_REF2",114],["tSYMBEG",115],["tSTRING_BEG",116],["tXSTRING_BEG",117],["tREGEXP_BEG",118],["tREGEXP_OPT",119],["tWORDS_BEG",120],["tQWORDS_BEG",121],["tSYMBOLS_BEG",122],["tQSYMBOLS_BEG",123],["tSTRING_DBEG",124],["tSTRING_DVAR",125],["tSTRING_END",126],["tSTRING_DEND",127],["tSTRING",128],["tSYMBOL",129],["tNL",130],["tEH",131],["tCOLON",132],["tCOMMA",133],["tSPACE",134],["tSEMI",135],["tLAMBDA",136],["tLAMBEG",137],["tCHARACTER",138],["tRATIONAL",139],["tIMAGINARY",140],["tLABEL_END",141],["tANDDOT",142],["tBDOT2",143],["tBDOT3",144],["tEQL",145],["tLOWEST",146]])),y=147,C=!0,k(u[0],'Racc_arg',[z,A,I,B,D,E,G,F,y,H,x,w,v,C]),f((K=s('Ractor','skip_raise'))?'constant':b)&&s('Ractor').$make_shareable(s('Racc_arg')),k(u[0],'Racc_token_to_s_table',e.large_array_unpack("$end,error,kCLASS,kMODULE,kDEF,kUNDEF,kBEGIN,kRESCUE,kENSURE,kEND,kIF,kUNLESS,kTHEN,kELSIF,kELSE,kCASE,kWHEN,kWHILE,kUNTIL,kFOR,kBREAK,kNEXT,kREDO,kRETRY,kIN,kDO,kDO_COND,kDO_BLOCK,kDO_LAMBDA,kRETURN,kYIELD,kSUPER,kSELF,kNIL,kTRUE,kFALSE,kAND,kOR,kNOT,kIF_MOD,kUNLESS_MOD,kWHILE_MOD,kUNTIL_MOD,kRESCUE_MOD,kALIAS,kDEFINED,klBEGIN,klEND,k__LINE__,k__FILE__,k__ENCODING__,tIDENTIFIER,tFID,tGVAR,tIVAR,tCONSTANT,tLABEL,tCVAR,tNTH_REF,tBACK_REF,tSTRING_CONTENT,tINTEGER,tFLOAT,tUPLUS,tUMINUS,tUNARY_NUM,tPOW,tCMP,tEQ,tEQQ,tNEQ,tGEQ,tLEQ,tANDOP,tOROP,tMATCH,tNMATCH,tDOT,tDOT2,tDOT3,tAREF,tASET,tLSHFT,tRSHFT,tCOLON2,tCOLON3,tOP_ASGN,tASSOC,tLPAREN,tLPAREN2,tRPAREN,tLPAREN_ARG,tLBRACK,tLBRACK2,tRBRACK,tLBRACE,tLBRACE_ARG,tSTAR,tSTAR2,tAMPER,tAMPER2,tTILDE,tPERCENT,tDIVIDE,tDSTAR,tPLUS,tMINUS,tLT,tGT,tPIPE,tBANG,tCARET,tLCURLY,tRCURLY,tBACK_REF2,tSYMBEG,tSTRING_BEG,tXSTRING_BEG,tREGEXP_BEG,tREGEXP_OPT,tWORDS_BEG,tQWORDS_BEG,tSYMBOLS_BEG,tQSYMBOLS_BEG,tSTRING_DBEG,tSTRING_DVAR,tSTRING_END,tSTRING_DEND,tSTRING,tSYMBOL,tNL,tEH,tCOLON,tCOMMA,tSPACE,tSEMI,tLAMBDA,tLAMBEG,tCHARACTER,tRATIONAL,tIMAGINARY,tLABEL_END,tANDDOT,tBDOT2,tBDOT3,tEQL,tLOWEST,$start,program,top_compstmt,@1,top_stmts,opt_terms,top_stmt,terms,stmt,begin_block,bodystmt,compstmt,opt_rescue,opt_else,opt_ensure,stmts,stmt_or_begin,fitem,undef_list,expr_value,command_asgn,mlhs,command_call,lhs,mrhs,mrhs_arg,expr,@2,command_rhs,var_lhs,primary_value,opt_call_args,rbracket,call_op,defn_head,f_opt_paren_args,command,arg,defs_head,backref,opt_nl,p_top_expr_body,@3,@4,expr_value_do,do,def_name,@5,fname,k_def,singleton,dot_or_colon,@6,block_command,block_call,operation2,command_args,cmd_brace_block,brace_body,fcall,@7,operation,k_return,call_args,mlhs_basic,mlhs_inner,rparen,mlhs_head,mlhs_item,mlhs_node,mlhs_post,user_variable,keyword_variable,cname,cpath,op,reswords,symbol,@8,arg_rhs,simple_numeric,rel_expr,primary,relop,@9,arg_value,aref_args,none,args,trailer,assocs,paren_args,args_forward,opt_paren_args,opt_block_arg,block_arg,@10,literal,strings,xstring,regexp,words,qwords,symbols,qsymbols,var_ref,assoc_list,brace_block,method_call,lambda,then,if_tail,case_body,p_case_body,for_var,k_class,superclass,term,k_module,f_arglist,@11,@12,@13,@14,@15,@16,@17,f_marg,f_norm_arg,f_margs,f_marg_list,f_rest_marg,f_any_kwrest,f_kwrest,f_no_kwarg,f_eq,block_args_tail,@18,f_block_kwarg,opt_f_block_arg,f_block_arg,opt_block_args_tail,excessed_comma,block_param,f_arg,f_block_optarg,f_rest_arg,opt_block_param,block_param_def,opt_bv_decl,bv_decls,bvar,f_bad_arg,f_larglist,lambda_body,@19,@20,f_args,do_block,@21,@22,do_body,@23,operation3,@24,@25,@26,@27,@28,cases,p_top_expr,p_cases,@29,@30,p_expr,p_args,p_find,p_args_tail,p_kwargs,p_as,p_variable,p_alt,p_expr_basic,p_lparen,p_lbracket,p_value,p_const,rbrace,@31,@32,p_args_head,p_arg,p_rest,p_args_post,p_kwarg,p_any_kwrest,p_kw,p_kw_label,string_contents,p_kwrest,kwrest_mark,p_kwnorest,p_primitive,p_var_ref,p_expr_ref,nonlocal_var,exc_list,exc_var,numeric,string,string1,xstring_contents,regexp_contents,word_list,word,string_content,symbol_list,qword_list,qsym_list,string_dvar,@33,ssym,dsym,@34,f_paren_args,args_tail,@35,f_kwarg,opt_args_tail,f_optarg,f_arg_asgn,f_arg_item,f_label,f_kw,f_block_kw,f_opt,f_block_opt,restarg_mark,blkarg_mark,assoc")),f((J=s('Ractor','skip_raise'))?'constant':b)&&s('Ractor').$make_shareable(s('Racc_token_to_s_table')),k(u[0],'Racc_debug_parser',!1),a(m,'$_reduce_1',function(e,f,c){var a=this;return a.current_arg_stack.$push(b),a.max_numparam_stack.$push(new Map([["static",!0]])),c}),a(m,'$_reduce_2',function(c,e,a){var b=this;return a=c['$[]'](1),b.current_arg_stack.$pop(),b.max_numparam_stack.$pop(),a}),a(m,'$_reduce_3',function(a,d,e){var b=this;return b.builder.$compstmt(a['$[]'](0))}),a(m,'$_reduce_4',function(b,c,d){return[]}),a(m,'$_reduce_5',function(a,c,d){return[a['$[]'](0)]}),a(m,'$_reduce_6',function(a,c,d){return a['$[]'](0)['$<<'](a['$[]'](2))}),a(m,'$_reduce_7',function(a,c,d){return[a['$[]'](1)]}),a(m,'$_reduce_9',function(a,e,f){var b=this;return h(b.builder,'preexe',[a['$[]'](0)].concat(d(a['$[]'](1))))}),a(m,'$_reduce_10',function(a,c,d){return a}),a(m,'$_reduce_11',function(e,o,p){var a,d,j=this,i=b,h=b,k=b,l=b,m=b;return i=e['$[]'](1),d=e['$[]'](2),a=c(d),h=a[0]==null?b:a[0],k=a[1]==null?b:a[1],d,d=e['$[]'](3),a=c(d),l=a[0]==null?b:a[0],m=a[1]==null?b:a[1],d,f(i['$empty?']())&&g(h['$nil?']())&&j.$diagnostic("error","useless_else",b,h),j.builder.$begin_body(e['$[]'](0),i,h,k,l,m)}),a(m,'$_reduce_12',function(a,d,e){var b=this;return b.builder.$compstmt(a['$[]'](0))}),a(m,'$_reduce_13',function(b,c,d){return[]}),a(m,'$_reduce_14',function(a,c,d){return[a['$[]'](0)]}),a(m,'$_reduce_15',function(a,c,d){return a['$[]'](0)['$<<'](a['$[]'](2))}),a(m,'$_reduce_16',function(a,c,d){return[a['$[]'](1)]}),a(m,'$_reduce_18',function(a,f,c){var d=this;return d.$diagnostic("error","begin_in_method",b,a['$[]'](0)),c}),a(m,'$_reduce_19',function(d,e,a){var b=this;return b.lexer['$state=']("expr_fname"),a}),a(m,'$_reduce_20',function(a,d,e){var b=this;return b.builder.$alias(a['$[]'](0),a['$[]'](1),a['$[]'](3))}),a(m,'$_reduce_21',function(a,d,e){var b=this;return b.builder.$alias(a['$[]'](0),b.builder.$gvar(a['$[]'](1)),b.builder.$gvar(a['$[]'](2)))}),a(m,'$_reduce_22',function(a,d,e){var b=this;return b.builder.$alias(a['$[]'](0),b.builder.$gvar(a['$[]'](1)),b.builder.$back_ref(a['$[]'](2)))}),a(m,'$_reduce_23',function(a,f,c){var d=this;return d.$diagnostic("error","nth_ref_alias",b,a['$[]'](2)),c}),a(m,'$_reduce_24',function(a,d,e){var b=this;return b.builder.$undef_method(a['$[]'](0),a['$[]'](1))}),a(m,'$_reduce_25',function(a,e,f){var c=this;return c.builder.$condition_mod(a['$[]'](0),b,a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_26',function(a,e,f){var c=this;return c.builder.$condition_mod(b,a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_27',function(a,d,e){var b=this;return b.builder.$loop_mod("while",a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_28',function(a,d,e){var b=this;return b.builder.$loop_mod("until",a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_29',function(a,f,g){var c=this,d=b;return d=c.builder.$rescue_body(a['$[]'](1),b,b,b,b,a['$[]'](2)),c.builder.$begin_body(a['$[]'](0),[d])}),a(m,'$_reduce_30',function(a,d,e){var b=this;return b.builder.$postexe(a['$[]'](0),a['$[]'](1),a['$[]'](2),a['$[]'](3))}),a(m,'$_reduce_32',function(a,d,e){var b=this;return b.builder.$multi_assign(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_33',function(a,e,f){var c=this;return c.builder.$assign(a['$[]'](0),a['$[]'](1),c.builder.$array(b,a['$[]'](2),b))}),a(m,'$_reduce_34',function(a,f,g){var c=this,e=b,d=b;return e=c.builder.$rescue_body(a['$[]'](3),b,b,b,b,a['$[]'](4)),d=c.builder.$begin_body(a['$[]'](2),[e]),c.builder.$multi_assign(a['$[]'](0),a['$[]'](1),d)}),a(m,'$_reduce_35',function(a,d,e){var b=this;return b.builder.$multi_assign(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_37',function(a,d,e){var b=this;return b.builder.$assign(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_38',function(a,d,e){var b=this;return b.builder.$op_assign(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_39',function(a,d,e){var b=this;return b.builder.$op_assign(b.builder.$index(a['$[]'](0),a['$[]'](1),a['$[]'](2),a['$[]'](3)),a['$[]'](4),a['$[]'](5))}),a(m,'$_reduce_40',function(a,d,e){var b=this;return b.builder.$op_assign(b.builder.$call_method(a['$[]'](0),a['$[]'](1),a['$[]'](2)),a['$[]'](3),a['$[]'](4))}),a(m,'$_reduce_41',function(a,d,e){var b=this;return b.builder.$op_assign(b.builder.$call_method(a['$[]'](0),a['$[]'](1),a['$[]'](2)),a['$[]'](3),a['$[]'](4))}),a(m,'$_reduce_42',function(a,f,g){var c=this,d=b;return d=c.builder.$const_op_assignable(c.builder.$const_fetch(a['$[]'](0),a['$[]'](1),a['$[]'](2))),c.builder.$op_assign(d,a['$[]'](3),a['$[]'](4))}),a(m,'$_reduce_43',function(a,d,e){var b=this;return b.builder.$op_assign(b.builder.$call_method(a['$[]'](0),a['$[]'](1),a['$[]'](2)),a['$[]'](3),a['$[]'](4))}),a(m,'$_reduce_44',function(f,m,j){var e,h,a,d=this,i=b,g=b,k=b;return h=f['$[]'](0),e=c(h),i=e[0]==null?b:e[0],(a=c(e[1]==null?b:e[1]),g=a[0]==null?b:a[0],k=a[1]==null?b:a[1]),h,d.$endless_method_name(g),j=d.builder.$def_endless_method(i,g,f['$[]'](1),f['$[]'](2),f['$[]'](3)),d.$local_pop(),d.current_arg_stack.$pop(),d.context['$in_def='](k.$in_def()),j}),a(m,'$_reduce_45',function(d,n,j){var f,h,e,a=this,k=b,g=b,m=b,l=b,i=b;return h=d['$[]'](0),f=c(h),k=f[0]==null?b:f[0],(e=c(f[1]==null?b:f[1]),g=e[0]==null?b:e[0],m=e[1]==null?b:e[1]),h,a.$endless_method_name(g),l=a.builder.$rescue_body(d['$[]'](4),b,b,b,b,d['$[]'](5)),i=a.builder.$begin_body(d['$[]'](3),[l]),j=a.builder.$def_endless_method(k,g,d['$[]'](1),d['$[]'](2),i),a.$local_pop(),a.current_arg_stack.$pop(),a.context['$in_def='](m.$in_def()),j}),a(m,'$_reduce_46',function(f,n,j){var a,h,d,e=this,k=b,l=b,m=b,g=b,i=b;return h=f['$[]'](0),a=c(h),k=a[0]==null?b:a[0],l=a[1]==null?b:a[1],m=a[2]==null?b:a[2],(d=c(a[3]==null?b:a[3]),g=d[0]==null?b:d[0],i=d[1]==null?b:d[1]),h,e.$endless_method_name(g),j=e.builder.$def_endless_singleton(k,l,m,g,f['$[]'](1),f['$[]'](2),f['$[]'](3)),e.$local_pop(),e.current_arg_stack.$pop(),e.context['$in_def='](i.$in_def()),j}),a(m,'$_reduce_47',function(e,p,j){var a,h,f,d=this,k=b,l=b,m=b,g=b,o=b,n=b,i=b;return h=e['$[]'](0),a=c(h),k=a[0]==null?b:a[0],l=a[1]==null?b:a[1],m=a[2]==null?b:a[2],(f=c(a[3]==null?b:a[3]),g=f[0]==null?b:f[0],o=f[1]==null?b:f[1]),h,d.$endless_method_name(g),n=d.builder.$rescue_body(e['$[]'](4),b,b,b,b,e['$[]'](5)),i=d.builder.$begin_body(e['$[]'](3),[n]),j=d.builder.$def_endless_singleton(k,l,m,g,e['$[]'](1),e['$[]'](2),i),d.$local_pop(),d.current_arg_stack.$pop(),d.context['$in_def='](o.$in_def()),j}),a(m,'$_reduce_48',function(a,e,b){var c=this;return c.builder.$op_assign(a['$[]'](0),a['$[]'](1),a['$[]'](2)),b}),a(m,'$_reduce_50',function(a,f,g){var c=this,d=b;return d=c.builder.$rescue_body(a['$[]'](1),b,b,b,b,a['$[]'](2)),c.builder.$begin_body(a['$[]'](0),[d])}),a(m,'$_reduce_53',function(a,d,e){var b=this;return b.builder.$logical_op("and",a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_54',function(a,d,e){var b=this;return b.builder.$logical_op("or",a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_55',function(a,e,f){var c=this;return c.builder.$not_op(a['$[]'](0),b,a['$[]'](2),b)}),a(m,'$_reduce_56',function(a,e,f){var c=this;return c.builder.$not_op(a['$[]'](0),b,a['$[]'](1),b)}),a(m,'$_reduce_57',function(d,e,b){var a=this;return a.lexer['$state=']("expr_beg"),a.lexer['$command_start='](!1),a.pattern_variables.$push(),a.pattern_hash_keys.$push(),b=a.context.$in_kwarg(),a.context['$in_kwarg='](!0),b}),a(m,'$_reduce_58',function(a,d,e){var b=this;return b.pattern_variables.$pop(),b.pattern_hash_keys.$pop(),b.context['$in_kwarg='](a['$[]'](2)),b.builder.$match_pattern(a['$[]'](0),a['$[]'](1),a['$[]'](3))}),a(m,'$_reduce_59',function(d,e,b){var a=this;return a.lexer['$state=']("expr_beg"),a.lexer['$command_start='](!1),a.pattern_variables.$push(),a.pattern_hash_keys.$push(),b=a.context.$in_kwarg(),a.context['$in_kwarg='](!0),b}),a(m,'$_reduce_60',function(a,d,e){var b=this;return b.pattern_variables.$pop(),b.pattern_hash_keys.$pop(),b.context['$in_kwarg='](a['$[]'](2)),b.builder.$match_pattern_p(a['$[]'](0),a['$[]'](1),a['$[]'](3))}),a(m,'$_reduce_63',function(d,e,a){var b=this;return b.lexer.$cond().$push(!0),a}),a(m,'$_reduce_64',function(a,d,e){var b=this;return b.lexer.$cond().$pop(),[a['$[]'](1),a['$[]'](2)]}),a(m,'$_reduce_65',function(d,f,c){var a=this;return a.$local_push(),a.current_arg_stack.$push(b),c=[d['$[]'](0),a.context.$dup()],a.context['$in_def='](!0),c}),a(m,'$_reduce_66',function(a,c,d){return[a['$[]'](0),a['$[]'](1)]}),a(m,'$_reduce_67',function(d,e,b){var a=this;return a.lexer['$state=']("expr_fname"),a.context['$in_argdef='](!0),b}),a(m,'$_reduce_68',function(a,c,d){return[a['$[]'](0),a['$[]'](1),a['$[]'](2),a['$[]'](4)]}),a(m,'$_reduce_72',function(a,e,f){var c=this;return c.builder.$call_method(a['$[]'](0),a['$[]'](1),a['$[]'](2),b,a['$[]'](3),b)}),a(m,'$_reduce_73',function(d,e,a){var b=this;return a=b.context.$dup(),b.context['$in_block='](!0),a}),a(m,'$_reduce_74',function(a,e,f){var b=this;return b.context['$in_block='](a['$[]'](1).$in_block()),[a['$[]'](0)].concat(d(a['$[]'](2))).concat([a['$[]'](3)])}),a(m,'$_reduce_76',function(a,e,f){var c=this;return c.builder.$call_method(b,b,a['$[]'](0),b,a['$[]'](1),b)}),a(m,'$_reduce_77',function(d,m,n){var a,e,f=this,i=b,g=b,h=b,j=b,k=b;return i=f.builder.$call_method(b,b,d['$[]'](0),b,d['$[]'](1),b),e=d['$[]'](2),a=c(e),g=a[0]==null?b:a[0],h=a[1]==null?b:a[1],j=a[2]==null?b:a[2],k=a[3]==null?b:a[3],e,f.builder.$block(i,g,h,j,k)}),a(m,'$_reduce_78',function(a,e,f){var c=this;return c.builder.$call_method(a['$[]'](0),a['$[]'](1),a['$[]'](2),b,a['$[]'](3),b)}),a(m,'$_reduce_79',function(d,m,n){var a,e,f=this,i=b,g=b,h=b,j=b,k=b;return i=f.builder.$call_method(d['$[]'](0),d['$[]'](1),d['$[]'](2),b,d['$[]'](3),b),e=d['$[]'](4),a=c(e),g=a[0]==null?b:a[0],h=a[1]==null?b:a[1],j=a[2]==null?b:a[2],k=a[3]==null?b:a[3],e,f.builder.$block(i,g,h,j,k)}),a(m,'$_reduce_80',function(a,e,f){var c=this;return c.builder.$call_method(a['$[]'](0),a['$[]'](1),a['$[]'](2),b,a['$[]'](3),b)}),a(m,'$_reduce_81',function(d,m,n){var a,e,f=this,i=b,g=b,h=b,j=b,k=b;return i=f.builder.$call_method(d['$[]'](0),d['$[]'](1),d['$[]'](2),b,d['$[]'](3),b),e=d['$[]'](4),a=c(e),g=a[0]==null?b:a[0],h=a[1]==null?b:a[1],j=a[2]==null?b:a[2],k=a[3]==null?b:a[3],e,f.builder.$block(i,g,h,j,k)}),a(m,'$_reduce_82',function(a,e,f){var c=this;return c.builder.$keyword_cmd("super",a['$[]'](0),b,a['$[]'](1),b)}),a(m,'$_reduce_83',function(a,e,f){var c=this;return c.builder.$keyword_cmd("yield",a['$[]'](0),b,a['$[]'](1),b)}),a(m,'$_reduce_84',function(a,e,f){var c=this;return c.builder.$keyword_cmd("return",a['$[]'](0),b,a['$[]'](1),b)}),a(m,'$_reduce_85',function(a,e,f){var c=this;return c.builder.$keyword_cmd("break",a['$[]'](0),b,a['$[]'](1),b)}),a(m,'$_reduce_86',function(a,e,f){var c=this;return c.builder.$keyword_cmd("next",a['$[]'](0),b,a['$[]'](1),b)}),a(m,'$_reduce_87',function(a,e,f){var c=this;return c.builder.$multi_lhs(b,a['$[]'](0),b)}),a(m,'$_reduce_88',function(a,d,e){var b=this;return b.builder.$begin(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_89',function(a,e,f){var c=this;return c.builder.$multi_lhs(b,a['$[]'](0),b)}),a(m,'$_reduce_90',function(a,d,e){var b=this;return b.builder.$multi_lhs(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_92',function(a,c,d){return a['$[]'](0).$push(a['$[]'](1))}),a(m,'$_reduce_93',function(a,d,e){var b=this;return a['$[]'](0).$push(b.builder.$splat(a['$[]'](1),a['$[]'](2)))}),a(m,'$_reduce_94',function(a,d,e){var b=this;return a['$[]'](0).$push(b.builder.$splat(a['$[]'](1),a['$[]'](2))).$concat(a['$[]'](4))}),a(m,'$_reduce_95',function(a,d,e){var b=this;return a['$[]'](0).$push(b.builder.$splat(a['$[]'](1)))}),a(m,'$_reduce_96',function(a,d,e){var b=this;return a['$[]'](0).$push(b.builder.$splat(a['$[]'](1))).$concat(a['$[]'](3))}),a(m,'$_reduce_97',function(a,d,e){var b=this;return[b.builder.$splat(a['$[]'](0),a['$[]'](1))]}),a(m,'$_reduce_98',function(a,e,f){var b=this;return[b.builder.$splat(a['$[]'](0),a['$[]'](1))].concat(d(a['$[]'](3)))}),a(m,'$_reduce_99',function(a,d,e){var b=this;return[b.builder.$splat(a['$[]'](0))]}),a(m,'$_reduce_100',function(a,e,f){var b=this;return[b.builder.$splat(a['$[]'](0))].concat(d(a['$[]'](2)))}),a(m,'$_reduce_102',function(a,d,e){var b=this;return b.builder.$begin(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_103',function(a,c,d){return[a['$[]'](0)]}),a(m,'$_reduce_104',function(a,c,d){return a['$[]'](0)['$<<'](a['$[]'](1))}),a(m,'$_reduce_105',function(a,c,d){return[a['$[]'](0)]}),a(m,'$_reduce_106',function(a,c,d){return a['$[]'](0)['$<<'](a['$[]'](2))}),a(m,'$_reduce_107',function(a,d,e){var b=this;return b.builder.$assignable(a['$[]'](0))}),a(m,'$_reduce_108',function(a,d,e){var b=this;return b.builder.$assignable(a['$[]'](0))}),a(m,'$_reduce_109',function(a,d,e){var b=this;return b.builder.$index_asgn(a['$[]'](0),a['$[]'](1),a['$[]'](2),a['$[]'](3))}),a(m,'$_reduce_110',function(a,e,f){var c=this;return l(a['$[]'](1)['$[]'](0),"anddot")&&c.$diagnostic("error","csend_in_lhs_of_masgn",b,a['$[]'](1)),c.builder.$attr_asgn(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_111',function(a,d,e){var b=this;return b.builder.$attr_asgn(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_112',function(a,e,f){var c=this;return l(a['$[]'](1)['$[]'](0),"anddot")&&c.$diagnostic("error","csend_in_lhs_of_masgn",b,a['$[]'](1)),c.builder.$attr_asgn(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_113',function(a,d,e){var b=this;return b.builder.$assignable(b.builder.$const_fetch(a['$[]'](0),a['$[]'](1),a['$[]'](2)))}),a(m,'$_reduce_114',function(a,d,e){var b=this;return b.builder.$assignable(b.builder.$const_global(a['$[]'](0),a['$[]'](1)))}),a(m,'$_reduce_115',function(a,d,e){var b=this;return b.builder.$assignable(a['$[]'](0))}),a(m,'$_reduce_116',function(a,d,e){var b=this;return b.builder.$assignable(a['$[]'](0))}),a(m,'$_reduce_117',function(a,d,e){var b=this;return b.builder.$assignable(a['$[]'](0))}),a(m,'$_reduce_118',function(a,d,e){var b=this;return b.builder.$index_asgn(a['$[]'](0),a['$[]'](1),a['$[]'](2),a['$[]'](3))}),a(m,'$_reduce_119',function(a,d,e){var b=this;return b.builder.$attr_asgn(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_120',function(a,d,e){var b=this;return b.builder.$attr_asgn(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_121',function(a,d,e){var b=this;return b.builder.$attr_asgn(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_122',function(a,d,e){var b=this;return b.builder.$assignable(b.builder.$const_fetch(a['$[]'](0),a['$[]'](1),a['$[]'](2)))}),a(m,'$_reduce_123',function(a,d,e){var b=this;return b.builder.$assignable(b.builder.$const_global(a['$[]'](0),a['$[]'](1)))}),a(m,'$_reduce_124',function(a,d,e){var b=this;return b.builder.$assignable(a['$[]'](0))}),a(m,'$_reduce_125',function(a,f,c){var d=this;return d.$diagnostic("error","module_name_const",b,a['$[]'](0)),c}),a(m,'$_reduce_127',function(a,d,e){var b=this;return b.builder.$const_global(a['$[]'](0),a['$[]'](1))}),a(m,'$_reduce_128',function(a,d,e){var b=this;return b.builder.$const(a['$[]'](0))}),a(m,'$_reduce_129',function(a,d,e){var b=this;return b.builder.$const_fetch(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_135',function(a,d,e){var b=this;return b.builder.$symbol_internal(a['$[]'](0))}),a(m,'$_reduce_137',function(a,c,d){return[a['$[]'](0)]}),a(m,'$_reduce_138',function(d,e,a){var b=this;return b.lexer['$state=']("expr_fname"),a}),a(m,'$_reduce_139',function(a,c,d){return a['$[]'](0)['$<<'](a['$[]'](3))}),a(m,'$_reduce_211',function(a,d,e){var b=this;return b.builder.$assign(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_212',function(a,d,e){var b=this;return b.builder.$op_assign(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_213',function(a,d,e){var b=this;return b.builder.$op_assign(b.builder.$index(a['$[]'](0),a['$[]'](1),a['$[]'](2),a['$[]'](3)),a['$[]'](4),a['$[]'](5))}),a(m,'$_reduce_214',function(a,d,e){var b=this;return b.builder.$op_assign(b.builder.$call_method(a['$[]'](0),a['$[]'](1),a['$[]'](2)),a['$[]'](3),a['$[]'](4))}),a(m,'$_reduce_215',function(a,d,e){var b=this;return b.builder.$op_assign(b.builder.$call_method(a['$[]'](0),a['$[]'](1),a['$[]'](2)),a['$[]'](3),a['$[]'](4))}),a(m,'$_reduce_216',function(a,d,e){var b=this;return b.builder.$op_assign(b.builder.$call_method(a['$[]'](0),a['$[]'](1),a['$[]'](2)),a['$[]'](3),a['$[]'](4))}),a(m,'$_reduce_217',function(a,f,g){var c=this,d=b;return d=c.builder.$const_op_assignable(c.builder.$const_fetch(a['$[]'](0),a['$[]'](1),a['$[]'](2))),c.builder.$op_assign(d,a['$[]'](3),a['$[]'](4))}),a(m,'$_reduce_218',function(a,f,g){var c=this,d=b;return d=c.builder.$const_op_assignable(c.builder.$const_global(a['$[]'](0),a['$[]'](1))),c.builder.$op_assign(d,a['$[]'](2),a['$[]'](3))}),a(m,'$_reduce_219',function(a,d,e){var b=this;return b.builder.$op_assign(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_220',function(a,d,e){var b=this;return b.builder.$range_inclusive(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_221',function(a,d,e){var b=this;return b.builder.$range_exclusive(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_222',function(a,e,f){var c=this;return c.builder.$range_inclusive(a['$[]'](0),a['$[]'](1),b)}),a(m,'$_reduce_223',function(a,e,f){var c=this;return c.builder.$range_exclusive(a['$[]'](0),a['$[]'](1),b)}),a(m,'$_reduce_224',function(a,e,f){var c=this;return c.builder.$range_inclusive(b,a['$[]'](0),a['$[]'](1))}),a(m,'$_reduce_225',function(a,e,f){var c=this;return c.builder.$range_exclusive(b,a['$[]'](0),a['$[]'](1))}),a(m,'$_reduce_226',function(a,d,e){var b=this;return b.builder.$binary_op(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_227',function(a,d,e){var b=this;return b.builder.$binary_op(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_228',function(a,d,e){var b=this;return b.builder.$binary_op(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_229',function(a,d,e){var b=this;return b.builder.$binary_op(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_230',function(a,d,e){var b=this;return b.builder.$binary_op(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_231',function(a,d,e){var b=this;return b.builder.$binary_op(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_232',function(a,d,e){var b=this;return b.builder.$unary_op(a['$[]'](0),b.builder.$binary_op(a['$[]'](1),a['$[]'](2),a['$[]'](3)))}),a(m,'$_reduce_233',function(a,d,e){var b=this;return b.builder.$unary_op(a['$[]'](0),a['$[]'](1))}),a(m,'$_reduce_234',function(a,d,e){var b=this;return b.builder.$unary_op(a['$[]'](0),a['$[]'](1))}),a(m,'$_reduce_235',function(a,d,e){var b=this;return b.builder.$binary_op(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_236',function(a,d,e){var b=this;return b.builder.$binary_op(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_237',function(a,d,e){var b=this;return b.builder.$binary_op(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_238',function(a,d,e){var b=this;return b.builder.$binary_op(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_240',function(a,d,e){var b=this;return b.builder.$binary_op(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_241',function(a,d,e){var b=this;return b.builder.$binary_op(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_242',function(a,d,e){var b=this;return b.builder.$binary_op(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_243',function(a,d,e){var b=this;return b.builder.$match_op(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_244',function(a,d,e){var b=this;return b.builder.$binary_op(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_245',function(a,e,f){var c=this;return c.builder.$not_op(a['$[]'](0),b,a['$[]'](1),b)}),a(m,'$_reduce_246',function(a,d,e){var b=this;return b.builder.$unary_op(a['$[]'](0),a['$[]'](1))}),a(m,'$_reduce_247',function(a,d,e){var b=this;return b.builder.$binary_op(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_248',function(a,d,e){var b=this;return b.builder.$binary_op(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_249',function(a,d,e){var b=this;return b.builder.$logical_op("and",a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_250',function(a,d,e){var b=this;return b.builder.$logical_op("or",a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_251',function(d,e,a){var b=this;return b.context['$in_defined='](!0),a}),a(m,'$_reduce_252',function(a,e,f){var c=this;return c.context['$in_defined='](!1),c.builder.$keyword_cmd("defined?",a['$[]'](0),b,[a['$[]'](3)],b)}),a(m,'$_reduce_253',function(a,d,e){var b=this;return b.builder.$ternary(a['$[]'](0),a['$[]'](1),a['$[]'](2),a['$[]'](4),a['$[]'](5))}),a(m,'$_reduce_254',function(f,m,j){var e,h,a,d=this,i=b,g=b,k=b;return h=f['$[]'](0),e=c(h),i=e[0]==null?b:e[0],(a=c(e[1]==null?b:e[1]),g=a[0]==null?b:a[0],k=a[1]==null?b:a[1]),h,d.$endless_method_name(g),j=d.builder.$def_endless_method(i,g,f['$[]'](1),f['$[]'](2),f['$[]'](3)),d.$local_pop(),d.current_arg_stack.$pop(),d.context['$in_def='](k.$in_def()),j}),a(m,'$_reduce_255',function(d,n,j){var f,h,e,a=this,k=b,g=b,m=b,l=b,i=b;return h=d['$[]'](0),f=c(h),k=f[0]==null?b:f[0],(e=c(f[1]==null?b:f[1]),g=e[0]==null?b:e[0],m=e[1]==null?b:e[1]),h,a.$endless_method_name(g),l=a.builder.$rescue_body(d['$[]'](4),b,b,b,b,d['$[]'](5)),i=a.builder.$begin_body(d['$[]'](3),[l]),j=a.builder.$def_endless_method(k,g,d['$[]'](1),d['$[]'](2),i),a.$local_pop(),a.current_arg_stack.$pop(),a.context['$in_def='](m.$in_def()),j}),a(m,'$_reduce_256',function(f,n,j){var a,h,d,e=this,k=b,l=b,m=b,g=b,i=b;return h=f['$[]'](0),a=c(h),k=a[0]==null?b:a[0],l=a[1]==null?b:a[1],m=a[2]==null?b:a[2],(d=c(a[3]==null?b:a[3]),g=d[0]==null?b:d[0],i=d[1]==null?b:d[1]),h,e.$endless_method_name(g),j=e.builder.$def_endless_singleton(k,l,m,g,f['$[]'](1),f['$[]'](2),f['$[]'](3)),e.$local_pop(),e.current_arg_stack.$pop(),e.context['$in_def='](i.$in_def()),j}),a(m,'$_reduce_257',function(e,p,j){var a,h,f,d=this,k=b,l=b,m=b,g=b,o=b,n=b,i=b;return h=e['$[]'](0),a=c(h),k=a[0]==null?b:a[0],l=a[1]==null?b:a[1],m=a[2]==null?b:a[2],(f=c(a[3]==null?b:a[3]),g=f[0]==null?b:f[0],o=f[1]==null?b:f[1]),h,d.$endless_method_name(g),n=d.builder.$rescue_body(e['$[]'](4),b,b,b,b,e['$[]'](5)),i=d.builder.$begin_body(e['$[]'](3),[n]),j=d.builder.$def_endless_singleton(k,l,m,g,e['$[]'](1),e['$[]'](2),i),d.$local_pop(),d.current_arg_stack.$pop(),d.context['$in_def='](o.$in_def()),j}),a(m,'$_reduce_263',function(a,d,e){var b=this;return b.builder.$binary_op(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_264',function(a,d,e){var b=this;return b.builder.$binary_op(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_268',function(a,e,f){var c=this;return a['$[]'](0)['$<<'](c.builder.$associate(b,a['$[]'](2),b))}),a(m,'$_reduce_269',function(a,e,f){var c=this;return[c.builder.$associate(b,a['$[]'](0),b)]}),a(m,'$_reduce_271',function(a,f,g){var c=this,d=b;return d=c.builder.$rescue_body(a['$[]'](1),b,b,b,b,a['$[]'](2)),c.builder.$begin_body(a['$[]'](0),[d])}),a(m,'$_reduce_272',function(a,c,d){return a}),a(m,'$_reduce_273',function(a,e,g){var b=this;return f(b.static_env['$declared_forward_args?']())||b.$diagnostic("error","unexpected_token",new Map([["token","tBDOT3"]]),a['$[]'](3)),[a['$[]'](0),[].concat(d(a['$[]'](1))).concat([b.builder.$forwarded_args(a['$[]'](3))]),a['$[]'](4)]}),a(m,'$_reduce_274',function(a,d,e){var b=this;return f(b.static_env['$declared_forward_args?']())||b.$diagnostic("error","unexpected_token",new Map([["token","tBDOT3"]]),a['$[]'](1)),[a['$[]'](0),[b.builder.$forwarded_args(a['$[]'](1))],a['$[]'](2)]}),a(m,'$_reduce_275',function(c,d,e){return[b,[],b]}),a(m,'$_reduce_277',function(b,c,d){return[]}),a(m,'$_reduce_280',function(a,e,f){var c=this;return a['$[]'](0)['$<<'](c.builder.$associate(b,a['$[]'](2),b))}),a(m,'$_reduce_281',function(a,e,f){var c=this;return[c.builder.$associate(b,a['$[]'](0),b)]}),a(m,'$_reduce_282',function(a,c,d){return[a['$[]'](0)]}),a(m,'$_reduce_283',function(a,c,d){return a['$[]'](0).$concat(a['$[]'](1))}),a(m,'$_reduce_284',function(c,f,a){var d=this;return a=[d.builder.$associate(b,c['$[]'](0),b)],a.$concat(c['$[]'](1)),a}),a(m,'$_reduce_285',function(a,g,c){var e=this,d=b;return d=e.builder.$associate(b,a['$[]'](2),b),c=a['$[]'](0)['$<<'](d),c.$concat(a['$[]'](3)),c}),a(m,'$_reduce_286',function(a,c,d){return[a['$[]'](0)]}),a(m,'$_reduce_287',function(j,k,h){var a=this,c=b,d=b,e=b,g=b;return c=a.last_token['$[]'](0),d=f(e=c['$==']("tLBRACK"))?e:c['$==']("tLPAREN_ARG"),f(d)?(g=a.lexer.$cmdarg().$pop(),a.lexer.$cmdarg().$push(!0),a.lexer.$cmdarg().$push(g)):a.lexer.$cmdarg().$push(!0),h}),a(m,'$_reduce_288',function(g,h,i){var a=this,e=b,c=b,d=b;return e=a.last_token['$[]'](0),c=e['$==']("tLBRACE_ARG"),f(c)?(d=a.lexer.$cmdarg().$pop(),a.lexer.$cmdarg().$pop(),a.lexer.$cmdarg().$push(d)):a.lexer.$cmdarg().$pop(),g['$[]'](1)}),a(m,'$_reduce_289',function(a,d,e){var b=this;return b.builder.$block_pass(a['$[]'](0),a['$[]'](1))}),a(m,'$_reduce_290',function(c,e,f){var a=this;return g(a.static_env['$declared_anonymous_blockarg?']())&&a.$diagnostic("error","no_anonymous_blockarg",b,c['$[]'](0)),a.builder.$block_pass(c['$[]'](0),b)}),a(m,'$_reduce_291',function(a,c,d){return[a['$[]'](1)]}),a(m,'$_reduce_292',function(b,c,d){return[]}),a(m,'$_reduce_293',function(a,c,d){return[a['$[]'](0)]}),a(m,'$_reduce_294',function(a,d,e){var b=this;return[b.builder.$splat(a['$[]'](0),a['$[]'](1))]}),a(m,'$_reduce_295',function(c,e,f){var a=this;return g(a.static_env['$declared_anonymous_restarg?']())&&a.$diagnostic("error","no_anonymous_restarg",b,c['$[]'](0)),[a.builder.$forwarded_restarg(c['$[]'](0))]}),a(m,'$_reduce_296',function(a,c,d){return a['$[]'](0)['$<<'](a['$[]'](2))}),a(m,'$_reduce_297',function(a,d,e){var b=this;return a['$[]'](0)['$<<'](b.builder.$splat(a['$[]'](2),a['$[]'](3)))}),a(m,'$_reduce_298',function(a,e,f){var c=this;return g(c.static_env['$declared_anonymous_restarg?']())&&c.$diagnostic("error","no_anonymous_restarg",b,a['$[]'](2)),a['$[]'](0)['$<<'](c.builder.$forwarded_restarg(a['$[]'](2)))}),a(m,'$_reduce_299',function(a,e,f){var c=this;return c.builder.$array(b,a['$[]'](0),b)}),a(m,'$_reduce_301',function(a,c,d){return a['$[]'](0)['$<<'](a['$[]'](2))}),a(m,'$_reduce_302',function(a,d,e){var b=this;return a['$[]'](0)['$<<'](b.builder.$splat(a['$[]'](2),a['$[]'](3)))}),a(m,'$_reduce_303',function(a,d,e){var b=this;return[b.builder.$splat(a['$[]'](0),a['$[]'](1))]}),a(m,'$_reduce_314',function(a,e,f){var c=this;return c.builder.$call_method(b,b,a['$[]'](0))}),a(m,'$_reduce_315',function(d,e,a){var b=this;return b.lexer.$cmdarg().$push(!1),a}),a(m,'$_reduce_316',function(a,d,e){var b=this;return b.lexer.$cmdarg().$pop(),b.builder.$begin_keyword(a['$[]'](0),a['$[]'](2),a['$[]'](3))}),a(m,'$_reduce_317',function(d,e,a){var b=this;return b.lexer['$state=']("expr_endarg"),a}),a(m,'$_reduce_318',function(a,d,e){var b=this;return b.builder.$begin(a['$[]'](0),a['$[]'](1),a['$[]'](3))}),a(m,'$_reduce_319',function(d,e,a){var b=this;return b.lexer['$state=']("expr_endarg"),a}),a(m,'$_reduce_320',function(a,e,f){var c=this;return c.builder.$begin(a['$[]'](0),b,a['$[]'](3))}),a(m,'$_reduce_321',function(a,d,e){var b=this;return b.builder.$begin(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_322',function(a,d,e){var b=this;return b.builder.$const_fetch(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_323',function(a,d,e){var b=this;return b.builder.$const_global(a['$[]'](0),a['$[]'](1))}),a(m,'$_reduce_324',function(a,d,e){var b=this;return b.builder.$array(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_325',function(a,d,e){var b=this;return b.builder.$associate(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_326',function(a,d,e){var b=this;return b.builder.$keyword_cmd("return",a['$[]'](0))}),a(m,'$_reduce_327',function(a,d,e){var b=this;return b.builder.$keyword_cmd("yield",a['$[]'](0),a['$[]'](1),a['$[]'](2),a['$[]'](3))}),a(m,'$_reduce_328',function(a,d,e){var b=this;return b.builder.$keyword_cmd("yield",a['$[]'](0),a['$[]'](1),[],a['$[]'](2))}),a(m,'$_reduce_329',function(a,d,e){var b=this;return b.builder.$keyword_cmd("yield",a['$[]'](0))}),a(m,'$_reduce_330',function(d,e,a){var b=this;return b.context['$in_defined='](!0),a}),a(m,'$_reduce_331',function(a,d,e){var b=this;return b.context['$in_defined='](!1),b.builder.$keyword_cmd("defined?",a['$[]'](0),a['$[]'](2),[a['$[]'](4)],a['$[]'](5))}),a(m,'$_reduce_332',function(a,d,e){var b=this;return b.builder.$not_op(a['$[]'](0),a['$[]'](1),a['$[]'](2),a['$[]'](3))}),a(m,'$_reduce_333',function(a,e,f){var c=this;return c.builder.$not_op(a['$[]'](0),a['$[]'](1),b,a['$[]'](2))}),a(m,'$_reduce_334',function(f,m,n){var a,d,e=this,i=b,g=b,h=b,j=b,k=b;return i=e.builder.$call_method(b,b,f['$[]'](0)),d=f['$[]'](1),a=c(d),g=a[0]==null?b:a[0],h=a[1]==null?b:a[1],j=a[2]==null?b:a[2],k=a[3]==null?b:a[3],d,e.builder.$block(i,g,h,j,k)}),a(m,'$_reduce_336',function(e,l,m){var a,d,j=this,h=b,f=b,g=b,i=b;return d=e['$[]'](1),a=c(d),h=a[0]==null?b:a[0],f=a[1]==null?b:a[1],g=a[2]==null?b:a[2],i=a[3]==null?b:a[3],d,j.builder.$block(e['$[]'](0),h,f,g,i)}),a(m,'$_reduce_338',function(a,k,i){var d,e,h=this,g=b,f=b;return e=a['$[]'](4),d=c(e),g=d[0]==null?b:d[0],f=d[1]==null?b:d[1],e,h.builder.$condition(a['$[]'](0),a['$[]'](1),a['$[]'](2),a['$[]'](3),g,f,a['$[]'](5))}),a(m,'$_reduce_339',function(a,k,i){var d,e,h=this,g=b,f=b;return e=a['$[]'](4),d=c(e),g=d[0]==null?b:d[0],f=d[1]==null?b:d[1],e,h.builder.$condition(a['$[]'](0),a['$[]'](1),a['$[]'](2),f,g,a['$[]'](3),a['$[]'](5))}),a(m,'$_reduce_340',function(a,e,f){var b=this;return h(b.builder,'loop',["while",a['$[]'](0)].concat(d(a['$[]'](1))).concat([a['$[]'](2),a['$[]'](3)]))}),a(m,'$_reduce_341',function(a,e,f){var b=this;return h(b.builder,'loop',["until",a['$[]'](0)].concat(d(a['$[]'](1))).concat([a['$[]'](2),a['$[]'](3)]))}),a(m,'$_reduce_342',function(g,n,o){var e,a,f,l=this,h=b,j=b,k=b;return e=[].concat(d(g['$[]'](3))),a=e.length-1,a=a<0?0:a,h=i(e,0,a),(f=c(e[a]==null?b:e[a]),j=f[0]==null?b:f[0],k=f[1]==null?b:f[1]),e,l.builder.$case(g['$[]'](0),g['$[]'](1),h,j,k,g['$[]'](4))}),a(m,'$_reduce_343',function(g,n,o){var e,a,f,l=this,h=b,j=b,k=b;return e=[].concat(d(g['$[]'](2))),a=e.length-1,a=a<0?0:a,h=i(e,0,a),(f=c(e[a]==null?b:e[a]),j=f[0]==null?b:f[0],k=f[1]==null?b:f[1]),e,l.builder.$case(g['$[]'](0),b,h,j,k,g['$[]'](3))}),a(m,'$_reduce_344',function(g,n,o){var e,a,f,l=this,h=b,j=b,k=b;return e=[].concat(d(g['$[]'](3))),a=e.length-1,a=a<0?0:a,h=i(e,0,a),(f=c(e[a]==null?b:e[a]),j=f[0]==null?b:f[0],k=f[1]==null?b:f[1]),e,l.builder.$case_match(g['$[]'](0),g['$[]'](1),h,j,k,g['$[]'](4))}),a(m,'$_reduce_345',function(a,e,f){var b=this;return h(b.builder,'for',[a['$[]'](0),a['$[]'](1),a['$[]'](2)].concat(d(a['$[]'](3))).concat([a['$[]'](4),a['$[]'](5)]))}),a(m,'$_reduce_346',function(d,e,b){var a=this;return a.context['$in_class='](!0),a.$local_push(),b}),a(m,'$_reduce_347',function(g,n,j){var a,d,e=this,h=b,i=b,k=b,l=b;return d=g['$[]'](0),a=c(d),h=a[0]==null?b:a[0],i=a[1]==null?b:a[1],d,f(e.context.$in_def())&&e.$diagnostic("error","class_in_def",b,h),d=g['$[]'](2),a=c(d),k=a[0]==null?b:a[0],l=a[1]==null?b:a[1],d,j=e.builder.$def_class(h,g['$[]'](1),k,l,g['$[]'](4),g['$[]'](5)),e.$local_pop(),e.context['$in_class='](i.$in_class()),j}),a(m,'$_reduce_348',function(d,e,b){var a=this;return a.context['$in_def='](!1),a.context['$in_class='](!1),a.$local_push(),b}),a(m,'$_reduce_349',function(a,k,h){var d,g,e=this,i=b,f=b;return g=a['$[]'](0),d=c(g),i=d[0]==null?b:d[0],f=d[1]==null?b:d[1],g,h=e.builder.$def_sclass(i,a['$[]'](1),a['$[]'](2),a['$[]'](5),a['$[]'](6)),e.$local_pop(),e.context['$in_def='](f.$in_def()),e.context['$in_class='](f.$in_class()),h}),a(m,'$_reduce_350',function(d,e,b){var a=this;return a.context['$in_class='](!0),a.$local_push(),b}),a(m,'$_reduce_351',function(e,l,j){var d,g,a=this,h=b,i=b;return g=e['$[]'](0),d=c(g),h=d[0]==null?b:d[0],i=d[1]==null?b:d[1],g,f(a.context.$in_def())&&a.$diagnostic("error","module_in_def",b,h),j=a.builder.$def_module(h,e['$[]'](1),e['$[]'](3),e['$[]'](4)),a.$local_pop(),a.context['$in_class='](i.$in_class()),j}),a(m,'$_reduce_352',function(e,m,i){var d,g,a,f=this,h=b,j=b,k=b;return g=e['$[]'](0),d=c(g),h=d[0]==null?b:d[0],(a=c(d[1]==null?b:d[1]),j=a[0]==null?b:a[0],k=a[1]==null?b:a[1]),g,i=f.builder.$def_method(h,j,e['$[]'](1),e['$[]'](2),e['$[]'](3)),f.$local_pop(),f.current_arg_stack.$pop(),f.context['$in_def='](k.$in_def()),i}),a(m,'$_reduce_353',function(e,n,i){var a,g,d,f=this,k=b,l=b,m=b,j=b,h=b;return g=e['$[]'](0),a=c(g),k=a[0]==null?b:a[0],l=a[1]==null?b:a[1],m=a[2]==null?b:a[2],(d=c(a[3]==null?b:a[3]),j=d[0]==null?b:d[0],h=d[1]==null?b:d[1]),g,i=f.builder.$def_singleton(k,l,m,j,e['$[]'](1),e['$[]'](2),e['$[]'](3)),f.$local_pop(),f.current_arg_stack.$pop(),f.context['$in_def='](h.$in_def()),i}),a(m,'$_reduce_354',function(a,d,e){var b=this;return b.builder.$keyword_cmd("break",a['$[]'](0))}),a(m,'$_reduce_355',function(a,d,e){var b=this;return b.builder.$keyword_cmd("next",a['$[]'](0))}),a(m,'$_reduce_356',function(a,d,e){var b=this;return b.builder.$keyword_cmd("redo",a['$[]'](0))}),a(m,'$_reduce_357',function(a,d,e){var b=this;return b.builder.$keyword_cmd("retry",a['$[]'](0))}),a(m,'$_reduce_359',function(a,d,e){var b=this;return[a['$[]'](0),b.context.$dup()]}),a(m,'$_reduce_360',function(a,d,e){var b=this;return[a['$[]'](0),b.context.$dup()]}),a(m,'$_reduce_361',function(b,e,a){var c=this;return a=b['$[]'](0),c.context['$in_argdef='](!0),a}),a(m,'$_reduce_362',function(d,i,e){var a=this,c=b;return f(a.context.$in_class())&&g(a.context.$in_def())&&g(f(c=a.$context().$in_block())?c:a.$context().$in_lambda())&&a.$diagnostic("error","invalid_return",b,d['$[]'](0)),e}),a(m,'$_reduce_365',function(a,c,d){return a['$[]'](1)}),a(m,'$_reduce_369',function(a,k,i){var d,e,h=this,g=b,f=b;return e=a['$[]'](4),d=c(e),g=d[0]==null?b:d[0],f=d[1]==null?b:d[1],e,[a['$[]'](0),h.builder.$condition(a['$[]'](0),a['$[]'](1),a['$[]'](2),a['$[]'](3),g,f,b)]}),a(m,'$_reduce_371',function(a,c,d){return a}),a(m,'$_reduce_374',function(a,d,e){var b=this;return b.builder.$arg(a['$[]'](0))}),a(m,'$_reduce_375',function(a,d,e){var b=this;return b.builder.$multi_lhs(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_376',function(a,c,d){return[a['$[]'](0)]}),a(m,'$_reduce_377',function(a,c,d){return a['$[]'](0)['$<<'](a['$[]'](2))}),a(m,'$_reduce_379',function(a,c,d){return a['$[]'](0).$push(a['$[]'](2))}),a(m,'$_reduce_380',function(a,c,d){return a['$[]'](0).$push(a['$[]'](2)).$concat(a['$[]'](4))}),a(m,'$_reduce_381',function(a,c,d){return[a['$[]'](0)]}),a(m,'$_reduce_382',function(a,c,e){return[a['$[]'](0)].concat(d(a['$[]'](2)))}),a(m,'$_reduce_383',function(a,d,e){var b=this;return b.builder.$restarg(a['$[]'](0),a['$[]'](1))}),a(m,'$_reduce_384',function(a,d,e){var b=this;return b.builder.$restarg(a['$[]'](0))}),a(m,'$_reduce_387',function(d,e,a){var b=this;return b.context['$in_argdef='](!1),a}),a(m,'$_reduce_388',function(a,c,d){return a['$[]'](1)}),a(m,'$_reduce_389',function(a,c,d){return a['$[]'](0).$concat(a['$[]'](2)).$concat(a['$[]'](3))}),a(m,'$_reduce_390',function(a,c,d){return a['$[]'](0).$concat(a['$[]'](1))}),a(m,'$_reduce_391',function(a,c,d){return a['$[]'](0).$concat(a['$[]'](1))}),a(m,'$_reduce_392',function(a,c,d){return[a['$[]'](0)]}),a(m,'$_reduce_393',function(a,c,d){return a['$[]'](1)}),a(m,'$_reduce_394',function(b,c,d){return[]}),a(m,'$_reduce_396',function(a,c,d){return a['$[]'](0).$concat(a['$[]'](2)).$concat(a['$[]'](4)).$concat(a['$[]'](5))}),a(m,'$_reduce_397',function(a,c,d){return a['$[]'](0).$concat(a['$[]'](2)).$concat(a['$[]'](4)).$concat(a['$[]'](6)).$concat(a['$[]'](7))}),a(m,'$_reduce_398',function(a,c,d){return a['$[]'](0).$concat(a['$[]'](2)).$concat(a['$[]'](3))}),a(m,'$_reduce_399',function(a,c,d){return a['$[]'](0).$concat(a['$[]'](2)).$concat(a['$[]'](4)).$concat(a['$[]'](5))}),a(m,'$_reduce_400',function(a,c,d){return a['$[]'](0).$concat(a['$[]'](2)).$concat(a['$[]'](3))}),a(m,'$_reduce_402',function(a,c,d){return a['$[]'](0).$concat(a['$[]'](2)).$concat(a['$[]'](4)).$concat(a['$[]'](5))}),a(m,'$_reduce_403',function(a,e,b){var c=this;return f(a['$[]'](1)['$empty?']())&&l(a['$[]'](0).$size(),1)?b=[c.builder.$procarg0(a['$[]'](0)['$[]'](0))]:b=a['$[]'](0).$concat(a['$[]'](1)),b}),a(m,'$_reduce_404',function(a,c,d){return a['$[]'](0).$concat(a['$[]'](2)).$concat(a['$[]'](3))}),a(m,'$_reduce_405',function(a,c,d){return a['$[]'](0).$concat(a['$[]'](2)).$concat(a['$[]'](4)).$concat(a['$[]'](5))}),a(m,'$_reduce_406',function(a,c,d){return a['$[]'](0).$concat(a['$[]'](1))}),a(m,'$_reduce_407',function(a,c,d){return a['$[]'](0).$concat(a['$[]'](2)).$concat(a['$[]'](3))}),a(m,'$_reduce_408',function(a,c,d){return a['$[]'](0).$concat(a['$[]'](1))}),a(m,'$_reduce_409',function(a,c,d){return a['$[]'](0).$concat(a['$[]'](2)).$concat(a['$[]'](3))}),a(m,'$_reduce_411',function(d,e,f){var a=this;return a.builder.$args(b,[],b)}),a(m,'$_reduce_412',function(d,e,a){var b=this;return b.lexer['$state=']("expr_value"),a}),a(m,'$_reduce_413',function(c,e,f){var a=this;return a.max_numparam_stack['$has_ordinary_params!'](),a.current_arg_stack.$set(b),a.context['$in_argdef='](!1),a.builder.$args(c['$[]'](0),c['$[]'](1),c['$[]'](2))}),a(m,'$_reduce_414',function(a,e,f){var c=this;return c.max_numparam_stack['$has_ordinary_params!'](),c.current_arg_stack.$set(b),c.context['$in_argdef='](!1),c.builder.$args(a['$[]'](0),a['$[]'](1).$concat(a['$[]'](2)),a['$[]'](3))}),a(m,'$_reduce_415',function(b,c,d){return[]}),a(m,'$_reduce_416',function(a,c,d){return a['$[]'](2)}),a(m,'$_reduce_417',function(a,c,d){return[a['$[]'](0)]}),a(m,'$_reduce_418',function(a,c,d){return a['$[]'](0)['$<<'](a['$[]'](2))}),a(m,'$_reduce_419',function(a,d,e){var b=this;return b.static_env.$declare(a['$[]'](0)['$[]'](0)),b.builder.$shadowarg(a['$[]'](0))}),a(m,'$_reduce_421',function(d,e,b){var a=this;return a.static_env.$extend_dynamic(),a.max_numparam_stack.$push(new Map([["static",!1]])),b=a.context.$dup(),a.context['$in_lambda='](!0),b}),a(m,'$_reduce_422',function(d,e,a){var b=this;return b.lexer.$cmdarg().$push(!1),a}),a(m,'$_reduce_423',function(e,n,o){var d,g,a=this,j=b,h=b,i=b,k=b,l=b;return j=a.builder.$call_lambda(e['$[]'](0)),h=f(a.max_numparam_stack['$has_numparams?']())?a.builder.$numargs(a.max_numparam_stack.$top()):e['$[]'](2),g=e['$[]'](4),d=c(g),i=d[0]==null?b:d[0],k=d[1]==null?b:d[1],l=d[2]==null?b:d[2],g,a.max_numparam_stack.$pop(),a.static_env.$unextend(),a.lexer.$cmdarg().$pop(),a.context['$in_lambda='](e['$[]'](1).$in_lambda()),a.builder.$block(j,i,h,k,l)}),a(m,'$_reduce_424',function(a,d,e){var b=this;return b.context['$in_argdef='](!1),b.max_numparam_stack['$has_ordinary_params!'](),b.builder.$args(a['$[]'](0),a['$[]'](1).$concat(a['$[]'](2)),a['$[]'](3))}),a(m,'$_reduce_425',function(c,e,g){var a=this;return a.context['$in_argdef='](!1),f(c['$[]'](0)['$any?']())&&a.max_numparam_stack['$has_ordinary_params!'](),a.builder.$args(b,c['$[]'](0),b)}),a(m,'$_reduce_426',function(d,e,a){var b=this;return a=b.context.$dup(),b.context['$in_lambda='](!0),a}),a(m,'$_reduce_427',function(a,d,e){var b=this;return b.context['$in_lambda='](a['$[]'](1).$in_lambda()),[a['$[]'](0),a['$[]'](2),a['$[]'](3)]}),a(m,'$_reduce_428',function(d,e,a){var b=this;return a=b.context.$dup(),b.context['$in_lambda='](!0),a}),a(m,'$_reduce_429',function(a,d,e){var b=this;return b.context['$in_lambda='](a['$[]'](1).$in_lambda()),[a['$[]'](0),a['$[]'](2),a['$[]'](3)]}),a(m,'$_reduce_430',function(d,e,a){var b=this;return a=b.context.$dup(),b.context['$in_block='](!0),a}),a(m,'$_reduce_431',function(a,e,f){var b=this;return b.context['$in_block='](a['$[]'](1).$in_block()),[a['$[]'](0)].concat(d(a['$[]'](2))).concat([a['$[]'](3)])}),a(m,'$_reduce_432',function(e,l,m){var a,d,j=this,h=b,f=b,g=b,i=b;return d=e['$[]'](1),a=c(d),h=a[0]==null?b:a[0],f=a[1]==null?b:a[1],g=a[2]==null?b:a[2],i=a[3]==null?b:a[3],d,j.builder.$block(e['$[]'](0),h,f,g,i)}),a(m,'$_reduce_433',function(d,k,l){var a,e,i=this,h=b,f=b,g=b;return e=d['$[]'](3),a=c(e),h=a[0]==null?b:a[0],f=a[1]==null?b:a[1],g=a[2]==null?b:a[2],e,i.builder.$call_method(d['$[]'](0),d['$[]'](1),d['$[]'](2),h,f,g)}),a(m,'$_reduce_434',function(e,o,n){var a,d,i=this,j=b,f=b,l=b,m=b,h=b,k=b,g=b;return d=e['$[]'](3),a=c(d),j=a[0]==null?b:a[0],f=a[1]==null?b:a[1],l=a[2]==null?b:a[2],d,m=i.builder.$call_method(e['$[]'](0),e['$[]'](1),e['$[]'](2),j,f,l),d=e['$[]'](4),a=c(d),h=a[0]==null?b:a[0],f=a[1]==null?b:a[1],k=a[2]==null?b:a[2],g=a[3]==null?b:a[3],d,i.builder.$block(m,h,f,k,g)}),a(m,'$_reduce_435',function(d,m,n){var a,e,f=this,i=b,g=b,h=b,j=b,k=b;return i=f.builder.$call_method(d['$[]'](0),d['$[]'](1),d['$[]'](2),b,d['$[]'](3),b),e=d['$[]'](4),a=c(e),g=a[0]==null?b:a[0],h=a[1]==null?b:a[1],j=a[2]==null?b:a[2],k=a[3]==null?b:a[3],e,f.builder.$block(i,g,h,j,k)}),a(m,'$_reduce_436',function(e,k,l){var a,d,i=this,h=b,f=b,g=b;return d=e['$[]'](1),a=c(d),h=a[0]==null?b:a[0],f=a[1]==null?b:a[1],g=a[2]==null?b:a[2],d,i.builder.$call_method(b,b,e['$[]'](0),h,f,g)}),a(m,'$_reduce_437',function(d,k,l){var a,e,i=this,h=b,f=b,g=b;return e=d['$[]'](3),a=c(e),h=a[0]==null?b:a[0],f=a[1]==null?b:a[1],g=a[2]==null?b:a[2],e,i.builder.$call_method(d['$[]'](0),d['$[]'](1),d['$[]'](2),h,f,g)}),a(m,'$_reduce_438',function(d,k,l){var a,e,i=this,h=b,f=b,g=b;return e=d['$[]'](3),a=c(e),h=a[0]==null?b:a[0],f=a[1]==null?b:a[1],g=a[2]==null?b:a[2],e,i.builder.$call_method(d['$[]'](0),d['$[]'](1),d['$[]'](2),h,f,g)}),a(m,'$_reduce_439',function(a,d,e){var b=this;return b.builder.$call_method(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_440',function(d,k,l){var a,e,i=this,h=b,f=b,g=b;return e=d['$[]'](2),a=c(e),h=a[0]==null?b:a[0],f=a[1]==null?b:a[1],g=a[2]==null?b:a[2],e,i.builder.$call_method(d['$[]'](0),d['$[]'](1),b,h,f,g)}),a(m,'$_reduce_441',function(d,k,l){var a,e,i=this,h=b,f=b,g=b;return e=d['$[]'](2),a=c(e),h=a[0]==null?b:a[0],f=a[1]==null?b:a[1],g=a[2]==null?b:a[2],e,i.builder.$call_method(d['$[]'](0),d['$[]'](1),b,h,f,g)}),a(m,'$_reduce_442',function(e,k,l){var a,d,i=this,h=b,f=b,g=b;return d=e['$[]'](1),a=c(d),h=a[0]==null?b:a[0],f=a[1]==null?b:a[1],g=a[2]==null?b:a[2],d,i.builder.$keyword_cmd("super",e['$[]'](0),h,f,g)}),a(m,'$_reduce_443',function(a,d,e){var b=this;return b.builder.$keyword_cmd("zsuper",a['$[]'](0))}),a(m,'$_reduce_444',function(a,d,e){var b=this;return b.builder.$index(a['$[]'](0),a['$[]'](1),a['$[]'](2),a['$[]'](3))}),a(m,'$_reduce_445',function(d,e,a){var b=this;return a=b.context.$dup(),b.context['$in_block='](!0),a}),a(m,'$_reduce_446',function(a,e,f){var b=this;return b.context['$in_block='](a['$[]'](1).$in_block()),[a['$[]'](0)].concat(d(a['$[]'](2))).concat([a['$[]'](3)])}),a(m,'$_reduce_447',function(d,e,a){var b=this;return a=b.context.$dup(),b.context['$in_block='](!0),a}),a(m,'$_reduce_448',function(a,e,f){var b=this;return b.context['$in_block='](a['$[]'](1).$in_block()),[a['$[]'](0)].concat(d(a['$[]'](2))).concat([a['$[]'](3)])}),a(m,'$_reduce_449',function(d,e,b){var a=this;return a.static_env.$extend_dynamic(),a.max_numparam_stack.$push(new Map([["static",!1]])),b}),a(m,'$_reduce_450',function(c,h,d){var a=this,e=b;return e=f(a.max_numparam_stack['$has_numparams?']())?a.builder.$numargs(a.max_numparam_stack.$top()):c['$[]'](1),d=[e,c['$[]'](2)],a.max_numparam_stack.$pop(),a.static_env.$unextend(),d}),a(m,'$_reduce_451',function(d,e,b){var a=this;return a.static_env.$extend_dynamic(),a.max_numparam_stack.$push(new Map([["static",!1]])),b}),a(m,'$_reduce_452',function(d,e,a){var b=this;return b.lexer.$cmdarg().$push(!1),a}),a(m,'$_reduce_453',function(c,h,d){var a=this,e=b;return e=f(a.max_numparam_stack['$has_numparams?']())?a.builder.$numargs(a.max_numparam_stack.$top()):c['$[]'](2),d=[e,c['$[]'](3)],a.max_numparam_stack.$pop(),a.static_env.$unextend(),a.lexer.$cmdarg().$pop(),d}),a(m,'$_reduce_454',function(a,e,f){var b=this;return[b.builder.$when(a['$[]'](0),a['$[]'](1),a['$[]'](2),a['$[]'](3))].concat(d(a['$[]'](4)))}),a(m,'$_reduce_455',function(a,c,d){return[a['$[]'](0)]}),a(m,'$_reduce_457',function(d,e,b){var a=this;return a.lexer['$state=']("expr_beg"),a.lexer['$command_start='](!1),a.pattern_variables.$push(),a.pattern_hash_keys.$push(),b=a.context.$in_kwarg(),a.context['$in_kwarg='](!0),b}),a(m,'$_reduce_458',function(b,e,c){var a=this;return a.pattern_variables.$pop(),a.pattern_hash_keys.$pop(),a.context['$in_kwarg='](b['$[]'](1)),c}),a(m,'$_reduce_459',function(a,e,f){var b=this;return[h(b.builder,'in_pattern',[a['$[]'](0)].concat(d(a['$[]'](2))).concat([a['$[]'](3),a['$[]'](5)]))].concat(d(a['$[]'](6)))}),a(m,'$_reduce_460',function(a,c,d){return[a['$[]'](0)]}),a(m,'$_reduce_462',function(a,d,e){return[a['$[]'](0),b]}),a(m,'$_reduce_463',function(a,d,e){var b=this;return[a['$[]'](0),b.builder.$if_guard(a['$[]'](1),a['$[]'](2))]}),a(m,'$_reduce_464',function(a,d,e){var b=this;return[a['$[]'](0),b.builder.$unless_guard(a['$[]'](1),a['$[]'](2))]}),a(m,'$_reduce_466',function(a,f,g){var c=this,d=b;return d=c.builder.$match_with_trailing_comma(a['$[]'](0),a['$[]'](1)),c.builder.$array_pattern(b,[d],b)}),a(m,'$_reduce_467',function(a,e,f){var c=this;return c.builder.$array_pattern(b,[a['$[]'](0)].$concat(a['$[]'](2)),b)}),a(m,'$_reduce_468',function(a,e,f){var c=this;return c.builder.$find_pattern(b,a['$[]'](0),b)}),a(m,'$_reduce_469',function(a,e,f){var c=this;return c.builder.$array_pattern(b,a['$[]'](0),b)}),a(m,'$_reduce_470',function(a,e,f){var c=this;return c.builder.$hash_pattern(b,a['$[]'](0),b)}),a(m,'$_reduce_472',function(a,d,e){var b=this;return b.builder.$match_as(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_474',function(a,d,e){var b=this;return b.builder.$match_alt(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_476',function(b,e,a){var c=this;return a=b['$[]'](0),c.pattern_hash_keys.$push(),a}),a(m,'$_reduce_477',function(b,e,a){var c=this;return a=b['$[]'](0),c.pattern_hash_keys.$push(),a}),a(m,'$_reduce_480',function(a,f,g){var c=this,d=b;return c.pattern_hash_keys.$pop(),d=c.builder.$array_pattern(b,a['$[]'](2),b),c.builder.$const_pattern(a['$[]'](0),a['$[]'](1),d,a['$[]'](3))}),a(m,'$_reduce_481',function(a,f,g){var c=this,d=b;return c.pattern_hash_keys.$pop(),d=c.builder.$find_pattern(b,a['$[]'](2),b),c.builder.$const_pattern(a['$[]'](0),a['$[]'](1),d,a['$[]'](3))}),a(m,'$_reduce_482',function(a,f,g){var c=this,d=b;return c.pattern_hash_keys.$pop(),d=c.builder.$hash_pattern(b,a['$[]'](2),b),c.builder.$const_pattern(a['$[]'](0),a['$[]'](1),d,a['$[]'](3))}),a(m,'$_reduce_483',function(a,f,g){var c=this,d=b;return d=c.builder.$array_pattern(a['$[]'](1),b,a['$[]'](2)),c.builder.$const_pattern(a['$[]'](0),a['$[]'](1),d,a['$[]'](2))}),a(m,'$_reduce_484',function(a,f,g){var c=this,d=b;return c.pattern_hash_keys.$pop(),d=c.builder.$array_pattern(b,a['$[]'](2),b),c.builder.$const_pattern(a['$[]'](0),a['$[]'](1),d,a['$[]'](3))}),a(m,'$_reduce_485',function(a,f,g){var c=this,d=b;return c.pattern_hash_keys.$pop(),d=c.builder.$find_pattern(b,a['$[]'](2),b),c.builder.$const_pattern(a['$[]'](0),a['$[]'](1),d,a['$[]'](3))}),a(m,'$_reduce_486',function(a,f,g){var c=this,d=b;return c.pattern_hash_keys.$pop(),d=c.builder.$hash_pattern(b,a['$[]'](2),b),c.builder.$const_pattern(a['$[]'](0),a['$[]'](1),d,a['$[]'](3))}),a(m,'$_reduce_487',function(a,f,g){var c=this,d=b;return d=c.builder.$array_pattern(a['$[]'](1),b,a['$[]'](2)),c.builder.$const_pattern(a['$[]'](0),a['$[]'](1),d,a['$[]'](2))}),a(m,'$_reduce_488',function(a,d,e){var b=this;return b.builder.$array_pattern(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_489',function(a,d,e){var b=this;return b.builder.$find_pattern(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_490',function(a,d,e){var b=this;return b.builder.$array_pattern(a['$[]'](0),[],a['$[]'](1))}),a(m,'$_reduce_491',function(d,e,b){var a=this;return a.pattern_hash_keys.$push(),b=a.context.$in_kwarg(),a.context['$in_kwarg='](!1),b}),a(m,'$_reduce_492',function(a,d,e){var b=this;return b.pattern_hash_keys.$pop(),b.context['$in_kwarg='](a['$[]'](1)),b.builder.$hash_pattern(a['$[]'](0),a['$[]'](2),a['$[]'](3))}),a(m,'$_reduce_493',function(a,d,e){var b=this;return b.builder.$hash_pattern(a['$[]'](0),[],a['$[]'](1))}),a(m,'$_reduce_494',function(d,e,a){var b=this;return b.pattern_hash_keys.$push(),a}),a(m,'$_reduce_495',function(a,d,e){var b=this;return b.pattern_hash_keys.$pop(),b.builder.$begin(a['$[]'](0),a['$[]'](2),a['$[]'](3))}),a(m,'$_reduce_496',function(a,c,d){return[a['$[]'](0)]}),a(m,'$_reduce_497',function(a,c,d){return a['$[]'](0)}),a(m,'$_reduce_498',function(a,c,e){return[].concat(d(a['$[]'](0))).concat([a['$[]'](1)])}),a(m,'$_reduce_499',function(a,c,e){return[].concat(d(a['$[]'](0))).concat([a['$[]'](1)])}),a(m,'$_reduce_500',function(a,c,e){return[].concat(d(a['$[]'](0))).concat([a['$[]'](1)]).concat(d(a['$[]'](3)))}),a(m,'$_reduce_502',function(a,f,g){var d=this,c=b;return c=d.builder.$match_with_trailing_comma(a['$[]'](0),a['$[]'](1)),[c]}),a(m,'$_reduce_503',function(a,g,h){var e=this,c=b;return c=e.builder.$match_with_trailing_comma(a['$[]'](1),a['$[]'](2)),[].concat(d(a['$[]'](0))).concat([c])}),a(m,'$_reduce_504',function(a,c,d){return[a['$[]'](0)]}),a(m,'$_reduce_505',function(a,c,e){return[a['$[]'](0)].concat(d(a['$[]'](2)))}),a(m,'$_reduce_506',function(a,c,e){return[a['$[]'](0)].concat(d(a['$[]'](2))).concat([a['$[]'](4)])}),a(m,'$_reduce_507',function(a,d,e){var b=this;return b.builder.$match_rest(a['$[]'](0),a['$[]'](1))}),a(m,'$_reduce_508',function(a,d,e){var b=this;return b.builder.$match_rest(a['$[]'](0))}),a(m,'$_reduce_509',function(a,c,d){return[a['$[]'](0)]}),a(m,'$_reduce_510',function(a,c,e){return[].concat(d(a['$[]'](0))).concat([a['$[]'](2)])}),a(m,'$_reduce_512',function(a,c,e){return[].concat(d(a['$[]'](0))).concat(d(a['$[]'](2)))}),a(m,'$_reduce_513',function(a,c,d){return a['$[]'](0)}),a(m,'$_reduce_514',function(a,c,d){return a['$[]'](0)}),a(m,'$_reduce_515',function(a,c,d){return a['$[]'](0)}),a(m,'$_reduce_516',function(a,c,d){return[a['$[]'](0)]}),a(m,'$_reduce_517',function(a,c,e){return[].concat(d(a['$[]'](0))).concat([a['$[]'](2)])}),a(m,'$_reduce_518',function(a,e,f){var b=this;return h(b.builder,'match_pair',d(a['$[]'](0)).concat([a['$[]'](1)]))}),a(m,'$_reduce_519',function(a,e,f){var b=this;return h(b.builder,'match_label',d(a['$[]'](0)))}),a(m,'$_reduce_520',function(a,c,d){return["label",a['$[]'](0)]}),a(m,'$_reduce_521',function(a,c,d){return["quoted",[a['$[]'](0),a['$[]'](1),a['$[]'](2)]]}),a(m,'$_reduce_522',function(a,d,e){var b=this;return[b.builder.$match_rest(a['$[]'](0),a['$[]'](1))]}),a(m,'$_reduce_523',function(a,e,f){var c=this;return[c.builder.$match_rest(a['$[]'](0),b)]}),a(m,'$_reduce_524',function(a,c,d){return a}),a(m,'$_reduce_526',function(a,d,e){var b=this;return[b.builder.$match_nil_pattern(a['$[]'](0)['$[]'](0),a['$[]'](0)['$[]'](1))]}),a(m,'$_reduce_528',function(a,d,e){var b=this;return b.builder.$range_inclusive(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_529',function(a,d,e){var b=this;return b.builder.$range_exclusive(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_530',function(a,e,f){var c=this;return c.builder.$range_inclusive(a['$[]'](0),a['$[]'](1),b)}),a(m,'$_reduce_531',function(a,e,f){var c=this;return c.builder.$range_exclusive(a['$[]'](0),a['$[]'](1),b)}),a(m,'$_reduce_535',function(a,e,f){var c=this;return c.builder.$range_inclusive(b,a['$[]'](0),a['$[]'](1))}),a(m,'$_reduce_536',function(a,e,f){var c=this;return c.builder.$range_exclusive(b,a['$[]'](0),a['$[]'](1))}),a(m,'$_reduce_545',function(a,d,e){var b=this;return b.builder.$accessible(a['$[]'](0))}),a(m,'$_reduce_547',function(b,d,e){var a=this;return a.builder.$assignable(a.builder.$match_var(b['$[]'](0)))}),a(m,'$_reduce_548',function(c,g,h){var a=this,d=b,e=b;return d=c['$[]'](1)['$[]'](0),e=a.builder.$accessible(a.builder.$ident(c['$[]'](1))),f(a.$static_env()['$declared?'](d))||a.$diagnostic("error","undefined_lvar",new Map([["name",d]]),c['$[]'](1)),a.builder.$pin(c['$[]'](0),e)}),a(m,'$_reduce_549',function(a,f,g){var c=this,d=b;return d=c.builder.$accessible(a['$[]'](1)),c.builder.$pin(a['$[]'](0),d)}),a(m,'$_reduce_550',function(a,f,g){var c=this,d=b;return d=c.builder.$begin(a['$[]'](1),a['$[]'](2),a['$[]'](3)),c.builder.$pin(a['$[]'](0),d)}),a(m,'$_reduce_551',function(a,d,e){var b=this;return b.builder.$const_global(a['$[]'](0),a['$[]'](1))}),a(m,'$_reduce_552',function(a,d,e){var b=this;return b.builder.$const_fetch(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_553',function(a,d,e){var b=this;return b.builder.$const(a['$[]'](0))}),a(m,'$_reduce_554',function(a,m,n){var e,g,h=this,k=b,i=b,j=b;return g=a['$[]'](2),e=c(g),k=e[0]==null?b:e[0],i=e[1]==null?b:e[1],g,f(a['$[]'](1))&&(j=h.builder.$array(b,a['$[]'](1),b)),[h.builder.$rescue_body(a['$[]'](0),j,k,i,a['$[]'](3),a['$[]'](4))].concat(d(a['$[]'](5)))}),a(m,'$_reduce_555',function(b,c,d){return[]}),a(m,'$_reduce_556',function(a,c,d){return[a['$[]'](0)]}),a(m,'$_reduce_559',function(a,c,d){return[a['$[]'](0),a['$[]'](1)]}),a(m,'$_reduce_561',function(a,c,d){return[a['$[]'](0),a['$[]'](1)]}),a(m,'$_reduce_565',function(a,e,f){var c=this;return c.builder.$string_compose(b,a['$[]'](0),b)}),a(m,'$_reduce_566',function(a,c,d){return[a['$[]'](0)]}),a(m,'$_reduce_567',function(a,c,d){return a['$[]'](0)['$<<'](a['$[]'](1))}),a(m,'$_reduce_568',function(a,f,g){var c=this,d=b;return d=c.builder.$string_compose(a['$[]'](0),a['$[]'](1),a['$[]'](2)),c.builder.$dedent_string(d,c.lexer.$dedent_level())}),a(m,'$_reduce_569',function(d,f,g){var a=this,c=b;return c=a.builder.$string(d['$[]'](0)),a.builder.$dedent_string(c,a.lexer.$dedent_level())}),a(m,'$_reduce_570',function(a,d,e){var b=this;return b.builder.$character(a['$[]'](0))}),a(m,'$_reduce_571',function(a,f,g){var c=this,d=b;return d=c.builder.$xstring_compose(a['$[]'](0),a['$[]'](1),a['$[]'](2)),c.builder.$dedent_string(d,c.lexer.$dedent_level())}),a(m,'$_reduce_572',function(a,f,g){var c=this,d=b;return d=c.builder.$regexp_options(a['$[]'](3)),c.builder.$regexp_compose(a['$[]'](0),a['$[]'](1),a['$[]'](2),d)}),a(m,'$_reduce_573',function(a,d,e){var b=this;return b.builder.$words_compose(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_574',function(b,c,d){return[]}),a(m,'$_reduce_575',function(a,d,e){var b=this;return a['$[]'](0)['$<<'](b.builder.$word(a['$[]'](1)))}),a(m,'$_reduce_576',function(a,c,d){return[a['$[]'](0)]}),a(m,'$_reduce_577',function(a,c,d){return a['$[]'](0)['$<<'](a['$[]'](1))}),a(m,'$_reduce_578',function(a,d,e){var b=this;return b.builder.$symbols_compose(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_579',function(b,c,d){return[]}),a(m,'$_reduce_580',function(a,d,e){var b=this;return a['$[]'](0)['$<<'](b.builder.$word(a['$[]'](1)))}),a(m,'$_reduce_581',function(a,d,e){var b=this;return b.builder.$words_compose(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_582',function(a,d,e){var b=this;return b.builder.$symbols_compose(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_583',function(b,c,d){return[]}),a(m,'$_reduce_584',function(a,d,e){var b=this;return a['$[]'](0)['$<<'](b.builder.$string_internal(a['$[]'](1)))}),a(m,'$_reduce_585',function(b,c,d){return[]}),a(m,'$_reduce_586',function(a,d,e){var b=this;return a['$[]'](0)['$<<'](b.builder.$symbol_internal(a['$[]'](1)))}),a(m,'$_reduce_587',function(b,c,d){return[]}),a(m,'$_reduce_588',function(a,c,d){return a['$[]'](0)['$<<'](a['$[]'](1))}),a(m,'$_reduce_589',function(b,c,d){return[]}),a(m,'$_reduce_590',function(a,c,d){return a['$[]'](0)['$<<'](a['$[]'](1))}),a(m,'$_reduce_591',function(b,c,d){return[]}),a(m,'$_reduce_592',function(a,c,d){return a['$[]'](0)['$<<'](a['$[]'](1))}),a(m,'$_reduce_593',function(a,d,e){var b=this;return b.builder.$string_internal(a['$[]'](0))}),a(m,'$_reduce_594',function(a,c,d){return a['$[]'](1)}),a(m,'$_reduce_595',function(d,e,b){var a=this;return a.lexer.$cmdarg().$push(!1),a.lexer.$cond().$push(!1),b}),a(m,'$_reduce_596',function(a,d,e){var b=this;return b.lexer.$cmdarg().$pop(),b.lexer.$cond().$pop(),b.builder.$begin(a['$[]'](0),a['$[]'](2),a['$[]'](3))}),a(m,'$_reduce_597',function(a,d,e){var b=this;return b.builder.$gvar(a['$[]'](0))}),a(m,'$_reduce_598',function(a,d,e){var b=this;return b.builder.$ivar(a['$[]'](0))}),a(m,'$_reduce_599',function(a,d,e){var b=this;return b.builder.$cvar(a['$[]'](0))}),a(m,'$_reduce_603',function(b,d,e){var a=this;return a.lexer['$state=']("expr_end"),a.builder.$symbol(b['$[]'](0))}),a(m,'$_reduce_604',function(a,d,e){var b=this;return b.lexer['$state=']("expr_end"),b.builder.$symbol_compose(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_605',function(a,c,d){return a['$[]'](0)}),a(m,'$_reduce_606',function(a,e,b){var c=this;return f(c.builder['$respond_to?']("negate"))?b=c.builder.$negate(a['$[]'](0),a['$[]'](1)):b=c.builder.$unary_num(a['$[]'](0),a['$[]'](1)),b}),a(m,'$_reduce_607',function(b,d,e){var a=this;return a.lexer['$state=']("expr_end"),a.builder.$integer(b['$[]'](0))}),a(m,'$_reduce_608',function(b,d,e){var a=this;return a.lexer['$state=']("expr_end"),a.builder.$float(b['$[]'](0))}),a(m,'$_reduce_609',function(b,d,e){var a=this;return a.lexer['$state=']("expr_end"),a.builder.$rational(b['$[]'](0))}),a(m,'$_reduce_610',function(b,d,e){var a=this;return a.lexer['$state=']("expr_end"),a.builder.$complex(b['$[]'](0))}),a(m,'$_reduce_611',function(a,d,e){var b=this;return b.builder.$ivar(a['$[]'](0))}),a(m,'$_reduce_612',function(a,d,e){var b=this;return b.builder.$gvar(a['$[]'](0))}),a(m,'$_reduce_613',function(a,d,e){var b=this;return b.builder.$cvar(a['$[]'](0))}),a(m,'$_reduce_614',function(a,d,e){var b=this;return b.builder.$ident(a['$[]'](0))}),a(m,'$_reduce_615',function(a,d,e){var b=this;return b.builder.$const(a['$[]'](0))}),a(m,'$_reduce_617',function(a,d,e){var b=this;return b.builder.$nil(a['$[]'](0))}),a(m,'$_reduce_618',function(a,d,e){var b=this;return b.builder.$self(a['$[]'](0))}),a(m,'$_reduce_619',function(a,d,e){var b=this;return b.builder.$true(a['$[]'](0))}),a(m,'$_reduce_620',function(a,d,e){var b=this;return b.builder.$false(a['$[]'](0))}),a(m,'$_reduce_621',function(a,d,e){var b=this;return b.builder.$__FILE__(a['$[]'](0))}),a(m,'$_reduce_622',function(a,d,e){var b=this;return b.builder.$__LINE__(a['$[]'](0))}),a(m,'$_reduce_623',function(a,d,e){var b=this;return b.builder.$__ENCODING__(a['$[]'](0))}),a(m,'$_reduce_624',function(a,d,e){var b=this;return b.builder.$accessible(a['$[]'](0))}),a(m,'$_reduce_625',function(a,d,e){var b=this;return b.builder.$accessible(a['$[]'](0))}),a(m,'$_reduce_626',function(a,d,e){var b=this;return b.builder.$assignable(a['$[]'](0))}),a(m,'$_reduce_627',function(a,d,e){var b=this;return b.builder.$assignable(a['$[]'](0))}),a(m,'$_reduce_628',function(a,d,e){var b=this;return b.builder.$nth_ref(a['$[]'](0))}),a(m,'$_reduce_629',function(a,d,e){var b=this;return b.builder.$back_ref(a['$[]'](0))}),a(m,'$_reduce_630',function(d,e,a){var b=this;return b.lexer['$state=']("expr_value"),a}),a(m,'$_reduce_631',function(a,c,d){return[a['$[]'](0),a['$[]'](2)]}),a(m,'$_reduce_632',j(b)),a(m,'$_reduce_634',function(d,e,f){var a=this;return a.context['$in_argdef='](!1),a.builder.$args(b,[],b)}),a(m,'$_reduce_635',function(a,e,c){var b=this;return c=b.builder.$args(a['$[]'](0),a['$[]'](1),a['$[]'](2)),b.lexer['$state=']("expr_value"),b.context['$in_argdef='](!1),c}),a(m,'$_reduce_637',function(d,e,b){var a=this;return b=a.context.$dup(),a.context['$in_kwarg='](!0),a.context['$in_argdef='](!0),b}),a(m,'$_reduce_638',function(c,e,f){var a=this;return a.context['$in_kwarg='](c['$[]'](0).$in_kwarg()),a.context['$in_argdef='](!1),a.builder.$args(b,c['$[]'](1),b)}),a(m,'$_reduce_639',function(a,c,d){return a['$[]'](0).$concat(a['$[]'](2)).$concat(a['$[]'](3))}),a(m,'$_reduce_640',function(a,c,d){return a['$[]'](0).$concat(a['$[]'](1))}),a(m,'$_reduce_641',function(a,c,d){return a['$[]'](0).$concat(a['$[]'](1))}),a(m,'$_reduce_642',function(a,c,d){return[a['$[]'](0)]}),a(m,'$_reduce_643',function(b,d,e){var a=this;return a.static_env.$declare_forward_args(),[a.builder.$forward_arg(b['$[]'](0))]}),a(m,'$_reduce_644',function(a,c,d){return a['$[]'](1)}),a(m,'$_reduce_645',function(b,c,d){return[]}),a(m,'$_reduce_646',function(a,c,d){return a['$[]'](0).$concat(a['$[]'](2)).$concat(a['$[]'](4)).$concat(a['$[]'](5))}),a(m,'$_reduce_647',function(a,c,d){return a['$[]'](0).$concat(a['$[]'](2)).$concat(a['$[]'](4)).$concat(a['$[]'](6)).$concat(a['$[]'](7))}),a(m,'$_reduce_648',function(a,c,d){return a['$[]'](0).$concat(a['$[]'](2)).$concat(a['$[]'](3))}),a(m,'$_reduce_649',function(a,c,d){return a['$[]'](0).$concat(a['$[]'](2)).$concat(a['$[]'](4)).$concat(a['$[]'](5))}),a(m,'$_reduce_650',function(a,c,d){return a['$[]'](0).$concat(a['$[]'](2)).$concat(a['$[]'](3))}),a(m,'$_reduce_651',function(a,c,d){return a['$[]'](0).$concat(a['$[]'](2)).$concat(a['$[]'](4)).$concat(a['$[]'](5))}),a(m,'$_reduce_652',function(a,c,d){return a['$[]'](0).$concat(a['$[]'](1))}),a(m,'$_reduce_653',function(a,c,d){return a['$[]'](0).$concat(a['$[]'](2)).$concat(a['$[]'](3))}),a(m,'$_reduce_654',function(a,c,d){return a['$[]'](0).$concat(a['$[]'](2)).$concat(a['$[]'](4)).$concat(a['$[]'](5))}),a(m,'$_reduce_655',function(a,c,d){return a['$[]'](0).$concat(a['$[]'](1))}),a(m,'$_reduce_656',function(a,c,d){return a['$[]'](0).$concat(a['$[]'](2)).$concat(a['$[]'](3))}),a(m,'$_reduce_657',function(a,c,d){return a['$[]'](0).$concat(a['$[]'](1))}),a(m,'$_reduce_658',function(a,c,d){return a['$[]'](0).$concat(a['$[]'](2)).$concat(a['$[]'](3))}),a(m,'$_reduce_659',function(a,c,d){return a['$[]'](0)}),a(m,'$_reduce_660',function(b,c,d){return[]}),a(m,'$_reduce_661',function(a,c,d){return a['$[]'](0)}),a(m,'$_reduce_662',function(a,f,c){var d=this;return d.$diagnostic("error","argument_const",b,a['$[]'](0)),c}),a(m,'$_reduce_663',function(a,f,c){var d=this;return d.$diagnostic("error","argument_ivar",b,a['$[]'](0)),c}),a(m,'$_reduce_664',function(a,f,c){var d=this;return d.$diagnostic("error","argument_gvar",b,a['$[]'](0)),c}),a(m,'$_reduce_665',function(a,f,c){var d=this;return d.$diagnostic("error","argument_cvar",b,a['$[]'](0)),c}),a(m,'$_reduce_667',function(a,d,e){var b=this;return b.static_env.$declare(a['$[]'](0)['$[]'](0)),b.max_numparam_stack['$has_ordinary_params!'](),a['$[]'](0)}),a(m,'$_reduce_668',function(a,d,e){var b=this;return b.current_arg_stack.$set(a['$[]'](0)['$[]'](0)),a['$[]'](0)}),a(m,'$_reduce_669',function(b,d,e){var a=this;return a.current_arg_stack.$set(0),a.builder.$arg(b['$[]'](0))}),a(m,'$_reduce_670',function(a,d,e){var b=this;return b.builder.$multi_lhs(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_671',function(a,c,d){return[a['$[]'](0)]}),a(m,'$_reduce_672',function(a,c,d){return a['$[]'](0)['$<<'](a['$[]'](2))}),a(m,'$_reduce_673',function(b,d,e){var a=this;return a.$check_kwarg_name(b['$[]'](0)),a.static_env.$declare(b['$[]'](0)['$[]'](0)),a.max_numparam_stack['$has_ordinary_params!'](),a.current_arg_stack.$set(b['$[]'](0)['$[]'](0)),a.context['$in_argdef='](!1),b['$[]'](0)}),a(m,'$_reduce_674',function(c,e,f){var a=this;return a.current_arg_stack.$set(b),a.context['$in_argdef='](!0),a.builder.$kwoptarg(c['$[]'](0),c['$[]'](1))}),a(m,'$_reduce_675',function(c,e,f){var a=this;return a.current_arg_stack.$set(b),a.context['$in_argdef='](!0),a.builder.$kwarg(c['$[]'](0))}),a(m,'$_reduce_676',function(a,d,e){var b=this;return b.context['$in_argdef='](!0),b.builder.$kwoptarg(a['$[]'](0),a['$[]'](1))}),a(m,'$_reduce_677',function(b,d,e){var a=this;return a.context['$in_argdef='](!0),a.builder.$kwarg(b['$[]'](0))}),a(m,'$_reduce_678',function(a,c,d){return[a['$[]'](0)]}),a(m,'$_reduce_679',function(a,c,d){return a['$[]'](0)['$<<'](a['$[]'](2))}),a(m,'$_reduce_680',function(a,c,d){return[a['$[]'](0)]}),a(m,'$_reduce_681',function(a,c,d){return a['$[]'](0)['$<<'](a['$[]'](2))}),a(m,'$_reduce_684',function(a,d,e){var b=this;return[b.builder.$kwnilarg(a['$[]'](0)['$[]'](0),a['$[]'](0)['$[]'](1))]}),a(m,'$_reduce_685',function(a,d,e){var b=this;return b.static_env.$declare(a['$[]'](1)['$[]'](0)),[b.builder.$kwrestarg(a['$[]'](0),a['$[]'](1))]}),a(m,'$_reduce_686',function(b,d,e){var a=this;return a.static_env.$declare_anonymous_kwrestarg(),[a.builder.$kwrestarg(b['$[]'](0))]}),a(m,'$_reduce_687',function(a,d,e){var b=this;return b.current_arg_stack.$set(0),b.context['$in_argdef='](!0),b.builder.$optarg(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_688',function(a,d,e){var b=this;return b.current_arg_stack.$set(0),b.context['$in_argdef='](!0),b.builder.$optarg(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_689',function(a,c,d){return[a['$[]'](0)]}),a(m,'$_reduce_690',function(a,c,d){return a['$[]'](0)['$<<'](a['$[]'](2))}),a(m,'$_reduce_691',function(a,c,d){return[a['$[]'](0)]}),a(m,'$_reduce_692',function(a,c,d){return a['$[]'](0)['$<<'](a['$[]'](2))}),a(m,'$_reduce_695',function(a,d,e){var b=this;return b.static_env.$declare(a['$[]'](1)['$[]'](0)),[b.builder.$restarg(a['$[]'](0),a['$[]'](1))]}),a(m,'$_reduce_696',function(b,d,e){var a=this;return a.static_env.$declare_anonymous_restarg(),[a.builder.$restarg(b['$[]'](0))]}),a(m,'$_reduce_699',function(a,d,e){var b=this;return b.static_env.$declare(a['$[]'](1)['$[]'](0)),b.builder.$blockarg(a['$[]'](0),a['$[]'](1))}),a(m,'$_reduce_700',function(c,e,f){var a=this;return a.static_env.$declare_anonymous_blockarg(),a.builder.$blockarg(c['$[]'](0),b)}),a(m,'$_reduce_701',function(a,c,d){return[a['$[]'](1)]}),a(m,'$_reduce_702',function(b,c,d){return[]}),a(m,'$_reduce_704',function(a,c,d){return a['$[]'](1)}),a(m,'$_reduce_705',function(b,c,d){return[]}),a(m,'$_reduce_707',function(a,c,d){return[a['$[]'](0)]}),a(m,'$_reduce_708',function(a,c,d){return a['$[]'](0)['$<<'](a['$[]'](2))}),a(m,'$_reduce_709',function(a,d,e){var b=this;return b.builder.$pair(a['$[]'](0),a['$[]'](1),a['$[]'](2))}),a(m,'$_reduce_710',function(a,d,e){var b=this;return b.builder.$pair_keyword(a['$[]'](0),a['$[]'](1))}),a(m,'$_reduce_711',function(a,d,e){var b=this;return b.builder.$pair_label(a['$[]'](0))}),a(m,'$_reduce_712',function(a,d,e){var b=this;return b.builder.$pair_quoted(a['$[]'](0),a['$[]'](1),a['$[]'](2),a['$[]'](3))}),a(m,'$_reduce_713',function(a,d,e){var b=this;return b.builder.$kwsplat(a['$[]'](0),a['$[]'](1))}),a(m,'$_reduce_714',function(c,e,f){var a=this;return g(a.static_env['$declared_anonymous_kwrestarg?']())&&a.$diagnostic("error","no_anonymous_kwrestarg",b,c['$[]'](0)),a.builder.$forwarded_kwrestarg(c['$[]'](0))}),a(m,'$_reduce_725',function(a,c,d){return["dot",a['$[]'](0)['$[]'](1)]}),a(m,'$_reduce_726',function(a,c,d){return["anddot",a['$[]'](0)['$[]'](1)]}),a(m,'$_reduce_731',function(a,c,d){return a['$[]'](1)}),a(m,'$_reduce_732',function(a,c,d){return a['$[]'](1)}),a(m,'$_reduce_733',function(a,c,d){return a['$[]'](1)}),a(m,'$_reduce_736',function(d,e,a){var b=this;return b.$yyerrok(),a}),a(m,'$_reduce_740',j(b)),a(m,'$_reduce_none',function(a,c,d){return a['$[]'](0)})}(m[0],o(w('Parser'),'Base'),m)}(n[0],n)},Opal.modules["opal/ast/builder"]=function(a){var c=a.module,h=a.klass,f=a.Opal,g=a.def,d=a.top,e=[],i=a.nil,b=a.$$$;return a.add_stubs('require,emit_lambda=,new'),d.$require("opal/ast/node"),d.$require("parser/ruby32"),function(d,e){var i=c(d,'Opal'),a=[i].concat(e);return function(a,d){var e=c(a,'AST'),i=[e].concat(d);return function(c,d){var a=h(c,d,'Builder');return a['$emit_lambda='](!0),g(a,'$n',function(a,c,d){return b(b(f,'AST'),'Node').$new(a,c,new Map([["location",d]]))})}(i[0],b(b(b('Parser'),'Builders'),'Default'))}(a[0],a)}(e[0],e)},Opal.modules["opal/rewriters/base"]=function(a){var k=a.module,l=a.klass,i=a.slice,b=a.def,t=a.return_self,g=a.return_val,v=a.const_set,f=a.truthy,h=a.Opal,u=a.defs,e=a.alias,m=a.rb_plus,j=a.send,s=a.to_a,p=a.send2,q=a.find_super,r=a.assign_ivar_val,o=a.top,n=[],c=a.nil,d=a.$$$;return a.add_stubs('require,new,current_node,loc,process_regular_node,on_send,+,stmts_of,begin_with_stmts,nil?,include?,type,children,length,[],s,attr_accessor,current_node=,location=,raise,[]=,meta'),o.$require("parser"),o.$require("opal/ast/node"),function(o,w){var x=k(o,'Opal'),n=[x].concat(w);return function(o,w){var x=k(o,'Rewriters'),n=[x].concat(w);return function(w,x,y){var k=l(w,x,'Base'),n=[k].concat(y),o=a.$r(n),z=k.$$prototype;return z.dynamic_cache_result=c,function(f,h,j){var e=l(f,h,'DummyLocation'),k=[e].concat(j),m=a.$r(k);return b(e,'$node=',function(e){var a,b;return a=i(arguments),b=a,c},-1),b(e,'$expression',t),b(e,'$begin_pos',g(0)),b(e,'$end_pos',g(0)),b(e,'$source',g("")),b(e,'$line',g(0)),b(e,'$column',g(0)),b(e,'$last_line',function(){return d(m('Float'),'INFINITY')})}(n[0],null,n),v(n[0],'DUMMY_LOCATION',o('DummyLocation').$new()),b(k,'$s',function(j,k){var b,e,g=this,a=c;return b=i(arguments,1),e=b,a=f(g.$current_node())?g.$current_node().$loc():o('DUMMY_LOCATION'),d(d(h,'AST'),'Node').$new(j,e,new Map([["location",a]]))},-2),u(k,'$s',function(c,f){var a,b;return a=i(arguments,1),b=a,d(d(h,'AST'),'Node').$new(c,b,new Map([["location",o('DUMMY_LOCATION')]]))},-2),e(k,"on_iter","process_regular_node"),e(k,"on_zsuper","process_regular_node"),e(k,"on_jscall","on_send"),e(k,"on_jsattr","process_regular_node"),e(k,"on_jsattrasgn","process_regular_node"),e(k,"on_kwsplat","process_regular_node"),b(k,'$prepend_to_body',function(d,e){var a=this,b=c;return b=m(a.$stmts_of(e),a.$stmts_of(d)),a.$begin_with_stmts(b)}),b(k,'$append_to_body',function(d,e){var a=this,b=c;return b=m(a.$stmts_of(d),a.$stmts_of(e)),a.$begin_with_stmts(b)}),b(k,'$stmts_of',function(a){return f(a['$nil?']())?[]:f(["begin","kwbegin"]['$include?'](a.$type()))?a.$children():[a]}),b(k,'$begin_with_stmts',function(a){var b=this;switch(a.$length().valueOf()){case 0:return c;case 1:return a['$[]'](0);default:return j(b,'s',["begin"].concat(s(a)))}}),k.$attr_accessor("current_node"),b(k,'$process',function d(e){var a,f=d.$$p||c,b=this;return d.$$p=null,function(){try{return b['$current_node='](e),p(b,q(b,'process',d,!1,!0),'process',[e],f)}finally{a=[c],j(b,'current_node=',a),a[a.length-1]}}()}),b(k,'$error',function(e){var a=this,b=c;return b=d(h,'RewritingError').$new(e),f(a.$current_node())&&b['$location='](a.$current_node().$loc()),a.$raise(b)}),b(k,'$on_top',function(a){var b=this;return a=b.$process_regular_node(a),f(b.dynamic_cache_result)&&a.$meta()['$[]=']("dynamic_cache_result",!0),a}),b(k,'$dynamic!',r("dynamic_cache_result",!0))}(n[0],d(d(d('Parser'),'AST'),'Processor'),n)}(n[0],n)}(n[0],n)},Opal.modules["opal/rewriters/opal_engine_check"]=function(b){var f=b.module,j=b.klass,h=b.to_a,c=b.truthy,l=b.send2,i=b.find_super,e=b.def,d=b.const_set,k=b.top,g=[],a=b.nil;return b.add_stubs('require,children,skip_check_present?,process,s,skip_check_present_not?,=='),k.$require("opal/rewriters/base"),function(k,m){var n=f(k,'Opal'),g=[n].concat(m);return function(k,m){var n=f(k,'Rewriters'),g=[n].concat(m),o=b.$r(g);return function(m,n,o){var f=j(m,n,'OpalEngineCheck'),g=[f].concat(o),k=b.$r(g);return e(f,'$on_if',function f(j){var b,n=f.$$p||a,d=this,g=a,k=a,m=a,e=a;return f.$$p=null,b=[].concat(h(j.$children())),g=b[0]==null?a:b[0],k=b[1]==null?a:b[1],m=b[2]==null?a:b[2],b,c(d['$skip_check_present?'](g))?d.$process(c(e=k)?e:d.$s("nil")):c(d['$skip_check_present_not?'](g))?d.$process(c(e=m)?e:d.$s("nil")):l(d,i(d,'on_if',f,!1,!0),'on_if',[j],n)}),e(f,'$skip_check_present?',function(b){var d=a;return c(d=b['$=='](k('RUBY_ENGINE_CHECK')))?d:b['$=='](k('RUBY_PLATFORM_CHECK'))}),e(f,'$skip_check_present_not?',function(b){var d=a;return c(d=b['$=='](k('RUBY_ENGINE_CHECK_NOT')))?d:b['$=='](k('RUBY_PLATFORM_CHECK_NOT'))}),d(g[0],'RUBY_ENGINE_CHECK',f.$s("send",f.$s("const",a,"RUBY_ENGINE"),"==",f.$s("str","opal"))),d(g[0],'RUBY_ENGINE_CHECK_NOT',f.$s("send",f.$s("const",a,"RUBY_ENGINE"),"!=",f.$s("str","opal"))),d(g[0],'RUBY_PLATFORM_CHECK',f.$s("send",f.$s("const",a,"RUBY_PLATFORM"),"==",f.$s("str","opal"))),d(g[0],'RUBY_PLATFORM_CHECK_NOT',f.$s("send",f.$s("const",a,"RUBY_PLATFORM"),"!=",f.$s("str","opal")))}(g[0],o('Base'),g)}(g[0],g)}(g[0],g)},Opal.modules["opal/rewriters/targeted_patches"]=function(b){var i=b.module,r=b.klass,q=b.to_a,c=b.truthy,l=b.rb_ge,d=b.eqeq,n=b.to_ary,h=b.range,f=b.send2,e=b.find_super,k=b.def,m=b.rb_gt,g=b.send,o=b.not,p=b.top,j=[],a=b.nil;return b.add_stubs('require,>=,length,children,==,type,last,first,updated,[],<<,>,all?,include?,=~,to_s,!,cover?,join,map,s'),p.$require("opal/rewriters/base"),function(p,s){var t=i(p,'Opal'),j=[t].concat(s);return function(p,s){var t=i(p,'Rewriters'),j=[t].concat(s),u=b.$r(j);return function(i,j){var b=r(i,j,'TargetedPatches');return k(b,'$on_def',function m(j){var b,s,u=m.$$p||a,o=this,p=a,r=a,i=a,g=a,k=a,t=a;return m.$$p=null,b=[].concat(q(j)),p=b[0]==null?a:b[0],r=b[1]==null?a:b[1],i=b[2]==null?a:b[2],b,c(i)&&d(i.$type(),"begin")&&c(l(i.$children().$length(),2))?(g=i.$children(),s=g.$last(2),b=n(s),k=b[0]==null?a:b[0],t=b[1]==null?a:b[1],s,d(k.$type(),"lvasgn")&&d(t.$type(),"lvar")&&d(k.$children().$first(),t.$children().$first())?d(g.$length(),2)?j.$updated(a,[p,r,k.$children()['$[]'](1)]):(g=g['$[]'](h(0,-3,!1))['$<<'](k.$children()['$[]'](1)),j.$updated(a,[p,r,i.$updated(a,g)])):f(o,e(o,'on_def',m,!1,!0),'on_def',[j],u)):f(o,e(o,'on_def',m,!1,!0),'on_def',[j],u)}),k(b,'$on_array',function i(j){var l=i.$$p||a,b=this,k=a,n=a,p=a;return i.$$p=null,k=j.$children(),c(m(k.$length(),32))?(n=g(k,'all?',[],function(b){return!(b==null&&(b=a),!c(["str","sym","int","nil"]['$include?'](b.$type())))&&(!(c(["str","sym"]['$include?'](b.$type()))&&c(b.$children().$first().$to_s()['$=~'](/^[0-9-]|^$|,/)))&&(!(d(b.$type(),"int")&&o(h(-1e6,1e6,!1)['$cover?'](b.$children().$first())))))}),c(n))?(p=g(k,'map',[],function(b){return b==null&&(b=a),b.$children().$first().$to_s()}).$join(","),j.$updated("jscall",[b.$s("js_tmp","Opal"),"large_array_unpack",b.$s("sym",p)])):f(b,e(b,'on_array',i,!1,!0),'on_array',[j],l):f(b,e(b,'on_array',i,!1,!0),'on_array',[j],l)})}(j[0],u('Base'))}(j[0],j)}(j[0],j)},Opal.modules["opal/rewriters/for_rewriter"]=function(b){var g=b.module,h=b.klass,o=b.assign_ivar_val,d=b.defs,j=b.truthy,f=b.rb_plus,e=b.to_a,c=b.def,k=b.send,l=b.send2,m=b.find_super,n=b.top,i=[],a=b.nil;return b.add_stubs('require,+,generate_outer_assignments,next_tmp,class,s,prepend_to_body,assign_loop_variable,transform_for_to_each_loop,updated,private,find,map,type,<<,process,attr_reader,new,to_a,result'),n.$require("opal/rewriters/base"),function(n,p){var q=g(n,'Opal'),i=[q].concat(p);return function(n,p){var q=g(n,'Rewriters'),i=[q].concat(p),r=b.$r(i);return function(p,q,r){var g=h(p,q,'ForRewriter'),i=[g].concat(r),n=b.$r(i);return d(g,'$reset_tmp_counter!',o("counter",0)),d(g,'$next_tmp',function(){var b=this,c=a;return b.counter==null&&(b.counter=a),b.counter=j(c=b.counter)?c:0,b.counter=f(b.counter,1),"$for_tmp"+b.counter}),c(g,'$on_for',function(f){var b,c=this,g=a,i=a,d=a,j=a,h=a,k=a;return b=[].concat(e(f)),g=b[0]==null?a:b[0],i=b[1]==null?a:b[1],d=b[2]==null?a:b[2],b,j=c.$generate_outer_assignments(g,d),h=c.$class().$next_tmp(),k=c.$s("js_tmp",h),d=c.$prepend_to_body(d,c.$assign_loop_variable(g,k)),f=c.$transform_for_to_each_loop(f,i,h,d),f.$updated("begin",[].concat(e(j)).concat([f]))}),g.$private(),c(g,'$generate_outer_assignments',function(d,e){var g=this,b=a,c=a;return b=n('LocalVariableAssigns').$find(d),c=n('LocalVariableAssigns').$find(e),k(f(b,c),'map',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),d.$s("lvdeclare",b)},{$$s:g})}),c(g,'$assign_loop_variable',function(a,b){switch(a.$type().valueOf()){case"mlhs":return a.$updated("masgn",[a,b]);default:return a['$<<'](b)}}),c(g,'$transform_for_to_each_loop',function(b,c,d,e){var a=this;return b.$updated("send",[c,"each",b.$updated("iter",[a.$s("args",a.$s("arg",d)),a.$process(e)])])}),function(g,i,j){var f=h(g,i,'LocalVariableAssigns'),k=[f].concat(j),n=b.$r(k);return f.$attr_reader("result"),d(f,'$find',function(c){var d=this,b=a;return b=d.$new(),b.$process(c),b.$result().$to_a()}),c(f,'$initialize',function(){var a=this;return a.result=n('Set').$new()}),c(f,'$on_lvasgn',function c(f){var b,h=c.$$p||a,d=this,g=a,i=a;return c.$$p=null,b=[].concat(e(f)),g=b[0]==null?a:b[0],i=b[1]==null?a:b[1],b,d.$result()['$<<'](g),l(d,m(d,'on_lvasgn',c,!1,!0),'on_lvasgn',[f],h)})}(i[0],n('Base'),i)}(i[0],r('Base'),i)}(i[0],i)}(i[0],i)},Opal.modules["opal/rewriters/js_reserved_words"]=function(b){var l=b.module,n=b.klass,e=b.const_set,f=b.regexp,c=b.truthy,k=b.defs,d=b.def,p=b.range,g=b.to_a,h=b.send2,i=b.find_super,o=b.alias,j=b.top,m=[],a=b.nil;return b.add_stubs('require,freeze,=~,!,valid_name?,class,to_sym,valid_ivar_name?,[],to_s,updated,fix_var_name,fix_ivar_name,on_restarg'),j.$require("opal/rewriters/base"),j.$require("opal/regexp_anchors"),function(m,q){var r=l(m,'Opal'),j=[r].concat(q);return function(m,q){var r=l(m,'Rewriters'),j=[r].concat(q),s=b.$r(j);return function(q,r,s){var l=n(q,r,'JsReservedWords'),m=[l].concat(s),j=b.$r(m);return e(m[0],'ES51_RESERVED_WORD',f([j('REGEXP_START'),"(?:do|if|in|for|let|new|try|var|case|else|enum|eval|false|null|this|true|void|with|break|catch|class|const|super|throw|while|yield|delete|export|import|public|return|static|switch|typeof|default|extends|finally|package|private|continue|debugger|function|arguments|interface|protected|implements|instanceof)",j('REGEXP_END')]).$freeze()),e(m[0],'ES3_RESERVED_WORD_EXCLUSIVE',f([j('REGEXP_START'),"(?:int|byte|char|goto|long|final|float|short|double|native|throws|boolean|abstract|volatile|transient|synchronized)",j('REGEXP_END')]).$freeze()),e(m[0],'PROTO_SPECIAL_PROPS',f([j('REGEXP_START'),"(?:constructor|displayName|__proto__|__parent__|__noSuchMethod__|__count__)",j('REGEXP_END')]).$freeze()),e(m[0],'PROTO_SPECIAL_METHODS',f([j('REGEXP_START'),"(?:hasOwnProperty|valueOf)",j('REGEXP_END')]).$freeze()),e(m[0],'IMMUTABLE_PROPS',f([j('REGEXP_START'),"(?:NaN|Infinity|undefined)",j('REGEXP_END')]).$freeze()),e(m[0],'BASIC_IDENTIFIER_RULES',f([j('REGEXP_START'),"[$_a-z][$_a-z\\d]*",j('REGEXP_END')],'i').$freeze()),e(m[0],'RESERVED_FUNCTION_NAMES',f([j('REGEXP_START'),"(?:Array)",j('REGEXP_END')]).$freeze()),k(l,'$valid_name?',function(b){var d=a,e=a,f=a;return c(d=j('BASIC_IDENTIFIER_RULES')['$=~'](b))?(c(e=c(f=j('ES51_RESERVED_WORD')['$=~'](b))?f:j('ES3_RESERVED_WORD_EXCLUSIVE')['$=~'](b))?e:j('IMMUTABLE_PROPS')['$=~'](b))['$!']():d}),k(l,'$valid_ivar_name?',function(b){var d=a;return(c(d=j('PROTO_SPECIAL_PROPS')['$=~'](b))?d:j('PROTO_SPECIAL_METHODS')['$=~'](b))['$!']()}),d(l,'$fix_var_name',function(a){var b=this;return c(b.$class()['$valid_name?'](a))?a:(""+a+"$").$to_sym()}),d(l,'$fix_ivar_name',function(a){var b=this;return c(b.$class()['$valid_ivar_name?'](a.$to_s()['$[]'](p(1,-1,!1))))?a:(""+a+"$").$to_sym()}),d(l,'$on_lvar',function d(c){var b,k=d.$$p||a,e=this,f=a,j=a;return d.$$p=null,b=[].concat(g(c)),f=b[0]==null?a:b[0],j=b[1]==null?a:b[1],b,c=c.$updated(a,[e.$fix_var_name(f)]),h(e,i(e,'on_lvar',d,!1,!0),'on_lvar',[c],null)}),d(l,'$on_lvasgn',function f(d){var b,l=f.$$p||a,e=this,j=a,k=a;return f.$$p=null,b=[].concat(g(d)),j=b[0]==null?a:b[0],k=b[1]==null?a:b[1],b,d=c(k)?d.$updated(a,[e.$fix_var_name(j),k]):d.$updated(a,[e.$fix_var_name(j)]),h(e,i(e,'on_lvasgn',f,!1,!0),'on_lvasgn',[d],null)}),d(l,'$on_ivar',function d(c){var b,k=d.$$p||a,e=this,f=a,j=a;return d.$$p=null,b=[].concat(g(c)),f=b[0]==null?a:b[0],j=b[1]==null?a:b[1],b,c=c.$updated(a,[e.$fix_ivar_name(f)]),h(e,i(e,'on_ivar',d,!1,!0),'on_ivar',[c],null)}),d(l,'$on_ivasgn',function f(d){var b,l=f.$$p||a,e=this,j=a,k=a;return f.$$p=null,b=[].concat(g(d)),j=b[0]==null?a:b[0],k=b[1]==null?a:b[1],b,d=c(k)?d.$updated(a,[e.$fix_ivar_name(j),k]):d.$updated(a,[e.$fix_ivar_name(j)]),h(e,i(e,'on_ivasgn',f,!1,!0),'on_ivasgn',[d],null)}),d(l,'$on_restarg',function(d){var b,f=this,e=a,h=a;return b=[].concat(g(d)),e=b[0]==null?a:b[0],h=b[1]==null?a:b[1],b,c(e)&&(d=d.$updated(a,[f.$fix_var_name(e)],new Map([["meta",new Map([["arg_name",e]])]]))),d}),o(l,"on_kwrestarg","on_restarg"),d(l,'$on_argument',function e(d){var b,n=e.$$p||a,f=this,j=a,k=a,l=a,m=a;return e.$$p=null,d=h(f,i(f,'on_argument',e,!1,!0),'on_argument',[d],null),b=[].concat(g(d)),j=b[0]==null?a:b[0],k=b[1]==null?a:b[1],b,l=f.$fix_var_name(j),m=c(k)?[l,k]:[l],d.$updated(a,m,new Map([["meta",new Map([["arg_name",j]])]]))})}(j[0],s('Base'),j)}(j[0],j)}(m[0],m)},Opal.modules["opal/rewriters/block_to_iter"]=function(a){var c=a.module,i=a.klass,e=a.to_a,f=a.rb_plus,g=a.def,h=a.top,d=[],b=a.nil;return a.add_stubs('require,s,process,updated,+,children'),h.$require("opal/rewriters/base"),function(h,j){var k=c(h,'Opal'),d=[k].concat(j);return function(h,j){var k=c(h,'Rewriters'),d=[k].concat(j),l=a.$r(d);return function(a,c){var d=i(a,c,'BlockToIter');return g(d,'$on_block',function(j){var a,h=this,c=b,i=b,d=b,g=b;return a=[].concat(e(j)),c=a[0]==null?b:a[0],i=a[1]==null?b:a[1],d=a[2]==null?b:a[2],a,g=h.$s("iter",i,d),h.$process(c.$updated(b,f(c.$children(),[g])))})}(d[0],l('Base'))}(d[0],d)}(d[0],d)},Opal.modules["opal/rewriters/dot_js_syntax"]=function(b){var i=b.module,o=b.klass,c=b.to_a,n=b.slice,h=b.eqeq,k=b.truthy,j=b.neqeq,f=b.send2,e=b.find_super,d=b.def,l=b.send,m=b.top,g=[],a=b.nil;return b.add_stubs('require,==,type,!=,size,error,first,to_js_attr_call,to_js_attr_assign_call,to_native_js_call,s'),m.$require("opal/rewriters/base"),function(m,p){var q=i(m,'Opal'),g=[q].concat(p);return function(m,p){var q=i(m,'Rewriters'),g=[q].concat(p),r=b.$r(g);return function(g,i){var b=o(g,i,'DotJsSyntax');return d(b,'$on_send',function l(g){var b,s=l.$$p||a,d=this,o=a,q=a,i=a,p=a,r=a,u=a,m=a,t=a;if(l.$$p=null,b=[].concat(c(g)),o=b[0]==null?a:b[0],q=b[1]==null?a:b[1],i=n(b,2),b,k(o)&&h(o.$type(),"send")){if(b=[].concat(c(o)),p=b[0]==null?a:b[0],r=b[1]==null?a:b[1],u=b[2]==null?a:b[2],b,h(r,"JS")){switch(q.valueOf()){case"[]":j(i.$size(),1)&&d.$error(".JS[:property] syntax supports only one argument"),m=i.$first(),g=d.$to_js_attr_call(p,m);break;case"[]=":j(i.$size(),2)&&d.$error(".JS[:property]= syntax supports only two arguments"),b=[].concat(c(i)),m=b[0]==null?a:b[0],t=b[1]==null?a:b[1],b,g=d.$to_js_attr_assign_call(p,m,t);break;default:g=d.$to_native_js_call(p,q,i)}return f(d,e(d,'on_send',l,!1,!0),'on_send',[g],null)}return f(d,e(d,'on_send',l,!1,!0),'on_send',[g],s)}else return f(d,e(d,'on_send',l,!1,!0),'on_send',[g],s)}),d(b,'$to_native_js_call',function(a,b,d){var e=this;return l(e,'s',["jscall",a,b].concat(c(d)))}),d(b,'$to_js_attr_call',function(a,b){var c=this;return c.$s("jsattr",a,b)}),d(b,'$to_js_attr_assign_call',function(a,b,c){var d=this;return d.$s("jsattrasgn",a,b,c)})}(g[0],r('Base'))}(g[0],g)}(g[0],g)},Opal.modules["opal/rewriters/pattern_matching"]=function(c){var l=c.module,k=c.klass,u=c.send2,t=c.find_super,b=c.def,d=c.to_a,j=c.rb_plus,i=c.slice,g=c.truthy,e=c.send,v=c.not,q=c.neqeq,p=c.eqeq,o=c.return_ivar,f=c.alias,h=c.eqeqeq,r=c.Opal,s=c.top,m=[],a=c.nil,n=c.$$$;return c.add_stubs('require,s,convert_full_pattern,raise_no_matching_pattern_error,+,process,single_case_match,private,shift,type,!,empty?,!=,==,class,new,run!,variables,pattern,map,<<,array,on_literal,first,children,to_proc,method,each,to_ast,on_array_pattern,compact,[],==='),s.$require("opal/rewriters/base"),function(s,w){var x=l(s,'Opal'),m=[x].concat(w);return function(s,w){var x=l(s,'Rewriters'),m=[x].concat(w),y=c.$r(m);return function(w,x,y){var l=k(w,x,'PatternMatching'),m=[l].concat(y),s=c.$r(m),z=l.$$prototype;return z.depth=a,b(l,'$initialize',function b(){var d=b.$$p||a,c=this;return b.$$p=null,c.depth=0,u(c,t(c,'initialize',b,!1,!0),'initialize',[],d)}),b(l,'$on_match_pattern',function(g){var b,c=this,e=a,f=a;return b=[].concat(d(g)),e=b[0]==null?a:b[0],f=b[1]==null?a:b[1],b,c.$s("begin",c.$s("lvasgn","$pmvar",e),c.$s("if",c.$convert_full_pattern(e,f),a,c.$raise_no_matching_pattern_error("$pmvar")))}),b(l,'$on_match_pattern_p',function(g){var b,c=this,e=a,f=a;return b=[].concat(d(g)),e=b[0]==null?a:b[0],f=b[1]==null?a:b[1],b,c.$s("if",c.$convert_full_pattern(e,f),c.$s("true"),c.$s("false"))}),b(l,'$on_case_match',function(n){var b,f,c=this,k=a,l=a,m=a,h=a;return c.depth=j(c.depth,1),k="$cmvar"+c.depth,b=[].concat(d(n)),l=b[0]==null?a:b[0],f=b.length-1,f=f<1?1:f,m=i(b,1,f),h=b[f]==null?a:b[f],b,g(h)?c.$process(h):h=c.$raise_no_matching_pattern_error(k),c.$s("begin",c.$s("lvasgn",k,l),e(c,'single_case_match',[k].concat(d(m)).concat([h])))}),l.$private(),b(l,'$raise_no_matching_pattern_error',function(c){var b=this;return b.$s("send",a,"raise",b.$s("const",b.$s("cbase"),"NoMatchingPatternError"),b.$s("lvar",c))}),b(l,'$single_case_match',function(o,s,r){var k,l,h,b,f=this,n=a,c=a,j=a,p=a,m=a;if(k=i(arguments,1),l=k.splice(0,k.length-1),h=k.shift(),h==null&&(h=a),n=l.$shift(),b=[].concat(d(n)),c=b[0]==null?a:b[0],j=b[1]==null?a:b[1],p=b[2]==null?a:b[2],b,c=f.$convert_full_pattern(o,c),g(j))switch(b=[].concat(d(j)),m=b[0]==null?a:b[0],b,j.$type().valueOf()){case"if_guard":c=f.$s("and",c,m);break;case"unless_guard":c=f.$s("and",c,f.$s("send",m,"!"));break;default:a}return f.$s("if",c,f.$process(p),v(l['$empty?']())?e(f,'single_case_match',[o].concat(d(l)).concat([h])):q(h,f.$s("empty_else"))?h:a)},-3),b(l,'$convert_full_pattern',function(c,g){var b=this,f=a;return p(c.$class(),s('Symbol'))&&(c=b.$s("lvar",c)),f=s('PatternConverter').$new(g),f['$run!'](),b.$s("masgn",e(b,'s',["mlhs"].concat(d(f.$variables()))),b.$s("send",b.$s("const",b.$s("cbase"),"PatternMatching"),"call",c,f.$pattern()))}),function(s,p,q){var l=k(s,p,'PatternConverter'),r=[l].concat(q),n=c.$r(r),m=l.$$prototype;return m.pat=m.variables=a,b(l,'$initialize',function(b){var a=this;return a.pat=b,a.variables=[]}),b(l,'$run!',function(){var a=this;return a.outpat=a.$process(a.pat)}),b(l,'$pattern',o("outpat")),b(l,'$variables',function(){var b=this;return e(b.variables,'map',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),d.$s("lvasgn",b)},{$$s:b})}),b(l,'$on_match_var',function(f){var b,c=this,e=a;return b=[].concat(d(f)),e=b[0]==null?a:b[0],b,c.variables['$<<'](e),c.$s("sym","var")}),b(l,'$on_match_as',function(g){var b,c=this,e=a,f=a;return b=[].concat(d(g)),e=b[0]==null?a:b[0],f=b[1]==null?a:b[1],b,c.$process(f),c.$array(c.$s("sym","save"),c.$process(e))}),b(l,'$on_literal',function(b){var a=this;return a.$array(a.$s("sym","lit"),b)}),f(l,"on_int","on_literal"),f(l,"on_float","on_literal"),f(l,"on_complex","on_literal"),f(l,"on_rational","on_literal"),f(l,"on_array","on_literal"),f(l,"on_str","on_literal"),f(l,"on_dstr","on_literal"),f(l,"on_xstr","on_literal"),f(l,"on_sym","on_literal"),f(l,"on_irange","on_literal"),f(l,"on_erange","on_literal"),f(l,"on_const","on_literal"),f(l,"on_regexp","on_literal"),f(l,"on_lambda","on_literal"),f(l,"on_begin","on_literal"),b(l,'$on_pin',function(a){var b=this;return b.$on_literal(a.$children().$first())}),b(l,'$on_match_rest',function(b){var a=this;return g(b.$children()['$empty?']())?a.$array(a.$s("sym","rest")):a.$array(a.$s("sym","rest"),a.$process(b.$children().$first()))}),b(l,'$on_match_alt',function(b){var a=this;return e(a,'array',[a.$s("sym","any")].concat(d(e(b.$children(),'map',[],a.$method("process").$to_proc()))))}),b(l,'$on_const_pattern',function(b){var a=this;return e(a,'array',[a.$s("sym","all")].concat(d(e(b.$children(),'map',[],a.$method("process").$to_proc()))))}),b(l,'$on_array_pattern',function(k,h){var b=this,c=a,i=a,f=a;return h==null&&(h=!1),c=[].concat(d(k)),g(h)&&c['$<<'](b.$s("match_rest")),i=!0,f=0,c=e(c,'each',[],function(b){switch(b==null&&(b=a),b.$type().valueOf()){case"match_rest":return i=!1;default:return f=j(f,1)}}),b.$array(b.$s("sym","array"),b.$to_ast(i),b.$to_ast(f),b.$to_ast(e(c,'map',[],b.$method("process").$to_proc())))},-2),b(l,'$on_array_pattern_with_tail',function(a){var b=this;return b.$on_array_pattern(a,!0)}),b(l,'$on_hash_pattern',function(h){var b=this,c=a,f=a;return c=[].concat(d(h)),f=g(c['$empty?']())?b.$to_ast(!1):b.$to_ast(!0),c=e(c,'map',[],function d(b){var c=d.$$s==null?this:d.$$s;switch(b==null&&(b=a),b.$type().valueOf()){case"pair":return c.$array(b.$children()['$[]'](0),c.$process(b.$children()['$[]'](1)));case"match_var":return c.$array(c.$s("sym",b.$children()['$[]'](0)),c.$process(b));case"match_nil_pattern":return f=c.$to_ast(!1),a;case"match_rest":return g(b.$children().$first())?f=c.$process(b.$children().$first()):f=c.$to_ast(!0),a;default:return a}},{$$s:b}).$compact(),b.$array(b.$s("sym","hash"),f,e(b,'array',d(c)))}),b(l,'$on_find_pattern',function(f){var b=this,c=a;return c=[].concat(d(f)),c=e(c,'map',[],b.$method("process").$to_proc()),b.$array(b.$s("sym","find"),e(b,'array',d(c)))}),l.$private(),b(l,'$array',function(e){var a,b,c=this;return a=i(arguments),b=a,c.$to_ast(b)},-1),b(l,'$to_ast',function(f){var b=this,c=a;return h(n('Array'),c=f)?e(b,'s',["array"].concat(d(f))):h(n('Integer'),c)?b.$s("int",f):h(!0,c)?b.$s("true"):h(!1,c)?b.$s("false"):h(a,c)?b.$s("nil"):a})}(m[0],n(n(r,'Rewriters'),'Base'),m)}(m[0],y('Base'),m)}(m[0],m)}(m[0],m)},Opal.modules["opal/rewriters/logical_operator_assignment"]=function(b){var k=b.module,j=b.klass,g=b.class_variable_set,f=b.defs,e=b.truthy,h=b.class_variable_get,q=b.rb_plus,d=b.const_set,l=b.lambda,p=b.eqeq,c=b.to_a,m=b.slice,n=b.send,i=b.def,r=b.send2,s=b.find_super,t=b.top,o=[],a=b.nil;return b.add_stubs('require,+,updated,s,==,include?,[],type,new_temp,freeze,call,fetch,error,process'),t.$require("opal/rewriters/base"),function(t,u){var v=k(t,'Opal'),o=[v].concat(u);return function(t,u){var v=k(t,'Rewriters'),o=[v].concat(u),w=b.$r(o);return function(u,v,w){var t=j(u,v,'LogicalOperatorAssignment'),k=[t].concat(w),o=b.$r(k);return f(t,'$reset_tmp_counter!',function(){return g(k[0],'@@counter',0)}),f(t,'$new_temp',function(){var b,c=a;return g(k[0],'@@counter',e((b=k[0].$$cvars['@@counter'],b!=null)?'class variable':a)?e(c=h(k[0],'@@counter',!1))?c:0:0),g(k[0],'@@counter',q(h(k[0],'@@counter',!1),1)),"$logical_op_recvr_tmp_"+h(k[0],'@@counter',!1)}),d(k[0],'GET_SET',l(function f(b,d){var g=f.$$s==null?this:f.$$s;return b==null&&(b=a),d==null&&(d=a),l(function l(f,h,i){var j=l.$$s==null?this:l.$$s,k=a,g=a,m=a;return f==null&&(f=a),h==null&&(h=a),i==null&&(i=a),k=f.$updated(b),g=j.$s(i,k,h),e(["const","cvar"]['$include?'](b))&&p(i,"or")&&(m=j.$s("defined?",k),g=j.$s("if",m,j.$s("begin",g),h)),f.$updated(d,[].concat(c(f)).concat([g]))},{$$s:g})},{$$s:t})),d(k[0],'LocalVariableHandler',o('GET_SET')['$[]']("lvar","lvasgn")),d(k[0],'InstanceVariableHandler',o('GET_SET')['$[]']("ivar","ivasgn")),d(k[0],'ConstantHandler',o('GET_SET')['$[]']("const","casgn")),d(k[0],'GlobalVariableHandler',o('GET_SET')['$[]']("gvar","gvasgn")),d(k[0],'ClassVariableHandler',o('GET_SET')['$[]']("cvar","cvasgn")),function(b,d){var g=j(b,d,'SendHandler');return f(g,'$call',function(g,s,r){var d,f=this,b=a,k=a,j=a,i=a,h=a,n=a,o=a,q=a,l=a;return d=[].concat(c(g)),b=d[0]==null?a:d[0],k=d[1]==null?a:d[1],j=m(d,2),d,e(b)&&p(b.$type(),"send")&&(i=f.$new_temp(),h=f.$s("lvasgn",i,b),b=f.$s("js_tmp",i)),n=""+k+"=",o=g.$updated("send",[b,k].concat(c(j))),q=g.$updated("send",[b,n].concat(c(j)).concat([s])),l=f.$s(r,o,q),e(h)?f.$s("begin",h,l):l})}(k[0],t),function(b,d){var e=j(b,d,'ConditionalSendHandler');return f(e,'$call',function(l,p,g){var d,b=this,e=a,j=a,k=a,f=a,n=a,o=a,i=a,h=a;return g=""+g+"_asgn",d=[].concat(c(l)),e=d[0]==null?a:d[0],j=d[1]==null?a:d[1],k=m(d,2),d,f=b.$new_temp(),n=b.$s("lvasgn",f,e),e=b.$s("js_tmp",f),o=b.$s("send",e,"nil?"),i=l.$updated("send",[e,j].concat(c(k))),h=b.$s(g,i,p),b.$s("begin",n,b.$s("if",o,b.$s("nil"),h))})}(k[0],t),d(k[0],'HANDLERS',new Map([["lvasgn",o('LocalVariableHandler')],["ivasgn",o('InstanceVariableHandler')],["casgn",o('ConstantHandler')],["gvasgn",o('GlobalVariableHandler')],["cvasgn",o('ClassVariableHandler')],["send",o('SendHandler')],["csend",o('ConditionalSendHandler')]]).$freeze()),i(t,'$on_or_asgn',function(h){var b,f=this,d=a,g=a,e=a;return b=[].concat(c(h)),d=b[0]==null?a:b[0],g=b[1]==null?a:b[1],b,e=n(o('HANDLERS'),'fetch',[d.$type()],function a(){var b=a.$$s==null?this:a.$$s;return b.$error("cannot handle LHS type: "+d.$type())},{$$s:f}).$call(d,g,"or"),f.$process(e)}),i(t,'$on_and_asgn',function(h){var b,f=this,d=a,g=a,e=a;return b=[].concat(c(h)),d=b[0]==null?a:b[0],g=b[1]==null?a:b[1],b,e=n(o('HANDLERS'),'fetch',[d.$type()],function a(){var b=a.$$s==null?this:a.$$s;return b.$error("cannot handle LHS type: "+d.$type())},{$$s:f}).$call(d,g,"and"),f.$process(e)}),d(k[0],'ASSIGNMENT_STRING_NODE',t.$s("str","assignment")),i(t,'$on_defined?',function d(f){var b,j=d.$$p||a,g=this,h=a,i=a;return d.$$p=null,b=[].concat(c(f)),h=b[0]==null?a:b[0],i=b[1]==null?a:b[1],b,e(["or_asgn","and_asgn"]['$include?'](h.$type()))?o('ASSIGNMENT_STRING_NODE'):r(g,s(g,'on_defined?',d,!1,!0),'on_defined?',[f],null)})}(o[0],w('Base'),o)}(o[0],o)}(o[0],o)},Opal.modules["opal/rewriters/binary_operator_assignment"]=function(b){var k=b.module,i=b.klass,g=b.class_variable_set,e=b.defs,f=b.truthy,h=b.class_variable_get,p=b.rb_plus,c=b.const_set,j=b.lambda,d=b.to_a,m=b.slice,l=b.eqeq,t=b.send,n=b.def,q=b.send2,r=b.find_super,s=b.top,o=[],a=b.nil;return b.add_stubs('require,+,updated,[],==,type,new_temp,s,freeze,call,fetch,error,process'),s.$require("opal/rewriters/base"),function(s,u){var v=k(s,'Opal'),o=[v].concat(u);return function(s,u){var v=k(s,'Rewriters'),o=[v].concat(u),w=b.$r(o);return function(u,v,w){var s=i(u,v,'BinaryOperatorAssignment'),k=[s].concat(w),o=b.$r(k);return e(s,'$reset_tmp_counter!',function(){return g(k[0],'@@counter',0)}),e(s,'$new_temp',function(){var b,c=a;return g(k[0],'@@counter',f((b=k[0].$$cvars['@@counter'],b!=null)?'class variable':a)?f(c=h(k[0],'@@counter',!1))?c:0:0),g(k[0],'@@counter',p(h(k[0],'@@counter',!1),1)),"$binary_op_recvr_tmp_"+h(k[0],'@@counter',!1)}),c(k[0],'GET_SET',j(function(b,c){return b==null&&(b=a),c==null&&(c=a),j(function(f,e,g,h){var j=a,i=a;return f==null&&(f=a),e==null&&(e=a),g==null&&(g=a),h==null&&(h=a),j=e.$updated(b),i=f.$updated("send",[j,g,h]),e.$updated(c,[].concat(d(e)).concat([i]))})})),c(k[0],'LocalVariableHandler',o('GET_SET')['$[]']("lvar","lvasgn")),c(k[0],'InstanceVariableHandler',o('GET_SET')['$[]']("ivar","ivasgn")),c(k[0],'ConstantHandler',o('GET_SET')['$[]']("const","casgn")),c(k[0],'GlobalVariableHandler',o('GET_SET')['$[]']("gvar","gvasgn")),c(k[0],'ClassVariableHandler',o('GET_SET')['$[]']("cvar","cvasgn")),function(b,c){var g=i(b,c,'SendHandler');return e(g,'$call',function(o,g,t,s){var c,j=this,b=a,e=a,i=a,h=a,k=a,p=a,q=a,r=a,n=a;return c=[].concat(d(g)),b=c[0]==null?a:c[0],e=c[1]==null?a:c[1],i=m(c,2),c,f(b)&&l(b.$type(),"send")&&(h=j.$new_temp(),k=j.$s("lvasgn",h,b),b=j.$s("js_tmp",h)),p=""+e+"=",q=g.$updated("send",[b,e].concat(d(i))),r=o.$updated("send",[q,t,s]),n=g.$updated("send",[b,p].concat(d(i)).concat([r])),f(k)?o.$updated("begin",[k,n]):n})}(k[0],s),function(b,c){var f=i(b,c,'ConditionalSendHandler');return e(f,'$call',function(q,j,p,o){var b,c=this,e=a,k=a,l=a,f=a,h=a,i=a,n=a,g=a;return b=[].concat(d(j)),e=b[0]==null?a:b[0],k=b[1]==null?a:b[1],l=m(b,2),b,f=c.$new_temp(),h=c.$s("lvasgn",f,e),e=c.$s("js_tmp",f),i=c.$s("send",e,"nil?"),n=j.$updated("send",[e,k].concat(d(l))),g=q.$updated("op_asgn",[n,p,o]),c.$s("begin",h,c.$s("if",i,c.$s("nil"),g))})}(k[0],s),c(k[0],'HANDLERS',new Map([["lvasgn",o('LocalVariableHandler')],["ivasgn",o('InstanceVariableHandler')],["casgn",o('ConstantHandler')],["gvasgn",o('GlobalVariableHandler')],["cvasgn",o('ClassVariableHandler')],["send",o('SendHandler')],["csend",o('ConditionalSendHandler')]]).$freeze()),n(s,'$on_op_asgn',function(f){var b,g=this,c=a,h=a,e=a,i=a;return b=[].concat(d(f)),c=b[0]==null?a:b[0],h=b[1]==null?a:b[1],e=b[2]==null?a:b[2],b,i=t(o('HANDLERS'),'fetch',[c.$type()],function a(){var b=a.$$s==null?this:a.$$s;return b.$error("cannot handle LHS type: "+c.$type())},{$$s:g}).$call(f,c,h,e),g.$process(i)}),c(k[0],'ASSIGNMENT_STRING_NODE',s.$s("str","assignment")),n(s,'$on_defined?',function c(e){var b,i=c.$$p||a,f=this,g=a,h=a;return c.$$p=null,b=[].concat(d(e)),g=b[0]==null?a:b[0],h=b[1]==null?a:b[1],b,l(g.$type(),"op_asgn")?o('ASSIGNMENT_STRING_NODE'):q(f,r(f,'on_defined?',c,!1,!0),'on_defined?',[e],null)})}(o[0],w('Base'),o)}(o[0],o)}(o[0],o)},Opal.modules["opal/rewriters/hashes/key_duplicates_rewriter"]=function(b){var e=b.module,j=b.klass,c=b.def,h=b.send2,g=b.find_super,d=b.to_a,f=b.truthy,i=b.eqeq,n=b.Opal,k=b.top,l=[],a=b.nil,m=b.$$$;return b.add_stubs('require,new,include?,type,<<,==,process_regular_node,updated,inspect,warn'),k.$require("opal/rewriters/base"),k.$require("set"),function(l,o){var p=e(l,'Opal'),k=[p].concat(o);return function(l,o){var p=e(l,'Rewriters'),k=[p].concat(o);return function(l,o){var p=e(l,'Hashes'),k=[p].concat(o);return function(m,n,o){var e=j(m,n,'KeyDuplicatesRewriter'),k=[e].concat(o),l=b.$r(k),p=e.$$prototype;return p.keys=a,c(e,'$initialize',function(){var a=this;return a.keys=l('UniqKeysSet').$new()}),c(e,'$on_hash',function d(f){var c,i=d.$$p||a,b=this,e=a;return d.$$p=null,function(){try{return c=[b.keys,l('UniqKeysSet').$new()],e=c[0],b.keys=c[1],c,h(b,g(b,'on_hash',d,!1,!0),'on_hash',[f],null)}finally{b.keys=e}}()}),c(e,'$on_pair',function c(j){var b,l=c.$$p||a,e=this,i=a,k=a;return c.$$p=null,b=[].concat(d(j)),i=b[0]==null?a:b[0],k=b[1]==null?a:b[1],b,f(["str","sym"]['$include?'](i.$type()))&&e.keys['$<<'](i),h(e,g(e,'on_pair',c,!1,!0),'on_pair',[j],null)}),c(e,'$on_kwsplat',function(e){var b,f=this,c=a,g=a;return b=[].concat(d(e)),c=b[0]==null?a:b[0],g=b[1]==null?a:b[1],b,i(c.$type(),"hash")&&(c=f.$process_regular_node(c)),e.$updated(a,[c])}),function(h,k,l){var e=j(h,k,'UniqKeysSet'),m=[e].concat(l),g=b.$r(m),n=e.$$prototype;return n.set=a,c(e,'$initialize',function(){var a=this;return a.set=g('Set').$new()}),c(e,'$<<',function(e){var b,h=this,c=a,j=a;return f(h.set['$include?'](e))?(b=[].concat(d(e)),c=b[0]==null?a:b[0],j=b[1]==null?a:b[1],b,c=i(e.$type(),"str")?c.$inspect():":"+c,g('Kernel').$warn("warning: key "+c+" is duplicated and overwritten")):h.set['$<<'](e)})}(k[0],null,k)}(k[0],m(m(n,'Rewriters'),'Base'),k)}(k[0],k)}(k[0],k)}(l[0],l)},Opal.modules["opal/rewriters/dump_args"]=function(b){var g=b.module,j=b.klass,f=b.send2,c=b.find_super,d=b.to_a,e=b.def,i=b.top,h=[],a=b.nil;return b.add_stubs('require,updated'),i.$require("opal/rewriters/base"),function(i,k){var l=g(i,'Opal'),h=[l].concat(k);return function(i,k){var l=g(i,'Rewriters'),h=[l].concat(k),m=b.$r(h);return function(g,h){var b=j(g,h,'DumpArgs');return e(b,'$on_def',function g(e){var b,l=g.$$p||a,h=this,j=a,i=a,k=a;return g.$$p=null,e=f(h,c(h,'on_def',g,!1,!0),'on_def',[e],null),b=[].concat(d(e)),j=b[0]==null?a:b[0],i=b[1]==null?a:b[1],k=b[2]==null?a:b[2],b,e.$updated(a,a,new Map([["meta",new Map([["original_args",i]])]]))}),e(b,'$on_defs',function g(e){var b,m=g.$$p||a,h=this,j=a,k=a,i=a,l=a;return g.$$p=null,e=f(h,c(h,'on_defs',g,!1,!0),'on_defs',[e],null),b=[].concat(d(e)),j=b[0]==null?a:b[0],k=b[1]==null?a:b[1],i=b[2]==null?a:b[2],l=b[3]==null?a:b[3],b,e.$updated(a,a,new Map([["meta",new Map([["original_args",i]])]]))}),e(b,'$on_iter',function g(e){var b,k=g.$$p||a,h=this,i=a,j=a;return g.$$p=null,e=f(h,c(h,'on_iter',g,!1,!0),'on_iter',[e],null),b=[].concat(d(e)),i=b[0]==null?a:b[0],j=b[1]==null?a:b[1],b,e.$updated(a,a,new Map([["meta",new Map([["original_args",i]])]]))})}(h[0],m('Base'))}(h[0],h)}(h[0],h)},Opal.modules["opal/rewriters/deduplicate_arg_name"]=function(b){var g=b.module,h=b.klass,c=b.send,i=b.send2,m=b.find_super,d=b.def,f=b.truthy,j=b.to_ary,k=b.rb_plus,l=b.rb_gt,e=[],a=b.nil;return b.add_stubs('new,map,children,rename_arg,updated,type,[],unique_name,[]=,+,>'),function(n,o){var p=g(n,'Opal'),e=[p].concat(o);return function(n,o){var p=g(n,'Rewriters'),e=[p].concat(o),q=b.$r(e);return function(g,n,o){var e=h(g,n,'DeduplicateArgName'),p=[e].concat(o),q=b.$r(p),r=e.$$prototype;return r.arg_name_count=a,d(e,'$on_args',function d(e){var g=d.$$p||a,b=this,f=a;return d.$$p=null,b.arg_name_count=q('Hash').$new(0),f=c(e.$children(),'map',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),d.$rename_arg(b)},{$$s:b}),i(b,m(b,'on_args',d,!1,!0),'on_args',[e.$updated(a,f)],null)}),d(e,'$rename_arg',function(b){var d,g,h=this,e=a,i=a,k=a;switch(b.$type().valueOf()){case"arg":case"restarg":case"kwarg":case"kwrestarg":case"blockarg":return e=b.$children()['$[]'](0),f(e)?b.$updated(a,[h.$unique_name(e)]):b;break;case"optarg":case"kwoptarg":return g=b.$children(),d=j(g),e=d[0]==null?a:d[0],i=d[1]==null?a:d[1],g,b.$updated(a,[h.$unique_name(e),i]);case"mlhs":return k=c(b.$children(),'map',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),d.$rename_arg(b)},{$$s:h}),b.$updated(a,k);default:return b}}),d(e,'$unique_name',function(b){var d,g=this,e=a;return e=(d=[b,k(g.arg_name_count['$[]'](b),1)],c(g.arg_name_count,'[]=',d),d[d.length-1]),f(l(e,1))?""+b+"_$"+e:b})}(e[0],q('Base'),e)}(e[0],e)}(e[0],e)},Opal.modules["opal/rewriters/mlhs_args"]=function(b){var i=b.module,h=b.klass,f=b.send2,g=b.find_super,e=b.to_a,d=b.truthy,c=b.def,o=b.assign_ivar_val,m=b.rb_plus,j=b.send,k=b.eqeq,n=b.top,l=[],a=b.nil;return b.add_stubs('require,new,updated,rewritten,initialization,s,prepend_to_body,attr_reader,split!,+,each,children,==,type,new_mlhs_tmp,process,<<,length,[],empty?'),n.$require("opal/rewriters/base"),function(n,p){var q=i(n,'Opal'),l=[q].concat(p);return function(n,p){var q=i(n,'Rewriters'),l=[q].concat(p),r=b.$r(l);return function(p,q,r){var l=h(p,q,'MlhsArgs'),n=[l].concat(r),i=b.$r(n);return c(l,'$on_def',function m(k){var b,p=m.$$p||a,j=this,o=a,h=a,c=a,l=a,n=a;return m.$$p=null,k=f(j,g(j,'on_def',m,!1,!0),'on_def',[k],null),b=[].concat(e(k)),o=b[0]==null?a:b[0],h=b[1]==null?a:b[1],c=b[2]==null?a:b[2],b,l=i('Arguments').$new(h),h=h.$updated(a,l.$rewritten()),d(l.$initialization())&&(c=d(n=c)?n:j.$s("nil"),c=j.$prepend_to_body(c,l.$initialization())),k.$updated(a,[o,h,c])}),c(l,'$on_defs',function m(l){var b,q=m.$$p||a,k=this,n=a,o=a,h=a,c=a,j=a,p=a;return m.$$p=null,l=f(k,g(k,'on_defs',m,!1,!0),'on_defs',[l],null),b=[].concat(e(l)),n=b[0]==null?a:b[0],o=b[1]==null?a:b[1],h=b[2]==null?a:b[2],c=b[3]==null?a:b[3],b,j=i('Arguments').$new(h),h=h.$updated(a,j.$rewritten()),d(j.$initialization())&&(c=d(p=c)?p:k.$s("nil"),c=k.$prepend_to_body(c,j.$initialization())),l.$updated(a,[n,o,h,c])}),c(l,'$on_iter',function m(j){var c,o=m.$$p||a,k=this,h=a,b=a,l=a,n=a;return m.$$p=null,j=f(k,g(k,'on_iter',m,!1,!0),'on_iter',[j],null),c=[].concat(e(j)),h=c[0]==null?a:c[0],b=c[1]==null?a:c[1],c,l=i('Arguments').$new(h),h=h.$updated(a,l.$rewritten()),d(l.$initialization())&&(b=d(n=b)?n:k.$s("nil"),b=k.$prepend_to_body(b,l.$initialization())),j.$updated(a,[h,b])}),function(q,i,l){var f=h(q,i,'Arguments'),n=[f].concat(l),p=b.$r(n),g=f.$$prototype;return g.counter=g.args=g.initialization=a,f.$attr_reader("rewritten","initialization"),c(f,'$initialize',function(b){var a=this;return a.args=b,a.rewritten=[],a.initialization=[],a.rewriter=p('MlhsRewriter').$new(),a['$split!']()}),c(f,'$reset_tmp_counter!',o("counter",0)),c(f,'$new_mlhs_tmp',function(){var b=this,c=a;return b.counter=d(c=b.counter)?c:0,b.counter=m(b.counter,1),"$mlhs_tmp"+b.counter}),c(f,'$split!',function(){var b=this;return j(b.args.$children(),'each',[],function e(c){var b=e.$$s==null?this:e.$$s,d=a,f=a,g=a;return b.rewriter==null&&(b.rewriter=a),b.initialization==null&&(b.initialization=a),b.rewritten==null&&(b.rewritten=a),c==null&&(c=a),k(c.$type(),"mlhs")?(d=b.$new_mlhs_tmp(),f=b.$s("lvar",d),g=b.rewriter.$process(c),b.initialization['$<<'](b.$s("masgn",g,f)),b.rewritten['$<<'](b.$s("arg",d).$updated(a,a,new Map([["meta",new Map([["arg_name",d]])]])))):b.rewritten['$<<'](c)},{$$s:b}),k(b.initialization.$length(),1)?b.initialization=b.initialization['$[]'](0):d(b.initialization['$empty?']())?b.initialization=a:b.initialization=j(b,'s',["begin"].concat(e(b.initialization)))})}(n[0],i('Base'),n),function(e,f){var b=h(e,f,'MlhsRewriter');return c(b,'$on_arg',function(a){return a.$updated("lvasgn")}),c(b,'$on_restarg',function(b){var c=this,e=a;return e=b.$children()['$[]'](0),d(e)?c.$s("splat",b.$updated("lvasgn")):c.$s("splat")})}(n[0],i('Base'))}(l[0],r('Base'),l)}(l[0],l)}(l[0],l)},Opal.modules["opal/rewriters/arguments"]=function(c){var f=c.module,g=c.klass,h=c.send,b=c.truthy,d=c.def,e=[],a=c.nil;return c.add_stubs('attr_reader,each,type,<<,any?,raise,!,nil?,has_any_kwargs?,can_inline_kwargs?,empty?'),function(e,i){var j=f(e,'Opal'),c=[j].concat(i);return function(c,e){var i=f(c,'Rewriters'),j=[i].concat(e);return function(f,i){var c=g(f,i,'Arguments'),e=c.$$prototype;return e.restarg=e.postargs=e.kwargs=e.kwoptargs=e.kwrestarg=e.optargs=a,c.$attr_reader("args","optargs","restarg","postargs","kwargs","kwoptargs","kwrestarg","kwnilarg","shadowargs","blockarg"),d(c,'$initialize',function(d){var c=this;return c.args=[],c.optargs=[],c.restarg=a,c.postargs=[],c.kwargs=[],c.kwoptargs=[],c.kwrestarg=a,c.kwnilarg=!1,c.shadowargs=[],c.blockarg=a,h(d,'each',[],function e(d){var c=e.$$s==null?this:e.$$s;switch(c.optargs==null&&(c.optargs=a),c.restarg==null&&(c.restarg=a),c.postargs==null&&(c.postargs=a),c.args==null&&(c.args=a),c.kwargs==null&&(c.kwargs=a),c.kwoptargs==null&&(c.kwoptargs=a),c.shadowargs==null&&(c.shadowargs=a),d==null&&(d=a),d.$type().valueOf()){case"arg":case"mlhs":return(b(c.restarg)||b(c.optargs['$any?']())?c.postargs:c.args)['$<<'](d);case"optarg":return c.optargs['$<<'](d);case"restarg":return c.restarg=d;case"kwarg":return c.kwargs['$<<'](d);case"kwoptarg":return c.kwoptargs['$<<'](d);case"kwnilarg":return c.kwnilarg=!0;case"kwrestarg":return c.kwrestarg=d;case"shadowarg":return c.shadowargs['$<<'](d);case"blockarg":return c.blockarg=d;default:return c.$raise("Unsupported arg type "+d.$type())}},{$$s:c})}),d(c,'$has_post_args?',function(){var c=this,e=a,d=a;return b(e=b(d=c.restarg['$nil?']()['$!']())?d:c.postargs['$any?']())?e:b(d=c['$has_any_kwargs?']())?c['$can_inline_kwargs?']()['$!']():d}),d(c,'$has_any_kwargs?',function(){var c=this,d=a,e=a;return b(d=b(e=c.kwargs['$any?']())?e:c.kwoptargs['$any?']())?d:c.kwrestarg['$nil?']()['$!']()}),d(c,'$can_inline_kwargs?',function(){var c=this,d=a,e=a;return b(d=b(e=c.optargs['$empty?']())?c.restarg['$nil?']():e)?c.postargs['$empty?']():d})}(j[0],null)}(c[0],c)}(e[0],e)},Opal.modules["opal/rewriters/inline_args"]=function(b){var j=b.module,k=b.klass,h=b.send2,g=b.find_super,f=b.to_a,d=b.truthy,c=b.def,q=b.const_set,r=b.ensure_kwargs,p=b.get_kwarg,e=b.send,o=b.eqeq,n=b.Opal,i=b.top,l=[],a=b.nil,m=b.$$$;return b.add_stubs('require,s,new,updated,inline,prepend_to_body,initialization,attr_reader,freeze,children,each,send,any?,blockarg,<<,shadowargs,args,==,has_post_args?,length,has_any_kwargs?,can_inline_kwargs?,kwargs,kwoptargs,kwrestarg,postargs,optargs,args_to_keep,restarg,[]'),i.$require("opal/rewriters/base"),i.$require("opal/rewriters/arguments"),function(l,s){var t=j(l,'Opal'),i=[t].concat(s);return function(l,s){var t=j(l,'Rewriters'),i=[t].concat(s),u=b.$r(i);return function(s,t,u){var i=k(s,t,'InlineArgs'),j=[i].concat(u),l=b.$r(j);return c(i,'$on_def',function j(i){var b,q=j.$$p||a,e=this,n=a,m=a,c=a,o=a,k=a,p=a;return j.$$p=null,i=h(e,g(e,'on_def',j,!1,!0),'on_def',[i],null),b=[].concat(f(i)),n=b[0]==null?a:b[0],m=b[1]==null?a:b[1],c=b[2]==null?a:b[2],b,c=d(o=c)?o:e.$s("nil"),k=l('Initializer').$new(m,new Map([["type","def"]])),p=m.$updated(a,k.$inline()),c=e.$prepend_to_body(c,k.$initialization()),i.$updated(a,[n,p,c])}),c(i,'$on_defs',function j(e){var b,r=j.$$p||a,i=this,o=a,p=a,k=a,c=a,n=a,m=a,q=a;return j.$$p=null,e=h(i,g(i,'on_defs',j,!1,!0),'on_defs',[e],null),b=[].concat(f(e)),o=b[0]==null?a:b[0],p=b[1]==null?a:b[1],k=b[2]==null?a:b[2],c=b[3]==null?a:b[3],b,c=d(n=c)?n:i.$s("nil"),m=l('Initializer').$new(k,new Map([["type","defs"]])),q=k.$updated(a,m.$inline()),c=i.$prepend_to_body(c,m.$initialization()),e.$updated(a,[o,p,q,c])}),c(i,'$on_iter',function k(e){var c,p=k.$$p||a,i=this,j=a,b=a,o=a,m=a,n=a;return k.$$p=null,e=h(i,g(i,'on_iter',k,!1,!0),'on_iter',[e],null),c=[].concat(f(e)),j=c[0]==null?a:c[0],b=c[1]==null?a:c[1],c,b=d(o=b)?o:i.$s("nil"),m=l('Initializer').$new(j,new Map([["type","iter"]])),n=j.$updated(a,m.$inline()),b=i.$prepend_to_body(b,m.$initialization()),e.$updated(a,[n,b])}),function(n,l,m){var g=k(n,l,'Initializer'),i=[g].concat(m),j=b.$r(i),h=g.$$prototype;return h.initialization=h.args=h.inline=a,g.$attr_reader("inline","initialization"),q(i[0],'STEPS',["extract_blockarg","initialize_shadowargs","extract_args","prepare_post_args","prepare_kwargs","extract_optargs","extract_restarg","extract_post_args","extract_kwargs","extract_kwoptargs","extract_kwrestarg"].$freeze()),c(g,'$initialize',function(h,c){var g,b=this;return c=r(c),g=p(c,"type"),b.args=j('Arguments').$new(h.$children()),b.inline=[],b.initialization=[],b.type=g,e(j('STEPS'),'each',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),d.$send(b)},{$$s:b}),d(b.initialization['$any?']())?b.initialization=e(b,'s',["begin"].concat(f(b.initialization))):b.initialization=a}),c(g,'$extract_blockarg',function(){var b=this,c=a;return d(c=b.args.$blockarg())?b.initialization['$<<'](c.$updated("extract_blockarg")):a}),c(g,'$initialize_shadowargs',function(){var b=this;return e(b.args.$shadowargs(),'each',[],function d(b){var c=d.$$s==null?this:d.$$s;return c.initialization==null&&(c.initialization=a),b==null&&(b=a),c.initialization['$<<'](b.$updated("initialize_shadowarg"))},{$$s:b})}),c(g,'$extract_args',function(){var b=this;return e(b.args.$args(),'each',[],function d(c){var b=d.$$s==null?this:d.$$s;return b.type==null&&(b.type=a),b.initialization==null&&(b.initialization=a),b.inline==null&&(b.inline=a),c==null&&(c=a),o(b.type,"iter")&&b.initialization['$<<'](c.$updated("initialize_iter_arg")),b.inline['$<<'](c)},{$$s:b})}),c(g,'$prepare_post_args',function(){var b=this;return d(b.args['$has_post_args?']())?b.initialization['$<<'](b.$s("prepare_post_args",b.args.$args().$length())):a}),c(g,'$prepare_kwargs',function(){var b=this;return d(b.args['$has_any_kwargs?']())?(d(b.args['$can_inline_kwargs?']())?b.inline['$<<'](b.$s("arg","$kwargs")):(b.initialization['$<<'](b.$s("extract_kwargs")),b.inline['$<<'](b.$s("fake_arg"))),b.initialization['$<<'](b.$s("ensure_kwargs_are_kwargs"))):a}),c(g,'$extract_kwargs',function(){var b=this;return e(b.args.$kwargs(),'each',[],function d(b){var c=d.$$s==null?this:d.$$s;return c.initialization==null&&(c.initialization=a),b==null&&(b=a),c.initialization['$<<'](b.$updated("extract_kwarg"))},{$$s:b})}),c(g,'$extract_kwoptargs',function(){var b=this;return e(b.args.$kwoptargs(),'each',[],function d(b){var c=d.$$s==null?this:d.$$s;return c.initialization==null&&(c.initialization=a),b==null&&(b=a),c.initialization['$<<'](b.$updated("extract_kwoptarg"))},{$$s:b})}),c(g,'$extract_kwrestarg',function(){var b=this,c=a;return d(c=b.args.$kwrestarg())?b.initialization['$<<'](c.$updated("extract_kwrestarg")):a}),c(g,'$extract_post_args',function(){var b=this;return e(b.args.$postargs(),'each',[],function d(c){var b=d.$$s==null?this:d.$$s;return b.initialization==null&&(b.initialization=a),b.inline==null&&(b.inline=a),c==null&&(c=a),b.initialization['$<<'](c.$updated("extract_post_arg")),b.inline['$<<'](b.$s("fake_arg"))},{$$s:b})}),c(g,'$extract_optargs',function(){var b=this,c=a;return c=b.args['$has_post_args?'](),e(b.args.$optargs(),'each',[],function h(e){var g,b=h.$$s==null?this:h.$$s,i=a,j=a;return b.initialization==null&&(b.initialization=a),b.inline==null&&(b.inline=a),e==null&&(e=a),d(c)?(g=[].concat(f(e)),i=g[0]==null?a:g[0],j=g[1]==null?a:g[1],g,b.initialization['$<<'](e.$updated("extract_post_optarg",[i,j,b.$args_to_keep()])),b.inline['$<<'](b.$s("fake_arg"))):(b.inline['$<<'](e.$updated("arg")),b.initialization['$<<'](e.$updated("extract_optarg")))},{$$s:b})}),c(g,'$extract_restarg',function(){var b=this,c=a,e=a;return d(c=b.args.$restarg())?(e=c.$children()['$[]'](0),b.initialization['$<<'](c.$updated("extract_restarg",[e,b.$args_to_keep()])),b.inline['$<<'](b.$s("fake_arg"))):a}),c(g,'$args_to_keep',function(){var a=this;return a.args.$postargs().$length()})}(j[0],m(m(n,'Rewriters'),'Base'),j)}(i[0],u('Base'),i)}(i[0],i)}(l[0],l)},Opal.modules["opal/rewriters/numblocks"]=function(a){var c=a.module,i=a.klass,j=a.to_ary,e=a.send,g=a.to_a,f=a.def,h=a.top,d=[],b=a.nil;return a.add_stubs('require,children,s,gen_args,map'),h.$require("opal/rewriters/base"),function(h,k){var l=c(h,'Opal'),d=[l].concat(k);return function(h,k){var l=c(h,'Rewriters'),d=[l].concat(k),m=a.$r(d);return function(d,h){var c=i(d,h,'Numblocks');return f(c,'$on_numblock',function(k){var a,c,d=this,i=b,f=b,h=b;return c=k.$children(),a=j(c),i=a[0]==null?b:a[0],f=a[1]==null?b:a[1],h=a[2]==null?b:a[2],c,d.$s("block",i,e(d,'s',["args"].concat(g(d.$gen_args(f)))),h)}),f(c,'$gen_args',function(c){var d=this;return e(a.Range.$new(1,c,!1),'map',[],function c(a){var d=c.$$s==null?this:c.$$s;return a==null&&(a=b),d.$s("arg","_"+a)},{$$s:d})})}(d[0],m('Base'))}(d[0],d)}(d[0],d)},Opal.modules["opal/rewriters/returnable_logic"]=function(b){var j=b.module,q=b.klass,c=b.truthy,p=b.rb_plus,d=b.def,n=b.rb_minus,m=b.assign_ivar_val,e=b.to_a,l=b.send2,k=b.find_super,f=b.slice,i=b.send,h=b.eqeq,o=b.top,g=[],a=b.nil;return b.add_stubs('require,+,-,children,check_control_flow!,[]=,meta,s,next_tmp,build_if_from_when,free_tmp,[],process,updated,==,count,first,delete,private,type,error,build_rule_from_parts,empty?'),o.$require("opal/rewriters/base"),function(o,r){var s=j(o,'Opal'),g=[s].concat(r);return function(o,r){var s=j(o,'Rewriters'),g=[s].concat(r),t=b.$r(g);return function(g,j){var b=q(g,j,'ReturnableLogic'),o=b.$$prototype;return o.counter=a,d(b,'$next_tmp',function(){var b=this,d=a;return b.counter=c(d=b.counter)?d:0,b.counter=p(b.counter,1),"$ret_or_"+b.counter}),d(b,'$free_tmp',function(){var a=this;return a.counter=n(a.counter,1)}),d(b,'$reset_tmp_counter!',m("counter",a)),d(b,'$on_if',function f(h){var b,i=f.$$p||a,g=this,d=a;return f.$$p=null,b=[].concat(e(h.$children())),d=b[0]==null?a:b[0],b,g['$check_control_flow!'](d),c(d)&&d.$meta()['$[]=']("if_test",!0),l(g,k(g,'on_if',f,!1,!0),'on_if',[h],i)}),d(b,'$on_case',function(k){var b,d,h=this,i=a,j=a,g=a,l=a,m=a,n=a;return b=[].concat(e(k.$children())),i=b[0]==null?a:b[0],d=b.length-1,d=d<1?1:d,j=f(b,1,d),g=b[d]==null?a:b[d],b,g=c(l=g)?l:h.$s("nil"),c(i)&&(m=h.$next_tmp()),n=h.$build_if_from_when(k,i,m,j,g),c(i)&&h.$free_tmp(),n}),d(b,'$on_or',function(g){var b,d=this,f=a,h=a,j=a,k=a;return b=[].concat(e(g.$children())),f=b[0]==null?a:b[0],h=b[1]==null?a:b[1],b,d['$check_control_flow!'](f),c(g.$meta()['$[]']("if_test"))?(f.$meta()['$[]=']("if_test",(b=["if_test",!0],i(h.$meta(),'[]=',b),b[b.length-1])),j=d.$process(g.$updated("if",[f,d.$s("true"),h]))):(k=d.$next_tmp(),j=d.$process(g.$updated("if",[d.$s("lvasgn",k,f),d.$s("js_tmp",k),h])),d.$free_tmp()),j}),d(b,'$on_and',function(g){var b,d=this,f=a,h=a,j=a,k=a;return b=[].concat(e(g.$children())),f=b[0]==null?a:b[0],h=b[1]==null?a:b[1],b,d['$check_control_flow!'](f),c(g.$meta()['$[]']("if_test"))?(f.$meta()['$[]=']("if_test",(b=["if_test",!0],i(h.$meta(),'[]=',b),b[b.length-1])),j=d.$process(g.$updated("if",[f,h,d.$s("false")]))):(k=d.$next_tmp(),j=d.$process(g.$updated("if",[d.$s("lvasgn",k,f),h,d.$s("js_tmp",k)])),d.$free_tmp()),j}),d(b,'$on_begin',function d(b){var f=d.$$p||a,e=this;return d.$$p=null,c(b.$meta()['$[]']("if_test"))&&h(b.$children().$count(),1)&&b.$children().$first().$meta()['$[]=']("if_test",!0),b.$meta().$delete("if_test"),l(e,k(e,'on_begin',d,!1,!0),'on_begin',[b],f)}),b.$private(),d(b,'$check_control_flow!',function(b){var c=this;switch(b.$type().valueOf()){case"break":case"next":case"redo":case"retry":case"return":return c.$error("void value expression");default:return a}}),d(b,'$build_if_from_when',function(q,p,l,o,k){var b,d,g=this,h=a,i=a,m=a,n=a,j=a;return b=[].concat(e(o)),h=b[0]==null?a:b[0],i=f(b,1),b,b=[].concat(e(h.$children())),d=b.length-1,d=d<0?0:d,m=f(b,0,d),n=b[d]==null?a:b[d],b,j=g.$build_rule_from_parts(q,p,l,m),h.$updated("if",[j,g.$process(n),c(i['$empty?']())?g.$process(k):g.$build_if_from_when(a,a,l,i,k)])}),d(b,'$build_rule_from_parts',function(m,j,d,q){var g,b=this,i=a,n=a,o=a,p=a,l=a,k=a;return j=c(m)&&c(d)?m.$updated("lvasgn",[d,b.$process(j)]):b.$s("js_tmp",d),g=[].concat(e(q)),i=g[0]==null?a:g[0],n=f(g,1),g,o=h(i.$type(),"splat")?(p=i.$children().$first(),l=b.$next_tmp(),k=b.$s("send",b.$process(p),"any?",b.$s("iter",b.$s("args",b.$s("arg",l)),b.$build_rule_from_parts(a,a,d,[b.$s("lvar",l)]))),c(m)&&c(d)?b.$s("begin",j,k):k):c(d)?b.$s("send",b.$process(i),"===",j):b.$process(i),c(n['$empty?']())?o:b.$s("if",o,b.$s("true"),b.$build_rule_from_parts(a,a,d,n))})}(g[0],t('Base'))}(g[0],g)}(g[0],g)},Opal.modules["opal/rewriters/forward_args"]=function(a){var h=a.module,o=a.klass,c=a.def,f=a.not,e=a.send2,d=a.find_super,g=a.eqeq,i=a.truthy,j=a.range,k=a.to_a,n=a.neqeq,m=a.top,l=[],b=a.nil;return a.add_stubs('require,process,s,!,first,children,updated,==,type,last,[],!=,class'),m.$require("opal/rewriters/base"),function(m,p){var q=h(m,'Opal'),l=[q].concat(p);return function(m,p){var q=h(m,'Rewriters'),l=[q].concat(p),r=a.$r(l);return function(l,m,p){var h=o(l,m,'ForwardArgs'),q=[h].concat(p),r=a.$r(q);return c(h,'$on_forward_args',function(c){var a=this;return a.$process(a.$s("args",a.$s("forward_arg","$")))}),c(h,'$on_forwarded_restarg',function(c){var a=this;return a.$process(a.$s("splat",a.$s("lvar","$fwd_rest")))}),c(h,'$on_forwarded_kwrestarg',function(c){var a=this;return a.$process(a.$s("kwsplat",a.$s("lvar","$fwd_kwrest")))}),c(h,'$on_block_pass',function c(g){var h=c.$$p||b,a=this;return c.$$p=null,f(g.$children().$first())?a.$process(g.$updated(b,[a.$s("lvar","$fwd_block")])):e(a,d(a,'on_block_pass',c,!1,!0),'on_block_pass',[g],h)}),c(h,'$on_args',function f(c){var l=f.$$p||b,a=this,h=b;return f.$$p=null,i(c.$children().$last())&&g(c.$children().$last().$type(),"forward_arg")?(h=c.$children()['$[]'](j(0,-2,!1)),e(a,d(a,'on_args',f,!1,!0),'on_args',[c.$updated(b,[].concat(k(h)).concat([a.$s("restarg","$fwd_rest"),a.$s("blockarg","$fwd_block")]))],null)):e(a,d(a,'on_args',f,!1,!0),'on_args',[c],l)}),c(h,'$on_restarg',function a(c){var h=a.$$p||b,g=this;return a.$$p=null,f(c.$children().$first())?c.$updated(b,["$fwd_rest"]):e(g,d(g,'on_restarg',a,!1,!0),'on_restarg',[c],h)}),c(h,'$on_kwrestarg',function a(c){var h=a.$$p||b,g=this;return a.$$p=null,f(c.$children().$first())?c.$updated(b,["$fwd_kwrest"]):e(g,d(g,'on_kwrestarg',a,!1,!0),'on_kwrestarg',[c],h)}),c(h,'$on_blockarg',function a(c){var h=a.$$p||b,g=this;return a.$$p=null,f(c.$children().$first())?c.$updated(b,["$fwd_block"]):e(g,d(g,'on_blockarg',a,!1,!0),'on_blockarg',[c],h)}),c(h,'$on_send',function f(c){var l=f.$$p||b,a=this,h=b;return f.$$p=null,i(c.$children().$last())&&n(c.$children().$last().$class(),r('Symbol'))&&g(c.$children().$last().$type(),"forwarded_args")?(h=c.$children()['$[]'](j(0,-2,!1)),e(a,d(a,'on_send',f,!1,!0),'on_send',[c.$updated(b,[].concat(k(h)).concat([a.$s("splat",a.$s("lvar","$fwd_rest")),a.$s("block_pass",a.$s("lvar","$fwd_block"))]))],null)):e(a,d(a,'on_send',f,!1,!0),'on_send',[c],l)})}(l[0],r('Base'),l)}(l[0],l)}(l[0],l)},Opal.modules["opal/rewriters/thrower_finder"]=function(d){var k=d.module,n=d.klass,b=d.def,e=d.send2,g=d.find_super,c=d.send,f=d.find_block_super,h=d.truthy,l=d.range,m=d.slice,j=[],a=d.nil,i=d.$$$;return d.add_stubs('tracking,pushing,to_proc,on_loop,detect,[],children,!=,type,private,each,push,map,last,[]=,meta'),function(o,p){var q=k(o,'Opal'),j=[q].concat(p);return function(o,p){var q=k(o,'Rewriters'),j=[q].concat(p),r=d.$r(j);return function(k,o){var i=n(k,o,'ThrowerFinder'),j=i.$$prototype;return j.break_stack=j.redo_stack=j.retry_stack=j.rescue_else_stack=a,b(i,'$initialize',function(){var a=this;return a.break_stack=[],a.redo_stack=[],a.retry_stack=[],a.rescue_else_stack=[]}),b(i,'$on_break',function c(d){var f=c.$$p||a,b=this;return c.$$p=null,b.$tracking("break",b.break_stack),e(b,g(b,'on_break',c,!1,!0),'on_break',[d],f)}),b(i,'$on_redo',function c(d){var f=c.$$p||a,b=this;return c.$$p=null,b.$tracking("redo",b.redo_stack),e(b,g(b,'on_redo',c,!1,!0),'on_redo',[d],f)}),b(i,'$on_retry',function c(d){var f=c.$$p||a,b=this;return c.$$p=null,b.$tracking("retry",b.retry_stack),e(b,g(b,'on_retry',c,!1,!0),'on_retry',[d],f)}),b(i,'$on_iter',function b(g){var h=b.$$p||a,d=this;return b.$$p=null,c(d,'pushing',[[d.break_stack,g]],function a(){var c=a.$$s==null?this:a.$$s;return e(c,f(c,'on_iter',a.$$def||b,!1,!0),'on_iter',[g],h)},{$$s:d})}),b(i,'$on_loop',function d(e){var f=d.$$p||a,b=this;return d.$$p=null,c(b,'pushing',[[b.redo_stack,e],[b.break_stack,a]],f.$to_proc())}),b(i,'$on_for',function b(d){var h=b.$$p||a,g=this;return b.$$p=null,c(g,'on_loop',[d],function a(){var c=a.$$s==null?this:a.$$s;return e(c,f(c,'on_for',a.$$def||b,!1,!0),'on_for',[d],h)},{$$s:g})}),b(i,'$on_while',function b(d){var h=b.$$p||a,g=this;return b.$$p=null,c(g,'on_loop',[d],function a(){var c=a.$$s==null?this:a.$$s;return e(c,f(c,'on_while',a.$$def||b,!1,!0),'on_while',[d],h)},{$$s:g})}),b(i,'$on_while_post',function b(d){var h=b.$$p||a,g=this;return b.$$p=null,c(g,'on_loop',[d],function a(){var c=a.$$s==null?this:a.$$s;return e(c,f(c,'on_while_post',a.$$def||b,!1,!0),'on_while_post',[d],h)},{$$s:g})}),b(i,'$on_until',function b(d){var h=b.$$p||a,g=this;return b.$$p=null,c(g,'on_loop',[d],function a(){var c=a.$$s==null?this:a.$$s;return e(c,f(c,'on_until',a.$$def||b,!1,!0),'on_until',[d],h)},{$$s:g})}),b(i,'$on_until_post',function b(d){var h=b.$$p||a,g=this;return b.$$p=null,c(g,'on_loop',[d],function a(){var c=a.$$s==null?this:a.$$s;return e(c,f(c,'on_until_post',a.$$def||b,!1,!0),'on_until_post',[d],h)},{$$s:g})}),b(i,'$on_defined',function d(g){var h=d.$$p||a,b=this;return d.$$p=null,c(b,'pushing',[[b.redo_stack,a],[b.break_stack,a],[b.retry_stack,a]],function a(){var b=a.$$s==null?this:a.$$s;return e(b,f(b,'on_defined',a.$$def||d,!1,!0),'on_defined',[g],h)},{$$s:b})}),b(i,'$on_ensure',function b(g){var h=b.$$p||a,d=this;return b.$$p=null,c(d,'pushing',[[d.rescue_else_stack,g]],function a(){var c=a.$$s==null?this:a.$$s;return e(c,f(c,'on_ensure',a.$$def||b,!1,!0),'on_ensure',[g],h)},{$$s:d})}),b(i,'$on_rescue',function d(g){var i=d.$$p||a,b=this;return d.$$p=null,h(c(g.$children()['$[]'](l(1,-1,!1)),'detect',[],function(b){var c=a;return b==null&&(b=a),h(c=b)?b.$type()['$!=']("resbody"):c}))&&b.$tracking("rescue_else",b.rescue_else_stack),c(b,'pushing',[[b.rescue_else_stack,a],[b.retry_stack,g]],function a(){var b=a.$$s==null?this:a.$$s;return e(b,f(b,'on_rescue',a.$$def||d,!1,!0),'on_rescue',[g],i)},{$$s:b})}),i.$private(),b(i,'$pushing',function e(i){var f,b,h=e.$$p||a,g=a;return e.$$p=null,f=m(arguments),b=f,c(b,'each',[],function(b,c){return b==null&&(b=a),c==null&&(c=a),b.$push(c)}),g=d.yieldX(h,[]),c(c(b,'map',[],"first".$to_proc()),'each',[],"pop".$to_proc()),g},-1),b(i,'$tracking',function(e,d){var b;return h(d.$last())?(b=["has_"+e,!0],c(d.$last().$meta(),'[]=',b),b[b.length-1]):a})}(j[0],i(i(r('Opal'),'Rewriters'),'Base'))}(j[0],j)}(j[0],j)},Opal.modules["opal/rewriter"]=function(c){var k=c.module,h=c.klass,f=c.truthy,e=c.def,l=c.ensure_kwargs,m=c.hash_get,n=c.eqeq,i=c.assign_ivar,j=c.send,b=c.top,g=[],d=c.nil,a=c.$$$;return c.add_stubs('require,<<,list,delete,==,!=,use,disabled?,class,each,rewritter_disabled?,new,process'),b.$require("opal/rewriters/opal_engine_check"),b.$require("opal/rewriters/targeted_patches"),b.$require("opal/rewriters/for_rewriter"),b.$require("opal/rewriters/js_reserved_words"),b.$require("opal/rewriters/block_to_iter"),b.$require("opal/rewriters/dot_js_syntax"),b.$require("opal/rewriters/pattern_matching"),b.$require("opal/rewriters/logical_operator_assignment"),b.$require("opal/rewriters/binary_operator_assignment"),b.$require("opal/rewriters/hashes/key_duplicates_rewriter"),b.$require("opal/rewriters/dump_args"),b.$require("opal/rewriters/deduplicate_arg_name"),b.$require("opal/rewriters/mlhs_args"),b.$require("opal/rewriters/inline_args"),b.$require("opal/rewriters/numblocks"),b.$require("opal/rewriters/returnable_logic"),b.$require("opal/rewriters/forward_args"),b.$require("opal/rewriters/thrower_finder"),function(g,o){var p=k(g,'Opal'),b=[p].concat(o);return function(o,p,q){var b=h(o,p,'Rewriter'),k=[b].concat(q),g=c.$r(k),r=b.$$prototype;return r.sexp=d,b.disabled=!1,function(a,b){return e(a,'$list',function(){var a=this,b=d;return a.list==null&&(a.list=d),a.list=f(b=a.list)?b:[]}),e(a,'$use',function(a){var b=this;return b.$list()['$<<'](a)}),e(a,'$delete',function(a){var b=this;return b.$list().$delete(a)}),e(a,'$disable',function g(e){var b,j=g.$$p||d,a=this,h=d,i=d;return a.disabled==null&&(a.disabled=d),g.$$p=null,e=l(e),b=m(e,"except"),b==null&&(b=d),function(){try{return h=a.disabled,a.disabled=f(i=b)?i:!0,c.yieldX(j,[])}finally{a.disabled=h}}()},-1),e(a,'$disabled?',function(){var a=this;return a.disabled==null&&(a.disabled=d),a.disabled['$=='](!0)}),e(a,'$rewritter_disabled?',function(b){var a=this;return!(a.disabled==null&&(a.disabled=d),n(a.disabled,!1))&&a.disabled['$!='](b)})}(c.get_singleton_class(b),k),b.$use(a(g('Rewriters'),'OpalEngineCheck')),b.$use(a(g('Rewriters'),'ForRewriter')),b.$use(a(g('Rewriters'),'Numblocks')),b.$use(a(g('Rewriters'),'ForwardArgs')),b.$use(a(g('Rewriters'),'BlockToIter')),b.$use(a(g('Rewriters'),'TargetedPatches')),b.$use(a(g('Rewriters'),'DotJsSyntax')),b.$use(a(g('Rewriters'),'PatternMatching')),b.$use(a(g('Rewriters'),'JsReservedWords')),b.$use(a(g('Rewriters'),'LogicalOperatorAssignment')),b.$use(a(g('Rewriters'),'BinaryOperatorAssignment')),b.$use(a(a(g('Rewriters'),'Hashes'),'KeyDuplicatesRewriter')),b.$use(a(g('Rewriters'),'ReturnableLogic')),b.$use(a(g('Rewriters'),'DeduplicateArgName')),b.$use(a(g('Rewriters'),'DumpArgs')),b.$use(a(g('Rewriters'),'MlhsArgs')),b.$use(a(g('Rewriters'),'InlineArgs')),b.$use(a(g('Rewriters'),'ThrowerFinder')),e(b,'$initialize',i("sexp")),e(b,'$process',function(){var a=this;return f(a.$class()['$disabled?']())?a.sexp:(j(a.$class().$list(),'each',[],function c(b){var a=c.$$s==null?this:c.$$s,e=d;return a.sexp==null&&(a.sexp=d),b==null&&(b=d),f(a.$class()['$rewritter_disabled?'](b))?d:(e=b.$new(),a.sexp=e.$process(a.sexp))},{$$s:a}),a.sexp)})}(b[0],null,b)}(g[0],g)},Opal.modules["opal/parser/source_buffer"]=function(a){var c=a.module,i=a.klass,j=a.truthy,f=a.send2,g=a.find_super,h=a.defs,e=[],d=a.nil,b=a.$$$;return function(k,l){var m=c(k,'Opal'),e=[m].concat(l);return function(k,l){var m=c(k,'Parser'),e=[m].concat(l);return function(e,k,l){var c=i(e,k,'SourceBuffer'),m=[c].concat(l),n=a.$r(m);return h(c,'$recognize_encoding',function a(h){var i=a.$$p||d,c=this,e=d;return a.$$p=null,j(e=f(c,g(c,'recognize_encoding',a,!1,!0),'recognize_encoding',[h],i))?e:b(n('Encoding'),'UTF_8')})}(e[0],b(b(b('Parser'),'Source'),'Buffer'),e)}(e[0],e)}(e[0],e)},Opal.modules["opal/parser/default_config"]=function(a){var e=a.module,g=a.send2,f=a.find_super,d=a.def,l=a.lambda,m=a.send,n=a.defs,j=a.slice,k=a.truthy,i=a.Opal,h=[],b=a.nil,c=a.$$$;return a.add_stubs('attr_accessor,all_errors_are_fatal=,diagnostics,ignore_warnings=,consumer=,diagnostics_consumer,extend,diagnostics_consumer=,new,rewrite,process,default_parser,default_parser_class'),function(o,p){var q=e(o,'Opal'),h=[q].concat(p);return function(p,q){var o=e(p,'Parser'),h=[o].concat(q);return function(q,r){var h=e(q,'DefaultConfig'),p=[h].concat(r),o=a.$r(p);return function(c){var a=e(c,'ClassMethods');return a.$attr_accessor("diagnostics_consumer"),d(a,'$default_parser',function c(){var e=c.$$p||b,d=this,a=b;return c.$$p=null,a=g(d,f(d,'default_parser',c,!1,!0),'default_parser',[],e),a.$diagnostics()['$all_errors_are_fatal='](!0),a.$diagnostics()['$ignore_warnings='](!1),a.$diagnostics()['$consumer='](d.$diagnostics_consumer()),a})}(p[0]),n(h,'$included',function(c){var a;return c.$extend(o('ClassMethods')),(a=[l(function(a){return a==null&&(a=b),b})],m(c,'diagnostics_consumer=',a),a[a.length-1])}),d(h,'$initialize',function a(i){var d,h,k=a.$$p||b,e=this;return a.$$p=null,d=j(arguments),h=d,g(e,f(e,'initialize',a,!1,!0),'initialize',[c(c(o('Opal'),'AST'),'Builder').$new()],null)},-1),d(h,'$parse',function a(l){var m=a.$$p||b,d=this,e=b,h=b,j=b;return a.$$p=null,e=k(h=g(d,f(d,'parse',a,!1,!0),'parse',[l],m))?h:c(c(i,'AST'),'Node').$new("nil"),j=c(c(i,'AST'),'Node').$new("top",[e]),d.$rewrite(j)}),d(h,'$rewrite',function(a){return c(o('Opal'),'Rewriter').$new(a).$process()})}(h[0],h),function(a,b){return a.$attr_accessor("default_parser_class"),d(a,'$default_parser',function(){var a=this;return a.$default_parser_class().$default_parser()})}(a.get_singleton_class(o),h)}(h[0],h)}(h[0],h)},Opal.modules["opal/parser/with_ruby_lexer"]=function(a){var e=a.klass,f=a.send,c=[],d=a.$r(c),g=a.nil,b=a.$$$;return a.add_stubs('include,default_parser_class='),function(k,h,i){var d=e(k,h,'WithRubyLexer'),j=[d].concat(i),g=a.$r(j),c;return d.$include(b(b(g('Opal'),'Parser'),'DefaultConfig')),(c=[d],f(b(g('Opal'),'Parser'),'default_parser_class=',c),c[c.length-1])}(b(d('Opal'),'Parser'),b(d('Parser'),'Ruby32'),c)},Opal.modules["opal/parser/patch"]=function(b){var h=b.klass,c=b.truthy,f=b.send,e=b.def,i=b.rb_plus,j=b.eqeq,s=b.not,r=b.rb_le,k=b.eqeqeq,m=b.rb_minus,q=b.rb_gt,t=b.rb_times,n=b.rb_divide,o=b.thrower,p=b.module,l=[],g=b.$r(l),a=b.nil,d=b.$$$;return b.add_stubs('source,unpack,source_buffer=,source_pts=,+,to_a,lines,end_with?,<<,map,chomp,=~,diagnostic,nil?,new,type,updated,dedent,first,children,==,empty?,interrupt,compact,encoding,split,force_encoding,length,map!,each_with_index,!,each_char,<=,===,-,>,*,/,[]=,[],join,respond_to?,send,value'),function(g,i){var d=h(g,i,'Lexer'),b=d.$$prototype;return b.source_buffer=b.strings=b.source_pts=a,e(d,'$source_buffer=',function(g){var d,b=this,e=a;return b.source_buffer=g,c(b.source_buffer)?(e=b.source_buffer.$source(),b.source_pts=e.$unpack("U*")):b.source_pts=a,c(b.strings)?(b.strings['$source_buffer='](b.source_buffer),(d=[b.source_pts],f(b.strings,'source_pts=',d),d[d.length-1])):a})}(g('Parser'),null),function(g,j){var d=h(g,j,'Literal'),f=d.$$prototype;return f.buffer_s=f.buffer=a,b.udef(d,'$extend_string'),e(d,'$extend_string',function(e,f,g){var b=this,d=a;return b.buffer_s=c(d=b.buffer_s)?d:f,b.buffer_e=g,b.buffer=i(b.buffer,e)})}(d(g('Parser'),'Lexer'),null),function(g,i){var b=h(g,i,'Buffer'),d=b.$$prototype;return d.lines=d.source=a,e(b,'$source_lines',function(){var b=this,e=a,d=a;return b.lines=c(e=b.lines)?e:(d=b.source.$lines().$to_a(),c(b.source['$end_with?']("\n"))?d['$<<'](""):a,f(d,'map',[],function(b){return b==null&&(b=a),b.$chomp("\n")}))})}(d(g('Parser'),'Source'),null),function(g,i){var b=h(g,i,'Default');return e(b,'$check_lvar_name',function(b,d){var e=this;return c(b['$=~'](new RegExp('^[\\p{Ll}|_][\\p{L}\\p{Nl}\\p{Nd}_]*$','u')))?a:e.$diagnostic("error","lvar_name",new Map([["name",b]]),d)}),e(b,'$dedent_string',function(b,g){var e=a,h=a;if(!c(g['$nil?']()))switch(e=d(d(d('Parser'),'Lexer'),'Dedenter').$new(g),b.$type().valueOf()){case"str":b=b.$updated(a,[e.$dedent(b.$children().$first())]);break;case"dstr":case"xstr":h=f(b.$children(),'map',[],function(b){if(b==null&&(b=a),j(b.$type(),"str")){if(b=b.$updated(a,[e.$dedent(b.$children().$first())]),c(b.$children().$first()['$empty?']()))return a}else e.$interrupt();return b}),b=b.$updated(a,h.$compact());break;default:a}return b})}(d(g('Parser'),'Builders'),null),function(p,u,v){var l=h(p,u,'Dedenter'),w=[l].concat(v),g=b.$r(w);return e(l,'$dedent',function(h){var p=this,l=a,e=a;return l=h.$encoding(),e=h.$force_encoding(d(g('Encoding'),'BINARY')).$split("\\\n"),j(e.$length(),1)?e=[h.$force_encoding(l)]:f(e,'map!',[],function(b){return b==null&&(b=a),b.$force_encoding(l)}),f(e,'each_with_index',[],function w(p,u){var v,h=w.$$s==null?this:w.$$s,l=a,d=a;return h.at_line_begin==null&&(h.at_line_begin=a),h.dedent_level==null&&(h.dedent_level=a),p==null&&(p=a),u==null&&(u=a),j(u,0)&&s(h.at_line_begin)?a:(l=h.dedent_level,d=0,function(){try{var b=o('break');return f(p,'each_char',[],function e(f){var h=e.$$s==null?this:e.$$s,j=a;if(h.dedent_level==null&&(h.dedent_level=a),f==null&&(f=a),c(r(l,0))&&b.$throw(a,e.$$is_lambda),k(" ",j=f))return d=i(d,1),l=m(l,1);if(k(" ",j))return c(q(t(g('TAB_WIDTH'),i(n(d,g('TAB_WIDTH')),1)),h.dedent_level))&&b.$throw(a,e.$$is_lambda),d=i(d,1),l=m(l,g('TAB_WIDTH'));b.$throw(a,e.$$is_lambda)},{$$s:h})}catch(a){if(a===b)return a.$v;throw a}finally{b.is_orphan=!0}}(),(v=[u,p['$[]'](b.Range.$new(d,-1,!1))],f(e,'[]=',v),v[v.length-1]))},{$$s:p}),h=e.$join(),p.at_line_begin=h['$end_with?']("\n"),h})}(d(g('Parser'),'Lexer'),null,l),function(g){var d=p(g,'Mixin');return b.udef(d,'$process'),e(d,'$process',function(e){var g,b=this,d=a,h=a,j=a,i=a;return b._on_handler_cache==null&&(b._on_handler_cache=a),c(e['$nil?']())?a:(b._on_handler_cache=c(d=b._on_handler_cache)?d:new Map,h=e.$type(),j=c(d=b._on_handler_cache['$[]'](h))?d:(g=[h,(i="on_"+h,c(b['$respond_to?'](i))?a:i="handler_missing",i)],f(b._on_handler_cache,'[]=',g),g[g.length-1]),c(d=b.$send(j,e)))?d:e})}(d(g('AST'),'Processor')),function(c,d){var a=h(c,d,'Default');return b.udef(a,'$string_value'),e(a,'$string_value',function(a){var b=this;return b.$value(a)})}(d(g('Parser'),'Builders'),null)},Opal.modules["opal/parser"]=function(b){var a=b.top,c=b.nil;return b.add_stubs('require'),a.$require("opal/ast/builder"),a.$require("opal/rewriter"),a.$require("opal/parser/source_buffer"),a.$require("opal/parser/default_config"),a.$require("opal/parser/with_ruby_lexer"),a.$require("opal/parser/patch")},Opal.modules["opal/fragment"]=function(b){var l=b.module,k=b.klass,c=b.def,d=b.truthy,e=b.eqeq,i=b.rb_plus,j=b.rb_gt,f=b.to_a,h=b.not,g=[],a=b.nil,m=b.$$$;return b.add_stubs('attr_reader,to_s,inspect,type,[],meta,source_map_name_for,sexp,==,class,+,parent,>,!,first,children,loc,respond_to?,dot,selector,operator,begin,line,location,column'),function(n,o){var p=l(n,'Opal'),g=[p].concat(o);return function(r,n,o){var g=k(r,n,'Fragment'),p=[g].concat(o),q=b.$r(p),l=g.$$prototype;return l.code=l.scope=l.sexp=a,g.$attr_reader("code"),c(g,'$initialize',function(d,e,b){var c=this;return b==null&&(b=a),c.code=d.$to_s(),c.sexp=b,c.scope=e},-3),c(g,'$inspect',function(){var a=this;return"f("+a.code.$inspect()+")"}),c(g,'$source_map_name_for',function(c){var b,g=this,k=a,l=a,p=a,n=a,o=a;switch(c.$type().valueOf()){case"top":switch(c.$meta()['$[]']("kind").valueOf()){case"require":return"";case"eval":return"(eval)";case"main":return"
";default:return a}break;case"begin":case"newline":case"js_return":return d(g.scope)?g.$source_map_name_for(g.scope.$sexp()):a;break;case"iter":for(k=g.scope,l=1;d(k);)if(e(k.$class(),m(q('Nodes'),'IterNode')))l=i(l,1),k=k.$parent();else break;return d(j(l,1))&&(p=" ("+l+" levels)"),"block"+p+" in "+g.$source_map_name_for(k.$sexp());case"self":return"self";case"module":return b=[].concat(f(c)),n=b[0]==null?a:b[0],b,"";case"class":return b=[].concat(f(c)),n=b[0]==null?a:b[0],b,"";case"const":return b=[].concat(f(c)),k=b[0]==null?a:b[0],o=b[1]==null?a:b[1],b,h(k)||e(k.$type(),"cbase")?o.$to_s():""+g.$source_map_name_for(k)+"::"+o;break;case"int":return c.$children().$first();case"def":return c.$children().$first();case"defs":return c.$children()['$[]'](1);case"send":return c.$children()['$[]'](1);case"lvar":case"lvasgn":case"lvdeclare":case"ivar":case"ivasgn":case"gvar":case"cvar":case"cvasgn":case"gvars":case"gvasgn":case"arg":return c.$children().$first();case"str":case"xstr":return g.$source_map_name_for(g.scope.$sexp());default:return a}}),c(g,'$source_map_name',function(){var b=this;return d(b.sexp)?b.$source_map_name_for(b.sexp):a}),c(g,'$location',function(){var b=this,c=a,f=a;return h(b.sexp)?a:e(b.sexp.$type(),"send")?(c=b.sexp.$loc(),d(c['$respond_to?']("dot"))?d(f=c.$dot())?f:c.$selector():d(c['$respond_to?']("operator"))?c.$operator():b.sexp):e(b.sexp.$type(),"iter")?d(c['$respond_to?']("begin"))?b.sexp.$loc().$begin():b.sexp:b.sexp}),c(g,'$line',function(){var b,c=this;return b=c.$location(),b===a||b==null?a:b.$line()}),c(g,'$column',function(){var b,c=this;return b=c.$location(),b===a||b==null?a:b.$column()}),c(g,'$skip_source_map?',function(){var a=this;return a.sexp['$=='](!1)})}(g[0],null,g)}(g[0],g)},Opal.modules["opal/nodes/closure"]=function(b){var g=b.module,l=b.klass,j=b.const_set,e=b.send,i=b.defs,d=b.def,c=b.truthy,f=b.eqeq,s=b.slice,r=b.extract_kwargs,p=b.ensure_kwargs,m=b.hash_get,n=b.neqeq,o=b.thrower,h=b.not,q=b.to_a,k=[],a=b.nil;return b.add_stubs('const_set,[]=,join,map,reject,==,&,to_proc,add_type,<<,include?,!=,type_inspect,type,class,attr_accessor,new,select_closure,closure_stack,compile_catcher,pop,last,node,push_closure,pop_closure,find,reverse,register_catcher,register_thrower,push,expr_or_nil,identify!,scope,helper,key?,throwers,[],unique_temp,compiler,parent,top_scope,add_scope_temp,|,!,generate_thrower_without_catcher,eval?,error,generate_thrower,is?,catchers,empty?,grep_v,indent,each,line,closure_is?,unshift,await_encountered,wrap'),function(t,u){var v=g(t,'Opal'),k=[v].concat(u);return function(t,u){var v=g(t,'Nodes'),k=[v].concat(u);return function(y,v,w){var k=l(y,v,'Closure'),t=[k].concat(w),x=b.$r(t),u=k.$$prototype;return u.catchers=u.throwers=u.type=u.node=a,j(t[0],'NONE',0),k.types=new Map,i(k,'$add_type',function(d,f){var b,c=this;return c.types==null&&(c.types=a),c.$const_set(d,f),(b=[d,f],e(c.types,'[]=',b),b[b.length-1])}),i(k,'$type_inspect',function(c){var b=this;return b.types==null&&(b.types=a),e(e(b.types,'reject',[],function(d,b){return d==null&&(d=a),b==null&&(b=a),c['$&'](b)['$=='](0)}),'map',[],"first".$to_proc()).$join("|")}),k.$add_type("JS_FUNCTION",1['$<<'](0)),k.$add_type("JS_LOOP",1['$<<'](1)),k.$add_type("JS_LOOP_INSIDE",1['$<<'](2)),k.$add_type("DEF",1['$<<'](3)),k.$add_type("LAMBDA",1['$<<'](4)),k.$add_type("ITER",1['$<<'](5)),k.$add_type("MODULE",1['$<<'](6)),k.$add_type("LOOP",1['$<<'](7)),k.$add_type("LOOP_INSIDE",1['$<<'](8)),k.$add_type("SEND",1['$<<'](9)),k.$add_type("TOP",1['$<<'](10)),k.$add_type("RESCUE_RETRIER",1['$<<'](11)),j(t[0],'ANY',4294967295),d(k,'$initialize',function(c,d,e){var a,b=this;return a=[c,d,e],b.node=a[0],b.type=a[1],b.parent=a[2],a,b.catchers=[],b.throwers=new Map}),d(k,'$register_catcher',function(a){var b=this;return a==null&&(a="return"),c(b.catchers['$include?'](a))||b.catchers['$<<'](a),"$t_"+a},-1),d(k,'$register_thrower',function(b,c){var a,d=this;return a=[b,c],e(d.throwers,'[]=',a),a[a.length-1]}),d(k,'$is?',function(a){var b=this;return b.type['$&'](a)['$!='](0)}),d(k,'$inspect',function(){var a=this;return"#"}),k.$attr_accessor("node","type","parent","catchers","throwers"),function(k,l){var j=g(k,'NodeSupport'),t=[j].concat(l),i=b.$r(t);return d(j,'$push_closure',function(c){var b=this,d=a;return b.compiler==null&&(b.compiler=a),c==null&&(c=i('JS_FUNCTION')),d=i('Closure').$new(b,c,b.$select_closure()),b.compiler.$closure_stack()['$<<'](d),b.closure=d},-1),j.$attr_accessor("closure"),d(j,'$pop_closure',function(){var c,b=this,d=a;return b.compiler==null&&(b.compiler=a),b.$compile_catcher(),b.compiler.$closure_stack().$pop(),d=b.compiler.$closure_stack().$last(),f((c=d,c===a||c==null?a:c.$node()),b)?b.closure=d:a}),d(j,'$in_closure',function d(c){var h=d.$$p||a,e=this,f=a,g=a;return d.$$p=null,c==null&&(c=i('JS_FUNCTION')),f=e.$push_closure(c),g=b.yield1(h,f),e.$pop_closure(),g},-1),d(j,'$select_closure',function(k,h){var c,d,f,b,g=this;return g.compiler==null&&(g.compiler=a),c=s(arguments),d=r(c),d=p(d),c.length>0&&(f=c.shift()),f==null&&(f=i('ANY')),b=m(d,"break_after"),b==null&&(b=i('NONE')),function(){try{var c=o('break');return e(g.compiler.$closure_stack().$reverse(),'find',[],function e(d){return d==null&&(d=a),n(d.$type()['$&'](b),0)&&c.$throw(a,e.$$is_lambda),d.$type()['$&'](f)['$!='](0)})}catch(a){if(a===c)return a.$v;throw a}finally{c.is_orphan=!0}}()},-1),d(j,'$generate_thrower',function(d,e,f){var c=this,b=a;return b=e.$register_catcher(d),e.$register_thrower(d,b),c.$push(b,".$throw(",c.$expr_or_nil(f),", ",c.$scope()['$identify!'](),".$$is_lambda)"),b}),d(j,'$generate_thrower_without_catcher',function(e,f,j){var g,d=this,b=a,h=a,i=a;return d.$helper("thrower"),c(f.$throwers()['$key?'](e))?b=f.$throwers()['$[]'](e):(b=d.$compiler().$unique_temp("t_"),h=c(i=(g=f.$node().$scope(),g===a||g==null?a:g.$parent()))?i:d.$top_scope(),h.$add_scope_temp(""+b+" = $thrower('"+e+"')"),f.$register_thrower(e,b)),d.$push(b,".$throw(",d.$expr_or_nil(j),", ",d.$scope()['$identify!'](),".$$is_lambda)"),b}),d(j,'$thrower',function(l,e){var b=this,d=a,j=a,g=a,k=a;switch(e==null&&(e=a),l.valueOf()){case"return":return d=b.$select_closure(i('DEF'),new Map([["break_after",i('MODULE')['$|'](i('TOP'))]])),j=b.$select_closure(i('JS_FUNCTION')),h(d)?(g=b.$select_closure(i('ITER'),new Map([["break_after",i('DEF')['$|'](i('MODULE'))['$|'](i('TOP'))]])),c(g))?b.$generate_thrower_without_catcher("return",g,e):c(b.$compiler()['$eval?']())?b.$push("Opal.t_eval_return.$throw(",b.$expr_or_nil(e),", false)"):b.$error("Invalid return"):f(d,j)?b.$push("return ",b.$expr_or_nil(e)):(k=b.$generate_thrower("return",d,e),g=b.$select_closure(i('ITER'),new Map([["break_after",i('DEF')['$|'](i('MODULE'))['$|'](i('TOP'))]])),c(g))?g.$register_thrower("return",k):a;break;case"eval_return":return d=b.$select_closure(i('DEF')['$|'](i('LAMBDA')),new Map([["break_after",i('MODULE')['$|'](i('TOP'))]])),c(d)?d.$register_catcher("eval_return"):a;break;case"next":case"redo":return d=b.$select_closure(i('ITER')['$|'](i('LOOP_INSIDE')),new Map([["break_after",i('DEF')['$|'](i('MODULE'))['$|'](i('TOP'))]])),j=b.$select_closure(i('JS_FUNCTION')['$|'](i('JS_LOOP_INSIDE'))),h(d)?b.$error("Invalid next"):f(d,j)?c(d['$is?'](i('LOOP_INSIDE')))?b.$push("continue"):c(d['$is?'](i('ITER')['$|'](i('LAMBDA'))))?b.$push("return ",b.$expr_or_nil(e)):a:b.$generate_thrower("next",d,e);break;case"break":return d=b.$select_closure(i('SEND')['$|'](i('LAMBDA'))['$|'](i('LOOP')),new Map([["break_after",i('DEF')['$|'](i('MODULE'))['$|'](i('TOP'))]])),j=b.$select_closure(i('JS_FUNCTION')['$|'](i('JS_LOOP'))),h(d)?(g=b.$select_closure(i('ITER'),new Map([["break_after",i('DEF')['$|'](i('MODULE'))['$|'](i('TOP'))]])),c(g))?b.$generate_thrower_without_catcher("break",g,e):b.$error("Invalid break"):f(d,j)?c(d['$is?'](i('JS_FUNCTION')['$|'](i('LAMBDA'))))?b.$push("return ",b.$expr_or_nil(e)):c(d['$is?'](i('LOOP')))?b.$push("break"):a:b.$generate_thrower("break",d,e);break;case"retry":return d=b.$select_closure(i('RESCUE_RETRIER'),new Map([["break_after",i('DEF')['$|'](i('MODULE'))['$|'](i('TOP'))]])),j=b.$select_closure(i('JS_LOOP_INSIDE')),h(d)?b.$error("Invalid retry"):f(d,j)?b.$push("continue"):b.$generate_thrower("retry",d,e);break;default:return a}},-2),d(j,'$closure_is?',function(c){var b=this;return b.closure==null&&(b.closure=a),b.closure['$is?'](c)}),d(j,'$compile_catcher',function(){var b=this,f=a,d=a;return b.closure==null&&(b.closure=a),f=b.closure.$catchers(),c(f['$empty?']())?a:(b.$helper("thrower"),d=f.$grep_v("eval_return"),b.$push("} catch($e) {"),e(b,'indent',[],function b(){var c=b.$$s==null?this:b.$$s;return e(f,'each',[],function c(b){var d=c.$$s==null?this:c.$$s;switch(b==null&&(b=a),b.valueOf()){case"eval_return":return d.$line("if ($e === Opal.t_eval_return) return $e.$v;");default:return d.$line("if ($e === $t_"+b+") return $e.$v;")}},{$$s:c}),c.$line("throw $e;")},{$$s:b}),b.$line("}"),c(d['$empty?']())||e(b,'push',[" finally {"].concat(q(e(d,'map',[],function(b){return b==null&&(b=a),"$t_"+b+".is_orphan = true;"}))).concat(["}"])),c(b['$closure_is?'](i('SEND')))&&b.$unshift("return "),c(d['$empty?']())||b.$unshift("var ",e(d,'map',[],function(b){return b==null&&(b=a),"$t_"+b+" = $thrower('"+b+"')"}).$join(", "),"; "),b.$unshift("try { "),c(b['$closure_is?'](i('JS_FUNCTION'))))?a:c(b.$scope().$await_encountered())?b.$wrap("(await (async function(){","})())"):b.$wrap("(function(){","})()")})}(t[0],t),function(b){var e=g(b,'CompilerSupport');return d(e,'$closure_stack',function(){var b=this,d=a;return b.closure_stack==null&&(b.closure_stack=a),b.closure_stack=c(d=b.closure_stack)?d:[]})}(t[0])}(k[0],null,k)}(k[0],k)}(k[0],k)},Opal.modules["opal/nodes/helpers"]=function(b){var f=b.module,d=b.truthy,c=b.def,m=b.rb_plus,i=b.send,k=b.slice,g=b.to_a,e=b.eqeq,l=b.top,j=[],a=b.nil,h=b.$$$;return b.add_stubs('require,valid_name?,inspect,=~,to_s,+,indent,compiler,to_proc,parser_indent,push,fragment,current_indent,js_truthy_optimize,helper,expr,type,[],handlers,include?,truthy_optimize?,==,count,record_method_call,first,children,s,[]=,meta'),l.$require("opal/regexp_anchors"),function(l,n){var o=f(l,'Opal'),j=[o].concat(n);return function(l,n){var o=f(l,'Nodes'),j=[o].concat(n);return function(n,o){var j=f(n,'Helpers'),p=[j].concat(o),l=b.$r(p);return c(j,'$property',function(a){var b=this;return d(b['$valid_name?'](a))?"."+a:"["+a.$inspect()+"]"}),c(j,'$valid_name?',function(a){return h(h(l('Opal'),'Rewriters'),'JsReservedWords')['$valid_name?'](a)}),c(j,'$mid_to_jsid',function(a){return d(/\=|\+|\-|\*|\/|\!|\?|<|\>|\&|\||\^|\%|\~|\[|`/['$=~'](a.$to_s()))?"['$"+a+"']":m(".$",a)}),c(j,'$indent',function b(){var c=b.$$p||a,d=this;return b.$$p=null,i(d.$compiler(),'indent',[],c.$to_proc())}),c(j,'$current_indent',function(){var a=this;return a.$compiler().$parser_indent()}),c(j,'$line',function(e){var b,c,a=this;return b=k(arguments),c=b,a.$push(a.$fragment("\n"+a.$current_indent(),new Map([["loc",!1]]))),i(a,'push',g(c))},-1),c(j,'$empty_line',function(){var a=this;return a.$push(a.$fragment("\n",new Map([["loc",!1]])))}),c(j,'$js_truthy',function(c){var b=this,e=a;return d(e=b.$js_truthy_optimize(c))?e:(b.$helper("truthy"),[b.$fragment("$truthy("),b.$expr(c),b.$fragment(")")])}),c(j,'$js_truthy_optimize',function(f){var c,b=this,j=a,i=a,m=a,o=a,n=a,q=a,r=a,t=a,s=a,p=a;switch(f.$type().valueOf()){case"send":if(c=[].concat(g(f)),j=c[0]==null?a:c[0],i=c[1]==null?a:c[1],m=k(c,2),c,o=d(n=j)?b.$compiler().$handlers()['$[]'](j.$type()):n,q=d(n=d(r=h(l('Compiler'),'COMPARE')['$include?'](i.$to_s()))?o:r)?o['$truthy_optimize?']():n,d(q)||e(i,"block_given?"))return b.$expr(f);if(e(m.$count(),1))switch(i.valueOf()){case"==":return b.$helper("eqeq"),b.$compiler().$record_method_call(i),[b.$fragment("$eqeq("),b.$expr(j),b.$fragment(", "),b.$expr(m.$first()),b.$fragment(")")];case"===":return b.$helper("eqeqeq"),b.$compiler().$record_method_call(i),[b.$fragment("$eqeqeq("),b.$expr(j),b.$fragment(", "),b.$expr(m.$first()),b.$fragment(")")];case"!=":return b.$helper("neqeq"),b.$compiler().$record_method_call(i),[b.$fragment("$neqeq("),b.$expr(j),b.$fragment(", "),b.$expr(m.$first()),b.$fragment(")")];default:return a}else if(e(m.$count(),0))switch(i.valueOf()){case"!":return b.$helper("not"),b.$compiler().$record_method_call(i),[b.$fragment("$not("),b.$expr(j),b.$fragment(")")];default:return a}else return a;break;case"begin":return e(f.$children().$count(),1)?b.$js_truthy_optimize(f.$children().$first()):a;break;case"if":return c=[].concat(g(f)),t=c[0]==null?a:c[0],s=c[1]==null?a:c[1],p=c[2]==null?a:c[2],c,e(s,b.$s("true"))?(f.$meta()['$[]=']("do_js_truthy_on_false_body",!0),b.$expr(f)):e(p,b.$s("false"))?(f.$meta()['$[]=']("do_js_truthy_on_true_body",!0),b.$expr(f)):a;break;default:return a}})}(j[0],j)}(j[0],j)}(j[0],j)},Opal.modules["opal/nodes/base"]=function(c){var k=c.module,p=c.klass,d=c.truthy,g=c.defs,f=c.slice,e=c.send,o=c.return_val,a=c.def,r=c.ensure_kwargs,q=c.hash_get,l=c.Opal,m=c.neqeq,n=c.rb_plus,i=c.top,j=[],b=c.nil,h=c.$$$;return c.add_stubs('require,include,each,[]=,handlers,each_with_index,define_method,[],children,attr_reader,type,top_scope,top_scope=,compile,raise,is_a?,fragment,<<,reverse_each,unshift,push,new,scope,error,loc,==,process,expr,!=,add_scope_local,to_sym,add_scope_ivar,add_scope_gvar,add_scope_temp,helper,with_temp,to_proc,in_while?,instance_variable_get,has_rescue_else?,in_ensure,in_ensure?,in_resbody,in_resbody?,in_rescue,!,class_scope?,sclass?,+,parent,nesting,class_variable_owner_nesting_level,comments,compiler,expression,respond_to?,name,source_buffer,start_with?,end_with?,line'),i.$require("opal/nodes/helpers"),i.$require("opal/nodes/closure"),function(j,s){var t=k(j,'Opal'),i=[t].concat(s);return function(j,s){var t=k(j,'Nodes'),i=[t].concat(s);return function(v,s,t){var i=p(v,s,'Base'),u=[i].concat(t),j=c.$r(u),k=i.$$prototype;return k.compiler=k.sexp=k.fragments=k.level=b,i.$include(j('Helpers')),i.$include(h(j('Closure'),'NodeSupport')),g(i,'$handlers',function(){var a=this,c=b;return a.handlers==null&&(a.handlers=b),a.handlers=d(c=a.handlers)?c:new Map}),g(i,'$handle',function(h){var a,c,d=this;return a=f(arguments),c=a,e(c,'each',[],function d(c){var a,f=d.$$s==null?this:d.$$s;return c==null&&(c=b),(a=[c,f],e(j('Base').$handlers(),'[]=',a),a[a.length-1])},{$$s:d})},-1),g(i,'$children',function(h){var a,c,d=this;return a=f(arguments),c=a,e(c,'each_with_index',[],function d(a,c){var f=d.$$s==null?this:d.$$s;return a==null&&(a=b),c==null&&(c=b),e(f,'define_method',[a],function d(){var a=d.$$s==null?this:d.$$s;return a.sexp==null&&(a.sexp=b),a.sexp.$children()['$[]'](c)},{$$s:f})},{$$s:d})},-1),g(i,'$truthy_optimize?',o(!1)),i.$attr_reader("compiler","type","sexp"),a(i,'$initialize',function(g,h,i){var c,a=this,f=b;return a.sexp=g,a.type=g.$type(),a.level=h,a.compiler=i,d(f=a.compiler.$top_scope())?f:(c=[a],e(a.compiler,'top_scope=',c),c[c.length-1])}),a(i,'$children',function(){var a=this;return a.sexp.$children()}),a(i,'$compile_to_fragments',function(){var c,a=this;return d((c=a.fragments,c!=null&&c!==b)?'instance-variable':b)?a.fragments:(a.fragments=[],a.$compile(),a.fragments)}),a(i,'$compile',function(){var a=this;return a.$raise("Not Implemented")}),a(i,'$push',function(i){var a,c,g=this;return a=f(arguments),c=a,e(c,'each',[],function e(a){var c=e.$$s==null?this:e.$$s;return c.fragments==null&&(c.fragments=b),a==null&&(a=b),d(a['$is_a?'](j('String')))&&(a=c.$fragment(a)),c.fragments['$<<'](a)},{$$s:g})},-1),a(i,'$unshift',function(i){var a,c,g=this;return a=f(arguments),c=a,e(c,'reverse_each',[],function e(a){var c=e.$$s==null?this:e.$$s;return c.fragments==null&&(c.fragments=b),a==null&&(a=b),d(a['$is_a?'](j('String')))&&(a=c.$fragment(a)),c.fragments.$unshift(a)},{$$s:g})},-1),a(i,'$wrap',function(b,c){var a=this;return a.$unshift(b),a.$push(c)}),a(i,'$fragment',function(g,c){var a,e=this,f=b;return c=r(c),a=q(c,"loc"),a==null&&(a=!0),h(j('Opal'),'Fragment').$new(g,e.$scope(),d(f=a)?e.sexp:f)},-2),a(i,'$error',function(a){var b=this;return b.compiler.$error(a)}),a(i,'$scope',function(){var a=this;return a.compiler.$scope()}),a(i,'$top_scope',function(){var a=this;return a.compiler.$top_scope()}),a(i,'$s',function(c,g){var a,b,d=this;return a=f(arguments,1),b=a,h(h(l,'AST'),'Node').$new(c,b,new Map([["location",d.sexp.$loc()]]))},-2),a(i,'$expr?',function(){var a=this;return a.level['$==']("expr")}),a(i,'$recv?',function(){var a=this;return a.level['$==']("recv")}),a(i,'$stmt?',function(){var a=this;return a.level['$==']("stmt")}),a(i,'$process',function(b,a){var c=this;return a==null&&(a="expr"),c.compiler.$process(b,a)},-2),a(i,'$expr',function(a){var b=this;return b.compiler.$process(a,"expr")}),a(i,'$recv',function(a){var b=this;return b.compiler.$process(a,"recv")}),a(i,'$stmt',function(a){var b=this;return b.compiler.$process(a,"stmt")}),a(i,'$expr_or_nil',function(a){var b=this;return d(a)?b.$expr(a):"nil"}),a(i,'$expr_or_empty',function(a){var b=this;return d(a)&&m(a.$type(),"nil")?b.$expr(a):""}),a(i,'$add_local',function(a){var b=this;return b.$scope().$add_scope_local(a.$to_sym())}),a(i,'$add_ivar',function(a){var b=this;return b.$scope().$add_scope_ivar(a)}),a(i,'$add_gvar',function(a){var b=this;return b.$scope().$add_scope_gvar(a)}),a(i,'$add_temp',function(a){var b=this;return b.$scope().$add_scope_temp(a)}),a(i,'$helper',function(a){var b=this;return b.compiler.$helper(a)}),a(i,'$with_temp',function a(){var c=a.$$p||b,d=this;return a.$$p=null,e(d.compiler,'with_temp',[],c.$to_proc())}),a(i,'$in_while?',function(){var a=this;return a.compiler['$in_while?']()}),a(i,'$while_loop',function(){var a=this;return a.compiler.$instance_variable_get("@while_loop")}),a(i,'$has_rescue_else?',function(){var a=this;return a.$scope()['$has_rescue_else?']()}),a(i,'$in_ensure',function a(){var c=a.$$p||b,d=this;return a.$$p=null,e(d.$scope(),'in_ensure',[],c.$to_proc())}),a(i,'$in_ensure?',function(){var a=this;return a.$scope()['$in_ensure?']()}),a(i,'$in_resbody',function a(){var c=a.$$p||b,d=this;return a.$$p=null,e(d.$scope(),'in_resbody',[],c.$to_proc())}),a(i,'$in_resbody?',function(){var a=this;return a.$scope()['$in_resbody?']()}),a(i,'$in_rescue',function a(c){var d=a.$$p||b,f=this;return a.$$p=null,e(f.$scope(),'in_rescue',[c],d.$to_proc())}),a(i,'$class_variable_owner_nesting_level',function(){var f=this,a=b,c=b,e=b;for(a=f.$scope(),c=0;d(d(e=a)?a['$class_scope?']()['$!']():e);)d(a['$sclass?']())&&(c=n(c,1)),a=a.$parent();return c}),a(i,'$class_variable_owner',function(){var a=this;return d(a.$scope())?""+a.$scope().$nesting()+"["+a.$class_variable_owner_nesting_level()+"]":"Opal.Object"}),a(i,'$comments',function(){var a=this;return a.$compiler().$comments()['$[]'](a.sexp.$loc())}),a(i,'$source_location',function(){var e=this,c=b,a=b,f=b;return c=e.sexp.$loc().$expression(),d(c['$respond_to?']("source_buffer"))?(a=c.$source_buffer().$name(),d(a['$start_with?']("corelib/"))&&(a=""),d(a['$end_with?'](".js"))&&(a="")):a="(eval)",f=e.sexp.$loc().$line(),"['"+a+"', "+f+"]"})}(i[0],null,i)}(i[0],i)}(j[0],j)},Opal.modules["opal/nodes/literal"]=function(b){var n=b.module,e=b.klass,c=b.def,r=b.return_val,l=b.defs,d=b.truthy,i=b.const_set,k=b.regexp,f=b.send,g=b.rb_plus,y=b.lambda,x=b.rb_le,z=b.rb_minus,o=b.slice,v=b.send2,t=b.find_super,j=b.to_a,h=b.eqeq,q=b.eqeqeq,u=b.Opal,p=b.rb_gt,w=b.top,m=[],a=b.nil,s=b.$$$;return b.add_stubs('require,handle,push,to_s,type,self,scope,children,value,recv?,wrap,freeze,join,keys,gsub,even?,length,last_match,+,chop,[],inspect,to_i,to_utf16,translate_escape_chars,valid_encoding?,helper,upcase,<=,call,-,>>,&,attr_accessor,extract_flags_and_value,select!,flags,=~,warning,compiler,==,compile_static_regexp,compile_dynamic_regexp,each_with_index,zero?,expr,any?,===,static_as_dynamic,new,flags=,map,to_proc,value=,empty?,s,single_line?,include?,is_a?,updated,delete,source,expression,loc,private,>,!=,!,regexp,first,each,compile_inline?,compile_inline,compile_range_initialize,start,finish,raise,expr_or_nil,absolute_const,top_scope,numerator,denominator,real,imag'),w.$require("opal/nodes/base"),function(w,A){var B=n(w,'Opal'),m=[B].concat(A);return function(A,B){var C=n(A,'Nodes'),m=[C].concat(B),w=b.$r(m);return function(b,d){var a=e(b,d,'ValueNode');return a.$handle("true","false","nil"),c(a,'$compile',function(){var a=this;return a.$push(a.$type().$to_s())}),l(a,'$truthy_optimize?',r(!0))}(m[0],w('Base')),function(b,d){var a=e(b,d,'SelfNode');return a.$handle("self"),c(a,'$compile',function(){var a=this;return a.$push(a.$scope().$self())})}(m[0],w('Base')),function(f,g){var b=e(f,g,'NumericNode');return b.$handle("int","float"),b.$children("value"),c(b,'$compile',function(){var b=this;return b.$push(b.$value().$to_s()),d(b['$recv?']())?b.$wrap("(",")"):a}),l(b,'$truthy_optimize?',r(!0))}(m[0],w('Base')),function(m,n,o){var j=e(m,n,'StringNode'),l=[j].concat(o),h=b.$r(l);return j.$handle("str"),j.$children("value"),i(l[0],'ESCAPE_CHARS',new Map([["a","\\u0007"],["e","\\u001b"]]).$freeze()),i(l[0],'ESCAPE_REGEX',k(["(\\\\+)([",h('ESCAPE_CHARS').$keys().$join(""),"])"]).$freeze()),c(j,'$translate_escape_chars',function(b){return f(b,'gsub',[h('ESCAPE_REGEX')],function(b){return b==null&&(b=a),d(h('Regexp').$last_match(1).$length()['$even?']())?b:g(h('Regexp').$last_match(1).$chop(),h('ESCAPE_CHARS')['$[]'](h('Regexp').$last_match(2)))})}),c(j,'$compile',function(){var b=this,c=a,e=a;return c=b.$value(),e=f(c.$inspect(),'gsub',[/\\u\{([0-9a-f]+)\}/],function b(){var d=b.$$s==null?this:b.$$s,c=a;return c=h('Regexp').$last_match(1).$to_i(16),d.$to_utf16(c)},{$$s:b}),b.$push(b.$translate_escape_chars(e)),a,d(b.$value()['$valid_encoding?']())?a:(b.$helper("binary"),b.$wrap("$binary(",")"))}),c(j,'$to_utf16',function(b){var e=a,c=a,f=a,h=a;return e=1023,c=y(function(b){return b==null&&(b=a),g("\\u",b.$to_s(16).$upcase())}),d(x(b,65535))?c.$call(b):(b=z(b,65536),f=g(55296,b['$>>'](10)),h=g(56320,b['$&'](e)),g(c.$call(f),c.$call(h)))})}(m[0],w('Base'),m),function(b,d){var a=e(b,d,'SymbolNode');return a.$handle("sym"),a.$children("value"),c(a,'$compile',function(){var a=this;return a.$push(a.$value().$to_s().$inspect())})}(m[0],w('Base')),function(n,r,w){var g=e(n,r,'RegexpNode'),l=[g].concat(w),m=b.$r(l),x=g.$$prototype;return x.sexp=a,g.$handle("regexp"),g.$attr_accessor("value","flags"),i(l[0],'SUPPORTED_FLAGS',/[gimuy]/.$freeze()),c(g,'$initialize',function b(g){var d,e,f=b.$$p||a,c=this;return b.$$p=null,d=o(arguments),e=d,v(c,t(c,'initialize',b,!1,!0),'initialize',j(e),f),c.$extract_flags_and_value()},-1),c(g,'$compile',function(){var b=this;return f(b.$flags(),'select!',[],function c(b){var e=c.$$s==null?this:c.$$s;return!!(b==null&&(b=a),d(m('SUPPORTED_FLAGS')['$=~'](b)))||(e.$compiler().$warning("Skipping the '"+b+"' Regexp flag as it's not widely supported by JavaScript vendors."),!1)},{$$s:b}),h(b.$value().$type(),"str")?b.$compile_static_regexp():b.$compile_dynamic_regexp()}),c(g,'$compile_dynamic_regexp',function(){var b=this;return b.$helper("regexp"),b.$push("$regexp(["),f(b.$value().$children(),'each_with_index',[],function f(b,c){var e=f.$$s==null?this:f.$$s;return b==null&&(b=a),c==null&&(c=a),d(c['$zero?']())||e.$push(", "),e.$push(e.$expr(b))},{$$s:b}),b.$push("]"),d(b.$flags()['$any?']())&&b.$push(", '"+b.$flags().$join()+"'"),b.$push(")")}),c(g,'$compile_static_regexp',function(){var b=this,c=a,d=a;return c=b.$value().$children()['$[]'](0),q("",d=c)?b.$push("/(?:)/"):q(k(["\\(\\?[(<>#]|[*+?]\\+"]),d)?b.$static_as_dynamic(c):b.$push(""+m('Regexp').$new(c).$inspect()+b.$flags().$join())}),c(g,'$static_as_dynamic',function(b){var a=this;return a.$helper("regexp"),a.$push('$regexp(["'),a.$push(b.$gsub("\\","\\\\\\\\")),a.$push('"]'),d(a.$flags()['$any?']())&&a.$push(", '"+a.$flags().$join()+"'"),a.$push(")")}),c(g,'$extract_flags_and_value',function(){var c,e,b=this,g=a,k=a,i=a;return c=[].concat(j(b.$children())),e=c.length-1,e=e<0?0:e,g=o(c,0,e),k=c[e]==null?a:c[e],c,b['$flags='](f(k.$children(),'map',[],"to_s".$to_proc())),b['$value='](d(g['$empty?']())?b.$s("str",""):d(b['$single_line?'](g))?g['$[]'](0):f(b,'s',["dstr"].concat(j(g)))),d(b.$flags()['$include?']("x"))&&(i=f(b.$value().$children(),'map',[],function c(b){var f=c.$$s==null?this:c.$$s,e=a;return b==null&&(b=a),d(b['$is_a?'](s(s(u,'AST'),'Node')))&&h(b.$type(),"str")?(e=b.$children()['$[]'](0).$gsub(/^\s*\#.*/,"").$gsub(/\s/,""),f.$s("str",e)):b},{$$s:b}),b['$value='](b.$value().$updated(a,i)),b.$flags().$delete("x")),h(b.$value().$type(),"str")?(c=[b.$s("str",b.$value().$children()['$[]'](0).$gsub("\\A","^").$gsub("\\z","$"))],f(b,'value=',c),c[c.length-1]):a}),c(g,'$raw_value',function(){var a,b=this;return a=[b.sexp.$loc().$expression().$source()],f(b,'value=',a),a[a.length-1]}),g.$private(),c(g,'$single_line?',function(c){var b=a,e=a;return!d(p(c.$length(),1))&&(b=c['$[]'](0),d(e=b.$type()['$!=']("str"))?e:b.$children()['$[]'](0)['$include?']("\n")['$!']())})}(m[0],w('Base'),m),function(d,f){var b=e(d,f,'MatchCurrentLineNode');return b.$handle("match_current_line"),b.$children("regexp"),c(b,'$compile',function(){var b=this,c=a,d=a;return c=b.$s("gvar","$_"),d=b.$s("send",c,"=~",b.$regexp()),b.$push(b.$expr(d))})}(m[0],w('Base')),function(g,i){var b=e(g,i,'DynamicStringNode');return b.$handle("dstr"),c(b,'$compile',function(){var b=this,c=a;return d(p(b.$children().$length(),1))&&h(b.$children().$first().$type(),"str")?c=!0:b.$push('""'),f(b.$children(),'each',[],function f(e){var b=f.$$s==null?this:f.$$s;return e==null&&(e=a),d(c)?c=!1:b.$push(" + "),h(e.$type(),"str")?b.$push(b.$expr(e)):b.$push("(",b.$expr(e),")"),d(b['$recv?']())?b.$wrap("(",")"):a},{$$s:b})})}(m[0],w('Base')),function(a,b){var c=e(a,b,'DynamicSymbolNode');return c.$handle("dsym")}(m[0],w('DynamicStringNode')),function(j,k,l){var f=e(j,k,'RangeNode'),h=[f].concat(l),g=b.$r(h);return f.$children("start","finish"),i(h[0],'SIMPLE_CHILDREN_TYPES',["int","float","str","sym"].$freeze()),c(f,'$compile',function(){var a=this;return d(a['$compile_inline?']())?(a.$helper("range"),a.$compile_inline()):a.$compile_range_initialize()}),c(f,'$compile_inline?',function(){var b=this,f=a,c=a,e=a;return d(f=d(c=b.$start()['$!']())?c:d(e=b.$start().$type())?g('SIMPLE_CHILDREN_TYPES')['$include?'](b.$start().$type()):e)?d(c=b.$finish()['$!']())?c:d(e=b.$finish().$type())?g('SIMPLE_CHILDREN_TYPES')['$include?'](b.$finish().$type()):e:f}),c(f,'$compile_inline',function(){var a=this;return a.$raise(g('NotImplementedError'))}),c(f,'$compile_range_initialize',function(){var a=this;return a.$raise(g('NotImplementedError'))})}(m[0],w('Base'),m),function(b,d){var a=e(b,d,'InclusiveRangeNode');return a.$handle("irange"),c(a,'$compile_inline',function(){var a=this;return a.$push("$range(",a.$expr_or_nil(a.$start()),", ",a.$expr_or_nil(a.$finish()),", false)")}),c(a,'$compile_range_initialize',function(){var a=this;return a.$push("Opal.Range.$new(",a.$expr_or_nil(a.$start()),", ",a.$expr_or_nil(a.$finish()),", false)")})}(m[0],w('RangeNode')),function(b,d){var a=e(b,d,'ExclusiveRangeNode');return a.$handle("erange"),c(a,'$compile_inline',function(){var a=this;return a.$push("$range(",a.$expr_or_nil(a.$start()),", ",a.$expr_or_nil(a.$finish()),", true)")}),c(a,'$compile_range_initialize',function(){var a=this;return a.$push("Opal.Range.$new(",a.$expr_or_nil(a.$start()),",",a.$expr_or_nil(a.$finish()),", true)")})}(m[0],w('RangeNode')),function(b,d){var a=e(b,d,'RationalNode');return a.$handle("rational"),a.$children("value"),c(a,'$compile',function(){var a=this;return a.$push(""+a.$top_scope().$absolute_const()+"('Rational').$new("+a.$value().$numerator()+", "+a.$value().$denominator()+")")})}(m[0],w('Base')),function(b,d){var a=e(b,d,'ComplexNode');return a.$handle("complex"),a.$children("value"),c(a,'$compile',function(){var a=this;return a.$push(""+a.$top_scope().$absolute_const()+"('Complex').$new("+a.$value().$real()+", "+a.$value().$imag()+")")})}(m[0],w('Base'))}(m[0],m)}(m[0],m)},Opal.modules["opal/nodes/variables"]=function(d){var h=d.module,e=d.klass,c=d.truthy,a=d.def,f=d.send,g=d.range,j=d.send2,k=d.find_super,l=d.top,i=[],b=d.nil;return d.add_stubs('require,handle,children,irb?,compiler,top?,scope,using_irb?,push,to_s,var_name,with_temp,property,wrap,add_local,expr,value,expr?,recv?,[],name,add_ivar,self,helper,add_gvar,handle_global_match,handle_post_match,handle_pre_match,raise,index,stmt?,class_variable_owner,inspect'),l.$require("opal/nodes/base"),function(l,m){var n=h(l,'Opal'),i=[n].concat(m);return function(m,n){var o=h(m,'Nodes'),i=[o].concat(n),l=d.$r(i);return function(g,h){var d=e(g,h,'LocalVariableNode');return d.$handle("lvar"),d.$children("var_name"),a(d,'$using_irb?',function(){var a=this,d=b;return c(d=a.$compiler()['$irb?']())?a.$scope()['$top?']():d}),a(d,'$compile',function(){var a=this;return c(a['$using_irb?']())?f(a,'with_temp',[],function d(a){var c=d.$$s==null?this:d.$$s;return a==null&&(a=b),c.$push(c.$property(c.$var_name().$to_s())),c.$wrap("(("+a+" = Opal.irb_vars",") == null ? nil : "+a+")")},{$$s:a}):a.$push(a.$var_name().$to_s())})}(i[0],l('Base')),function(f,g){var d=e(f,g,'LocalAssignNode');return d.$handle("lvasgn"),d.$children("var_name","value"),a(d,'$using_irb?',function(){var a=this,d=b;return c(d=a.$compiler()['$irb?']())?a.$scope()['$top?']():d}),a(d,'$compile',function(){var a=this;return c(a['$using_irb?']())?a.$push("Opal.irb_vars"+a.$property(a.$var_name().$to_s())+" = "):(a.$add_local(a.$var_name().$to_s()),a.$push(""+a.$var_name()+" = ")),a.$push(a.$expr(a.$value())),(c(a['$recv?']())||c(a['$expr?']()))&&c(a.$value())?a.$wrap("(",")"):b})}(i[0],l('Base')),function(d,f){var c=e(d,f,'LocalDeclareNode');return c.$handle("lvdeclare"),c.$children("var_name"),a(c,'$compile',function(){var a=this;return a.$add_local(a.$var_name().$to_s()),b})}(i[0],l('Base')),function(d,f){var c=e(d,f,'InstanceVariableNode');return c.$handle("ivar"),c.$children("name"),a(c,'$var_name',function(){var a=this;return a.$name().$to_s()['$[]'](g(1,-1,!1))}),a(c,'$compile',function(){var a=this,c=b;return c=a.$property(a.$var_name()),a.$add_ivar(c),a.$push(""+a.$scope().$self()+c)})}(i[0],l('Base')),function(f,h){var d=e(f,h,'InstanceAssignNode');return d.$handle("ivasgn"),d.$children("name","value"),a(d,'$var_name',function(){var a=this;return a.$name().$to_s()['$[]'](g(1,-1,!1))}),a(d,'$compile',function(){var a=this,d=b;return d=a.$property(a.$var_name()),a.$push(""+a.$scope().$self()+d+" = "),a.$push(a.$expr(a.$value())),(c(a['$recv?']())||c(a['$expr?']()))&&c(a.$value())?a.$wrap("(",")"):b})}(i[0],l('Base')),function(d,f){var c=e(d,f,'GlobalVariableNode');return c.$handle("gvar"),c.$children("name"),a(c,'$var_name',function(){var a=this;return a.$name().$to_s()['$[]'](g(1,-1,!1))}),a(c,'$compile',function(){var a=this,c=b;return a.$helper("gvars"),c=a.$property(a.$var_name()),a.$add_gvar(c),a.$push("$gvars"+c)})}(i[0],l('Base')),function(g,h,i){var c=e(g,h,'BackRefNode'),l=[c].concat(i),m=d.$r(l);return c.$handle("back_ref"),a(c,'$compile',function c(){var d=c.$$p||b,a=this;switch(c.$$p=null,a.$helper("gvars"),a.$var_name().valueOf()){case"&":return a.$handle_global_match();case"'":return a.$handle_post_match();case"`":return a.$handle_pre_match();case"+":return j(a,k(a,'compile',c,!1,!0),'compile',[],d);default:return a.$raise(m('NotImplementedError'))}}),a(c,'$handle_global_match',function(){var a=this;return f(a,'with_temp',[],function c(a){var d=c.$$s==null?this:c.$$s;return a==null&&(a=b),d.$push("(("+a+" = $gvars['~']) === nil ? nil : "+a+"['$[]'](0))")},{$$s:a})}),a(c,'$handle_pre_match',function(){var a=this;return f(a,'with_temp',[],function c(a){var d=c.$$s==null?this:c.$$s;return a==null&&(a=b),d.$push("(("+a+" = $gvars['~']) === nil ? nil : "+a+".$pre_match())")},{$$s:a})}),a(c,'$handle_post_match',function(){var a=this;return f(a,'with_temp',[],function c(a){var d=c.$$s==null?this:c.$$s;return a==null&&(a=b),d.$push("(("+a+" = $gvars['~']) === nil ? nil : "+a+".$post_match())")},{$$s:a})})}(i[0],l('GlobalVariableNode'),i),function(f,h){var d=e(f,h,'GlobalAssignNode');return d.$handle("gvasgn"),d.$children("name","value"),a(d,'$var_name',function(){var a=this;return a.$name().$to_s()['$[]'](g(1,-1,!1))}),a(d,'$compile',function(){var a=this,d=b;return a.$helper("gvars"),d=a.$property(a.$var_name()),a.$push("$gvars"+d+" = "),a.$push(a.$expr(a.$value())),(c(a['$recv?']())||c(a['$expr?']()))&&c(a.$value())?a.$wrap("(",")"):b})}(i[0],l('Base')),function(d,g){var c=e(d,g,'NthrefNode');return c.$handle("nth_ref"),c.$children("index"),a(c,'$compile',function(){var a=this;return a.$helper("gvars"),f(a,'with_temp',[],function c(a){var d=c.$$s==null?this:c.$$s;return a==null&&(a=b),d.$push("(("+a+" = $gvars['~']) === nil ? nil : "+a+"['$[]']("+d.$index()+"))")},{$$s:a})})}(i[0],l('Base')),function(f,g){var d=e(f,g,'ClassVariableNode');return d.$handle("cvar"),d.$children("name"),a(d,'$compile',function(){var a=this,d=b;return a.$helper("class_variable_get"),d=!1,c(a['$stmt?']())&&(d=!0),a.$push("$class_variable_get("+a.$class_variable_owner()+", '"+a.$name()+"', "+d.$inspect()+")")})}(i[0],l('Base')),function(c,d){var b=e(c,d,'ClassVarAssignNode');return b.$handle("cvasgn"),b.$children("name","value"),a(b,'$compile',function(){var a=this;return a.$helper("class_variable_set"),a.$push("$class_variable_set("+a.$class_variable_owner()+", '"+a.$name()+"', ",a.$expr(a.$value()),")")})}(i[0],l('Base'))}(i[0],i)}(i[0],i)},Opal.modules["opal/nodes/constants"]=function(a){var f=a.module,d=a.klass,b=a.truthy,h=a.eqeq,c=a.def,i=a.const_set,j=a.top,g=[],e=a.nil;return a.add_stubs('require,handle,children,magical_data_const?,push,optimized_access?,helper,name,==,const_scope,s,absolute_const,top_scope,recv,eval?,compiler,relative_access,scope,nil?,eof_content,freeze,include?,base,expr,value,nesting'),j.$require("opal/nodes/base"),function(j,k){var l=f(j,'Opal'),g=[l].concat(k);return function(k,l){var m=f(k,'Nodes'),g=[m].concat(l),j=a.$r(g);return function(j,k,l){var f=d(j,k,'ConstNode'),g=[f].concat(l),m=a.$r(g);return f.$handle("const"),f.$children("const_scope","name"),c(f,'$compile',function(){var a=this;return b(a['$magical_data_const?']())?a.$push("$__END__"):b(a['$optimized_access?']())?(a.$helper(""+a.$name()),a.$push("$"+a.$name())):h(a.$const_scope(),a.$s("cbase"))?a.$push(""+a.$top_scope().$absolute_const()+"('"+a.$name()+"')"):b(a.$const_scope())?a.$push(""+a.$top_scope().$absolute_const()+"(",a.$recv(a.$const_scope()),", '"+a.$name()+"')"):b(a.$compiler()['$eval?']())?a.$push(""+a.$scope().$relative_access()+"('"+a.$name()+"')"):a.$push(""+a.$scope().$relative_access()+"('"+a.$name()+"')")}),c(f,'$magical_data_const?',function(){var a=this,c=e,d=e;return b(c=b(d=a.$const_scope()['$nil?']())?a.$name()['$==']("DATA"):d)?a.$compiler().$eof_content():c}),i(g[0],'OPTIMIZED_ACCESS_CONSTS',["BasicObject","Object","Module","Class","Opal","Kernel","NilClass"].$freeze()),c(f,'$optimized_access?',function(){var a=this,c=e;return b(c=a.$const_scope()['$=='](a.$s("cbase")))?m('OPTIMIZED_ACCESS_CONSTS')['$include?'](a.$name()):c})}(g[0],j('Base'),g),function(b,e){var a=d(b,e,'CbaseNode');return a.$handle("cbase"),c(a,'$compile',function(){var a=this;return a.$push("'::'")})}(g[0],j('Base')),function(e,f){var a=d(e,f,'ConstAssignNode');return a.$handle("casgn"),a.$children("base","name","value"),c(a,'$compile',function(){var a=this;return a.$helper("const_set"),b(a.$base())?a.$push("$const_set(",a.$expr(a.$base()),", '"+a.$name()+"', ",a.$expr(a.$value()),")"):a.$push("$const_set("+a.$scope().$nesting()+"[0], '"+a.$name()+"', ",a.$expr(a.$value()),")")})}(g[0],j('Base'))}(g[0],g)}(g[0],g)},Opal.modules.pathname=function(c){var w=c.klass,o=c.const_set,r=c.regexp,h=c.eqeqeq,b=c.truthy,i=c.eqeq,d=c.def,v=c.defs,g=c.to_ary,n=c.slice,e=c.send,q=c.to_a,s=c.return_ivar,l=c.neqeq,f=c.rb_plus,p=c.not,x=c.thrower,k=c.alias,t=c.module,u=c.top,j=[],a=c.nil,m=c.$$$;return c.add_stubs('require,include,quote,===,to_s,path,respond_to?,to_path,is_a?,nil?,raise,class,==,new,pwd,attr_reader,!,relative?,chop_basename,basename,=~,source,[],rindex,sub,absolute?,hash,expand_path,plus,unshift,length,!=,empty?,first,shift,+,join,dirname,pop,reverse_each,directory?,extname,<=>,nonzero?,proc,casecmp,cleanpath,inspect,include?,fill,map,entries'),u.$require("corelib/comparable"),function(y,z,A){var t=w(y,z,'Pathname'),u=[t].concat(A),j=c.$r(u),B=t.$$prototype;return B.path=a,t.$include(j('Comparable')),o(u[0],'SEPARATOR_PAT',r([j('Regexp').$quote(m(j('File'),'SEPARATOR'))])),d(t,'$initialize',function(c){var d=this;return h(j('Pathname'),c)?d.path=c.$path().$to_s():b(c['$respond_to?']("to_path"))?d.path=c.$to_path():b(c['$is_a?'](j('String')))?d.path=c:b(c['$nil?']())?d.$raise(j('TypeError'),"no implicit conversion of nil into String"):d.$raise(j('TypeError'),"no implicit conversion of "+c.$class()+" into String"),i(d.path,"\u0000")?d.$raise(j('ArgumentError')):a}),v(t,'$pwd',function(){var a=this;return a.$new(j('Dir').$pwd())}),t.$attr_reader("path"),d(t,'$==',function(a){var b=this;return a.$path()['$=='](b.path)}),d(t,'$absolute?',function(){var a=this;return a['$relative?']()['$!']()}),d(t,'$relative?',function(){var d,e,f=this,c=a,h=a;for(c=f.path;b(h=f.$chop_basename(c));)e=h,d=g(e),c=d[0]==null?a:d[0],e;return c['$==']("")}),d(t,'$chop_basename',function(d){var c=a;return c=j('File').$basename(d),b(j('Regexp').$new("^"+m(j('Pathname'),'SEPARATOR_PAT').$source()+"?$")['$=~'](c))?a:[d['$[]'](0,d.$rindex(c)),c]}),d(t,'$root?',function(){var a=this;return a.path['$==']("/")}),d(t,'$parent',function(){var d=this,c=a;return c=d.path.$sub(/\/([^\/]+\/?$)/,""),i(c,"")&&(c=b(d['$absolute?']())?"/":"."),j('Pathname').$new(c)}),d(t,'$sub',function(f){var a,b,c=this;return a=n(arguments),b=a,j('Pathname').$new(e(c.path,'sub',q(b)))},-1),d(t,'$cleanpath',function(){var a=this;return c.normalize(a.path)}),d(t,'$to_path',s("path")),d(t,'$hash',function(){var a=this;return a.path.$hash()}),d(t,'$expand_path',function(){var a=this;return j('Pathname').$new(j('File').$expand_path(a.path))}),d(t,'$+',function(a){var b=this;return h(j('Pathname'),a)||(a=j('Pathname').$new(a)),j('Pathname').$new(b.$plus(b.path,a.$to_s()))}),d(t,'$plus',function(y,v){var h,n,u=this,o=a,m=a,d=a,x=a,w=a,e=a,q=a,k=a,s=a,t=a;for(o=v,m=[],d=[];b(x=u.$chop_basename(o));)n=x,h=g(n),o=h[0]==null?a:h[0],w=h[1]==null?a:h[1],n,m.$unshift(o.$length()),d.$unshift(w);if(l(o,""))return v;for(e=y;b(!0);){while(b(b(q=d['$empty?']()['$!']())?d.$first()['$==']("."):q))m.$shift(),d.$shift();if(!b(k=u.$chop_basename(e)))break;if(n=k,h=g(n),e=h[0]==null?a:h[0],s=h[1]==null?a:h[1],n,i(s,"."))continue;if(i(s,"..")||b(d['$empty?']())||l(d.$first(),"..")){e=f(e,s);break}m.$shift(),d.$shift()}if(k=u.$chop_basename(e),p(k)&&b(r([j('SEPARATOR_PAT')])['$=~'](j('File').$basename(e))))while(b(b(q=d['$empty?']()['$!']())?d.$first()['$=='](".."):q))m.$shift(),d.$shift();return p(d['$empty?']())?(t=v['$[]'](c.Range.$new(m.$first(),-1,!1)),b(k))?j('File').$join(e,t):f(e,t):b(k)?e:j('File').$dirname(e)}),d(t,'$join',function(l){var d,i,g,k,c;try{return d=x('return'),k=this,c=a,i=n(arguments),g=i,b(g['$empty?']())?k:(c=g.$pop(),h(j('Pathname'),c)||(c=j('Pathname').$new(c)),b(c['$absolute?']()))?c:(e(g,'reverse_each',[],function g(e){if(e==null&&(e=a),h(j('Pathname'),e)||(e=j('Pathname').$new(e)),c=f(e,c),b(c['$absolute?']()))d.$throw(c,g.$$is_lambda);else return a},{$$ret:d}),f(k,c))}catch(a){if(a===d)return a.$v;throw a}finally{d.is_orphan=!0}},-1),d(t,'$split',function(){var a=this;return[a.$dirname(),a.$basename()]}),d(t,'$dirname',function(){var a=this;return j('Pathname').$new(j('File').$dirname(a.path))}),d(t,'$basename',function(){var a=this;return j('Pathname').$new(j('File').$basename(a.path))}),d(t,'$directory?',function(){var a=this;return j('File')['$directory?'](a.path)}),d(t,'$extname',function(){var a=this;return j('File').$extname(a.path)}),d(t,'$<=>',function(a){var b=this;return b.$path()['$<=>'](a.$path())}),o(u[0],'SAME_PATHS',b(m(j('File'),'FNM_SYSCASE')['$nonzero?']())?e(t,'proc',[],function(b,c){return b==null&&(b=a),c==null&&(c=a),b.$casecmp(c)['$=='](0)}):e(t,'proc',[],function(b,c){return b==null&&(b=a),c==null&&(c=a),b['$=='](c)})),d(t,'$relative_path_from',function(o){var c,i,n=this,t=a,m=a,h=a,r=a,k=a,p=a,d=a,u=a,v=a,s=a;for(t=n.$cleanpath().$to_s(),o=o.$cleanpath().$to_s(),m=t,h=[];b(r=n.$chop_basename(m));)i=r,c=g(i),m=c[0]==null?a:c[0],k=c[1]==null?a:c[1],i,l(k,".")&&h.$unshift(k);for(p=o,d=[];b(r=n.$chop_basename(p));)i=r,c=g(i),p=c[0]==null?a:c[0],k=c[1]==null?a:c[1],i,l(k,".")&&d.$unshift(k);for(b(j('SAME_PATHS')['$[]'](m,p))||n.$raise(j('ArgumentError'),"different prefix: "+m.$inspect()+" and "+o.$inspect());b(b(u=b(v=h['$empty?']()['$!']())?d['$empty?']()['$!']():v)?j('SAME_PATHS')['$[]'](h.$first(),d.$first()):u);)h.$shift(),d.$shift();return b(d['$include?'](".."))&&n.$raise(j('ArgumentError'),"base_directory has ..: "+o.$inspect()),d.$fill(".."),s=f(d,h),b(s['$empty?']())?j('Pathname').$new("."):j('Pathname').$new(e(j('File'),'join',q(s)))}),d(t,'$entries',function(){var b=this;return e(j('Dir').$entries(b.path),'map',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),d.$class().$new(b)},{$$s:b})}),k(t,"===","=="),k(t,"eql?","=="),k(t,"to_s","to_path"),k(t,"to_str","to_path")}(j[0],null,j),function(b,e){var a=t(b,'Kernel'),f=[a].concat(e),g=c.$r(f);return d(a,'$Pathname',function(a){return g('Pathname').$new(a)})}(j[0],j)},Opal.modules["opal/nodes/call"]=function(e){var n=e.module,m=e.klass,l=e.const_set,c=e.send,w=e.defs,i=e.slice,v=e.send2,u=e.find_super,g=e.to_a,b=e.truthy,d=e.def,f=e.eqeq,t=e.rb_plus,o=e.not,p=e.neqeq,q=e.to_ary,r=e.Opal,s=e.range,j=e.top,k=[],a=e.nil,h=e.$$$;return e.add_stubs('require,handle,attr_reader,freeze,[]=,define_method,to_proc,include?,type,s,handle_special,record_method_call,compiler,meth,with_wrapper,using_eval?,compile_eval_var,using_irb?,compile_irb_var,default_compile,private,iter,[],meta,splat?,call_is_writer_that_needs_handling?,!,empty?,collect_refinements_temps,scope,==,auto_await?,push,await_encountered=,iter_has_break?,push_closure,invoke_using_refinement?,compile_using_refined_send,invoke_using_send?,compile_using_send,compile_simple_call_chain,pop_closure,helper,compile_receiver,compile_method_name,compile_arguments,compile_block_pass,compile_refinements,recv,receiver_sexp,expr,arglist,children,map,method_jsid,any?,recvr,mid_to_jsid,to_s,with_temp,intern,irb?,top?,variable_like?,eval?,scope_variables,nil?,updated,async_await,!=,match?,method,arity,each,add_special,to_sym,call,inline_operators?,fragment,resolve,new,<<,requires,file,dirname,cleanpath,join,Pathname,self,inspect,process,length,warning,autoloads,required_trees,force_encoding,encoding,+,handle_block_given_call,def?,mid,module_name,count,accepts_using?,using_refinement,first,refinements_temp,arity_check?,defines_lambda,push_nesting?,nesting,thrower,new_temp,scope_locals,source_location,size,last,csend?,handle_conditional_send,handle_writer,expr?,recv?,=~,wrap,dynamic_require_severity,handle_part,is_a?,expand_path,split,error,line,each_with_object,pop'),j.$require("set"),j.$require("pathname"),j.$require("opal/nodes/base"),function(k,x){var y=n(k,'Opal'),j=[y].concat(x);return function(k,x){var y=n(k,'Nodes'),j=[y].concat(x),z=e.$r(j);return function(A,y,z){var j=m(A,y,'CallNode'),n=[j].concat(z),k=e.$r(n),x=j.$$prototype;return x.sexp=x.conditional_recvr=x.with_writer_temp=x.compiler=a,j.$handle("send","csend"),j.$attr_reader("recvr","meth","arglist","iter"),l(n[0],'SPECIALS',new Map),l(n[0],'OPERATORS',new Map([["+","plus"],["-","minus"],["*","times"],["/","divide"],["<","lt"],["<=","le"],[">","gt"],[">=","ge"]]).$freeze()),w(j,'$add_special',function d(e,b){var f=d.$$p||a,g=this;return d.$$p=null,b==null&&(b=new Map),k('SPECIALS')['$[]='](e,b),c(g,'define_method',["handle_"+e],f.$to_proc())},-2),d(j,'$initialize',function k(p){var m,l,d,f,o=k.$$p||a,e=this,h=a,n=a,j=a;return k.$$p=null,m=i(arguments),l=m,v(e,u(e,'initialize',k,!1,!0),'initialize',g(l),o),d=[].concat(g(e.sexp)),e.recvr=d[0]==null?a:d[0],e.meth=d[1]==null?a:d[1],h=i(d,2),d,d=[].concat(g(h)),f=d.length-1,f=f<0?0:f,n=i(d,0,f),j=d[f]==null?a:d[f],d,b(j)&&b(["iter","block_pass"]['$include?'](j.$type()))?(e.iter=j,h=n):e.iter=a,e.arglist=c(e,'s',["arglist"].concat(g(h)))},-1),d(j,'$compile',function(){var a=this;return c(a,'handle_special',[],function d(){var a=d.$$s==null?this:d.$$s;return a.$compiler().$record_method_call(a.$meth()),c(a,'with_wrapper',[],function c(){var a=c.$$s==null?this:c.$$s;return b(a['$using_eval?']())?a.$compile_eval_var():b(a['$using_irb?']())?a.$compile_irb_var():a.$default_compile()},{$$s:a})},{$$s:a})}),j.$private(),d(j,'$iter_has_break?',function(){var a=this;return!!b(a.$iter())&&a.$iter().$meta()['$[]']("has_break")}),d(j,'$invoke_using_send?',function(){var c=this,d=a,e=a;return b(d=b(e=c.$iter())?e:c['$splat?']())?d:c['$call_is_writer_that_needs_handling?']()}),d(j,'$invoke_using_refinement?',function(){var a=this;return a.$scope().$scope().$collect_refinements_temps()['$empty?']()['$!']()}),d(j,'$csend?',function(){var a=this;return a.sexp.$type()['$==']("csend")}),d(j,'$default_compile',function(){var c=this;return b(c['$auto_await?']())&&(c.$push("(await "),c.$scope()['$await_encountered='](!0)),b(c['$iter_has_break?']())&&c.$push_closure(h(k('Closure'),'SEND')),b(c['$invoke_using_refinement?']())?c.$compile_using_refined_send():b(c['$invoke_using_send?']())?c.$compile_using_send():c.$compile_simple_call_chain(),b(c['$iter_has_break?']())&&c.$pop_closure(),b(c['$auto_await?']())?c.$push(")"):a}),d(j,'$compile_using_send',function(){var a=this;return a.$helper("send"),a.$push("$send("),a.$compile_receiver(),a.$compile_method_name(),a.$compile_arguments(),a.$compile_block_pass(),a.$push(")")}),d(j,'$compile_using_refined_send',function(){var a=this;return a.$helper("refined_send"),a.$push("$refined_send("),a.$compile_refinements(),a.$compile_receiver(),a.$compile_method_name(),a.$compile_arguments(),a.$compile_block_pass(),a.$push(")")}),d(j,'$compile_receiver',function(){var c=this,d=a;return c.$push(b(d=c.conditional_recvr)?d:c.$recv(c.$receiver_sexp()))}),d(j,'$compile_method_name',function(){var a=this;return a.$push(", '"+a.$meth()+"'")}),d(j,'$compile_arguments',function(c){var a=this;return c==null&&(c=!1),b(c)||a.$push(", "),b(a.with_writer_temp)?a.$push(a.with_writer_temp):b(a['$splat?']())?a.$push(a.$expr(a.$arglist())):b(a.$arglist().$children()['$empty?']())?a.$push("[]"):a.$push("[",a.$expr(a.$arglist()),"]")},-1),d(j,'$compile_block_pass',function(){var c=this;return b(c.$iter())?c.$push(", ",c.$expr(c.$iter())):a}),d(j,'$compile_refinements',function(){var b=this,d=a;return d=c(b.$scope().$collect_refinements_temps(),'map',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),d.$s("js_tmp",b)},{$$s:b}),b.$push(b.$expr(c(b,'s',["array"].concat(g(d)))),", ")}),d(j,'$compile_simple_call_chain',function(){var a=this;return a.$compile_receiver(),a.$push(a.$method_jsid(),"(",a.$expr(a.$arglist()),")")}),d(j,'$splat?',function(){var b=this;return c(b.$arglist().$children(),'any?',[],function(b){return b==null&&(b=a),b.$type()['$==']("splat")})}),d(j,'$receiver_sexp',function(){var c=this,d=a;return b(d=c.$recvr())?d:c.$s("self")}),d(j,'$method_jsid',function(){var a=this;return a.$mid_to_jsid(a.$meth().$to_s())}),d(j,'$compile_irb_var',function(){var b=this;return c(b,'with_temp',[],function e(c){var b=e.$$s==null?this:e.$$s,d=a,f=a,g=a;return c==null&&(c=a),d=b.$meth(),f=b.$s("send",b.$s("self"),b.$meth().$intern(),b.$s("arglist")),g="(typeof "+d+" !== 'undefined') ? "+d+" : ",b.$push("(("+c+" = Opal.irb_vars."+d+") == null ? ",g,b.$expr(f)," : "+c+")")},{$$s:b})}),d(j,'$compile_eval_var',function(){var a=this;return a.$push(a.$meth().$to_s())}),d(j,'$using_irb?',function(){var c=this,d=a,e=a;return b(d=b(e=c.compiler['$irb?']())?c.$scope()['$top?']():e)?c['$variable_like?']():d}),d(j,'$using_eval?',function(){var c=this,d=a,e=a;return b(d=b(e=c.compiler['$eval?']())?c.$scope()['$top?']():e)?c.compiler.$scope_variables()['$include?'](c.$meth()):d}),d(j,'$variable_like?',function(){var c=this,d=a,e=a;return b(d=b(e=c.$arglist()['$=='](c.$s("arglist")))?c.$recvr()['$nil?']():e)?c.$iter()['$nil?']():d}),d(j,'$sexp_with_arglist',function(){var b=this;return b.sexp.$updated(a,[b.$recvr(),b.$meth(),b.$arglist()])}),d(j,'$auto_await?',function(){var d=this,c=a,e=a,f=a;return c=d.$compiler().$async_await(),b(e=b(f=c)?c['$!='](!0):f)?c['$match?'](d.$meth().$to_s()):e}),d(j,'$handle_special',function g(){var h=g.$$p||a,d=this,c=a;return g.$$p=null,b(k('SPECIALS')['$include?'](d.$meth()))?(c=d.$method("handle_"+d.$meth()),f(c.$arity(),1))?c['$[]'](h):c['$[]']():e.yieldX(h,[])}),c(k('OPERATORS'),'each',[],function f(d,e){var g=f.$$s==null?this:f.$$s;return d==null&&(d=a),e==null&&(e=a),c(g,'add_special',[d.$to_sym()],function h(f){var g,c=h.$$s==null?this:h.$$s,i=a,j=a;return f==null&&(f=a),b(c['$invoke_using_refinement?']())?f.$call():b(c.$compiler()['$inline_operators?']())?(c.$compiler().$record_method_call(d),c.$helper("rb_"+e),g=[c.$expr(c.$recvr()),c.$expr(c.$arglist())],i=g[0],j=g[1],g,c.$push(c.$fragment("$rb_"+e+"(")),c.$push(i),c.$push(c.$fragment(", ")),c.$push(j),c.$push(c.$fragment(")"))):f.$call()},{$$s:g})},{$$s:j}),c(j,'add_special',["require"],function f(c){var d=f.$$s==null?this:f.$$s,e=a;return c==null&&(c=a),e=k('DependencyResolver').$new(d.$compiler(),d.$arglist().$children()['$[]'](0)).$resolve(),b(e['$nil?']())||d.$compiler().$requires()['$<<'](e),c.$call()},{$$s:j}),c(j,'add_special',["require_relative"],function e(){var b=e.$$s==null?this:e.$$s,c=a,d=a,g=a;return c=b.$arglist().$children()['$[]'](0),d=b.$compiler().$file(),f(c.$type(),"str")&&(g=k('File').$dirname(d),b.$compiler().$requires()['$<<'](b.$Pathname(g).$join(c.$children()['$[]'](0)).$cleanpath().$to_s())),b.$push(b.$fragment(""+b.$scope().$self()+".$require("+d.$inspect()+"+ '/../' + ")),b.$push(b.$process(b.$arglist())),b.$push(b.$fragment(")"))},{$$s:j}),c(j,'add_special',["autoload"],function h(g){var c=h.$$s==null?this:h.$$s,d=a,e=a;return g==null&&(g=a),d=c.$arglist().$children(),f(d.$length(),2)&&f(d['$[]'](0).$type(),"sym")&&(e=k('DependencyResolver').$new(c.$compiler(),d['$[]'](1),"ignore").$resolve(),b(e['$nil?']())?c.$compiler().$warning("File for autoload of constant '"+d['$[]'](0).$children()['$[]'](0)+"' could not be bundled!"):(c.$compiler().$requires()['$<<'](e),c.$compiler().$autoloads()['$<<'](e))),g.$call()},{$$s:j}),c(j,'add_special',["require_tree"],function m(h){var d,b=m.$$s==null?this:m.$$s,c=a,l=a,e=a,n=a,j=a;return h==null&&(h=a),d=[].concat(g(b.$arglist().$children())),c=d[0]==null?a:d[0],l=i(d,1),d,f(c.$type(),"str")&&(e=c.$children()['$[]'](0),b.$compiler().$required_trees()['$<<'](e),n=k('File').$dirname(b.$compiler().$file()),j=b.$Pathname(n).$join(e).$cleanpath().$to_s(),j.$force_encoding(e.$encoding()),c=c.$updated(a,[j])),b.arglist=b.$arglist().$updated(a,t([c],l)),h.$call()},{$$s:j}),c(j,'add_special',["block_given?"],function c(){var b=c.$$s==null?this:c.$$s;return b.sexp==null&&(b.sexp=a),b.$push(b.$compiler().$handle_block_given_call(b.sexp))},{$$s:j}),c(j,'add_special',["__callee__"],function c(){var a=c.$$s==null?this:c.$$s;return b(a.$scope()['$def?']())?a.$push(a.$fragment(a.$scope().$mid().$to_s().$inspect())):a.$push(a.$fragment("nil"))},{$$s:j}),c(j,'add_special',["__method__"],function c(){var a=c.$$s==null?this:c.$$s;return b(a.$scope()['$def?']())?a.$push(a.$fragment(a.$scope().$mid().$to_s().$inspect())):a.$push(a.$fragment("nil"))},{$$s:j}),c(j,'add_special',["__dir__"],function a(){var b=a.$$s==null?this:a.$$s;return b.$push(k('File').$dirname(h(k('Opal'),'Compiler').$module_name(b.$compiler().$file())).$inspect())},{$$s:j}),c(j,'add_special',["using"],function e(d){var c=e.$$s==null?this:e.$$s;return d==null&&(d=a),b(c.$scope()['$accepts_using?']())&&f(c.$arglist().$children().$count(),1)?c.$using_refinement(c.$arglist().$children().$first()):d.$call()},{$$s:j}),d(j,'$using_refinement',function(h){var d,c=this,f=a,e=a;return d=[].concat(g(c.$scope().$refinements_temp())),f=d[0]==null?a:d[0],e=d[1]==null?a:d[1],d,b(f)?c.$push("("+e+" = "+f+".slice(), "+e+".push(",c.$expr(h),"), "+c.$scope().$self()+")"):c.$push("("+e+" = [",c.$expr(h),"], "+c.$scope().$self()+")")}),c(j,'add_special',["debugger"],function a(){var b=a.$$s==null?this:a.$$s;return b.$push(b.$fragment("debugger"))},{$$s:j}),c(j,'add_special',["__OPAL_COMPILER_CONFIG__"],function b(){var a=b.$$s==null?this:b.$$s;return a.$push(a.$fragment("(new Map([['arity_check', "+a.$compiler()['$arity_check?']()+"]]))"))},{$$s:j}),c(j,'add_special',["lambda"],function d(b){var e=d.$$s==null?this:d.$$s;return b==null&&(b=a),c(e.$scope(),'defines_lambda',[],function(){return b.$call()})},{$$s:j}),c(j,'add_special',["nesting"],function f(d){var c=f.$$s==null?this:f.$$s,e=a;return d==null&&(d=a),e=c['$push_nesting?'](),b(e)&&c.$push("(Opal.Module.$$nesting = "+c.$scope().$nesting()+", "),d.$call(),b(e)?c.$push(")"):a},{$$s:j}),c(j,'add_special',["constants"],function f(d){var c=f.$$s==null?this:f.$$s,e=a;return d==null&&(d=a),e=c['$push_nesting?'](),b(e)&&c.$push("(Opal.Module.$$nesting = "+c.$scope().$nesting()+", "),d.$call(),b(e)?c.$push(")"):a},{$$s:j}),c(j,'add_special',["eval"],function f(e){var b=f.$$s==null?this:f.$$s,d=a,g=a;return e==null&&(e=a),b.$thrower("eval_return"),p(b.$arglist().$children().$length(),1)||o([b.$s("self"),a]['$include?'](b.$recvr()))?e.$call():(b.$scope().$nesting(),d=b.$scope().$new_temp(),g=c(b.$scope().$scope_locals(),'map',[],"to_s".$to_proc()).$inspect(),b.$push("("+d+" = ",b.$expr(b.$arglist())),b.$push(", typeof Opal.compile === 'function' ? eval(Opal.compile("+d),b.$push(", {scope_variables: ",g),b.$push(", arity_check: "+b.$compiler()['$arity_check?']()+", file: '(eval)', eval: true})) : "),b.$push(""+b.$scope().$self()+".$eval("+d+"))"))},{$$s:j}),c(j,'add_special',["local_variables"],function f(e){var d=f.$$s==null?this:f.$$s,g=a;return e==null&&(e=a),!b([d.$s("self"),a]['$include?'](d.$recvr()))?e.$call():(g=c(d.$scope().$scope_locals(),'map',[],"to_s".$to_proc()).$inspect(),d.$push(g))},{$$s:j}),c(j,'add_special',["binding"],function f(e){var d=f.$$s==null?this:f.$$s;return e==null&&(e=a),!b(d.$recvr()['$nil?']())?e.$call():(d.$scope().$nesting(),d.$push("Opal.Binding.$new("),d.$push(" function($code) {"),d.$push(" return eval($code);"),d.$push(" },"),d.$push(" ",c(d.$scope().$scope_locals(),'map',[],"to_s".$to_proc()).$inspect(),","),d.$push(" ",d.$scope().$self(),","),d.$push(" ",d.$source_location()),d.$push(")"))},{$$s:j}),c(j,'add_special',["__await__"],function g(f){var e,d=g.$$s==null?this:g.$$s;return f==null&&(f=a),b(d.$compiler().$async_await())?(d.$push(d.$fragment("(await (")),d.$push(d.$process(d.$recvr())),d.$push(d.$fragment("))")),(e=[!0],c(d.$scope(),'await_encountered=',e),e[e.length-1])):f.$call()},{$$s:j}),d(j,'$push_nesting?',function(){var d=this,c=a,e=a,f=a,g=a;return c=d.$children().$first(),b(e=d.$children().$size()['$=='](2))?b(f=c['$nil?']())?f:b(g=c.$type()['$==']("const"))?c.$children().$last()['$==']("Module"):g:e}),d(j,'$with_wrapper',function g(){var f=g.$$p||a,d=this;return g.$$p=null,b(d['$csend?']())&&o(d.conditional_recvr)?c(d,'handle_conditional_send',[],function a(){var b=a.$$s==null?this:a.$$s;return c(b,'with_wrapper',[],f.$to_proc())},{$$s:d}):b(d['$call_is_writer_that_needs_handling?']())?c(d,'handle_writer',[],f.$to_proc()):e.yieldX(f,[])}),d(j,'$call_is_writer_that_needs_handling?',function(){var c=this,e=a,d=a;return b(e=b(d=c['$expr?']())?d:c['$recv?']())?b(d=c.$meth().$to_s()['$=~'](/^\w+=$/))?d:c.$meth()['$==']("[]="):e}),d(j,'$handle_conditional_send',function d(){var f=d.$$p||a,b=this,c=a;return d.$$p=null,c=b.$scope().$new_temp(),b.$push(""+c+" = ",b.$expr(b.$receiver_sexp())),b.$push(", ("+c+" === nil || "+c+" == null) ? nil : "),b.conditional_recvr=c,e.yieldX(f,[]),b.$wrap("(",")")}),d(j,'$handle_writer',function b(){var f=b.$$p||a,d=this;return b.$$p=null,c(d,'with_temp',[],function d(c){var b=d.$$s==null?this:d.$$s;return c==null&&(c=a),b.$push("("+c+" = "),b.$compile_arguments(!0),b.$push(", "),b.with_writer_temp=c,e.yieldX(f,[]),b.with_writer_temp=!1,b.$push(", "),b.$push(""+c+"["+c+".length - 1])")},{$$s:d})}),function(t,n,o){var j=m(t,n,'DependencyResolver'),p=[j].concat(o),l=e.$r(p),k=j.$$prototype;return k.compiler=k.sexp=k.missing_dynamic_require=a,d(j,'$initialize',function(f,g,d){var c=this,e=a;return d==null&&(d=a),c.compiler=f,c.sexp=g,c.missing_dynamic_require=b(e=d)?e:c.compiler.$dynamic_require_severity()},-3),d(j,'$resolve',function(){var a=this;return a.$handle_part(a.sexp)}),d(j,'$handle_part',function(e,o){var j,p,d=this,n=a,k=a,t=a,m=a;if(o==null&&(o=d.missing_dynamic_require),b(e))switch(e.$type().valueOf()){case"str":return e.$children()['$[]'](0);case"dstr":return c(e.$children(),'map',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),d.$handle_part(b)},{$$s:d}).$join();case"begin":if(f(e.$children().$length(),1))return d.$handle_part(e.$children()['$[]'](0));break;case"send":if(p=e.$children(),j=q(p),n=j[0]==null?a:j[0],k=j[1]==null?a:j[1],t=i(j,2),p,m=c(t,'map',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),d.$handle_part(b,"ignore")},{$$s:d}),b(m['$include?'](a)))return a;if(b(n['$is_a?'](h(h(r,'AST'),'Node')))&&f(n.$type(),"const")&&f(n.$children().$last(),"File")){{if(f(k,"expand_path"))return c(d,'expand_path',g(m));if(f(k,"join"))return d.$expand_path(m.$join("/"));if(f(k,"dirname"))return d.$expand_path(m['$[]'](0).$split("/")['$[]'](s(0,-1,!0)).$join("/"))}}else if(f(k,"__dir__"))return l('File').$dirname(h(l('Opal'),'Compiler').$module_name(d.compiler.$file()));break;default:a}switch(o.valueOf()){case"error":return d.compiler.$error("Cannot handle dynamic require",d.sexp.$line());case"warning":return d.compiler.$warning("Cannot handle dynamic require",d.sexp.$line());default:return a}},-2),d(j,'$expand_path',function(d,b){return b==null&&(b=""),c((""+b+"/"+d).$split("/"),'each_with_object',[[]],function(b,c){return b==null&&(b=a),c==null&&(c=a),f(b,"")?a:f(b,"..")?c.$pop():c['$<<'](b)}).$join("/")},-2)}(n[0],null,n)}(j[0],z('Base'),j)}(j[0],j)}(k[0],k)},Opal.modules["opal/nodes/call_special"]=function(a){var k=a.module,d=a.klass,b=a.def,l=a.slice,m=a.send2,n=a.find_super,g=a.to_a,f=a.truthy,j=a.eqeq,e=a.send,h=a.top,i=[],c=a.nil;return a.add_stubs('require,handle,children,push,recv,recvr,expr,property,value,<<,default_compile,meth,receiver_sexp,method_jsid,compile_arguments,iter,s,lhs,rhs,==,type,first,extract_names,empty?,generate_names_definition,generate_names_assignments,stmt?,handle_statement,handle_non_statement,process,private,map,flatten,scan,to_proc'),h.$require("opal/nodes/base"),h.$require("opal/nodes/call"),function(i,o){var p=k(i,'Opal'),h=[p].concat(o);return function(o,p){var q=k(o,'Nodes'),h=[q].concat(p),i=a.$r(h);return function(c,e){var a=d(c,e,'JsAttrNode');return a.$handle("jsattr"),a.$children("recvr","property"),b(a,'$compile',function(){var a=this;return a.$push(a.$recv(a.$recvr()),"[",a.$expr(a.$property()),"]")})}(h[0],i('Base')),function(c,e){var a=d(c,e,'JsAttrAsgnNode');return a.$handle("jsattrasgn"),a.$children("recvr","property","value"),b(a,'$compile',function(){var a=this;return a.$push(a.$recv(a.$recvr()),"[",a.$expr(a.$property()),"] = ",a.$expr(a.$value()))})}(h[0],i('Base')),function(h,i){var a=d(h,i,'JsCallNode'),e=a.$$prototype;return e.iter=e.arglist=c,a.$handle("jscall"),b(a,'$initialize',function b(i){var d,e,h=b.$$p||c,a=this;return b.$$p=null,d=l(arguments),e=d,m(a,n(a,'initialize',b,!1,!0),'initialize',g(e),h),f(a.iter)&&(a.arglist=a.arglist['$<<'](a.iter)),a.iter=c},-1),b(a,'$compile',function(){var a=this;return a.$default_compile()}),b(a,'$method_jsid',function(){var a=this;return"."+a.$meth()}),b(a,'$compile_using_send',function(){var a=this;return a.$push(a.$recv(a.$receiver_sexp()),a.$method_jsid(),".apply(null"),a.$compile_arguments(),f(a.$iter())&&a.$push(".concat(",a.$expr(a.$iter()),")"),a.$push(")")})}(h[0],i('CallNode')),function(h,i){var a=d(h,i,'Match3Node'),k=a.$$prototype;return k.level=c,a.$handle("match_with_lvasgn"),a.$children("lhs","rhs"),b(a,'$compile',function(){var a=this,b=c,d=c,e=c,g=c;return b=a.$s("send",a.$lhs(),"=~",a.$rhs()),j(a.$lhs().$type(),"regexp")&&j(a.$lhs().$children().$first().$type(),"str")&&(d=a.$extract_names(a.$lhs()),f(d['$empty?']())||(e=a.$generate_names_definition(),g=a.$generate_names_assignments(d),b=f(a['$stmt?']())?a.$handle_statement(b,e,g):a.$handle_non_statement(b,e,g))),a.$push(a.$process(b,a.level))}),a.$private(),b(a,'$extract_names',function(b){var a=c;return a=b.$children().$first().$children().$first(),e(a.$scan(/\(\?<([^>]*)>/).$flatten(),'map',[],"to_sym".$to_proc())}),b(a,'$generate_names_definition',function(){var a=this;return a.$s("lvasgn","$m3names",a.$s("if",a.$s("gvar","$~"),a.$s("send",a.$s("gvar","$~"),"named_captures"),a.$s("hash")))}),b(a,'$generate_names_assignments',function(a){var b=this;return e(a,'map',[],function d(a){var b=d.$$s==null?this:d.$$s;return a==null&&(a=c),b.$s("lvasgn",a,b.$s("send",b.$s("lvar","$m3names"),"[]",b.$s("sym",a)))},{$$s:b})}),b(a,'$handle_statement',function(a,b,c){var d=this;return e(d,'s',["begin",a,b].concat(g(c)))}),b(a,'$handle_non_statement',function(b,c,d){var a=this;return e(a,'s',["begin",a.$s("lvasgn","$m3tmp",b),c].concat(g(d)).concat([a.$s("lvar","$m3tmp")]))})}(h[0],i('Base'))}(h[0],h)}(i[0],i)},Opal.modules["opal/nodes/scope"]=function(d){var j=d.module,n=d.klass,s=d.slice,o=d.send2,r=d.find_super,i=d.to_a,b=d.def,e=d.send,c=d.truthy,m=d.assign_ivar_val,g=d.return_ivar,l=d.not,h=d.rb_plus,f=d.eqeq,p=d.thrower,q=d.top,k=[],a=d.nil;return d.add_stubs('require,attr_accessor,attr_reader,indent,scope,compiler,scope=,==,iter?,!,class?,dup,push,map,ivars,gvars,empty?,<<,parser_indent,join,+,fragment,def_in_class?,add_proto_ivar,include?,has_local?,|,scope_locals,reject,start_with?,to_s,has_temp?,unshift,pop,next_temp,loop,succ,uses_block!,identify!,valid_name?,mid,compact,parent,name,scope_name,unique_temp,lambda?,def?,type,nil?,rescue_else_sexp,last,class,collect_refinements_temps,add_scope_local,new_refinements_temp,identity,block_name=,add_temp,block_name,line'),q.$require("opal/nodes/base"),function(q,t){var u=j(q,'Opal'),k=[u].concat(t);return function(q,t){var u=j(q,'Nodes'),k=[u].concat(t),v=d.$r(k);return function(w,t,u){var j=n(w,t,'ScopeNode'),v=[j].concat(u),q=d.$r(v),k=j.$$prototype;return k.type=k.is_lambda=k.defs=k.parent=k.temps=k.locals=k.proto_ivars=k.compiler=k.ivars=k.gvars=k.args=k.queue=k.while_stack=k.identity=k.rescues=k.next_retry_id=k.refinements_temp=k.block_prepared=a,j.$attr_accessor("parent"),j.$attr_accessor("name"),j.$attr_accessor("block_name"),j.$attr_reader("scope_name"),j.$attr_reader("locals"),j.$attr_reader("ivars"),j.$attr_reader("gvars"),j.$attr_accessor("mid"),j.$attr_accessor("defs"),j.$attr_reader("methods"),j.$attr_accessor("catch_return","has_break","has_retry"),j.$attr_accessor("rescue_else_sexp"),b(j,'$initialize',function c(g){var d,e,f=c.$$p||a,b=this;return c.$$p=null,d=s(arguments),e=d,o(b,r(b,'initialize',c,!1,!0),'initialize',i(e),f),b.locals=[],b.temps=[],b.args=[],b.ivars=[],b.gvars=[],b.parent=a,b.queue=[],b.unique="a",b.while_stack=[],b.identity=a,b.defs=a,b.methods=[],b.uses_block=!1,b.in_ensure=!1,b.proto_ivars=[]},-1),b(j,'$in_scope',function b(){var f=b.$$p||a,c=this;return b.$$p=null,e(c,'indent',[],function g(){var c,b=g.$$s==null?this:g.$$s;return b.parent==null&&(b.parent=a),b.parent=b.$compiler().$scope(),b.$compiler()['$scope='](b),d.yield1(f,b),(c=[b.parent],e(b.$compiler(),'scope=',c),c[c.length-1])},{$$s:c})}),b(j,'$class_scope?',function(){var b=this,d=a;return c(d=b.type['$==']("class"))?d:b.type['$==']("module")}),b(j,'$class?',function(){var a=this;return a.type['$==']("class")}),b(j,'$module?',function(){var a=this;return a.type['$==']("module")}),b(j,'$sclass?',function(){var a=this;return a.type['$==']("sclass")}),b(j,'$top?',function(){var a=this;return a.type['$==']("top")}),b(j,'$iter?',function(){var a=this;return a.type['$==']("iter")}),b(j,'$def?',function(){var b=this,d=a;return c(d=b.type['$==']("def"))?d:b.type['$==']("defs")}),b(j,'$lambda?',function(){var b=this,d=a;return c(d=b['$iter?']())?b.is_lambda:d}),b(j,'$is_lambda!',m("is_lambda",!0)),b(j,'$defines_lambda',function b(){var e=b.$$p||a,c=this;return b.$$p=null,c.lambda_definition=!0,d.yieldX(e,[]),c.lambda_definition=!1}),b(j,'$lambda_definition?',g("lambda_definition")),b(j,'$def_in_class?',function(){var b=this,d=a,e=a,f=a;return c(d=c(e=c(f=b.defs['$!']())?b.type['$==']("def"):f)?b.parent:e)?b.parent['$class?']():d}),b(j,'$to_vars',function(){var b=this,g=a,j=a,k=a,f=a,d=a,m=a;return g=b.temps.$dup(),e(g,'push',i(e(b.locals,'map',[],function(b){return b==null&&(b=a),""+b+" = nil"}))),j=e(b.$ivars(),'map',[],function(b){return b==null&&(b=a),"if (self"+b+" == null) self"+b+" = nil;\n"}),k=e(b.$gvars(),'map',[],function(b){return b==null&&(b=a),"if ($gvars"+b+" == null) $gvars"+b+" = nil;\n"}),c(b['$class?']())&&l(b.proto_ivars['$empty?']())&&g['$<<']("$proto = self.$$prototype"),f=b.compiler.$parser_indent(),d=c(g['$empty?']())?"":"var "+g.$join(", ")+";\n",c(b.$ivars()['$empty?']())||(d=h(d,""+f+j.$join(f))),c(b.$gvars()['$empty?']())||(d=h(d,""+f+k.$join(f))),c(b['$class?']())&&l(b.proto_ivars['$empty?']())&&(m=e(b.proto_ivars,'map',[],function(b){return b==null&&(b=a),"$proto"+b}).$join(" = "),d=""+d+"\n"+f+m+" = nil;"),b.$fragment(d)}),b(j,'$add_scope_ivar',function(d){var b=this;return c(b['$def_in_class?']())?b.parent.$add_proto_ivar(d):c(b.ivars['$include?'](d))?a:b.ivars['$<<'](d)}),b(j,'$add_scope_gvar',function(b){var d=this;return c(d.gvars['$include?'](b))?a:d.gvars['$<<'](b)}),b(j,'$add_proto_ivar',function(b){var d=this;return c(d.proto_ivars['$include?'](b))?a:d.proto_ivars['$<<'](b)}),b(j,'$add_arg',function(a){var b=this;return c(b.args['$include?'](a))||b.args['$<<'](a),a}),b(j,'$add_scope_local',function(b){var d=this;return c(d['$has_local?'](b))?a:d.locals['$<<'](b)}),b(j,'$has_local?',function(b){var a=this;return!!(c(a.locals['$include?'](b))||c(a.args['$include?'](b))||c(a.temps['$include?'](b)))||(!!(c(a.parent)&&f(a.type,"iter"))&&a.parent['$has_local?'](b))}),b(j,'$scope_locals',function(){var b=this,d=a;return d=b.locals['$|'](b.args)['$|'](c(b.parent)&&f(b.type,"iter")?b.parent.$scope_locals():[]),e(d,'reject',[],function(b){return b==null&&(b=a),b.$to_s()['$start_with?']("$")})}),b(j,'$add_scope_temp',function(b){var d=this;return c(d['$has_temp?'](b))?a:d.temps.$push(b)}),b(j,'$prepend_scope_temp',function(b){var d=this;return c(d['$has_temp?'](b))?a:d.temps.$unshift(b)}),b(j,'$has_temp?',function(a){var b=this;return b.temps['$include?'](a)}),b(j,'$new_temp',function(){var b=this,d=a;return c(b.queue['$empty?']())?(d=b.$next_temp(),b.temps['$<<'](d),d):b.queue.$pop()}),b(j,'$next_temp',function(){var d=this,b=a;return b=a,function(){try{var f=p('break');return e(d,'loop',[],function e(){var d=e.$$s==null?this:e.$$s;if(d.unique==null&&(d.unique=a),b="$"+d.unique,d.unique=d.unique.$succ(),c(d['$has_local?'](b)))return a;f.$throw(a,e.$$is_lambda)},{$$s:d})}catch(a){if(a===f)return a.$v;throw a}finally{f.is_orphan=!0}}(),b}),b(j,'$queue_temp',function(a){var b=this;return b.queue['$<<'](a)}),b(j,'$push_while',function(){var c=this,b=a;return b=new Map,c.while_stack.$push(b),b}),b(j,'$pop_while',function(){var a=this;return a.while_stack.$pop()}),b(j,'$in_while?',function(){var a=this;return a.while_stack['$empty?']()['$!']()}),b(j,'$uses_block!',function(){var a=this;return f(a.type,"iter")&&c(a.parent)?a.parent['$uses_block!']():(a.uses_block=!0,a['$identify!']())}),b(j,'$identify!',function(d){var b=this,e=a,f=a,g=a;return d==null&&(d=a),c(b.identity)?b.identity:(c(b['$valid_name?'](b.$mid()))?b.identity="$$"+b.$mid():(d=c(e=d)?e:[c(f=b.$parent())?c(g=b.$parent().$name())?g:b.$parent().$scope_name():f,b.$mid()].$compact().$join("_"),b.identity=b.compiler.$unique_temp(d)),b.identity)},-1),j.$attr_reader("identity"),b(j,'$find_parent_def',function(){var d=this,b=a;for(b=d;c(b=b.$parent());)if(c(b['$def?']())||c(b['$lambda?']()))return b;return a}),b(j,'$super_chain',function(){var d,i=this,g=a,b=a,h=a,e=a;for(d=[[],i,"null","null"],g=d[0],b=d[1],h=d[2],e=d[3],d;c(b);)if(f(b.$type(),"iter"))g['$<<'](b['$identify!']()),c(b.$parent())&&(b=b.$parent());else if(c(["def","defs"]['$include?'](b.$type()))){h=b['$identify!'](),e="'"+b.$mid()+"'";break}else break;return[g,h,e]}),b(j,'$uses_block?',g("uses_block")),b(j,'$has_rescue_else?',function(){var a=this;return a.$rescue_else_sexp()['$nil?']()['$!']()}),b(j,'$in_rescue',function e(h){var i=e.$$p||a,b=this,f=a,g=a;return e.$$p=null,b.rescues=c(f=b.rescues)?f:[],b.rescues.$push(h),g=d.yieldX(i,[]),b.rescues.$pop(),g}),b(j,'$current_rescue',function(){var a=this;return a.rescues.$last()}),b(j,'$in_resbody',function b(){var c=b.$$p||a,e=this,f=a;return b.$$p=null,!(c!==a)?a:(e.in_resbody=!0,f=d.yieldX(c,[]),e.in_resbody=!1,f)}),b(j,'$in_resbody?',g("in_resbody")),b(j,'$in_ensure',function b(){var c=b.$$p||a,e=this,f=a;return b.$$p=null,!(c!==a)?a:(e.in_ensure=!0,f=d.yieldX(c,[]),e.in_ensure=!1,f)}),b(j,'$in_ensure?',g("in_ensure")),b(j,'$gen_retry_id',function(){var b=this,d=a;return b.next_retry_id=c(d=b.next_retry_id)?d:"retry_0",b.next_retry_id=b.next_retry_id.$succ()}),b(j,'$accepts_using?',function(){var a=this;return[q('TopNode'),q('ModuleNode'),q('ClassNode'),q('IterNode')]['$include?'](a.$class())}),b(j,'$collect_refinements_temps',function(a){var b=this;return a==null&&(a=[]),c(b.refinements_temp)&&a['$<<'](b.refinements_temp),c(b.$parent())?b.$parent().$collect_refinements_temps(a):a},-1),b(j,'$new_refinements_temp',function(){var c=this,b=a;return b=c.$compiler().$unique_temp("$refn"),c.$add_scope_local(b),b}),b(j,'$refinements_temp',function(){var b,c=this,e=a,d=a;return b=[c.refinements_temp,c.$new_refinements_temp()],e=b[0],d=b[1],b,c.refinements_temp=d,[e,d]}),b(j,'$self',function(){var a=this;return a.define_self=!0,"self"}),b(j,'$nesting',function(){var a=this;return a.define_nesting=!0,"$nesting"}),b(j,'$relative_access',function(){var a=this;return a.define_relative_access=a.define_nesting=!0,"$$"}),b(j,'$prepare_block',function(d){var b=this,e=a;return d==null&&(d=a),e=b.$scope().$identity(),c(d)&&b['$block_name='](d),b.$add_temp(""+b.$block_name()+" = "+e+".$$p || nil"),c(b.block_prepared)?a:(b.$line(""+e+".$$p = null;"),b.block_prepared=!0)},-1),j.$attr_accessor("await_encountered")}(k[0],v('Base'),k)}(k[0],k)}(k[0],k)},Opal.modules["opal/nodes/module"]=function(b){var g=b.module,j=b.klass,e=b.to_ary,c=b.truthy,f=b.send,k=b.rb_plus,d=b.def,l=b.top,h=[],a=b.nil,i=b.$$$;return b.add_stubs('require,handle,children,name_and_base,helper,nil?,body,stmt?,unshift,line,in_scope,name=,scope,in_closure,|,compile_body,await_encountered,await_encountered=,parent,+,nesting,private,cid,expr,stmt,returns,compiler,empty_line,add_temp,to_vars'),l.$require("opal/nodes/scope"),function(l,m){var n=g(l,'Opal'),h=[n].concat(m);return function(l,m){var n=g(l,'Nodes'),h=[n].concat(m),o=b.$r(h);return function(p,m,n){var g=j(p,m,'ModuleNode'),o=[g].concat(n),l=b.$r(o),h=g.$$prototype;return h.define_nesting=h.define_relative_access=a,g.$handle("module"),g.$children("cid","body"),d(g,'$compile',function(){var d,m,b=this,g=a,h=a,j=a,n=a,o=a;return m=b.$name_and_base(),d=e(m),g=d[0]==null?a:d[0],h=d[1]==null?a:d[1],m,b.$helper("module"),c(b.$body()['$nil?']())?c(b['$stmt?']())?b.$unshift("$module(",h,", '"+g+"')"):b.$unshift("($module(",h,", '"+g+"'), nil)"):(b.$line(" var self = $module($base, '"+g+"');"),f(b,'in_scope',[],function b(){var a=b.$$s==null?this:b.$$s;return a.$scope()['$name='](g),f(a,'in_closure',[i(l('Closure'),'MODULE')['$|'](i(l('Closure'),'JS_FUNCTION'))],function a(){var b=a.$$s==null?this:a.$$s;return b.$compile_body()},{$$s:a})},{$$s:b}),c(b.$await_encountered())?(j="(await ",n=")",o="async ",b.$parent()['$await_encountered='](!0)):(d=["","",""],j=d[0],n=d[1],o=d[2],d),b.$unshift(""+j+"("+o+"function($base"+(c(b.define_nesting)?", $parent_nesting":a)+") {"),b.$line("})(",h,""+(c(b.define_nesting)?k(", ",b.$scope().$nesting()):a)+")"+n))}),g.$private(),d(g,'$name_and_base',function(){var b,d,f=this,g=a,h=a;return d=f.$cid().$children(),b=e(d),g=b[0]==null?a:b[0],h=b[1]==null?a:b[1],d,c(g['$nil?']())?[h,""+f.$scope().$nesting()+"[0]"]:[h,f.$expr(g)]}),d(g,'$compile_body',function(){var b=this,d=a;return d=b.$stmt(b.$compiler().$returns(b.$body())),b.$empty_line(),c(b.define_nesting)&&b.$add_temp("$nesting = [self].concat($parent_nesting)"),c(b.define_relative_access)&&b.$add_temp("$$ = Opal.$r($nesting)"),b.$line(b.$scope().$to_vars()),b.$line(d)})}(h[0],o('ScopeNode'),h)}(h[0],h)}(h[0],h)},Opal.modules["opal/nodes/class"]=function(a){var d=a.module,i=a.klass,l=a.to_ary,c=a.truthy,f=a.send,j=a.rb_plus,g=a.def,k=a.top,e=[],b=a.nil,h=a.$$$;return a.add_stubs('require,handle,children,name_and_base,helper,nil?,body,stmt?,unshift,super_code,line,in_scope,name=,scope,in_closure,|,compile_body,await_encountered,await_encountered=,parent,+,nesting,sup,expr'),k.$require("opal/nodes/module"),function(k,m){var n=d(k,'Opal'),e=[n].concat(m);return function(k,m){var n=d(k,'Nodes'),e=[n].concat(m),o=a.$r(e);return function(k,m,n){var d=i(k,m,'ClassNode'),o=[d].concat(n),e=a.$r(o),p=d.$$prototype;return p.define_nesting=b,d.$handle("class"),d.$children("cid","sup","body"),g(d,'$compile',function(){var d,m,a=this,g=b,i=b,k=b,n=b,o=b;return m=a.$name_and_base(),d=l(m),g=d[0]==null?b:d[0],i=d[1]==null?b:d[1],m,a.$helper("klass"),c(a.$body()['$nil?']())?c(a['$stmt?']())?a.$unshift("$klass(",i,", ",a.$super_code(),", '"+g+"')"):a.$unshift("($klass(",i,", ",a.$super_code(),", '"+g+"'), nil)"):(a.$line(" var self = $klass($base, $super, '"+g+"');"),f(a,'in_scope',[],function b(){var a=b.$$s==null?this:b.$$s;return a.$scope()['$name='](g),f(a,'in_closure',[h(e('Closure'),'MODULE')['$|'](h(e('Closure'),'JS_FUNCTION'))],function a(){var b=a.$$s==null?this:a.$$s;return b.$compile_body()},{$$s:a})},{$$s:a}),c(a.$await_encountered())?(k="(await ",n=")",o="async ",a.$parent()['$await_encountered='](!0)):(d=["","",""],k=d[0],n=d[1],o=d[2],d),a.$unshift(""+k+"("+o+"function($base, $super"+(c(a.define_nesting)?", $parent_nesting":b)+") {"),a.$line("})(",i,", ",a.$super_code(),""+(c(a.define_nesting)?j(", ",a.$scope().$nesting()):b)+")"+n))}),g(d,'$super_code',function(){var a=this;return c(a.$sup())?a.$expr(a.$sup()):"null"})}(e[0],o('ModuleNode'),e)}(e[0],e)}(e[0],e)},Opal.modules["opal/nodes/singleton_class"]=function(a){var c=a.module,i=a.klass,f=a.send,d=a.truthy,g=a.def,h=a.top,e=[],b=a.nil;return a.add_stubs('require,handle,children,push,in_scope,stmt,returns,compiler,body,add_temp,line,to_vars,scope,recv,object,nesting'),h.$require("opal/nodes/scope"),function(h,j){var k=c(h,'Opal'),e=[k].concat(j);return function(h,j){var k=c(h,'Nodes'),e=[k].concat(j),l=a.$r(e);return function(c,e){var a=i(c,e,'SingletonClassNode');return a.$handle("sclass"),a.$children("object","body"),g(a,'$compile',function(){var a=this;return a.$push("(function(self, $parent_nesting) {"),f(a,'in_scope',[],function c(){var a=c.$$s==null?this:c.$$s,e=b;return a.define_nesting==null&&(a.define_nesting=b),a.define_relative_access==null&&(a.define_relative_access=b),e=a.$stmt(a.$compiler().$returns(a.$body())),d(a.define_nesting)&&a.$add_temp("$nesting = [self].concat($parent_nesting)"),d(a.define_relative_access)&&a.$add_temp("$$ = Opal.$r($nesting)"),a.$line(a.$scope().$to_vars()),a.$line(e)},{$$s:a}),a.$line("})(Opal.get_singleton_class(",a.$recv(a.$object()),"), "+a.$scope().$nesting()+")")})}(e[0],l('ScopeNode'))}(e[0],e)}(e[0],e)},Opal.modules["opal/nodes/args/arg"]=function(a){var b=a.module,d=a.klass,e=a.def,f=a.top,c=[],g=a.nil;return a.add_stubs('require,handle,children,add_arg,scope,name,push,to_s'),f.$require("opal/nodes/base"),function(f,g){var h=b(f,'Opal'),c=[h].concat(g);return function(f,g){var h=b(f,'Nodes'),c=[h].concat(g);return function(f,g){var h=b(f,'Args'),c=[h].concat(g),i=a.$r(c);return function(b,c){var a=d(b,c,'ArgNode');return a.$handle("arg"),a.$children("name"),e(a,'$compile',function(){var a=this;return a.$scope().$add_arg(a.$name()),a.$push(a.$name().$to_s())})}(c[0],i('Base'))}(c[0],c)}(c[0],c)}(c[0],c)},Opal.modules["opal/nodes/args/arity_check"]=function(c){var i=c.module,k=c.klass,q=c.slice,r=c.send2,n=c.find_super,e=c.to_a,d=c.def,b=c.truthy,f=c.rb_minus,l=c.not,p=c.rb_lt,h=c.rb_plus,o=c.rb_gt,g=c.send,m=c.top,j=[],a=c.nil,s=c.$$$;return c.add_stubs('require,handle,children,new,args_node,args,optargs,restarg,postargs,kwargs,kwoptargs,kwrestarg,kwnilarg,arity=,scope,arity,arity_check?,compiler,empty?,arity_checks,helper,inspect,to_s,mid,line,push,join,compact,size,all_args,-,!,-@,<,+,>,<<,has_only_optional_kwargs?,any?,negative_arity,positive_arity,select,include?,type,has_required_kwargs?,all?,==,def?,class_scope?,top?,parent,class?,name,module?,identity'),m.$require("opal/nodes/base"),m.$require("opal/rewriters/arguments"),function(m,t){var u=i(m,'Opal'),j=[u].concat(t);return function(t,u){var v=i(t,'Nodes'),j=[v].concat(u),m=c.$r(j);return function(w,m,t){var i=k(w,m,'ArityCheckNode'),u=[i].concat(t),v=c.$r(u),j=i.$$prototype;return j.kwargs=j.kwoptargs=j.kwrestarg=j.all_args=j.args=j.optargs=j.restarg=j.postargs=j.arity_checks=a,i.$handle("arity_check"),i.$children("args_node"),d(i,'$initialize',function d(i){var f,g,h=d.$$p||a,b=this,c=a;return d.$$p=null,f=q(arguments),g=f,r(b,n(b,'initialize',d,!1,!0),'initialize',e(g),h),c=s(v('Rewriters'),'Arguments').$new(b.$args_node().$children()),b.args=c.$args(),b.optargs=c.$optargs(),b.restarg=c.$restarg(),b.postargs=c.$postargs(),b.kwargs=c.$kwargs(),b.kwoptargs=c.$kwoptargs(),b.kwrestarg=c.$kwrestarg(),b.kwnilarg=c.$kwnilarg()},-1),d(i,'$compile',function(){var c=this,d=a;return c.$scope()['$arity='](c.$arity()),!b(c.$compiler()['$arity_check?']())?a:b(c.$arity_checks()['$empty?']())?a:(c.$helper("ac"),d=c.$scope().$mid().$to_s().$inspect(),c.$line("var $arity = arguments.length;"),c.$push(" if ("+c.$arity_checks().$join(" || ")+") { $ac($arity, "+c.$arity()+", this, "+d+"); }"))}),d(i,'$kwargs',function(){var a=this;return[].concat(e(a.kwargs)).concat(e(a.kwoptargs)).concat([a.kwrestarg]).$compact()}),d(i,'$all_args',function(){var c=this,d=a;return c.all_args=b(d=c.all_args)?d:[].concat(e(c.args)).concat(e(c.optargs)).concat([c.restarg]).concat(e(c.postargs)).concat(e(c.$kwargs())).$compact()}),d(i,'$arity_checks',function(){var e,c=this,d=a,g=a,i=a;return b((e=c.arity_checks,e!=null&&e!==a)?'instance-variable':a)?c.arity_checks:(d=c.$all_args().$size(),d=f(d,c.optargs.$size()),b(c.restarg)&&(d=f(d,1)),d=f(d,c.$kwargs().$size()),(l(c.optargs['$empty?']())||l(c.$kwargs()['$empty?']())||b(c.restarg))&&(d=f(d['$-@'](),1)),c.arity_checks=[],b(p(d,0))?(g=h(d,1)['$-@'](),i=c.$all_args().$size(),b(o(g,0))&&c.arity_checks['$<<']("$arity < "+g),b(c.restarg)||c.arity_checks['$<<']("$arity > "+i)):c.arity_checks['$<<']("$arity !== "+d),c.arity_checks)}),d(i,'$arity',function(){var a=this;return b(a.restarg)||b(a.optargs['$any?']())||b(a['$has_only_optional_kwargs?']())?a.$negative_arity():a.$positive_arity()}),d(i,'$negative_arity',function(){var d=this,e=a,c=a;return e=g(d.$all_args(),'select',[],function(b){return b==null&&(b=a),["arg","mlhs"]['$include?'](b.$type())}),c=e.$size(),b(d['$has_required_kwargs?']())&&(c=h(c,1)),f(c['$-@'](),1)}),d(i,'$positive_arity',function(){var d=this,c=a;return c=d.$all_args().$size(),c=f(c,d.$kwargs().$size()),b(d.$kwargs()['$any?']())&&(c=h(c,1)),c}),d(i,'$has_only_optional_kwargs?',function(){var c=this,d=a;return b(d=c.$kwargs()['$any?']())?g(c.$kwargs(),'all?',[],function(b){return b==null&&(b=a),["kwoptarg","kwrestarg"]['$include?'](b.$type())}):d}),d(i,'$has_required_kwargs?',function(){var b=this;return g(b.$kwargs(),'any?',[],function(b){return b==null&&(b=a),b.$type()['$==']("kwarg")})})}(j[0],m('Base'),j),function(e,f){var c=k(e,f,'IterArityCheckNode');return c.$handle("iter_arity_check"),d(c,'$compile',function(){var d=this,c=a,f=a,g=a,h=a,e=a;if(d.$scope()['$arity='](d.$arity()),!b(d.$compiler()['$arity_check?']()))return a;if(b(d.$arity_checks()['$empty?']()))return a;for(c=d.$scope();!b(b(f=b(g=c['$def?']())?g:c['$class_scope?']())?f:c['$top?']());)c=c.$parent();return h=b(c['$top?']())?"'
'":b(c['$def?']())?"'"+c.$mid()+"'":b(c['$class?']())?"''":b(c['$module?']())?"''":a,e=d.$scope().$identity(),d.$line("if ("+e+".$$is_lambda || "+e+".$$define_meth) {"),d.$line(" var $arity = arguments.length;"),d.$line(" if ("+d.$arity_checks().$join(" || ")+") { Opal.block_ac($arity, "+d.$arity()+", "+h+"); }"),d.$line("}")})}(j[0],m('ArityCheckNode'))}(j[0],j)}(j[0],j)},Opal.modules["opal/nodes/args/ensure_kwargs_are_kwargs"]=function(a){var b=a.module,d=a.klass,e=a.def,f=a.top,c=[],g=a.nil;return a.add_stubs('require,handle,helper,push'),f.$require("opal/nodes/base"),function(f,g){var h=b(f,'Opal'),c=[h].concat(g);return function(f,g){var h=b(f,'Nodes'),c=[h].concat(g);return function(f,g){var h=b(f,'Args'),c=[h].concat(g),i=a.$r(c);return function(b,c){var a=d(b,c,'EnsureKwargsAreKwargs');return a.$handle("ensure_kwargs_are_kwargs"),e(a,'$compile',function(){var a=this;return a.$helper("ensure_kwargs"),a.$push("$kwargs = $ensure_kwargs($kwargs)")})}(c[0],i('Base'))}(c[0],c)}(c[0],c)}(c[0],c)},Opal.modules["opal/nodes/args/extract_block_arg"]=function(a){var b=a.module,d=a.klass,e=a.def,f=a.top,c=[],g=a.nil;return a.add_stubs('require,handle,children,uses_block!,scope,add_arg,name,prepare_block'),f.$require("opal/nodes/base"),function(f,g){var h=b(f,'Opal'),c=[h].concat(g);return function(f,g){var h=b(f,'Nodes'),c=[h].concat(g);return function(f,g){var h=b(f,'Args'),c=[h].concat(g),i=a.$r(c);return function(b,c){var a=d(b,c,'ExtractBlockarg');return a.$handle("extract_blockarg"),a.$children("name"),e(a,'$compile',function(){var a=this;return a.$scope()['$uses_block!'](),a.$scope().$add_arg(a.$name()),a.$scope().$prepare_block(a.$name())})}(c[0],i('Base'))}(c[0],c)}(c[0],c)}(c[0],c)},Opal.modules["opal/nodes/args/extract_kwarg"]=function(a){var b=a.module,e=a.klass,f=a.def,g=a.top,c=[],d=a.nil;return a.add_stubs('require,handle,children,[],meta,<<,used_kwargs,scope,add_temp,lvar_name,helper,push,inspect,to_s'),g.$require("opal/nodes/base"),function(g,h){var i=b(g,'Opal'),c=[i].concat(h);return function(g,h){var i=b(g,'Nodes'),c=[i].concat(h);return function(g,h){var i=b(g,'Args'),c=[i].concat(h),j=a.$r(c);return function(b,c){var a=e(b,c,'ExtractKwarg'),g=a.$$prototype;return g.sexp=d,a.$handle("extract_kwarg"),a.$children("lvar_name"),f(a,'$compile',function(){var a=this,b=d;return b=a.sexp.$meta()['$[]']("arg_name"),a.$scope().$used_kwargs()['$<<'](b),a.$add_temp(a.$lvar_name()),a.$helper("get_kwarg"),a.$push(""+a.$lvar_name()+" = $get_kwarg($kwargs, "+b.$to_s().$inspect()+")")})}(c[0],j('Base'))}(c[0],c)}(c[0],c)}(c[0],c)},Opal.modules["opal/nodes/args/extract_kwargs"]=function(a){var b=a.module,d=a.klass,e=a.def,f=a.top,c=[],g=a.nil;return a.add_stubs('require,handle,add_temp,helper,push'),f.$require("opal/nodes/base"),function(f,g){var h=b(f,'Opal'),c=[h].concat(g);return function(f,g){var h=b(f,'Nodes'),c=[h].concat(g);return function(f,g){var h=b(f,'Args'),c=[h].concat(g),i=a.$r(c);return function(b,c){var a=d(b,c,'ExtractKwargs');return a.$handle("extract_kwargs"),e(a,'$compile',function(){var a=this;return a.$add_temp("$kwargs"),a.$helper("extract_kwargs"),a.$push("$kwargs = $extract_kwargs($post_args)")})}(c[0],i('Base'))}(c[0],c)}(c[0],c)}(c[0],c)},Opal.modules["opal/nodes/args/extract_kwoptarg"]=function(a){var b=a.module,e=a.klass,f=a.eqeq,g=a.def,h=a.top,d=[],c=a.nil;return a.add_stubs('require,handle,children,helper,[],meta,<<,used_kwargs,scope,add_temp,lvar_name,line,inspect,to_s,==,default_value,push,expr'),h.$require("opal/nodes/base"),function(h,i){var j=b(h,'Opal'),d=[j].concat(i);return function(h,i){var j=b(h,'Nodes'),d=[j].concat(i);return function(h,i){var j=b(h,'Args'),d=[j].concat(i),k=a.$r(d);return function(b,d){var a=e(b,d,'ExtractKwoptarg'),h=a.$$prototype;return h.sexp=c,a.$handle("extract_kwoptarg"),a.$children("lvar_name","default_value"),g(a,'$compile',function(){var a=this,b=c;return a.$helper("hash_get"),b=a.sexp.$meta()['$[]']("arg_name"),a.$scope().$used_kwargs()['$<<'](b),a.$add_temp(a.$lvar_name()),a.$line(""+a.$lvar_name()+" = $hash_get($kwargs, "+b.$to_s().$inspect()+");"),f(a.$default_value().$children()['$[]'](1),"undefined")?c:a.$push("if ("+a.$lvar_name()+" == null) "+a.$lvar_name()+" = ",a.$expr(a.$default_value()))})}(d[0],k('Base'))}(d[0],d)}(d[0],d)}(d[0],d)},Opal.modules["opal/nodes/args/extract_kwrestarg"]=function(a){var c=a.module,i=a.klass,f=a.truthy,d=a.def,g=a.send,h=a.top,e=[],b=a.nil;return a.add_stubs('require,handle,children,name,add_temp,helper,push,used_kwargs,map,scope,join'),h.$require("opal/nodes/base"),function(h,j){var k=c(h,'Opal'),e=[k].concat(j);return function(h,j){var k=c(h,'Nodes'),e=[k].concat(j);return function(h,j){var k=c(h,'Args'),e=[k].concat(j),l=a.$r(e);return function(c,e){var a=i(c,e,'ExtractKwrestarg');return a.$handle("extract_kwrestarg"),a.$children("name"),d(a,'$compile',function(){var a=this,c=b,d=b;return c=f(d=a.$name())?d:"$kw_rest_arg",a.$add_temp(c),a.$helper("kwrestargs"),a.$push(""+c+" = $kwrestargs($kwargs, "+a.$used_kwargs()+")")}),d(a,'$used_kwargs',function(){var c=this,a=b;return a=g(c.$scope().$used_kwargs(),'map',[],function(a){return a==null&&(a=b),"'"+a+"': true"}),"{"+a.$join(",")+"}"})}(e[0],l('Base'))}(e[0],e)}(e[0],e)}(e[0],e)},Opal.modules["opal/nodes/args/extract_optarg"]=function(a){var b=a.module,d=a.klass,e=a.eqeq,f=a.def,g=a.top,c=[],h=a.nil;return a.add_stubs('require,handle,children,==,[],default_value,push,name,expr'),g.$require("opal/nodes/base"),function(g,i){var j=b(g,'Opal'),c=[j].concat(i);return function(g,i){var j=b(g,'Nodes'),c=[j].concat(i);return function(g,i){var j=b(g,'Args'),c=[j].concat(i),k=a.$r(c);return function(b,c){var a=d(b,c,'ExtractOptargNode');return a.$handle("extract_optarg"),a.$children("name","default_value"),f(a,'$compile',function(){var a=this;return e(a.$default_value().$children()['$[]'](1),"undefined")?h:a.$push("if ("+a.$name()+" == null) "+a.$name()+" = ",a.$expr(a.$default_value()))})}(c[0],k('Base'))}(c[0],c)}(c[0],c)}(c[0],c)},Opal.modules["opal/nodes/args/extract_post_arg"]=function(a){var b=a.module,d=a.klass,e=a.def,f=a.top,c=[],g=a.nil;return a.add_stubs('require,handle,children,add_temp,name,line,push'),f.$require("opal/nodes/base"),function(f,g){var h=b(f,'Opal'),c=[h].concat(g);return function(f,g){var h=b(f,'Nodes'),c=[h].concat(g);return function(f,g){var h=b(f,'Args'),c=[h].concat(g),i=a.$r(c);return function(b,c){var a=d(b,c,'ExtractPostArg');return a.$handle("extract_post_arg"),a.$children("name"),e(a,'$compile',function(){var a=this;return a.$add_temp(a.$name()),a.$line(""+a.$name()+" = $post_args.shift();"),a.$push("if ("+a.$name()+" == null) "+a.$name()+" = nil")})}(c[0],i('Base'))}(c[0],c)}(c[0],c)}(c[0],c)},Opal.modules["opal/nodes/args/extract_post_optarg"]=function(a){var b=a.module,d=a.klass,e=a.eqeq,f=a.def,g=a.top,c=[],h=a.nil;return a.add_stubs('require,handle,children,add_temp,name,line,args_to_keep,==,[],default_value,push,expr'),g.$require("opal/nodes/base"),function(g,i){var j=b(g,'Opal'),c=[j].concat(i);return function(g,i){var j=b(g,'Nodes'),c=[j].concat(i);return function(g,i){var j=b(g,'Args'),c=[j].concat(i),k=a.$r(c);return function(b,c){var a=d(b,c,'ExtractPostOptarg');return a.$handle("extract_post_optarg"),a.$children("name","default_value","args_to_keep"),f(a,'$compile',function(){var a=this;return a.$add_temp(a.$name()),a.$line("if ($post_args.length > "+a.$args_to_keep()+") "+a.$name()+" = $post_args.shift();"),e(a.$default_value().$children()['$[]'](1),"undefined")?h:a.$push("if ("+a.$name()+" == null) "+a.$name()+" = ",a.$expr(a.$default_value()))})}(c[0],k('Base'))}(c[0],c)}(c[0],c)}(c[0],c)},Opal.modules["opal/nodes/args/extract_restarg"]=function(a){var b=a.module,i=a.klass,e=a.truthy,f=a.eqeq,g=a.def,h=a.top,d=[],c=a.nil;return a.add_stubs('require,handle,children,name,add_temp,==,args_to_keep,push'),h.$require("opal/nodes/base"),function(h,j){var k=b(h,'Opal'),d=[k].concat(j);return function(h,j){var k=b(h,'Nodes'),d=[k].concat(j);return function(h,j){var k=b(h,'Args'),d=[k].concat(j),l=a.$r(d);return function(b,d){var a=i(b,d,'ExtractRestarg');return a.$handle("extract_restarg"),a.$children("name","args_to_keep"),g(a,'$compile',function(){var a=this,b=c,d=c;return b=e(d=a.$name())?d:"$rest_arg",a.$add_temp(b),f(a.$args_to_keep(),0)?a.$push(""+b+" = $post_args"):a.$push(""+b+" = $post_args.splice(0, $post_args.length - "+a.$args_to_keep()+")")})}(d[0],l('Base'))}(d[0],d)}(d[0],d)}(d[0],d)},Opal.modules["opal/nodes/args/fake_arg"]=function(a){var b=a.module,d=a.klass,e=a.def,f=a.top,c=[],g=a.nil;return a.add_stubs('require,handle,next_temp,scope,add_arg,push'),f.$require("opal/nodes/base"),function(f,h){var i=b(f,'Opal'),c=[i].concat(h);return function(f,h){var i=b(f,'Nodes'),c=[i].concat(h);return function(f,h){var i=b(f,'Args'),c=[i].concat(h),j=a.$r(c);return function(b,c){var a=d(b,c,'FakeArgNode');return a.$handle("fake_arg"),e(a,'$compile',function(){var a=this,b=g;return b=a.$scope().$next_temp(),a.$scope().$add_arg(b),a.$push(b)})}(c[0],j('Base'))}(c[0],c)}(c[0],c)}(c[0],c)},Opal.modules["opal/nodes/args/initialize_iterarg"]=function(a){var b=a.module,d=a.klass,e=a.def,f=a.top,c=[],g=a.nil;return a.add_stubs('require,handle,children,push,name'),f.$require("opal/nodes/base"),function(f,g){var h=b(f,'Opal'),c=[h].concat(g);return function(f,g){var h=b(f,'Nodes'),c=[h].concat(g);return function(f,g){var h=b(f,'Args'),c=[h].concat(g),i=a.$r(c);return function(b,c){var a=d(b,c,'InitializeIterarg');return a.$handle("initialize_iter_arg"),a.$children("name"),e(a,'$compile',function(){var a=this;return a.$push("if ("+a.$name()+" == null) "+a.$name()+" = nil")})}(c[0],i('Base'))}(c[0],c)}(c[0],c)}(c[0],c)},Opal.modules["opal/nodes/args/initialize_shadowarg"]=function(a){var b=a.module,d=a.klass,e=a.def,f=a.top,c=[],g=a.nil;return a.add_stubs('require,handle,children,<<,locals,scope,name,add_arg,push'),f.$require("opal/nodes/base"),function(f,g){var h=b(f,'Opal'),c=[h].concat(g);return function(f,g){var h=b(f,'Nodes'),c=[h].concat(g);return function(f,g){var h=b(f,'Args'),c=[h].concat(g),i=a.$r(c);return function(b,c){var a=d(b,c,'InitializeShadowarg');return a.$handle("initialize_shadowarg"),a.$children("name"),e(a,'$compile',function(){var a=this;return a.$scope().$locals()['$<<'](a.$name()),a.$scope().$add_arg(a.$name()),a.$push(""+a.$name()+" = nil")})}(c[0],i('Base'))}(c[0],c)}(c[0],c)}(c[0],c)},Opal.modules["opal/nodes/args/parameters"]=function(c){var d=c.module,j=c.klass,a=c.def,i=c.send,e=c.return_val,g=c.truthy,h=c.eqeq,f=[],b=c.nil;return c.add_stubs('children,map,public_send,type,join,compact,[],meta,=='),function(f,k){var l=d(f,'Opal'),c=[l].concat(k);return function(f,k){var l=d(f,'Nodes'),c=[l].concat(k);return function(c,f){var k=d(c,'Args'),l=[k].concat(f);return function(d,f){var c=j(d,f,'Parameters'),k=c.$$prototype;return k.args=b,a(c,'$initialize',function(a){var b=this;return b.args=a.$children()}),a(c,'$to_code',function(){var a=this,c=b;return c=i(a.args,'map',[],function c(a){var d=c.$$s==null?this:c.$$s;return a==null&&(a=b),d.$public_send("on_"+a.$type(),a)},{$$s:a}),"["+c.$compact().$join(", ")+"]"}),a(c,'$on_arg',function(c){var a=b;return a=c.$meta()['$[]']("arg_name"),"['req', '"+a+"']"}),a(c,'$on_mlhs',e("['req']")),a(c,'$on_optarg',function(c){var a=b;return a=c.$meta()['$[]']("arg_name"),"['opt', '"+a+"']"}),a(c,'$on_restarg',function(c){var a=b;return a=c.$meta()['$[]']("arg_name"),g(a)?(h(a,"fwd_rest_arg")&&(a="*"),"['rest', '"+a+"']"):"['rest']"}),a(c,'$on_kwarg',function(c){var a=b;return a=c.$meta()['$[]']("arg_name"),"['keyreq', '"+a+"']"}),a(c,'$on_kwoptarg',function(c){var a=b;return a=c.$meta()['$[]']("arg_name"),"['key', '"+a+"']"}),a(c,'$on_kwrestarg',function(c){var a=b;return a=c.$meta()['$[]']("arg_name"),g(a)?"['keyrest', '"+a+"']":"['keyrest']"}),a(c,'$on_blockarg',function(c){var a=b;return a=c.$meta()['$[]']("arg_name"),h(a,"fwd_block_arg")&&(a="&"),"['block', '"+a+"']"}),a(c,'$on_kwnilarg',e("['nokey']")),a(c,'$on_shadowarg',e(b))}(l[0],null)}(c[0],c)}(c[0],c)}(f[0],f)},Opal.modules["opal/nodes/args/prepare_post_args"]=function(a){var b=a.module,d=a.klass,e=a.eqeq,f=a.def,g=a.top,c=[],h=a.nil;return a.add_stubs('require,handle,children,add_temp,helper,==,offset,push'),g.$require("opal/nodes/base"),function(g,h){var i=b(g,'Opal'),c=[i].concat(h);return function(g,h){var i=b(g,'Nodes'),c=[i].concat(h);return function(g,h){var i=b(g,'Args'),c=[i].concat(h),j=a.$r(c);return function(b,c){var a=d(b,c,'PreparePostArgs');return a.$handle("prepare_post_args"),a.$children("offset"),f(a,'$compile',function(){var a=this;return a.$add_temp("$post_args"),a.$helper("slice"),e(a.$offset(),0)?a.$push("$post_args = $slice(arguments)"):a.$push("$post_args = $slice(arguments, "+a.$offset()+")")})}(c[0],j('Base'))}(c[0],c)}(c[0],c)}(c[0],c)},Opal.modules["opal/nodes/args"]=function(b){var c=b.module,i=b.klass,f=b.send,g=b.neqeq,h=b.def,a=b.top,e=[],d=b.nil;return b.add_stubs('require,handle,each_with_index,children,!=,push,process'),a.$require("opal/nodes/base"),a.$require("opal/nodes/args/arg"),a.$require("opal/nodes/args/arity_check"),a.$require("opal/nodes/args/ensure_kwargs_are_kwargs"),a.$require("opal/nodes/args/extract_block_arg"),a.$require("opal/nodes/args/extract_kwarg"),a.$require("opal/nodes/args/extract_kwargs"),a.$require("opal/nodes/args/extract_kwoptarg"),a.$require("opal/nodes/args/extract_kwrestarg"),a.$require("opal/nodes/args/extract_optarg"),a.$require("opal/nodes/args/extract_post_arg"),a.$require("opal/nodes/args/extract_post_optarg"),a.$require("opal/nodes/args/extract_restarg"),a.$require("opal/nodes/args/fake_arg"),a.$require("opal/nodes/args/initialize_iterarg"),a.$require("opal/nodes/args/initialize_shadowarg"),a.$require("opal/nodes/args/parameters"),a.$require("opal/nodes/args/prepare_post_args"),function(e,j){var k=c(e,'Opal'),a=[k].concat(j);return function(e,j){var k=c(e,'Nodes'),a=[k].concat(j),l=b.$r(a);return function(b,c){var a=i(b,c,'ArgsNode');return a.$handle("args"),h(a,'$compile',function(){var a=this;return f(a.$children(),'each_with_index',[],function e(a,b){var c=e.$$s==null?this:e.$$s;return a==null&&(a=d),b==null&&(b=d),g(b,0)&&c.$push(", "),c.$push(c.$process(a))},{$$s:a})})}(a[0],l('Base'))}(a[0],a)}(e[0],e)},Opal.modules["opal/nodes/node_with_args/shortcuts"]=function(b){var i=b.module,p=b.klass,o=b.const_set,d=b.send,f=b.def,n=b.ensure_kwargs,m=b.kwrestargs,c=b.truthy,j=b.defs,k=b.eqeq,l=b.thrower,e=b.lambda,g=b.range,h=[],a=b.nil;return b.add_stubs('new,instance_exec,to_proc,when,helper,name,transform,[],[]=,<<,select,include?,for,arity_check?,compiler,compile_body,is_a?,each,shortcuts_for,match?,==,mid,warn,compile,define_shortcut,type,stmts,push,simple_value?,expr,to_sym,to_s,first,children,updated,length,inline_args,last'),function(q,r){var s=i(q,'Opal'),h=[s].concat(r);return function(q,r){var s=i(q,'Nodes'),h=[s].concat(r),t=b.$r(h);return function(r,s,t){var h=p(r,s,'NodeWithArgs'),q=[h].concat(t),i=b.$r(q);return o(q[0],'Shortcut',d(i('Struct'),'new',["name","for","when","transform"],function a(){var b=a.$$s==null?this:a.$$s;return f(b,'$match?',function(a){var b=this;return d(a,'instance_exec',[],b.$when().$to_proc())}),f(b,'$compile',function(a){var b=this;return a.$helper(b.$name()),d(a,'instance_exec',[],b.$transform().$to_proc())})},{$$s:h})),h.shortcuts=[],h.shortcuts_for=new Map,j(h,'$define_shortcut',function f(h,d){var j=f.$$p||a,b,e=this,g=a;return e.shortcuts==null&&(e.shortcuts=a),f.$$p=null,d=n(d),b=m(d,{}),c(g=b['$[]']("for"))?g:b['$[]=']("for","def"),e.shortcuts['$<<'](i('Shortcut').$new(h,b['$[]']("for"),b['$[]']("when"),j))},-2),j(h,'$shortcuts_for',function(f){var e,b=this,g=a;return b.shortcuts_for==null&&(b.shortcuts_for=a),b.shortcuts==null&&(b.shortcuts=a),c(g=b.shortcuts_for['$[]'](f))?g:(e=[f,d(b.shortcuts,'select',[],function(b){return b==null&&(b=a),[f,"*"]['$include?'](b.$for())})],d(b.shortcuts_for,'[]=',e),e[e.length-1])}),f(h,'$compile_body_or_shortcut',function(){var e,b,f;try{return e=l('return'),b=this,f=a,c(b.$compiler()['$arity_check?']())?b.$compile_body():(f=c(b['$is_a?'](i('DefNode')))?"def":"iter",d(i('NodeWithArgs').$shortcuts_for(f),'each',[],function g(b){var d=g.$$s==null?this:g.$$s,h=a;if(b==null&&(b=a),c(b['$match?'](d)))c(i('ENV')['$[]']("OPAL_DEBUG_SHORTCUTS"))&&(h=k(f,"def")?"def "+d.$mid():"iter",d.$warn("* shortcut "+b.$name()+" used for "+h)),e.$throw(b.$compile(d),g.$$is_lambda);else return a},{$$s:b,$$ret:e}),b.$compile_body())}catch(a){if(a===e)return a.$v;throw a}finally{e.is_orphan=!0}}),d(h,'define_shortcut',["return_self",new Map([["when",e(function a(){var b=a.$$s==null?this:a.$$s;return b.$stmts().$type()['$==']("self")},{$$s:h})]])],function a(){var b=a.$$s==null?this:a.$$s;return b.$push("$return_self")},{$$s:h}),f(h,'$simple_value?',function(a){var b=this;return a==null&&(a=b.$stmts()),["true","false","nil","int","float","str","sym"]['$include?'](a.$type())},-1),d(h,'define_shortcut',["return_val",new Map([["for","*"],["when",e(function a(){var b=a.$$s==null?this:a.$$s;return b['$simple_value?']()},{$$s:h})]])],function b(){var a=b.$$s==null?this:b.$$s;return a.$push("$return_val(",a.$expr(a.$stmts()),")")},{$$s:h}),d(h,'define_shortcut',["return_ivar",new Map([["when",e(function a(){var b=a.$$s==null?this:a.$$s;return b.$stmts().$type()['$==']("ivar")},{$$s:h})]])],function c(){var b=c.$$s==null?this:c.$$s,d=a;return d=b.$stmts().$children().$first().$to_s()['$[]'](g(1,-1,!1)).$to_sym(),b.$push("$return_ivar(",b.$expr(b.$stmts().$updated("sym",[d])),")")},{$$s:h}),d(h,'define_shortcut',["assign_ivar",new Map([["when",e(function d(){var b=d.$$s==null?this:d.$$s,e=a,f=a,g=a,h=a;return c(e=c(f=c(g=c(h=b.$stmts().$type()['$==']("ivasgn"))?b.$inline_args().$children().$length()['$=='](1):h)?b.$inline_args().$children().$last().$type()['$==']("arg"):g)?b.$stmts().$children().$last().$type()['$==']("lvar"):f)?b.$stmts().$children().$last().$children().$last()['$=='](b.$inline_args().$children().$last().$children().$last()):e},{$$s:h})]])],function d(){var b=d.$$s==null?this:d.$$s,c=a;return c=b.$stmts().$children().$first().$to_s()['$[]'](g(1,-1,!1)).$to_sym(),c=b.$expr(b.$stmts().$updated("sym",[c])),b.$push("$assign_ivar(",c,")")},{$$s:h}),d(h,'define_shortcut',["assign_ivar_val",new Map([["when",e(function d(){var b=d.$$s==null?this:d.$$s,e=a;return c(e=b.$stmts().$type()['$==']("ivasgn"))?b['$simple_value?'](b.$stmts().$children().$last()):e},{$$s:h})]])],function d(){var b=d.$$s==null?this:d.$$s,c=a;return c=b.$stmts().$children().$first().$to_s()['$[]'](g(1,-1,!1)).$to_sym(),c=b.$expr(b.$stmts().$updated("sym",[c])),b.$push("$assign_ivar_val(",c,", ",b.$expr(b.$stmts().$children().$last()),")")},{$$s:h})}(h[0],t('ScopeNode'),h)}(h[0],h)}(h[0],h)},Opal.modules["opal/nodes/node_with_args"]=function(a){var e=a.module,l=a.klass,k=a.slice,j=a.send2,h=a.find_super,g=a.to_a,b=a.def,i=a.truthy,d=a.top,f=[],c=a.nil,m=a.$$$;return a.add_stubs('require,attr_reader,attr_accessor,[],meta,s,original_args,push,process,arity_check_node,uses_block?,scope,prepare_block,to_code,new'),d.$require("opal/nodes/scope"),d.$require("opal/nodes/args/parameters"),d.$require("opal/nodes/node_with_args/shortcuts"),function(f,n){var o=e(f,'Opal'),d=[o].concat(n);return function(f,n){var o=e(f,'Nodes'),d=[o].concat(n),p=a.$r(d);return function(e,f,n){var d=l(e,f,'NodeWithArgs'),o=[d].concat(n),p=a.$r(o),q=d.$$prototype;return q.sexp=c,d.$attr_reader("used_kwargs"),d.$attr_accessor("arity"),d.$attr_reader("original_args"),b(d,'$initialize',function b(i){var d,e,f=b.$$p||c,a=this;return b.$$p=null,d=k(arguments),e=d,j(a,h(a,'initialize',b,!1,!0),'initialize',g(e),f),a.original_args=a.sexp.$meta()['$[]']("original_args"),a.used_kwargs=[],a.arity=0},-1),b(d,'$arity_check_node',function(){var a=this;return a.$s("arity_check",a.$original_args())}),b(d,'$compile_arity_check',function(){var a=this;return a.$push(a.$process(a.$arity_check_node()))}),b(d,'$compile_block_arg',function(){var a=this;return i(a.$scope()['$uses_block?']())?a.$scope().$prepare_block():c}),b(d,'$parameters_code',function(){var a=this;return m(p('Args'),'Parameters').$new(a.$original_args()).$to_code()})}(d[0],p('ScopeNode'),d)}(d[0],d)}(f[0],f)},Opal.modules["opal/nodes/iter"]=function(c){var i=c.module,k=c.klass,b=c.truthy,j=c.rb_lt,g=c.eqeq,m=c.not,e=c.send,d=c.def,l=c.top,h=[],a=c.nil,f=c.$$$;return c.add_stubs('require,handle,children,lambda_definition?,scope,is_lambda!,compile_body_or_shortcut,<,arity,[]=,self,key?,throwers,[],arity_check?,compiler,parameters_code,enable_source_location?,source_location,has_top_level_mlhs_arg?,has_trailing_comma_in_args?,==,keys,push,!,empty?,join,map,nesting,relative_access,in_scope,identify!,process,inline_args,compile_arity_check,in_closure,|,stmt,returned_body,add_temp,to_vars,line,unshift,await_encountered,block_arg,prepare_block,each,args,first,<<,updated,stmts,returns,s,any?,original_args,type,expression,loc,source,match'),l.$require("opal/nodes/node_with_args"),function(l,n){var o=i(l,'Opal'),h=[o].concat(n);return function(l,n){var o=i(l,'Nodes'),h=[o].concat(n),p=c.$r(h);return function(q,n,o){var h=k(q,n,'IterNode'),p=[h].concat(o),l=c.$r(p),i=h.$$prototype;return i.define_self=i.closure=i.define_nesting=i.define_relative_access=i.sexp=a,h.$handle("iter"),h.$children("inline_args","stmts"),d(h,'$compile',function(){var f,h,i,k,c=this,d=a;return b(c.$scope()['$lambda_definition?']())&&c['$is_lambda!'](),c.$compile_body_or_shortcut(),d=new Map,b(j(c.$arity(),0))&&d['$[]=']("$$arity",c.$arity()),b(c.define_self)&&d['$[]=']("$$s",c.$scope().$self()),b((f=(h=c.closure,h===a||h==null?a:h.$throwers()),f===a||f==null?a:f['$key?']("break")))&&d['$[]=']("$$brk",c.closure.$throwers()['$[]']("break")),b((i=(k=c.closure,k===a||k==null?a:k.$throwers()),i===a||i==null?a:i['$key?']("return")))&&d['$[]=']("$$ret",c.closure.$throwers()['$[]']("return")),b(c.$compiler()['$arity_check?']())&&d['$[]=']("$$parameters",c.$parameters_code()),b(c.$compiler()['$enable_source_location?']())&&d['$[]=']("$$source_location",c.$source_location()),b(c['$has_top_level_mlhs_arg?']())&&d['$[]=']("$$has_top_level_mlhs_arg","true"),b(c['$has_trailing_comma_in_args?']())&&d['$[]=']("$$has_trailing_comma_in_args","true"),g(d.$keys(),["$$arity"])?c.$push(", "+c.$arity()):m(d['$empty?']())&&c.$push(", {",e(d,'map',[],function(b,c){return b==null&&(b=a),c==null&&(c=a),""+b+": "+c}).$join(", "),"}"),b(c.define_nesting)&&c.$scope().$nesting(),b(c.define_relative_access)?c.$scope().$relative_access():a}),d(h,'$compile_body',function(){var c=this,g=a,h=a,d=a,i=a;return g=a,h=d=i=a,e(c,'in_scope',[],function j(){var c=j.$$s==null?this:j.$$s;return c.is_lambda==null&&(c.is_lambda=a),d=c.$scope()['$identify!'](),g=c.$process(c.$inline_args()),c.$compile_arity_check(),e(c,'in_closure',[f(l('Closure'),'JS_FUNCTION')['$|'](f(l('Closure'),'ITER'))['$|'](b(c.is_lambda)?f(l('Closure'),'LAMBDA'):0)],function e(){var c=e.$$s==null?this:e.$$s;return c.define_self==null&&(c.define_self=a),i=c.$stmt(c.$returned_body()),b(c.define_self)&&c.$add_temp("self = "+d+".$$s == null ? this : "+d+".$$s"),h=c.$scope().$to_vars(),c.$line(i)},{$$s:c})},{$$s:c}),c.$unshift(h),b(c.$await_encountered())?c.$unshift("async function "+d+"(",g,"){"):c.$unshift("function "+d+"(",g,"){"),c.$push("}")}),d(h,'$compile_block_arg',function(){var c=this;return b(c.$block_arg())?c.$scope().$prepare_block():a}),d(h,'$extract_underscore_args',function(){var c=this,d=a,f=a;return d=[],f=!1,e(c.$args().$children(),'each',[],function(c){var e=a;return c==null&&(c=a),e=c.$children().$first(),g(e,"_")?b(f)?a:(f=!0,d['$<<'](c)):d['$<<'](c)}),c.sexp=c.sexp.$updated(a,[c.$args().$updated(a,d),c.$stmts()])}),d(h,'$returned_body',function(){var c=this,d=a;return c.$compiler().$returns(b(d=c.$stmts())?d:c.$s("nil"))}),d(h,'$has_top_level_mlhs_arg?',function(){var b=this;return e(b.$original_args().$children(),'any?',[],function(b){return b==null&&(b=a),b.$type()['$==']("mlhs")})}),d(h,'$has_trailing_comma_in_args?',function(){var c=this,d=a;return b(c.$original_args().$loc())&&b(c.$original_args().$loc().$expression())?(d=c.$original_args().$loc().$expression().$source(),d.$match(/,\s*\|/)):a}),d(h,'$arity_check_node',function(){var a=this;return a.$s("iter_arity_check",a.$original_args())})}(h[0],p('NodeWithArgs'),h)}(h[0],h)}(h[0],h)},Opal.modules["opal/nodes/def"]=function(a){var g=a.module,k=a.klass,c=a.truthy,n=a.rb_lt,f=a.eqeq,m=a.not,e=a.send,d=a.def,i=a.rb_plus,l=a.top,j=[],b=a.nil,h=a.$$$;return a.add_stubs('require,handle,children,compile_body_or_shortcut,<,arity,[]=,arity_check?,compiler,parameters_code,parse_comments?,comments_code,enable_source_location?,source_location,==,keys,push,!,empty?,join,map,wrap_with_definition,nesting,scope,relative_access,in_scope,mid=,mid,type,defs=,identify!,identity,block_name=,process,inline_args,in_closure,|,stmt,returns,stmts,compile_block_arg,add_temp,compile_arity_check,unshift,current_indent,to_vars,line,await_encountered,helper,wrap,self,expr?,+,comments,inspect,text'),l.$require("opal/nodes/node_with_args"),function(l,o){var p=g(l,'Opal'),j=[p].concat(o);return function(l,o){var p=g(l,'Nodes'),j=[p].concat(o),q=a.$r(j);return function(r,o,p){var g=k(r,o,'DefNode'),q=[g].concat(p),l=a.$r(q),j=g.$$prototype;return j.define_nesting=j.define_relative_access=b,g.$handle("def"),g.$children("mid","inline_args","stmts"),d(g,'$compile',function(){var a=this,d=b;return a.$compile_body_or_shortcut(),d=new Map,c(n(a.$arity(),0))&&d['$[]=']("$$arity",a.$arity()),c(a.$compiler()['$arity_check?']())&&d['$[]=']("$$parameters",a.$parameters_code()),c(a.$compiler()['$parse_comments?']())&&d['$[]=']("$$comments",a.$comments_code()),c(a.$compiler()['$enable_source_location?']())&&d['$[]=']("$$source_location",a.$source_location()),f(d.$keys(),["$$arity"])?a.$push(", "+a.$arity()):m(d['$empty?']())&&a.$push(", {",e(d,'map',[],function(a,c){return a==null&&(a=b),c==null&&(c=b),""+a+": "+c}).$join(", "),"}"),a.$wrap_with_definition(),c(a.define_nesting)&&a.$scope().$nesting(),c(a.define_relative_access)?a.$scope().$relative_access():b}),d(g,'$compile_body',function(){var a=this,d=b,g=b;return d=b,g=b,e(a,'in_scope',[],function i(){var a=i.$$s==null?this:i.$$s;return a.sexp==null&&(a.sexp=b),a.$scope()['$mid='](a.$mid()),f(a.sexp.$type(),"defs")&&a.$scope()['$defs='](!0),a.$scope()['$identify!'](),g=a.$scope().$identity(),a.$scope()['$block_name=']("$yield"),d=a.$process(a.$inline_args()),e(a,'in_closure',[h(l('Closure'),'DEF')['$|'](h(l('Closure'),'JS_FUNCTION'))],function d(){var a=d.$$s==null?this:d.$$s,e=b;return a.define_self==null&&(a.define_self=b),e=a.$stmt(a.$compiler().$returns(a.$stmts())),a.$compile_block_arg(),c(a.define_self)&&a.$add_temp("self = this"),a.$compile_arity_check(),a.$unshift("\n"+a.$current_indent(),a.$scope().$to_vars()),a.$line(e)},{$$s:a})},{$$s:a}),a.$unshift(") {"),a.$unshift(d),a.$unshift("function "+g+"("),c(a.$await_encountered())&&a.$unshift("async "),a.$line("}")}),d(g,'$wrap_with_definition',function(){var a=this;return a.$helper("def"),a.$wrap("$def("+a.$scope().$self()+", '$"+a.$mid()+"', ",")"),c(a['$expr?']())?b:a.$unshift("\n"+a.$current_indent())}),d(g,'$comments_code',function(){var a=this;return i(i("[",e(a.$comments(),'map',[],function(a){return a==null&&(a=b),a.$text().$inspect()}).$join(", ")),"]")})}(j[0],q('NodeWithArgs'),j)}(j[0],j)}(j[0],j)},Opal.modules["opal/nodes/defs"]=function(a){var b=a.module,d=a.klass,e=a.def,f=a.top,c=[],g=a.nil;return a.add_stubs('require,handle,children,helper,unshift,expr,recvr,mid,push'),f.$require("opal/nodes/def"),function(f,g){var h=b(f,'Opal'),c=[h].concat(g);return function(f,g){var h=b(f,'Nodes'),c=[h].concat(g),i=a.$r(c);return function(b,c){var a=d(b,c,'DefsNode');return a.$handle("defs"),a.$children("recvr","mid","inline_args","stmts"),e(a,'$wrap_with_definition',function(){var a=this;return a.$helper("defs"),a.$unshift("$defs(",a.$expr(a.$recvr()),", '$"+a.$mid()+"', "),a.$push(")")})}(c[0],i('DefNode'))}(c[0],c)}(c[0],c)},Opal.modules["opal/ast/matcher"]=function(a){var i=a.module,p=a.klass,f=a.send,c=a.def,o=a.slice,d=a.truthy,n=a.const_set,j=a.rb_plus,l=a.neqeq,k=a.eqeq,e=a.eqeqeq,m=a.range,h=a.top,g=[],b=a.nil;return a.add_stubs('require,instance_exec,to_proc,new,match,inspect,attr_accessor,nil?,+,type,children,!=,length,all?,times,[],==,is_a?,first,===,include?,<<,captures'),h.$require("ast"),h.$require("parser/ast/node"),function(h,q){var r=i(h,'Opal'),g=[r].concat(q);return function(h,q){var r=i(h,'AST'),g=[r].concat(q);return function(t,r,s){var g=p(t,r,'Matcher'),q=[g].concat(s),h=a.$r(q),i=g.$$prototype;return i.root=i.captures=b,c(g,'$initialize',function a(){var d=a.$$p||b,c=this;return a.$$p=null,c.root=f(c,'instance_exec',[],d.$to_proc())}),c(g,'$s',function(c,e){var a,b;return a=o(arguments,1),b=a,h('Node').$new(c,b)},-2),c(g,'$cap',function(a){return h('Node').$new("capture",[a])}),c(g,'$match',function(e){var a=this,c=b;if(a.captures=[],d(c=a.root.$match(e,a)))c;else return!1;return a.captures}),c(g,'$inspect',function(){var a=this;return"#"}),g.$attr_accessor("captures"),n(q[0],'Node',f(h('Struct'),'new',["type","children"],function a(){var g=a.$$s==null?this:a.$$s;return c(g,'$match',function(c,i){var m=this,a=b,g=b;return!d(c['$nil?']())&&(!(a=j([c.$type()],c.$children()),g=j([m.$type()],m.$children()),l(a.$length(),g.$length()))&&f(a.$length().$times(),'all?',[],function(j){var f=b,c=b,m=b,n=b,l=b;return j==null&&(j=b),f=a['$[]'](j),c=g['$[]'](j),d(c['$is_a?'](h('Node')))&&k(c.$type(),"capture")&&(m=!0,c=c.$children().$first()),n=e(h('Node'),l=c)?c.$match(f,i):e(h('Array'),l)?c['$include?'](f):e("*",l)||c['$=='](f),d(m)&&i.$captures()['$<<'](f),n}))}),c(g,'$inspect',function(){var a=this;return k(a.$type(),"capture")?"{"+a.$children().$first().$inspect()+"}":"s("+a.$type().$inspect()+", "+a.$children().$inspect()['$[]'](m(1,-2,!1))+")"})},{$$s:g}))}(g[0],null,g)}(g[0],g)}(g[0],g)},Opal.modules["opal/nodes/if"]=function(d){var p=d.module,i=d.klass,b=d.truthy,f=d.eqeq,c=d.def,h=d.not,e=d.send,l=d.eqeqeq,j=d.const_set,k=d.to_a,q=d.neqeq,m=d.return_val,n=d.top,o=[],a=d.nil,g=d.$$$;return d.add_stubs('require,handle,children,should_compile_as_simple_expression?,==,true_body,s,compile_with_binary_or,false_body,compile_with_binary_and,compile_with_ternary,could_become_switch?,compile_with_switch,compile_with_if,expects_expression?,push_closure,truthy,falsy,!,push,js_truthy,test,indent,line,stmt,type,pop_closure,returning_if?,await_encountered,scope,wrap,[],meta,returnify,returns,compiler,expr?,recv?,simple?,expr,sexp,===,single_line?,strip_empty_children,all?,new,cap,match,handle_additional_switch_rules,valid_switch_body?,could_become_switch_branch?,<<,!=,[]=,merge!,compile_switch_case,include?,last,each,returning?,compile_switch_default,helper,new_temp,top_scope,excl,start_condition,end_condition'),n.$require("opal/nodes/base"),n.$require("opal/ast/matcher"),function(o,r){var s=p(o,'Opal'),n=[s].concat(r);return function(r,s){var t=p(r,'Nodes'),n=[t].concat(s),o=d.$r(n);return function(t,r,s){var m=i(t,r,'IfNode'),o=[m].concat(s),n=d.$r(o),p=m.$$prototype;return p.sexp=p.switch_variable=p.switch_first_test=p.switch_additional_rules=a,m.$handle("if"),m.$children("test","true_body","false_body"),c(m,'$compile',function(){var a=this;return b(a['$should_compile_as_simple_expression?']())?f(a.$true_body(),a.$s("true"))?a.$compile_with_binary_or():f(a.$false_body(),a.$s("false"))?a.$compile_with_binary_and():a.$compile_with_ternary():b(a['$could_become_switch?']())?a.$compile_with_switch():a.$compile_with_if()}),c(m,'$compile_with_if',function(){var i,c=this,g=a,d=a,j=a;return b(c['$expects_expression?']())&&c.$push_closure(),g=c.$truthy(),d=c.$falsy(),b(d)&&h(g)?(c.$push("if (!",c.$js_truthy(c.$test()),") {"),i=[g,d],d=i[0],g=i[1],i):c.$push("if (",c.$js_truthy(c.$test()),") {"),b(g)&&e(c,'indent',[],function a(){var b=a.$$s==null?this:a.$$s;return b.$line(b.$stmt(g))},{$$s:c}),b(d)?f(d.$type(),"if")?c.$line("} else ",c.$stmt(d)):(c.$line("} else {"),e(c,'indent',[],function a(){var b=a.$$s==null?this:a.$$s;return b.$line(b.$stmt(d))},{$$s:c}),c.$line("}")):(c.$line("}"),b(c['$expects_expression?']())&&c.$line("return nil;")),b(c['$expects_expression?']())&&c.$pop_closure(),b(c['$expects_expression?']())?(b(c['$returning_if?']())&&(j="return "),b(c.$scope().$await_encountered()))?c.$wrap(""+j+"(await (async function() {","})())"):c.$wrap(""+j+"(function() {","})()"):a}),c(m,'$returning_if?',function(){var a=this;return a.sexp.$meta()['$[]']("returning")}),c(m,'$truthy',function(){var a=this;return a.$returnify(a.$true_body())}),c(m,'$falsy',function(){var a=this;return a.$returnify(a.$false_body())}),c(m,'$returnify',function(a){var c=this;return b(c['$expects_expression?']())&&b(a)?c.$compiler().$returns(a):a}),c(m,'$expects_expression?',function(){var c=this,d=a;return b(d=c['$expr?']())?d:c['$recv?']()}),c(m,'$should_compile_as_simple_expression?',function(){var c=this,d=a,e=a;return b(d=b(e=c['$expects_expression?']())?c['$simple?'](c.$true_body()):e)?c['$simple?'](c.$false_body()):d}),c(m,'$compile_with_ternary',function(){var c=this,g=a,e=a,d=a;return g=c.$true_body(),e=c.$false_body(),c.$push("("),c.$push(c.$js_truthy(c.$test())," ? "),c.$push("(",c.$expr(b(d=g)?d:c.$s("nil")),") : "),h(e)||f(e.$type(),"if")?c.$push(c.$expr(b(d=e)?d:c.$s("nil"))):c.$push("(",c.$expr(b(d=e)?d:c.$s("nil")),")"),c.$push(")")}),c(m,'$compile_with_binary_and',function(){var c=this,e=a,d=a;return b(c.$sexp().$meta()['$[]']("do_js_truthy_on_true_body"))?e=c.$js_truthy(b(d=c.$true_body())?d:c.$s("nil")):e=c.$expr(b(d=c.$true_body())?d:c.$s("nil")),c.$push("("),c.$push(c.$js_truthy(c.$test())," && "),c.$push("(",e,")"),c.$push(")")}),c(m,'$compile_with_binary_or',function(){var c=this,e=a,d=a;return b(c.$sexp().$meta()['$[]']("do_js_truthy_on_false_body"))?e=c.$js_truthy(b(d=c.$false_body())?d:c.$s("nil")):e=c.$expr(b(d=c.$false_body())?d:c.$s("nil")),c.$push("("),c.$push(c.$js_truthy(c.$test())," || "),c.$push("(",e,")"),c.$push(")")}),c(m,'$simple?',function(b){var c=this,d=a;if(l(g(n('AST'),'Node'),d=b))switch(b.$type().valueOf()){case"return":case"js_return":case"break":case"next":case"redo":case"retry":return!1;case"xstr":return n('XStringNode')['$single_line?'](n('XStringNode').$strip_empty_children(b.$children()));default:return e(b.$children(),'all?',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),d['$simple?'](b)},{$$s:c})}else return!0}),j(o[0],'SWITCH_TEST_MATCH',e(g(n('AST'),'Matcher'),'new',[],function b(){var a=b.$$s==null?this:b.$$s;return a.$s("send",a.$cap(a.$s(["float","int","sym","str","true","false","nil"],"*")),"===",a.$s("lvasgn",a.$cap("*"),a.$cap("*")))},{$$s:m})),j(o[0],'SWITCH_TEST_MATCH_CONTINUED',e(g(n('AST'),'Matcher'),'new',[],function b(){var a=b.$$s==null?this:b.$$s;return a.$s("if",a.$s("send",a.$cap(a.$s(["float","int","sym","str","true","false","nil"],"*")),"===",a.$s("lvasgn",a.$cap("*"),a.$cap("*"))),a.$s("true"),a.$cap("*"))},{$$s:m})),j(o[0],'SWITCH_BRANCH_TEST_MATCH',e(g(n('AST'),'Matcher'),'new',[],function b(){var a=b.$$s==null?this:b.$$s;return a.$s("send",a.$cap(a.$s(["float","int","sym","str","true","false","nil"],"*")),"===",a.$s("js_tmp",a.$cap("*")))},{$$s:m})),j(o[0],'SWITCH_BRANCH_TEST_MATCH_CONTINUED',e(g(n('AST'),'Matcher'),'new',[],function b(){var a=b.$$s==null?this:b.$$s;return a.$s("if",a.$s("send",a.$cap(a.$s(["float","int","sym","str","true","false","nil"],"*")),"===",a.$s("js_tmp",a.$cap("*"))),a.$s("true"),a.$cap("*"))},{$$s:m})),c(m,'$could_become_switch?',function(){var d,c=this,f=a,g=a,e=a;return!b(c['$expects_expression?']())&&(!!b(c.$sexp().$meta()['$[]']("switch_child"))||(!(f=b(g=n('SWITCH_TEST_MATCH').$match(c.$test()))?g:n('SWITCH_TEST_MATCH_CONTINUED').$match(c.$test()),!b(f))&&(!(d=[].concat(k(f)),c.switch_test=d[0]==null?a:d[0],c.switch_variable=d[1]==null?a:d[1],c.switch_first_test=d[2]==null?a:d[2],e=d[3]==null?a:d[3],d,e=c.$handle_additional_switch_rules(e),!b(e))&&(!(c.switch_additional_rules=e,!b(c['$valid_switch_body?'](c.$true_body())))&&c['$could_become_switch_branch?'](c.$false_body())))))}),c(m,'$handle_additional_switch_rules',function(d){var c,l=this,e=a,g=a,h=a,i=a,j=a;for(e=[];b(d);){if(g=b(h=n('SWITCH_BRANCH_TEST_MATCH').$match(d))?h:n('SWITCH_BRANCH_TEST_MATCH_CONTINUED').$match(d),!b(g))return!1;if(c=[].concat(k(g)),i=c[0]==null?a:c[0],j=c[1]==null?a:c[1],d=c[2]==null?a:c[2],c,!f(j,l.switch_variable))return!1;e['$<<'](i)}return e}),c(m,'$could_become_switch_branch?',function(d){var c,e=this,i=a,m=a,l=a,j=a,o=a,p=a,r=a,s=a,g=a;if(h(d))return!0;if(q(d.$type(),"if"))return!!b(e['$valid_switch_body?'](d))&&(d.$meta()['$[]=']("switch_default",!0),!0);if(c=[].concat(k(d)),i=c[0]==null?a:c[0],m=c[1]==null?a:c[1],l=c[2]==null?a:c[2],c,j=b(o=n('SWITCH_BRANCH_TEST_MATCH').$match(i))?o:n('SWITCH_BRANCH_TEST_MATCH_CONTINUED').$match(i),!b(j))if(b(e['$valid_switch_body?'](d,!0)))return d.$meta()['$[]=']("switch_default",!0),!0;return!(c=[].concat(k(j)),p=c[0]==null?a:c[0],r=c[1]==null?a:c[1],s=c[2]==null?a:c[2],c,g=e.$handle_additional_switch_rules(s),!b(g))&&(!!f(r,e.switch_variable)&&(!!b(e['$valid_switch_body?'](m))&&(!!b(e['$could_become_switch_branch?'](l))&&(d.$meta()['$merge!'](new Map([["switch_child",!0],["switch_test",p],["switch_variable",e.switch_variable],["switch_additional_rules",g]])),!0))))}),c(m,'$valid_switch_body?',function(c,b){var d=this,f=a;if(b==null&&(b=!1),l(g(n('AST'),'Node'),f=c))switch(c.$type().valueOf()){case"break":case"redo":case"retry":return!1;case"iter":case"while":return!0;default:return e(c.$children(),'all?',[],function d(c){var e=d.$$s==null?this:d.$$s;return c==null&&(c=a),e['$valid_switch_body?'](c,b)},{$$s:d})}else return!l(d.switch_variable,f)||b['$!']()},-2),c(m,'$compile_with_switch',function(){var c=this;return b(c.$sexp().$meta()['$[]']("switch_child"))?(c.switch_variable=c.$sexp().$meta()['$[]']("switch_variable"),c.switch_additional_rules=c.$sexp().$meta()['$[]']("switch_additional_rules"),c.$compile_switch_case(c.$sexp().$meta()['$[]']("switch_test"))):(c.$line("switch (",c.$expr(c.switch_first_test),".valueOf()) {"),e(c,'indent',[],function c(){var b=c.$$s==null?this:c.$$s;return b.switch_test==null&&(b.switch_test=a),b.$compile_switch_case(b.switch_test)},{$$s:c}),c.$line("}"))}),c(m,'$returning?',function(c){var d=a,e=a;return b(d=["return","js_return","next"]['$include?'](c.$type()))?d:b(e=c.$type()['$==']("begin"))?["return","js_return","next"]['$include?'](c.$children().$last().$type()):e}),c(m,'$compile_switch_case',function(d){var c=this;return c.$line("case ",c.$expr(d),":"),b(c.switch_additional_rules)&&e(c.switch_additional_rules,'each',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),d.$line("case ",d.$expr(b),":")},{$$s:c}),e(c,'indent',[],function c(){var b=c.$$s==null?this:c.$$s;return b.$line(b.$stmt(b.$true_body())),h(b.$true_body())||h(b['$returning?'](b.$true_body()))?b.$line("break;"):a},{$$s:c}),b(c.$false_body())?b(c.$false_body().$meta()['$[]']("switch_default"))?c.$compile_switch_default():b(c.$false_body().$meta()['$[]']("switch_child"))?c.$push(c.$stmt(c.$false_body())):a:c.$push(c.$stmt(c.$s("nil")))}),c(m,'$compile_switch_default',function(){var a=this;return a.$line("default:"),e(a,'indent',[],function b(){var a=b.$$s==null?this:b.$$s;return a.$line(a.$stmt(a.$false_body()))},{$$s:a})})}(n[0],o('Base'),n),function(d,e){var b=i(d,e,'BaseFlipFlop');return b.$children("start_condition","end_condition"),c(b,'$compile',function(){var b=this,c=a,d=a;return b.$helper("truthy"),c=b.$top_scope().$new_temp(),d=""+c+".$$ff",b.$push("("+c+" = "+c+" || function(_start_func, _end_func){"),b.$push(" var flip_flop = "+d+" || false;"),b.$push(" if (!flip_flop) "+d+" = flip_flop = $truthy(_start_func());"),b.$push(" "+b.$excl()+"if (flip_flop && $truthy(_end_func())) "+d+" = false;"),b.$push(" return flip_flop;"),b.$push("})("),b.$push(" function() { ",b.$stmt(b.$compiler().$returns(b.$start_condition()))," },"),b.$push(" function() { ",b.$stmt(b.$compiler().$returns(b.$end_condition()))," }"),b.$push(")")})}(n[0],o('Base')),function(b,d){var a=i(b,d,'IFlipFlop');return a.$handle("iflipflop"),c(a,'$excl',m(""))}(n[0],o('BaseFlipFlop')),function(b,d){var a=i(b,d,'EFlipFlop');return a.$handle("eflipflop"),c(a,'$excl',m("else "))}(n[0],o('BaseFlipFlop'))}(n[0],n)}(o[0],o)},Opal.modules["opal/nodes/logic"]=function(b){var e=b.module,c=b.klass,a=b.def,f=b.send,g=b.to_a,d=b.truthy,i=b.rb_gt,j=b.top,h=[],k=b.nil;return b.add_stubs('require,handle,thrower,value,size,children,s,first,in_while?,compile_while,iter?,scope,compile_iter,push,[],while_loop,helper,identity,==,empty_splat?,recv,nil?,>,return_val,expr,to_s'),j.$require("opal/nodes/base"),function(j,k){var l=e(j,'Opal'),h=[l].concat(k);return function(k,l){var m=e(k,'Nodes'),h=[m].concat(l),j=b.$r(h);return function(d,e){var b=c(d,e,'NextNode');return b.$handle("next"),a(b,'$compile',function(){var a=this;return a.$thrower("next",a.$value())}),a(b,'$value',function(){var a=this;switch(a.$children().$size().valueOf()){case 0:return a.$s("nil");case 1:return a.$children().$first();default:return f(a,'s',["array"].concat(g(a.$children())))}})}(h[0],j('Base')),function(d,e){var b=c(d,e,'BreakNode');return b.$handle("break"),b.$children("value"),a(b,'$compile',function(){var a=this;return a.$thrower("break",a.$value())})}(h[0],j('Base')),function(e,f){var b=c(e,f,'RedoNode');return b.$handle("redo"),a(b,'$compile',function(){var a=this;return d(a['$in_while?']())?a.$compile_while():d(a.$scope()['$iter?']())?a.$compile_iter():a.$push("REDO()")}),a(b,'$compile_while',function(){var a=this;return a.$push(""+a.$while_loop()['$[]']("redo_var")+" = true;"),a.$thrower("redo")}),a(b,'$compile_iter',function(){var a=this;return a.$helper("slice"),a.$push("return "+a.$scope().$identity()+".apply(null, $slice(arguments))")})}(h[0],j('Base')),function(e,f){var b=c(e,f,'SplatNode');return b.$handle("splat"),b.$children("value"),a(b,'$empty_splat?',function(){var a=this;return a.$value()['$=='](a.$s("array"))}),a(b,'$compile',function(){var a=this;return d(a['$empty_splat?']())?a.$push("[]"):(a.$helper("to_a"),a.$push("$to_a(",a.$recv(a.$value()),")"))})}(h[0],j('Base')),function(d,e){var b=c(d,e,'RetryNode');return b.$handle("retry"),a(b,'$compile',function(){var a=this;return a.$thrower("retry")})}(h[0],j('Base')),function(e,h){var b=c(e,h,'ReturnNode');return b.$handle("return"),b.$children("value"),a(b,'$return_val',function(){var a=this;return d(a.$value()['$nil?']())?a.$s("nil"):d(i(a.$children().$size(),1))?f(a,'s',["array"].concat(g(a.$children()))):a.$value()}),a(b,'$compile',function(){var a=this;return a.$thrower("return",a.$return_val())})}(h[0],j('Base')),function(d,e){var b=c(d,e,'JSReturnNode');return b.$handle("js_return"),b.$children("value"),a(b,'$compile',function(){var a=this;return a.$push("return "),a.$push(a.$expr(a.$value()))})}(h[0],j('Base')),function(d,e){var b=c(d,e,'JSTempNode');return b.$handle("js_tmp"),b.$children("value"),a(b,'$compile',function(){var a=this;return a.$push(a.$value().$to_s())})}(h[0],j('Base')),function(d,e){var b=c(d,e,'BlockPassNode');return b.$handle("block_pass"),b.$children("value"),a(b,'$compile',function(){var a=this;return a.$push(a.$expr(a.$s("send",a.$value(),"to_proc",a.$s("arglist"))))})}(h[0],j('Base'))}(h[0],h)}(h[0],h)},Opal.modules["opal/nodes/definitions"]=function(b){var j=b.module,f=b.klass,c=b.send,d=b.def,i=b.range,g=b.eqeq,e=b.truthy,p=b.rb_gt,k=b.to_a,o=b.slice,l=b.rb_plus,m=b.const_set,n=b.top,h=[],a=b.nil;return b.add_stubs('require,handle,children,each,line,self,scope,expr,type,new_name,helper,inspect,[],to_s,first,old_name,push,==,record_method_call,compiler,last,error,empty?,stmt?,compile_children,simple_children?,compile_inline_children,>,size,wrap,returned_children,in_closure,await_encountered,parent,+,returns,s,process,fragment,freeze,none?,include?,map,each_with_index,reject,to_proc'),n.$require("opal/nodes/base"),function(n,q){var r=j(n,'Opal'),h=[r].concat(q);return function(q,r){var s=j(q,'Nodes'),h=[s].concat(r),n=b.$r(h);return function(e,g){var b=f(e,g,'UndefNode');return b.$handle("undef"),b.$children("value"),d(b,'$compile',function(){var b=this;return c(b.$children(),'each',[],function d(b){var c=d.$$s==null?this:d.$$s;return b==null&&(b=a),c.$line("Opal.udef("+c.$scope().$self()+", '$' + ",c.$expr(b),");")},{$$s:b})})}(h[0],n('Base')),function(c,e){var b=f(c,e,'AliasNode');return b.$handle("alias"),b.$children("new_name","old_name"),d(b,'$compile',function(){var b=this,c=a,d=a;switch(b.$new_name().$type().valueOf()){case"gvar":return b.$helper("alias_gvar"),c=b.$new_name().$children().$first().$to_s()['$[]'](i(1,-1,!1)).$inspect(),d=b.$old_name().$children().$first().$to_s()['$[]'](i(1,-1,!1)).$inspect(),b.$push("$alias_gvar(",c,", ",d,")");case"dsym":case"sym":return b.$helper("alias"),g(b.$old_name().$type(),"sym")&&b.$compiler().$record_method_call(b.$old_name().$children().$last()),b.$push("$alias("+b.$scope().$self()+", ",b.$expr(b.$new_name()),", ",b.$expr(b.$old_name()),")");default:return b.$error("Opal doesn't know yet how to alias with "+b.$new_name().$type())}})}(h[0],n('Base')),function(s,n,q){var h=f(s,n,'BeginNode'),j=[h].concat(q),r=b.$r(j),i=h.$$prototype;return i.level=i.returned_children=a,h.$handle("begin"),d(h,'$compile',function(){var d,b=this;return e(b.$children()['$empty?']())?b.$push("nil"):e(b['$stmt?']())?b.$compile_children(b.$children(),b.level):e(b['$simple_children?']())?(b.$compile_inline_children(b.$children(),b.level),e(p(b.$children().$size(),1)))?b.$wrap("(",")"):a:g(b.$children().$size(),1)?b.$compile_inline_children(b.$returned_children(),b.level):(c(b,'in_closure',[],function c(){var b=c.$$s==null?this:c.$$s;return b.level==null&&(b.level=a),b.$compile_children(b.$returned_children(),b.level)},{$$s:b}),e((d=b.$scope().$parent(),d===a||d==null?a:d.$await_encountered())))?b.$wrap("(await (async function() {","})())"):b.$wrap("(function() {","})()")}),d(h,'$returned_children',function(){var c,b,d=this,g=a,h=a,f=a;return d.returned_children=e(g=d.returned_children)?g:(c=[].concat(k(d.$children())),b=c.length-1,b=b<0?0:b,h=o(c,0,b),f=c[b]==null?a:c[b],c,e(f)?l(h,[d.$compiler().$returns(f)]):[d.$s("nil")])}),d(h,'$compile_children',function(b,d){var e=this;return c(b,'each',[],function e(b){var c=e.$$s==null?this:e.$$s;return b==null&&(b=a),c.$line(c.$process(b,d),c.$fragment(";",new Map([["loc",!1]])))},{$$s:e})}),m(j[0],'COMPLEX_CHILDREN',["while","while_post","until","until_post","js_return"].$freeze()),d(h,'$simple_children?',function(){var b=this;return c(b.$children(),'none?',[],function(b){return b==null&&(b=a),r('COMPLEX_CHILDREN')['$include?'](b.$type())})}),d(h,'$compile_inline_children',function(e,f){var b=this,d=a;return d=c(e,'map',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),d.$process(b,f)},{$$s:b}),c(c(d,'reject',[],"empty?".$to_proc()),'each_with_index',[],function e(b,c){var d=e.$$s==null?this:e.$$s;return b==null&&(b=a),c==null&&(c=a),g(c,0)||d.$push(d.$fragment(", ",new Map([["loc",!1]]))),d.$push(b)},{$$s:b})})}(h[0],n('ScopeNode'),h),function(a,b){var c=f(a,b,'KwBeginNode');return c.$handle("kwbegin")}(h[0],n('BeginNode'))}(h[0],h)}(h[0],h)},Opal.modules["opal/nodes/yield"]=function(a){var f=a.module,e=a.klass,b=a.truthy,g=a.send,i=a.to_a,c=a.def,j=a.top,h=[],d=a.nil;return a.add_stubs('require,find_yielding_scope,uses_block!,block_name,block_name=,yields_single_arg?,children,push,expr,first,wrap,s,uses_splat?,scope,def?,parent,!,==,size,any?,type,handle,compile_call'),j.$require("opal/nodes/base"),function(j,k){var l=f(j,'Opal'),h=[l].concat(k);return function(k,l){var m=f(k,'Nodes'),h=[m].concat(l),j=a.$r(h);return function(f,h){var a=e(f,h,'BaseYieldNode');return c(a,'$compile_call',function(){var a=this,c=d,f=d,e=d;return c=a.$find_yielding_scope(),c['$uses_block!'](),b(f=c.$block_name())?f:c['$block_name=']("$yield"),e=c.$block_name(),b(a['$yields_single_arg?'](a.$children()))?(a.$push(a.$expr(a.$children().$first())),a.$wrap("Opal.yield1("+e+", ",")")):(a.$push(a.$expr(g(a,'s',["arglist"].concat(i(a.$children()))))),b(a['$uses_splat?'](a.$children())))?a.$wrap("Opal.yieldX("+e+", ",")"):a.$wrap("Opal.yieldX("+e+", [","])")}),c(a,'$find_yielding_scope',function(){var c=this,a=d;for(a=c.$scope();b(a);){if(b(a.$block_name())||b(a['$def?']()))break;a=a.$parent()}return a}),c(a,'$yields_single_arg?',function(a){var e=this,c=d;return b(c=e['$uses_splat?'](a)['$!']())?a.$size()['$=='](1):c}),c(a,'$uses_splat?',function(a){return g(a,'any?',[],function(a){return a==null&&(a=d),a.$type()['$==']("splat")})})}(h[0],j('Base')),function(b,d){var a=e(b,d,'YieldNode');return a.$handle("yield"),c(a,'$compile',function(){var a=this;return a.$compile_call()})}(h[0],j('BaseYieldNode')),function(b,d){var a=e(b,d,'ReturnableYieldNode');return a.$handle("returnable_yield"),c(a,'$compile',function(){var a=this;return a.$compile_call(),a.$wrap("return ",";")})}(h[0],j('BaseYieldNode'))}(h[0],h)}(h[0],h)},Opal.modules["opal/nodes/rescue"]=function(c){var k=c.module,g=c.klass,a=c.truthy,e=c.send,d=c.def,i=c.range,l=c.neqeq,h=c.eqeq,m=c.to_a,n=c.top,j=[],b=c.nil,f=c.$$$;return c.add_stubs('require,handle,children,wrap_in_closure?,push_closure,push,in_ensure,line,stmt,body_sexp,indent,has_rescue_else?,unshift,rescue_else_code,process,compiler,ensr_sexp,pop_closure,await_encountered,scope,wrap,returns,begn,ensr,s,recv?,expr?,rescue_else_sexp,stmt?,[],meta,rescue_else_sexp=,detect,!=,type,handle_rescue_else_manually?,|,has_retry?,in_rescue,body_code,each_with_index,==,body,nil?,!,in_ensure?,expr,klasses,lvar,updated,in_resbody,rescue_body,klasses_sexp'),n.$require("opal/nodes/base"),function(n,o){var p=k(n,'Opal'),j=[p].concat(o);return function(o,p){var q=k(o,'Nodes'),j=[q].concat(p),n=c.$r(j);return function(f,h){var c=g(f,h,'EnsureNode'),i=c.$$prototype;return i.sexp=b,c.$handle("ensure"),c.$children("begn","ensr"),d(c,'$compile',function(){var c=this;return a(c['$wrap_in_closure?']())&&c.$push_closure(),c.$push("try {"),e(c,'in_ensure',[],function b(){var a=b.$$s==null?this:b.$$s;return a.$line(a.$stmt(a.$body_sexp()))},{$$s:c}),c.$line("} finally {"),e(c,'indent',[],function d(){var c=d.$$s==null?this:d.$$s;return c.level==null&&(c.level=b),a(c['$has_rescue_else?']())?(c.$unshift("var $no_errors = true; "),c.$line("var $rescue_else_result;"),c.$line("if ($no_errors) { "),e(c,'indent',[],function b(){var a=b.$$s==null?this:b.$$s;return a.$line("$rescue_else_result = (function() {"),e(a,'indent',[],function b(){var a=b.$$s==null?this:b.$$s;return a.$line(a.$stmt(a.$rescue_else_code()))},{$$s:a}),a.$line("})();")},{$$s:c}),c.$line("}"),c.$line(c.$compiler().$process(c.$ensr_sexp(),c.level)),c.$line("if ($no_errors) { return $rescue_else_result; }")):c.$line(c.$compiler().$process(c.$ensr_sexp(),c.level))},{$$s:c}),c.$line("}"),a(c['$wrap_in_closure?']())&&c.$pop_closure(),a(c['$wrap_in_closure?']())?a(c.$scope().$await_encountered())?c.$wrap("(await (async function() { ","; })())"):c.$wrap("(function() { ","; })()"):b}),d(c,'$body_sexp',function(){var b=this;return a(b['$wrap_in_closure?']())?b.$compiler().$returns(b.$begn()):b.$begn()}),d(c,'$ensr_sexp',function(){var c=this,d=b;return a(d=c.$ensr())?d:c.$s("nil")}),d(c,'$wrap_in_closure?',function(){var c=this,d=b,e=b;return a(d=a(e=c['$recv?']())?e:c['$expr?']())?d:c['$has_rescue_else?']()}),d(c,'$rescue_else_code',function(){var d=this,c=b;return c=d.$scope().$rescue_else_sexp(),a(d['$stmt?']())||(c=d.$compiler().$returns(c)),c}),d(c,'$has_rescue_else?',function(){var a=this;return a.sexp.$meta()['$[]']("has_rescue_else")})}(j[0],n('Base')),function(m,n,o){var j=g(m,n,'RescueNode'),p=[j].concat(o),k=c.$r(p),q=j.$$prototype;return q.sexp=b,j.$handle("rescue"),j.$children("body"),d(j,'$compile',function(){var c=this,g=b,d=b;return c.$scope()['$rescue_else_sexp='](e(c.$children()['$[]'](i(1,-1,!1)),'detect',[],function(c){var d=b;return c==null&&(c=b),a(d=c)?c.$type()['$!=']("resbody"):d})),g=!1,a(c['$handle_rescue_else_manually?']())&&c.$line("var $no_errors = true;"),d=f(k('Closure'),'NONE'),(a(c['$expr?']())||a(c['$recv?']()))&&(d=d['$|'](f(k('Closure'),'JS_FUNCTION'))),a(c['$has_retry?']())&&(d=d['$|'](f(k('Closure'),'JS_LOOP')['$|'](f(k('Closure'),'JS_LOOP_INSIDE'))['$|'](f(k('Closure'),'RESCUE_RETRIER')))),l(d,f(k('Closure'),'NONE'))&&c.$push_closure(d),e(c,'in_rescue',[c],function d(){var c=d.$$s==null?this:d.$$s;return c.$push("try {"),e(c,'indent',[],function b(){var a=b.$$s==null?this:b.$$s;return a.$line(a.$stmt(a.$body_code()))},{$$s:c}),c.$line("} catch ($err) {"),e(c,'indent',[],function d(){var c=d.$$s==null?this:d.$$s;return a(c['$has_rescue_else?']())&&c.$line("$no_errors = false;"),e(c.$children()['$[]'](i(1,-1,!1)),'each_with_index',[],function f(d,e){var c=f.$$s==null?this:f.$$s;return c.level==null&&(c.level=b),d==null&&(d=b),e==null&&(e=b),!(a(d)&&h(d.$type(),"resbody"))?b:(g=!0,h(e,0)||c.$push(" else "),c.$line(c.$process(d,c.level)))},{$$s:c}),c.$push(" else { throw $err; }")},{$$s:c}),c.$line("}"),a(c['$handle_rescue_else_manually?']())?(c.$push("finally {"),e(c,'indent',[],function b(){var a=b.$$s==null?this:b.$$s;return a.$line("if ($no_errors) { "),e(a,'indent',[],function b(){var a=b.$$s==null?this:b.$$s;return a.$line(a.$stmt(a.$rescue_else_code()))},{$$s:a}),a.$line("}")},{$$s:c}),c.$push("}")):b},{$$s:c}),l(d,f(k('Closure'),'NONE'))&&c.$pop_closure(),a(c['$has_retry?']())&&c.$wrap("do { "," break; } while(1)"),a(c['$expr?']())||a(c['$recv?']())?a(c.$scope().$await_encountered())?c.$wrap("(await (async function() { ","})())"):c.$wrap("(function() { ","})()"):b}),d(j,'$body_code',function(){var c=this,d=b;return d=a(c.$body()['$nil?']())||h(c.$body().$type(),"resbody")?c.$s("nil"):c.$body(),a(c['$stmt?']())||(d=c.$compiler().$returns(d)),d}),d(j,'$rescue_else_code',function(){var d=this,c=b;return c=d.$scope().$rescue_else_sexp(),a(d['$stmt?']())||(c=d.$compiler().$returns(c)),c}),d(j,'$handle_rescue_else_manually?',function(){var c=this,d=b;return a(d=c['$in_ensure?']()['$!']())?c['$has_rescue_else?']():d}),d(j,'$has_retry?',function(){var a=this;return a.sexp.$meta()['$[]']("has_retry")})}(j[0],n('Base'),j),function(f,h){var c=g(f,h,'ResBodyNode');return c.$handle("resbody"),c.$children("klasses_sexp","lvar","body"),d(c,'$compile',function(){var c=this;return c.$push("if (Opal.rescue($err, ",c.$expr(c.$klasses()),")) {"),e(c,'indent',[],function d(){var c=d.$$s==null?this:d.$$s;return a(c.$lvar())&&c.$push(c.$expr(c.$lvar().$updated(b,[].concat(m(c.$lvar().$children())).concat([c.$s("js_tmp","$err")])))),c.$line("try {"),e(c,'indent',[],function a(){var b=a.$$s==null?this:a.$$s;return e(b,'in_resbody',[],function b(){var a=b.$$s==null?this:b.$$s;return a.$line(a.$stmt(a.$rescue_body()))},{$$s:b})},{$$s:c}),c.$line("} finally { Opal.pop_exception($err); }")},{$$s:c}),c.$line("}")}),d(c,'$klasses',function(){var c=this,d=b;return a(d=c.$klasses_sexp())?d:c.$s("array",c.$s("const",b,"StandardError"))}),d(c,'$rescue_body',function(){var c=this,d=b,e=b;return d=a(e=c.$body())?e:c.$s("nil"),a(c['$stmt?']())||(d=c.$compiler().$returns(d)),d})}(j[0],n('Base'))}(j[0],j)}(j[0],j)},Opal.modules["opal/nodes/super"]=function(c){var p=c.module,h=c.klass,i=c.slice,l=c.send2,k=c.find_super,e=c.to_a,d=c.truthy,g=c.send,b=c.def,f=c.return_val,m=c.to_ary,s=c.eqeq,q=c.not,n=c.eqeqeq,r=c.top,o=[],a=c.nil,j=c.$$$;return c.add_stubs('require,include?,type,s,helper,push,compile_receiver,compile_method_body,compile_method_name,compile_arguments,compile_block_pass,private,def?,scope,find_parent_def,to_s,mid,def_scope,identify!,self,method_id,def_scope_identity,defined_check_param,allow_stubs,super_chain,join,map,implicit_arguments_param,super_method_invocation,iter?,super_block_invocation,raise,handle,wrap,uses_block!,compile_using_send,==,iter,block_name,implicit_arglist,!,<<,each,children,original_args,[],meta,empty?,==='),r.$require("opal/nodes/base"),function(r,t){var u=p(r,'Opal'),o=[u].concat(t);return function(t,u){var v=p(t,'Nodes'),o=[v].concat(u),r=c.$r(o);return function(n,o){var c=h(n,o,'BaseSuperNode'),j=c.$$prototype;return j.sexp=j.def_scope=a,b(c,'$initialize',function m(r){var o,n,f,c,q=m.$$p||a,b=this,h=a,p=a,j=a;return m.$$p=null,o=i(arguments),n=o,l(b,k(b,'initialize',m,!1,!0),'initialize',e(n),q),h=[].concat(e(b.sexp)),f=[].concat(e(h)),c=f.length-1,c=c<0?0:c,p=i(f,0,c),j=f[c]==null?a:f[c],f,d(j)&&d(["iter","block_pass"]['$include?'](j.$type()))?(b.iter=j,h=p):b.iter=b.$s("js_tmp","null"),b.arglist=g(b,'s',["arglist"].concat(e(h))),b.recvr=b.$s("self")},-1),b(c,'$compile_using_send',function(){var a=this;return a.$helper("send2"),a.$push("$send2("),a.$compile_receiver(),a.$compile_method_body(),a.$compile_method_name(),a.$compile_arguments(),a.$compile_block_pass(),a.$push(")")}),c.$private(),b(c,'$def_scope',function(){var b=this,c=a;return b.def_scope=d(c=b.def_scope)?c:d(b.$scope()['$def?']())?b.$scope():b.$scope().$find_parent_def()}),b(c,'$defined_check_param',f("false")),b(c,'$implicit_arguments_param',f("false")),b(c,'$method_id',function(){var a=this;return a.$def_scope().$mid().$to_s()}),b(c,'$def_scope_identity',function(){var a=this;return a.$def_scope()['$identify!'](a.$def_scope().$mid())}),b(c,'$allow_stubs',f("true")),b(c,'$super_method_invocation',function(){var a=this;return a.$helper("find_super"),"$find_super("+a.$scope().$self()+", '"+a.$method_id()+"', "+a.$def_scope_identity()+", "+a.$defined_check_param()+", "+a.$allow_stubs()+")"}),b(c,'$super_block_invocation',function(){var b,d,c=this,f=a,h=a,e=a,i=a;return c.$helper("find_block_super"),d=c.$scope().$super_chain(),b=m(d),f=b[0]==null?a:b[0],h=b[1]==null?a:b[1],e=b[2]==null?a:b[2],d,i=g(f,'map',[],function(b){return b==null&&(b=a),""+b+".$$def"}).$join(" || "),"$find_block_super("+c.$scope().$self()+", "+e+", ("+i+" || "+h+"), "+c.$defined_check_param()+", "+c.$implicit_arguments_param()+")"}),b(c,'$compile_method_body',function(){var a=this;return a.$push(", "),d(a.$scope()['$def?']())?a.$push(a.$super_method_invocation()):d(a.$scope()['$iter?']())?a.$push(a.$super_block_invocation()):a.$raise("super must be called from method body or block")}),b(c,'$compile_method_name',function(){var b,e,c=this,g=a,h=a,f=a;return d(c.$scope()['$def?']())?c.$push(", '"+c.$method_id()+"'"):d(c.$scope()['$iter?']())?(e=c.$scope().$super_chain(),b=m(e),g=b[0]==null?a:b[0],h=b[1]==null?a:b[1],f=b[2]==null?a:b[2],e,c.$push(", "+f)):a})}(o[0],r('CallNode')),function(c,d){var a=h(c,d,'DefinedSuperNode');return a.$handle("defined_super"),b(a,'$allow_stubs',f("false")),b(a,'$defined_check_param',f("true")),b(a,'$compile',function(){var a=this;return a.$compile_receiver(),a.$compile_method_body(),a.$wrap("((",') != null ? "super" : nil)')})}(o[0],r('BaseSuperNode')),function(f,g){var c=h(f,g,'SuperNode');return c.$handle("super"),b(c,'$initialize',function c(j){var f,g,h=c.$$p||a,b=this;return c.$$p=null,f=i(arguments),g=f,l(b,k(b,'initialize',c,!1,!0),'initialize',e(g),h),d(b.$scope()['$def?']())?b.$scope()['$uses_block!']():a},-1),b(c,'$compile',function(){var a=this;return a.$compile_using_send()})}(o[0],r('BaseSuperNode')),function(p,r,t){var m=h(p,r,'ZsuperNode'),u=[m].concat(t),o=c.$r(u);return m.$handle("zsuper"),b(m,'$implicit_arguments_param',f("true")),b(m,'$initialize',function c(m){var f,g,j=c.$$p||a,b=this,h=a;return c.$$p=null,f=i(arguments),g=f,l(b,k(b,'initialize',c,!1,!0),'initialize',e(g),j),s(b.$iter().$type(),"iter")?a:(b.$scope()['$uses_block!'](),b.iter=b.$s("js_tmp",d(h=b.$scope().$block_name())?h:"$yield"))},-1),b(m,'$compile',function(){var b=this,c=a,f=a;return d(b.$def_scope())&&(c=b.$implicit_arglist(),d(b.$block_name())&&q(b.$iter())&&(f=b.$s("block_pass",b.$s("lvar",b.$block_name())),c['$<<'](f)),b.arglist=g(b,'s',["arglist"].concat(e(c)))),b.$compile_using_send()}),b(m,'$implicit_arglist',function(){var f=this,b=a,c=a;return b=[],c=[],g(f.$def_scope().$original_args().$children(),'each',[],function i(h){var e=i.$$s==null?this:i.$$s,f=a,g=a,j=a;switch(h==null&&(h=a),f=h.$children()['$[]'](0),h.$type().valueOf()){case"arg":case"optarg":return g=e.$s("lvar",f),b['$<<'](g);case"restarg":return g=d(f)?e.$s("lvar",f):e.$s("js_tmp","$rest_arg"),b['$<<'](e.$s("splat",g));case"kwarg":case"kwoptarg":return j=h.$meta()['$[]']("arg_name"),c['$<<'](e.$s("pair",e.$s("sym",j),e.$s("lvar",f)));case"kwrestarg":return g=d(f)?e.$s("lvar",f):e.$s("js_tmp","$kw_rest_arg"),c['$<<'](e.$s("kwsplat",g));default:return a}},{$$s:f}),d(c['$empty?']())||b['$<<'](g(f,'s',["hash"].concat(e(c)))),b}),b(m,'$block_name',function(){var b=this,c=a;return n(j(j(o('Opal'),'Nodes'),'IterNode'),c=b.$def_scope())?b.$def_scope().$block_name():n(j(j(o('Opal'),'Nodes'),'DefNode'),c)?b.$def_scope().$block_name():b.$raise("Don't know what to do with super in the scope "+b.$def_scope())})}(o[0],r('SuperNode'),o)}(o[0],o)}(o[0],o)},Opal.modules["opal/version"]=function(a){var c=a.module,d=a.const_set,b=[],e=a.nil;return function(a,b){var e=c(a,'Opal'),f=[e].concat(b);return d(f[0],'VERSION',"1.8.2")}(b[0],b)},Opal.modules["opal/nodes/top"]=function(c){var h=c.module,k=c.klass,a=c.truthy,l=c.eqeq,f=c.send,d=c.def,j=c.not,e=c.top,i=[],b=c.nil,g=c.$$$;return c.add_stubs('require,handle,children,top_scope=,compiler,[],meta,sexp,dynamic_cache_result=,push,version_comment,eof_content,helper,==,body,s,eval?,esm?,requirable?,unshift,definition,in_scope,use_strict?,line,in_closure,|,stmt,stmts,is_a?,add_temp,add_used_helpers,to_vars,scope,compile_method_stubs,compile_irb_vars,compile_end_construct,opening,closing,enable_file_source_embed?,add_file_source_embed,inspect,module_name,file,!,no_export?,await_encountered,load?,returns,irb?,reverse_each,to_a,helpers,prepend_scope_temp,method_missing?,method_calls,join,map,to_proc,empty?,source,to_json'),e.$require("pathname"),e.$require("json"),e.$require("opal/version"),e.$require("opal/nodes/scope"),function(i,m){var n=h(i,'Opal'),e=[n].concat(m);return function(i,m){var n=h(i,'Nodes'),e=[n].concat(m),o=c.$r(e);return function(i,m,n){var e=k(i,m,'TopNode'),o=[e].concat(n),h=c.$r(o);return e.$handle("top"),e.$children("body"),d(e,'$compile',function(){var c=this;return c.$compiler()['$top_scope='](c),a(c.$sexp().$meta()['$[]']("dynamic_cache_result"))&&c.$compiler()['$dynamic_cache_result='](!0),c.$push(c.$version_comment()),a(c.$compiler().$eof_content())&&c.$helper("return_val"),l(c.$body(),c.$s("nil"))?a(c.$compiler()['$requirable?']())||a(c.$compiler()['$esm?']())||a(c.$compiler()['$eval?']())?(c.$unshift("Opal.return_val(Opal.nil); "),c.$definition()):c.$unshift("Opal.nil; "):(f(c,'in_scope',[],function e(){var c=e.$$s==null?this:e.$$s,d=b;return c.define_nesting==null&&(c.define_nesting=b),c.define_self==null&&(c.define_self=b),c.define_relative_access==null&&(c.define_relative_access=b),c.define_absolute_const==null&&(c.define_absolute_const=b),a(c.$compiler()['$use_strict?']())&&c.$line('"use strict";'),d=f(c,'in_closure',[g(h('Closure'),'JS_FUNCTION')['$|'](g(h('Closure'),'TOP'))],function a(){var b=a.$$s==null?this:a.$$s;return b.$stmt(b.$stmts())},{$$s:c}),a(d['$is_a?'](h('Array')))||(d=[d]),a(c.$compiler()['$eval?']())?a(c.define_nesting)&&c.$add_temp("$nesting = self.$$is_a_module ? [self] : [self.$$class]"):(a(c.define_self)&&c.$add_temp("self = Opal.top"),a(c.define_nesting)&&c.$add_temp("$nesting = []")),a(c.define_relative_access)&&c.$add_temp("$$ = Opal.$r($nesting)"),c.$add_temp("nil = Opal.nil"),a(c.define_absolute_const)&&c.$add_temp("$$$ = Opal.$$$"),c.$add_used_helpers(),c.$line(c.$scope().$to_vars()),c.$compile_method_stubs(),c.$compile_irb_vars(),c.$compile_end_construct(),c.$line(d)},{$$s:c}),c.$opening(),c.$definition(),c.$closing()),a(c.$compiler()['$enable_file_source_embed?']())?c.$add_file_source_embed():b}),d(e,'$module_name',function(){var a=this;return g(h('Opal'),'Compiler').$module_name(a.$compiler().$file()).$inspect()}),d(e,'$definition',function(){var c=this;return a(c.$compiler()['$requirable?']())?c.$unshift("Opal.modules["+c.$module_name()+"] = "):a(c.$compiler()['$esm?']())&&j(c.$compiler()['$no_export?']())?c.$unshift("export default "):b}),d(e,'$opening',function(){var c=this,d=b;return a(c.$await_encountered())&&(d="async "),a(c.$compiler()['$requirable?']())?c.$unshift(""+d+"function(Opal) {"):a(c.$compiler()['$eval?']())?c.$unshift("("+d+"function(Opal, self) {"):c.$unshift("Opal.queue("+d+"function(Opal) {")}),d(e,'$closing',function(){var c=this;return a(c.$compiler()['$requirable?']())?(c.$line("};\n"),a(c.$compiler()['$load?']()))?c.$line("Opal.load_normalized("+c.$module_name()+");"):b:a(c.$compiler()['$eval?']())?c.$line("})(Opal, self);"):c.$line("});\n")}),d(e,'$stmts',function(){var a=this;return a.$compiler().$returns(a.$body())}),d(e,'$absolute_const',function(){var a=this;return a.define_absolute_const=!0,"$$$"}),d(e,'$compile_irb_vars',function(){var c=this;return a(c.$compiler()['$irb?']())?c.$line("if (!Opal.irb_vars) { Opal.irb_vars = {}; }"):b}),d(e,'$add_used_helpers',function(){var a=this;return f(a.$compiler().$helpers().$to_a(),'reverse_each',[],function c(a){var d=c.$$s==null?this:c.$$s;return a==null&&(a=b),d.$prepend_scope_temp("$"+a+" = Opal."+a)},{$$s:a})}),d(e,'$compile_method_stubs',function(){var c=this,e=b,d=b;return a(c.$compiler()['$method_missing?']())?(e=c.$compiler().$method_calls(),d=f(e.$to_a(),'map',[],"to_s".$to_proc()).$join(","),a(d['$empty?']()))?b:c.$line("Opal.add_stubs('"+d+"');"):b}),d(e,'$compile_end_construct',function(){var c=this,d=b;return a(d=c.$compiler().$eof_content())?(c.$line("var $__END__ = Opal.Object.$new();"),c.$line("$__END__.$read = $return_val("+d.$inspect()+");")):b}),d(e,'$version_comment',function(){return"/* Generated by Opal "+g(h('Opal'),'VERSION')+" */"}),d(e,'$add_file_source_embed',function(){var a=this,c=b,d=b;return c=a.$compiler().$file(),d=a.$compiler().$source(),a.$unshift("Opal.file_sources["+c.$to_json()+"] = "+d.$to_json()+";\n")})}(e[0],o('ScopeNode'),e)}(e[0],e)}(i[0],i)},Opal.modules["opal/nodes/while"]=function(c){var i=c.module,f=c.klass,a=c.truthy,h=c.send,b=c.def,g=c.return_val,k=c.top,j=[],d=c.nil,e=c.$$$;return c.add_stubs('require,handle,children,js_truthy,test,uses_redo?,new_temp,scope,in_while,compiler,wrap_in_closure?,[]=,while_loop,in_closure,|,line,indent,stmt,body,compile_with_redo,compile_without_redo,queue_temp,await_encountered,wrap,private,compile_while,unshift,while_open,while_close,[],meta,expr?,recv?'),k.$require("opal/nodes/base"),function(k,l){var m=i(k,'Opal'),j=[m].concat(l);return function(l,m){var n=i(l,'Nodes'),j=[n].concat(m),k=c.$r(j);return function(o,l,m){var i=f(o,l,'WhileNode'),n=[i].concat(m),j=c.$r(n),k=i.$$prototype;return k.redo_var=k.sexp=d,i.$handle("while"),i.$children("test","body"),b(i,'$compile',function(){var b=this,c=d;return c=b.$js_truthy(b.$test()),a(b['$uses_redo?']())&&(b.redo_var=b.$scope().$new_temp()),h(b.$compiler(),'in_while',[],function f(){var b=f.$$s==null?this:f.$$s;return b.redo_var==null&&(b.redo_var=d),a(b['$wrap_in_closure?']())&&b.$while_loop()['$[]=']("closure",!0),b.$while_loop()['$[]=']("redo_var",b.redo_var),h(b,'in_closure',[e(j('Closure'),'LOOP')['$|'](e(j('Closure'),'JS_LOOP'))['$|'](a(b['$wrap_in_closure?']())?e(j('Closure'),'JS_FUNCTION'):0)],function d(){var b=d.$$s==null?this:d.$$s;return h(b,'in_closure',[e(j('Closure'),'LOOP_INSIDE')['$|'](e(j('Closure'),'JS_LOOP_INSIDE'))],function b(){var a=b.$$s==null?this:b.$$s;return a.$line(h(a,'indent',[],function a(){var b=a.$$s==null?this:a.$$s;return b.$stmt(b.$body())},{$$s:a}))},{$$s:b}),a(b['$uses_redo?']())?b.$compile_with_redo(c):b.$compile_without_redo(c)},{$$s:b})},{$$s:b}),a(b['$uses_redo?']())&&b.$scope().$queue_temp(b.redo_var),a(b['$wrap_in_closure?']())?a(b.$scope().$await_encountered())?b.$wrap("(await (async function() {","; return nil; })())"):b.$wrap("(function() {","; return nil; })()"):d}),i.$private(),b(i,'$compile_with_redo',function(b){var a=this;return a.$compile_while(b,""+a.redo_var+" = false;")}),b(i,'$compile_without_redo',function(a){var b=this;return b.$compile_while(a)}),b(i,'$compile_while',function(e,b){var c=this;return b==null&&(b=d),a(b)&&c.$unshift(b),c.$unshift(c.$while_open(),e,c.$while_close()),a(b)&&c.$unshift(b),c.$line("}")},-2),b(i,'$while_open',function(){var b=this,c=d;return a(b['$uses_redo?']())&&(c=""+b.redo_var+" || "),"while ("+c}),b(i,'$while_close',g(") {")),b(i,'$uses_redo?',function(){var a=this;return a.sexp.$meta()['$[]']("has_redo")}),b(i,'$wrap_in_closure?',function(){var b=this,c=d;return a(c=b['$expr?']())?c:b['$recv?']()})}(j[0],k('Base'),j),function(e,h){var c=f(e,h,'UntilNode'),i=c.$$prototype;return i.redo_var=d,c.$handle("until"),c.$private(),b(c,'$while_open',function(){var b=this,c=d;return a(b['$uses_redo?']())&&(c=""+b.redo_var+" || "),"while ("+c+"!("}),b(c,'$while_close',g(")) {"))}(j[0],k('WhileNode')),function(e,h){var c=f(e,h,'WhilePostNode');return c.$handle("while_post"),c.$private(),b(c,'$compile_while',function(e,c){var b=this;return c==null&&(c=d),a(c)&&b.$unshift(c),b.$unshift("do {"),b.$line("} ",b.$while_open(),e,b.$while_close())},-2),b(c,'$while_close',g(");"))}(j[0],k('WhileNode')),function(e,h){var c=f(e,h,'UntilPostNode'),i=c.$$prototype;return i.redo_var=d,c.$handle("until_post"),c.$private(),b(c,'$while_open',function(){var b=this,c=d;return a(b['$uses_redo?']())&&(c=""+b.redo_var+" || "),"while ("+c+"!("}),b(c,'$while_close',g("));"))}(j[0],k('WhilePostNode'))}(j[0],j)}(j[0],j)},Opal.modules["opal/nodes/hash"]=function(b){var h=b.module,i=b.klass,l=b.slice,o=b.send2,k=b.find_super,f=b.to_a,c=b.send,e=b.def,d=b.truthy,g=b.eqeq,m=b.to_ary,n=b.top,j=[],a=b.nil;return b.add_stubs('require,handle,attr_accessor,each,children,type,<<,[],all?,keys,include?,has_kwsplat,compile_merge,compile_hash,==,empty?,expr,s,each_with_index,push,inspect,to_s,simple_keys?,wrap,helper,value'),n.$require("opal/nodes/base"),function(n,p){var q=h(n,'Opal'),j=[q].concat(p);return function(p,q){var r=h(p,'Nodes'),j=[r].concat(q),n=b.$r(j);return function(h,j){var b=i(h,j,'HashNode');return b.$handle("hash"),b.$attr_accessor("has_kwsplat","keys","values"),e(b,'$initialize',function d(i){var e,g,h=d.$$p||a,b=this;return d.$$p=null,e=l(arguments),g=e,o(b,k(b,'initialize',d,!1,!0),'initialize',f(g),h),b.has_kwsplat=!1,b.keys=[],b.values=[],c(b.$children(),'each',[],function d(c){var b=d.$$s==null?this:d.$$s;switch(b.keys==null&&(b.keys=a),b.values==null&&(b.values=a),c==null&&(c=a),c.$type().valueOf()){case"kwsplat":return b.has_kwsplat=!0;case"pair":return b.keys['$<<'](c.$children()['$[]'](0)),b.values['$<<'](c.$children()['$[]'](1));default:return a}},{$$s:b})},-1),e(b,'$simple_keys?',function(){var b=this;return c(b.$keys(),'all?',[],function(b){return b==null&&(b=a),["sym","str","int"]['$include?'](b.$type())})}),e(b,'$compile',function(){var a=this;return d(a.$has_kwsplat())?a.$compile_merge():a.$compile_hash()}),e(b,'$compile_merge',function(){var i,e=this,h=a,b=a;return i=[[],[]],h=i[0],b=i[1],i,c(e.$children(),'each',[],function j(e){var i=j.$$s==null?this:j.$$s;return e==null&&(e=a),g(e.$type(),"kwsplat")?(d(b['$empty?']())||h['$<<'](i.$expr(c(i,'s',["hash"].concat(f(b))))),h['$<<'](i.$expr(e)),b=[]):b['$<<'](e)},{$$s:e}),d(b['$empty?']())||h['$<<'](e.$expr(c(e,'s',["hash"].concat(f(b))))),c(h,'each_with_index',[],function d(b,c){var e=d.$$s==null?this:d.$$s;return b==null&&(b=a),c==null&&(c=a),g(c,0)?e.$push(b):e.$push(".$merge(",b,")")},{$$s:e})}),e(b,'$compile_hash',function(){var b=this;return c(b.$children(),'each_with_index',[],function k(f,h){var c,i,b=k.$$s==null?this:k.$$s,e=a,j=a;return f==null&&(f=a),h==null&&(h=a),i=f.$children(),c=m(i),e=c[0]==null?a:c[0],j=c[1]==null?a:c[1],i,g(h,0)||b.$push(", "),d(["sym","str"]['$include?'](e.$type()))?b.$push("["+e.$children()['$[]'](0).$to_s().$inspect(),", ",b.$expr(j),"]"):b.$push("[",b.$expr(e),", ",b.$expr(j),"]")},{$$s:b}),d(b.$keys()['$empty?']())?b.$push("(new Map())"):d(b['$simple_keys?']())?b.$wrap("(new Map([","]))"):(b.$helper("hash_rehash"),b.$wrap("$hash_rehash(new Map([","]))"))})}(j[0],n('Base')),function(b,c){var a=i(b,c,'KwSplatNode');return a.$handle("kwsplat"),a.$children("value"),e(a,'$compile',function(){var a=this;return a.$push("Opal.to_hash(",a.$expr(a.$value()),")")})}(j[0],n('Base'))}(j[0],j)}(j[0],j)},Opal.modules["opal/nodes/array"]=function(a){var d=a.module,i=a.klass,b=a.truthy,f=a.send,g=a.def,h=a.top,e=[],c=a.nil;return a.add_stubs('require,handle,empty?,children,push,each,==,type,expr,<<,fragment'),h.$require("opal/nodes/base"),function(h,j){var k=d(h,'Opal'),e=[k].concat(j);return function(h,j){var k=d(h,'Nodes'),e=[k].concat(j),l=a.$r(e);return function(d,e){var a=i(d,e,'ArrayNode');return a.$handle("array"),g(a,'$compile',function(){var g,e=this,a=c,d=c,h=c;return b(e.$children()['$empty?']())?e.$push("[]"):(g=[[],[]],a=g[0],d=g[1],g,f(e.$children(),'each',[],function h(g){var e=h.$$s==null?this:h.$$s,i=c,f=c;return g==null&&(g=c),i=g.$type()['$==']("splat"),f=e.$expr(g),b(i)?(b(d['$empty?']())?b(a['$empty?']())?a['$<<'](e.$fragment("[].concat("))['$<<'](f)['$<<'](e.$fragment(")")):a['$<<'](e.$fragment(".concat("))['$<<'](f)['$<<'](e.$fragment(")")):(b(a['$empty?']())?a['$<<'](e.$fragment("["))['$<<'](d)['$<<'](e.$fragment("]")):a['$<<'](e.$fragment(".concat(["))['$<<'](d)['$<<'](e.$fragment("])")),a['$<<'](e.$fragment(".concat("))['$<<'](f)['$<<'](e.$fragment(")"))),d=[]):(b(d['$empty?']())||d['$<<'](e.$fragment(", ")),d['$<<'](f))},{$$s:e}),b(d['$empty?']())||(h=[e.$fragment("["),d,e.$fragment("]")],b(a['$empty?']())?a=h:a.$push([e.$fragment(".concat("),h,e.$fragment(")")])),e.$push(a))})}(e[0],l('Base'))}(e[0],e)}(e[0],e)},Opal.modules["opal/nodes/defined"]=function(c){var j=c.module,k=c.klass,d=c.eqeq,b=c.def,e=c.truthy,f=c.to_a,l=c.slice,g=c.send,h=c.range,m=c.top,i=[],a=c.nil;return c.add_stubs('require,handle,children,type,value,push,inspect,to_s,==,[],size,compile_defined_send,wrap,compile_defined_ivar,compile_defined_super,compile_defined_yield,compile_defined_xstr,compile_defined_const,compile_defined_cvar,compile_defined_gvar,compile_defined_back_ref,compile_defined_nth_ref,compile_defined_array,respond_to?,__send__,new_temp,scope,expr,wrap_with_try_catch,mid_to_jsid,compile_defined,compile_send_recv_doesnt_raise,self,each,s,uses_block!,block_name,find_parent_def,nil?,relative_access,absolute_const,top_scope,class_variable_owner,helper,include?,each_with_index'),m.$require("opal/nodes/base"),function(m,n){var o=j(m,'Opal'),i=[o].concat(n);return function(m,n){var o=j(m,'Nodes'),i=[o].concat(n),p=c.$r(i);return function(i,j){var c=k(i,j,'DefinedNode');return c.$handle("defined?"),c.$children("value"),b(c,'$compile',function(){var a=this;switch(a.$value().$type().valueOf()){case"self":case"nil":case"false":case"true":return a.$push(a.$value().$type().$to_s().$inspect());case"lvasgn":case"ivasgn":case"gvasgn":case"cvasgn":case"casgn":case"op_asgn":case"or_asgn":case"and_asgn":return a.$push("'assignment'");case"lvar":return a.$push("'local-variable'");case"begin":return d(a.$value().$children().$size(),1)&&d(a.$value().$children()['$[]'](0).$type(),"masgn")?a.$push("'assignment'"):a.$push("'expression'");break;case"send":return a.$compile_defined_send(a.$value()),a.$wrap("("," ? 'method' : nil)");case"ivar":return a.$compile_defined_ivar(a.$value()),a.$wrap("("," ? 'instance-variable' : nil)");case"zsuper":case"super":return a.$compile_defined_super();case"yield":return a.$compile_defined_yield(),a.$wrap("("," ? 'yield' : nil)");case"xstr":return a.$compile_defined_xstr(a.$value());case"const":return a.$compile_defined_const(a.$value()),a.$wrap("("," ? 'constant' : nil)");case"cvar":return a.$compile_defined_cvar(a.$value()),a.$wrap("("," ? 'class variable' : nil)");case"gvar":return a.$compile_defined_gvar(a.$value()),a.$wrap("("," ? 'global-variable' : nil)");case"back_ref":return a.$compile_defined_back_ref(),a.$wrap("("," ? 'global-variable' : nil)");case"nth_ref":return a.$compile_defined_nth_ref(),a.$wrap("("," ? 'global-variable' : nil)");case"array":return a.$compile_defined_array(a.$value()),a.$wrap("("," ? 'expression' : nil)");default:return a.$push("'expression'")}}),b(c,'$compile_defined',function(c){var b=this,d=a,f=a;return d=c.$type(),e(b['$respond_to?']("compile_defined_"+d))?b.$__send__("compile_defined_"+d,c):(f=b.$scope().$new_temp(),b.$push("("+f+" = ",b.$expr(c),")"),f)}),b(c,'$wrap_with_try_catch',function(d){var b=this,c=a;return c=b.$scope().$new_temp(),b.$push("("+c+" = (function() { try {"),b.$push(" return "+d+";"),b.$push("} catch ($err) {"),b.$push(" if (Opal.rescue($err, [Opal.Exception])) {"),b.$push(" try {"),b.$push(" return false;"),b.$push(" } finally { Opal.pop_exception($err); }"),b.$push(" } else { throw $err; }"),b.$push("}})())"),c}),b(c,'$compile_send_recv_doesnt_raise',function(a){var b=this;return b.$wrap_with_try_catch(a)}),b(c,'$compile_defined_send',function(q){var c,b=this,i=a,n=a,o=a,p=a,k=a,h=a,m=a,j=a;return c=[].concat(f(q)),i=c[0]==null?a:c[0],n=c[1]==null?a:c[1],o=l(c,2),c,p=b.$mid_to_jsid(n.$to_s()),e(i)?(k=b.$compile_defined(i),b.$push(" && "),d(i.$type(),"send")&&(k=b.$compile_send_recv_doesnt_raise(k),b.$push(" && ")),h=b.$scope().$new_temp(),b.$push("("+h+" = ",k,", "+h+") && ")):h=b.$scope().$self(),m=b.$scope().$new_temp(),b.$push("("+m+" = "+h+") && "),j=b.$scope().$new_temp(),b.$push("((("+j+" = "+m+p+") && !"+j+".$$stub)"),b.$push(" || "+m+"['$respond_to_missing?']('"+n+"'))"),g(o,'each',[],function c(b){var d=c.$$s==null?this:c.$$s;switch(b==null&&(b=a),b.$type().valueOf()){case"block_pass":return a;default:return d.$push(" && "),d.$compile_defined(b)}},{$$s:b}),b.$wrap("(",")"),""+j+"()"}),b(c,'$compile_defined_ivar',function(e){var c=this,d=a,b=a;return d=e.$children()['$[]'](0).$to_s()['$[]'](h(1,-1,!1)),b=c.$scope().$new_temp(),c.$push("("+b+" = "+c.$scope().$self()+"['"+d+"'], "+b+" != null && "+b+" !== nil)"),b}),b(c,'$compile_defined_super',function(){var a=this;return a.$push(a.$expr(a.$s("defined_super")))}),b(c,'$compile_defined_yield',function(){var b=this,c=a,d=a;return b.$scope()['$uses_block!'](),c=e(d=b.$scope().$block_name())?d:b.$scope().$find_parent_def().$block_name(),b.$push("("+c+" != null && "+c+" !== nil)"),c}),b(c,'$compile_defined_xstr',function(b){var a=this;return a.$push("(typeof(",a.$expr(b),') !== "undefined")')}),b(c,'$compile_defined_const',function(k){var c,b=this,h=a,i=a,g=a,j=a;return c=[].concat(f(k)),h=c[0]==null?a:c[0],i=c[1]==null?a:c[1],c,g=b.$scope().$new_temp(),e(h['$nil?']())?b.$push("("+g+" = "+b.$scope().$relative_access()+"('"+i+"', 'skip_raise'))"):d(h,b.$s("cbase"))?b.$push("("+g+" = "+b.$top_scope().$absolute_const()+"('::', '"+i+"', 'skip_raise'))"):(j=b.$compile_defined(h),b.$push(" && ("+g+" = "+b.$top_scope().$absolute_const()+"("+j+", '"+i+"', 'skip_raise'))")),g}),b(c,'$compile_defined_cvar',function(g){var b,d=this,e=a,h=a,c=a;return b=[].concat(f(g)),e=b[0]==null?a:b[0],h=b[1]==null?a:b[1],b,c=d.$scope().$new_temp(),d.$push("("+c+" = "+d.$class_variable_owner()+".$$cvars['"+e+"'], "+c+" != null)"),c}),b(c,'$compile_defined_gvar',function(f){var b=this,d=a,c=a;return b.$helper("gvars"),d=f.$children()['$[]'](0).$to_s()['$[]'](h(1,-1,!1)),c=b.$scope().$new_temp(),e(["~","!"]['$include?'](d))?b.$push("("+c+" = ",b.$expr(f)," || true)"):b.$push("("+c+" = $gvars["+d.$inspect()+"], "+c+" != null)"),c}),b(c,'$compile_defined_back_ref',function(){var c=this,b=a;return c.$helper("gvars"),b=c.$scope().$new_temp(),c.$push("("+b+" = $gvars['~'], "+b+" != null && "+b+" !== nil)"),b}),b(c,'$compile_defined_nth_ref',function(){var c=this,b=a;return c.$helper("gvars"),b=c.$scope().$new_temp(),c.$push("("+b+" = $gvars['~'], "+b+" != null && "+b+" != nil)"),b}),b(c,'$compile_defined_array',function(b){var c=this;return g(b.$children(),'each_with_index',[],function e(b,c){var f=e.$$s==null?this:e.$$s;return b==null&&(b=a),c==null&&(c=a),d(c,0)||f.$push(" && "),f.$compile_defined(b)},{$$s:c})})}(i[0],p('Base'))}(i[0],i)}(i[0],i)},Opal.modules["opal/nodes/masgn"]=function(b){var i=b.module,j=b.klass,k=b.const_set,d=b.send,e=b.eqeq,c=b.truthy,f=b.def,l=b.rb_ge,m=b.not,g=b.rb_plus,n=b.top,h=[],a=b.nil;return b.add_stubs('require,freeze,handle,children,with_temp,==,type,rhs,push,expr,any?,size,compile_masgn,lhs,helper,take_while,!=,drop,each_with_index,compile_assignment,empty?,shift,[],<<,dup,s,new_temp,scope,queue_temp,>=,!,updated,include?,+,last,raise'),n.$require("opal/nodes/base"),function(n,o){var p=i(n,'Opal'),h=[p].concat(o);return function(n,o){var p=i(n,'Nodes'),h=[p].concat(o),q=b.$r(h);return function(n,o,p){var h=j(n,o,'MassAssignNode'),i=[h].concat(p),q=b.$r(i);return k(i[0],'SIMPLE_ASSIGNMENT',["lvasgn","ivasgn","lvar","gvasgn","cdecl","casgn"].$freeze()),h.$handle("masgn"),h.$children("lhs","rhs"),f(h,'$compile',function(){var b=this;return d(b,'with_temp',[],function g(f){var b=g.$$s==null?this:g.$$s,h=a;return f==null&&(f=a),e(b.$rhs().$type(),"array")?(b.$push(""+f+" = ",b.$expr(b.$rhs())),h=c(d(b.$rhs().$children(),'any?',[],function(b){return b==null&&(b=a),b.$type()['$==']("splat")}))?a:b.$rhs().$children().$size(),b.$compile_masgn(b.$lhs().$children(),f,h),b.$push(", "+f)):(b.$helper("to_ary"),d(b,'with_temp',[],function d(c){var b=d.$$s==null?this:d.$$s;return c==null&&(c=a),b.$push(""+c+" = ",b.$expr(b.$rhs())),b.$push(", "+f+" = $to_ary("+c+")"),b.$compile_masgn(b.$lhs().$children(),f),b.$push(", "+c)},{$$s:b}))},{$$s:b})}),f(h,'$compile_masgn',function(m,j,l){var b=this,h=a,i=a,k=a,g=a,f=a;return l==null&&(l=a),h=d(m,'take_while',[],function(b){return b==null&&(b=a),b.$type()['$!=']("splat")}),i=m.$drop(h.$size()),d(h,'each_with_index',[],function d(b,c){var e=d.$$s==null?this:d.$$s;return b==null&&(b=a),c==null&&(c=a),e.$compile_assignment(b,j,c,l)},{$$s:b}),c(i['$empty?']())?a:(k=i.$shift(),c(i['$empty?']())?c(g=k.$children()['$[]'](0))?(b.$helper("slice"),g=g.$dup()['$<<'](b.$s("js_tmp","$slice("+j+", "+h.$size()+")")),b.$push(", "),b.$push(b.$expr(g))):a:(f=b.$scope().$new_temp(),b.$push(", "+f+" = "+j+".length - "+i.$size()),b.$push(", "+f+" = ("+f+" < "+h.$size()+") ? "+h.$size()+" : "+f),c(g=k.$children()['$[]'](0))&&(b.$helper("slice"),g=g.$dup()['$<<'](b.$s("js_tmp","$slice("+j+", "+h.$size()+", "+f+")")),b.$push(", "),b.$push(b.$expr(g))),d(i,'each_with_index',[],function d(b,c){var g=d.$$s==null?this:d.$$s;return b==null&&(b=a),c==null&&(c=a),e(c,0)?g.$compile_assignment(b,j,f):g.$compile_assignment(b,j,""+f+" + "+c)},{$$s:b}),b.$scope().$queue_temp(f)))},-3),f(h,'$compile_assignment',function(f,n,j,k){var b=this,h=a,d=a,i=a;if(k==null&&(k=a),h=m(k)||c(l(j,k))?b.$s("js_tmp","("+n+"["+j+"] == null ? nil : "+n+"["+j+"])"):b.$s("js_tmp",""+n+"["+j+"]"),d=f.$updated(),c(q('SIMPLE_ASSIGNMENT')['$include?'](f.$type())))d=d.$updated(a,g(d.$children(),[h]));else if(e(f.$type(),"send"))d=d.$updated(a,g(d.$children(),[h]));else if(e(f.$type(),"attrasgn"))d.$last()['$<<'](h);else if(e(f.$type(),"mlhs"))return b.$helper("to_ary"),i=b.$scope().$new_temp(),b.$push(", ("+i+" = $to_ary("+h.$children()['$[]'](0)+")"),b.$compile_masgn(f.$children(),i),b.$push(")"),b.$scope().$queue_temp(i),a;else b.$raise("Bad child node in masgn LHS: "+f+". LHS: "+b.$lhs());return b.$push(", "),b.$push(b.$expr(d))},-4)}(h[0],q('Base'),h)}(h[0],h)}(h[0],h)},Opal.modules["opal/nodes/arglist"]=function(a){var d=a.module,j=a.klass,f=a.send,b=a.truthy,g=a.to_a,h=a.def,i=a.top,e=[],c=a.nil;return a.add_stubs('require,handle,each,children,==,type,expr,empty?,<<,fragment,push'),i.$require("opal/nodes/base"),function(i,k){var l=d(i,'Opal'),e=[l].concat(k);return function(i,k){var l=d(i,'Nodes'),e=[l].concat(k),m=a.$r(e);return function(d,e){var a=j(d,e,'ArglistNode');return a.$handle("arglist"),h(a,'$compile',function(){var h,e=this,a=c,d=c,i=c;return h=[[],[]],a=h[0],d=h[1],h,f(e.$children(),'each',[],function h(g){var e=h.$$s==null?this:h.$$s,i=c,f=c;return g==null&&(g=c),i=g.$type()['$==']("splat"),f=e.$expr(g),b(i)?(b(d['$empty?']())?b(a['$empty?']())?a['$<<'](f):a['$<<'](e.$fragment(".concat("))['$<<'](f)['$<<'](e.$fragment(")")):(b(a['$empty?']())?a['$<<'](e.$fragment("["))['$<<'](d)['$<<'](e.$fragment("]")):a['$<<'](e.$fragment(".concat(["))['$<<'](d)['$<<'](e.$fragment("])")),a['$<<'](e.$fragment(".concat("))['$<<'](f)['$<<'](e.$fragment(")"))),d=[]):(b(d['$empty?']())||d['$<<'](e.$fragment(", ")),d['$<<'](f))},{$$s:e}),b(d['$empty?']())||(i=d,b(a['$empty?']())?a=i:a['$<<'](e.$fragment(".concat(["))['$<<'](i)['$<<'](e.$fragment("])"))),f(e,'push',g(a))})}(e[0],m('Base'))}(e[0],e)}(e[0],e)},Opal.modules["opal/nodes/x_string"]=function(c){var h=c.module,k=c.klass,b=c.truthy,d=c.def,f=c.send,n=c.to_a,i=c.defs,j=c.lambda,e=c.eqeq,l=c.not,m=c.range,g=[],a=c.nil;return c.add_stubs('handle,backtick_javascript_or_warn?,compiler,compile_javascript,compile_send,s,children,push,process,unpack_return,strip_empty_children,single_line?,compile_single_line,each,compile_child,recv?,wrap,==,size,none?,type,end_with?,source,expression,loc,dup,nil?,empty?,rstrip,any?,[],first,shift,last,pop,private,include?,self,scope,new,expr,raise,strip,=~,!,extract_last_value,expr?,warning,line'),function(o,p){var q=h(o,'Opal'),g=[q].concat(p);return function(o,p){var q=h(o,'Nodes'),g=[q].concat(p),r=c.$r(g);return function(s,p,q){var g=k(s,p,'XStringNode'),r=[g].concat(q),h=c.$r(r),o=g.$$prototype;return o.level=o.should_add_semicolon=o.returning=a,g.$handle("xstr"),d(g,'$compile',function(){var a=this;return b(a.$compiler()['$backtick_javascript_or_warn?']())?a.$compile_javascript():a.$compile_send()}),d(g,'$compile_send',function(){var b=this,c=a;return c=b.$s("send",a,"`",f(b,'s',["dstr"].concat(n(b.$children())))),b.$push(b.$process(c,b.level))}),d(g,'$compile_javascript',function(){var c=this,d=a,e=a;return c.should_add_semicolon=!1,d=c.$unpack_return(c.$children()),e=h('XStringNode').$strip_empty_children(d),b(h('XStringNode')['$single_line?'](e))?c.$compile_single_line(e):f(d,'each',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),d.$compile_child(b)},{$$s:c}),b(c['$recv?']())&&c.$wrap("(",")"),b(c.should_add_semicolon)?c.$push(";"):a}),i(g,'$single_line?',function(c){var d=a;return b(d=c.$size()['$=='](1))?d:f(c,'none?',[],function(c){var d=a;return c==null&&(c=a),b(d=c.$type()['$==']("str"))?c.$loc().$expression().$source()['$end_with?']("\n"):d})}),i(g,'$strip_empty_children',function(c){var e=a,d=a;for(c=c.$dup(),e=j(function(c){var d=a,e=a;return c==null&&(c=a),b(d=c['$nil?']())?d:b(e=c.$type()['$==']("str"))?c.$loc().$expression().$source().$rstrip()['$empty?']():e});b(b(d=c['$any?']())?e['$[]'](c.$first()):d);)c.$shift();while(b(b(d=c['$any?']())?e['$[]'](c.$last()):d))c.$pop();return c}),g.$private(),d(g,'$compile_child',function(d){var c=this,e=a;switch(d.$type().valueOf()){case"str":return e=d.$loc().$expression().$source(),b(e['$include?']("self"))&&c.$scope().$self(),c.$push(h('Fragment').$new(e,c.$scope(),d));case"begin":case"gvar":case"ivar":case"nil":return c.$push(c.$expr(d));default:return c.$raise("Unsupported xstr part: "+d.$type())}}),d(g,'$compile_single_line',function(j){var c=this,k=a,d=a,m=a,i=a,n=a,g=a,o=a;return k=!1,d=j.$shift(),m=j['$empty?'](),d=b(i=d)?i:c.$s("nil"),e(d.$type(),"str")&&(n=d.$loc().$expression().$source().$strip(),k=n['$=~'](/^return\b/)),b(c.returning)&&l(k)&&c.$push("return "),g=b(i=j.$pop())?i:d,e(g.$type(),"str")&&(o=c.$extract_last_value(g)),b(m)||(c.should_add_semicolon=!1,c.$compile_child(d),f(j,'each',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),d.$compile_child(b)},{$$s:c})),e(g.$type(),"str")?c.$push(h('Fragment').$new(o,c.$scope(),g)):c.$compile_child(g)}),d(g,'$extract_last_value',function(e){var c=this,d=a;return d=e.$loc().$expression().$source().$rstrip(),b(d['$include?']("self"))&&c.$scope().$self(),(b(c.returning)||b(c['$expr?']()))&&b(d['$end_with?'](";"))&&(c.$compiler().$warning("Removed semicolon ending x-string expression, interpreted as unintentional",e.$line()),d=d['$[]'](m(0,-2,!1))),b(c.returning)&&(c.should_add_semicolon=!0),d}),d(g,'$unpack_return',function(b){var d=this,c=a;return c=b.$first(),d.returning=!1,e(c.$type(),"js_return")&&(d.returning=!0,b=c.$children()),b})}(g[0],r('Base'),g)}(g[0],g)}(g[0],g)},Opal.modules["opal/nodes/lambda"]=function(a){var b=a.module,d=a.klass,e=a.send,f=a.def,g=a.top,c=[],h=a.nil;return a.add_stubs('require,handle,children,helper,defines_lambda,scope,push,expr,iter'),g.$require("opal/nodes/call"),function(g,h){var i=b(g,'Opal'),c=[i].concat(h);return function(g,h){var i=b(g,'Nodes'),c=[i].concat(h),j=a.$r(c);return function(b,c){var a=d(b,c,'LambdaNode');return a.$handle("lambda"),a.$children("iter"),f(a,'$compile',function(){var a=this;return a.$helper("lambda"),e(a.$scope(),'defines_lambda',[],function b(){var a=b.$$s==null?this:b.$$s;return a.$push("$lambda(",a.$expr(a.$iter()),")")},{$$s:a})})}(c[0],j('Base'))}(c[0],c)}(c[0],c)},Opal.modules["opal/nodes"]=function(b){var a=b.top,c=b.nil;return b.add_stubs('require'),a.$require("opal/nodes/closure"),a.$require("opal/nodes/base"),a.$require("opal/nodes/literal"),a.$require("opal/nodes/variables"),a.$require("opal/nodes/constants"),a.$require("opal/nodes/call"),a.$require("opal/nodes/call_special"),a.$require("opal/nodes/module"),a.$require("opal/nodes/class"),a.$require("opal/nodes/singleton_class"),a.$require("opal/nodes/args"),a.$require("opal/nodes/args/arity_check"),a.$require("opal/nodes/iter"),a.$require("opal/nodes/def"),a.$require("opal/nodes/defs"),a.$require("opal/nodes/if"),a.$require("opal/nodes/logic"),a.$require("opal/nodes/definitions"),a.$require("opal/nodes/yield"),a.$require("opal/nodes/rescue"),a.$require("opal/nodes/super"),a.$require("opal/nodes/top"),a.$require("opal/nodes/while"),a.$require("opal/nodes/hash"),a.$require("opal/nodes/array"),a.$require("opal/nodes/defined"),a.$require("opal/nodes/masgn"),a.$require("opal/nodes/arglist"),a.$require("opal/nodes/x_string"),a.$require("opal/nodes/lambda")},Opal.modules["opal/eof_content"]=function(b){var g=b.module,h=b.klass,l=b.const_set,d=b.def,c=b.truthy,i=b.send,j=b.range,k=b.eqeq,e=b.to_ary,f=[],a=b.nil;return b.add_stubs('empty?,[],last_token_position,drop_while,lines,match?,!,start_with?,join,==,private,last,end_pos'),function(m,n){var o=g(m,'Opal'),f=[o].concat(n);return function(m,n,o){var f=h(m,n,'EofContent'),p=[f].concat(o),g=f.$$prototype;return g.tokens=g.source=a,l(p[0],'DATA_SEPARATOR',"__END__\n"),d(f,'$initialize',function(b,c){var a=this;return a.tokens=b,a.source=c}),d(f,'$eof',function(){var e=this,d=a,f=a;return c(e.tokens['$empty?']())?a:(d=e.source['$[]'](b.Range.$new(e.$last_token_position(),-1,!1)),!c(d))?a:(d=i(d.$lines(),'drop_while',[],function(b){var d=a;return b==null&&(b=a),c(d=/^.*\r?\n?$/['$match?'](b))?b['$start_with?']("__END__")['$!']():d}),c(/^__END__\r?\n?$/['$match?'](d['$[]'](0))))?(d=c(f=d['$[]'](j(1,-1,!1)))?f:[],d.$join()):k(d,["__END__"])?"":a}),f.$private(),d(f,'$last_token_position',function(){var b,c,h=this,f=a,g=a,d=a;return c=h.tokens.$last(),b=e(c),f=b[0]==null?a:b[0],g=b[1]==null?a:b[1],c,c=g,b=e(c),f=b[0]==null?a:b[0],d=b[1]==null?a:b[1],c,d.$end_pos()})}(f[0],null,f)}(f[0],f)},Opal.modules["opal/errors"]=function(a){var m=a.module,d=a.klass,l=a.send2,k=a.find_super,e=a.def,c=a.truthy,i=a.defs,f=a.rb_plus,j=a.alias,g=a.send,h=[],b=a.nil,n=a.$$$;return a.add_stubs('attr_reader,attr_accessor,new,respond_to?,location=,location,diagnostic=,diagnostic,to_a,backtrace,unshift,to_s,set_backtrace,path,lineno,+,label,lineno=,line,label=,source_line,expression'),function(q,r){var p=m(q,'Opal'),h=[p].concat(r),o=a.$r(h);return d(h[0],o('StandardError'),'Error'),function(c,f){var a=d(c,f,'GemNotFound');return a.$attr_reader("gem_name"),e(a,'$initialize',function a(d){var e=a.$$p||b,c=this;return a.$$p=null,c.gem_name=d,l(c,k(c,'initialize',a,!1,!0),'initialize',["can't find gem "+d],null)})}(h[0],o('Error')),function(a,b){var c=d(a,b,'CompilationError');return c.$attr_accessor("location")}(h[0],o('Error')),d(h[0],o('CompilationError'),'ParsingError'),d(h[0],o('ParsingError'),'RewritingError'),function(a,b){var c=d(a,b,'SyntaxError');return c.$attr_accessor("location")}(h[0],n('SyntaxError')),i(p,'$opal_location_from_error',function(a){var d=b;return d=o('OpalBacktraceLocation').$new(),c(a['$respond_to?']("location"))&&d['$location='](a.$location()),c(a['$respond_to?']("diagnostic"))&&d['$diagnostic='](a.$diagnostic()),d}),i(p,'$add_opal_location_to_error',function(d,a){var c=b;return c=a.$backtrace().$to_a(),c.$unshift(d.$to_s()),a.$set_backtrace(c),a}),function(h,i){var a=d(h,i,'OpalBacktraceLocation');return a.$attr_accessor("path","lineno","label"),e(a,'$initialize',function(c,d,e){var a,f=this;return c==null&&(c=b),d==null&&(d=b),e==null&&(e=b),a=[c,d,e],f.path=a[0],f.lineno=a[1],f.label=a[2],a},-1),e(a,'$to_s',function(){var d=this,a=b;return a=d.$path(),c(d.$lineno())&&(a=f(a,":"+d.$lineno())),a=f(a,":in "),c(d.$label())?a=f(a,"`"+d.$label()+"'"):a=f(a,"unknown"),a}),j(a,"line","lineno"),e(a,'$diagnostic=',function(d){var a,e=this;return c(d)?(a=[d.$location()],g(e,'location=',a),a[a.length-1]):b}),e(a,'$location=',function(d){var a,e=this;return c(d)?(e['$lineno='](d.$line()),c(d['$respond_to?']("source_line")))?(a=[d.$source_line()],g(e,'label=',a),a[a.length-1]):c(d['$respond_to?']("expression"))?(a=[d.$expression().$source_line()],g(e,'label=',a),a[a.length-1]):b:b})}(h[0],null)}(h[0],h)},Opal.modules["opal/magic_comments"]=function(a){var h=a.module,e=a.const_set,c=a.truthy,d=a.send,i=a.rb_ge,f=a.eqeqeq,j=a.defs,g=[],k=a.$r(g),b=a.nil;return a.add_stubs('freeze,line,loc,take,each,>=,any?,scan,text,[]=,to_sym,==='),function(m,n){var k=h(m,'MagicComments'),g=[k].concat(n),l=a.$r(g);return e(g[0],'MAGIC_COMMENT_RE',/^# *(\w+) *: *(\S+.*?) *$/.$freeze()),e(g[0],'EMACS_MAGIC_COMMENT_RE',/^# *-\*- *(\w+) *: *(\S+.*?) *-\*- *$/.$freeze()),j(k,'$parse',function(h,e){var g=b,a=b;return g=new Map,c(h)&&(a=h.$loc().$line(),e=e.$take(a)),d(e,'each',[],function(e){var h=b;return e==null&&(e=b),c(a)&&c(i(e.$loc().$line(),a))?b:c((h=e.$text().$scan(l('MAGIC_COMMENT_RE')))['$any?']())||c((h=e.$text().$scan(l('EMACS_MAGIC_COMMENT_RE')))['$any?']())?d(h,'each',[],function(e,a){var c,h=b;return e==null&&(e=b),a==null&&(a=b),(c=[e.$to_sym(),f("true",h=a)||(f("false",h)?!1:a)],d(g,'[]=',c),c[c.length-1])}):b}),g})}(k('Opal'),g)},Opal.modules["opal/source_map/map"]=function(a){var i=a.module,f=a.truthy,b=a.def,k=a.send,l=a.slice,h=a.to_ary,e=a.top,g=[],j=a.$r(g),c=a.nil,d=a.$$$;return a.add_stubs('require,map,to_h,to_json,each,[],delete,to_s,encode64,generated_code'),e.$require("base64"),e.$require("json"),function(j,m){var e=i(j,'Map'),n=[e].concat(m),g=a.$r(n);return b(e,'$to_h',function(){var a=this,b=c;return a.to_h==null&&(a.to_h=c),f(b=a.to_h)?b:a.$map()}),b(e,'$to_json',function(){var e=this,b=c;try{return b=e.$to_h(),b.$to_json()}catch(e){if(a.rescue(e,[d(g('Encoding'),'UndefinedConversionError')]))try{return k(b['$[]']("sections"),'each',[],function(e){e==null&&(e=c);try{return e.$to_json()}catch(c){if(a.rescue(c,[d(g('Encoding'),'UndefinedConversionError')]))try{return b['$[]']("sections").$delete(e)}finally{a.pop_exception(c)}else throw c}}),b.$to_json()}finally{a.pop_exception(e)}else throw e}}),b(e,'$as_json',function(e){var a,b,c=this;return a=l(arguments),b=a,c.$to_h()},-1),b(e,'$to_s',function(){var a=this;return a.$to_h().$to_s()}),b(e,'$to_data_uri_comment',function(){var a=this;return"//# sourceMappingURL=data:application/json;base64,"+g('Base64').$encode64(a.$to_json()).$delete("\n")}),b(e,'$cache',function(){var a=this,b=c;return a.to_h==null&&(a.to_h=c),a.to_h=f(b=a.to_h)?b:a.$map(),a}),b(e,'$marshal_dump',function(){var a=this;return[a.$to_h(),a.$generated_code()]}),b(e,'$marshal_load',function(e){var a,b,d=this;return b=e,a=h(b),d.to_h=a[0]==null?c:a[0],d.generated_code=a[1]==null?c:a[1],b})}(d(j('Opal'),'SourceMap'),g)},Opal.modules["opal/source_map/file"]=function(c){var p=c.klass,d=c.send,e=c.def,b=c.truthy,j=c.ensure_kwargs,i=c.hash_get,n=c.eqeq,g=c.rb_minus,k=c.rb_lt,q=c.to_ary,l=c.rb_plus,m=c.not,h=[],o=c.$r(h),a=c.nil,f=c.$$$;return c.add_stubs('include,attr_reader,new,[]=,size,join,map,to_proc,file,==,encoding,source,encode,names,encode_mappings,relative_mappings,absolute_mappings,sort_by,to_a,-,line,<,column,source_map_name,[],to_s,to_int,each,fragments_by_line,skip_source_map?,is_a?,<<,segment_from_fragment,+,private,flat_map,fragments,code,match?,split,with_index,!,zero?,last'),function(v,s,t){var h=p(v,s,'File'),u=[h].concat(t),r=c.$r(u),o=h.$$prototype;return o.generated_code=o.fragments=o.names=o.names_map=o.relative_mappings=o.absolute_mappings=a,h.$include(f(f(r('Opal'),'SourceMap'),'Map')),h.$attr_reader("fragments"),h.$attr_reader("file"),h.$attr_reader("source"),e(h,'$initialize',function(e,f,g,c){var b=this;return c==null&&(c=a),b.fragments=e,b.file=f,b.source=g,b.names_map=d(r('Hash'),'new',[],function(b,e){var c;return b==null&&(b=a),e==null&&(e=a),(c=[e,b.$size()],d(b,'[]=',c),c[c.length-1])}),b.generated_code=c,b.absolute_mappings=a},-4),e(h,'$generated_code',function(){var c=this,e=a;return c.generated_code=b(e=c.generated_code)?e:d(c.fragments,'map',[],"code".$to_proc()).$join()}),e(h,'$map',function(c){var b,a=this;return c=j(c),b=i(c,"source_root"),b==null&&(b=""),new Map([["version",3],["sourceRoot",b],["sources",[a.$file()]],["sourcesContent",[n(a.$source().$encoding(),f(r('Encoding'),'UTF_8'))?a.$source():a.$source().$encode("UTF-8",new Map([["undef","replace"]]))]],["names",a.$names()],["mappings",f(f(r('Opal'),'SourceMap'),'VLQ').$encode_mappings(a.$relative_mappings())]])},-1),e(h,'$names',function(){var c=this,e=a;return c.names=b(e=c.names)?e:(c.$absolute_mappings(),d(d(c.names_map.$to_a(),'sort_by',[],function(c,b){return c==null&&(c=a),b==null&&(b=a),b}),'map',[],function(b,c){return b==null&&(b=a),c==null&&(c=a),b}))}),e(h,'$segment_from_fragment',function(f,m){var h,j=this,l=a,e=a,c=a,i=a,n=a;return l=0,e=g(b(c=f.$line())?c:0,1),b(k(e,0))&&(e=0),i=b(c=f.$column())?c:0,b(f.$source_map_name())?(n=b(c=j.names_map['$[]'](f.$source_map_name().$to_s()))?c:(h=[f.$source_map_name().$to_s(),j.names_map.$size()],d(j.names_map,'[]=',h),h[h.length-1]),[m,l,e,i,n]):[m,l,e,i]}),e(h,'$relative_mappings',function(){var e=this,h=a,c=a,f=a;return e.relative_mappings=b(h=e.relative_mappings)?h:(c=[0,0,0,0,0],f=0,d(e.$absolute_mappings(),'map',[],function(e){return e==null&&(e=a),c['$[]='](0,0),d(e,'map',[],function(d){var h=a,e=a;return d==null&&(d=a),h=[],h['$[]='](0,g(d['$[]'](0),c['$[]'](0))),h['$[]='](1,g(d['$[]'](1),b(e=c['$[]'](1))?e:0)),h['$[]='](2,g(d['$[]'](2),b(e=c['$[]'](2))?e:0)),h['$[]='](3,g(d['$[]'](3),b(e=c['$[]'](3))?e:0)),b(d['$[]'](4))&&(h['$[]='](4,g(d['$[]'](4).$to_int(),(b(e=c['$[]'](4))?e:f).$to_int())),f=d['$[]'](4)),c=d,h})}))}),e(h,'$absolute_mappings',function(){var c=this,g=a,e=a;return c.absolute_mappings=b(g=c.absolute_mappings)?g:(e=[],d(c.$fragments_by_line(),'each',[],function i(g){var j=i.$$s==null?this:i.$$s,c=a,h=a;return g==null&&(g=a),c=0,h=[],d(g,'each',[],function k(g){var d,i,m=k.$$s==null?this:k.$$s,j=a,e=a;return g==null&&(g=a),i=g,d=q(i),j=d[0]==null?a:d[0],e=d[1]==null?a:d[1],i,b(e['$is_a?'](f(r('Opal'),'Fragment')))&&b(e['$skip_source_map?']())||h['$<<'](m.$segment_from_fragment(e,c)),c=l(c,j.$size())},{$$s:j,$$has_top_level_mlhs_arg:!0}),e['$<<'](h)},{$$s:c}),e)}),h.$private(),e(h,'$fragments_by_line',function(){var e=this,c=a;return c=[[]],d(e.$fragments(),'flat_map',[],function(e){var f=a,g=a,h=a;return e==null&&(e=a),f=e.$code(),g=b(/\r/['$match?'](f))?/\r?\n/:"\n",h=f.$split(g,-1),d(h.$each(),'with_index',[],function(d,f){var g=a;return d==null&&(d=a),f==null&&(f=a),g=[d,e],b(f['$zero?']())&&m(d.$size()['$zero?']())?c.$last()['$<<'](g):b(f['$zero?']())&&b(d.$size()['$zero?']())?a:b(d.$size()['$zero?']())?c['$<<']([]):c['$<<']([g])})}),c})}(f(o('Opal'),'SourceMap'),null,h)},Opal.modules["opal/source_map/index"]=function(a){var i=a.klass,j=a.ensure_kwargs,g=a.hash_get,f=a.def,l=a.send,h=a.truthy,c=a.rb_plus,e=[],k=a.$r(e),b=a.nil,d=a.$$$;return a.add_stubs('include,attr_reader,map,to_h,generated_code,+,count,[],rindex,size'),function(k,m,n){var e=i(k,m,'Index'),o=[e].concat(n),p=a.$r(o),q=e.$$prototype;return q.source_maps=b,e.$include(d(d(p('Opal'),'SourceMap'),'Map')),e.$attr_reader("source_maps"),f(e,'$initialize',function(e,c){var a,d=this;return c=j(c),a=g(c,"join"),a==null&&(a=b),d.source_maps=e,d.join=a},-2),f(e,'$map',function(){var f=this,d=b,e=b;return d=0,e=0,new Map([["version",3],["sections",l(f.source_maps,'map',[],function j(g){var i=j.$$s==null?this:j.$$s,k=b,f=b,l=b,m=b;return i.join==null&&(i.join=b),g==null&&(g=b),k=new Map([["offset",new Map([["line",d],["column",e]])],["map",g.$to_h()]]),f=g.$generated_code(),h(i.join)&&(f=c(f,i.join)),l=f.$count("\n"),m=f['$[]'](a.Range.$new(c(f.$rindex("\n"),1),-1,!1)),d=c(d,l),e=c(e,m.$size()),k},{$$s:f})]])})}(d(k('Opal'),'SourceMap'),null,e)},Opal.modules["opal/source_map/vlq"]=function(b){var p=b.module,e=b.const_set,m=b.rb_minus,c=b.send,k=b.range,d=b.truthy,n=b.rb_lt,g=b.rb_plus,i=b.rb_gt,l=b.thrower,f=b.defs,j=b.eqeq,h=[],o=b.$r(h),a=b.nil,q=b.$$$;return b.add_stubs('<<,-,split,inject,[]=,[],each,<,+,-@,loop,&,>>,>,|,join,any?,shift,raise,==,map,encode,each_with_index,decode'),function(r,s){var q=p(r,'VLQ'),o=[q].concat(s),h=b.$r(o);return e(o[0],'VLQ_BASE_SHIFT',5),e(o[0],'VLQ_BASE',1['$<<'](h('VLQ_BASE_SHIFT'))),e(o[0],'VLQ_BASE_MASK',m(h('VLQ_BASE'),1)),e(o[0],'VLQ_CONTINUATION_BIT',h('VLQ_BASE')),e(o[0],'BASE64_DIGITS',"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".$split("")),e(o[0],'BASE64_VALUES',c(k(0,64,!0),'inject',[new Map],function(b,c){return b==null&&(b=a),c==null&&(c=a),b['$[]='](h('BASE64_DIGITS')['$[]'](c),c),b})),f(q,'$encode',function(e){var f=this,b=a;return b=[],c(e,'each',[],function j(f){var k=j.$$s==null?this:j.$$s,e=a;return f==null&&(f=a),e=d(n(f,0))?g(f['$-@']()['$<<'](1),1):f['$<<'](1),function(){try{var f=l('break');return c(k,'loop',[],function g(){var c=a;if(c=e['$&'](h('VLQ_BASE_MASK')),e=e['$>>'](h('VLQ_BASE_SHIFT')),d(i(e,0))&&(c=c['$|'](h('VLQ_CONTINUATION_BIT'))),b['$<<'](h('BASE64_DIGITS')['$[]'](c)),d(i(e,0)))return a;f.$throw(a,g.$$is_lambda)})}catch(a){if(a===f)return a.$v;throw a}finally{f.is_orphan=!0}}()},{$$s:f}),b.$join()}),f(q,'$decode',function(m){var n=this,l=a,k=a,b=a,e=a,f=a,i=a,c=a;for(l=[],k=m.$split("");d(k['$any?']());){for(b=0,e=0,f=!0;d(f);)i=k.$shift(),d(i)||n.$raise(h('ArgumentError')),c=h('BASE64_VALUES')['$[]'](i),j(c['$&'](h('VLQ_CONTINUATION_BIT')),0)&&(f=!1),c=c['$&'](h('VLQ_BASE_MASK')),b=g(b,c['$<<'](e)),e=g(e,h('VLQ_BASE_SHIFT'));l['$<<'](j(b['$&'](1),1)?b['$>>'](1)['$-@']():b['$>>'](1))}return l}),f(q,'$encode_mappings',function(b){var d=this;return c(b,'map',[],function d(b){var e=d.$$s==null?this:d.$$s;return b==null&&(b=a),c(b,'map',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),d.$encode(b)},{$$s:e}).$join(",")},{$$s:d}).$join(";")}),f(q,'$decode_mappings',function(d){var e=this,b=a;return b=[],c(d.$split(";"),'each_with_index',[],function f(e,d){var g=f.$$s==null?this:f.$$s;return e==null&&(e=a),d==null&&(d=a),b['$[]='](d,[]),c(e.$split(","),'each',[],function e(c){var f=e.$$s==null?this:e.$$s;return c==null&&(c=a),b['$[]'](d)['$<<'](f.$decode(c))},{$$s:g})},{$$s:e}),b})}(q(o('Opal'),'SourceMap'),h)},Opal.modules["opal/source_map"]=function(a){var b=a.module,c=[],d=a.nil;return a.add_stubs('autoload'),function(a,c){var d=b(a,'Opal'),e=[d].concat(c);return function(c){var a=b(c,'SourceMap');return a.$autoload("Map","opal/source_map/map"),a.$autoload("File","opal/source_map/file"),a.$autoload("Index","opal/source_map/index"),a.$autoload("VLQ","opal/source_map/vlq")}(e[0])}(c[0],c)},Opal.modules["opal/compiler"]=function(b){var w=b.module,l=b.defs,v=b.klass,q=b.const_set,f=b.send,d=b.truthy,o=b.not,c=b.def,i=b.eqeqeq,j=b.Opal,m=b.to_ary,x=b.alias,u=b.regexp,s=b.rb_minus,t=b.return_ivar,k=b.slice,r=b.rb_plus,g=b.to_a,p=b.eqeq,h=b.top,n=[],a=b.nil,e=b.$$$;return b.add_stubs('require,compile,new,include,freeze,join,dirname,first,split,basename,to_s,cleanpath,Pathname,fetch,define_method,option_value,key?,[],!,include?,raise,inspect,[]=,compiler_option,===,backtick_javascript?,warning,attr_reader,attr_accessor,parse,re_raise_with_location,flatten,process,end_with?,code,last,<<,fragment,s,map,to_proc,file,source=,default_parser,tokenize,requirable?,eval?,tap,meta,location,children,associate_locations,eof,magic_comments,to_sym,strip,async_await,async_await_before_typecasting,async_await_set_to_regexp,to_a,gsub,escape,location=,opal_location_from_error,path=,label,label=,lines,-,to_i,line,message,set_backtrace,backtrace,add_opal_location_to_error,warn,empty?,+,start_with?,helpers,new_temp,queue_temp,push_while,pop_while,in_while?,nil?,scope,handlers,type,compile_to_fragments,error,returns,updated,backtick_javascript_or_warn?,==,uses_block!,block_name,find_parent_def,cache,source_map'),h.$require("corelib/string/unpack"),h.$require("set"),h.$require("opal/parser"),h.$require("opal/fragment"),h.$require("opal/nodes"),h.$require("opal/eof_content"),h.$require("opal/errors"),h.$require("opal/magic_comments"),h.$require("opal/nodes/closure"),h.$require("opal/source_map"),function(y,z){var n=w(y,'Opal'),h=[n].concat(z),A=b.$r(h);return l(n,'$compile',function(b,a){return a==null&&(a=new Map),A('Compiler').$new(b,a).$compile()},-2),function(B,z,A){var h=v(B,z,'Compiler'),y=[h].concat(A),n=b.$r(y),w=h.$$prototype;return w.option_values=w.options=w.magic_comments=w.backtick_javascript_warned=w.fragments=w.buffer=w.source=w.source_map=w.result=w.helpers=w.method_calls=w.async_await=w.unique=w.indent=w.scope=w.case_stmt=w.handlers=w.requires=w.required_trees=w.autoloads=a,h.$include(e(e(n('Nodes'),'Closure'),'CompilerSupport')),q(y[0],'INDENT'," "),q(y[0],'COMPARE',["<",">","<=",">="].$freeze()),l(h,'$module_name',function(a){var b=this;return a=n('File').$join(n('File').$dirname(a),n('File').$basename(a).$split(".").$first()),b.$Pathname(a).$cleanpath().$to_s()}),l(h,'$compiler_option',function(c,b){var d=this,e=a;return b==null&&(b=new Map),e=b.$fetch("as",c),f(d,'define_method',[e],function a(){var d=a.$$s==null?this:a.$$s;return d.$option_value(c,b)},{$$s:d})},-2),c(h,'$option_value',function(b,i){var h,c=this,j=a,g=a,k=a,e=a;return d(c.option_values['$key?'](b))?c.option_values['$[]'](b):(j=i['$[]']("default"),g=i['$[]']("valid_values"),k=i['$[]']("magic_comment"),e=c.options.$fetch(b,j),d(k)&&d(c.magic_comments['$key?'](b))&&(e=c.magic_comments.$fetch(b)),d(g)&&o(g['$include?'](e))&&c.$raise(n('ArgumentError'),""+("invalid value "+e.$inspect()+" for option "+b.$inspect()+" ")+("(valid values: "+g.$inspect()+")")),(h=[b,e],f(c.option_values,'[]=',h),h[h.length-1]))}),h.$compiler_option("file",new Map([["default","(file)"]])),h.$compiler_option("method_missing",new Map([["default",!0],["as","method_missing?"]])),h.$compiler_option("arity_check",new Map([["default",!1],["as","arity_check?"]])),h.$compiler_option("freezing",new Map([["default",!0],["as","freezing?"]])),h.$compiler_option("irb",new Map([["default",!1],["as","irb?"]])),h.$compiler_option("dynamic_require_severity",new Map([["default","ignore"],["valid_values",["error","warning","ignore"]]])),h.$compiler_option("requirable",new Map([["default",!1],["as","requirable?"]])),h.$compiler_option("load",new Map([["default",!1],["as","load?"]])),h.$compiler_option("esm",new Map([["default",!1],["as","esm?"]])),h.$compiler_option("no_export",new Map([["default",!1],["as","no_export?"]])),h.$compiler_option("inline_operators",new Map([["default",!0],["as","inline_operators?"]])),h.$compiler_option("eval",new Map([["default",!1],["as","eval?"]])),h.$compiler_option("enable_source_location",new Map([["default",!1],["as","enable_source_location?"]])),h.$compiler_option("enable_file_source_embed",new Map([["default",!1],["as","enable_file_source_embed?"]])),h.$compiler_option("use_strict",new Map([["default",!1],["as","use_strict?"],["magic_comment",!0]])),h.$compiler_option("parse_comments",new Map([["default",!1],["as","parse_comments?"]])),h.$compiler_option("backtick_javascript",new Map([["default",a],["as","backtick_javascript?"],["magic_comment",!0]])),c(h,'$backtick_javascript_or_warn?',function(){var b=this,c=a,e=a;return!!i(!0,c=b['$backtick_javascript?']())||(i(a,c)?(b.backtick_javascript_warned=d(e=b.backtick_javascript_warned)?e:(b.$warning("Backtick operator usage interpreted as intent to embed JavaScript; this code will break in Opal 2.0; add a magic comment: `# backtick_javascript: true`"),!0),!0):!i(!1,c)&&a)}),h.$compiler_option("scope_variables",new Map([["default",[]]])),h.$compiler_option("await",new Map([["default",!1],["as","async_await"],["magic_comment",!0]])),h.$attr_reader("result"),h.$attr_reader("fragments"),h.$attr_accessor("scope"),h.$attr_accessor("top_scope"),h.$attr_reader("case_stmt"),h.$attr_reader("eof_content"),h.$attr_reader("comments"),h.$attr_reader("method_calls"),h.$attr_reader("magic_comments"),h.$attr_reader("source"),h.$attr_accessor("dynamic_cache_result"),c(h,'$initialize',function(d,c){var b=this;return c==null&&(c=new Map),b.source=d,b.indent="",b.unique=0,b.options=c,b.comments=n('Hash').$new([]),b.case_stmt=a,b.method_calls=n('Set').$new(),b.option_values=new Map,b.magic_comments=new Map,b.dynamic_cache_result=!1},-2),c(h,'$compile',function(){var b=this;return b.$parse(),b.fragments=f(b,'re_raise_with_location',[],function c(){var b=c.$$s==null?this:c.$$s;return b.sexp==null&&(b.sexp=a),b.$process(b.sexp).$flatten()},{$$s:b}),d(b.fragments.$last().$code()['$end_with?']("\n"))||b.fragments['$<<'](b.$fragment("\n",a,b.$s("newline"))),b.result=f(b.fragments,'map',[],"code".$to_proc()).$join("")}),c(h,'$parse',function(){var c,h,b=this,g=a,i=a,l=a,o=a,k=a;return b.buffer=e(e(j,'Parser'),'SourceBuffer').$new(b.$file(),1),b.buffer['$source='](b.source),b.parser=e(n('Opal'),'Parser').$default_parser(),h=f(b,'re_raise_with_location',[],function c(){var b=c.$$s==null?this:c.$$s;return b.parser==null&&(b.parser=a),b.buffer==null&&(b.buffer=a),b.parser.$tokenize(b.buffer)},{$$s:b}),c=m(h),g=c[0]==null?a:c[0],i=c[1]==null?a:c[1],l=c[2]==null?a:c[2],h,o=d(b['$requirable?']())?"require":d(b['$eval?']())?"eval":"main",b.sexp=f(g,'tap',[],function(c){var b;return c==null&&(c=a),(b=["kind",o],f(c.$meta(),'[]=',b),b[b.length-1])}),d(g.$children().$first().$location())&&(k=g.$children().$first()),b.comments=e(e(e('Parser'),'Source'),'Comment').$associate_locations(k,i),b.magic_comments=n('MagicComments').$parse(k,i),b.eof_content=n('EofContent').$new(l,b.source).$eof()}),c(h,'$source_map',function(){var b=this,c=a;return d(c=b.source_map)?c:e(e(j,'SourceMap'),'File').$new(b.fragments,b.$file(),b.source,b.result)}),c(h,'$helpers',function(){var b=this,c=a;return b.helpers=d(c=b.helpers)?c:n('Set').$new(f(b.$magic_comments()['$[]']("helpers").$to_s().$split(","),'map',[],function(b){return b==null&&(b=a),b.$strip().$to_sym()}))}),c(h,'$record_method_call',function(a){var b=this;return b.method_calls['$<<'](a)}),x(h,"async_await_before_typecasting","async_await"),c(h,'$async_await',function(){var g,b=this,e=a,c=a;return d((g=b.async_await,g!=null&&g!==a)?'instance-variable':a)?b.async_await:(e=b.$async_await_before_typecasting(),b.async_await=i(n('String'),c=e)?b.$async_await_set_to_regexp(f(e.$split(","),'map',[],function(b){return b==null&&(b=a),b.$strip().$to_sym()})):i(n('Array'),c)||i(n('Set'),c)?b.$async_await_set_to_regexp(f(e.$to_a(),'map',[],"to_sym".$to_proc())):i(n('Regexp'),c)||i(!0,c)||i(!1,c)?e:b.$raise("A value of await compiler option can be either a Set, an Array, a String or a Boolean."))}),c(h,'$async_await_set_to_regexp',function(b){return b=f(b,'map',[],function(b){return b==null&&(b=a),n('Regexp').$escape(b.$to_s()).$gsub("\\*",".*?")}),b=b.$join("|"),u(["^(",b,")$"])}),c(h,'$error',function(f,b){var d=this,c=a;return b==null&&(b=a),c=e(j,'SyntaxError').$new(f),c['$location='](e(n('Opal'),'OpalBacktraceLocation').$new(d.$file(),b)),d.$raise(c)},-2),c(h,'$re_raise_with_location',function k(){var l=k.$$p||a,h=this,g=a,c=a,i=a,f=a;k.$$p=null;try{return b.yieldX(l,[])}catch(a){if(b.rescue(a,[n('StandardError'),e(j,'SyntaxError')])){g=a;try{return c=j.$opal_location_from_error(g),c['$path='](h.$file()),d(i=c.$label())?i:c['$label='](h.source.$lines()['$[]'](s(c.$line().$to_i(),1)).$strip()),f=e(j,'SyntaxError').$new(g.$message()),f.$set_backtrace(g.$backtrace()),j.$add_opal_location_to_error(c,f),h.$raise(f)}finally{b.pop_exception(a)}}else throw a}}),c(h,'$warning',function(d,b){var c=this;return b==null&&(b=a),c.$warn("warning: "+d+" -- "+c.$file()+":"+b)},-2),c(h,'$parser_indent',t("indent")),c(h,'$s',function(c,f){var a,b;return a=k(arguments,1),b=a,e(e(j,'AST'),'Node').$new(c,b)},-2),c(h,'$fragment',function(c,d,b){return b==null&&(b=a),n('Fragment').$new(c,d,b)},-3),c(h,'$unique_temp',function(b){var c=this,e=a;return b=b.$to_s(),d(b)&&o(b['$empty?']())&&(b=b.$to_s().$gsub("<=>","$lt_eq_gt").$gsub("===","$eq_eq_eq").$gsub("==","$eq_eq").$gsub("=~","$eq_tilde").$gsub("!~","$excl_tilde").$gsub("!=","$not_eq").$gsub("<=","$lt_eq").$gsub(">=","$gt_eq").$gsub("=","$eq").$gsub("?","$ques").$gsub("!","$excl").$gsub("/","$slash").$gsub("%","$percent").$gsub("+","$plus").$gsub("-","$minus").$gsub("<","$lt").$gsub(">","$gt").$gsub(/[^\w\$]/,"$")),e=c.unique=r(c.unique,1),""+(d(b['$start_with?']("$"))?a:"$")+b+"$"+e}),c(h,'$helper',function(a){var b=this;return b.$helpers()['$<<'](a)}),c(h,'$indent',function d(){var g=d.$$p||a,c=this,e=a,f=a;return d.$$p=null,e=c.indent,c.indent=r(c.indent,n('INDENT')),c.space="\n"+c.indent,f=b.yieldX(g,[]),c.indent=e,c.space="\n"+c.indent,f}),c(h,'$with_temp',function d(){var g=d.$$p||a,e=this,c=a,f=a;return d.$$p=null,c=e.scope.$new_temp(),f=b.yield1(g,c),e.scope.$queue_temp(c),f}),c(h,'$in_while',function d(){var e=d.$$p||a,c=this,f=a;return d.$$p=null,!(e!==a)?a:(c.while_loop=c.scope.$push_while(),f=b.yieldX(e,[]),c.scope.$pop_while(),f)}),c(h,'$in_case',function d(){var e=d.$$p||a,c=this,f=a;return d.$$p=null,!(e!==a)?a:(f=c.case_stmt,c.case_stmt=new Map,b.yieldX(e,[]),c.case_stmt=f)}),c(h,'$in_while?',function(){var a=this;return a.scope['$in_while?']()}),c(h,'$process',function(c,e){var b=this,f=a;return e==null&&(e="expr"),d(c['$nil?']())?b.$fragment("",b.$scope()):d(f=b.$handlers()['$[]'](c.$type()))?f.$new(c,e,b).$compile_to_fragments():b.$error("Unsupported sexp: "+c.$type())},-2),c(h,'$handlers',function(){var b=this,c=a;return b.handlers=d(c=b.handlers)?c:e(e(n('Opal'),'Nodes'),'Base').$handlers()}),c(h,'$requires',function(){var b=this,c=a;return b.requires=d(c=b.requires)?c:[]}),c(h,'$required_trees',function(){var b=this,c=a;return b.required_trees=d(c=b.required_trees)?c:[]}),c(h,'$autoloads',function(){var b=this,c=a;return b.autoloads=d(c=b.autoloads)?c:[]}),c(h,'$returns',function(c){var b,e,h=this,o=a,n=a,m=a,j=a,i=a,q=a,r=a,s=a,t=a,u=a,v=a,w=a,x=a,y=a,l=a;if(!d(c))return h.$returns(h.$s("nil"));switch(c.$type().valueOf()){case"undef":return h.$returns(c.$updated("begin",[c,h.$s("nil")]));case"break":case"next":case"redo":case"retry":return c;case"yield":return c.$updated("returnable_yield",a);case"when":return b=[].concat(g(c)),e=b.length-1,e=e<0?0:e,o=k(b,0,e),n=b[e]==null?a:b[e],b,c.$updated(a,[].concat(g(o)).concat([h.$returns(n)]));case"rescue":return b=[].concat(g(c)),m=b[0]==null?a:b[0],e=b.length-1,e=e<1?1:e,j=k(b,1,e),i=b[e]==null?a:b[e],b,j=f(j,'map',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),d.$returns(b)},{$$s:h}),d(i)&&(i=h.$returns(i)),c.$updated(a,[h.$returns(m)].concat(g(j)).concat([i]));case"resbody":return b=[].concat(g(c)),q=b[0]==null?a:b[0],r=b[1]==null?a:b[1],s=b[2]==null?a:b[2],b,c.$updated(a,[q,r,h.$returns(s)]);case"ensure":return b=[].concat(g(c)),t=b[0]==null?a:b[0],u=b[1]==null?a:b[1],b,c=c.$updated(a,[h.$returns(t),u]),c.$updated("js_return",[c]);case"begin":case"kwbegin":return b=[].concat(g(c)),e=b.length-1,e=e<0?0:e,v=k(b,0,e),w=b[e]==null?a:b[e],b,c.$updated(a,[].concat(g(v)).concat([h.$returns(w)]));case"while":case"until":case"while_post":case"until_post":return c;case"return":case"js_return":case"returnable_yield":return c;case"xstr":return d(h['$backtick_javascript_or_warn?']())?c.$updated(a,[f(h,'s',["js_return"].concat(g(c.$children())))]):c;break;case"if":return b=[].concat(g(c)),x=b[0]==null?a:b[0],y=b[1]==null?a:b[1],l=b[2]==null?a:b[2],b,f(c.$updated(a,[x,h.$returns(y),h.$returns(l)]),'tap',[],function(c){var b;return c==null&&(c=a),(b=["returning",!0],f(c.$meta(),'[]=',b),b[b.length-1])});default:return p(c.$type(),"send")&&p(c.$children()['$[]'](1),"debugger")?c.$updated("begin",[c,h.$s("js_return",h.$s("nil"))]):c.$updated("js_return",[c])}}),c(h,'$handle_block_given_call',function(e){var b=this,c=a;return b.scope['$uses_block!'](),d(b.scope.$block_name())?b.$fragment("("+b.scope.$block_name()+" !== nil)",b.$scope(),e):d(c=b.scope.$find_parent_def())&&d(c.$block_name())?b.$fragment("("+c.$block_name()+" !== nil)",c,e):b.$fragment("false",c,e)}),c(h,'$marshal_dump',function(){var b=this,c=a;return[b.options,b.option_values,b.source_map=d(c=b.source_map)?c:b.$source_map().$cache(),b.magic_comments,b.result,b.required_trees,b.requires,b.autoloads]}),c(h,'$marshal_load',function(e){var b,d,c=this;return d=e,b=m(d),c.options=b[0]==null?a:b[0],c.option_values=b[1]==null?a:b[1],c.source_map=b[2]==null?a:b[2],c.magic_comments=b[3]==null?a:b[3],c.result=b[4]==null?a:b[4],c.required_trees=b[5]==null?a:b[5],c.requires=b[6]==null?a:b[6],c.autoloads=b[7]==null?a:b[7],d})}(h[0],null,h)}(n[0],n)},Opal.modules["opal/erb"]=function(a){var e=a.module,m=a.defs,h=a.klass,i=a.const_set,b=a.def,g=a.truthy,j=a.rb_plus,f=a.send,k=a.regexp,l=a.top,d=[],c=a.nil;return a.add_stubs('require,compile,new,freeze,fix_quotes,find_contents,find_code,wrap_compiled,require_erb,prepared_source,gsub,+,last_match,=~,sub'),l.$require("opal/compiler"),function(l,n){var o=e(l,'Opal'),d=[o].concat(n);return function(n,o){var l=e(n,'ERB'),d=[l].concat(o),p=a.$r(d);return m(l,'$compile',function(b,a){return a==null&&(a="(erb)"),p('Compiler').$new(b,a).$compile()},-2),function(p,n,o){var d=h(p,n,'Compiler'),m=[d].concat(o),e=a.$r(m),l=d.$$prototype;return l.prepared_source=l.source=l.file_name=c,i(m[0],'BLOCK_EXPR',/\s+(do|\{)(\s*\|[^|]*\|)?\s*\Z/.$freeze()),b(d,'$initialize',function(d,b){var a,c=this;return b==null&&(b="(erb)"),a=[d,b,d],c.source=a[0],c.file_name=a[1],c.result=a[2],a},-2),b(d,'$prepared_source',function(){var b=this,d=c,a=c;return b.prepared_source=g(d=b.prepared_source)?d:(a=b.source,a=b.$fix_quotes(a),a=b.$find_contents(a),a=b.$find_code(a),a=b.$wrap_compiled(a),a=b.$require_erb(a),a)}),b(d,'$compile',function(){var a=this;return e('Opal').$compile(a.$prepared_source())}),b(d,'$fix_quotes',function(a){return a.$gsub('"','\\"')}),b(d,'$require_erb',function(a){return j('require "erb";',a)}),b(d,'$find_contents',function(a){return f(a,'gsub',[/<%=([\s\S]+?)%>/],function(){var a=c;return a=e('Regexp').$last_match(1).$gsub(/\\'/,"'").$gsub(/\\"/,'"'),g(a['$=~'](e('BLOCK_EXPR')))?'")\noutput_buffer.append= '+a+'\noutput_buffer.append("':'")\noutput_buffer.append=('+a+')\noutput_buffer.append("'})}),b(d,'$find_code',function(a){return f(a,'gsub',[/<%([\s\S]+?)%>/],function(){var a=c;return a=e('Regexp').$last_match(1).$gsub(/\\"/,'"'),'")\n'+a+'\noutput_buffer.append("'})}),b(d,'$wrap_compiled',function(b){var d=this,a=c;return a=d.file_name.$sub(k(["\\.opalerb",e('REGEXP_END')]),""),"Template.new('"+a+"') do |output_buffer|\noutput_buffer.append(\""+b+'")\noutput_buffer.join\nend\n'})}(d[0],null,d)}(d[0],d)}(d[0],d)},Opal.modules["opal-parser"]=function(a){var l=a.call,n=a.raise,j=a.module,f=a.Opal,e=a.truthy,i=a.rb_plus,g=a.def,p=a.thrower,c=a.top,d=[],k=a.$r(d),b=a.nil,m=a.$$$,o;a.add_stubs('require,coerce_to!,merge,new,compile,[],+,to_data_uri_comment,source_map,js_eval'),c.$require("corelib/string/unpack"),c.$require("opal/compiler"),c.$require("opal/erb"),c.$require("opal/version"),function(h,k){var c=j(h,'Kernel'),l=[c].concat(k),d=a.$r(l);return g(c,'$eval',function(g,c,h,o){var p=this,l=b,n=b,j=b,k=b,a=b;return c==null&&(c=b),h==null&&(h=b),o==null&&(o=b),g=f['$coerce_to!'](g,d('String'),"to_str"),l=new Map([["file",e(n=h)?n:"(eval)"],["eval",!0]]),j=new Map([['arity_check',!1]]).$merge(l),k=m(d('Opal'),'Compiler').$new(g,j),a=k.$compile(),e(j['$[]']("no_source_map"))||(a=i(a,k.$source_map().$to_data_uri_comment())),e(c)?c.$js_eval(a):function(b){return eval(a)}(p)},-2),g(c,'$require_remote',function(e){var b,d,c;try{return d=this,c=new XMLHttpRequest,c.open("GET",e,!1),c.send(''),(b=c.responseText,typeof a.compile=='function'?eval(a.compile(b,{scope_variables:["url"],arity_check:!1,file:'(eval)',eval:!0})):d.$eval(b))}catch(b){if(b===a.t_eval_return)return b.$v;throw b}})}(d[0],d),o=Object.hasOwn||l.bind(Object.prototype.hasOwnProperty),a.compile=function(c,b){try{return c=f['$coerce_to!'](c,k('String'),"to_str"),b&&(b=a.hash(b)),a.Opal.$compile(c,b)}catch(b){if(b.$$class===a.Opal.SyntaxError){var d=a.SyntaxError.$new(b.message);throw d.$set_backtrace(b.$backtrace()),d}throw b}},a.eval=function(b,c){return eval(a.compile(b,c))};function h(){for(var c=0,e=d.length,b,d=document.getElementsByTagName('script');c=,raise,>,+,-,seek,check_writable,String,[],eof?,write,read,tell'),function(y,w,x){var i=s(y,w,'StringIO'),v=[i].concat(x),r=a.$r(v),u=i.$$prototype;return u.position=u.string=b,m(v[0],'VERSION',"0"),n(i,'$open',function e(a,c){var g=e.$$p||b,h=this,d=b,f=b;return e.$$p=null,a==null&&(a=""),c==null&&(c=b),d=h.$new(a,c),f=g.$call(d),d.$close(),f},-1),i.$attr_accessor("string"),d(i,'$initialize',function c(d,e){var f=c.$$p||b,a=this;return c.$$p=null,d==null&&(d=""),e==null&&(e="rw"),a.string=d,a.position=0,q(a,t(a,'initialize',c,!1,!0),'initialize',[b,e],null)},-1),d(i,'$eof?',function(){var a=this;return a.$check_readable(),a.position['$=='](a.string.$length())}),d(i,'$seek',function(d,g){var a=this,i=b;return g==null&&(g=f(r('IO'),'SEEK_SET')),a.read_buffer="",h(f(r('IO'),'SEEK_SET'),i=g)?(e(p(d,0))||a.$raise(f(r('Errno'),'EINVAL')),a.position=d):h(f(r('IO'),'SEEK_CUR'),i)?e(j(c(a.position,d),a.string.$length()))?a.position=a.string.$length():a.position=c(a.position,d):h(f(r('IO'),'SEEK_END'),i)?e(j(d,a.string.$length()))?a.position=0:a.position=k(a.position,d):b,0},-2),d(i,'$tell',l("position")),d(i,'$rewind',function(){var a=this;return a.$seek(0)}),d(i,'$write',function(e){var d=this,f=b,g=b;return d.$check_writable(),d.read_buffer="",e=d.$String(e),o(d.string.$length(),d.position)?(d.string=c(d.string,e),d.position=c(d.position,e.$length())):(f=d.string['$[]'](a.Range.$new(0,k(d.position,1),!1)),g=d.string['$[]'](a.Range.$new(c(d.position,e.$length()),-1,!1)),d.string=c(c(f,e),g),d.position=c(d.position,e.$length()))}),d(i,'$read',function(f,g){var d=this,i=b,h=b;return f==null&&(f=b),g==null&&(g=b),d.$check_readable(),e(d['$eof?']())?b:(i=e(f)?(h=d.string['$[]'](d.position,f),d.position=c(d.position,f),e(j(d.position,d.string.$length()))?d.position=d.string.$length():b,h):(h=d.string['$[]'](a.Range.$new(d.position,-1,!1)),d.position=d.string.$length(),h),e(g))?g.$write(i):i},-1),d(i,'$sysread',function(b){var a=this;return a.$check_readable(),a.$read(b)}),g(i,"eof","eof?"),g(i,"pos","tell"),g(i,"pos=","seek"),g(i,"readpartial","read")}(i[0],r('IO'),i)},Opal.modules.prettyprint=function(c){var g=c.klass,e=c.send,l=c.rb_times,k=c.defs,d=c.truthy,b=c.def,i=c.rb_lt,f=c.rb_plus,h=c.rb_minus,r=c.eqeqeq,q=c.assign_ivar_val,m=c.return_ivar,n=c.slice,o=c.thrower,p=c.return_val,j=[],a=c.nil;return c.add_stubs('dup,lambda,*,new,to_proc,flush,attr_reader,last,<,+,deq,empty?,breakables,shift,output,-,width,!,===,first,length,<<,add,break_outmost_groups,group,breakable,break?,call,text,group_sub,nest,depth,push,enq,pop,delete,each,clear,indent,current_group,newline,genspace,group_queue,[],downto,slice!,break,[]='),function(x,v,w){var j=g(x,v,'PrettyPrint'),u=[j].concat(w),s=c.$r(u),t=j.$$prototype;return t.group_stack=t.maxwidth=t.output_width=t.buffer_width=t.group_queue=t.buffer=t.output=t.newline=t.genspace=t.indent=a,k(s('PrettyPrint'),'$format',function i(b,d,f,g){var j=i.$$p||a,k=this,h=a;return i.$$p=null,b==null&&(b="".$dup()),d==null&&(d=79),f==null&&(f="\n"),g==null&&(g=e(k,'lambda',[],function(b){return b==null&&(b=a),l(" ",b)})),h=e(s('PrettyPrint'),'new',[b,d,f],g.$to_proc()),c.yield1(j,h),h.$flush(),b},-1),k(s('PrettyPrint'),'$singleline_format',function d(b,e,f,g){var i=d.$$p||a,h=a;return d.$$p=null,b==null&&(b="".$dup()),e==null&&(e=a),f==null&&(f=a),g==null&&(g=a),h=s('SingleLine').$new(b),c.yield1(i,h),b},-1),b(j,'$initialize',function i(c,f,g){var k=i.$$p||a,b=this,j=a,h=a;return i.$$p=null,c==null&&(c="".$dup()),f==null&&(f=79),g==null&&(g="\n"),b.output=c,b.maxwidth=f,b.newline=g,b.genspace=d(j=k)?j:e(b,'lambda',[],function(b){return b==null&&(b=a),l(" ",b)}),b.output_width=0,b.buffer_width=0,b.buffer=[],h=s('Group').$new(0),b.group_stack=[h],b.group_queue=s('GroupQueue').$new(h),b.indent=0},-1),j.$attr_reader("output"),j.$attr_reader("maxwidth"),j.$attr_reader("newline"),j.$attr_reader("genspace"),j.$attr_reader("indent"),j.$attr_reader("group_queue"),b(j,'$current_group',function(){var a=this;return a.group_stack.$last()}),b(j,'$break_outmost_groups',function(){for(var b=this,g=a,c=a,j=a,e=a;d(i(b.maxwidth,f(b.output_width,b.buffer_width)));){if(!d(g=b.group_queue.$deq()))return a;while(!d(g.$breakables()['$empty?']()))c=b.buffer.$shift(),b.output_width=c.$output(b.output,b.output_width),b.buffer_width=h(b.buffer_width,c.$width());while(d(d(j=b.buffer['$empty?']()['$!']())?s('Text')['$==='](b.buffer.$first()):j))e=b.buffer.$shift(),b.output_width=e.$output(b.output,b.output_width),b.buffer_width=h(b.buffer_width,e.$width())}}),b(j,'$text',function(g,c){var b=this,e=a;return c==null&&(c=g.$length()),d(b.buffer['$empty?']())?(b.output['$<<'](g),b.output_width=f(b.output_width,c)):(e=b.buffer.$last(),r(s('Text'),e)||(e=s('Text').$new(),b.buffer['$<<'](e)),e.$add(g,c),b.buffer_width=f(b.buffer_width,c),b.$break_outmost_groups())},-2),b(j,'$fill_breakable',function(a,b){var c=this;return a==null&&(a=" "),b==null&&(b=a.$length()),e(c,'group',[],function c(){var d=c.$$s==null?this:c.$$s;return d.$breakable(a,b)},{$$s:c})},-1),b(j,'$breakable',function(c,e){var b=this,g=a;return c==null&&(c=" "),e==null&&(e=c.$length()),g=b.group_stack.$last(),d(g['$break?']())?(b.$flush(),b.output['$<<'](b.newline),b.output['$<<'](b.genspace.$call(b.indent)),b.output_width=b.indent,b.buffer_width=0):(b.buffer['$<<'](s('Breakable').$new(c,e,b)),b.buffer_width=f(b.buffer_width,e),b.$break_outmost_groups())},-1),b(j,'$group',function j(i,d,f,g,h){var k=j.$$p||a,b=this;return j.$$p=null,i==null&&(i=0),d==null&&(d=""),f==null&&(f=""),g==null&&(g=d.$length()),h==null&&(h=f.$length()),b.$text(d,g),e(b,'group_sub',[],function a(){var b=a.$$s==null?this:a.$$s;return e(b,'nest',[i],function(){return c.yieldX(k,[])})},{$$s:b}),b.$text(f,h)},-1),b(j,'$group_sub',function g(){var h=g.$$p||a,b=this,e=a;return g.$$p=null,e=s('Group').$new(f(b.group_stack.$last().$depth(),1)),b.group_stack.$push(e),b.group_queue.$enq(e),function(){try{return c.yieldX(h,[])}finally{b.group_stack.$pop(),d(e.$breakables()['$empty?']())?b.group_queue.$delete(e):a}}()}),b(j,'$nest',function d(e){var g=d.$$p||a,b=this;return d.$$p=null,b.indent=f(b.indent,e),function(){try{return c.yieldX(g,[])}finally{b.indent=h(b.indent,e)}}()}),b(j,'$flush',function(){var b=this;return e(b.buffer,'each',[],function d(c){var b=d.$$s==null?this:d.$$s;return b.output==null&&(b.output=a),b.output_width==null&&(b.output_width=a),c==null&&(c=a),b.output_width=c.$output(b.output,b.output_width)},{$$s:b}),b.buffer.$clear(),b.buffer_width=0}),function(h,i){var c=g(h,i,'Text'),d=c.$$prototype;return d.objs=d.width=a,b(c,'$initialize',function(){var a=this;return a.objs=[],a.width=0}),c.$attr_reader("width"),b(c,'$output',function(c,d){var b=this;return e(b.objs,'each',[],function(b){return b==null&&(b=a),c['$<<'](b)}),f(d,b.width)}),b(c,'$add',function(b,c){var a=this;return a.objs['$<<'](b),a.width=f(a.width,c)})}(u[0],null),function(h,i){var c=g(h,i,'Breakable'),e=c.$$prototype;return e.group=e.pp=e.indent=e.obj=e.width=a,b(c,'$initialize',function(c,d,b){var a=this;return a.obj=c,a.width=d,a.pp=b,a.indent=b.$indent(),a.group=b.$current_group(),a.group.$breakables().$push(a)}),c.$attr_reader("obj"),c.$attr_reader("width"),c.$attr_reader("indent"),b(c,'$output',function(b,c){var a=this;return a.group.$breakables().$shift(),d(a.group['$break?']())?(b['$<<'](a.pp.$newline()),b['$<<'](a.pp.$genspace().$call(a.indent)),a.indent):(d(a.group.$breakables()['$empty?']())&&a.pp.$group_queue().$delete(a.group),b['$<<'](a.obj),f(c,a.width))})}(u[0],null),function(e,f){var c=g(e,f,'Group');return b(c,'$initialize',function(b){var a=this;return a.depth=b,a.breakables=[],a.break=!1}),c.$attr_reader("depth"),c.$attr_reader("breakables"),b(c,'$break',q("break",!0)),b(c,'$break?',m("break")),b(c,'$first?',function(){var b,c=this;return!d((b=c.first,b!=null&&b!==a)?'instance-variable':a)&&(c.first=!1,!0)})}(u[0],null),function(f,j){var c=g(f,j,'GroupQueue'),k=c.$$prototype;return k.queue=a,b(c,'$initialize',function(g){var b,c,d=this;return b=n(arguments),c=b,d.queue=[],e(c,'each',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),d.$enq(b)},{$$s:d})},-1),b(c,'$enq',function(e){var b=this,c=a;for(c=e.$depth();!d(i(c,b.queue.$length()));)b.queue['$<<']([]);return b.queue['$[]'](c)['$<<'](e)}),b(c,'$deq',function(){var b,c;try{return b=o('return'),c=this,e(c.queue,'each',[],function(c){return c==null&&(c=a),e(h(c.$length(),1),'downto',[0],function g(e){var f=a;if(e==null&&(e=a),d(c['$[]'](e).$breakables()['$empty?']()))return a;f=c['$slice!'](e,1).$first(),f.$break(),b.$throw(f,g.$$is_lambda)},{$$ret:b}),e(c,'each',[],function(b){return b==null&&(b=a),b.$break()}),c.$clear()}),a}catch(a){if(a===b)return a.$v;throw a}finally{b.is_orphan=!0}}),b(c,'$delete',function(a){var b=this;return b.queue['$[]'](a.$depth()).$delete(a)})}(u[0],null),function(f,h){var d=g(f,h,'SingleLine'),e=d.$$prototype;return e.output=e.first=a,b(d,'$initialize',function(e,b,c){var d=this;return b==null&&(b=a),c==null&&(c=a),d.output=e,d.first=[!0]},-2),b(d,'$text',function(c,b){var d=this;return b==null&&(b=a),d.output['$<<'](c)},-2),b(d,'$breakable',function(b,c){var d=this;return b==null&&(b=" "),c==null&&(c=a),d.output['$<<'](b)},-1),b(d,'$nest',function b(e){var d=b.$$p||a;return b.$$p=null,c.yieldX(d,[])}),b(d,'$group',function f(i,d,e,g,h){var j=f.$$p||a,b=this;return f.$$p=null,i==null&&(i=a),d==null&&(d=""),e==null&&(e=""),g==null&&(g=a),h==null&&(h=a),b.first.$push(!0),b.output['$<<'](d),c.yieldX(j,[]),b.output['$<<'](e),b.first.$pop()},-1),b(d,'$flush',p(a)),b(d,'$first?',function(){var b=this,c=a;return c=b.first['$[]'](-1),b.first['$[]='](-1,!1),c})}(u[0],null)}(j[0],null,j)},Opal.modules.pp=function(c){var h=c.klass,i=c.gvars,b=c.send,n=c.defs,m=c.slice,p=c.to_a,o=c.module,l=c.eqeq,d=c.def,e=c.truthy,v=c.rb_plus,s=c.eqeqeq,t=c.neqeq,u=c.not,q=c.rb_gt,r=c.rb_le,j=c.top,f=[],g=c.$r(f),a=c.nil,k=c.$$$;return c.add_stubs('require,new,guard_inspect_key,pp,flush,<<,bind_call,instance_method,to_proc,attr_accessor,==,[],current,[]=,compare_by_identity,include?,delete,text,is_a?,__getobj__,check_inspect_key,group,pretty_print_cycle,push_inspect_key,pretty_print,sharing_detection,pop_inspect_key,+,name,class,chomp,breakable,lambda,comma_breakable,__send__,call,object_address_group,seplist,pretty_print_instance_variables,===,to_s,instance_eval,include,!=,owner,inspect,respond_to?,!,pp_object,sort,instance_variables,raise,singleline_pp,dup,empty?,pp_hash,each,keys,sprintf,mcall,begin,exclude_end?,end,lines,>,size,named_captures,regexp,object_group,class_eval,string,<=,first,module_function'),j.$require("thread"),j.$require("stringio"),j.$require("prettyprint"),function(q,r,w){var j=h(q,r,'PP'),f=[j].concat(w),g=c.$r(f);return n(g('PP'),'$pp',function(f,c,e){var d=a;return i.stdout==null&&(i.stdout=a),c==null&&(c=i.stdout),e==null&&(e=79),d=g('PP').$new(c,e),b(d,'guard_inspect_key',[],function(){return d.$pp(f)}),d.$flush(),c['$<<']("\n")},-2),n(g('PP'),'$singleline_pp',function(e,c){var d=a;return i.stdout==null&&(i.stdout=a),c==null&&(c=i.stdout),d=g('SingleLine').$new(c),b(d,'guard_inspect_key',[],function(){return d.$pp(e)}),d.$flush(),c},-2),n(g('PP'),'$mcall',function c(i,f,g,j){var h=c.$$p||a,e,d;return c.$$p=null,e=m(arguments,3),d=e,b(f.$instance_method(g),'bind_call',[i].concat(p(d)),h.$to_proc())},-4),j.sharing_detection=!1,function(a,b){return a.$attr_accessor("sharing_detection")}(c.get_singleton_class(j),f),function(h,i){var g=o(h,'PPMethods'),j=[g].concat(i),f=c.$r(j);return d(g,'$guard_inspect_key',function e(){var d,h=e.$$p||a,g=a;return e.$$p=null,l(f('Thread').$current()['$[]']("__recursive_key__"),a)&&f('Thread').$current()['$[]=']("__recursive_key__",(new Map).$compare_by_identity()),l(f('Thread').$current()['$[]']("__recursive_key__")['$[]']("inspect"),a)&&f('Thread').$current()['$[]']("__recursive_key__")['$[]=']("inspect",(new Map).$compare_by_identity()),g=f('Thread').$current()['$[]']("__recursive_key__")['$[]']("inspect"),function(){try{return f('Thread').$current()['$[]']("__recursive_key__")['$[]=']("inspect",(new Map).$compare_by_identity()),c.yieldX(h,[])}finally{d=["inspect",g],b(f('Thread').$current()['$[]']("__recursive_key__"),'[]=',d),d[d.length-1]}}()}),d(g,'$check_inspect_key',function(d){var b=a,c=a;return e(b=e(c=f('Thread').$current()['$[]']("__recursive_key__"))?f('Thread').$current()['$[]']("__recursive_key__")['$[]']("inspect"):c)?f('Thread').$current()['$[]']("__recursive_key__")['$[]']("inspect")['$include?'](d):b}),d(g,'$push_inspect_key',function(c){var a;return a=[c,!0],b(f('Thread').$current()['$[]']("__recursive_key__")['$[]']("inspect"),'[]=',a),a[a.length-1]}),d(g,'$pop_inspect_key',function(a){return f('Thread').$current()['$[]']("__recursive_key__")['$[]']("inspect").$delete(a)}),d(g,'$pp',function(c){var g,d=this;return c===null?(d.$text("null"),a):c===void 0?(d.$text("undefined"),a):c.$$class===void 0?(d.$text(Object.prototype.toString.apply(c)),a):(e((g=k('::','Delegator','skip_raise'))?'constant':a)&&e(c['$is_a?'](k('Delegator')))&&(c=c.$__getobj__()),e(d.$check_inspect_key(c)))?(b(d,'group',[],function a(){var b=a.$$s==null?this:a.$$s;return c.$pretty_print_cycle(b)},{$$s:d}),a):function(){try{return d.$push_inspect_key(c),b(d,'group',[],function a(){var b=a.$$s==null?this:a.$$s;return c.$pretty_print(b)},{$$s:d})}finally{e(f('PP').$sharing_detection())?a:d.$pop_inspect_key(c)}}()},-1),d(g,'$object_group',function c(d){var e=c.$$p||a,f=this;return c.$$p=null,b(f,'group',[1,v("#<",d.$class().$name()),">"],e.$to_proc())}),d(g,'$object_address_group',function d(e){var g=d.$$p||a,h=this,c=a;return d.$$p=null,c=f('Kernel').$instance_method("to_s").$bind_call(e),c=c.$chomp(">"),b(h,'group',[1,c,">"],g.$to_proc())}),d(g,'$comma_breakable',function(){var a=this;return a.$text(","),a.$breakable()}),d(g,'$seplist',function h(l,d,g){var k=h.$$p||a,i=this,j=a,f=a;return h.$$p=null,d==null&&(d=a),g==null&&(g="each"),d=e(j=d)?j:b(i,'lambda',[],function a(){var b=a.$$s==null?this:a.$$s;return b.$comma_breakable()},{$$s:i}),f=!0,b(l,'__send__',[g],function(h){var a,b;return a=m(arguments),b=a,e(f)?f=!1:d.$call(),c.yieldX(k,p(b))},-1)},-2),d(g,'$pp_object',function(c){var d=this;return b(d,'object_address_group',[c],function e(){var d=e.$$s==null?this:e.$$s;return b(d,'seplist',[c.$pretty_print_instance_variables(),b(d,'lambda',[],function a(){var b=a.$$s==null?this:a.$$s;return b.$text(",")},{$$s:d})],function g(d){var e=g.$$s==null?this:g.$$s;return d==null&&(d=a),e.$breakable(),s(f('Symbol'),d)&&(d=d.$to_s()),e.$text(d),e.$text("="),b(e,'group',[1],function a(){var b=a.$$s==null?this:a.$$s;return b.$breakable(""),b.$pp(c.$instance_eval(d))},{$$s:e})},{$$s:d})},{$$s:d})}),d(g,'$pp_hash',function(d){var c=this;return b(c,'group',[1,"{","}"],function c(){var e=c.$$s==null?this:c.$$s;return b(e,'seplist',[d,a,"each_pair"],function e(c,d){var f=e.$$s==null?this:e.$$s;return c==null&&(c=a),d==null&&(d=a),b(f,'group',[],function e(){var a=e.$$s==null?this:e.$$s;return a.$pp(c),a.$text("=>"),b(a,'group',[1],function a(){var b=a.$$s==null?this:a.$$s;return b.$breakable(""),b.$pp(d)},{$$s:a})},{$$s:f})},{$$s:e})},{$$s:c})})}(f[0],f),j.$include(g('PPMethods')),function(b,d,e){var a=h(b,d,'SingleLine'),f=[a].concat(e),g=c.$r(f);return a.$include(g('PPMethods'))}(f[0],k(g('PrettyPrint'),'SingleLine'),f),function(h,i){var g=o(h,'ObjectMixin'),j=[g].concat(i),f=c.$r(j);return d(g,'$pretty_print',function(g){var b=this,h=a,d=a;h=f('Object').$instance_method("method");try{d=h.$bind_call(b,"inspect")}catch(b){if(c.rescue(b,[f('NameError')]))try{a}finally{c.pop_exception(b)}else throw b}return e(d)&&t(d.$owner(),f('Kernel'))?g.$text(b.$inspect()):u(d)&&e(b['$respond_to?']("inspect"))?g.$text(b.$inspect()):g.$pp_object(b)}),d(g,'$pretty_print_cycle',function(a){var c=this;return b(a,'object_address_group',[c],function(){return a.$breakable(),a.$text("...")})}),d(g,'$pretty_print_instance_variables',function(){var a=this;return a.$instance_variables().$sort()}),d(g,'$pretty_print_inspect',function(){var a=this;return l(f('Object').$instance_method("method").$bind_call(a,"pretty_print").$owner(),k(f('PP'),'ObjectMixin'))&&a.$raise("pretty_print is not overridden for "+a.$class()),f('PP').$singleline_pp(a,"".$dup())})}(f[0],f)}(f[0],g('PrettyPrint'),f),function(f,g){var c=h(f,g,'Array');return d(c,'$pretty_print',function(c){var d=this;return b(c,'group',[1,"[","]"],function d(){var e=d.$$s==null?this:d.$$s;return b(c,'seplist',[e],function(b){return b==null&&(b=a),c.$pp(b)})},{$$s:d})}),d(c,'$pretty_print_cycle',function(a){var b=this;return a.$text(e(b['$empty?']())?"[]":"[...]")})}(f[0],null),function(b,c){var a=h(b,c,'Hash');return d(a,'$pretty_print',function(a){var b=this;return a.$pp_hash(b)}),d(a,'$pretty_print_cycle',function(a){var b=this;return a.$text(e(b['$empty?']())?"{}":"{...}")})}(f[0],null),function(e,g){var h=[e].concat(g),f=c.$r(h);return d(e,'$pretty_print',function(d){var c=a;return c=new Map,b(f('ENV').$keys().$sort(),'each',[],function(d){var e;return d==null&&(d=a),(e=[d,f('ENV')['$[]'](d)],b(c,'[]=',e),e[e.length-1])}),d.$pp_hash(c)})}(c.get_singleton_class(g('ENV')),f),function(g,i,j){var f=h(g,i,'Struct'),k=[f].concat(j),e=c.$r(k);return d(f,'$pretty_print',function(c){var d=this;return b(c,'group',[1,d.$sprintf("#"],function f(){var d=f.$$s==null?this:f.$$s;return b(c,'seplist',[e('PP').$mcall(d,e('Struct'),"members"),b(d,'lambda',[],function(){return c.$text(",")})],function e(d){var f=e.$$s==null?this:e.$$s;return d==null&&(d=a),c.$breakable(),c.$text(d.$to_s()),c.$text("="),b(c,'group',[1],function a(){var b=a.$$s==null?this:a.$$s;return c.$breakable(""),c.$pp(b['$[]'](d))},{$$s:f})},{$$s:d})},{$$s:d})}),d(f,'$pretty_print_cycle',function(b){var a=this;return b.$text(a.$sprintf("#",e('PP').$mcall(a,e('Kernel'),"class").$name()))})}(f[0],null,f),function(b,c){var f=h(b,c,'Range');return d(f,'$pretty_print',function(b){var c=this;return b.$pp(c.$begin()),b.$breakable(""),b.$text(e(c['$exclude_end?']())?"...":".."),b.$breakable(""),e(c.$end())?b.$pp(c.$end()):a})}(f[0],null),function(c,f){var g=h(c,f,'String');return d(g,'$pretty_print',function(c){var d=this,f=a;return f=d.$lines(),e(q(f.$size(),1))?b(c,'group',[0,"",""],function d(){var e=d.$$s==null?this:d.$$s;return b(c,'seplist',[f,b(e,'lambda',[],function(){return c.$text(" +"),c.$breakable()})],function(b){return b==null&&(b=a),c.$pp(b)})},{$$s:d}):c.$text(d.$inspect())})}(f[0],null),function(f,g){var i=h(f,g,'MatchData');return d(i,'$pretty_print',function(d){var g=this,f=a;return f=[],b(g.$regexp().$named_captures(),'each',[],function(c,d){return c==null&&(c=a),d==null&&(d=a),b(d,'each',[],function(e){var d;return e==null&&(e=a),(d=[e,c],b(f,'[]=',d),d[d.length-1])})}),b(d,'object_group',[g],function h(){var g=h.$$s==null?this:h.$$s;return d.$breakable(),b(d,'seplist',[c.Range.$new(0,g.$size(),!0),b(g,'lambda',[],function(){return d.$breakable()})],function c(b){var g=c.$$s==null?this:c.$$s;return b==null&&(b=a),l(b,0)?d.$pp(g['$[]'](b)):(e(f['$[]'](b))?d.$text(f['$[]'](b)):d.$pp(b),d.$text(":"),d.$pp(g['$[]'](b)))},{$$s:g})},{$$s:g})})}(f[0],null),function(b,d,e){var a=h(b,d,'Object'),f=[a].concat(e),g=c.$r(f);return a.$include(k(g('PP'),'ObjectMixin'))}(f[0],g('BasicObject'),f),b([g('Numeric'),g('Symbol'),g('FalseClass'),g('TrueClass'),g('NilClass'),g('Module')],'each',[],function e(c){var f=e.$$s==null?this:e.$$s;return c==null&&(c=a),b(c,'class_eval',[],function a(){var b=a.$$s==null?this:a.$$s;return d(b,'$pretty_print_cycle',function(a){var b=this;return a.$text(b.$inspect())})},{$$s:f})},{$$s:j}),b([g('Numeric'),g('FalseClass'),g('TrueClass'),g('Module')],'each',[],function e(c){var f=e.$$s==null?this:e.$$s;return c==null&&(c=a),b(c,'class_eval',[],function a(){var b=a.$$s==null?this:a.$$s;return d(b,'$pretty_print',function(a){var b=this;return a.$text(b.$inspect())})},{$$s:f})},{$$s:j}),function(h,i){var f=o(h,'Kernel'),j=[f].concat(i),g=c.$r(j);return d(f,'$pretty_inspect',function(){var a=this;return g('PP').$pp(a,g('StringIO').$new()).$string()}),d(f,'$pp',function(h){var d,c;return d=m(arguments),c=d,b(c,'each',[],function(b){return b==null&&(b=a),g('PP').$pp(b)}),e(r(c.$size(),1))?c.$first():c},-1),f.$module_function("pp")}(f[0],f)},Opal.modules.promise=function(d){var l=d.klass,h=d.defs,j=d.slice,b=d.def,g=d.eqeqeq,c=d.truthy,t=d.return_ivar,p=d.not,e=d.send,k=d.to_a,o=d.rb_plus,f=d.alias,m=d.send2,n=d.find_super,q=d.rb_le,r=d.rb_minus,s=d.const_set,i=[],u=d.$r(i),a=d.nil;return d.add_stubs('resolve,new,reject,attr_reader,===,value,key?,keys,!=,==,<<,>>,exception?,[],resolved?,rejected?,!,error,include?,action,realized?,raise,^,call,resolve!,exception!,any?,each,reject!,there_can_be_only_one!,then,to_proc,fail,always,trace,class,object_id,+,inspect,rescue,to_v2,fail!,then!,always!,itself,nil?,prev,act?,push,concat,it,proc,reverse,pop,<=,length,shift,-,wait,map,reduce,try,tap,all?,find,collect,inject'),function(y,w,x){var i=l(y,w,'Promise'),v=[i].concat(x),s=d.$r(v),u=i.$$prototype;return u.value=u.action=u.realized=u.next=u.delayed=u.error=u.prev=a,h(i,'$value',function(a){var b=this;return b.$new().$resolve(a)}),h(i,'$error',function(a){var b=this;return b.$new().$reject(a)}),h(i,'$when',function(d){var a,b;return a=j(arguments),b=a,s('When').$new(b)},-1),i.$attr_reader("error","prev","next"),b(i,'$initialize',function(c){var b=this;return c==null&&(c=new Map),b.action=c,b.realized=!1,b.exception=!1,b.value=a,b.error=a,b.delayed=!1,b.prev=a,b.next=[]},-1),b(i,'$value',function(){var a=this;return g(s('Promise'),a.value)?a.value.$value():a.value}),b(i,'$act?',function(){var b=this,d=a;return c(d=b.action['$key?']("success"))?d:b.action['$key?']("always")}),b(i,'$action',function(){var a=this;return a.action.$keys()}),b(i,'$exception?',t("exception")),b(i,'$realized?',function(){var a=this;return a.realized['$!='](!1)}),b(i,'$resolved?',function(){var a=this;return a.realized['$==']("resolve")}),b(i,'$rejected?',function(){var a=this;return a.realized['$==']("reject")}),b(i,'$^',function(a){var b=this;return a['$<<'](b),b['$>>'](a),a}),b(i,'$<<',function(b){var a=this;return a.prev=b,a}),b(i,'$>>',function(b){var a=this;return a.next['$<<'](b),c(a['$exception?']())?b.$reject(a.delayed['$[]'](0)):c(a['$resolved?']())?b.$resolve(c(a.delayed)?a.delayed['$[]'](0):a.$value()):c(a['$rejected?']())&&(p(a.action['$key?']("failure"))||g(s('Promise'),c(a.delayed)?a.delayed['$[]'](0):a.error)?b.$reject(c(a.delayed)?a.delayed['$[]'](0):a.$error()):c(b.$action()['$include?']("always"))&&b.$reject(c(a.delayed)?a.delayed['$[]'](0):a.$error())),a}),b(i,'$resolve',function(e){var b=this,f=a,h=a,i=a;if(e==null&&(e=a),c(b['$realized?']())&&b.$raise(s('ArgumentError'),"the promise has already been realized"),g(s('Promise'),e))return e['$<<'](b.prev)['$^'](b);try{f=c(h=b.action['$[]']("success"))?h:b.action['$[]']("always"),c(f)&&(e=f.$call(e)),b['$resolve!'](e)}catch(a){if(d.rescue(a,[s('Exception')])){i=a;try{b['$exception!'](i)}finally{d.pop_exception(a)}}else throw a}return b},-1),b(i,'$resolve!',function(d){var b=this;return b.realized="resolve",b.value=d,c(b.next['$any?']())?e(b.next,'each',[],function(b){return b==null&&(b=a),b.$resolve(d)}):b.delayed=[d]}),b(i,'$reject',function(e){var b=this,f=a,h=a,i=a;if(e==null&&(e=a),c(b['$realized?']())&&b.$raise(s('ArgumentError'),"the promise has already been realized"),g(s('Promise'),e))return e['$<<'](b.prev)['$^'](b);try{f=c(h=b.action['$[]']("failure"))?h:b.action['$[]']("always"),c(f)&&(e=f.$call(e)),c(b.action['$key?']("always"))?b['$resolve!'](e):b['$reject!'](e)}catch(a){if(d.rescue(a,[s('Exception')])){i=a;try{b['$exception!'](i)}finally{d.pop_exception(a)}}else throw a}return b},-1),b(i,'$reject!',function(d){var b=this;return b.realized="reject",b.error=d,c(b.next['$any?']())?e(b.next,'each',[],function(b){return b==null&&(b=a),b.$reject(d)}):b.delayed=[d]}),b(i,'$exception!',function(b){var a=this;return a.exception=!0,a['$reject!'](b)}),b(i,'$then',function b(){var c=b.$$p||a,d=this;return b.$$p=null,d['$^'](s('Promise').$new(new Map([["success",c]])))}),b(i,'$then!',function b(){var d=b.$$p||a,c=this;return b.$$p=null,c['$there_can_be_only_one!'](),e(c,'then',[],d.$to_proc())}),b(i,'$fail',function b(){var c=b.$$p||a,d=this;return b.$$p=null,d['$^'](s('Promise').$new(new Map([["failure",c]])))}),b(i,'$fail!',function b(){var d=b.$$p||a,c=this;return b.$$p=null,c['$there_can_be_only_one!'](),e(c,'fail',[],d.$to_proc())}),b(i,'$always',function b(){var c=b.$$p||a,d=this;return b.$$p=null,d['$^'](s('Promise').$new(new Map([["always",c]])))}),b(i,'$always!',function b(){var d=b.$$p||a,c=this;return b.$$p=null,c['$there_can_be_only_one!'](),e(c,'always',[],d.$to_proc())}),b(i,'$trace',function c(b){var d=c.$$p||a,e=this;return c.$$p=null,b==null&&(b=a),e['$^'](s('Trace').$new(b,d))},-1),b(i,'$trace!',function b(h){var g=b.$$p||a,c,d,f=this;return b.$$p=null,c=j(arguments),d=c,f['$there_can_be_only_one!'](),e(f,'trace',k(d),g.$to_proc())},-1),b(i,'$there_can_be_only_one!',function(){var b=this;return c(b.next['$any?']())?b.$raise(s('ArgumentError'),"a promise has already been chained"):a}),b(i,'$inspect',function(){var b=this,d=a,e=a;return d="#<"+b.$class()+"("+b.$object_id()+")",c(b.next['$any?']())&&(d=o(d," >> "+b.next.$inspect())),d=o(d,c(b['$realized?']())?": "+(c(e=b.value)?e:b.error).$inspect()+">":">"),d}),b(i,'$to_v2',function(){var c=this,b=a;return b=s('PromiseV2').$new(),e(e(c,'then',[],function(c){return c==null&&(c=a),b.$resolve(c)}),'rescue',[],function(c){return c==null&&(c=a),b.$reject(c)}),b}),f(i,"await","to_v2"),f(i,"catch","fail"),f(i,"catch!","fail!"),f(i,"do","then"),f(i,"do!","then!"),f(i,"ensure","always"),f(i,"ensure!","always!"),f(i,"finally","always"),f(i,"finally!","always!"),f(i,"rescue","fail"),f(i,"rescue!","fail!"),f(i,"to_n","to_v2"),f(i,"to_v1","itself"),function(g,i,j){var f=l(g,i,'Trace'),o=[f].concat(j),p=d.$r(o);return h(f,'$it',function(b){var f=this,d=a,e=a;return d=[],(c(b['$act?']())||c(b.$prev()['$nil?']()))&&d.$push(b.$value()),e=b.$prev(),c(e)?d.$concat(f.$it(e)):d}),b(f,'$initialize',function f(d,g){var h=f.$$p||a,b=this;return f.$$p=null,b.depth=d,m(b,n(b,'initialize',f,!1,!0),'initialize',[new Map([["success",e(b,'proc',[],function f(){var h=f.$$s==null?this:f.$$s,b=a;return b=p('Trace').$it(h).$reverse(),b.$pop(),c(d)&&c(q(d,b.$length()))&&b.$shift(r(b.$length(),d)),e(g,'call',k(b))},{$$s:b})]])],null)})}(v[0],i,v),function(o,p,q){var h=l(o,p,'When'),r=[h].concat(q),i=d.$r(r),s=h.$$prototype;return s.wait=a,b(h,'$initialize',function c(d){var f=c.$$p||a,b=this;return c.$$p=null,d==null&&(d=[]),m(b,n(b,'initialize',c,!1,!0),'initialize',[],null),b.wait=[],e(d,'each',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),d.$wait(b)},{$$s:b})},-1),b(h,'$each',function b(){var d=b.$$p||a,f=this;return b.$$p=null,c(d)||f.$raise(i('ArgumentError'),"no block given"),e(f,'then',[],function(b){return b==null&&(b=a),e(b,'each',[],d.$to_proc())})}),b(h,'$collect',function b(){var d=b.$$p||a,f=this;return b.$$p=null,c(d)||f.$raise(i('ArgumentError'),"no block given"),e(f,'then',[],function(b){return b==null&&(b=a),i('When').$new(e(b,'map',[],d.$to_proc()))})}),b(h,'$inject',function b(h){var f=b.$$p||a,c,d,g=this;return b.$$p=null,c=j(arguments),d=c,e(g,'then',[],function(b){return b==null&&(b=a),e(b,'reduce',k(d),f.$to_proc())})},-1),b(h,'$wait',function(b){var d=this;return g(i('Promise'),b)||(b=i('Promise').$value(b)),c(b['$act?']())&&(b=b.$then()),d.wait['$<<'](b),e(b,'always',[],function d(){var b=d.$$s==null?this:d.$$s;return b.next==null&&(b.next=a),c(b.next['$any?']())?b.$try():a},{$$s:d}),d}),b(h,'$>>',function b(h){var d,f,g=b.$$p||a,c=this;return b.$$p=null,d=j(arguments),f=d,e(m(c,n(c,'>>',b,!1,!0),'>>',k(f),g),'tap',[],function a(){var b=a.$$s==null?this:a.$$s;return b.$try()},{$$s:c})},-1),b(h,'$try',function(){var b=this,d=a;return c(e(b.wait,'all?',[],"realized?".$to_proc()))?(d=e(b.wait,'find',[],"rejected?".$to_proc()),c(d))?b.$reject(d.$error()):b.$resolve(e(b.wait,'map',[],"value".$to_proc())):a}),f(h,"map","collect"),f(h,"reduce","inject"),f(h,"and","wait")}(v[0],i,v)}(i[0],null,i),s(i[0],'PromiseV1',u('Promise'))},Opal.modules.securerandom=function(a){var e=a.module,c=a.defs,f=a.top,d=[],b=a.nil,g=a.$$$;return a.add_stubs('require,extend,warn,rand,gen_random,_verify_count,encode'),f.$require("corelib/random/formatter"),function(i,j){var d=e(i,'SecureRandom'),k=[d].concat(j),h=a.$r(k),f,l;return d.$extend(g(h('Random'),'Formatter')),a.global.crypto&&a.global.crypto.getRandomValues||a.global.msCrypto&&a.global.msCrypto.getRandomValues?(l=a.global.crypto||a.global.msCrypto,f=function(b){var a=new Uint8Array(b);return l.getRandomValues(a),a}):a.global.crypto&&a.global.crypto.randomBytes?f=function(b){return a.global.crypto.randomBytes(b)}:(d.$warn("Can't get a Crypto.getRandomValues interface or Crypto.randomBytes.The random values generated with SecureRandom won't be cryptographically secure"),f=function(c){for(var b=new Uint8Array(c),a=0;a>d.$rand(255)&255;return b}),c(d,'$bytes',function(a){var c=this;return a==null&&(a=b),c.$gen_random(a)},-1),c(d,'$gen_random',function(a){var c=b,e,d;a==null&&(a=b),a=h('Random').$_verify_count(a),c="",e=f(a);for(d=0;d=c.length)?a:c[b]==null?a:c[b]}),b(d,'$check',function(c){var b=this,d;return c=b.$anchor(c),d=c.exec(b.working),d==null?b.matched=a:b.matched=d[0]}),b(d,'$check_until',function(c){var a=this,d=a.prev_pos,e=a.pos,f=a.working,b=a.$scan_until(c);return a.prev_pos=d,a.pos=e,a.working=f,b}),b(d,'$peek',function(a){var b=this;return b.working.substring(0,a)}),b(d,'$eos?',function(){var a=this;return a.working.length===0}),b(d,'$exist?',function(c){var d=this,b=c.exec(d.working);return b==null?a:b.index==0?0:b.index+1}),b(d,'$skip',function(c){var b=this,d,f,e;return c=b.$anchor(c),d=c.exec(b.working),d==null?(b.match=[],b.matched=a):(f=d[0],e=f.length,b.matched=f,b.match=d,b.prev_pos=b.pos,b.pos+=e,b.working=b.working.substring(e),e)}),b(d,'$skip_until',function(d){var c=this,b=c.$scan_until(d);return b===a?a:(c.matched=b.substr(-1),b.length)}),b(d,'$get_byte',function(){var b=this,c=a;return b.pos,last,-,==,+,new,parse,=~,message,raise,handle_rmn_sd_sy,handle_sm_sd_sy,<,handle_sm_sd,handle_year_and_month,empty?,time_with_rollover,day,get_anchor,hour,min,sec,>=,dealias_and_disambiguate_times,handle_r,respond_to?,offset,handle_srp,handle_s_r_p,times,next,end,handle_orr,*,now=,merge,get_repeaters,pop,first,shift,!=,debug,puts,class,find_within,reverse,sort,compact,map,leap?,cover?,each_with_index,untag,tag,<<,!,ambiguous?,include,attr_accessor,attr_reader,delete,tokenize,options,tokens_to_span,guess,downcase,to_s,gsub,numerize,width,/,[]=,Array,private,pre_normalize,split,each,scan,select,tagged?,definitions,match,invoke,reject,<=,is_a?,utc_offset,to_time,rjust,to_i,abs,%,each_index,chop,===,tags_match?,count,key?,to_sym,send,pattern,const_get,upcase,tags,kind_of?,include?,word,-@,delete_if,find,join,scan_for_all,scan_for,could_be_subsecond?,could_be_second?,could_be_minute?,could_be_hour?,could_be_day?,could_be_month?,could_be_year?,make_year,scan_for_commas,scan_for_dots,scan_for_colon,scan_for_space,scan_for_slash,scan_for_dash,scan_for_quote,scan_for_at,scan_for_in,scan_for_on,scan_for_and,scan_for_t,scan_for_w,scan_for_plus,scan_for_minus,dup,andition,to_f,scan_until,pos,matched_size,reset,find_next_season,scan_for_season_names,scan_for_month_names,scan_for_day_names,scan_for_day_portions,scan_for_times,scan_for_units,capitalize,<=>,construct,build_offset_time,month_days,find_current_season,from_time,find_next_season_span,num_seconds_til_start,num_seconds_til_end,construct_season,offset_by,is_between?,start,equals?,num_seconds_til,loop,is_weekday?,wday,symbol_to_number,is_weekend?,succ,construct_date_from_reference_and_offset,length,insert,nil?,**,gmt_offset,catch,time,throw,debug=,time_class=,name,normalize_offset'),G.$require("time"),G.$require("date"),function(h,i){var n=q(h,'Chronic'),g=[n].concat(i);return j(g[0],null,'Anchor'),function(i,j){var h=q(i,'Handlers'),n=[h].concat(j),g=e.$r(n);return h.$module_function(),c(h,'$handle_m_d',function(b,j,k,i){var c,e=this,d=a,f=a,h=a;return b['$start='](e.$now()),d=b.$this(i['$[]']("context")),c=[d.$begin().$year(),d.$begin().$month()],f=c[0],b=c[1],c,h=g('Chronic').$time_class().$local(f,b,j),e.$day_or_time(h,k,i)}),c(h,'$handle_rmn_sd',function(b,i){var c=this,f=a,h=a;return f=b['$[]'](0).$get_tag(g('RepeaterMonthName')),h=b['$[]'](1).$get_tag(g('ScalarDay')).$type(),d(c['$month_overflow?'](c.$now().$year(),f.$index(),h))?a:c.$handle_m_d(f,h,b['$[]'](e.Range.$new(2,b.$size(),!1)),i)}),c(h,'$handle_rmn_sd_on',function(b,i){var h=this,c=a,e=a,f=a;return d(r(b.$size(),3))?(c=b['$[]'](2).$get_tag(g('RepeaterMonthName')),e=b['$[]'](3).$get_tag(g('ScalarDay')).$type(),f=w(0,1,!1)):(c=b['$[]'](1).$get_tag(g('RepeaterMonthName')),e=b['$[]'](2).$get_tag(g('ScalarDay')).$type(),f=w(0,0,!1)),d(h['$month_overflow?'](h.$now().$year(),c.$index(),e))?a:h.$handle_m_d(c,e,b['$[]'](f),i)}),c(h,'$handle_rmn_od',function(b,i){var c=this,f=a,h=a;return f=b['$[]'](0).$get_tag(g('RepeaterMonthName')),h=b['$[]'](1).$get_tag(g('OrdinalDay')).$type(),d(c['$month_overflow?'](c.$now().$year(),f.$index(),h))?a:c.$handle_m_d(f,h,b['$[]'](e.Range.$new(2,b.$size(),!1)),i)}),c(h,'$handle_od_rm',function(b,f){var h=this,c=a,d=a;return c=b['$[]'](0).$get_tag(g('OrdinalDay')).$type(),d=b['$[]'](2).$get_tag(g('RepeaterMonth')),h.$handle_m_d(d,c,b['$[]'](e.Range.$new(3,b.$size(),!1)),f)}),c(h,'$handle_od_rmn',function(b,i){var c=this,f=a,h=a;return f=b['$[]'](1).$get_tag(g('RepeaterMonthName')),h=b['$[]'](0).$get_tag(g('OrdinalDay')).$type(),d(c['$month_overflow?'](c.$now().$year(),f.$index(),h))?a:c.$handle_m_d(f,h,b['$[]'](e.Range.$new(2,b.$size(),!1)),i)}),c(h,'$handle_sy_rmn_od',function(b,m){var j=this,f=a,h=a,c=a,k=a,i=a;if(f=b['$[]'](0).$get_tag(g('ScalarYear')).$type(),h=b['$[]'](1).$get_tag(g('RepeaterMonthName')).$index(),c=b['$[]'](2).$get_tag(g('OrdinalDay')).$type(),k=b.$last(l(b.$size(),3)),d(j['$month_overflow?'](f,h,c)))return a;try{return i=g('Chronic').$time_class().$local(f,h,c),j.$day_or_time(i,k,m)}catch(b){if(e.rescue(b,[g('ArgumentError')]))try{return a}finally{e.pop_exception(b)}else throw b}}),c(h,'$handle_sd_rmn',function(b,i){var c=this,f=a,h=a;return f=b['$[]'](1).$get_tag(g('RepeaterMonthName')),h=b['$[]'](0).$get_tag(g('ScalarDay')).$type(),d(c['$month_overflow?'](c.$now().$year(),f.$index(),h))?a:c.$handle_m_d(f,h,b['$[]'](e.Range.$new(2,b.$size(),!1)),i)}),c(h,'$handle_rmn_od_on',function(b,i){var h=this,c=a,e=a,f=a;return d(r(b.$size(),3))?(c=b['$[]'](2).$get_tag(g('RepeaterMonthName')),e=b['$[]'](3).$get_tag(g('OrdinalDay')).$type(),f=w(0,1,!1)):(c=b['$[]'](1).$get_tag(g('RepeaterMonthName')),e=b['$[]'](2).$get_tag(g('OrdinalDay')).$type(),f=w(0,0,!1)),d(h['$month_overflow?'](h.$now().$year(),c.$index(),e))?a:h.$handle_m_d(c,e,b['$[]'](f),i)}),c(h,'$handle_rmn_sy',function(i,l){var c=a,d=a,h=a,f=a,j=a;c=i['$[]'](0).$get_tag(g('RepeaterMonthName')).$index(),d=i['$[]'](1).$get_tag(g('ScalarYear')).$type(),k(c,12)?(h=b(d,1),f=1):(h=d,f=b(c,1));try{return j=g('Chronic').$time_class().$local(h,f),g('Span').$new(g('Chronic').$time_class().$local(d,c),j)}catch(b){if(e.rescue(b,[g('ArgumentError')]))try{return a}finally{e.pop_exception(b)}else throw b}}),c(h,'$handle_generic',function(k,h){var i=this,c=a,f=a;try{return c=g('Chronic').$time_class().$parse(h['$[]']("text")),g('Span').$new(c,b(c,1))}catch(b){if(e.rescue(b,[g('ArgumentError')])){f=b;try{return d(f.$message()['$=~'](/out of range/))?a:i.$raise(f)}finally{e.pop_exception(b)}}else throw b}}),c(h,'$handle_rmn_sd_sy',function(b,m){var j=this,f=a,h=a,c=a,k=a,i=a;if(f=b['$[]'](0).$get_tag(g('RepeaterMonthName')).$index(),h=b['$[]'](1).$get_tag(g('ScalarDay')).$type(),c=b['$[]'](2).$get_tag(g('ScalarYear')).$type(),k=b.$last(l(b.$size(),3)),d(j['$month_overflow?'](c,f,h)))return a;try{return i=g('Chronic').$time_class().$local(c,f,h),j.$day_or_time(i,k,m)}catch(b){if(e.rescue(b,[g('ArgumentError')]))try{return a}finally{e.pop_exception(b)}else throw b}}),c(h,'$handle_rmn_od_sy',function(b,m){var j=this,f=a,h=a,c=a,k=a,i=a;if(f=b['$[]'](0).$get_tag(g('RepeaterMonthName')).$index(),h=b['$[]'](1).$get_tag(g('OrdinalDay')).$type(),c=b['$[]'](2).$get_tag(g('ScalarYear')).$type(),k=b.$last(l(b.$size(),3)),d(j['$month_overflow?'](c,f,h)))return a;try{return i=g('Chronic').$time_class().$local(c,f,h),j.$day_or_time(i,k,m)}catch(b){if(e.rescue(b,[g('ArgumentError')]))try{return a}finally{e.pop_exception(b)}else throw b}}),c(h,'$handle_od_rmn_sy',function(b,m){var j=this,f=a,h=a,c=a,k=a,i=a;if(f=b['$[]'](0).$get_tag(g('OrdinalDay')).$type(),h=b['$[]'](1).$get_tag(g('RepeaterMonthName')).$index(),c=b['$[]'](2).$get_tag(g('ScalarYear')).$type(),k=b.$last(l(b.$size(),3)),d(j['$month_overflow?'](c,h,f)))return a;try{return i=g('Chronic').$time_class().$local(c,h,f),j.$day_or_time(i,k,m)}catch(b){if(e.rescue(b,[g('ArgumentError')]))try{return a}finally{e.pop_exception(b)}else throw b}}),c(h,'$handle_sd_rmn_sy',function(c,f){var g=this,d=a,e=a;return d=[c['$[]'](1),c['$[]'](0),c['$[]'](2)],e=c.$last(l(c.$size(),3)),g.$handle_rmn_sd_sy(b(d,e),f)}),c(h,'$handle_sm_sd_sy',function(b,m){var j=this,f=a,h=a,c=a,k=a,i=a;if(f=b['$[]'](0).$get_tag(g('ScalarMonth')).$type(),h=b['$[]'](1).$get_tag(g('ScalarDay')).$type(),c=b['$[]'](2).$get_tag(g('ScalarYear')).$type(),k=b.$last(l(b.$size(),3)),d(j['$month_overflow?'](c,f,h)))return a;try{return i=g('Chronic').$time_class().$local(c,f,h),j.$day_or_time(i,k,m)}catch(b){if(e.rescue(b,[g('ArgumentError')]))try{return a}finally{e.pop_exception(b)}else throw b}}),c(h,'$handle_sd_sm_sy',function(c,f){var g=this,d=a,e=a;return d=[c['$[]'](1),c['$[]'](0),c['$[]'](2)],e=c.$last(l(c.$size(),3)),g.$handle_sm_sd_sy(b(d,e),f)}),c(h,'$handle_sy_sm_sd',function(c,f){var g=this,d=a,e=a;return d=[c['$[]'](1),c['$[]'](2),c['$[]'](0)],e=c.$last(l(c.$size(),3)),g.$handle_sm_sd_sy(b(d,e),f)}),c(h,'$handle_sm_sd',function(f,o){var i=this,j=a,m=a,c=a,n=a,h=a;if(j=f['$[]'](0).$get_tag(g('ScalarMonth')).$type(),m=f['$[]'](1).$get_tag(g('ScalarDay')).$type(),c=i.$now().$year(),n=f.$last(l(f.$size(),2)),d(i['$month_overflow?'](c,j,m)))return a;try{return h=g('Chronic').$time_class().$local(c,j,m),k(o['$[]']("context"),"future")&&d(y(h,i.$now()))&&(h=g('Chronic').$time_class().$local(b(c,1),j,m)),i.$day_or_time(h,n,o)}catch(b){if(e.rescue(b,[g('ArgumentError')]))try{return a}finally{e.pop_exception(b)}else throw b}}),c(h,'$handle_sd_sm',function(c,f){var g=this,d=a,e=a;return d=[c['$[]'](1),c['$[]'](0)],e=c.$last(l(c.$size(),2)),g.$handle_sm_sd(b(d,e),f)}),c(h,'$handle_year_and_month',function(c,d){var f=a,h=a,i=a;k(d,12)?(f=b(c,1),h=1):(f=c,h=b(d,1));try{return i=g('Chronic').$time_class().$local(f,h),g('Span').$new(g('Chronic').$time_class().$local(c,d),i)}catch(b){if(e.rescue(b,[g('ArgumentError')]))try{return a}finally{e.pop_exception(b)}else throw b}}),c(h,'$handle_sm_sy',function(b,h){var e=this,c=a,d=a;return c=b['$[]'](0).$get_tag(g('ScalarMonth')).$type(),d=b['$[]'](1).$get_tag(g('ScalarYear')).$type(),e.$handle_year_and_month(d,c)}),c(h,'$handle_sy_sm',function(b,h){var e=this,c=a,d=a;return c=b['$[]'](0).$get_tag(g('ScalarYear')).$type(),d=b['$[]'](1).$get_tag(g('ScalarMonth')).$type(),e.$handle_year_and_month(c,d)}),c(h,'$handle_rdn_rmn_od',function(j,p){var i=this,f=a,h=a,k=a,c=a,m=a,n=a,o=a;if(f=j['$[]'](1).$get_tag(g('RepeaterMonthName')),h=j['$[]'](2).$get_tag(g('OrdinalDay')).$type(),k=j.$last(l(j.$size(),3)),c=i.$now().$year(),d(i['$month_overflow?'](c,f.$index(),h)))return a;try{return d(k['$empty?']())?(m=g('Chronic').$time_class().$local(c,f.$index(),h),n=i.$time_with_rollover(c,f.$index(),b(h,1)),g('Span').$new(m,n)):(o=g('Chronic').$time_class().$local(c,f.$index(),h),i.$day_or_time(o,k,p))}catch(b){if(e.rescue(b,[g('ArgumentError')]))try{return a}finally{e.pop_exception(b)}else throw b}}),c(h,'$handle_rdn_rmn_od_sy',function(i,n){var k=this,f=a,h=a,c=a,l=a,j=a;if(f=i['$[]'](1).$get_tag(g('RepeaterMonthName')),h=i['$[]'](2).$get_tag(g('OrdinalDay')).$type(),c=i['$[]'](3).$get_tag(g('ScalarYear')).$type(),d(k['$month_overflow?'](c,f.$index(),h)))return a;try{return l=g('Chronic').$time_class().$local(c,f.$index(),h),j=k.$time_with_rollover(c,f.$index(),b(h,1)),g('Span').$new(l,j)}catch(b){if(e.rescue(b,[g('ArgumentError')]))try{return a}finally{e.pop_exception(b)}else throw b}}),c(h,'$handle_rdn_od',function(m,n){var f=this,h=a,j=a,i=a,c=a,o=a,p=a,q=a;if(h=m['$[]'](1).$get_tag(g('OrdinalDay')).$type(),j=m.$last(l(m.$size(),2)),i=f.$now().$year(),c=f.$now().$month(),k(n['$[]']("context"),"future")&&(d(r(f.$now().$day(),h))?c=b(c,1):c),d(f['$month_overflow?'](i,c,h)))return a;try{return d(j['$empty?']())?(o=g('Chronic').$time_class().$local(i,c,h),p=f.$time_with_rollover(i,c,b(h,1)),g('Span').$new(o,p)):(q=g('Chronic').$time_class().$local(i,c,h),f.$day_or_time(q,j,n))}catch(b){if(e.rescue(b,[g('ArgumentError')]))try{return a}finally{e.pop_exception(b)}else throw b}}),c(h,'$handle_rdn_rmn_sd',function(j,p){var i=this,f=a,h=a,k=a,c=a,m=a,n=a,o=a;if(f=j['$[]'](1).$get_tag(g('RepeaterMonthName')),h=j['$[]'](2).$get_tag(g('ScalarDay')).$type(),k=j.$last(l(j.$size(),3)),c=i.$now().$year(),d(i['$month_overflow?'](c,f.$index(),h)))return a;try{return d(k['$empty?']())?(m=g('Chronic').$time_class().$local(c,f.$index(),h),n=i.$time_with_rollover(c,f.$index(),b(h,1)),g('Span').$new(m,n)):(o=g('Chronic').$time_class().$local(c,f.$index(),h),i.$day_or_time(o,k,p))}catch(b){if(e.rescue(b,[g('ArgumentError')]))try{return a}finally{e.pop_exception(b)}else throw b}}),c(h,'$handle_rdn_rmn_sd_sy',function(i,n){var k=this,f=a,h=a,c=a,l=a,j=a;if(f=i['$[]'](1).$get_tag(g('RepeaterMonthName')),h=i['$[]'](2).$get_tag(g('ScalarDay')).$type(),c=i['$[]'](3).$get_tag(g('ScalarYear')).$type(),d(k['$month_overflow?'](c,f.$index(),h)))return a;try{return l=g('Chronic').$time_class().$local(c,f.$index(),h),j=k.$time_with_rollover(c,f.$index(),b(h,1)),g('Span').$new(l,j)}catch(b){if(e.rescue(b,[g('ArgumentError')]))try{return a}finally{e.pop_exception(b)}else throw b}}),c(h,'$handle_sm_rmn_sy',function(h,p){var i,o=this,c=a,f=a,j=a,e=a,n=a,l=a,m=a,k=a;return c=h['$[]'](0).$get_tag(g('ScalarDay')).$type(),f=h['$[]'](1).$get_tag(g('RepeaterMonthName')).$index(),j=h['$[]'](2).$get_tag(g('ScalarYear')).$type(),d(r(h.$size(),3))?(e=o.$get_anchor([h.$last()],p).$begin(),i=[e.$hour(),e.$min(),e.$sec()],n=i[0],l=i[1],m=i[2],i,e=g('Chronic').$time_class().$local(j,f,c,n,l,m),k=g('Chronic').$time_class().$local(j,f,b(c,1),n,l,m)):(e=g('Chronic').$time_class().$local(j,f,c),d(t(c,31))||(c=b(c,1)),k=g('Chronic').$time_class().$local(j,f,c)),g('Span').$new(e,k)}),c(h,'$handle_r',function(e,b){var c=this,d=a;return d=c.$dealias_and_disambiguate_times(e,b),c.$get_anchor(d,b)}),c(h,'$handle_r_g_r',function(b,d){var e=this,c=a;return c=[b['$[]'](1),b['$[]'](0),b['$[]'](2)],e.$handle_r(c,d)}),c(h,'$handle_srp',function(b,h,i){var f=a,c=a,e=a;return f=b['$[]'](0).$get_tag(g('Scalar')).$type(),c=b['$[]'](1).$get_tag(g('Repeater')),e=b['$[]'](2).$get_tag(g('Pointer')).$type(),d(c['$respond_to?']("offset"))?c.$offset(h,f,e):a}),c(h,'$handle_s_r_p',function(e,f){var c=this,d=a;return d=g('Span').$new(c.$now(),b(c.$now(),1)),c.$handle_srp(e,d,f)}),c(h,'$handle_p_s_r',function(b,d){var e=this,c=a;return c=[b['$[]'](1),b['$[]'](2),b['$[]'](0)],e.$handle_s_r_p(c,d)}),c(h,'$handle_s_r_p_a',function(b,c){var d=this,f=a;return f=d.$get_anchor(b['$[]'](e.Range.$new(3,l(b.$size(),1),!1)),c),d.$handle_srp(b,f,c)}),c(h,'$handle_s_r_a_s_r_p_a',function(c,d){var f=this,g=a,h=a;return g=f.$get_anchor(c['$[]'](e.Range.$new(4,l(c.$size(),1),!1)),d),h=f.$handle_srp(b(c['$[]'](w(0,1,!1)),c['$[]'](w(4,6,!1))),g,d),f.$handle_srp(b(c['$[]'](w(2,3,!1)),c['$[]'](w(4,6,!1))),h,d)}),c(h,'$handle_orr',function(e,f,i){var c=a,h=a,b=a;return c=e['$[]'](1).$get_tag(g('Repeater')),c['$start='](l(f.$begin(),1)),h=e['$[]'](0).$get_tag(g('Ordinal')).$type(),b=a,function(){try{var e=x('break');return m(h,'times',[],function g(){if(b=c.$next("future"),d(t(b.$begin(),f.$end())))b=a,e.$throw(a,g.$$is_lambda);else return a})}catch(a){if(a===e)return a.$v;throw a}finally{e.is_orphan=!0}}(),b}),c(h,'$handle_o_r_s_r',function(b,c){var d=this,e=a;return e=d.$get_anchor([b['$[]'](3)],c),d.$handle_orr(b['$[]'](w(0,1,!1)),e,c)}),c(h,'$handle_o_r_g_r',function(b,c){var d=this,e=a;return e=d.$get_anchor(b['$[]'](w(2,3,!1)),c),d.$handle_orr(b['$[]'](w(0,1,!1)),e,c)}),c(h,'$day_or_time',function(h,i,j){var c=this,e=a;return e=g('Span').$new(h,b(h,f(f(24,60),60))),d(i['$empty?']())?e:(c['$now='](e.$begin()),c.$get_anchor(c.$dealias_and_disambiguate_times(i,j),j.$merge(new Map([["context","future"]]))))}),c(h,'$get_anchor',function(h,k){var e=this,i=a,j=a,f=a,b=a,c=a;switch(i=g('Grabber').$new("this"),j="future",f=e.$get_repeaters(h),m(f.$size(),'times',[],function(){return h.$pop()}),d(h.$first())&&d(h.$first().$get_tag(g('Grabber')))&&(i=h.$shift().$get_tag(g('Grabber'))),b=f.$shift(),b['$start='](e.$now()),i.$type().valueOf()){case"last":c=b.$next("past");break;case"this":D(k['$[]']("context"),"past")&&d(r(f.$size(),0))?c=b.$this("none"):c=b.$this(k['$[]']("context"));break;case"next":c=b.$next("future");break;default:e.$raise("Invalid grabber")}return d(g('Chronic').$debug())&&(e.$puts("Handler-class: "+b.$class()),e.$puts("--"+c)),e.$find_within(f,c,j)}),c(h,'$get_repeaters',function(b){return m(b,'map',[],function(b){return b==null&&(b=a),b.$get_tag(g('Repeater'))}).$compact().$sort().$reverse()}),c(h,'$month_overflow?',function(c,a,b){try{return d(p('Date')['$leap?'](c))?r(b,p(g('RepeaterMonth'),'MONTH_DAYS_LEAP')['$[]'](l(a,1))):r(b,p(g('RepeaterMonth'),'MONTH_DAYS')['$[]'](l(a,1)))}catch(a){if(e.rescue(a,[g('ArgumentError')]))try{return!1}finally{e.pop_exception(a)}else throw a}}),c(h,'$find_within',function(e,b,h){var i=this,f=a,c=a;return d(g('Chronic').$debug())&&i.$puts("--"+b),d(e['$empty?']())?b:(f=e.$shift(),f['$start='](k(h,"future")?b.$begin():b.$end()),c=f.$this("none"),d(b['$cover?'](c.$begin()))||d(b['$cover?'](c.$end())))?i.$find_within(e,c,h):a}),c(h,'$time_with_rollover',function(c,e,f){var i=this,h=a;return h=d(i['$month_overflow?'](c,e,f))?k(e,12)?[b(c,1),1,1]:[c,b(e,1),1]:[c,e,f],m(g('Chronic').$time_class(),'local',L(h))}),c(h,'$dealias_and_disambiguate_times',function(c,l){var k=this,h=a,i=a,e=a,j=a,f=a;if(h=a,function(){try{var b=x('break');return m(c,'each_with_index',[],function f(c,e){if(c==null&&(c=a),e==null&&(e=a),d(c.$get_tag(g('RepeaterDayPortion'))))h=e,b.$throw(a,f.$$is_lambda);else return a})}catch(a){if(a===b)return a.$v;throw a}finally{b.is_orphan=!0}}(),i=a,function(){try{var b=x('break');return m(c,'each_with_index',[],function f(c,e){if(c==null&&(c=a),e==null&&(e=a),d(c.$get_tag(g('RepeaterTime'))))i=e,b.$throw(a,f.$$is_lambda);else return a})}catch(a){if(a===b)return a.$v;throw a}finally{b.is_orphan=!0}}(),d(h)&&d(i))switch(e=c['$[]'](h),j=e.$get_tag(g('RepeaterDayPortion')),j.$type().valueOf()){case"morning":d(g('Chronic').$debug())&&k.$puts("--morning->am"),e.$untag(g('RepeaterDayPortion')),e.$tag(g('RepeaterDayPortion').$new("am"));break;case"afternoon":case"evening":case"night":d(g('Chronic').$debug())&&k.$puts("--"+j.$type()+"->pm"),e.$untag(g('RepeaterDayPortion')),e.$tag(g('RepeaterDayPortion').$new("pm"));break;default:a}return D(l['$[]']("ambiguous_time_range"),"none")&&(f=[],m(c,'each_with_index',[],function(e,h){var i=a,j=a;return e==null&&(e=a),h==null&&(h=a),f['$<<'](e),i=c['$[]'](b(h,1)),d(e.$get_tag(g('RepeaterTime')))&&d(e.$get_tag(g('RepeaterTime')).$type()['$ambiguous?']())&&(E(i)||E(i.$get_tag(g('RepeaterDayPortion'))))?(j=g('Token').$new("disambiguator"),j.$tag(g('RepeaterDayPortion').$new(l['$[]']("ambiguous_time_range"))),f['$<<'](j)):a}),c=f),c})}(g[0],g)}(i[0],i),function(h,i){var l=q(h,'Chronic'),g=[l].concat(i);return function(l,n,p){var h=j(l,n,'Parser'),i=[h].concat(p),g=e.$r(i);return h.$include(g('Handlers')),o(i[0],'DEFAULT_OPTIONS',new Map([["context","future"],["now",a],["hours24",a],["guess",!0],["ambiguous_time_range",6],["endian_precedence",["middle","little"]],["ambiguous_year_future_bias",50]])),h.$attr_accessor("now"),h.$attr_reader("options"),c(h,'$initialize',function(b){var c=this,e=a;return b==null&&(b=new Map),c.options=g('DEFAULT_OPTIONS').$merge(b),c.now=d(e=b.$delete("now"))?e:g('Chronic').$time_class().$now()},-1),c(h,'$parse',function(h){var b=this,c=a,e=a;return c=b.$tokenize(h,b.$options()),e=b.$tokens_to_span(c,b.$options().$merge(new Map([["text",h]]))),d(g('Chronic').$debug())&&b.$puts("+"+f("-",51)+"\n| "+c+"\n+"+f("-",51)),d(e)?b.$guess(e,b.$options()['$[]']("guess")):a}),c(h,'$pre_normalize',function(c){return c=c.$to_s().$downcase(),c=c.$gsub(/\b(\d{2})\.(\d{2})\.(\d{4})\b/,"\\3 / \\2 / \\1"),c=c.$gsub(/\b([ap])\.m\.?/,"\\1m"),c=c.$gsub(/(\s+|:\d{2}|:\d{2}\.\d{3})\-(\d{2}:?\d{2})\b/,"\\1tzminus\\2"),c=c.$gsub(/\./,":"),c=c.$gsub(/([ap]):m:?/,"\\1m"),c=c.$gsub(/['"]/,""),c=c.$gsub(/,/," "),c=c.$gsub(/^second /,"2nd "),c=c.$gsub(/\bsecond (of|day|month|hour|minute|second)\b/,"2nd \\1"),c=g('Numerizer').$numerize(c),c=m(c,'gsub',[/([\/\-\,\@])/],function(){var c;return b(b(" ",(c=A['~'])===a?a:c['$[]'](1))," ")}),c=c.$gsub(/(?:^|\s)0(\d+:\d+\s*pm?\b)/," \\1"),c=c.$gsub(/\btoday\b/,"this day"),c=c.$gsub(/\btomm?orr?ow\b/,"next day"),c=c.$gsub(/\byesterday\b/,"last day"),c=c.$gsub(/\bnoon\b/,"12:00pm"),c=c.$gsub(/\bmidnight\b/,"24:00"),c=c.$gsub(/\bnow\b/,"this second"),c=c.$gsub("quarter","15"),c=c.$gsub("half","30"),c=c.$gsub(/(\d{1,2}) (to|till|prior to|before)\b/,"\\1 minutes past"),c=c.$gsub(/(\d{1,2}) (after|past)\b/,"\\1 minutes future"),c=c.$gsub(/\b(?:ago|before(?: now)?)\b/,"past"),c=c.$gsub(/\bthis (?:last|past)\b/,"last"),c=c.$gsub(/\b(?:in|during) the (morning)\b/,"\\1"),c=c.$gsub(/\b(?:in the|during the|at) (afternoon|evening|night)\b/,"\\1"),c=c.$gsub(/\btonight\b/,"this night"),c=c.$gsub(/\b\d+:?\d*[ap]\b/,"\\0m"),c=c.$gsub(/\b(\d{2})(\d{2})(am|pm)\b/,"\\1:\\2\\3"),c=c.$gsub(/(\d)([ap]m|oclock)\b/,"\\1 \\2"),c=c.$gsub(/\b(hence|after|from)\b/,"future"),c=c.$gsub(/^\s?an? /i,"1 "),c=c.$gsub(/\b(\d{4}):(\d{2}):(\d{2})\b/,"\\1 / \\2 / \\3"),c.$gsub(/\b0(\d+):(\d{2}):(\d{2}) ([ap]m)\b/,"\\1:\\2:\\3 \\4")}),c(h,'$guess',function(a,c){return c==null&&(c="middle"),E(c)?a:d(r(a.$width(),1))&&(k(c,!0)||k(c,"middle"))?b(a.$begin(),v(a.$width(),2)):k(c,"end")?a.$end():a.$begin()},-2),c(h,'$definitions',function(b){var h,j=this,c=a,e=a,f=a;switch(b==null&&(b=new Map),d(c=b['$[]']("endian_precedence"))?c:b['$[]=']("endian_precedence",["middle","little"]),K(i[0],'@@definitions',d((h=i[0].$$cvars['@@definitions'],h!=null)?'class variable':a)?d(c=F(i[0],'@@definitions',!1))?c:new Map([["time",[g('Handler').$new(["repeater_time","repeater_day_portion?"],a)]],["date",[g('Handler').$new(["repeater_day_name","repeater_month_name","scalar_day","repeater_time",["separator_slash?","separator_dash?"],"time_zone","scalar_year"],"handle_generic"),g('Handler').$new(["repeater_day_name","repeater_month_name","scalar_day"],"handle_rdn_rmn_sd"),g('Handler').$new(["repeater_day_name","repeater_month_name","scalar_day","scalar_year"],"handle_rdn_rmn_sd_sy"),g('Handler').$new(["repeater_day_name","repeater_month_name","ordinal_day"],"handle_rdn_rmn_od"),g('Handler').$new(["repeater_day_name","repeater_month_name","ordinal_day","scalar_year"],"handle_rdn_rmn_od_sy"),g('Handler').$new(["repeater_day_name","repeater_month_name","scalar_day","separator_at?","time?"],"handle_rdn_rmn_sd"),g('Handler').$new(["repeater_day_name","repeater_month_name","ordinal_day","separator_at?","time?"],"handle_rdn_rmn_od"),g('Handler').$new(["repeater_day_name","ordinal_day","separator_at?","time?"],"handle_rdn_od"),g('Handler').$new(["scalar_year",["separator_slash","separator_dash"],"scalar_month",["separator_slash","separator_dash"],"scalar_day","repeater_time","time_zone"],"handle_generic"),g('Handler').$new(["ordinal_day"],"handle_generic"),g('Handler').$new(["repeater_month_name","scalar_day","scalar_year"],"handle_rmn_sd_sy"),g('Handler').$new(["repeater_month_name","ordinal_day","scalar_year"],"handle_rmn_od_sy"),g('Handler').$new(["repeater_month_name","scalar_day","scalar_year","separator_at?","time?"],"handle_rmn_sd_sy"),g('Handler').$new(["repeater_month_name","ordinal_day","scalar_year","separator_at?","time?"],"handle_rmn_od_sy"),g('Handler').$new(["repeater_month_name",["separator_slash?","separator_dash?"],"scalar_day","separator_at?","time?"],"handle_rmn_sd"),g('Handler').$new(["repeater_time","repeater_day_portion?","separator_on?","repeater_month_name","scalar_day"],"handle_rmn_sd_on"),g('Handler').$new(["repeater_month_name","ordinal_day","separator_at?","time?"],"handle_rmn_od"),g('Handler').$new(["ordinal_day","repeater_month_name","scalar_year","separator_at?","time?"],"handle_od_rmn_sy"),g('Handler').$new(["ordinal_day","repeater_month_name","separator_at?","time?"],"handle_od_rmn"),g('Handler').$new(["ordinal_day","grabber?","repeater_month","separator_at?","time?"],"handle_od_rm"),g('Handler').$new(["scalar_year","repeater_month_name","ordinal_day"],"handle_sy_rmn_od"),g('Handler').$new(["repeater_time","repeater_day_portion?","separator_on?","repeater_month_name","ordinal_day"],"handle_rmn_od_on"),g('Handler').$new(["repeater_month_name","scalar_year"],"handle_rmn_sy"),g('Handler').$new(["scalar_day","repeater_month_name","scalar_year","separator_at?","time?"],"handle_sd_rmn_sy"),g('Handler').$new(["scalar_day",["separator_slash?","separator_dash?"],"repeater_month_name","separator_at?","time?"],"handle_sd_rmn"),g('Handler').$new(["scalar_year",["separator_slash","separator_dash"],"scalar_month",["separator_slash","separator_dash"],"scalar_day","separator_at?","time?"],"handle_sy_sm_sd"),g('Handler').$new(["scalar_year",["separator_slash","separator_dash"],"scalar_month"],"handle_sy_sm"),g('Handler').$new(["scalar_month",["separator_slash","separator_dash"],"scalar_year"],"handle_sm_sy"),g('Handler').$new(["scalar_day",["separator_slash","separator_dash"],"repeater_month_name",["separator_slash","separator_dash"],"scalar_year","repeater_time?"],"handle_sm_rmn_sy"),g('Handler').$new(["scalar_year",["separator_slash","separator_dash"],"scalar_month",["separator_slash","separator_dash"],"scalar?","time_zone"],"handle_generic")]],["anchor",[g('Handler').$new(["separator_on?","grabber?","repeater","separator_at?","repeater?","repeater?"],"handle_r"),g('Handler').$new(["grabber?","repeater","repeater","separator?","repeater?","repeater?"],"handle_r"),g('Handler').$new(["repeater","grabber","repeater"],"handle_r_g_r")]],["arrow",[g('Handler').$new(["scalar","repeater","pointer"],"handle_s_r_p"),g('Handler').$new(["scalar","repeater","separator_and?","scalar","repeater","pointer","separator_at?","anchor"],"handle_s_r_a_s_r_p_a"),g('Handler').$new(["pointer","scalar","repeater"],"handle_p_s_r"),g('Handler').$new(["scalar","repeater","pointer","separator_at?","anchor"],"handle_s_r_p_a")]],["narrow",[g('Handler').$new(["ordinal","repeater","separator_in","repeater"],"handle_o_r_s_r"),g('Handler').$new(["ordinal","repeater","grabber","repeater"],"handle_o_r_g_r")]]]):new Map([["time",[g('Handler').$new(["repeater_time","repeater_day_portion?"],a)]],["date",[g('Handler').$new(["repeater_day_name","repeater_month_name","scalar_day","repeater_time",["separator_slash?","separator_dash?"],"time_zone","scalar_year"],"handle_generic"),g('Handler').$new(["repeater_day_name","repeater_month_name","scalar_day"],"handle_rdn_rmn_sd"),g('Handler').$new(["repeater_day_name","repeater_month_name","scalar_day","scalar_year"],"handle_rdn_rmn_sd_sy"),g('Handler').$new(["repeater_day_name","repeater_month_name","ordinal_day"],"handle_rdn_rmn_od"),g('Handler').$new(["repeater_day_name","repeater_month_name","ordinal_day","scalar_year"],"handle_rdn_rmn_od_sy"),g('Handler').$new(["repeater_day_name","repeater_month_name","scalar_day","separator_at?","time?"],"handle_rdn_rmn_sd"),g('Handler').$new(["repeater_day_name","repeater_month_name","ordinal_day","separator_at?","time?"],"handle_rdn_rmn_od"),g('Handler').$new(["repeater_day_name","ordinal_day","separator_at?","time?"],"handle_rdn_od"),g('Handler').$new(["scalar_year",["separator_slash","separator_dash"],"scalar_month",["separator_slash","separator_dash"],"scalar_day","repeater_time","time_zone"],"handle_generic"),g('Handler').$new(["ordinal_day"],"handle_generic"),g('Handler').$new(["repeater_month_name","scalar_day","scalar_year"],"handle_rmn_sd_sy"),g('Handler').$new(["repeater_month_name","ordinal_day","scalar_year"],"handle_rmn_od_sy"),g('Handler').$new(["repeater_month_name","scalar_day","scalar_year","separator_at?","time?"],"handle_rmn_sd_sy"),g('Handler').$new(["repeater_month_name","ordinal_day","scalar_year","separator_at?","time?"],"handle_rmn_od_sy"),g('Handler').$new(["repeater_month_name",["separator_slash?","separator_dash?"],"scalar_day","separator_at?","time?"],"handle_rmn_sd"),g('Handler').$new(["repeater_time","repeater_day_portion?","separator_on?","repeater_month_name","scalar_day"],"handle_rmn_sd_on"),g('Handler').$new(["repeater_month_name","ordinal_day","separator_at?","time?"],"handle_rmn_od"),g('Handler').$new(["ordinal_day","repeater_month_name","scalar_year","separator_at?","time?"],"handle_od_rmn_sy"),g('Handler').$new(["ordinal_day","repeater_month_name","separator_at?","time?"],"handle_od_rmn"),g('Handler').$new(["ordinal_day","grabber?","repeater_month","separator_at?","time?"],"handle_od_rm"),g('Handler').$new(["scalar_year","repeater_month_name","ordinal_day"],"handle_sy_rmn_od"),g('Handler').$new(["repeater_time","repeater_day_portion?","separator_on?","repeater_month_name","ordinal_day"],"handle_rmn_od_on"),g('Handler').$new(["repeater_month_name","scalar_year"],"handle_rmn_sy"),g('Handler').$new(["scalar_day","repeater_month_name","scalar_year","separator_at?","time?"],"handle_sd_rmn_sy"),g('Handler').$new(["scalar_day",["separator_slash?","separator_dash?"],"repeater_month_name","separator_at?","time?"],"handle_sd_rmn"),g('Handler').$new(["scalar_year",["separator_slash","separator_dash"],"scalar_month",["separator_slash","separator_dash"],"scalar_day","separator_at?","time?"],"handle_sy_sm_sd"),g('Handler').$new(["scalar_year",["separator_slash","separator_dash"],"scalar_month"],"handle_sy_sm"),g('Handler').$new(["scalar_month",["separator_slash","separator_dash"],"scalar_year"],"handle_sm_sy"),g('Handler').$new(["scalar_day",["separator_slash","separator_dash"],"repeater_month_name",["separator_slash","separator_dash"],"scalar_year","repeater_time?"],"handle_sm_rmn_sy"),g('Handler').$new(["scalar_year",["separator_slash","separator_dash"],"scalar_month",["separator_slash","separator_dash"],"scalar?","time_zone"],"handle_generic")]],["anchor",[g('Handler').$new(["separator_on?","grabber?","repeater","separator_at?","repeater?","repeater?"],"handle_r"),g('Handler').$new(["grabber?","repeater","repeater","separator?","repeater?","repeater?"],"handle_r"),g('Handler').$new(["repeater","grabber","repeater"],"handle_r_g_r")]],["arrow",[g('Handler').$new(["scalar","repeater","pointer"],"handle_s_r_p"),g('Handler').$new(["scalar","repeater","separator_and?","scalar","repeater","pointer","separator_at?","anchor"],"handle_s_r_a_s_r_p_a"),g('Handler').$new(["pointer","scalar","repeater"],"handle_p_s_r"),g('Handler').$new(["scalar","repeater","pointer","separator_at?","anchor"],"handle_s_r_p_a")]],["narrow",[g('Handler').$new(["ordinal","repeater","separator_in","repeater"],"handle_o_r_s_r"),g('Handler').$new(["ordinal","repeater","grabber","repeater"],"handle_o_r_g_r")]]])),e=[g('Handler').$new(["scalar_month",["separator_slash","separator_dash"],"scalar_day",["separator_slash","separator_dash"],"scalar_year","separator_at?","time?"],"handle_sm_sd_sy"),g('Handler').$new(["scalar_month",["separator_slash","separator_dash"],"scalar_day","separator_at?","time?"],"handle_sm_sd"),g('Handler').$new(["scalar_day",["separator_slash","separator_dash"],"scalar_month","separator_at?","time?"],"handle_sd_sm"),g('Handler').$new(["scalar_day",["separator_slash","separator_dash"],"scalar_month",["separator_slash","separator_dash"],"scalar_year","separator_at?","time?"],"handle_sd_sm_sy")],(f=j.$Array(b['$[]']("endian_precedence")).$first()).valueOf()){case"little":return F(i[0],'@@definitions',!1).$merge(new Map([["endian",e.$reverse()]]));case"middle":return F(i[0],'@@definitions',!1).$merge(new Map([["endian",e]]));default:return j.$raise(g('ArgumentError'),"Unknown endian option '"+f+"'")}},-1),h.$private(),c(h,'$tokenize',function(b,d){var e=this,c=a;return b=e.$pre_normalize(b),c=m(b.$split(" "),'map',[],function(b){return b==null&&(b=a),g('Token').$new(b)}),m([g('Repeater'),g('Grabber'),g('Pointer'),g('Scalar'),g('Ordinal'),g('Separator'),g('Sign'),g('TimeZone')],'each',[],function(b){return b==null&&(b=a),b.$scan(c,d)}),m(c,'select',[],function(b){return b==null&&(b=a),b['$tagged?']()})}),c(h,'$tokens_to_span',function(f,i){var c,h,e;try{return c=x('return'),h=this,e=a,e=h.$definitions(i),m(b(e['$[]']("endian"),e['$[]']("date")),'each',[],function h(b){var k=h.$$s==null?this:h.$$s,j=a;if(b==null&&(b=a),d(b.$match(f,e)))j=m(f,'select',[],function(b){return b==null&&(b=a),b.$get_tag(g('Separator'))['$!']()}),c.$throw(b.$invoke("date",j,k,i),h.$$is_lambda);else return a},{$$s:h,$$ret:c}),m(e['$[]']("anchor"),'each',[],function h(b){var k=h.$$s==null?this:h.$$s,j=a;if(b==null&&(b=a),d(b.$match(f,e)))j=m(f,'select',[],function(b){return b==null&&(b=a),b.$get_tag(g('Separator'))['$!']()}),c.$throw(b.$invoke("anchor",j,k,i),h.$$is_lambda);else return a},{$$s:h,$$ret:c}),m(e['$[]']("arrow"),'each',[],function h(b){var k=h.$$s==null?this:h.$$s,j=a;if(b==null&&(b=a),d(b.$match(f,e)))j=m(f,'reject',[],function(b){var c=a,e=a,f=a,h=a;return b==null&&(b=a),d(c=d(e=d(f=d(h=b.$get_tag(g('SeparatorAt')))?h:b.$get_tag(g('SeparatorSlash')))?f:b.$get_tag(g('SeparatorDash')))?e:b.$get_tag(g('SeparatorComma')))?c:b.$get_tag(g('SeparatorAnd'))}),c.$throw(b.$invoke("arrow",j,k,i),h.$$is_lambda);else return a},{$$s:h,$$ret:c}),m(e['$[]']("narrow"),'each',[],function g(b){var h=g.$$s==null?this:g.$$s;if(b==null&&(b=a),d(b.$match(f,e)))c.$throw(b.$invoke("narrow",f,h,i),g.$$is_lambda);else return a},{$$s:h,$$ret:c}),d(g('Chronic').$debug())&&h.$puts("-none"),a}catch(a){if(a===c)return a.$v;throw a}finally{c.is_orphan=!0}})}(g[0],null,g)}(i[0],i),function(f,g){var h=q(f,'Chronic'),c=[h].concat(g);return function(h,i,k){var c=j(h,i,'Time'),f=[c].concat(k),g=e.$r(f);return o(f[0],'HOUR_SECONDS',3600),o(f[0],'MINUTE_SECONDS',60),o(f[0],'SECOND_SECONDS',1),o(f[0],'SUBSECOND_SECONDS',.001),n(c,'$could_be_hour?',function(b){var c=a;return d(c=t(b,0))?u(b,24):c}),n(c,'$could_be_minute?',function(b){var c=a;return d(c=t(b,0))?u(b,60):c}),n(c,'$could_be_second?',function(b){var c=a;return d(c=t(b,0))?u(b,60):c}),n(c,'$could_be_subsecond?',function(b){var c=a;return d(c=t(b,0))?u(b,999999):c}),n(c,'$normalize_offset',function(c){var e=a,f=a,h=a;return d(c['$is_a?'](g('String')))?c:(d(c)||(c=g('Chronic').$time_class().$now().$to_time().$utc_offset()),e="+",d(y(c,0))&&(e="-"),f=v(c.$abs(),3600).$to_i().$to_s().$rjust(2,"0"),h=c.$abs()['$%'](3600).$to_s().$rjust(2,"0"),b(b(e,f),h))})}(c[0],null,c)}(i[0],i),function(g,h){var i=q(g,'Chronic'),c=[i].concat(h);return function(i,k,m){var g=j(i,k,'Date'),c=[g].concat(m),h=e.$r(c);return o(c[0],'YEAR_MONTHS',12),o(c[0],'MONTH_DAYS',[a,31,28,31,30,31,30,31,31,30,31,30,31]),o(c[0],'MONTH_DAYS_LEAP',[a,31,29,31,30,31,30,31,31,30,31,30,31]),o(c[0],'YEAR_SECONDS',31536e3),o(c[0],'SEASON_SECONDS',7862400),o(c[0],'MONTH_SECONDS',2592e3),o(c[0],'FORTNIGHT_SECONDS',1209600),o(c[0],'WEEK_SECONDS',604800),o(c[0],'WEEKEND_SECONDS',172800),o(c[0],'DAY_SECONDS',86400),o(c[0],'MONTHS',new Map([["january",1],["february",2],["march",3],["april",4],["may",5],["june",6],["july",7],["august",8],["september",9],["october",10],["november",11],["december",12]])),o(c[0],'DAYS',new Map([["sunday",0],["monday",1],["tuesday",2],["wednesday",3],["thursday",4],["friday",5],["saturday",6]])),n(g,'$could_be_day?',function(b){var c=a;return d(c=t(b,1))?u(b,31):c}),n(g,'$could_be_month?',function(b){var c=a;return d(c=t(b,1))?u(b,12):c}),n(g,'$could_be_year?',function(b){var c=a;return d(c=t(b,1))?u(b,9999):c}),n(g,'$make_year',function(e,j){var g=a,i=a,c=a;return d(r(e.$to_s().$size(),2))?e:(g=l(h('Chronic').$time_class().$now().$year(),j),i=f(v(g,100),100),c=b(i,e),d(y(c,g))&&(c=b(c,100)),c)}),n(g,'$month_overflow?',function(c,a,b){return d(p('Date')['$leap?'](c))?r(b,p(h('Date'),'MONTH_DAYS_LEAP')['$[]'](a)):r(b,p(h('Date'),'MONTH_DAYS')['$[]'](a))})}(c[0],null,c)}(i[0],i),function(g,h){var i=q(g,'Chronic'),f=[i].concat(h);return function(o,i,l){var f=j(o,i,'Handler'),n=[f].concat(l),g=e.$r(n),h=f.$$prototype;return h.pattern=h.handler_method=a,f.$attr_reader("pattern"),f.$attr_reader("handler_method"),c(f,'$initialize',function(b,c){var a=this;return a.pattern=b,a.handler_method=c}),c(f,'$match',function(h,i){var c,j,f;try{return!(c=x('return'),j=this,f=a,f=0,m(j.pattern,'each',[],function n(j){var o=n.$$s==null?this:n.$$s,l=a;return j==null&&(j=a),l=!1,d(j['$is_a?'](g('Array')))||(j=[j]),function(){try{var n=x('break');return m(j,'each_index',[],function q(p){var s=q.$$s==null?this:q.$$s,o=a,r=a,t=a,u=a;if(p==null&&(p=a),o=j['$[]'](p).$to_s(),r=o['$[]'](-1,1)['$==']("?"),d(r)&&(o=o.$chop()),B(g('Symbol'),t=j['$[]'](p)))if(d(s['$tags_match?'](o,h,f)))f=b(f,1),n.$throw(a,q.$$is_lambda);else if(d(r))return l=!0,a;else if(d(y(b(p,1),j.$count())))return a;else if(d(l))return a;else c.$throw(!1,q.$$is_lambda);else return B(g('String'),t)?(d(r)&&k(f,h.$size())&&c.$throw(!0,q.$$is_lambda),d(i['$key?'](o.$to_sym()))?u=i['$[]'](o.$to_sym()):s.$raise("Invalid subset "+o+" specified"),m(u,'each',[],function g(b){if(b==null&&(b=a),d(b.$match(h['$[]'](e.Range.$new(f,h.$size(),!1)),i)))c.$throw(!0,g.$$is_lambda);else return a},{$$ret:c})):s.$raise("Invalid match type: "+j['$[]'](p).$class())},{$$s:o,$$ret:c})}catch(a){if(a===n)return a.$v;throw a}finally{n.is_orphan=!0}}()},{$$s:j}),D(f,h.$size()))}catch(a){if(a===c)return a.$v;throw a}finally{c.is_orphan=!0}}),c(f,'$invoke',function(b,c,e,f){var a=this;return d(g('Chronic').$debug())&&(a.$puts("-"+b),a.$puts("Handler: "+a.handler_method)),e.$send(a.handler_method,c,f)}),c(f,'$==',function(a){var b=this;return b.pattern['$=='](a.$pattern())}),f.$private(),c(f,'$tags_match?',function(f,b,c){var e=a;return e=g('Chronic').$const_get(m(f.$to_s(),'gsub',[/(?:^|_)(.)/],function(){var b;return((b=A['~'])===a?a:b['$[]'](1)).$upcase()})),d(b['$[]'](c))?m(b['$[]'](c).$tags(),'select',[],function(b){return b==null&&(b=a),b['$kind_of?'](e)})['$empty?']()['$!']():a})}(f[0],null,f)}(i[0],i),function(g,h){var i=q(g,'Chronic'),f=[i].concat(h);return function(o,h,i){var f=j(o,h,'MiniDate'),l=[f].concat(i),m=e.$r(l),g=f.$$prototype;return g.day=g.month=a,f.$attr_accessor("month","day"),n(f,'$from_time',function(a){var b=this;return b.$new(a.$month(),a.$day())}),c(f,'$initialize',function(b,c){var a=this;return d(w(1,12,!1)['$include?'](b))||a.$raise(m('ArgumentError'),"1..12 are valid months"),a.month=b,a.day=c}),c(f,'$is_between?',function(e,f){var c=this,g=a;if(k(c.month,e.$month())&&k(c.month,f.$month())&&(d(y(c.day,e.$day()))||d(r(c.day,f.$day()))))return!1;if(k(c.month,e.$month())&&d(t(c.day,e.$day()))||k(c.month,f.$month())&&d(u(c.day,f.$day())))return!0;for(g=b(e.$month()['$%'](12),1);!k(g,f.$month());){if(k(c.month,g))return!0;g=b(g['$%'](12),1)}return!1}),c(f,'$equals?',function(b){var c=this,e=a;return d(e=c.month['$=='](b.$month()))?c.day['$=='](b.$day()):e})}(f[0],null,f)}(i[0],i),function(f,g){var h=q(f,'Chronic'),b=[h].concat(g);return function(f,g,h){var b=j(f,g,'Tag'),i=[b].concat(h);return b.$attr_accessor("type"),c(b,'$initialize',function(c,a){var b=this;return a==null&&(a=new Map),b.type=c,b.options=a},-2),c(b,'$start=',J("now")),function(b,g){var h=[b].concat(g),f=e.$r(h);return b.$private(),c(b,'$scan_for',function(h,i,b,e){var c,g;try{if(c=x('return'),g=a,b==null&&(b=new Map),e==null&&(e=new Map),B(f('Regexp'),g=b)){if(d(b['$=~'](h.$word())))return i.$new(h.$word(),e)}else B(f('Hash'),g)?m(b,'each',[],function g(b,f){if(b==null&&(b=a),f==null&&(f=a),d(b['$=~'](h.$word())))c.$throw(i.$new(f,e),g.$$is_lambda);else return a},{$$ret:c}):a;return a}catch(a){if(a===c)return a.$v;throw a}finally{c.is_orphan=!0}},-3)}(e.get_singleton_class(b),i)}(b[0],null,b)}(i[0],i),function(g,h){var i=q(g,'Chronic'),f=[i].concat(h),k=e.$r(f);return function(h,i,k){var f=j(h,i,'Span'),m=[f].concat(k),g=e.$r(m);return c(f,'$width',function(){var a=this;return l(a.$end(),a.$begin()).$to_i()}),c(f,'$+',function(a){var c=this;return g('Span').$new(b(c.$begin(),a),b(c.$end(),a))}),c(f,'$-',function(a){var c=this;return b(c,a['$-@']())}),c(f,'$to_s',function(){var a=this;return b(b(b(b("(",a.$begin().$to_s()),".."),a.$end().$to_s()),")")}),d(g('RUBY_VERSION')['$=~'](/^1.8/))?H(f,"cover?","include?"):a}(f[0],k('Range'),f)}(i[0],i),function(d,e){var f=q(d,'Chronic'),g=[f].concat(e);return function(f,g){var d=j(f,g,'Token'),e=d.$$prototype;return e.tags=e.word=a,d.$attr_accessor("word"),d.$attr_accessor("tags"),c(d,'$initialize',function(b){var a=this;return a.word=b,a.tags=[]}),c(d,'$tag',function(a){var b=this;return b.tags['$<<'](a)}),c(d,'$untag',function(b){var c=this;return m(c.tags,'delete_if',[],function(c){return c==null&&(c=a),c['$kind_of?'](b)})}),c(d,'$tagged?',function(){var a=this;return r(a.tags.$size(),0)}),c(d,'$get_tag',function(b){var c=this;return m(c.tags,'find',[],function(c){return c==null&&(c=a),c['$kind_of?'](b)})}),c(d,'$to_s',function(){var a=this;return a.word=b(b(b(a.word,"("),a.tags.$join(", ")),") ")}),c(d,'$inspect',function(){var a=this;return a.$to_s()})}(g[0],null)}(i[0],i),function(g,h){var i=q(g,'Chronic'),f=[i].concat(h),k=e.$r(f);return function(f,g){var e=j(f,g,'Grabber'),h=e.$$prototype;return h.type=a,n(e,'$scan',function(b,f){var c=this;return m(b,'each',[],function c(b){var f=c.$$s==null?this:c.$$s,e=a;return b==null&&(b=a),d(e=f.$scan_for_all(b))?(b.$tag(e),a):a},{$$s:c})}),n(e,'$scan_for_all',function(b){var a=this;return a.$scan_for(b,a,s(new Map([[/last/,"last"],[/this/,"this"],[/next/,"next"]])))}),c(e,'$to_s',function(){var a=this;return b("grabber-",a.type.$to_s())})}(f[0],k('Tag'))}(i[0],i),function(g,h){var i=q(g,'Chronic'),f=[i].concat(h),k=e.$r(f);return function(f,g){var e=j(f,g,'Pointer'),h=e.$$prototype;return h.type=a,n(e,'$scan',function(b,f){var c=this;return m(b,'each',[],function c(b){var f=c.$$s==null?this:c.$$s,e=a;return b==null&&(b=a),d(e=f.$scan_for_all(b))?b.$tag(e):a},{$$s:c})}),n(e,'$scan_for_all',function(b){var a=this;return a.$scan_for(b,a,s(new Map([[/\bpast\b/,"past"],[/\b(?:future|in)\b/,"future"]])))}),c(e,'$to_s',function(){var a=this;return b("pointer-",a.type.$to_s())})}(f[0],k('Tag'))}(i[0],i),function(k,l){var r=q(k,'Chronic'),f=[r].concat(l),i=e.$r(f);return function(i,k,l){var g=j(i,k,'Scalar'),h=[g].concat(l),f=e.$r(h);return o(h[0],'DAY_PORTIONS',["am","pm","morning","afternoon","evening","night"]),n(g,'$scan',function(c,e){return m(c,'each_index',[],function(i){var h=a,j=a,g=a,k=a;return i==null&&(i=a),h=c['$[]'](i),j=c['$[]'](b(i,1)),d(h.$word()['$=~'](/^\d+$/))?(g=h.$word().$to_i(),h.$tag(f('Scalar').$new(g)),d(p(f('Chronic'),'Time')['$could_be_subsecond?'](g))&&h.$tag(f('ScalarSubsecond').$new(g)),d(p(f('Chronic'),'Time')['$could_be_second?'](g))&&h.$tag(f('ScalarSecond').$new(g)),d(p(f('Chronic'),'Time')['$could_be_minute?'](g))&&h.$tag(f('ScalarMinute').$new(g)),d(p(f('Chronic'),'Time')['$could_be_hour?'](g))&&h.$tag(f('ScalarHour').$new(g)),d(j)&&d(f('DAY_PORTIONS')['$include?'](j.$word())))?a:(d(p(f('Chronic'),'Date')['$could_be_day?'](g))&&h.$tag(f('ScalarDay').$new(g)),d(p(f('Chronic'),'Date')['$could_be_month?'](g))&&h.$tag(f('ScalarMonth').$new(g)),d(p(f('Chronic'),'Date')['$could_be_year?'](g)))?(k=p(f('Chronic'),'Date').$make_year(g,e['$[]']("ambiguous_year_future_bias")),h.$tag(f('ScalarYear').$new(k.$to_i()))):a:a})}),c(g,'$to_s',z("scalar"))}(f[0],i('Tag'),f),function(e,f){var d=j(e,f,'ScalarSubsecond'),i=d.$$prototype;return i.type=a,c(d,'$to_s',function c(){var e=c.$$p||a,d=this;return c.$$p=null,b(b(h(d,g(d,'to_s',c,!1,!0),'to_s',[],e),"-subsecond-"),d.type.$to_s())})}(f[0],i('Scalar')),function(e,f){var d=j(e,f,'ScalarSecond'),i=d.$$prototype;return i.type=a,c(d,'$to_s',function c(){var e=c.$$p||a,d=this;return c.$$p=null,b(b(h(d,g(d,'to_s',c,!1,!0),'to_s',[],e),"-second-"),d.type.$to_s())})}(f[0],i('Scalar')),function(e,f){var d=j(e,f,'ScalarMinute'),i=d.$$prototype;return i.type=a,c(d,'$to_s',function c(){var e=c.$$p||a,d=this;return c.$$p=null,b(b(h(d,g(d,'to_s',c,!1,!0),'to_s',[],e),"-minute-"),d.type.$to_s())})}(f[0],i('Scalar')),function(e,f){var d=j(e,f,'ScalarHour'),i=d.$$prototype;return i.type=a,c(d,'$to_s',function c(){var e=c.$$p||a,d=this;return c.$$p=null,b(b(h(d,g(d,'to_s',c,!1,!0),'to_s',[],e),"-hour-"),d.type.$to_s())})}(f[0],i('Scalar')),function(e,f){var d=j(e,f,'ScalarDay'),i=d.$$prototype;return i.type=a,c(d,'$to_s',function c(){var e=c.$$p||a,d=this;return c.$$p=null,b(b(h(d,g(d,'to_s',c,!1,!0),'to_s',[],e),"-day-"),d.type.$to_s())})}(f[0],i('Scalar')),function(e,f){var d=j(e,f,'ScalarMonth'),i=d.$$prototype;return i.type=a,c(d,'$to_s',function c(){var e=c.$$p||a,d=this;return c.$$p=null,b(b(h(d,g(d,'to_s',c,!1,!0),'to_s',[],e),"-month-"),d.type.$to_s())})}(f[0],i('Scalar')),function(e,f){var d=j(e,f,'ScalarYear'),i=d.$$prototype;return i.type=a,c(d,'$to_s',function c(){var e=c.$$p||a,d=this;return c.$$p=null,b(b(h(d,g(d,'to_s',c,!1,!0),'to_s',[],e),"-year-"),d.type.$to_s())})}(f[0],i('Scalar'))}(i[0],i),function(k,l){var o=q(k,'Chronic'),f=[o].concat(l),i=e.$r(f);return function(g,h,i){var f=j(g,h,'Ordinal'),k=[f].concat(i),b=e.$r(k);return n(f,'$scan',function(c,e){return m(c,'each_index',[],function(g){var h,f=a,i=a;return g==null&&(g=a),d(c['$[]'](g).$word()['$=~'](/^(\d+)(st|nd|rd|th|\.)$/))&&(f=((h=A['~'])===a?a:h['$[]'](1)).$to_i(),c['$[]'](g).$tag(b('Ordinal').$new(f)),d(p(b('Chronic'),'Date')['$could_be_day?'](f))&&c['$[]'](g).$tag(b('OrdinalDay').$new(f)),d(p(b('Chronic'),'Date')['$could_be_month?'](f))&&c['$[]'](g).$tag(b('OrdinalMonth').$new(f)),d(p(b('Chronic'),'Date')['$could_be_year?'](f)))?(i=p(b('Chronic'),'Date').$make_year(f,e['$[]']("ambiguous_year_future_bias")),c['$[]'](g).$tag(b('OrdinalYear').$new(i.$to_i()))):a})}),c(f,'$to_s',z("ordinal"))}(f[0],i('Tag'),f),function(e,f){var d=j(e,f,'OrdinalDay'),i=d.$$prototype;return i.type=a,c(d,'$to_s',function c(){var e=c.$$p||a,d=this;return c.$$p=null,b(b(h(d,g(d,'to_s',c,!1,!0),'to_s',[],e),"-day-"),d.type.$to_s())})}(f[0],i('Ordinal')),function(e,f){var d=j(e,f,'OrdinalMonth'),i=d.$$prototype;return i.type=a,c(d,'$to_s',function c(){var e=c.$$p||a,d=this;return c.$$p=null,b(b(h(d,g(d,'to_s',c,!1,!0),'to_s',[],e),"-month-"),d.type.$to_s())})}(f[0],i('Ordinal')),function(e,f){var d=j(e,f,'OrdinalYear'),i=d.$$prototype;return i.type=a,c(d,'$to_s',function c(){var e=c.$$p||a,d=this;return c.$$p=null,b(b(h(d,g(d,'to_s',c,!1,!0),'to_s',[],e),"-year-"),d.type.$to_s())})}(f[0],i('Ordinal'))}(i[0],i),function(k,l){var o=q(k,'Chronic'),f=[o].concat(l),i=e.$r(f);return function(g,h,i){var b=j(g,h,'Separator'),k=[b].concat(i),f=e.$r(k);return n(b,'$scan',function(b,f){var c=this;return m(b,'each',[],function f(b){var e=f.$$s==null?this:f.$$s,c=a;return b==null&&(b=a),d(c=e.$scan_for_commas(b))?(b.$tag(c),a):d(c=e.$scan_for_dots(b))?(b.$tag(c),a):d(c=e.$scan_for_colon(b))?(b.$tag(c),a):d(c=e.$scan_for_space(b))?(b.$tag(c),a):d(c=e.$scan_for_slash(b))?(b.$tag(c),a):d(c=e.$scan_for_dash(b))?(b.$tag(c),a):d(c=e.$scan_for_quote(b))?(b.$tag(c),a):d(c=e.$scan_for_at(b))?(b.$tag(c),a):d(c=e.$scan_for_in(b))?(b.$tag(c),a):d(c=e.$scan_for_on(b))?(b.$tag(c),a):d(c=e.$scan_for_and(b))?(b.$tag(c),a):d(c=e.$scan_for_t(b))?(b.$tag(c),a):d(c=e.$scan_for_w(b))?(b.$tag(c),a):a},{$$s:c})}),n(b,'$scan_for_commas',function(a){var b=this;return b.$scan_for(a,f('SeparatorComma'),s(new Map([[/^,$/,"comma"]])))}),n(b,'$scan_for_dots',function(a){var b=this;return b.$scan_for(a,f('SeparatorDot'),s(new Map([[/^\.$/,"dot"]])))}),n(b,'$scan_for_colon',function(a){var b=this;return b.$scan_for(a,f('SeparatorColon'),s(new Map([[/^:$/,"colon"]])))}),n(b,'$scan_for_space',function(a){var b=this;return b.$scan_for(a,f('SeparatorSpace'),s(new Map([[/^ $/,"space"]])))}),n(b,'$scan_for_slash',function(a){var b=this;return b.$scan_for(a,f('SeparatorSlash'),s(new Map([[/^\/$/,"slash"]])))}),n(b,'$scan_for_dash',function(a){var b=this;return b.$scan_for(a,f('SeparatorDash'),s(new Map([[/^-$/,"dash"]])))}),n(b,'$scan_for_quote',function(a){var b=this;return b.$scan_for(a,f('SeparatorQuote'),s(new Map([[/^'$/,"single_quote"],[/^"$/,"double_quote"]])))}),n(b,'$scan_for_at',function(a){var b=this;return b.$scan_for(a,f('SeparatorAt'),s(new Map([[/^(at|@)$/,"at"]])))}),n(b,'$scan_for_in',function(a){var b=this;return b.$scan_for(a,f('SeparatorIn'),s(new Map([[/^in$/,"in"]])))}),n(b,'$scan_for_on',function(a){var b=this;return b.$scan_for(a,f('SeparatorOn'),s(new Map([[/^on$/,"on"]])))}),n(b,'$scan_for_and',function(a){var b=this;return b.$scan_for(a,f('SeparatorAnd'),s(new Map([[/^and$/,"and"]])))}),n(b,'$scan_for_t',function(a){var b=this;return b.$scan_for(a,f('SeparatorT'),s(new Map([[/^t$/,"T"]])))}),n(b,'$scan_for_w',function(a){var b=this;return b.$scan_for(a,f('SeparatorW'),s(new Map([[/^w$/,"W"]])))}),c(b,'$to_s',z("separator"))}(f[0],i('Tag'),f),function(d,e){var f=j(d,e,'SeparatorComma');return c(f,'$to_s',function c(){var e=c.$$p||a,d=this;return c.$$p=null,b(h(d,g(d,'to_s',c,!1,!0),'to_s',[],e),"-comma")})}(f[0],i('Separator')),function(d,e){var f=j(d,e,'SeparatorDot');return c(f,'$to_s',function c(){var e=c.$$p||a,d=this;return c.$$p=null,b(h(d,g(d,'to_s',c,!1,!0),'to_s',[],e),"-dot")})}(f[0],i('Separator')),function(d,e){var f=j(d,e,'SeparatorColon');return c(f,'$to_s',function c(){var e=c.$$p||a,d=this;return c.$$p=null,b(h(d,g(d,'to_s',c,!1,!0),'to_s',[],e),"-colon")})}(f[0],i('Separator')),function(d,e){var f=j(d,e,'SeparatorSpace');return c(f,'$to_s',function c(){var e=c.$$p||a,d=this;return c.$$p=null,b(h(d,g(d,'to_s',c,!1,!0),'to_s',[],e),"-space")})}(f[0],i('Separator')),function(d,e){var f=j(d,e,'SeparatorSlash');return c(f,'$to_s',function c(){var e=c.$$p||a,d=this;return c.$$p=null,b(h(d,g(d,'to_s',c,!1,!0),'to_s',[],e),"-slash")})}(f[0],i('Separator')),function(d,e){var f=j(d,e,'SeparatorDash');return c(f,'$to_s',function c(){var e=c.$$p||a,d=this;return c.$$p=null,b(h(d,g(d,'to_s',c,!1,!0),'to_s',[],e),"-dash")})}(f[0],i('Separator')),function(e,f){var d=j(e,f,'SeparatorQuote'),i=d.$$prototype;return i.type=a,c(d,'$to_s',function c(){var e=c.$$p||a,d=this;return c.$$p=null,b(b(h(d,g(d,'to_s',c,!1,!0),'to_s',[],e),"-quote-"),d.type.$to_s())})}(f[0],i('Separator')),function(d,e){var f=j(d,e,'SeparatorAt');return c(f,'$to_s',function c(){var e=c.$$p||a,d=this;return c.$$p=null,b(h(d,g(d,'to_s',c,!1,!0),'to_s',[],e),"-at")})}(f[0],i('Separator')),function(d,e){var f=j(d,e,'SeparatorIn');return c(f,'$to_s',function c(){var e=c.$$p||a,d=this;return c.$$p=null,b(h(d,g(d,'to_s',c,!1,!0),'to_s',[],e),"-in")})}(f[0],i('Separator')),function(d,e){var f=j(d,e,'SeparatorOn');return c(f,'$to_s',function c(){var e=c.$$p||a,d=this;return c.$$p=null,b(h(d,g(d,'to_s',c,!1,!0),'to_s',[],e),"-on")})}(f[0],i('Separator')),function(d,e){var f=j(d,e,'SeparatorAnd');return c(f,'$to_s',function c(){var e=c.$$p||a,d=this;return c.$$p=null,b(h(d,g(d,'to_s',c,!1,!0),'to_s',[],e),"-and")})}(f[0],i('Separator')),function(d,e){var f=j(d,e,'SeparatorT');return c(f,'$to_s',function c(){var e=c.$$p||a,d=this;return c.$$p=null,b(h(d,g(d,'to_s',c,!1,!0),'to_s',[],e),"-T")})}(f[0],i('Separator')),function(d,e){var f=j(d,e,'SeparatorW');return c(f,'$to_s',function c(){var e=c.$$p||a,d=this;return c.$$p=null,b(h(d,g(d,'to_s',c,!1,!0),'to_s',[],e),"-W")})}(f[0],i('Separator'))}(i[0],i),function(k,l){var o=q(k,'Chronic'),f=[o].concat(l),i=e.$r(f);return function(g,h,i){var b=j(g,h,'Sign'),k=[b].concat(i),f=e.$r(k);return n(b,'$scan',function(b,f){var c=this;return m(b,'each',[],function e(b){var f=e.$$s==null?this:e.$$s,c=a;return b==null&&(b=a),d(c=f.$scan_for_plus(b))?(b.$tag(c),a):d(c=f.$scan_for_minus(b))?(b.$tag(c),a):a},{$$s:c})}),n(b,'$scan_for_plus',function(a){var b=this;return b.$scan_for(a,f('SignPlus'),s(new Map([[/^\+$/,"plus"]])))}),n(b,'$scan_for_minus',function(a){var b=this;return b.$scan_for(a,f('SignMinus'),s(new Map([[/^-$/,"minus"]])))}),c(b,'$to_s',z("sign"))}(f[0],i('Tag'),f),function(d,e){var f=j(d,e,'SignPlus');return c(f,'$to_s',function c(){var e=c.$$p||a,d=this;return c.$$p=null,b(h(d,g(d,'to_s',c,!1,!0),'to_s',[],e),"-plus")})}(f[0],i('Sign')),function(d,e){var f=j(d,e,'SignMinus');return c(f,'$to_s',function c(){var e=c.$$p||a,d=this;return c.$$p=null,b(h(d,g(d,'to_s',c,!1,!0),'to_s',[],e),"-minus")})}(f[0],i('Sign'))}(i[0],i),function(f,g){var h=q(f,'Chronic'),b=[h].concat(g),i=e.$r(b);return function(e,f){var b=j(e,f,'TimeZone');return n(b,'$scan',function(b,f){var c=this;return m(b,'each',[],function c(b){var f=c.$$s==null?this:c.$$s,e=a;return b==null&&(b=a),d(e=f.$scan_for_all(b))?(b.$tag(e),a):a},{$$s:c})}),n(b,'$scan_for_all',function(b){var a=this;return a.$scan_for(b,a,s(new Map([[/[PMCE][DS]T|UTC/i,"tz"],[/(tzminus)?\d{2}:?\d{2}/,"tz"]])))}),c(b,'$to_s',z("timezone"))}(b[0],i('Tag'))}(i[0],i),G.$require("strscan"),function(h,i){var k=q(h,'Chronic'),g=[k].concat(i);return function(k,p,q){var i=j(k,p,'Numerizer'),g=[i].concat(q),h=e.$r(g);return o(g[0],'DIRECT_NUMS',[["eleven","11"],["twelve","12"],["thirteen","13"],["fourteen","14"],["fifteen","15"],["sixteen","16"],["seventeen","17"],["eighteen","18"],["nineteen","19"],["ninteen","19"],["zero","0"],["one","1"],["two","2"],["three","3"],["four(\\W|$)","4\\1"],["five","5"],["six(\\W|$)","6\\1"],["seven(\\W|$)","7\\1"],["eight(\\W|$)","8\\1"],["nine(\\W|$)","9\\1"],["ten","10"],["\\ba[\\b^$]","1"]]),o(g[0],'ORDINALS',[["first","1"],["third","3"],["fourth","4"],["fifth","5"],["sixth","6"],["seventh","7"],["eighth","8"],["ninth","9"],["tenth","10"],["twelfth","12"],["twentieth","20"],["thirtieth","30"],["fourtieth","40"],["fiftieth","50"],["sixtieth","60"],["seventieth","70"],["eightieth","80"],["ninetieth","90"]]),o(g[0],'TEN_PREFIXES',[["twenty",20],["thirty",30],["forty",40],["fourty",40],["fifty",50],["sixty",60],["seventy",70],["eighty",80],["ninety",90]]),o(g[0],'BIG_PREFIXES',[["hundred",100],["thousand",1e3],["million",1e6],["billion",1e9],["trillion",1e12]]),n(i,'$numerize',function(c){var e=this;return c=c.$dup(),c=c.$gsub(/ +|([^\d])-([^\d])/,"\\1 \\2"),c=c.$gsub(/a half/,"haAlf"),m(h('DIRECT_NUMS'),'each',[],function(d){return d==null&&(d=a),c=c.$gsub(C([d['$[]'](0)],'i'),b("",d['$[]'](1)))}),m(h('ORDINALS'),'each',[],function(d){return d==null&&(d=a),c=c.$gsub(C([d['$[]'](0)],'i'),b(b("",d['$[]'](1)),d['$[]'](0)['$[]'](-2,2)))}),m(h('TEN_PREFIXES'),'each',[],function(d){return d==null&&(d=a),c=m(c,'gsub',[C(["(?:",d['$[]'](0),") *(\\d(?=[^\\d]|$))*"],'i')],function(){var c;return b("",b(d['$[]'](1),((c=A['~'])===a?a:c['$[]'](1)).$to_i()).$to_s())})}),m(h('TEN_PREFIXES'),'each',[],function(d){return d==null&&(d=a),c=m(c,'gsub',[C([d['$[]'](0)],'i')],function(){return b("",d['$[]'](1).$to_s())})}),m(h('BIG_PREFIXES'),'each',[],function g(e){var h=g.$$s==null?this:g.$$s;return e==null&&(e=a),c=m(c,'gsub',[C(["(?:)?(\\d*) *",e['$[]'](0)],'i')],function(){var c;return d(((c=A['~'])===a?a:c['$[]'](1))['$empty?']())?e['$[]'](1):b("",f(e['$[]'](1),((c=A['~'])===a?a:c['$[]'](1)).$to_i()).$to_s())}),h.$andition(c)},{$$s:e}),c=m(c,'gsub',[/(\d+)(?: | and |-)*haAlf/i],function(){var c;return b(((c=A['~'])===a?a:c['$[]'](1)).$to_f(),.5).$to_s()}),c.$gsub(//,"")}),function(f,g){var h=[f].concat(g),i=e.$r(h);return f.$private(),c(f,'$andition',function(f){var c=a;for(c=i('StringScanner').$new(f);d(c.$scan_until(/(\d+)( | and )(\d+)(?=[^\w]|$)/i));)(d(c['$[]'](2)['$=~'](/and/))||d(r(c['$[]'](1).$size(),c['$[]'](3).$size())))&&(f['$[]='](e.Range.$new(l(c.$pos(),c.$matched_size()),l(c.$pos(),1),!1),b("",b(c['$[]'](1).$to_i(),c['$[]'](3).$to_i()).$to_s())),c.$reset())})}(e.get_singleton_class(i),g)}(g[0],null,g)}(i[0],i),function(d,e){var g=q(d,'Chronic'),h=[g].concat(e);return function(e,g){var d=j(e,g,'Season');return d.$attr_reader("start"),d.$attr_reader("end"),c(d,'$initialize',function(b,c){var a=this;return a.start=b,a.end=c}),n(d,'$find_next_season',function(e,g){var c=a,d=a;return c=["spring","summer","autumn","winter"],d=b(c.$index(e),f(1,g))['$%'](4),c['$[]'](d)}),n(d,'$season_after',function(a){var b=this;return b.$find_next_season(a,1)}),n(d,'$season_before',function(a){var b=this;return b.$find_next_season(a,-1)})}(h[0],null)}(i[0],i),function(g,h){var i=q(g,'Chronic'),f=[i].concat(h),k=e.$r(f);return function(h,i,k){var f=j(h,i,'Repeater'),l=[f].concat(k),g=e.$r(l),o=f.$$prototype;return o.now=a,n(f,'$scan',function(c,b){var e=this;return m(c,'each',[],function g(c){var f=g.$$s==null?this:g.$$s,e=a;return c==null&&(c=a),d(e=f.$scan_for_season_names(c,b))?(c.$tag(e),a):d(e=f.$scan_for_month_names(c,b))?(c.$tag(e),a):d(e=f.$scan_for_day_names(c,b))?(c.$tag(e),a):d(e=f.$scan_for_day_portions(c,b))?(c.$tag(e),a):d(e=f.$scan_for_times(c,b))?(c.$tag(e),a):d(e=f.$scan_for_units(c,b))?(c.$tag(e),a):a},{$$s:e})}),n(f,'$scan_for_season_names',function(b,a){var c=this;return a==null&&(a=new Map),c.$scan_for(b,g('RepeaterSeasonName'),s(new Map([[/^springs?$/,"spring"],[/^summers?$/,"summer"],[/^(autumn)|(fall)s?$/,"autumn"],[/^winters?$/,"winter"]])),a)},-2),n(f,'$scan_for_month_names',function(b,a){var c=this;return a==null&&(a=new Map),c.$scan_for(b,g('RepeaterMonthName'),s(new Map([[/^jan[:\.]?(uary)?$/,"january"],[/^feb[:\.]?(ruary)?$/,"february"],[/^mar[:\.]?(ch)?$/,"march"],[/^apr[:\.]?(il)?$/,"april"],[/^may$/,"may"],[/^jun[:\.]?e?$/,"june"],[/^jul[:\.]?y?$/,"july"],[/^aug[:\.]?(ust)?$/,"august"],[/^sep[:\.]?(t[:\.]?|tember)?$/,"september"],[/^oct[:\.]?(ober)?$/,"october"],[/^nov[:\.]?(ember)?$/,"november"],[/^dec[:\.]?(ember)?$/,"december"]])),a)},-2),n(f,'$scan_for_day_names',function(b,a){var c=this;return a==null&&(a=new Map),c.$scan_for(b,g('RepeaterDayName'),s(new Map([[/^m[ou]n(day)?$/,"monday"],[/^t(ue|eu|oo|u|)s?(day)?$/,"tuesday"],[/^we(d|dnes|nds|nns)(day)?$/,"wednesday"],[/^th(u|ur|urs|ers)(day)?$/,"thursday"],[/^fr[iy](day)?$/,"friday"],[/^sat(t?[ue]rday)?$/,"saturday"],[/^su[nm](day)?$/,"sunday"]])),a)},-2),n(f,'$scan_for_day_portions',function(b,a){var c=this;return a==null&&(a=new Map),c.$scan_for(b,g('RepeaterDayPortion'),s(new Map([[/^ams?$/,"am"],[/^pms?$/,"pm"],[/^mornings?$/,"morning"],[/^afternoons?$/,"afternoon"],[/^evenings?$/,"evening"],[/^(night|nite)s?$/,"night"]])),a)},-2),n(f,'$scan_for_times',function(b,a){var c=this;return a==null&&(a=new Map),c.$scan_for(b,g('RepeaterTime'),/^\d{1,2}(:?\d{1,2})?([\.:]?\d{1,2}([\.:]\d{1,6})?)?$/,a)},-2),n(f,'$scan_for_units',function(f,e){try{var c=x('return');return e==null&&(e=new Map),m(s(new Map([[/^years?$/,"year"],[/^seasons?$/,"season"],[/^months?$/,"month"],[/^fortnights?$/,"fortnight"],[/^weeks?$/,"week"],[/^weekends?$/,"weekend"],[/^(week|business)days?$/,"weekday"],[/^days?$/,"day"],[/^hrs?$/,"hour"],[/^hours?$/,"hour"],[/^mins?$/,"minute"],[/^minutes?$/,"minute"],[/^secs?$/,"second"],[/^seconds?$/,"second"]])),'each',[],function l(i,h){var j=a,k=a;if(i==null&&(i=a),h==null&&(h=a),d(i['$=~'](f.$word())))j=b("Repeater",h.$to_s().$capitalize()),k=g('Chronic').$const_get(j),c.$throw(k.$new(h,e),l.$$is_lambda);else return a},{$$ret:c}),a}catch(a){if(a===c)return a.$v;throw a}finally{c.is_orphan=!0}},-2),c(f,'$<=>',function(a){var b=this;return b.$width()['$<=>'](a.$width())}),c(f,'$width',function(){var a=this;return a.$raise("Repeater#width must be overridden in subclasses")}),c(f,'$next',function(e){var b=this;return d(b.now)?a:b.$raise("Start point must be set before calling #next")}),c(f,'$this',function(e){var b=this;return d(b.now)?a:b.$raise("Start point must be set before calling #this")}),c(f,'$to_s',z("repeater"))}(f[0],k('Tag'),f)}(i[0],i),function(m,n){var s=q(m,'Chronic'),i=[s].concat(n),t=e.$r(i);return function(u,s,t){var m=j(u,s,'RepeaterYear'),q=[m].concat(t),i=e.$r(q),n=m.$$prototype;return n.current_year_start=n.now=a,o(q[0],'YEAR_SECONDS',31536e3),c(m,'$initialize',function b(e,c){var f=b.$$p||a,d=this;return b.$$p=null,c==null&&(c=new Map),h(d,g(d,'initialize',b,!1,!0),'initialize',[e,c],f),d.current_year_start=a},-2),c(m,'$next',function e(f){var m=e.$$p||a,c=this,j=a;if(e.$$p=null,h(c,g(c,'next',e,!1,!0),'next',[f],m),d(c.current_year_start))j=k(f,"future")?1:-1,c.current_year_start=i('Chronic').$construct(b(c.current_year_start.$year(),j));else switch(f.valueOf()){case"future":c.current_year_start=i('Chronic').$construct(b(c.now.$year(),1));break;case"past":c.current_year_start=i('Chronic').$construct(l(c.now.$year(),1));break;default:a}return i('Span').$new(c.current_year_start,i('Chronic').$construct(b(c.current_year_start.$year(),1)))}),c(m,'$this',function j(d){var k=j.$$p||a,c=this,e=a,f=a;switch(j.$$p=null,d==null&&(d="future"),h(c,g(c,'this',j,!1,!0),'this',[d],k),d.valueOf()){case"future":e=i('Chronic').$construct(c.now.$year(),c.now.$month(),b(c.now.$day(),1)),f=i('Chronic').$construct(b(c.now.$year(),1),1,1);break;case"past":e=i('Chronic').$construct(c.now.$year(),1,1),f=i('Chronic').$construct(c.now.$year(),c.now.$month(),c.now.$day());break;case"none":e=i('Chronic').$construct(c.now.$year(),1,1),f=i('Chronic').$construct(b(c.now.$year(),1),1,1);break;default:a}return i('Span').$new(e,f)},-1),c(m,'$offset',function(d,e,h){var f=this,b=a,c=a,g=a;return b=k(h,"future")?1:-1,c=f.$build_offset_time(d.$begin(),e,b),g=f.$build_offset_time(d.$end(),e,b),i('Span').$new(c,g)}),c(m,'$width',function(){return i('YEAR_SECONDS')}),c(m,'$to_s',function c(){var e=c.$$p||a,d=this;return c.$$p=null,b(h(d,g(d,'to_s',c,!1,!0),'to_s',[],e),"-year")}),m.$private(),c(m,'$build_offset_time',function(c,j,k){var l=this,g=a,e=a,h=a;return g=b(c.$year(),f(j,k)),e=l.$month_days(g,c.$month()),h=d(r(c.$day(),e))?e:c.$day(),i('Chronic').$construct(g,c.$month(),h,c.$hour(),c.$min(),c.$sec())}),c(m,'$month_days',function(b,a){return d(p('Date')['$leap?'](b))?p(i('RepeaterMonth'),'MONTH_DAYS_LEAP')['$[]'](l(a,1)):p(i('RepeaterMonth'),'MONTH_DAYS')['$[]'](l(a,1))})}(i[0],t('Repeater'),i)}(i[0],i),function(l,n){var r=q(l,'Chronic'),i=[r].concat(n),s=e.$r(i);return function(t,r,s){var l=j(t,r,'RepeaterSeason'),q=[l].concat(s),i=e.$r(q),n=l.$$prototype;return n.now=n.next_season_end=n.next_season_start=a,o(q[0],'SEASON_SECONDS',7862400),o(q[0],'SEASONS',new Map([["spring",i('Season').$new(i('MiniDate').$new(3,20),i('MiniDate').$new(6,20))],["summer",i('Season').$new(i('MiniDate').$new(6,21),i('MiniDate').$new(9,22))],["autumn",i('Season').$new(i('MiniDate').$new(9,23),i('MiniDate').$new(12,21))],["winter",i('Season').$new(i('MiniDate').$new(12,22),i('MiniDate').$new(3,19))]])),c(l,'$initialize',function c(e,d){var f=c.$$p||a,b=this;return c.$$p=null,d==null&&(d=new Map),h(b,g(b,'initialize',c,!1,!0),'initialize',[e,d],f),b.next_season_start=a,b.next_season_end=a},-2),c(l,'$next',function c(e){var j=c.$$p||a,b=this,d=a,f=a;return c.$$p=null,h(b,g(b,'next',c,!1,!0),'next',[e],j),d=k(e,"future")?1:-1,f=i('Season').$find_next_season(b.$find_current_season(i('MiniDate').$from_time(b.now)),d),b.$find_next_season_span(d,f)}),c(l,'$this',function o(l){var q=o.$$p||a,c=this,d=a,e=a,j=a,n=a,m=a;switch(o.$$p=null,l==null&&(l="future"),h(c,g(c,'this',o,!1,!0),'this',[l],q),d=k(l,"future")?1:-1,e=i('Chronic').$construct(c.now.$year(),c.now.$month(),c.now.$day()),j=c.$find_current_season(i('MiniDate').$from_time(c.now)),l.valueOf()){case"past":n=b(e,f(d,c.$num_seconds_til_start(j,d))),m=e;break;case"future":n=b(e,p(i('RepeaterDay'),'DAY_SECONDS')),m=b(e,f(d,c.$num_seconds_til_end(j,d)));break;case"none":n=b(e,f(d,c.$num_seconds_til_start(j,d))),m=b(e,f(d,c.$num_seconds_til_end(j,d)));break;default:a}return c.$construct_season(n,m)},-1),c(l,'$offset',function(a,b,c){var d=this;return i('Span').$new(d.$offset_by(a.$begin(),b,c),d.$offset_by(a.$end(),b,c))}),c(l,'$offset_by',function(d,e,g){var c=a;return c=k(g,"future")?1:-1,b(d,f(f(e,c),i('SEASON_SECONDS')))}),c(l,'$width',function(){return i('SEASON_SECONDS')}),c(l,'$to_s',function c(){var e=c.$$p||a,d=this;return c.$$p=null,b(h(d,g(d,'to_s',c,!1,!0),'to_s',[],e),"-season")}),l.$private(),c(l,'$find_next_season_span',function(c,e){var a=this;return d(a.next_season_start)||d(a.next_season_end)||(a.next_season_start=i('Chronic').$construct(a.now.$year(),a.now.$month(),a.now.$day()),a.next_season_end=i('Chronic').$construct(a.now.$year(),a.now.$month(),a.now.$day())),a.next_season_start=b(a.next_season_start,f(c,a.$num_seconds_til_start(e,c))),a.next_season_end=b(a.next_season_end,f(c,a.$num_seconds_til_end(e,c))),a.$construct_season(a.next_season_start,a.next_season_end)}),c(l,'$find_current_season',function(b){return m(["spring","summer","autumn","winter"],'find',[],function(c){return c==null&&(c=a),b['$is_between?'](i('SEASONS')['$[]'](c).$start(),i('SEASONS')['$[]'](c).$end())})}),c(l,'$num_seconds_til',function(h,j){var e=this,g=a,c=a;for(g=i('Chronic').$construct(e.now.$year(),e.now.$month(),e.now.$day()),c=0;!d(i('MiniDate').$from_time(b(g,f(j,c)))['$equals?'](h));)c=b(c,p(i('RepeaterDay'),'DAY_SECONDS'));return c}),c(l,'$num_seconds_til_start',function(a,b){var c=this;return c.$num_seconds_til(i('SEASONS')['$[]'](a).$start(),b)}),c(l,'$num_seconds_til_end',function(a,b){var c=this;return c.$num_seconds_til(i('SEASONS')['$[]'](a).$end(),b)}),c(l,'$construct_season',function(a,b){return i('Span').$new(i('Chronic').$construct(a.$year(),a.$month(),a.$day()),i('Chronic').$construct(b.$year(),b.$month(),b.$day()))})}(i[0],s('Repeater'),i)}(i[0],i),function(g,h){var i=q(g,'Chronic'),d=[i].concat(h),l=e.$r(d);return function(n,l,m){var d=j(n,l,'RepeaterSeasonName'),h=[d].concat(m),g=e.$r(h),i=d.$$prototype;return i.type=i.now=a,o(h[0],'SEASON_SECONDS',7862400),o(h[0],'DAY_SECONDS',86400),c(d,'$next',function(d){var b=this,c=a;return c=k(d,"future")?1:-1,b.$find_next_season_span(c,b.type)}),c(d,'$this',function(i){var c=this,d=a,e=a,j=a,h=a,n=a,l=a,m=a;switch(i==null&&(i="future"),d=k(i,"future")?1:-1,e=g('Chronic').$construct(c.now.$year(),c.now.$month(),c.now.$day()),j=b(e,f(d,c.$num_seconds_til_start(c.type,d))),h=b(e,f(d,c.$num_seconds_til_end(c.type,d))),n=c.$find_current_season(g('MiniDate').$from_time(c.now)),i.valueOf()){case"past":l=j,m=k(n,c.type)?e:h;break;case"future":l=k(n,c.type)?b(e,p(g('RepeaterDay'),'DAY_SECONDS')):j,m=h;break;case"none":l=j,m=h;break;default:a}return c.$construct_season(l,m)},-1),c(d,'$offset',function(a,b,c){var d=this;return g('Span').$new(d.$offset_by(a.$begin(),b,c),d.$offset_by(a.$end(),b,c))}),c(d,'$offset_by',function(d,e,h){var c=a;return c=k(h,"future")?1:-1,b(d,f(f(e,c),p(g('RepeaterYear'),'YEAR_SECONDS')))})}(d[0],l('RepeaterSeason'),d)}(i[0],i),function(m,n){var s=q(m,'Chronic'),i=[s].concat(n),t=e.$r(i);return function(u,s,t){var m=j(u,s,'RepeaterMonth'),n=[m].concat(t),i=e.$r(n),q=m.$$prototype;return q.current_month_start=q.now=a,o(n[0],'MONTH_SECONDS',2592e3),o(n[0],'YEAR_MONTHS',12),o(n[0],'MONTH_DAYS',[31,28,31,30,31,30,31,31,30,31,30,31]),o(n[0],'MONTH_DAYS_LEAP',[31,29,31,30,31,30,31,31,30,31,30,31]),c(m,'$initialize',function b(e,c){var f=b.$$p||a,d=this;return b.$$p=null,c==null&&(c=new Map),h(d,g(d,'initialize',b,!1,!0),'initialize',[e,c],f),d.current_month_start=a},-2),c(m,'$next',function e(f){var j=e.$$p||a,c=this;return e.$$p=null,h(c,g(c,'next',e,!1,!0),'next',[f],j),d(c.current_month_start)?c.current_month_start=c.$offset_by(i('Chronic').$construct(c.current_month_start.$year(),c.current_month_start.$month()),1,f):c.current_month_start=c.$offset_by(i('Chronic').$construct(c.now.$year(),c.now.$month()),1,f),i('Span').$new(c.current_month_start,i('Chronic').$construct(c.current_month_start.$year(),b(c.current_month_start.$month(),1)))}),c(m,'$this',function j(d){var k=j.$$p||a,c=this,e=a,f=a;switch(j.$$p=null,d==null&&(d="future"),h(c,g(c,'this',j,!1,!0),'this',[d],k),d.valueOf()){case"future":e=i('Chronic').$construct(c.now.$year(),c.now.$month(),b(c.now.$day(),1)),f=c.$offset_by(i('Chronic').$construct(c.now.$year(),c.now.$month()),1,"future");break;case"past":e=i('Chronic').$construct(c.now.$year(),c.now.$month()),f=i('Chronic').$construct(c.now.$year(),c.now.$month(),c.now.$day());break;case"none":e=i('Chronic').$construct(c.now.$year(),c.now.$month()),f=c.$offset_by(i('Chronic').$construct(c.now.$year(),c.now.$month()),1,"future");break;default:a}return i('Span').$new(e,f)},-1),c(m,'$offset',function(a,b,c){var d=this;return i('Span').$new(d.$offset_by(a.$begin(),b,c),d.$offset_by(a.$end(),b,c))}),c(m,'$offset_by',function(c,o,q){var s=this,j=a,m=a,n=a,g=a,e=a,h=a,p=a;return j=k(q,"future")?1:-1,m=v(f(j,o),i('YEAR_MONTHS')),n=f(j,o)['$%'](i('YEAR_MONTHS')),g=b(c.$year(),m),e=b(c.$month(),n),d(r(e,i('YEAR_MONTHS')))&&(g=b(g,1),e=l(e,i('YEAR_MONTHS'))),h=s.$month_days(g,e),p=d(r(c.$day(),h))?h:c.$day(),i('Chronic').$construct(g,e,p,c.$hour(),c.$min(),c.$sec())}),c(m,'$width',function(){return i('MONTH_SECONDS')}),c(m,'$to_s',function c(){var e=c.$$p||a,d=this;return c.$$p=null,b(h(d,g(d,'to_s',c,!1,!0),'to_s',[],e),"-month")}),m.$private(),c(m,'$month_days',function(b,a){return d(p('Date')['$leap?'](b))?i('MONTH_DAYS_LEAP')['$[]'](l(a,1)):i('MONTH_DAYS')['$[]'](l(a,1))})}(i[0],t('Repeater'),i)}(i[0],i),function(i,m){var n=q(i,'Chronic'),f=[n].concat(m),p=e.$r(f);return function(s,p,q){var i=j(s,p,'RepeaterMonthName'),n=[i].concat(q),f=e.$r(n),m=i.$$prototype;return m.current_month_begin=m.now=m.index=m.type=a,o(n[0],'MONTH_SECONDS',2592e3),o(n[0],'MONTHS',new Map([["january",1],["february",2],["march",3],["april",4],["may",5],["june",6],["july",7],["august",8],["september",9],["october",10],["november",11],["december",12]])),c(i,'$initialize',function b(e,c){var f=b.$$p||a,d=this;return b.$$p=null,c==null&&(c=new Map),h(d,g(d,'initialize',b,!1,!0),'initialize',[e,c],f),d.current_month_begin=a},-2),c(i,'$next',function e(i){var q=e.$$p||a,c=this,p=a,m=a,n=a,o=a,j=a;if(e.$$p=null,h(c,g(c,'next',e,!1,!0),'next',[i],q),d(c.current_month_begin))switch(i.valueOf()){case"future":c.current_month_begin=f('Chronic').$construct(b(c.current_month_begin.$year(),1),c.current_month_begin.$month());break;case"past":c.current_month_begin=f('Chronic').$construct(l(c.current_month_begin.$year(),1),c.current_month_begin.$month());break;default:a}else{switch(i.valueOf()){case"future":d(y(c.now.$month(),c.$index()))?c.current_month_begin=f('Chronic').$construct(c.now.$year(),c.$index()):d(r(c.now.$month(),c.$index()))&&(c.current_month_begin=f('Chronic').$construct(b(c.now.$year(),1),c.$index()));break;case"none":d(u(c.now.$month(),c.$index()))?c.current_month_begin=f('Chronic').$construct(c.now.$year(),c.$index()):d(r(c.now.$month(),c.$index()))&&(c.current_month_begin=f('Chronic').$construct(b(c.now.$year(),1),c.$index()));break;case"past":d(t(c.now.$month(),c.$index()))?c.current_month_begin=f('Chronic').$construct(c.now.$year(),c.$index()):d(y(c.now.$month(),c.$index()))&&(c.current_month_begin=f('Chronic').$construct(l(c.now.$year(),1),c.$index()));break;default:a}d(p=c.current_month_begin)?p:c.$raise("Current month should be set by now")}return m=c.current_month_begin.$year(),n=c.current_month_begin.$month(),k(n,12)?(o=b(m,1),j=1):(o=m,j=b(n,1)),f('Span').$new(c.current_month_begin,f('Chronic').$construct(o,j))}),c(i,'$this',function d(b){var e=d.$$p||a,c=this;switch(d.$$p=null,b==null&&(b="future"),h(c,g(c,'this',d,!1,!0),'this',[b],e),b.valueOf()){case"past":return c.$next(b);case"future":case"none":return c.$next("none");default:return a}},-1),c(i,'$width',function(){return f('MONTH_SECONDS')}),c(i,'$index',function(){var b=this,c=a;return b.index=d(c=b.index)?c:f('MONTHS')['$[]'](b.type)}),c(i,'$to_s',function c(){var e=c.$$p||a,d=this;return c.$$p=null,b(b(h(d,g(d,'to_s',c,!1,!0),'to_s',[],e),"-monthname-"),d.type.$to_s())})}(f[0],p('Repeater'),f)}(i[0],i),function(l,n){var r=q(l,'Chronic'),i=[r].concat(n),s=e.$r(i);return function(t,r,s){var l=j(t,r,'RepeaterFortnight'),q=[l].concat(s),i=e.$r(q),n=l.$$prototype;return n.current_fortnight_start=n.now=a,o(q[0],'FORTNIGHT_SECONDS',1209600),c(l,'$initialize',function b(e,c){var f=b.$$p||a,d=this;return b.$$p=null,c==null&&(c=new Map),h(d,g(d,'initialize',b,!1,!0),'initialize',[e,c],f),d.current_fortnight_start=a},-2),c(l,'$next',function j(l){var r=j.$$p||a,c=this,n=a,e=a,o=a,q=a;if(j.$$p=null,h(c,g(c,'next',j,!1,!0),'next',[l],r),d(c.current_fortnight_start))n=k(l,"future")?1:-1,c.current_fortnight_start=b(c.current_fortnight_start,f(n,i('FORTNIGHT_SECONDS')));else switch(l.valueOf()){case"future":e=i('RepeaterDayName').$new("sunday"),e['$start='](c.now),o=e.$next("future"),c.current_fortnight_start=o.$begin();break;case"past":e=i('RepeaterDayName').$new("sunday"),e['$start='](b(c.now,p(i('RepeaterDay'),'DAY_SECONDS'))),m(2,'times',[],function(){return e.$next("past")}),q=e.$next("past"),c.current_fortnight_start=q.$begin();break;default:a}return i('Span').$new(c.current_fortnight_start,b(c.current_fortnight_start,i('FORTNIGHT_SECONDS')))}),c(l,'$this',function l(e){var o=l.$$p||a,c=this,f=a,d=a,n=a,j=a,m=a;switch(l.$$p=null,e==null&&(e="future"),h(c,g(c,'this',l,!1,!0),'this',[e],o),k(e,"none")&&(e="future"),e.valueOf()){case"future":return f=b(i('Chronic').$construct(c.now.$year(),c.now.$month(),c.now.$day(),c.now.$hour()),p(i('RepeaterHour'),'HOUR_SECONDS')),d=i('RepeaterDayName').$new("sunday"),d['$start='](c.now),d.$this("future"),n=d.$this("future"),j=n.$begin(),i('Span').$new(f,j);case"past":return j=i('Chronic').$construct(c.now.$year(),c.now.$month(),c.now.$day(),c.now.$hour()),d=i('RepeaterDayName').$new("sunday"),d['$start='](c.now),m=d.$next("past"),f=m.$begin(),i('Span').$new(f,j);default:return a}},-1),c(l,'$offset',function(d,e,g){var c=a;return c=k(g,"future")?1:-1,b(d,f(f(c,e),i('FORTNIGHT_SECONDS')))}),c(l,'$width',function(){return i('FORTNIGHT_SECONDS')}),c(l,'$to_s',function c(){var e=c.$$p||a,d=this;return c.$$p=null,b(h(d,g(d,'to_s',c,!1,!0),'to_s',[],e),"-fortnight")})}(i[0],s('Repeater'),i)}(i[0],i),function(l,m){var n=q(l,'Chronic'),i=[n].concat(m),r=e.$r(i);return function(s,q,r){var l=j(s,q,'RepeaterWeek'),n=[l].concat(r),i=e.$r(n),m=l.$$prototype;return m.current_week_start=m.now=a,o(n[0],'WEEK_SECONDS',604800),c(l,'$initialize',function b(e,c){var f=b.$$p||a,d=this;return b.$$p=null,c==null&&(c=new Map),h(d,g(d,'initialize',b,!1,!0),'initialize',[e,c],f),d.current_week_start=a},-2),c(l,'$next',function j(l){var q=j.$$p||a,c=this,m=a,e=a,n=a,o=a;if(j.$$p=null,h(c,g(c,'next',j,!1,!0),'next',[l],q),d(c.current_week_start))m=k(l,"future")?1:-1,c.current_week_start=b(c.current_week_start,f(m,i('WEEK_SECONDS')));else switch(l.valueOf()){case"future":e=i('RepeaterDayName').$new("sunday"),e['$start='](c.now),n=e.$next("future"),c.current_week_start=n.$begin();break;case"past":e=i('RepeaterDayName').$new("sunday"),e['$start='](b(c.now,p(i('RepeaterDay'),'DAY_SECONDS'))),e.$next("past"),o=e.$next("past"),c.current_week_start=o.$begin();break;default:a}return i('Span').$new(c.current_week_start,b(c.current_week_start,i('WEEK_SECONDS')))}),c(l,'$this',function l(f){var n=l.$$p||a,c=this,e=a,d=a,m=a,k=a,j=a;switch(l.$$p=null,f==null&&(f="future"),h(c,g(c,'this',l,!1,!0),'this',[f],n),f.valueOf()){case"future":return e=b(i('Chronic').$time_class().$local(c.now.$year(),c.now.$month(),c.now.$day(),c.now.$hour()),p(i('RepeaterHour'),'HOUR_SECONDS')),d=i('RepeaterDayName').$new("sunday"),d['$start='](c.now),m=d.$this("future"),k=m.$begin(),i('Span').$new(e,k);case"past":return k=i('Chronic').$time_class().$local(c.now.$year(),c.now.$month(),c.now.$day(),c.now.$hour()),d=i('RepeaterDayName').$new("sunday"),d['$start='](c.now),j=d.$next("past"),e=j.$begin(),i('Span').$new(e,k);case"none":return d=i('RepeaterDayName').$new("sunday"),d['$start='](c.now),j=d.$next("past"),e=j.$begin(),i('Span').$new(e,b(e,i('WEEK_SECONDS')));default:return a}},-1),c(l,'$offset',function(d,e,g){var c=a;return c=k(g,"future")?1:-1,b(d,f(f(c,e),i('WEEK_SECONDS')))}),c(l,'$width',function(){return i('WEEK_SECONDS')}),c(l,'$to_s',function c(){var e=c.$$p||a,d=this;return c.$$p=null,b(h(d,g(d,'to_s',c,!1,!0),'to_s',[],e),"-week")})}(i[0],r('Repeater'),i)}(i[0],i),function(m,n){var r=q(m,'Chronic'),i=[r].concat(n),s=e.$r(i);return function(t,r,s){var m=j(t,r,'RepeaterWeekend'),q=[m].concat(s),i=e.$r(q),n=m.$$prototype;return n.current_week_start=n.now=a,o(q[0],'WEEKEND_SECONDS',172800),c(m,'$initialize',function b(e,c){var f=b.$$p||a,d=this;return b.$$p=null,c==null&&(c=new Map),h(d,g(d,'initialize',b,!1,!0),'initialize',[e,c],f),d.current_week_start=a},-2),c(m,'$next',function j(l){var q=j.$$p||a,c=this,m=a,e=a,n=a,o=a;if(j.$$p=null,h(c,g(c,'next',j,!1,!0),'next',[l],q),d(c.current_week_start))m=k(l,"future")?1:-1,c.current_week_start=b(c.current_week_start,f(m,p(i('RepeaterWeek'),'WEEK_SECONDS')));else switch(l.valueOf()){case"future":e=i('RepeaterDayName').$new("saturday"),e['$start='](c.now),n=e.$next("future"),c.current_week_start=n.$begin();break;case"past":e=i('RepeaterDayName').$new("saturday"),e['$start='](b(c.now,p(i('RepeaterDay'),'DAY_SECONDS'))),o=e.$next("past"),c.current_week_start=o.$begin();break;default:a}return i('Span').$new(c.current_week_start,b(c.current_week_start,i('WEEKEND_SECONDS')))}),c(m,'$this',function f(d){var l=f.$$p||a,e=this,c=a,j=a,k=a;switch(f.$$p=null,d==null&&(d="future"),h(e,g(e,'this',f,!1,!0),'this',[d],l),d.valueOf()){case"future":case"none":return c=i('RepeaterDayName').$new("saturday"),c['$start='](e.now),j=c.$this("future"),i('Span').$new(j.$begin(),b(j.$begin(),i('WEEKEND_SECONDS')));case"past":return c=i('RepeaterDayName').$new("saturday"),c['$start='](e.now),k=c.$this("past"),i('Span').$new(k.$begin(),b(k.$begin(),i('WEEKEND_SECONDS')));default:return a}},-1),c(m,'$offset',function(d,j,g){var h=a,e=a,c=a;return h=k(g,"future")?1:-1,e=i('RepeaterWeekend').$new("weekend"),e['$start='](d.$begin()),c=b(e.$next(g).$begin(),f(f(l(j,1),h),p(i('RepeaterWeek'),'WEEK_SECONDS'))),i('Span').$new(c,b(c,l(d.$end(),d.$begin())))}),c(m,'$width',function(){return i('WEEKEND_SECONDS')}),c(m,'$to_s',function c(){var e=c.$$p||a,d=this;return c.$$p=null,b(h(d,g(d,'to_s',c,!1,!0),'to_s',[],e),"-weekend")})}(i[0],s('Repeater'),i)}(i[0],i),function(l,n){var p=q(l,'Chronic'),i=[p].concat(n),r=e.$r(i);return function(s,q,r){var i=j(s,q,'RepeaterWeekday'),n=[i].concat(r),l=e.$r(n),p=i.$$prototype;return p.current_weekday_start=p.now=a,o(n[0],'DAY_SECONDS',86400),o(n[0],'DAYS',new Map([["sunday",0],["monday",1],["tuesday",2],["wednesday",3],["thursday",4],["friday",5],["saturday",6]])),c(i,'$initialize',function b(e,c){var f=b.$$p||a,d=this;return b.$$p=null,c==null&&(c=new Map),h(d,g(d,'initialize',b,!1,!0),'initialize',[e,c],f),d.current_weekday_start=a},-2),c(i,'$next',function i(j){var n=i.$$p||a,c=this,e=a;if(i.$$p=null,h(c,g(c,'next',i,!1,!0),'next',[j],n),e=k(j,"future")?1:-1,d(c.current_weekday_start))(function(){try{var g=x('break');return m(c,'loop',[],function h(){var c=h.$$s==null?this:h.$$s;if(c.current_weekday_start==null&&(c.current_weekday_start=a),c.current_weekday_start=b(c.current_weekday_start,f(e,l('DAY_SECONDS'))),d(c['$is_weekday?'](c.current_weekday_start.$wday())))g.$throw(a,h.$$is_lambda);else return a},{$$s:c})}catch(a){if(a===g)return a.$v;throw a}finally{g.is_orphan=!0}})();else for(c.current_weekday_start=l('Chronic').$construct(c.now.$year(),c.now.$month(),c.now.$day()),c.current_weekday_start=b(c.current_weekday_start,f(e,l('DAY_SECONDS')));!d(c['$is_weekday?'](c.current_weekday_start.$wday()));)c.current_weekday_start=b(c.current_weekday_start,f(e,l('DAY_SECONDS')));return l('Span').$new(c.current_weekday_start,b(c.current_weekday_start,l('DAY_SECONDS')))}),c(i,'$this',function d(b){var e=d.$$p||a,c=this;switch(d.$$p=null,b==null&&(b="future"),h(c,g(c,'this',d,!1,!0),'this',[b],e),b.valueOf()){case"past":return c.$next("past");case"future":case"none":return c.$next("future");default:return a}},-1),c(i,'$offset',function(h,i,j){var m=this,g=a,e=a,c=a;for(g=k(j,"future")?1:-1,e=0,c=0;!k(e,i);)c=b(c,f(g,l('DAY_SECONDS'))),d(m['$is_weekday?'](b(h.$begin(),c).$wday()))&&(e=b(e,1));return b(h,c)}),c(i,'$width',function(){return l('DAY_SECONDS')}),c(i,'$to_s',function c(){var e=c.$$p||a,d=this;return c.$$p=null,b(h(d,g(d,'to_s',c,!1,!0),'to_s',[],e),"-weekday")}),i.$private(),c(i,'$is_weekend?',function(b){var c=this,e=a;return d(e=b['$=='](c.$symbol_to_number("saturday")))?e:b['$=='](c.$symbol_to_number("sunday"))}),c(i,'$is_weekday?',function(a){var b=this;return b['$is_weekend?'](a)['$!']()}),c(i,'$symbol_to_number',function(c){var e=this,b=a;return d(b=l('DAYS')['$[]'](c))?b:e.$raise("Invalid symbol specified")})}(i[0],r('Repeater'),i)}(i[0],i),function(l,m){var n=q(l,'Chronic'),i=[n].concat(m),p=e.$r(i);return function(r,p,q){var l=j(r,p,'RepeaterDay'),n=[l].concat(q),i=e.$r(n),m=l.$$prototype;return m.current_day_start=m.now=a,o(n[0],'DAY_SECONDS',86400),c(l,'$initialize',function b(e,c){var f=b.$$p||a,d=this;return b.$$p=null,c==null&&(c=new Map),h(d,g(d,'initialize',b,!1,!0),'initialize',[e,c],f),d.current_day_start=a},-2),c(l,'$next',function e(j){var m=e.$$p||a,c=this,l=a;return e.$$p=null,h(c,g(c,'next',e,!1,!0),'next',[j],m),d(c.current_day_start)||(c.current_day_start=i('Chronic').$time_class().$local(c.now.$year(),c.now.$month(),c.now.$day())),l=k(j,"future")?1:-1,c.current_day_start=b(c.current_day_start,f(l,i('DAY_SECONDS'))),i('Span').$new(c.current_day_start,b(c.current_day_start,i('DAY_SECONDS')))}),c(l,'$this',function j(d){var k=j.$$p||a,c=this,e=a,f=a;switch(j.$$p=null,d==null&&(d="future"),h(c,g(c,'this',j,!1,!0),'this',[d],k),d.valueOf()){case"future":e=i('Chronic').$construct(c.now.$year(),c.now.$month(),c.now.$day(),c.now.$hour()),f=b(i('Chronic').$construct(c.now.$year(),c.now.$month(),c.now.$day()),i('DAY_SECONDS'));break;case"past":e=i('Chronic').$construct(c.now.$year(),c.now.$month(),c.now.$day()),f=i('Chronic').$construct(c.now.$year(),c.now.$month(),c.now.$day(),c.now.$hour());break;case"none":e=i('Chronic').$construct(c.now.$year(),c.now.$month(),c.now.$day()),f=b(i('Chronic').$construct(c.now.$year(),c.now.$month(),c.now.$day()),i('DAY_SECONDS'));break;default:a}return i('Span').$new(e,f)},-1),c(l,'$offset',function(d,e,g){var c=a;return c=k(g,"future")?1:-1,b(d,f(f(c,e),i('DAY_SECONDS')))}),c(l,'$width',function(){return i('DAY_SECONDS')}),c(l,'$to_s',function c(){var e=c.$$p||a,d=this;return c.$$p=null,b(h(d,g(d,'to_s',c,!1,!0),'to_s',[],e),"-day")})}(i[0],p('Repeater'),i)}(i[0],i),function(l,m){var n=q(l,'Chronic'),i=[n].concat(m),r=e.$r(i);return function(s,q,r){var i=j(s,q,'RepeaterDayName'),n=[i].concat(r),l=e.$r(n),m=i.$$prototype;return m.current_date=m.now=m.type=a,o(n[0],'DAY_SECONDS',86400),c(i,'$initialize',function b(e,c){var f=b.$$p||a,d=this;return b.$$p=null,c==null&&(c=new Map),h(d,g(d,'initialize',b,!1,!0),'initialize',[e,c],f),d.current_date=a},-2),c(i,'$next',function j(m){var o=j.$$p||a,c=this,i=a,n=a,e=a;if(j.$$p=null,h(c,g(c,'next',j,!1,!0),'next',[m],o),i=k(m,"future")?1:-1,d(c.current_date))c.current_date=b(c.current_date,f(i,7));else for(c.current_date=p('Date').$new(c.now.$year(),c.now.$month(),c.now.$day()),c.current_date=b(c.current_date,i),n=c.$symbol_to_number(c.type);D(c.current_date.$wday(),n);)c.current_date=b(c.current_date,i);return e=c.current_date.$succ(),l('Span').$new(l('Chronic').$construct(c.current_date.$year(),c.current_date.$month(),c.current_date.$day()),l('Chronic').$construct(e.$year(),e.$month(),e.$day()))}),c(i,'$this',function c(b){var e=c.$$p||a,d=this;return c.$$p=null,b==null&&(b="future"),h(d,g(d,'this',c,!1,!0),'this',[b],e),k(b,"none")&&(b="future"),d.$next(b)},-1),c(i,'$width',function(){return l('DAY_SECONDS')}),c(i,'$to_s',function c(){var e=c.$$p||a,d=this;return c.$$p=null,b(b(h(d,g(d,'to_s',c,!1,!0),'to_s',[],e),"-dayname-"),d.type.$to_s())}),i.$private(),c(i,'$symbol_to_number',function(e){var f=this,b=a,c=a;return b=new Map([["sunday",0],["monday",1],["tuesday",2],["wednesday",3],["thursday",4],["friday",5],["saturday",6]]),d(c=b['$[]'](e))?c:f.$raise("Invalid symbol specified")})}(i[0],r('Repeater'),i)}(i[0],i),function(m,n){var s=q(m,'Chronic'),i=[s].concat(n),t=e.$r(i);return function(u,s,t){var m=j(u,s,'RepeaterDayPortion'),q=[m].concat(t),i=e.$r(q),n=m.$$prototype;return n.type=n.range=n.current_span=n.now=a,o(q[0],'PORTIONS',new Map([["am",e.Range.$new(0,l(f(f(12,60),60),1),!1)],["pm",e.Range.$new(f(f(12,60),60),l(f(f(24,60),60),1),!1)],["morning",e.Range.$new(f(f(6,60),60),f(f(12,60),60),!1)],["afternoon",e.Range.$new(f(f(13,60),60),f(f(17,60),60),!1)],["evening",e.Range.$new(f(f(17,60),60),f(f(20,60),60),!1)],["night",e.Range.$new(f(f(20,60),60),f(f(24,60),60),!1)]])),c(m,'$initialize',function l(j,m){var n=l.$$p||a,c=this,k=a;return l.$$p=null,m==null&&(m=new Map),h(c,g(c,'initialize',l,!1,!0),'initialize',[j,m],n),c.current_span=a,d(j['$kind_of?'](i('Integer')))?c.range=e.Range.$new(f(f(c.type,60),60),f(f(b(c.type,12),60),60),!1):(c.range=i('PORTIONS')['$[]'](j),d(k=c.range)?k:c.$raise("Invalid type '"+j+"' for RepeaterDayPortion")),d(k=c.range)?k:c.$raise("Range should have been set by now")},-2),c(m,'$next',function j(f){var t=j.$$p||a,c=this,m=a,n=a,o=a,p=a,k=a,e=a,q=a,s=a;if(j.$$p=null,h(c,g(c,'next',j,!1,!0),'next',[f],t),d(c.current_span))return m=B("future",n=f)?1:B("past",n)?-1:a,o=i('Chronic').$construct(c.current_span.$begin().$year(),c.current_span.$begin().$month(),b(c.current_span.$begin().$day(),m),c.current_span.$begin().$hour(),c.current_span.$begin().$min(),c.current_span.$begin().$sec()),p=i('Chronic').$construct(c.current_span.$end().$year(),c.current_span.$end().$month(),b(c.current_span.$end().$day(),m),c.current_span.$end().$hour(),c.current_span.$end().$min(),c.current_span.$end().$sec()),c.current_span=i('Span').$new(o,p);if(k=l(c.now,i('Chronic').$construct(c.now.$year(),c.now.$month(),c.now.$day())),d(y(k,c.range.$begin())))switch(f.valueOf()){case"future":e=b(i('Chronic').$construct(c.now.$year(),c.now.$month(),c.now.$day()),c.range.$begin());break;case"past":e=b(i('Chronic').$construct(c.now.$year(),c.now.$month(),l(c.now.$day(),1)),c.range.$begin());break;default:a}else if(d(r(k,c.range.$end())))switch(f.valueOf()){case"future":e=b(i('Chronic').$construct(c.now.$year(),c.now.$month(),b(c.now.$day(),1)),c.range.$begin());break;case"past":e=b(i('Chronic').$construct(c.now.$year(),c.now.$month(),c.now.$day()),c.range.$begin());break;default:a}else switch(f.valueOf()){case"future":e=b(i('Chronic').$construct(c.now.$year(),c.now.$month(),b(c.now.$day(),1)),c.range.$begin());break;case"past":e=b(i('Chronic').$construct(c.now.$year(),c.now.$month(),l(c.now.$day(),1)),c.range.$begin());break;default:a}return q=l(c.range.$end(),c.range.$begin()),s=c.$construct_date_from_reference_and_offset(e,q),c.current_span=i('Span').$new(e,s)}),c(m,'$this',function d(e){var k=d.$$p||a,c=this,f=a,j=a;return d.$$p=null,e==null&&(e="future"),h(c,g(c,'this',d,!1,!0),'this',[e],k),f=b(i('Chronic').$construct(c.now.$year(),c.now.$month(),c.now.$day()),c.range.$begin()),j=c.$construct_date_from_reference_and_offset(f),c.current_span=i('Span').$new(f,j)},-1),c(m,'$offset',function(h,j,d){var e=this,g=a,c=a;return e.now=h.$begin(),g=e.$next(d),c=k(d,"future")?1:-1,b(g,f(f(c,l(j,1)),p(i('RepeaterDay'),'DAY_SECONDS')))}),c(m,'$width',function(){var b=this,c=a;return d(c=b.range)?c:b.$raise("Range has not been set"),d(b.current_span)?b.current_span.$width():d(b.type['$kind_of?'](i('Integer')))?f(f(12,60),60):l(b.range.$end(),b.range.$begin())}),c(m,'$to_s',function c(){var e=c.$$p||a,d=this;return c.$$p=null,b(b(h(d,g(d,'to_s',c,!1,!0),'to_s',[],e),"-dayportion-"),d.type.$to_s())}),m.$private(),c(m,'$construct_date_from_reference_and_offset',function(e,h){var k=this,g=a,m=a,c=a,j=a,n=a;return h==null&&(h=a),g=d(m=h)?m:l(k.range.$end(),k.range.$begin()),c=l(g,f(12,60))['$%'](60),j=v(l(g,c),60)['$%'](60),n=b(v(l(l(g,j),c),f(60,60)),e.$hour()['$%'](24)),i('Chronic').$construct(e.$year(),e.$month(),e.$day(),n,j,c)},-2)}(i[0],t('Repeater'),i)}(i[0],i),function(m,n){var p=q(m,'Chronic'),i=[p].concat(n),r=e.$r(i);return function(s,q,r){var m=j(s,q,'RepeaterHour'),p=[m].concat(r),i=e.$r(p),n=m.$$prototype;return n.current_hour_start=n.now=a,o(p[0],'HOUR_SECONDS',3600),c(m,'$initialize',function b(e,c){var f=b.$$p||a,d=this;return b.$$p=null,c==null&&(c=new Map),h(d,g(d,'initialize',b,!1,!0),'initialize',[e,c],f),d.current_hour_start=a},-2),c(m,'$next',function e(j){var n=e.$$p||a,c=this,m=a;if(e.$$p=null,h(c,g(c,'next',e,!1,!0),'next',[j],n),d(c.current_hour_start))m=k(j,"future")?1:-1,c.current_hour_start=b(c.current_hour_start,f(m,i('HOUR_SECONDS')));else switch(j.valueOf()){case"future":c.current_hour_start=i('Chronic').$construct(c.now.$year(),c.now.$month(),c.now.$day(),b(c.now.$hour(),1));break;case"past":c.current_hour_start=i('Chronic').$construct(c.now.$year(),c.now.$month(),c.now.$day(),l(c.now.$hour(),1));break;default:a}return i('Span').$new(c.current_hour_start,b(c.current_hour_start,i('HOUR_SECONDS')))}),c(m,'$this',function j(e){var k=j.$$p||a,c=this,d=a,f=a;switch(j.$$p=null,e==null&&(e="future"),h(c,g(c,'this',j,!1,!0),'this',[e],k),e.valueOf()){case"future":d=i('Chronic').$construct(c.now.$year(),c.now.$month(),c.now.$day(),c.now.$hour(),b(c.now.$min(),1)),f=i('Chronic').$construct(c.now.$year(),c.now.$month(),c.now.$day(),b(c.now.$hour(),1));break;case"past":d=i('Chronic').$construct(c.now.$year(),c.now.$month(),c.now.$day(),c.now.$hour()),f=i('Chronic').$construct(c.now.$year(),c.now.$month(),c.now.$day(),c.now.$hour(),c.now.$min());break;case"none":d=i('Chronic').$construct(c.now.$year(),c.now.$month(),c.now.$day(),c.now.$hour()),f=b(d,i('HOUR_SECONDS'));break;default:a}return i('Span').$new(d,f)},-1),c(m,'$offset',function(d,e,g){var c=a;return c=k(g,"future")?1:-1,b(d,f(f(c,e),i('HOUR_SECONDS')))}),c(m,'$width',function(){return i('HOUR_SECONDS')}),c(m,'$to_s',function c(){var e=c.$$p||a,d=this;return c.$$p=null,b(h(d,g(d,'to_s',c,!1,!0),'to_s',[],e),"-hour")})}(i[0],r('Repeater'),i)}(i[0],i),function(m,n){var p=q(m,'Chronic'),i=[p].concat(n),r=e.$r(i);return function(s,q,r){var m=j(s,q,'RepeaterMinute'),p=[m].concat(r),i=e.$r(p),n=m.$$prototype;return n.current_minute_start=n.now=a,o(p[0],'MINUTE_SECONDS',60),c(m,'$initialize',function b(e,c){var f=b.$$p||a,d=this;return b.$$p=null,c==null&&(c=new Map),h(d,g(d,'initialize',b,!1,!0),'initialize',[e,c],f),d.current_minute_start=a},-2),c(m,'$next',function j(e){var n=j.$$p||a,c=this,m=a;if(j.$$p=null,e==null&&(e="future"),h(c,g(c,'next',j,!1,!0),'next',[e],n),d(c.current_minute_start))m=k(e,"future")?1:-1,c.current_minute_start=b(c.current_minute_start,f(m,i('MINUTE_SECONDS')));else switch(e.valueOf()){case"future":c.current_minute_start=i('Chronic').$construct(c.now.$year(),c.now.$month(),c.now.$day(),c.now.$hour(),b(c.now.$min(),1));break;case"past":c.current_minute_start=i('Chronic').$construct(c.now.$year(),c.now.$month(),c.now.$day(),c.now.$hour(),l(c.now.$min(),1));break;default:a}return i('Span').$new(c.current_minute_start,b(c.current_minute_start,i('MINUTE_SECONDS')))},-1),c(m,'$this',function j(d){var k=j.$$p||a,c=this,e=a,f=a;switch(j.$$p=null,d==null&&(d="future"),h(c,g(c,'this',j,!1,!0),'this',[d],k),d.valueOf()){case"future":e=c.now,f=i('Chronic').$construct(c.now.$year(),c.now.$month(),c.now.$day(),c.now.$hour(),c.now.$min());break;case"past":e=i('Chronic').$construct(c.now.$year(),c.now.$month(),c.now.$day(),c.now.$hour(),c.now.$min()),f=c.now;break;case"none":e=i('Chronic').$construct(c.now.$year(),c.now.$month(),c.now.$day(),c.now.$hour(),c.now.$min()),f=b(i('Chronic').$construct(c.now.$year(),c.now.$month(),c.now.$day(),c.now.$hour(),c.now.$min()),i('MINUTE_SECONDS'));break;default:a}return i('Span').$new(e,f)},-1),c(m,'$offset',function(d,e,g){var c=a;return c=k(g,"future")?1:-1,b(d,f(f(c,e),i('MINUTE_SECONDS')))}),c(m,'$width',function(){return i('MINUTE_SECONDS')}),c(m,'$to_s',function c(){var e=c.$$p||a,d=this;return c.$$p=null,b(h(d,g(d,'to_s',c,!1,!0),'to_s',[],e),"-minute")})}(i[0],r('Repeater'),i)}(i[0],i),function(l,m){var n=q(l,'Chronic'),i=[n].concat(m),p=e.$r(i);return function(r,p,q){var i=j(r,p,'RepeaterSecond'),n=[i].concat(q),l=e.$r(n),m=i.$$prototype;return m.second_start=m.now=a,o(n[0],'SECOND_SECONDS',1),c(i,'$initialize',function b(e,c){var f=b.$$p||a,d=this;return b.$$p=null,c==null&&(c=new Map),h(d,g(d,'initialize',b,!1,!0),'initialize',[e,c],f),d.second_start=a},-2),c(i,'$next',function i(e){var m=i.$$p||a,c=this,j=a;return i.$$p=null,e==null&&(e="future"),h(c,g(c,'next',i,!1,!0),'next',[e],m),j=k(e,"future")?1:-1,d(c.second_start)?c.second_start=b(c.second_start,f(l('SECOND_SECONDS'),j)):c.second_start=b(c.now,f(j,l('SECOND_SECONDS'))),l('Span').$new(c.second_start,b(c.second_start,l('SECOND_SECONDS')))},-1),c(i,'$this',function d(e){var f=d.$$p||a,c=this;return d.$$p=null,e==null&&(e="future"),h(c,g(c,'this',d,!1,!0),'this',[e],f),l('Span').$new(c.now,b(c.now,1))},-1),c(i,'$offset',function(d,e,g){var c=a;return c=k(g,"future")?1:-1,b(d,f(f(c,e),l('SECOND_SECONDS')))}),c(i,'$width',function(){return l('SECOND_SECONDS')}),c(i,'$to_s',function c(){var e=c.$$p||a,d=this;return c.$$p=null,b(h(d,g(d,'to_s',c,!1,!0),'to_s',[],e),"-second")})}(i[0],p('Repeater'),i)}(i[0],i),function(n,o){var p=q(n,'Chronic'),i=[p].concat(o),s=e.$r(i);return function(w,q,s){var i=j(w,q,'RepeaterTime'),p=[i].concat(s),o=e.$r(p),n=i.$$prototype;return n.options=n.current_time=n.now=n.type=a,function(n,i,k){var g=j(n,i,'Tick'),l=[g].concat(k),m=e.$r(l),h=g.$$prototype;return h.time=h.ambiguous=a,g.$attr_accessor("time"),c(g,'$initialize',function(c,a){var b=this;return a==null&&(a=!1),b.time=c,b.ambiguous=a},-2),c(g,'$ambiguous?',I("ambiguous")),c(g,'$*',function(b){var a=this;return m('Tick').$new(f(a.time,b),a.ambiguous)}),c(g,'$to_f',function(){var a=this;return a.time.$to_f()}),c(g,'$to_s',function(){var a=this;return b(a.time.$to_s(),d(a.ambiguous)?"?":"")})}(p[0],null,p),c(i,'$initialize',function(w,n){var h=this,c=a,m=a,j=a,i=a,g=a,p=a,q=a,s=a;return n==null&&(n=new Map),h.current_time=a,h.options=n,c=w.$split(":"),d(r(c.$count(),4))&&h.$raise(o('ArgumentError'),"Time cannot have more than 4 groups of ':'"),d(r(c.$first().$length(),2))&&k(c.$count(),1)&&(d(r(c.$first().$length(),4))&&(m=l(c.$first().$length(),2),c.$insert(1,c.$first()['$[]'](e.Range.$new(m,c.$first().$length(),!1))),c['$[]='](0,c.$first()['$[]'](e.Range.$new(0,l(m,1),!1)))),j=l(c.$first().$length(),2),c.$insert(1,c.$first()['$[]'](e.Range.$new(j,c.$first().$length(),!1))),c['$[]='](0,c.$first()['$[]'](e.Range.$new(0,l(j,1),!1)))),i=!1,g=c.$first().$to_i(),(d(h.options['$[]']("hours24")['$nil?']())||E(h.options['$[]']("hours24")['$nil?']())&&D(h.options['$[]']("hours24"),!0))&&((k(c.$first().$length(),1)&&d(r(g,0))||d(t(g,10))&&d(u(g,12))||k(h.options['$[]']("hours24"),!1)&&d(r(g,0)))&&(i=!0),k(g,12)&&d(i)&&(g=0)),g=f(g,f(60,60)),p=0,q=0,s=0,d(r(c.$count(),1))&&(p=f(c['$[]'](1).$to_i(),60)),d(r(c.$count(),2))&&(q=c['$[]'](2).$to_i()),d(r(c.$count(),3))&&(s=v(c['$[]'](3).$to_f(),10['$**'](c['$[]'](3).$length()))),h.type=o('Tick').$new(b(b(b(g,p),q),s),i)},-2),c(i,'$next',function q(v){var y=q.$$p||a,c=this,n=a,p=a,r=a,e=a,s=a,j=a,i=a,x=a,w=a;return q.$$p=null,h(c,g(c,'next',q,!1,!0),'next',[v],y),n=f(f(60,60),12),p=f(f(60,60),24),r=!1,d(c.current_time)||(r=!0,e=o('Chronic').$time_class().$local(c.now.$year(),c.now.$month(),c.now.$day()),s=l(e,p),j=b(e,p),i=l(e.$gmt_offset(),j.$gmt_offset()),j=b(j,i),m(c,'catch',["done"],function f(){var c=f.$$s==null?this:f.$$s;return c.type==null&&(c.type=a),k(v,"future")?d(c.type['$ambiguous?']())?m([b(b(e,c.type.$time()),i),b(b(b(e,n),c.type.$time()),i),b(j,c.type.$time())],'each',[],function e(c){var b=e.$$s==null?this:e.$$s;return b.now==null&&(b.now=a),c==null&&(c=a),d(t(c,b.now))?(b.current_time=c,b.$throw("done")):a},{$$s:c}):m([b(b(e,c.type.$time()),i),b(j,c.type.$time())],'each',[],function e(c){var b=e.$$s==null?this:e.$$s;return b.now==null&&(b.now=a),c==null&&(c=a),d(t(c,b.now))?(b.current_time=c,b.$throw("done")):a},{$$s:c}):d(c.type['$ambiguous?']())?m([b(b(b(e,n),c.type.$time()),i),b(b(e,c.type.$time()),i),b(b(s,c.type.$time()),n)],'each',[],function e(c){var b=e.$$s==null?this:e.$$s;return b.now==null&&(b.now=a),c==null&&(c=a),d(u(c,b.now))?(b.current_time=c,b.$throw("done")):a},{$$s:c}):m([b(b(e,c.type.$time()),i),b(s,c.type.$time())],'each',[],function e(c){var b=e.$$s==null?this:e.$$s;return b.now==null&&(b.now=a),c==null&&(c=a),d(u(c,b.now))?(b.current_time=c,b.$throw("done")):a},{$$s:c})},{$$s:c}),d(x=c.current_time)?x:c.$raise("Current time cannot be nil at this point")),d(r)||(w=d(c.type['$ambiguous?']())?n:p,c.current_time=b(c.current_time,k(v,"future")?w:w['$-@']())),o('Span').$new(c.current_time,b(c.current_time,c.$width()))}),c(i,'$this',function c(b){var e=c.$$p||a,d=this;return c.$$p=null,b==null&&(b="future"),h(d,g(d,'this',c,!1,!0),'this',[b],e),k(b,"none")&&(b="future"),d.$next(b)},-1),c(i,'$width',z(1)),c(i,'$to_s',function c(){var e=c.$$p||a,d=this;return c.$$p=null,b(b(h(d,g(d,'to_s',c,!1,!0),'to_s',[],e),"-time-"),d.type.$to_s())})}(i[0],s('Repeater'),i)}(i[0],i),function(h,i){var f=q(h,'Chronic'),g=[f].concat(i),c=e.$r(g);return o(g[0],'VERSION',"0.10.2"),function(a,b){return a.$attr_accessor("debug"),a.$attr_accessor("time_class")}(e.get_singleton_class(f),g),f['$debug='](!1),f['$time_class='](p('Time')),n(f,'$parse',function(b,a){return a==null&&(a=new Map),c('Parser').$new(a).$parse(b)},-2),n(f,'$construct',function(j,e,f,g,h,i,m){var q=this,o=a,n=a;return e==null&&(e=1),f==null&&(f=1),g==null&&(g=0),h==null&&(h=0),i==null&&(i=0),m==null&&(m=a),d(t(i,60))&&(h=b(h,v(i,60)),i=i['$%'](60)),d(t(h,60))&&(g=b(g,v(h,60)),h=h['$%'](60)),d(t(g,24))&&(f=b(f,v(g,24)),g=g['$%'](24)),d(o=u(f,56))?o:q.$raise("day must be no more than 56 (makes month resolution easier)"),d(r(f,28))&&(n=d(p('Date')['$leap?'](j))?p(c('Date'),'MONTH_DAYS_LEAP')['$[]'](e):p(c('Date'),'MONTH_DAYS')['$[]'](e),d(r(f,n))&&(e=b(e,v(f,n)),f=f['$%'](n))),d(r(e,12))&&(k(e['$%'](12),0)?(j=b(j,v(l(e,12),12)),e=12):(j=b(j,v(e,12)),e=e['$%'](12))),k(c('Chronic').$time_class().$name(),"Date")?c('Chronic').$time_class().$new(j,e,f):E(c('Chronic').$time_class()['$respond_to?']("new"))||d(y(c('RUBY_VERSION').$to_f(),1.9))&&k(c('Chronic').$time_class().$name(),"Time")?c('Chronic').$time_class().$local(j,e,f,g,h,i):(k(c('Chronic').$time_class().$name(),"DateTime")&&(m=c('Time').$normalize_offset(m)),c('Chronic').$time_class().$new(j,e,f,g,h,i,m))},-2)}(i[0],i)},Opal.modules["web/gxg"]=function(d){var r=d.module,o=d.const_set,e=d.gvars,x=d.klass,g=d.def,n=d.slice,c=d.truthy,f=d.send,q=d.alias,j=d.eqeq,p=d.thrower,h=d.defs,m=d.rb_gt,s=d.rb_divide,i=d.rb_minus,l=d.rb_plus,w=d.rb_le,v=d.neqeq,t=d.rb_ge,u=d.rb_lt,k=[],a=d.nil,b=d.$$$;return d.add_stubs('private,[],try_convert,to_sym,to_s,uuid_generate,create_channel,new,unknown,to_proc,log_unknown,fatal,error,warn,log_warn,info,debug,is_a?,post_event,log_error,now,add_timer,add_periodic_timer,cancel_timer,public,each,to_enum,flatten,==,class,fetch_channel,destroy_channel,uuid,>,/,to_f,-,to_i,+,passes_needed,times,<=,<<,is_any?,match,size,[]=,children_of,!=,delete,keys,record_by_uuid,values,object_id,sort,<=>,object_by_uuid,parent_of,find_index,>=,delete_at,<,unshift,insert,each_with_index'),function(c,d){var e=r(c,'GxG'),b=[e].concat(d);return o(b[0],'LOG',a),o(b[0],'DISPATCHER',a),o(b[0],'OBJECT_SPACE',new Map([["registry",new Map]]))}(k[0],k),e.object_space=new Map([["registry",new Map]]),function(i,k,l){var e=x(i,k,'Object'),m=[e].concat(l),h=d.$r(m),o=e.$$prototype;return o.uuid=a,e.$private(),g(e,'$logged_in?',function(){return b(h('GxG'),'DISPLAY_DETAILS')['$[]']("logged_in")}),g(e,'$bytes',function(e){var a,c;return a=n(arguments),c=a,b(h('GxG'),'ByteArray').$try_convert(c)},-1),g(e,'$new_message',function(g){var e,d,a=this;return e=n(arguments),d=e,c(a.uuid)||(a.uuid=b('GxG').$uuid_generate().$to_s().$to_sym(),b(b('GxG'),'CHANNELS').$create_channel(a.uuid,a)),b(b(b('GxG'),'Events'),'Message').$new(new Map([["sender",a.uuid],["subject",d['$[]'](1)],["body",d['$[]'](0)]]))},-1),g(e,'$log_unknown',function g(d,e){var h=g.$$p||a,i=this;return g.$$p=null,d==null&&(d=a),e==null&&(e=a),c(b(b('GxG'),'LOG'))?f(b(b('GxG'),'LOG'),'unknown',[d,e,i],h.$to_proc()):a},-1),q(e,"log_trace","log_unknown"),g(e,'$log_fatal',function g(d,e){var h=g.$$p||a,i=this;return g.$$p=null,d==null&&(d=a),e==null&&(e=a),c(b(b('GxG'),'LOG'))?f(b(b('GxG'),'LOG'),'fatal',[d,e,i],h.$to_proc()):a},-1),g(e,'$log_error',function g(d,e){var h=g.$$p||a,i=this;return g.$$p=null,d==null&&(d=a),e==null&&(e=a),c(b(b('GxG'),'LOG'))?f(b(b('GxG'),'LOG'),'error',[d,e,i],h.$to_proc()):a},-1),g(e,'$log_warn',function g(d,e){var h=g.$$p||a,i=this;return g.$$p=null,d==null&&(d=a),e==null&&(e=a),c(b(b('GxG'),'LOG'))?f(b(b('GxG'),'LOG'),'warn',[d,e,i],h.$to_proc()):a},-1),q(e,"log_warning","log_warn"),g(e,'$log_info',function g(d,e){var h=g.$$p||a,i=this;return g.$$p=null,d==null&&(d=a),e==null&&(e=a),c(b(b('GxG'),'LOG'))?f(b(b('GxG'),'LOG'),'info',[d,e,i],h.$to_proc()):a},-1),g(e,'$log_debug',function g(d,e){var h=g.$$p||a,i=this;return g.$$p=null,d==null&&(d=a),e==null&&(e=a),c(b(b('GxG'),'LOG'))?f(b(b('GxG'),'LOG'),'debug',[d,e,i],h.$to_proc()):a},-1),g(e,'$post_event',function h(d,e){var i=h.$$p||a,j=this,g=a;return h.$$p=null,d==null&&(d="root"),e==null&&(e=a),g=!1,c(e['$is_a?'](b(b(b('GxG'),'Events'),'EventDispatcher')))?g=f(e,'post_event',[d],i.$to_proc()):c(b(b('GxG'),'DISPATCHER'))?g=f(b(b('GxG'),'DISPATCHER'),'post_event',[d],i.$to_proc()):j.$log_error("No Event Dispatcher Defined"),g},-1),g(e,'$post_event_at',function i(d,e){var j=i.$$p||a,k=this,g=a;return i.$$p=null,d==null&&(d=h('Time').$now()),e==null&&(e=a),g=a,c(e['$is_a?'](b(b(b('GxG'),'Events'),'EventDispatcher')))?g=f(e,'add_timer',[new Map([["when",d]])],j.$to_proc()):c(b(b('GxG'),'DISPATCHER'))?g=f(b(b('GxG'),'DISPATCHER'),'add_timer',[new Map([["when",d]])],j.$to_proc()):k.$log_error("No Event Dispatcher Defined"),g},-1),g(e,'$post_event_periodic',function h(d,e){var i=h.$$p||a,j=this,g=a;return h.$$p=null,d==null&&(d=.333),e==null&&(e=a),g=a,c(e['$is_a?'](b(b(b('GxG'),'Events'),'EventDispatcher')))?g=f(e,'add_periodic_timer',[new Map([["interval",d]])],i.$to_proc()):c(b(b('GxG'),'DISPATCHER'))?g=f(b(b('GxG'),'DISPATCHER'),'add_periodic_timer',[new Map([["interval",d]])],i.$to_proc()):j.$log_error("No Event Dispatcher Defined"),g},-1),g(e,'$cancel_periodic',function(d,e){var g=this,f=a;return d==null&&(d=a),e==null&&(e=a),f=!1,c(d['$is_a?'](h('Hash')))&&(c(e['$is_a?'](b(b(b('GxG'),'Events'),'EventDispatcher')))?f=e.$cancel_timer(d):c(b(b('GxG'),'DISPATCHER'))?f=b(b('GxG'),'DISPATCHER').$cancel_timer(d):g.$log_error("No Event Dispatcher Defined")),f},-1),e.$public(),g(e,'$is_any?',function(k){var d,e,g=this,b=a;return d=n(arguments),e=d,b=!1,function(){try{var d=p('break');return f(e.$flatten().$to_enum(),'each',[],function f(e){var g=f.$$s==null?this:f.$$s;if(e==null&&(e=a),j(e.$class(),h('Class')))if(c(g['$is_a?'](e)))b=!0,d.$throw(a,f.$$is_lambda);else return a;else return a},{$$s:g})}catch(a){if(a===d)return a.$v;throw a}finally{d.is_orphan=!0}}(),b},-1),g(e,'$defederate',function(){var d=this,e=a;return c(d.uuid)&&(e=b(b('GxG'),'CHANNELS').$fetch_channel(d.uuid),c(e)&&b(b('GxG'),'CHANNELS').$destroy_channel(d.uuid)),!0})}(k[0],null,k),function(n,o){var g=r(n,'GxG'),q=[g].concat(o),k=d.$r(q);return h(g,'$uuid_generate',function(){return k('SecureRandom').$uuid()}),h(g,'$passes_needed',function(d,e){var b=a,f=a;return d==null&&(d=0),e==null&&(e=0),c(m(d,0))&&c(m(e,0))?(b=s(d.$to_f(),e.$to_f()),f=i(b,b.$to_i().$to_f()),b=b.$to_i().$to_f(),c(m(f,0))&&(b=l(b,1)),b.$to_i()):0},-1),h(g,'$apportioned_ranges',function(g,h,j){var k=a,n=a,e=a;return g==null&&(g=0),h==null&&(h=0),j==null&&(j=0),k=[],n=b('GxG').$passes_needed(g,h),c(m(n,0))&&(e=j,f(n,'times',[],function(){var b=a;return c(w(l(e,i(h,1)),i(g,1)))?b=l(e,i(h,1)):b=i(g,1),k['$<<'](d.Range.$new(e,b,!1)),e=l(b,1)})),k},-1),h(g,'$valid_uuid?',function(d,e){var f=a;return d==null&&(d=a),e==null&&(e=!0),!!c(d['$is_any?'](b('String'),b('Symbol')))&&(j(e,!0)?f=/[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]-[0-9a-f][0-9a-f][0-9a-f][0-9a-f]-[4][0-9a-f][0-9a-f][0-9a-f]-[0-9a-f][0-9a-f][0-9a-f][0-9a-f]-[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]/:f=/[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]-[0-9a-f][0-9a-f][0-9a-f][0-9a-f]-[0-9a-f][0-9a-f][0-9a-f][0-9a-f]-[0-9a-f][0-9a-f][0-9a-f][0-9a-f]-[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]/,!!c(d.$to_s().$match(f))&&(!!j(d.$to_s().$size(),36)))},-1),h(g,'$replace_registry',function(b){return e.object_space==null&&(e.object_space=a),b==null&&(b=new Map),e.object_space['$[]=']("registry",b),!0},-1),h(g,'$register',function(b,d){var f=a;return e.object_space==null&&(e.object_space=a),b==null&&(b=a),d==null&&(d=a),c(e.object_space['$[]']("registry")['$[]'](b.$uuid().$to_s().$to_sym()))||(c(d)?f=k('GxG').$children_of(d).$size():f=0,e.object_space['$[]']("registry")['$[]='](b.$uuid().$to_s().$to_sym(),new Map([["object",b],["parent",d],["ordinal",f]]))),!0},-1),h(g,'$unregister',function(d){return e.object_space==null&&(e.object_space=a),d==null&&(d=a),c(e.object_space['$[]']("registry")['$[]'](d.$to_s().$to_sym()))&&v(b(k('GxG'),'DISPLAY_DETAILS')['$[]']("object").$uuid().$to_s().$to_sym(),d.$to_s().$to_sym())&&e.object_space['$[]']("registry").$delete(d.$to_s().$to_sym()),!0},-1),h(g,'$register_uuid_list',function(){return e.object_space==null&&(e.object_space=a),e.object_space['$[]']("registry").$keys()}),h(g,'$record_by_uuid',function(b){var d=a;return e.object_space==null&&(e.object_space=a),b==null&&(b=a),d=a,c(e.object_space['$[]']("registry")['$[]'](b.$to_s().$to_sym()))&&(d=e.object_space['$[]']("registry")['$[]'](b.$to_s().$to_sym())),d},-1),h(g,'$object_by_uuid',function(b){var d=a;return b==null&&(b=a),(c(d=k('GxG').$record_by_uuid(b))?d:new Map)['$[]']("object")},-1),h(g,'$children_of',function(c){var d=a,b=a;return e.object_space==null&&(e.object_space=a),c==null&&(c=a),d=[],b=[],f(e.object_space['$[]']("registry").$values(),'each',[],function(d){return d==null&&(d=a),j(d['$[]']("parent").$object_id(),c.$object_id())?b['$<<'](d):a}),b=f(b,'sort',[],function(b,c){return b==null&&(b=a),c==null&&(c=a),b['$[]']("ordinal")['$<=>'](c['$[]']("ordinal"))}),f(b,'each',[],function(b){return b==null&&(b=a),d['$<<'](b['$[]']("object"))}),d},-1),h(g,'$set_ordinal',function(d,e){var j=a,h=a,l=a,b=a,g=a;return d==null&&(d=a),e==null&&(e=0),j=!1,c(d['$is_any?'](k('String'),k('Symbol')))?h=k('GxG').$object_by_uuid(d.$to_sym()):h=d,l=k('GxG').$parent_of(h),c(l)&&(b=k('GxG').$children_of(l),g=b.$find_index(h),c(g)&&(c(t(e,i(b.$size(),1)))?b['$<<'](b.$delete_at(g)):c(u(e,0))?b=b.$unshift(b.$delete_at(g)):b=b.$insert(e,b.$delete_at(g)),f(b,'each_with_index',[],function(c,d){var b,e=a;return c==null&&(c=a),d==null&&(d=a),e=k('GxG').$record_by_uuid(c.$uuid().$to_sym()),(b=["ordinal",d],f(e,'[]=',b),b[b.length-1])}),j=!0)),j},-1),h(g,'$parent_of',function(b){var c=a;return e.object_space==null&&(e.object_space=a),b==null&&(b=a),c=a,function(){try{var d=p('break');return f(e.object_space['$[]']("registry").$values(),'each',[],function f(e){if(e==null&&(e=a),j(e['$[]']("object").$object_id(),b.$object_id()))c=e['$[]']("parent"),d.$throw(a,f.$$is_lambda);else return a})}catch(a){if(a===d)return a.$v;throw a}finally{d.is_orphan=!0}}(),c},-1),h(g,'$lineage_of',function(c){var d=a,b=a;for(c==null&&(c=a),d=[],b=k('GxG').$parent_of(c);!j(b,a);)d.$unshift(b),b=k('GxG').$parent_of(b);return d},-1)}(k[0],k)},Opal.modules["web/gxg_augments"]=function(f){var j=f.klass,e=f.def,w=f.module,m=f.const_set,C=f.return_ivar,c=f.truthy,t=f.gvars,d=f.send,v=f.alias,B=f.slice,u=f.to_a,q=f.send2,p=f.find_super,l=f.defs,k=f.rb_plus,s=f.rb_lt,y=f.rb_times,g=f.eqeq,h=f.rb_gt,o=f.range,z=f.not,x=f.rb_minus,n=f.neqeq,r=f.thrower,i=[],A=f.$r(i),a=f.nil,b=f.$$$;return f.add_stubs('include?,respond_to?,call,puts,to_s,[],strftime,now,inspect,to_i,log_error,add,to_proc,warn,unknown,BigDecimal,%,to_f,parse,to_d,to_time,+,<,round,*,sec_fraction,**,private,iso8601_timediv,iso8601,public,clone,match,==,>,size,split,camel_case?,slice,json_1?,json_2?,json?,is_any?,process!,is_a?,valid_datetime_nolocale?,valid_datetime?,[]=,numeric_values,base64?,new,decode64,!,strict_decode64,strict_encode64,each_index,each,-,dup,raise,search,<<,shift,each_pair,each_with_index,object_id,!=,iterative,reverse,get_at_path,gsub,unshift,join,to_enum,=~,to_sym,first,dirname,basename,delete,class,gxg_import,try_convert,process'),function(b,c,d){var f=j(b,c,'Buffer'),g=[f].concat(d);return function(c,d){var b=j(c,d,'Array'),f=b.$$prototype;return f.native=a,e(b,'$native_object',function(){var a=this;return a.native})}(g[0],null)}(i[0],null,i),function(c,d){var e=w(c,'GxG'),b=[e].concat(d);return function(c,d){var e=w(c,'Database'),b=[e].concat(d);return j(b[0],null,'Field'),j(b[0],null,'PersistedArray'),(j(b[0],null,'PersistedHash'),a)}(b[0],b)}(i[0],i),function(k,l,n){var g=j(k,l,'Logger'),i=[g].concat(n),h=f.$r(i);return m(i[0],'DEBUG',0),m(i[0],'INFO',1),m(i[0],'WARN',2),m(i[0],'ERROR',3),m(i[0],'FATAL',4),m(i[0],'UNKNOWN',5),m(i[0],'TRACE',5),e(g,'$initialize',function(a){var b=this;return a==null&&(a=3),b.level=a},-1),e(g,'$level',C("level")),e(g,'$level=',function(a){var b=this;return a==null&&(a=3),b.level=a},-1),e(g,'$add',function j(g,d,e,k){var i=j.$$p||a,l=this,m=a,n=a;t.$==null&&(t.$=a),j.$$p=null,g==null&&(g=a),d==null&&(d=a),e==null&&(e=a),k==null&&(k=a),c([b(b('Logger'),'DEBUG'),b(b('Logger'),'INFO'),b(b('Logger'),'WARN'),b(b('Logger'),'ERROR'),b(b('Logger'),'FATAL'),b(b('Logger'),'UNKNOWN')]['$include?'](g))||(g=b(b('Logger'),'UNKNOWN')),c(e)&&(c(d)||(d=e,e=a));try{return c(d)||c(i['$respond_to?']("call"))&&(d=i.$call()),m=["DEBUG","INFO","WARN","ERROR","FATAL","ANY"],l.$puts(""+m['$[]'](g).$to_s()+", ["+h('Time').$now().$strftime("%Y-%m-%dT%H:%M:%S%z")+"#"+t.$.$inspect()+"] "+h('Time').$now().$to_i().$to_s()+" -- "+e.$inspect()+": "+d.$to_s()+"\n"),!0}catch(a){if(f.rescue(a,[h('Exception')])){n=a;try{return l.$log_error(new Map([["error",n],["parameters",new Map([["severity",g],["message",d],["progname",e],["block",i]])]])),!1}finally{f.pop_exception(a)}}else throw a}},-1),e(g,'$debug',function c(b){var e=c.$$p||a,f=this;return c.$$p=null,b==null&&(b=a),d(f,'add',[h('DEBUG'),a,b],e.$to_proc())},-1),e(g,'$info',function c(b){var e=c.$$p||a,f=this;return c.$$p=null,b==null&&(b=a),d(f,'add',[h('INFO'),a,b],e.$to_proc())},-1),e(g,'$warn',function c(b){var e=c.$$p||a,f=this;return c.$$p=null,b==null&&(b=a),d(f,'add',[h('WARN'),a,b],e.$to_proc())},-1),v(g,"warning","warn"),e(g,'$error',function c(b){var e=c.$$p||a,f=this;return c.$$p=null,b==null&&(b=a),d(f,'add',[h('ERROR'),a,b],e.$to_proc())},-1),e(g,'$fatal',function c(b){var e=c.$$p||a,f=this;return c.$$p=null,b==null&&(b=a),d(f,'add',[h('FATAL'),a,b],e.$to_proc())},-1),e(g,'$unknown',function c(b){var e=c.$$p||a,f=this;return c.$$p=null,b==null&&(b=a),d(f,'add',[h('UNKNOWN'),a,b],e.$to_proc())},-1),v(g,"trace","unknown")}(i[0],null,i),function(a,c){var d=j(a,c,'Time');return e(d,'$to_d',function(){var a=this;return a.$BigDecimal(("%"+b(b('Float'),'DIG')+"f")['$%'](a.$to_f()))})}(i[0],null),function(i,m,n){var g=j(i,m,'DateTime'),o=[g].concat(n),h=f.$r(o);return e(g,'$intialize',function b(g){var f,c,i=b.$$p||a,e=this;return b.$$p=null,f=B(arguments),c=f,e.data=d(h('Time'),'parse',u(c)),q(e,p(e,'intialize',b,!1,!0),'intialize',u(c),null)},-1),e(g,'$to_time',function(){var a=this;return b('Time').$parse(a.$to_s())}),e(g,'$to_d',function(){var a=this;return a.$BigDecimal(a.$to_time().$to_d())}),l(g,'$now',function(){return h('DateTime').$parse(h('Time').$now().$strftime("%Y-%m-%dT%H:%M:%S%z"))}),e(g,'$to_s',function(){var a=this;return a.$strftime("%Y-%m-%dT%H:%M:%S%z")}),e(g,'$to_json',function(){var a=this;return a.$strftime("%Y-%m-%dT%H:%M:%S%z")}),e(g,'$strftime',function b(c){var e=b.$$p||a,d=this;return b.$$p=null,c==null&&(c="%FT%T%:z"),q(d,p(d,'strftime',b,!1,!0),'strftime',[c],null)},-1),l(g,'$_strptime',function b(e,c){var f=b.$$p||a,d=this;return b.$$p=null,c==null&&(c="%FT%T%z"),q(d,p(d,'_strptime',b,!1,!0),'_strptime',[e,c],null)},-2),e(g,'$iso8601_timediv',function(a){var b=this;return a=a.$to_i(),b.$strftime(k(k("T%T",c(s(a,1))?"":".%0*d"['$%']([a,y(b.$sec_fraction(),10['$**'](a)).$round()])),"%:z"))}),g.$private("iso8601_timediv"),e(g,'$iso8601',function b(c){var e=b.$$p||a,d=this;return b.$$p=null,c==null&&(c=0),k(q(d,p(d,'iso8601',b,!1,!0),'iso8601',[],null),d.$iso8601_timediv(c))},-1),e(g,'$rfc3339',function(a){var b=this;return a==null&&(a=0),b.$iso8601(a)},-1),e(g,'$xmlschema',function(a){var b=this;return a==null&&(a=0),b.$iso8601(a)},-1),e(g,'$jisx0301',function b(c){var e=b.$$p||a,d=this;return b.$$p=null,c==null&&(c=0),k(q(d,p(d,'jisx0301',b,!1,!0),'jisx0301',[],null),d.$iso8601_timediv(c))},-1)}(i[0],A('Date'),i),function(a,c){var d=j(a,c,'Integer');return e(d,'$to_d',function(){var a=this;return a.$BigDecimal(("%"+b(b('Float'),'DIG')+"f")['$%'](a.$to_f()))})}(i[0],null),function(c,d){var a=j(c,d,'Float');return a.$public(),e(a,'$to_d',function(){var a=this;return a.$BigDecimal(("%"+b(b('Float'),'DIG')+"f")['$%'](a))})}(i[0],null),function(m,n,p){var i=j(m,n,'String'),q=[i].concat(p),l=f.$r(q);return e(i,'$cast_to_ascii',function(){var a=this;return new window.TextDecoder("ascii").decode((new window.TextEncoder).encode(a.$clone().toString())).$to_s()}),e(i,'$valid_date?',function(){var a=this;return!!c(/[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]/.$match(a))}),e(i,'$valid_datetime?',function(){var a=this;return!!c(/[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]T[0-9][0-9]:[0-9][0-9]:[0-9][0-9][+-][0-9][0-9]:[0-9][0-9]/.$match(a))}),e(i,'$valid_datetime_nolocale?',function(){var a=this;return!!c(/[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]T[0-9][0-9]:[0-9][0-9]:[0-9][0-9]/.$match(a))}),e(i,'$valid_path?',function(){var a=this;return!!(c(/.*(?:\\|\/)(.+)$/.$match(a))||g(a.$split(" ").$size(),1)||c(h(a.$split("/").$size(),1))||g(a,"/"))}),e(i,'$valid_jid?',function(){var a=this;return!!c(/^(?:([^@]*)@)??([^@\/]*)(?:\/(.*?))?$/.$match(a))}),e(i,'$camel_case?',function(){var a=this;return!!c(a.$match(/[A-Z]([A-Z0-9]*[a-z][a-z0-9]*[A-Z]|[a-z0-9]*[A-Z][A-Z0-9]*[a-z])[A-Za-z0-9]*/))}),e(i,'$split_camelcase',function(){var a=this;return c(a['$camel_case?']())?a.$split(/(?=[A-Z])/):a}),e(i,'$json_1?',function(){var a=this;return a.$slice(0,1)['$==']("{")}),e(i,'$json_2?',function(){var b=this,d=a,e=a;return c(d=b['$json_1?']())?!!c(e=b.$match('"apiVersion"\\s?:\\s?"2.0"'))&&e:d}),e(i,'$json?',function(){var b=this,d=a;return c(d=b['$json_1?']())?d:b['$json_2?']()}),e(i,'$from_json',function(e){var f=this,h=a;return e==null&&(e=!0),c(f['$json?']())?(h=b('JSON').$parse(f,new Map([["symbolize_names",e]])),c(h['$is_any?'](b('Hash'),b('Array'))))?d(h,'process!',[],function(d,f,h){var e=a;return d==null&&(d=a),f==null&&(f=a),h==null&&(h=a),c(d['$is_a?'](b('String')))&&(c(d['$valid_datetime?']())||c(d['$valid_datetime_nolocale?']())?h['$[]='](f,b('DateTime').$parse(d)):(e=d.$numeric_values(),c(e['$is_a?'](b('Hash')))&&(c(e['$[]']("integer"))?(e=e['$[]']("integer"),h['$[]='](f,e)):c(e['$[]']("float"))&&(e=e['$[]']("float"),h['$[]='](f,e)))),g(d['$[]'](o(0,6,!1)),"binary:")&&c(d['$[]'](o(7,-1,!1))['$base64?']())&&h['$[]='](f,b(l('GxG'),'ByteArray').$new(d['$[]'](o(7,-1,!1)).$decode64()))),a}):a:f},-1),e(i,'$base64?',function(){var b=this,d=a;try{if(z(["page","form","left"]['$include?'](b)))if(c(h(b.$size(),0)))try{return l('Base64').$strict_decode64(b),!0}catch(a){if(f.rescue(a,[l('Exception')])){d=a;try{return!1}finally{f.pop_exception(a)}}else throw a}else return!1;else return!1}catch(a){if(f.rescue(a,[l('Exception')])){d=a;try{return!1}finally{f.pop_exception(a)}}else throw a}}),e(i,'$encode64',function(){var a=this;return c(a['$base64?']())?a:b('Base64').$strict_encode64(a)}),e(i,'$decode64',function(){var a=this;return c(a['$base64?']())?b('Base64').$strict_decode64(a):a}),e(i,'$encrypt',function(f){var g=this,i=a,e=a,j=a;return f==null&&(f=""),c(h(f.$to_s().$size(),0))?(i=b(b('GxG'),'ByteArray').$new(f.$to_s()),e=b(b('GxG'),'ByteArray').$new(g.$to_s()),d(e,'each_index',[],function(f){var g,b=a;return f==null&&(f=a),b=e['$[]'](f),d(i,'each',[],function(e){return e==null&&(e=a),d([127,63,31,15,7,3,1,0],'each',[],function(d){return d==null&&(d=a),c(h(e,d))?(b=k(b,1),c(h(b,255)))?b=0:a:(b=x(b,1),c(s(b,0)))?b=255:a})}),(g=[f,b],d(e,'[]=',g),g[g.length-1])}),j=e.$to_s(),j):g.$dup()},-1),e(i,'$decrypt',function(f){var g=this,i=a,e=a,j=a;return f==null&&(f=""),c(h(f.$to_s().$size(),0))?(i=b(b('GxG'),'ByteArray').$new(f.$to_s()),e=b(b('GxG'),'ByteArray').$new(g.$to_s()),d(e,'each_index',[],function(f){var g,b=a;return f==null&&(f=a),b=e['$[]'](f),d(i,'each',[],function(e){return e==null&&(e=a),d([127,63,31,15,7,3,1,0],'each',[],function(d){return d==null&&(d=a),c(h(e,d))?(b=x(b,1),c(s(b,0)))?b=255:a:(b=k(b,1),c(h(b,255)))?b=0:a})}),(g=[f,b],d(e,'[]=',g),g[g.length-1])}),j=e.$to_s(),j):g.$dup()},-1),e(i,'$to_d',function(){var a=this;return a.$BigDecimal(a)})}(i[0],null,i),function(p,q,s){var m=j(p,q,'Hash'),t=[m].concat(s),i=f.$r(t);return l(m,'$process',function g(e){var h=g.$$p||a,j=this,f=a;return g.$$p=null,e==null&&(e=new Map),f=new Map,c(h['$respond_to?']("call"))&&(c(e['$is_any?'](b('Array'),b('Hash'),b('Struct'),b(b(b('GxG'),'Database'),'PersistedHash'),b(b(b('GxG'),'Database'),'PersistedArray')))?f=d(e,'process!',[],h.$to_proc()):j.$raise(i('ArgumentError'),"you must pass a Hash or an Array, or a ByteArray")),f},-1),l(m,'$search',function g(e){var h=g.$$p||a,j=this,f=a;return g.$$p=null,e==null&&(e=new Map),f=new Map,c(h['$respond_to?']("call"))&&(c(e['$is_any?'](b('Array'),b('Hash'),b('Struct'),b(b(b('GxG'),'Database'),'PersistedHash'),b(b(b('GxG'),'Database'),'PersistedArray')))?f=d(e,'search',[],h.$to_proc()):j.$raise(i('ArgumentError'),"you must pass a Hash or an Array, or a ByteArray")),f},-1),e(m,'$iterative',function r(){var s=r.$$p||a,k=this,m=a,q=a,o=a,l=a,j=a,e=a,p=a,t=a,u=a;r.$$p=null,m=[],q=d(i('Proc'),'new',[],function(g,i){var f=a,e=a;if(g==null&&(g=a),i==null&&(i=[]),f=[],c(g))for(f['$<<'](new Map([["parent",a],["parent_selector",a],["object",g]]));c(h(f.$size(),0));)e=f.$shift(),c(e['$[]']("object")['$is_any?'](b('Hash'),b('Struct'),b(b(b('GxG'),'Database'),'PersistedHash')))&&d(e['$[]']("object"),'each_pair',[],function(b,c){return b==null&&(b=a),c==null&&(c=a),f['$<<'](new Map([["parent",e['$[]']("object")],["parent_selector",b],["object",c]]))}),c(e['$[]']("object")['$is_any?'](b('Array'),b(b(b('GxG'),'Database'),'PersistedArray')))&&d(e['$[]']("object"),'each_with_index',[],function(b,c){return b==null&&(b=a),c==null&&(c=a),f['$<<'](new Map([["parent",e['$[]']("object")],["parent_selector",c],["object",b]]))}),i['$<<'](e);return i},-1),o=d(i('Proc'),'new',[],function(b,c){var e=a;return b==null&&(b=[]),c==null&&(c=a),e=[],d(b,'each',[],function(b){return b==null&&(b=a),g(b['$[]']("parent").$object_id(),c.$object_id())?e['$<<'](b):a}),e},-1);try{if(l=q.$call(k,[]),j=o.$call(l,k),c(s['$respond_to?']("call")))while(c(h(j.$size(),0)))e=j.$shift(),g(e['$[]']("object").$object_id(),k.$object_id())||(p=s.$call(e['$[]']("object"),e['$[]']("parent_selector"),e['$[]']("parent")),c(p)&&m['$<<'](p)),n(e['$[]']("object").$object_id(),a.$object_id())&&(t=o.$call(l,e['$[]']("object")),d(t,'each',[],function(b){return b==null&&(b=a),j['$<<'](b)}))}catch(a){if(f.rescue(a,[i('Exception')])){u=a;try{k.$log_error(new Map([["error",u],["parameters",new Map]]))}finally{f.pop_exception(a)}}else throw a}return m}),e(m,'$process',function c(){var e=c.$$p||a,f=this,b=a;return c.$$p=null,b=f.$clone(),d(b,'iterative',[],e.$to_proc()),b}),e(m,'$process!',function b(){var e=b.$$p||a,c=this;return b.$$p=null,d(c,'iterative',[],e.$to_proc()),c}),e(m,'$search',function e(){var f=e.$$p||a,g=this,b=a;return e.$$p=null,b=[],c(f['$respond_to?']("call"))&&(b=d(g,'iterative',[],f.$to_proc())),b}),e(m,'$paths_to',function(p,f){var u=this,l=a,e=a,j=a,s=a,t=a,q=a,m=a;return p==null&&(p=a),f==null&&(f=""),l=[],g(f['$[]'](0),"/")||(f=k("/",f)),c(h(f.$size(),1))?e=f.$split("/")['$[]'](o(1,-1,!1)).$reverse():e=[],j=u.$get_at_path(f),s=[new Map([["selector",a],["container",j],["prefix","/"]])],t=d(i('Proc'),'new',[],function(b){var c=a;return b==null&&(b=a),c=a,function(){try{var e=r('break');return d(s,'each_with_index',[],function h(d,f){if(d==null&&(d=a),f==null&&(f=a),g(d['$[]']("container"),b))c=d,e.$throw(a,h.$$is_lambda);else return a})}catch(a){if(a===e)return a.$v;throw a}finally{e.is_orphan=!0}}(),c}),q=j,m=!1,c(j['$is_any?'](b('Hash'),b('Array'),b('Struct'),b(b(b('GxG'),'Database'),'PersistedHash'),b(b(b('GxG'),'Database'),'PersistedArray')))?d(j,'process!',[],function(d,h,f){var j=a,i=a;return d==null&&(d=a),h==null&&(h=a),f==null&&(f=a),n(q.$object_id(),f.$object_id())&&(j=t.$call(f),c(j)&&(e=j['$[]']("prefix").$split("/").$reverse(),g(e.$size(),0)&&e['$<<']("")),q=f),i=h.$to_s(),i=i.$gsub("/","%2f"),e.$unshift(i),m=!1,g(d,p)&&(m=!0),c(m)&&l['$<<'](k("/",e.$reverse().$join("/"))),c(d['$is_any?'](b('Array'),b('Hash'),b('Struct'),b(b(b('GxG'),'Database'),'PersistedHash'),b(b(b('GxG'),'Database'),'PersistedArray')))&&s.$unshift(new Map([["selector",h],["container",d],["prefix",e.$reverse().$join("/")]])),e.$shift(),a}):l['$<<'](k("/",e.$join("/"))),l},-1),e(m,'$get_at_path',function(e){var j=this,b=a,f=a,k=a;return e==null&&(e="/"),b=a,g(e,"/")?b=j:(f=[j],k=e.$split("/"),function(){try{var e=r('break');return d(k.$to_enum(),'each',[],function k(j){var d=a;if(j==null&&(j=a),d=a,c(h(j.$size(),0))&&(g(j['$=~'](/^(?:[0-9])*[0-9](?:[0-9])*$/),0)?d=j.$to_i():(d=j,d=d.$gsub("%2f","/"),d=d.$to_sym())),c(d))if(b=f.$first()['$[]'](d),c(b['$is_a?'](i('NilClass'))))e.$throw(a,k.$$is_lambda);else return f.$unshift(b);else return a})}catch(a){if(a===e)return a.$v;throw a}finally{e.is_orphan=!0}}()),b},-1),e(m,'$set_at_path',function(f,j){var l=this,k=a,i=a,e=a,d=a;return f==null&&(f="/"),j==null&&(j=a),k=a,n(f,"/")&&(i=l.$get_at_path(b('File').$dirname(f)),c(i)&&(e=b('File').$basename(f),d=a,c(h(e.$size(),0))&&(g(e['$=~'](/^(?:[0-9])*[0-9](?:[0-9])*$/),0)?d=e.$to_i():(d=e,d=d.$gsub("%2f","/"),d=d.$to_sym())),c(d)&&(i['$[]='](d,j),k=i['$[]'](d)))),k},-1),e(m,'$symbolize_keys',function(){var e=this;return d(e,'process!',[],function(f,d,e){return f==null&&(f=a),d==null&&(d=a),e==null&&(e=a),c(e['$is_a?'](b('Hash')))&&(c(d['$is_a?'](b('Symbol')))||e['$[]='](d.$to_sym(),e.$delete(d))),a}),e}),e(m,'$gxg_export',function(){var n=this,k=a,e=a,l=a,m=a,f=a,j=a;for(k=new Map([["type","Hash"],["content",new Map]]),e=[new Map([["parent",a],["parent_selector",a],["object",n],["record",k]])],l=d(i('Proc'),'new',[],function(b){var c=a;return b==null&&(b=a),c=[],d(e,'each',[],function(d){return d==null&&(d=a),g(d['$[]']("parent").$object_id(),b.$object_id())?c['$<<'](d):a}),c},-1),m=d(i('Proc'),'new',[],function(b){return b==null&&(b=a),c(b['$is_any?'](i('Integer'),i('Float'),i('String')))?c(b['$is_a?'](i('Numeric')))?c(b.$to_s()['$include?']("."))?new Map([["type","Float"],["content",b]]):new Map([["type","Integer"],["content",b]]):new Map([["type",b.$class().$to_s()],["content",b]]):new Map([["type",b.$class().$to_s()],["content",b.$to_s()]])}),d(n,'search',[],function(d,f,g){return d==null&&(d=a),f==null&&(f=a),g==null&&(g=a),c(d['$is_a?'](b('Hash')))?e['$<<'](new Map([["parent",g],["parent_selector",f.$clone()],["object",d],["record",new Map([["type","Hash"],["content",new Map]])]])):c(d['$is_a?'](b('Array')))?e['$<<'](new Map([["parent",g],["parent_selector",f.$clone()],["object",d],["record",new Map([["type","Array"],["content",[]]])]])):e['$<<'](new Map([["parent",g],["parent_selector",f.$clone()],["object",d],["record",m.$call(d)]]))}),f=[e['$[]'](0)];c(h(f.$size(),0));)j=f.$shift(),d(l.$call(j['$[]']("object")),'each',[],function(b){return b==null&&(b=a),j['$[]']("record")['$[]']("content")['$[]='](b['$[]']("parent_selector"),b['$[]']("record")),c(b['$[]']("object")['$is_any?'](i('Hash'),i('Array')))?f['$<<'](b):a});return k}),l(m,'$gxg_import',function(j){try{var n=this,l=a,m=a,k=a,e=a;if(j==null&&(j=a),l=a,c(j['$is_a?'](i('Hash'))))if(g(j['$[]']("type"),"Array"))l=b('Array').$gxg_import(j);else if(m=d(i('Proc'),'new',[],function h(e,b){var g,j=h.$$s==null?this:h.$$s,d=a,k=a;if(e==null&&(e=a),b==null&&(b=a),c(b['$is_a?'](i('String'))))try{d=(g=e,typeof f.compile=='function'?eval(f.compile(g,{scope_variables:["the_class","type","value","result","import_value","the_exported_record"],arity_check:!1,file:'(eval)',eval:!0})):j.$eval(g)),c(d['$respond_to?']("parse"))?b=d.$parse(b):c(d['$respond_to?']("new"))?b=d.$new(b):c(d['$respond_to?']("try_convert"))&&(b=d.$try_convert(b))}catch(b){if(f.rescue(b,[i('Exception')])){k=b;try{a}finally{f.pop_exception(b)}}else throw b}return b},{$$s:n}),g(j['$[]']("type"),"Hash")){for(l=new Map,k=[new Map([["parent",a],["parent_selector",a],["object",l],["record",j]])];c(h(k.$size(),0));)e=k.$shift(),c(e['$[]']("record")['$[]']("content")['$is_a?'](i('Hash')))?d(e['$[]']("record")['$[]']("content"),'each_pair',[],function(b,c){var f;return b==null&&(b=a),c==null&&(c=a),g(c['$[]']("type"),"Hash")?(e['$[]']("object")['$[]='](b,new Map),k['$<<'](new Map([["parent",e['$[]']("object")],["parent_selector",b],["object",e['$[]']("object")['$[]'](b)],["record",c]]))):g(c['$[]']("type"),"Array")?(e['$[]']("object")['$[]='](b,[]),k['$<<'](new Map([["parent",e['$[]']("object")],["parent_selector",b],["object",e['$[]']("object")['$[]'](b)],["record",c]]))):(f=[b,m.$call(c['$[]']("type"),c['$[]']("content"))],d(e['$[]']("object"),'[]=',f),f[f.length-1])}):c(e['$[]']("record")['$[]']("content")['$is_a?'](i('Array')))&&d(e['$[]']("record")['$[]']("content"),'each_with_index',[],function(c,b){var f;return c==null&&(c=a),b==null&&(b=a),g(c['$[]']("type"),"Hash")?(e['$[]']("object")['$[]='](b,new Map),k['$<<'](new Map([["parent",e['$[]']("object")],["parent_selector",b],["object",e['$[]']("object")['$[]'](b)],["record",c]]))):g(c['$[]']("type"),"Array")?(e['$[]']("object")['$[]='](b,[]),k['$<<'](new Map([["parent",e['$[]']("object")],["parent_selector",b],["object",e['$[]']("object")['$[]'](b)],["record",c]]))):(f=[b,m.$call(c['$[]']("type"),c['$[]']("content"))],d(e['$[]']("object"),'[]=',f),f[f.length-1])})}else l=m.$call(j['$[]']("type"),j['$[]']("content"));return l}catch(a){if(a===f.t_eval_return)return a.$v;throw a}},-1)}(i[0],null,i),function(p,q,s){var m=j(p,q,'Array'),t=[m].concat(s),i=f.$r(t);return l(m,'$process',function g(e){var h=g.$$p||a,j=this,f=a;return g.$$p=null,e==null&&(e=[]),f=[],c(h['$respond_to?']("call"))&&(c(e['$is_any?'](b('Array'),b('Hash'),b(b('GxG'),'ByteArray'),b('Struct'),b(b(b('GxG'),'Database'),'PersistedHash'),b(b(b('GxG'),'Database'),'PersistedArray')))?f=d(e,'process',[],h.$to_proc()):j.$raise(i('ArgumentError'),"you must pass a Array, a Hash, or a ByteArray")),f},-1),l(m,'$search',function g(e){var h=g.$$p||a,j=this,f=a;return g.$$p=null,e==null&&(e=[]),f=[],c(h['$respond_to?']("call"))&&(c(e['$is_any?'](b('Array'),b('Hash'),b(b('GxG'),'ByteArray'),b('Struct'),b(b(b('GxG'),'Database'),'PersistedHash'),b(b(b('GxG'),'Database'),'PersistedArray')))?f=d(e,'search',[],h.$to_proc()):j.$raise(i('ArgumentError'),"you must pass a Array, a Hash, or a ByteArray")),f},-1),e(m,'$iterative',function r(){var s=r.$$p||a,k=this,m=a,q=a,o=a,l=a,j=a,e=a,p=a,t=a,u=a;r.$$p=null,m=[],q=d(i('Proc'),'new',[],function(g,i){var f=a,e=a;if(g==null&&(g=a),i==null&&(i=[]),f=[],c(g))for(f['$<<'](new Map([["parent",a],["parent_selector",a],["object",g]]));c(h(f.$size(),0));)e=f.$shift(),c(e['$[]']("object")['$is_any?'](b('Hash'),b('Struct'),b(b(b('GxG'),'Database'),'PersistedHash')))&&d(e['$[]']("object"),'each_pair',[],function(b,c){return b==null&&(b=a),c==null&&(c=a),f['$<<'](new Map([["parent",e['$[]']("object")],["parent_selector",b],["object",c]]))}),c(e['$[]']("object")['$is_any?'](b('Array'),b(b(b('GxG'),'Database'),'PersistedArray')))&&d(e['$[]']("object"),'each_with_index',[],function(b,c){return b==null&&(b=a),c==null&&(c=a),f['$<<'](new Map([["parent",e['$[]']("object")],["parent_selector",c],["object",b]]))}),i['$<<'](e);return i},-1),o=d(i('Proc'),'new',[],function(b,c){var e=a;return b==null&&(b=[]),c==null&&(c=a),e=[],d(b,'each',[],function(b){return b==null&&(b=a),g(b['$[]']("parent").$object_id(),c.$object_id())?e['$<<'](b):a}),e},-1);try{if(l=q.$call(k,[]),j=o.$call(l,k),c(s['$respond_to?']("call")))while(c(h(j.$size(),0)))e=j.$shift(),g(e['$[]']("object").$object_id(),k.$object_id())||(p=s.$call(e['$[]']("object"),e['$[]']("parent_selector"),e['$[]']("parent")),c(p)&&m['$<<'](p)),n(e['$[]']("object").$object_id(),a.$object_id())&&(t=o.$call(l,e['$[]']("object")),d(t,'each',[],function(b){return b==null&&(b=a),j['$<<'](b)}))}catch(a){if(f.rescue(a,[i('Exception')])){u=a;try{k.$log_error(new Map([["error",u],["parameters",new Map]]))}finally{f.pop_exception(a)}}else throw a}return m}),e(m,'$process',function c(){var e=c.$$p||a,f=this,b=a;return c.$$p=null,b=f.$clone(),d(b,'iterative',[],e.$to_proc()),b}),e(m,'$process!',function b(){var e=b.$$p||a,c=this;return b.$$p=null,d(c,'iterative',[],e.$to_proc()),c}),e(m,'$search',function e(){var f=e.$$p||a,g=this,b=a;return e.$$p=null,b=[],c(f['$respond_to?']("call"))&&(b=d(g,'iterative',[],f.$to_proc())),b}),e(m,'$paths_to',function(p,f){var u=this,l=a,e=a,j=a,s=a,t=a,q=a,m=a;return p==null&&(p=a),f==null&&(f=""),l=[],g(f['$[]'](0),"/")||(f=k("/",f)),c(h(f.$size(),1))?e=f.$split("/")['$[]'](o(1,-1,!1)).$reverse():e=[],j=u.$get_at_path(f),s=[new Map([["selector",a],["container",j]])],t=d(i('Proc'),'new',[],function(b){var c=a;return b==null&&(b=a),c=a,function(){try{var e=r('break');return d(s,'each_with_index',[],function h(d,f){if(d==null&&(d=a),f==null&&(f=a),g(d['$[]']("container"),b))c=d,e.$throw(a,h.$$is_lambda);else return a})}catch(a){if(a===e)return a.$v;throw a}finally{e.is_orphan=!0}}(),c}),q=j,m=!1,c(j['$is_any?'](b('Hash'),b('Array'),b('Struct'),b(b(b('GxG'),'Database'),'PersistedHash'),b(b(b('GxG'),'Database'),'PersistedArray')))?d(j,'process!',[],function(d,h,f){var j=a,i=a;return d==null&&(d=a),h==null&&(h=a),f==null&&(f=a),n(q.$object_id(),f.$object_id())&&(j=t.$call(f),c(j)&&(e=j['$[]']("prefix").$split("/").$reverse(),g(e.$size(),0)&&e['$<<']("")),q=f),i=h.$to_s(),i=i.$gsub("/","%2f"),e.$unshift(i),m=!1,g(d,p)&&(m=!0),c(m)&&l['$<<'](k("/",e.$reverse().$join("/"))),c(d['$is_any?'](b('Array'),b('Hash'),b('Struct'),b(b(b('GxG'),'Database'),'PersistedHash'),b(b(b('GxG'),'Database'),'PersistedArray')))&&s.$unshift(new Map([["selector",h],["container",d],["prefix",e.$reverse().$join("/")]])),e.$shift(),a}):l['$<<'](k("/",e.$join("/"))),l},-1),e(m,'$get_at_path',function(e){var j=this,b=a,f=a,k=a;return e==null&&(e="/"),b=a,g(e,"/")?b=j:(f=[j],k=e.$split("/"),function(){try{var e=r('break');return d(k.$to_enum(),'each',[],function k(j){var d=a;if(j==null&&(j=a),d=a,c(h(j.$size(),0))&&(g(j['$=~'](/^(?:[0-9])*[0-9](?:[0-9])*$/),0)?d=j.$to_i():(d=j,d=d.$gsub("%2f","/"),d=d.$to_sym())),c(d))if(b=f.$first()['$[]'](d),c(b['$is_a?'](i('NilClass'))))e.$throw(a,k.$$is_lambda);else return f.$unshift(b);else return a})}catch(a){if(a===e)return a.$v;throw a}finally{e.is_orphan=!0}}()),b},-1),e(m,'$set_at_path',function(f,j){var l=this,k=a,i=a,e=a,d=a;return f==null&&(f="/"),j==null&&(j=a),k=a,n(f,"/")&&(i=l.$get_at_path(b('File').$dirname(f)),c(i)&&(e=b('File').$basename(f),d=a,c(h(e.$size(),0))&&(g(e['$=~'](/^(?:[0-9])*[0-9](?:[0-9])*$/),0)?d=e.$to_i():(d=e,d=d.$gsub("%2f","/"),d=d.$to_sym())),c(d)&&(i['$[]='](d,j),k=i['$[]'](d)))),k},-1),e(m,'$gxg_export',function(){var n=this,k=a,e=a,l=a,m=a,f=a,j=a;for(k=new Map([["type","Array"],["content",[]]]),e=[new Map([["parent",a],["parent_selector",a],["object",n],["record",k]])],l=d(i('Proc'),'new',[],function(b){var c=a;return b==null&&(b=a),c=[],d(e,'each',[],function(d){return d==null&&(d=a),g(d['$[]']("parent").$object_id(),b.$object_id())?c['$<<'](d):a}),c},-1),m=d(i('Proc'),'new',[],function(b){return b==null&&(b=a),c(b['$is_any?'](i('Integer'),i('Float'),i('String')))?c(b['$is_a?'](i('Numeric')))?c(b.$to_s()['$include?']("."))?new Map([["type","Float"],["content",b]]):new Map([["type","Integer"],["content",b]]):new Map([["type",b.$class().$to_s()],["content",b]]):new Map([["type",b.$class().$to_s()],["content",b.$to_s()]])}),d(n,'search',[],function(d,f,g){return d==null&&(d=a),f==null&&(f=a),g==null&&(g=a),c(d['$is_a?'](b('Hash')))?e['$<<'](new Map([["parent",g],["parent_selector",f.$clone()],["object",d],["record",new Map([["type","Hash"],["content",new Map]])]])):c(d['$is_a?'](b('Array')))?e['$<<'](new Map([["parent",g],["parent_selector",f.$clone()],["object",d],["record",new Map([["type","Array"],["content",[]]])]])):e['$<<'](new Map([["parent",g],["parent_selector",f.$clone()],["object",d],["record",m.$call(d)]]))}),f=[e['$[]'](0)];c(h(f.$size(),0));)j=f.$shift(),d(l.$call(j['$[]']("object")),'each',[],function(b){return b==null&&(b=a),j['$[]']("record")['$[]']("content")['$[]='](b['$[]']("parent_selector"),b['$[]']("record")),c(b['$[]']("object")['$is_any?'](i('Hash'),i('Array')))?f['$<<'](b):a});return k}),l(m,'$gxg_import',function(j){try{var n=this,l=a,m=a,k=a,e=a;if(j==null&&(j=a),l=a,c(j['$is_a?'](i('Hash'))))if(g(j['$[]']("type"),"Hash"))l=b('Hash').$gxg_import(j);else if(m=d(i('Proc'),'new',[],function h(e,b){var g,j=h.$$s==null?this:h.$$s,d=a,k=a;if(e==null&&(e=a),b==null&&(b=a),c(b['$is_a?'](i('String'))))try{d=(g=e,typeof f.compile=='function'?eval(f.compile(g,{scope_variables:["the_class","type","value","result","import_value","the_exported_record"],arity_check:!1,file:'(eval)',eval:!0})):j.$eval(g)),c(d['$respond_to?']("parse"))?b=d.$parse(b):c(d['$respond_to?']("new"))?b=d.$new(b):c(d['$respond_to?']("try_convert"))&&(b=d.$try_convert(b))}catch(b){if(f.rescue(b,[i('Exception')])){k=b;try{a}finally{f.pop_exception(b)}}else throw b}return b},{$$s:n}),g(j['$[]']("type"),"Array")){for(l=[],k=[new Map([["parent",a],["parent_selector",a],["object",l],["record",j]])];c(h(k.$size(),0));)e=k.$shift(),c(e['$[]']("record")['$[]']("content")['$is_a?'](i('Hash')))?d(e['$[]']("record")['$[]']("content"),'each_pair',[],function(b,c){var f;return b==null&&(b=a),c==null&&(c=a),g(c['$[]']("type"),"Hash")?(e['$[]']("object")['$[]='](b,new Map),k['$<<'](new Map([["parent",e['$[]']("object")],["parent_selector",b],["object",e['$[]']("object")['$[]'](b)],["record",c]]))):g(c['$[]']("type"),"Array")?(e['$[]']("object")['$[]='](b,[]),k['$<<'](new Map([["parent",e['$[]']("object")],["parent_selector",b],["object",e['$[]']("object")['$[]'](b)],["record",c]]))):(f=[b,m.$call(c['$[]']("type"),c['$[]']("content"))],d(e['$[]']("object"),'[]=',f),f[f.length-1])}):c(e['$[]']("record")['$[]']("content")['$is_a?'](i('Array')))&&d(e['$[]']("record")['$[]']("content"),'each_with_index',[],function(c,b){var f;return c==null&&(c=a),b==null&&(b=a),g(c['$[]']("type"),"Hash")?(e['$[]']("object")['$[]='](b,new Map),k['$<<'](new Map([["parent",e['$[]']("object")],["parent_selector",b],["object",e['$[]']("object")['$[]'](b)],["record",c]]))):g(c['$[]']("type"),"Array")?(e['$[]']("object")['$[]='](b,[]),k['$<<'](new Map([["parent",e['$[]']("object")],["parent_selector",b],["object",e['$[]']("object")['$[]'](b)],["record",c]]))):(f=[b,m.$call(c['$[]']("type"),c['$[]']("content"))],d(e['$[]']("object"),'[]=',f),f[f.length-1])})}else l=m.$call(j['$[]']("type"),j['$[]']("content"));return l}catch(a){if(a===f.t_eval_return)return a.$v;throw a}},-1)}(i[0],null,i)},Opal.modules["web/gxg_elements"]=function(g){var B=g.module,A=g.klass,b=g.truthy,c=g.def,e=g.send,h=g.rb_minus,i=g.slice,j=g.rb_plus,f=g.rb_gt,z=g.NilClass,p=g.range,m=g.to_a,n=g.rb_lt,o=g.rb_le,r=g.defs,C=g.return_ivar,x=g.send2,w=g.find_super,q=g.rb_ge,t=g.rb_times,u=g.neqeq,l=g.alias,k=g.eqeq,v=g.return_self,s=g.thrower,y=[],a=g.nil,d=g.$$$;return g.add_stubs('private,is_a?,to_a,to_s,new,each,-,[]=,+,bytesize,>,[],protected,inspect,is_any?,raise,array_to_ascii,string_to_array,to_i,include?,chr,array_to_string,data,to_enum,flatten,<<,filter_data,size,join_arrays,<,first,last,<=,public,respond_to?,process,to_proc,search,>=,maxsize=,padvalue=,outervalue=,call,*,times,clone,each_with_index,replace,index,pattern_range,!=,class,match,outervalue,padvalue,maxsize,dclone,frozen?,freeze,initialize_dup,slice,filter_parameters,count,==,try_convert,join,<=>,collect,delete,reject!,ord,with_index,hash,exception,gsub,message,upcase,split,force_encoding,pack,delete_at,reject,reverse,clear,%,~,rotate,sample,select,shuffle,sort,sort_by!,encode64,to_ascii,uniq,insert,rassoc,collect!,compact,values_at,find_index,select!,=~,unshift,basename'),function(D,E){var F=B(D,'GxG'),y=[F].concat(E);return function(H,E,F){var B=A(H,E,'ByteArray'),G=[B].concat(F),y=g.$r(G),D=B.$$prototype;return D.pad_value=D.data=D.max_size=D.outer=a,B.$private(),c(B,'$array_to_ascii',function(c){var e=a,f=a;return c==null&&(c=a),e="",b(c['$is_a?'](d(d('Buffer'),'Array')))&&(f=new Uint8Array(c.$to_a()),e=new window.TextDecoder('ascii').decode(f)),e},-1),c(B,'$array_to_string',function(c){var d=a;return c==null&&(c=a),d="",b(c)&&(d=(new window.TextDecoder).decode(new Uint8Array(c.$to_a())).$to_s()),d},-1),c(B,'$string_to_array',function(b){var c=a,d=a,f=a;return b==null&&(b=""),c=(new window.TextEncoder).encode(b.toString()),d=c.byteLength,f=y('Buffer').$new(d).$to_a(),e(g.Range.$new(0,h(d,1),!1),'each',[],function(b){var d;return b==null&&(b=a),(d=[b,c[b]],e(f,'[]=',d),d[d.length-1])}),f},-1),c(B,'$join_arrays',function(n){var m,l,c=a,d=a,k=a;return m=i(arguments),l=m,c=0,d=0,e(l,'each',[],function(b){return b==null&&(b=a),c=j(c,b.$bytesize())}),k=y('Buffer').$new(c).$to_a(),e(l,'each',[],function(c){var i=a;return c==null&&(c=a),i=c.$bytesize(),b(f(i,0))?e(g.Range.$new(0,h(i,1),!1),'each',[],function(b){return b==null&&(b=a),k['$[]='](d,c['$[]'](b)),d=j(d,1)}):a}),k},-1),B.$protected(),c(B,'$filter_data',function(c){var g=this,i=a,h=a;return c==null&&(c=""),i="ByteArray.new expects a String, a Integer or Float between 0 and 255, a nil ( counted as padvalue() ), a ByteArray, or an Array of any of those; you provided "+c.$inspect(),b(c['$is_any?'](z,d('String'),d('Numeric'),d('Array'),d(d('GxG'),'ByteArray'),d(y('Buffer'),'Array')))||g.$raise(y('Exception').$new(i)),b(c['$is_a?'](d(y('Buffer'),'Array')))&&(c=g.$array_to_ascii(c)),b(c['$is_a?'](d('String')))&&(c=g.$string_to_array(c)),b(c['$is_a?'](d('Numeric')))&&(c=c.$to_i(),b(p(0,255,!1)['$include?'](c))?c=g.$string_to_array(c.$chr()):g.$raise(y('Exception').$new(i))),b(c['$is_a?'](d(d('GxG'),'ByteArray')))&&(c=g.$string_to_array(g.$array_to_string(c.$data()))),b(c['$is_a?'](d('Array')))&&(h=[],e(c.$flatten().$to_enum(),'each',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),h['$<<'](d.$filter_data(b))},{$$s:g}),b(f(h.$size(),0))?c=e(g,'join_arrays',m(h)):c=y('Buffer').$new(0).$to_a()),b(c)||(c=y('Buffer').$new(1).$to_a(),c['$[]='](0,g.pad_value.$to_i())),c},-1),c(B,'$filter_parameters',function(m){var k,c,f=this,e=a;return k=i(arguments),c=k,e=a,b(c['$[]'](0)['$is_any?'](d('Numeric'),d('Integer'),d('Float'),d('BigDecimal')))?(c['$[]='](0,c['$[]'](0).$to_i()),b(n(c['$[]'](0),0))&&c['$[]='](0,j(f.data.$bytesize(),c['$[]'](0))),e=g.Range.$new(c['$[]'](0),c['$[]'](0),!1),b(c['$[]'](1)['$is_a?'](y('Numeric')))&&(c['$[]='](1,c['$[]'](1).$to_i()),b(n(c['$[]'](1),1))?f.$raise(y('ArgumentError').$new("Second parameter needs to be a Numeric greater than 0, you provided "+c['$[]'](1).$inspect())):e=g.Range.$new(c['$[]'](0),j(c['$[]'](0),h(c['$[]'](1),1)),!1))):b(c['$[]'](0)['$is_a?'](y('Range')))?(b(n(c['$[]'](0).$first(),0))?c['$[]='](1,j(f.data.$bytesize(),c['$[]'](0).$first())):c['$[]='](1,c['$[]'](0).$first()),b(n(c['$[]'](0).$last(),0))?c['$[]='](2,j(f.data.$bytesize(),c['$[]'](0).$last())):c['$[]='](2,c['$[]'](0).$last()),b(o(c['$[]'](1),c['$[]'](2)))?e=g.Range.$new(c['$[]'](1),c['$[]'](2),!1):e=g.Range.$new(c['$[]'](2),c['$[]'](1),!1)):b(e)||f.$raise(y('ArgumentError').$new("First parameter needs to be a Numeric or a Range, you provided "+c['$[]'](0).$inspect())),e},-1),B.$public(),r(B,'$try_convert',function(f){var b,c;b=i(arguments),c=b;try{return d(y('GxG'),'ByteArray').$new(1,[c])}catch(b){if(g.rescue(b,[y('Exception')]))try{return a}finally{g.pop_exception(b)}else throw b}},-1),r(B,'$[]',function(f){var a,b;return a=i(arguments),b=a,e(d(y('GxG'),'ByteArray'),'new',m(b))},-1),r(B,'$process',function g(c){var h=g.$$p||a,i=this,f=a;return g.$$p=null,c==null&&(c=d(y('GxG'),'ByteArray').$new()),f=d(y('GxG'),'ByteArray').$new(),b(h['$respond_to?']("call"))&&(b(c['$is_any?'](d('Array'),d('Hash'),d(d('GxG'),'ByteArray'),d('Set'),d('Struct')))?f=e(c,'process',[],h.$to_proc()):i.$raise(y('ArgumentError'),"you must pass an Array, a ByteArray, or a Hash")),f},-1),r(B,'$search',function g(c){var h=g.$$p||a,i=this,f=a;return g.$$p=null,c==null&&(c=d(y('GxG'),'ByteArray').$new()),f=d(y('GxG'),'ByteArray').$new(),b(h['$respond_to?']("call"))&&(b(c['$is_any?'](d('Array'),d('Hash'),d(d('GxG'),'ByteArray'),d('Set'),d('Struct')))?f=e(c,'search',[],h.$to_proc()):i.$raise(y('ArgumentError'),"you must pass an Array, a ByteArray, or a Hash")),f},-1),c(B,'$data',C("data")),c(B,'$initialize',function o(u){var r=o.$$p||a,s,c,d=this,k=a,l=a,n=a,j=a;return o.$$p=null,s=i(arguments),c=s,d.data=y('Buffer').$new(0).$to_a(),k=new Map([["process",p(18446744073709551616,18446744073709551616,!1)]]),d.max_size=a,d.pad_value=0,d.outer=a,x(d,w(d,'initialize',o,!1,!0),'initialize',[],null),b(f(c.$size(),0))&&(b(r['$respond_to?']("call"))?b(c['$[]'](0)['$is_a?'](y('Numeric')))&&(c['$[]='](0,c['$[]'](0).$to_i()),b(q(c['$[]'](0),0))&&(b(f(c['$[]'](0),k['$[]']("process").$first()))&&c['$[]='](0,k['$[]']("process").$first()),b(c['$[]'](1)['$is_a?'](y('Numeric')))&&d['$maxsize='](c['$[]'](1).$to_i()),b(c['$[]'](2)['$is_a?'](y('Numeric')))&&d['$padvalue='](c['$[]'](1).$to_i()),b(c['$[]'](3)['$is_a?'](y('Numeric')))&&d['$outervalue='](c['$[]'](1).$to_i()),e(g.Range.$new(0,h(c['$[]'](0),1),!1).$to_enum(),'each',[],function g(d){var i=g.$$s==null?this:g.$$s,h=a;return d==null&&(d=a),h=[r.$call(d)].$flatten(),e(h.$to_enum(),'each',[],function g(d){var e=g.$$s==null?this:g.$$s,h=a;return e.data==null&&(e.data=a),d==null&&(d=a),d=b(h=e.$filter_data(d))?h:y('Buffer').$new(0).$to_a(),b(f(d.$bytesize(),0))?(b(f(t(c['$[]'](0),d.$bytesize()),k['$[]']("process").$first()))&&e.$raise(y('NoMemoryError').$new("This operation will exceed available per-process memory limits")),e.data=e.$join_arrays(e.data,d)):a},{$$s:i})},{$$s:d}),b(d.max_size)&&b(f(d.data.$bytesize(),d.max_size))&&(d.max_size=d.data.$bytesize()))):(b(c['$[]'](0)['$is_a?'](y('Numeric')))?(l=c['$[]'](0).$to_i(),b(c['$[]'](1))?n=[c['$[]'](1)].$flatten():n=[d.pad_value.$to_i().$chr()],b(c['$[]'](2)['$is_a?'](y('Numeric')))&&d['$maxsize='](c['$[]'](2).$to_i()),b(c['$[]'](3)['$is_a?'](y('Numeric')))&&d['$padvalue='](c['$[]'](3).$to_i()),b(c['$[]'](4)['$is_a?'](y('Numeric')))&&d['$outervalue='](c['$[]'](4).$to_i())):(l=1,n=[c['$[]'](0)].$flatten(),b(c['$[]'](1)['$is_a?'](y('Numeric')))&&d['$maxsize='](c['$[]'](1).$to_i()),b(c['$[]'](2)['$is_a?'](y('Numeric')))&&d['$padvalue='](c['$[]'](2).$to_i()),b(c['$[]'](3)['$is_a?'](y('Numeric')))&&d['$outervalue='](c['$[]'](3).$to_i())),j=[],e(n.$to_enum(),'each',[],function d(c){var f=d.$$s==null?this:d.$$s,e=a;return c==null&&(c=a),j['$<<'](b(e=f.$filter_data(c))?e:y('Buffer').$new(0).$to_a())},{$$s:d}),j=e(d,'join_arrays',m(j)),b(f(j.$bytesize(),0))&&(b(f(t(l,j.$bytesize()),k['$[]']("process").$first()))&&d.$raise(y('NoMemoryError').$new("This operation will exceed available per-process memory limits")),e(l,'times',[],function c(){var b=c.$$s==null?this:c.$$s;return b.data==null&&(b.data=a),b.data=b.$join_arrays(b.data,j)},{$$s:d})),b(d.max_size)&&b(f(d.data.$bytesize(),d.max_size))&&(d.max_size=d.data.$bytesize()))),d},-1),c(B,'$process',function d(){var f=d.$$p||a,g=this,c=a;return d.$$p=null,c=g.$clone(),b(f['$respond_to?']("call"))&&e(c,'each_with_index',[],function d(b,c){var e=d.$$s==null?this:d.$$s;return b==null&&(b=a),c==null&&(c=a),f.$call(b,c,e)},{$$s:g}),c}),c(B,'$process!',function d(){var f=d.$$p||a,c=this;return d.$$p=null,b(f['$respond_to?']("call"))&&c.$replace(c.$array_to_ascii(e(c,'process',[],f.$to_proc()).$data())),c}),c(B,'$search',function d(){var f=d.$$p||a,g=this,c=a;return d.$$p=null,c=[],b(f['$respond_to?']("call"))&&e(g,'each_with_index',[],function h(d,e){var i=h.$$s==null?this:h.$$s,g=a;return d==null&&(d=a),e==null&&(e=a),g=f.$call(d,e,i),b(g)?c['$<<'](g):a},{$$s:g}),c}),c(B,'$pattern_range',function(c,f){var i=this,k=a,e=a;return c==null&&(c=""),f==null&&(f=0),k=a,c=i.$array_to_ascii(d(y('GxG'),'ByteArray').$new(c).$data()),e=i.$array_to_ascii(i.$data()).$index(c,f),b(e)&&(k=g.Range.$new(e,j(e,h(c.$size(),1)),!1)),k},-1),c(B,'$pattern_ranges',function(c){var f=this,h=a,g=a,e=a;for(c==null&&(c=""),h=[],g=0,b(c['$is_a?'](d(y('GxG'),'ByteArray')))&&(c=f.$array_to_ascii(c.$data())),e=f.$pattern_range(c,g);u(e,a);){if(b(e['$is_a?'](d('Range'))))if(h['$<<'](e),b(o(j(e.$last(),1),f.data.$bytesize())))g=j(e.$last(),1);else break;e=f.$pattern_range(c,g)}return h},-1),c(B,'$padvalue',function(){var a=this;return a.pad_value.$clone()}),c(B,'$padvalue=',function(g){var d,a,c=this;return d=i(arguments),a=d,b(f(a.$size(),0))&&(b(a['$[]'](0)['$is_a?'](y('Float')))&&a['$[]='](0,a['$[]'](0).$to_i()),b(a['$[]'](0)['$is_a?'](y('Integer')))?b(p(0,255,!1)['$include?'](a['$[]'](0)))&&(c.pad_value=a['$[]'](0)):c.$raise(y('TypeError').$new("Value type: expected Float or Integer. You provided "+a['$[]'](0).$class()))),c.pad_value.$clone()},-1),c(B,'$match',function(b){var a=this;return a.$array_to_ascii(a.data).$match(b)}),c(B,'$maxsize',function(){var a=this;return a.max_size.$clone()}),c(B,'$maxsize=',function(k){var e,c,d=this;return e=i(arguments),c=e,b(f(c.$size(),0))?b(c['$[]'](0))?(b(c['$[]'](0)['$is_a?'](y('Numeric')))&&c['$[]='](0,c['$[]'](0).$to_i()),b(c['$[]'](0)['$is_a?'](y('Integer')))?(b(f(c['$[]'](0),18446744073709551616))&&d.$raise(y('NoMemoryError').$new("Setting maxsize this high exceeds per-process memory limits")),b(f(c['$[]'](0),d.max_size.$to_i()))?d.max_size=c['$[]'](0):b(n(c['$[]'](0),d.max_size.$to_i()))&&(d.max_size=c['$[]'](0),b(f(d.data.$bytesize(),c['$[]'](0)))&&d.data.$replace(d.data['$[]'](g.Range.$new(0,h(c['$[]'](0),1),!1))))):d.$raise(y('ArgumentError').$new("Expected NilClass or Numeric class. You provided "+c['$[]'](0).$class()))):d.max_size=a:d.max_size=a,d.max_size.$clone()},-1),c(B,'$outervalue',function(){var a=this;return a.outer.$clone()}),c(B,'$outervalue=',function(h){var e,c,d=this;return e=i(arguments),c=e,b(f(c.$size(),0))?b(c['$[]'](0))?(b(c['$[]'](0)['$is_a?'](y('Float')))&&c['$[]='](0,c['$[]'](0).$to_i()),b(c['$[]'](0)['$is_a?'](y('Integer')))?b(p(0,255,!1)['$include?'](c['$[]'](0)))&&(d.outer=c['$[]'](0)):d.$raise(y('TypeError').$new("Expected a NilClass, a Float, or a Integer. You provided "+c['$[]'](0).$class()))):d.outer=a:d.outer=a,d.$outervalue()},-1),c(B,'$dclone',function(){var b=this,c=a;return c=d(y('GxG'),'ByteArray').$new(b.$array_to_ascii(b.data)),c['$padvalue='](b.$padvalue()),c['$maxsize='](b.$maxsize()),c['$outervalue='](b.$outervalue()),c}),c(B,'$initialize_clone',function(){var d=this,c=a;return c=d.$dclone(),b(d['$frozen?']())&&c.$freeze(),c}),c(B,'$initialize_dup',function(){var a=this;return a.$dclone()}),l(B,"dup","initialize_dup"),l(B,"initialize_copy","initialize_dup"),c(B,'$clone',function(){var a=this;return a.$initialize_dup()}),c(B,'$[]',function(b,c){var d=this;return b==null&&(b=0),c==null&&(c=a),d.$slice(b,c)},-1),c(B,'$[]=',function(p,o,l){var c=this,m=a,q=a,i=a,r=a;return p==null&&(p=0),o==null&&(o=a),l==null&&(l=a),b(o)&&(b(l)||(l=o,o=a)),l=c.$filter_data(l),m=a,q=a,b(l)&&(b(f(l.$bytesize(),0))&&(i=c.$filter_parameters(p,o),b(i)||(b(o)?m=y('ArgumentError').$new(""+p.$inspect()+","+o.$inspect()+" could not be fashioned into a valid Indexer"):m=y('ArgumentError').$new(""+p.$inspect()+" could not be fashioned into a valid Indexer")),b(m)&&c.$raise(m),b(c.max_size)&&((b(f(i.$count(),c.max_size))||b(f(i.$first(),h(c.max_size,1)))||b(f(i.$last(),h(c.max_size,1))))&&(m=y('IndexError').$new("Index exceeds "+c.max_size+" limit. You might need to adjust maxsize.")),b(f(j(i.$first(),h(l.$bytesize(),1)),h(c.max_size,1)))&&(m=y('RangeError').$new("Data size at specified Index exceeds "+c.max_size+" limit. You might need to adjust maxsize.")),b(p['$is_a?'](y('Integer')))?b(o)?b(f(j(i.$first(),h(i.$count(),1)),h(c.max_size,1)))?m=y('RangeError').$new("Range exceeds "+c.max_size+" limit. You might need to adjust maxsize."):b(n(i.$count(),l.$bytesize()))&&b(f(j(j(i.$first(),h(i.$count(),1)),h(h(l.$bytesize(),1),h(i.$count(),1))),h(c.max_size,1)))&&(m=y('RangeError').$new("Value size exceeds "+c.max_size+" limit. You might need to adjust maxsize.")):(b(f(j(h(c.data.$size(),1),l.$bytesize()),c.max_size))&&(m=y('RangeError').$new("Operation exceeds "+c.max_size+" limit. You might need to adjust maxsize.")),b(f(j(i.$first(),h(l.$bytesize(),1)),h(c.max_size,1)))&&(m=y('RangeError').$new("Value size exceeds "+c.max_size+" limit. You might need to adjust maxsize."))):b(f(i.$count(),c.max_size))?m=y('RangeError').$new("Range exceeds "+c.max_size+" limit. You might need to adjust maxsize."):b(n(i.$count(),l.$bytesize()))&&b(f(j(j(i.$first(),h(i.$count(),1)),h(h(l.$bytesize(),1),h(i.$count(),1))),h(c.max_size,1)))&&(m=y('RangeError').$new("Value size exceeds "+c.max_size+" limit. You might need to adjust maxsize.")),b(m)&&c.$raise(m)),b(f(i.$first(),h(c.data.$bytesize(),1)))&&e(h(i.$first(),h(c.data.$bytesize(),1)),'times',[],function c(){var b=c.$$s==null?this:c.$$s;return b.pad_value==null&&(b.pad_value=a),b['$<<'](b.pad_value.$chr())},{$$s:c}),b(o)?c.data['$[]='](i.$first(),i.$count(),l):b(p['$is_a?'](y('Numeric')))?k(l.$bytesize(),1)?c.data['$[]='](i.$first(),l['$[]'](0)):(r=i.$first(),e(g.Range.$new(0,h(l.$bytesize(),1),!1),'each',[],function i(c){var g,d=i.$$s==null?this:i.$$s;return d.data==null&&(d.data=a),c==null&&(c=a),b(f(c,h(d.data.$bytesize(),1)))?d['$<<'](l['$[]'](c)):(g=[j(r,c),l['$[]'](c)],e(d.data,'[]=',g),g[g.length-1])},{$$s:c})):c.data['$[]='](i,l)),q=d(y('GxG'),'ByteArray').$new(l)),q},-1),c(B,'$|',function(k){var g,h,j=this,f=a,c=a;return g=i(arguments),h=g,f=d(y('GxG'),'ByteArray').$try_convert(h),c=j.$clone(),b(f)&&e(f,'each',[],function(d){return d==null&&(d=a),b(c['$include?'](d))?a:c['$<<'](d)}),c},-1),c(B,'$&',function(l){var j,g,k=this,h=a,c=a;return j=i(arguments),g=j,h=d(y('GxG'),'ByteArray').$new(),b(f(g.$size(),0))&&(c=d(y('GxG'),'ByteArray').$try_convert(g),b(c)&&e(k,'each',[],function(d){return d==null&&(d=a),b(c['$include?'](d))?h['$<<'](d):a})),h},-1),c(B,'$*',function(l){var j,c,g=this,h=a;return j=i(arguments),c=j,h=d(y('GxG'),'ByteArray').$new(),b(f(g.$size(),0))&&(b(f(c.$size(),0))?b(c['$[]'](0)['$is_a?'](d('String')))?h=g.$join(c['$[]'](0)):b(c['$[]'](0)['$is_a?'](y('Numeric')))?(c['$[]='](0,c['$[]'](0).$to_i()),b(o(t(c['$[]'](0),g.$size()),18446744073709551616))?e(c['$[]'](0),'times',[],function a(){var b=a.$$s==null?this:a.$$s;return h['$<<'](b.$clone())},{$$s:g}):g.$raise(y('NoMemoryError').$new("This operation will exceed per-process memory limits"))):g.$raise(y('ArgumentError').$new("a String or Numeric is required, you provied "+c['$[]'](0).$inspect())):g.$raise(y('TypeError').$new("Can't convert nil to ByteArray"))),h},-1),c(B,'$+',function(m){var k,g,e=this,h=a,j=a,c=a;return k=i(arguments),g=k,h=d(y('GxG'),'ByteArray').$new(),b(f(g.$size(),0))?(j=e.$clone(),c=d(y('GxG'),'ByteArray').$try_convert(g),b(c)&&b(f(c.$size(),0))&&(h=d(y('GxG'),'ByteArray').$new(1,[e.$array_to_ascii(j.$data()),e.$array_to_ascii(c.$data())]))):e.$raise(y('TypeError').$new("Can't convert nil to ByteArray")),h},-1),c(B,'$-',function(l){var j,g,k=this,h=a,c=a;return j=i(arguments),g=j,h=d(y('GxG'),'ByteArray').$new(),b(f(g.$size(),0))&&(c=d(y('GxG'),'ByteArray').$try_convert(g),b(c)&&e(k,'each',[],function(d){return d==null&&(d=a),b(c['$include?'](d))?a:h['$<<'](d)})),h},-1),c(B,'$<<',function(l){var h,g,c=this,e=a;return h=i(arguments),g=h,b(f(g.$size(),0))&&(e=d(y('GxG'),'ByteArray').$try_convert(g),b(e)&&(b(c.max_size)&&b(f(j(c.data.$bytesize(),e.$size()),c.max_size))&&c.$raise(y('RangeError').$new("Operation exceeds "+c.max_size+" limit. You might need to adjust maxsize.")),c.data=c.$join_arrays(c.data,e.$data()))),c},-1),c(B,'$<=>',function(k){var h,c,j=this,e=a,g=a;return h=i(arguments),c=h,e=1,b(f(c.$size(),0))&&(b(c['$[]'](0)['$is_a?'](d(d('GxG'),'ByteArray')))?e=j.$data()['$<=>'](c['$[]'](0).$data()):(g=d(y('GxG'),'ByteArray').$try_convert(c),b(g)&&(e=j.$data()['$<=>'](g.$data())))),e},-1),c(B,'$==',function(k){var g,c,h=this,e=a;return g=i(arguments),c=g,e=!1,b(f(c.$size(),0))&&b(c['$[]'](0)['$is_a?'](d(d('GxG'),'ByteArray')))&&(e=h.$data()['$=='](c['$[]'](0).$data())),e},-1),c(B,'$at',function(f){var c,a,d=this;return c=i(arguments),a=c,b(a['$[]'](0)['$is_a?'](y('Float')))&&a['$[]='](0,a['$[]'](0).$to_i()),b(a['$[]'](0)['$is_a?'](y('Integer')))?d['$[]'](a['$[]'](0)):d.$raise(y('TypeError').$new("Expected Integer or Float. You provided "+a['$[]'](0).$class()))},-1),c(B,'$clear',function(){var a=this;return a.data=y('Buffer').$new(0).$to_a(),a}),c(B,'$collect',function g(){var h=g.$$p||a,f=this,c=a;return g.$$p=null,c=d(y('GxG'),'ByteArray').$new(),b(h['$respond_to?']("call"))?e(f,'each',[],function d(b){var e=d.$$s==null?this:d.$$s;return b==null&&(b=a),c['$<<'](e.$array_to_ascii(e.$filter_data(h.$call(b))))},{$$s:f}):c=f.$to_enum("collect"),c}),c(B,'$collect!',function d(){var f=d.$$p||a,c=this;return d.$$p=null,b(f['$respond_to?']("call"))?(c.data=e(c,'collect',[],f.$to_proc()).$data(),c):c.$to_enum("collect!")}),c(B,'$combination',function k(l){var f=k.$$p||a,g,h,j=this,c=a;return k.$$p=null,g=i(arguments),h=g,c=e(j.$to_a(),'to_enum',["combination"].concat(m(h))),b(f['$respond_to?']("call"))?(e(c,'each',[],function(b){return b==null&&(b=a),f.$call(d(y('GxG'),'ByteArray').$new(b))}),j):c},-1),c(B,'$repeated_combination',function k(l){var f=k.$$p||a,g,h,j=this,c=a;return k.$$p=null,g=i(arguments),h=g,c=e(j.$to_a(),'to_enum',["repeated_combination"].concat(m(h))),b(f['$respond_to?']("call"))?(e(c,'each',[],function(b){return b==null&&(b=a),f.$call(d(y('GxG'),'ByteArray').$new(b))}),j):c},-1),c(B,'$compact',v),c(B,'$concat',function(k){var h,e,c=this,j=a,g=a;return h=i(arguments),e=h,j=c,b(f(e.$size(),0))&&(g=d(y('GxG'),'ByteArray').$try_convert(e),b(g)?c.data=c.$join_arrays(c.data,g.$data()):c.$raise(y('Exception').$new("Could not convert "+e.$inspect()+" to ByteArray"))),j},-1),c(B,'$count',function g(d){var h=g.$$p||a,f=this,c=a;return g.$$p=null,d==null&&(d=a),c=0,b(d['$is_a?'](y('Numeric')))?e(f,'each',[],function(b){return b==null&&(b=a),k(b,d.$to_i())?c=j(c,1):a}):b(h['$respond_to?']("call"))?e(f,'each',[],function(b){return b==null&&(b=a),k(h.$call(b),!0)?c=j(c,1):a}):c=f.data.$bytesize(),c},-1),c(B,'$cycle',function h(c){var g=h.$$p||a,d=this;if(h.$$p=null,c==null&&(c=a),b(f(d.data.$bytesize(),0))){if(b(n(c.$to_i(),0)))return a;if(b(g['$respond_to?']("call"))){if(b(c))return e(c.$to_i(),'times',[],function b(){var c=b.$$s==null?this:b.$$s;return e(c,'each',[],function(b){return b==null&&(b=a),g.$call(b)})},{$$s:d}),a;while(b(!0))e(d,'each',[],function(b){return b==null&&(b=a),g.$call(b)})}else return d.$to_a().$to_enum("cycle",c)}else return a},-1),c(B,'$delete',function l(n){var m=l.$$p||a,j,e,g=this,d=a,c=a,h=a;return l.$$p=null,j=i(arguments),e=j,d=a,b(e['$[]'](0)['$is_a?'](y('Numeric')))&&(c=g.$filter_data(e['$[]'](0).$to_i()),b(f(c.$bytesize(),1))&&(c=c['$[]'](0)),h=g.data.$delete(c),k(h,g.data)?b(m['$respond_to?']("call"))&&(d=m.$call()):(g.data.$replace(h),d=e['$[]'](0))),d},-1),c(B,'$delete_at',function(v){var t,p,c=this,r=a,l=a,m=a,o=a,s=a,q=a;return t=i(arguments),p=t,r=a,b(f(p.$size(),0))&&b(f(c.$size(),0))&&b(p['$[]'](0)['$is_a?'](d('Numeric')))&&(l=p['$[]'](0).$to_i(),b(n(l,c.$size()))&&(r=c.data['$[]'](l),k(l,0)?m=[g.Range.$new(1,h(c.data.$bytesize(),1),!1)]:(m=[g.Range.$new(0,h(l,1),!1)],k(l,h(c.data.$bytesize(),1))||m['$<<'](g.Range.$new(j(l,1),h(c.data.$bytesize(),1),!1))),o=0,e(m,'each',[],function(b){return b==null&&(b=a),o=j(o,b.$size())}),s=y('Buffer').$new(o).$to_a(),q=0,e(m,'each',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),e(b,'each',[],function d(b){var c=d.$$s==null?this:d.$$s;return c.data==null&&(c.data=a),b==null&&(b=a),s['$[]='](q,c.data['$[]'](b)),q=j(q,1)},{$$s:d})},{$$s:c}),c.data=s)),r},-1),c(B,'$delete_if',function b(){var c=b.$$p||a,d=this;return b.$$p=null,e(d,'reject!',[],c.$to_proc())}),c(B,'$drop',function(a){var b=this;return b.$slice(g.Range.$new(h(a.$to_i(),1),-1,!1))}),c(B,'$drop_while',function f(){var g=f.$$p||a,h=this,c=a;return f.$$p=null,c=d(y('GxG'),'ByteArray').$new(),b(g['$respond_to?']("call"))?(e(h,'each',[],function(d){var e=a;return d==null&&(d=a),e=g.$call(d),b(e)?a:c['$<<'](d)}),c):h.$to_a().$to_enum("drop_while")}),c(B,'$each',function d(){var g=d.$$p||a,c=this;return d.$$p=null,b(g['$respond_to?']("call"))?(b(f(c.data.$bytesize(),0))&&e(c.data.$to_a(),'each',[],function(b){return b==null&&(b=a),g.$call(b.$ord())}),c):c.$to_enum("each")}),c(B,'$each_index',function d(){var i=d.$$p||a,c=this;return d.$$p=null,b(i['$respond_to?']("call"))?(b(f(c.data.$bytesize(),0))&&e(g.Range.$new(0,h(c.data.$bytesize(),1),!1),'each',[],function(b){return b==null&&(b=a),i.$call(b)}),c):c.$to_enum("each_index")}),c(B,'$each_with_index',function g(c){var h=g.$$p||a,d=this;return g.$$p=null,c==null&&(c=0),b(h['$respond_to?']("call"))?(b(f(d.data.$bytesize(),0))&&e(d.data.$to_a().$with_index(c),'each',[],function(b,c){return b==null&&(b=a),c==null&&(c=a),h.$call(b.$ord(),c)}),d):d.$to_enum("each_with_index",c)},-1),c(B,'$empty?',function(){var a=this;return a.data.$bytesize()['$=='](0)}),c(B,'$eql?',function(g){var c,a,d=this;return!!(c=i(arguments),a=c,b(f(a.$size(),0)))&&d['$=='](a['$[]'](0))},-1),c(B,'$fetch',function e(j){var g=e.$$p||a,h,c,d=this;return e.$$p=null,h=i(arguments),c=h,b(f(c.$size(),0))&&b(c['$[]'](0)['$is_a?'](y('Numeric')))?(c['$[]='](0,d.$filter_parameters(c['$[]'](0).$to_i()).$first()),b(q(c['$[]'](0),d.$size()))?b(c['$[]'](1))?b(g['$respond_to?']("call"))?g.$call(c['$[]'](0)):c['$[]'](1):d.$raise(y('IndexError').$new("Index specified lies outside the ByteArray")):d['$[]'](c['$[]'](0))):a},-1),c(B,'$fill',function r(w){var s=r.$$p||a,t,c,k=this,v=a,o=a,p=a,q=a,l=a,u=a;if(r.$$p=null,t=i(arguments),c=t,v=a,o=d(y('GxG'),'ByteArray').$new(),b(s['$respond_to?']("call")))b(f(c.$size(),0))?(b(c['$[]'](0)['$is_a?'](y('Numeric')))&&(c['$[]='](0,c['$[]'](0).$to_i()),b(n(c['$[]'](0),0))&&(b(c['$[]'](1)['$is_a?'](y('Numeric')))?b(f(c['$[]'](1).$to_i(),0))?c=[g.Range.$new(j(k.data.$bytesize(),c['$[]'](0)),j(j(k.data.$bytesize(),c['$[]'](0)),h(c['$[]'](1).$to_i(),1)),!1)]:k.$raise(y('ArgumentError').$new("length specified should be a positive Integer for Float")):c=[g.Range.$new(j(k.data.$bytesize(),c['$[]'](0)),h(k.data.$bytesize(),1),!1)])),p=e(k,'filter_parameters',m(c))):p=g.Range.$new(0,h(b(q=k.max_size)?q:k.data.$bytesize(),1),!1),e(g.Range.$new(0,h(k.data.$bytesize(),1),!1),'each',[],function g(d){var c=g.$$s==null?this:g.$$s,e=a;return c.pad_value==null&&(c.pad_value=a),c.data==null&&(c.data=a),d==null&&(d=a),b(p['$include?'](d))?(e=c.$filter_data(s.$call(d)),b(f(e.$size(),0)))?o['$<<'](e['$[]'](0)):o['$<<'](c.pad_value):o['$<<'](c.data['$[]'](d))},{$$s:k});else if(b(f(c.$size(),0))){switch(l=a,c.$size().valueOf()){case 1:p=g.Range.$new(0,h(b(u=k.max_size)?u:k.data.$bytesize(),1),!1),l=k.$filter_data(c['$[]'](0));break;case 2:p=k.$filter_parameters(c['$[]'](1)),l=k.$filter_data(c['$[]'](0));break;case 3:p=k.$filter_parameters(c['$[]'](1),c['$[]'](2)),l=k.$filter_data(c['$[]'](0));break;default:p=k.$filter_parameters(c['$[]'](1),c['$[]'](2)),l=k.$filter_data(c['$[]'](0))}l=b(q=l)?q:k.pad_value,b(l['$is_a?'](d('Array')))&&(l=b(q=l['$[]'](0))?q:k.pad_value),e(g.Range.$new(0,h(k.data.$bytesize(),1),!1).$to_enum(),'each',[],function e(c){var d=e.$$s==null?this:e.$$s;return d.data==null&&(d.data=a),c==null&&(c=a),b(p['$include?'](c))?o['$<<'](l):o['$<<'](d.data['$[]'](c))},{$$s:k})}else k.$raise(y('ArgumentError').$new("wrong number of arguments (0 for 1..3)"));return b(f(o.$size(),0))&&(k.data=o.$data()),k},-1),c(B,'$first',function(k){var e,c,d=this;return e=i(arguments),c=e,b(f(c.$size(),0))?(b(c['$[]'](0)['$is_a?'](y('Float')))&&c['$[]='](0,c['$[]'](0).$to_i()),b(c['$[]'](0)['$is_a?'](y('Integer')))?b(f(c['$[]'](0),0))?(b(d.max_size)&&(b(o(c['$[]'](0),d.max_size))||d.$raise(y('RangeError').$new(""+c['$[]'](0)+" is out of range (1 - "+d.max_size+")."))),d['$[]'](g.Range.$new(0,h(c['$[]'](0),1),!1))):a:d.$raise(y('TypeError').$new("Expected Integer. You provided "+c['$[]'](0).$class()))):d['$[]'](0)},-1),c(B,'$flatten',function(){var a=this;return a.$dclone()}),c(B,'$flatten!',v),c(B,'$freeze',function c(){var d=c.$$p||a,b=this;return c.$$p=null,b.data.$freeze(),b.max_size.$freeze(),b.pad_value.$freeze(),b.outer.$freeze(),x(b,w(b,'freeze',c,!1,!0),'freeze',[],null)}),c(B,'$hash',function(){var a=this;return a.data.$hash()}),c(B,'$include?',function(g){var d,a,c=this;return d=i(arguments),a=d,b(f(a.$size(),0))?(b(a['$[]'](0)['$is_a?'](y('Float')))&&a['$[]='](0,a['$[]'](0).$to_i()),b(a['$[]'](0)['$is_a?'](y('Integer')))?b(p(0,255,!1)['$include?'](a['$[]'](0)))?c.data['$include?'](a['$[]'](0).$chr()):c.$raise(y('RangeError').$new("Value out of range: range is 0 to 255. You provided "+a['$[]'](0))):c.$raise(y('TypeError').$new("Expected Integer or Float. You provided "+a['$[]'](0).$class()))):c.$raise(y('ArgumentError').$new("Wrong number of arguments ("+a.$size()+" for 1)."))},-1),c(B,'$find_index',function n(o){var l=n.$$p||a,m,c,d=this,g=a,h=a;return n.$$p=null,m=i(arguments),c=m,g=a,b(l['$respond_to?']("call"))?(h=0,function(){try{var b=s('break');return e(d,'each',[],function d(c){return c==null&&(c=a),k(l.$call(c),!0)&&(g=h,b.$throw(a,d.$$is_lambda)),h=j(h,1)})}catch(a){if(a===b)return a.$v;throw a}finally{b.is_orphan=!0}}()):b(f(c.$size(),0))?(b(c['$[]'](0)['$is_a?'](y('Float')))&&c['$[]='](0,c['$[]'](0).$to_i()),b(c['$[]'](0)['$is_a?'](y('Integer')))?b(p(0,255,!1)['$include?'](c['$[]'](0)))&&(b(c['$[]'](1))?g=d.$array_to_ascii(d.data).$index(c['$[]'](0).$chr(),c['$[]'](1)):g=d.$array_to_ascii(d.data).$index(c['$[]'](0).$chr())):d.$raise(y('TypeError').$new("Expected Integer or Float. You provided "+c['$[]'](0).$class()))):g=d.data.$to_enum("bytes"),g},-1),c(B,'$insert',function(w){var u,l,c=this,r=a,p=a,d=a,s=a,t=a;if(u=i(arguments),l=u,b(f(l.$size(),1)))if(b(l['$[]'](0)['$is_a?'](y('Float')))&&l['$[]='](0,l['$[]'](0).$to_i()),b(l['$[]'](0)['$is_a?'](y('Integer')))){r=c.$filter_data(l['$[]'](g.Range.$new(1,h(l.$size(),1),!1))),b(c.max_size)&&(b(o(j(c.data.$bytesize(),r.$bytesize()),c.max_size))||c.$raise(y('RangeError').$new("Operation exceeds "+c.max_size+" limit. You need to adjust maxsize.")));try{p=l['$[]'](0),d=[],b(q(p,0))&&b(n(p,c.data.$bytesize()))&&(k(p,0)?(d['$<<'](r),d['$<<'](c.data)):k(p,h(c.data.$bytesize(),1))?(d['$<<'](c.$slice(g.Range.$new(0,h(p,1),!1)).$data()),d['$<<'](r),s=y('Buffer').$new(1).$to_a(),s['$[]='](0,c.data['$[]'](h(c.data.$bytesize(),1))),d['$<<'](s)):(d['$<<'](c.$slice(g.Range.$new(0,h(p,1),!1)).$data()),d['$<<'](r),d['$<<'](c.$slice(g.Range.$new(p,h(c.data.$bytesize(),1),!1)).$data()))),b(f(d.$size(),0))&&(c.data=e(c,'join_arrays',m(d)))}catch(a){if(g.rescue(a,[y('Exception')])){t=a;try{c.$raise(t.$exception(t.$message().$gsub("string",c.$class().$to_s())))}finally{g.pop_exception(a)}}else throw a}}else c.$raise(y('TypeError').$new("Expected Integer or Float. You provided "+l['$[]'](0).$class()));else c.$raise(y('ArgumentError').$new("Wrong number of arguments ("+l.$size()+" for 2)."));return c},-1),c(B,'$inspect',function(){var d=this,c=a;return c="[",b(f(d.data.$bytesize(),0))&&e(g.Range.$new(0,h(d.data.$bytesize(),1),!1),'each',[],function h(e){var g=h.$$s==null?this:h.$$s,d=a;return g.data==null&&(g.data=a),e==null&&(e=a),b(f(c.$size(),1))&&(c=j(c,", ")),d=g.data['$[]'](e),b(f(d,15))?c=j(c,"0x"+d.$to_s(16).$upcase()):c=j(c,"0x0"+d.$to_s(16).$upcase())},{$$s:d}),j(c,"]")}),c(B,'$join',function(f){var a,b,c=this;return a=i(arguments),b=a,e(c.$array_to_ascii(c.data).$split(),'join',m(b))},-1),c(B,'$last',function(l){var e,c,d=this,j=a;return e=i(arguments),c=e,b(f(c.$size(),0))?(b(c['$[]'](0)['$is_a?'](y('Float')))&&c['$[]='](0,c['$[]'](0).$to_i()),b(c['$[]'](0)['$is_a?'](y('Integer')))?b(f(c['$[]'](0),0))?(j=g.Range.$new(h(h(d.data.$bytesize(),1),h(c['$[]'](0),1)),h(d.data.$bytesize(),1),!1),b(d.max_size)&&(b(o(c['$[]'](0),d.max_size))||d.$raise(y('RangeError').$new(""+c['$[]'](0)+" is out of range (1 - "+d.max_size+")."))),d['$[]'](j)):d.$raise(y('RangeError').$new(""+c['$[]'](0)+" is out of range (1 - "+d.max_size+").")):d.$raise(y('TypeError').$new("Expected Integer. You provided "+c['$[]'](0).$class()))):d['$[]'](h(d.data.$bytesize(),1))},-1),c(B,'$pack',function(h){var g,c,e=this,d=a,f=a;return g=i(arguments),c=g,d="",b(q(c.$size(),1))?(c['$[]='](0,b(f=c['$[]'](0))?f:""),b(c['$[]'](0)['$is_a?'](y('String')))?(b(c['$[]'](1)['$is_a?'](y('Encoding')))&&d.$force_encoding(c['$[]'](1)),d['$<<'](e.$to_a().$pack(c['$[]'](0)))):e.$raise(y('TypeError').$new("Expected String. You provided "+c['$[]'](0).$class()))):e.$raise(y('ArgumentError').$new("Wrong number of arguments ("+c.$size()+" for 1+).")),d},-1),c(B,'$permutation',function k(l){var g=k.$$p||a,h,j,f=this,c=a;return k.$$p=null,h=i(arguments),j=h,c=e(f.$array_to_ascii(f.data).$split(),'to_enum',["permutation"].concat(m(j))),b(g['$respond_to?']("call"))?(e(c,'each',[],function(b){return b==null&&(b=a),g.$call(d(y('GxG'),'ByteArray').$new(b))}),f):c},-1),c(B,'$repeated_permutation',function k(l){var g=k.$$p||a,h,j,f=this,c=a;return k.$$p=null,h=i(arguments),j=h,c=e(f.$array_to_ascii(f.data).$split(),'to_enum',["repeated_permutation"].concat(m(j))),b(g['$respond_to?']("call"))?(e(c,'each',[],function(b){return b==null&&(b=a),g.$call(d(y('GxG'),'ByteArray').$new(b))}),f):c},-1),c(B,'$pop',function(c){var h=this,g=a;return c==null&&(c=a),g=a,b(c['$is_a?'](y('Numeric')))?(b(f(c.$to_i(),0))||h.$raise(y('ArgumentError').$new(""+c+" needs to be a positive Numeric")),g=d(d('GxG'),'ByteArray').$new(),e(c,'times',[],function a(){var b=a.$$s==null?this:a.$$s;return g['$<<'](b.$delete_at(-1))},{$$s:h})):g=h.$delete_at(-1),g},-1),c(B,'$product',function l(m){var j=l.$$p||a,k,c,g=this,h=a;return l.$$p=null,k=i(arguments),c=k,b(f(g.data.$bytesize(),0))?(c=d(y('GxG'),'ByteArray').$new(c),b(j['$respond_to?']("call")))?(e(g,'each',[],function(b){return b==null&&(b=a),e(c,'each',[],function(c){return c==null&&(c=a),j.$call(d(y('GxG'),'ByteArray').$new([b,c]))})}),g):(h=d(y('GxG'),'ByteArray').$new(),e(g,'each',[],function(b){return b==null&&(b=a),e(c,'each',[],function(c){return c==null&&(c=a),h['$<<'](b),h['$<<'](c)})}),h):g},-1),c(B,'$push',function(f){var a,b,c=this;return a=i(arguments),b=a,c['$<<'](d(y('GxG'),'ByteArray').$new(b))},-1),c(B,'$rassoc',function(b){return b==null&&(b=a),a},-1),c(B,'$reject',function g(){var h=g.$$p||a,f=this,c=a;return g.$$p=null,c=a,b(h['$respond_to?']("call"))?(c=d(y('GxG'),'ByteArray').$new(),c['$padvalue='](f.pad_value),b(f.max_size)&&c['$maxsize='](f.max_size),e(f,'each_with_index',[],function(b,d){return b==null&&(b=a),d==null&&(d=a),k(h.$call(b),!0)?a:c['$<<'](b)})):c=f.$to_a().$to_enum("reject"),c}),c(B,'$reject!',function g(){var h=g.$$p||a,c=this,d=a,f=a;return g.$$p=null,d=a,b(h['$respond_to?']("call"))?(f=e(c,'reject',[],h.$to_proc()),b(f)&&(c.data=f.$data()),d=c):d=c.$to_a().$to_enum("reject!"),d}),c(B,'$replace',function(m){var k,j,c=this,e=a;return k=i(arguments),j=k,b(f(j.$size(),0))&&(e=d(y('GxG'),'ByteArray').$try_convert(j),b(e)?b(c.max_size)?b(o(e.$data().$bytesize(),c.max_size))?c.data=e.$data():c.data=e['$[]'](g.Range.$new(0,h(c.max_size,1),!1)).$data():c.data=e.$data():c.$raise(y('Exception').$new("Could not convert "+j['$[]'](0).$class()+" to ByteArray"))),c},-1),c(B,'$reverse',function(){var c=this,e=a;return e=d(y('GxG'),'ByteArray').$new(c.$array_to_ascii(c.data).$reverse()),e['$padvalue='](c.pad_value.$clone()),b(c.max_size)&&e['$maxsize='](c.max_size.$clone()),e}),c(B,'$reverse!',function(){var a=this;return a.data=a.$reverse().$data(),a}),c(B,'$reverse_each',function f(){var g=f.$$p||a,d=this,c=a;return f.$$p=null,c=a,b(g['$respond_to?']("call"))?(c=d.$clone(),c.$clear(),e(d.$reverse(),'each',[],function(b){return b==null&&(b=a),c['$<<'](g.$call(b))})):c=d.$reverse().$to_enum("each"),c}),c(B,'$rotate',function(c){var e=this,i=a,j=a,l=a;return c==null&&(c=1),b(c['$is_a?'](y('Numeric')))||e.$raise(y('ArgumentError').$new("Expected a Numeric, you provided "+c.$class())),b(n(c,0))?c=h(h(e.$size(),c['$~']()['$%'](e.$size())),1).$to_i():c=c['$%'](e.$size()).$to_i(),i=[],k(c,0)||(j=e.$filter_parameters(g.Range.$new(c,-1,!1)),i['$<<'](e['$[]'](j)),b(f(j.$first(),0))&&i['$<<'](e['$[]'](g.Range.$new(0,h(j.$first(),1),!1)))),b(f(i.$size(),0))?l=d(y('GxG'),'ByteArray').$new(i):l=e.$clone(),l},-1),c(B,'$rotate!',function(a){var c=this;return a==null&&(a=1),b(a['$is_a?'](y('Numeric')))?u(a.$to_i(),0)&&(c.data=c.$rotate(a).$data()):c.$raise(y('ArgumentError').$new("Expected a Numeric, you provided "+a.$class())),c},-1),c(B,'$sample',function(g){var a,b,c=this;return a=i(arguments),b=a,d(y('GxG'),'ByteArray').$new(e(c.$to_a(),'sample',m(b)))},-1),c(B,'$select',function g(){var h=g.$$p||a,f=this,c=a;return g.$$p=null,c=d(y('GxG'),'ByteArray').$new(),c['$maxsize='](f.max_size),c['$padvalue='](f.pad_value),c['$outervalue='](f.outer),b(h['$respond_to?']("call"))?e(f,'each',[],function(b){return b==null&&(b=a),k(h.$call(b),!1)?a:c['$<<'](b)}):c=f.$to_enum("select"),c}),c(B,'$select!',function d(){var f=d.$$p||a,c=this,g=a;return d.$$p=null,b(f['$respond_to?']("call"))?(g=c.data.$hash(),c.data=e(c,'select',[],f.$to_proc()).$data(),k(g,c.data.$hash()))?a:c:c.$to_enum("select!")}),c(B,'$shift',function(){var a=this;return a.$delete_at(0)}),c(B,'$shuffle',function(g){var a,b,c=this;return a=i(arguments),b=a,d(y('GxG'),'ByteArray').$new(e(c.$to_a(),'shuffle',m(b)))},-1),c(B,'$shuffle!',function(f){var b,c,a=this;return b=i(arguments),c=b,a.$replace(e(a,'shuffle',m(c))),a},-1),c(B,'$size',function(){var a=this;return a.data.$bytesize()}),c(B,'$slice',function(i,l){var c=this,g=a,m=a,o=a,n=a;return i==null&&(i=0),l==null&&(l=a),g=c.$filter_parameters(i,l),b(g)||(b(l)?c.$raise(y('ArgumentError').$new(""+i.$inspect()+","+l.$inspect()+" could not be fashioned into a valid Indexer")):c.$raise(y('ArgumentError').$new(""+i.$inspect()+" could not be fashioned into a valid Indexer"))),b(c.max_size)&&(b(f(g.$count(),c.max_size))||b(f(g.$first(),h(c.max_size,1)))||b(f(g.$last(),h(c.max_size,1))))&&c.$raise(y('IndexError').$new("Index exceeds "+c.max_size+" limit. You need to adjust maxsize.")),m=a,b(g)&&(k(g.$first(),g.$last())?m=c.data['$[]'](g.$first()):(o=y('Buffer').$new(g.$size()).$to_a(),n=0,e(g,'each',[],function d(b){var c=d.$$s==null?this:d.$$s;return c.data==null&&(c.data=a),b==null&&(b=a),o['$[]='](n,c.data['$[]'](b)),n=j(n,1)},{$$s:c}),m=d(d('GxG'),'ByteArray').$new(c.$array_to_ascii(o)))),m},-1),c(B,'$slice!',function(e,f){var c=this,d=a;return e==null&&(e=0),f==null&&(f=a),d=c.$slice(e,f),b(d['$is_a?'](y('Numeric')))?c.$replace(d.$chr()):c.$replace(d),k(c.$size(),1)?c.$slice(0):c},-1),c(B,'$sort',function c(){var f=c.$$p||a,g=this;return c.$$p=null,b(f['$respond_to?']("call"))?d(y('GxG'),'ByteArray').$new(e(g.$to_a(),'sort',[],function(b,c){return b==null&&(b=a),c==null&&(c=a),f.$call(b,c)})):d(y('GxG'),'ByteArray').$new(g.$to_a().$sort())}),c(B,'$sort!',function d(){var f=d.$$p||a,c=this;return d.$$p=null,b(f['$respond_to?']("call"))&&c.$replace(e(c,'sort',[],f.$to_proc()).$data()),c}),c(B,'$sort_by!',function f(){var g=f.$$p||a,c=this;return f.$$p=null,b(g['$respond_to?']("call"))?(c.$replace(d(y('GxG'),'ByteArray').$new(e(c.$to_a(),'sort_by!',[],function(b,c){return b==null&&(b=a),c==null&&(c=a),g.$call(b,c)})).$data()),c):c.$to_enum("sort_by!")}),c(B,'$take',function(a){var b=this;return b.$slice(g.Range.$new(0,h(a.$to_i(),1),!1))}),c(B,'$take_while',function f(){var g=f.$$p||a,h=this,c=a;return f.$$p=null,b(g['$respond_to?']("call"))?(c=d(y('GxG'),'ByteArray').$new(),function(){try{var d=s('break');return e(h,'each',[],function h(e){var f=a;if(e==null&&(e=a),f=g.$call(e),b(f))return c['$<<'](e);d.$throw(a,h.$$is_lambda)})}catch(a){if(a===d)return a.$v;throw a}finally{d.is_orphan=!0}}(),c):h.$to_enum("take_while")}),c(B,'$to_a',function(){var c=this,d=a;return d=[],b(f(c.data.$bytesize(),0))&&e(g.Range.$new(0,h(c.data.$bytesize(),1),!1),'each',[],function e(b){var c=e.$$s==null?this:e.$$s;return c.data==null&&(c.data=a),b==null&&(b=a),d['$<<'](c.data['$[]'](b))},{$$s:c}),d}),c(B,'$to_s',function(){var a=this;return a.$array_to_ascii(a.data)}),c(B,'$to_ascii',function(){var a=this;return a.$array_to_ascii(a.data)}),c(B,'$to_json',function(){var a=this;return j("binary:",a.$to_ascii().$encode64())}),c(B,'$transpose',function(){var a=this;return a.$clone()}),c(B,'$uniq',function c(){var f=c.$$p||a,g=this;return c.$$p=null,b(f['$respond_to?']("call"))?d(y('GxG'),'ByteArray').$new(e(g.$to_a(),'uniq',[],f.$to_proc())):g}),c(B,'$uniq!',function d(){var f=d.$$p||a,b=this,c=a;return d.$$p=null,c=e(b,'uniq',[],f.$to_proc()),k(c.$size(),b.$size())?a:(b.$replace(c),b)}),c(B,'$unshift',function(g){var c,a,d=this;return c=i(arguments),a=c,b(f(a.$size(),0))&&d.$insert(0,a),d},-1),c(B,'$values_at',function(l){var h,c,j=this,g=a;return h=i(arguments),c=h,g=d(y('GxG'),'ByteArray').$new(),b(f(c.$size(),0))&&e(c.$to_enum(),'each',[],function d(c){var e=d.$$s==null?this:d.$$s;return c==null&&(c=a),b(c['$is_a?'](y('Numeric')))||b(c['$is_a?'](y('Range')))?(b(c['$is_a?'](y('Range')))||(c=c.$to_i()),g['$<<'](e['$[]'](c))):e.$raise(y('TypeError').$new("Expected Integer, Float or Range. You provided "+c.$class()))},{$$s:j}),g},-1),c(B,'$zip',function l(m){var j=l.$$p||a,k,c,h=this,g=a;return l.$$p=null,k=i(arguments),c=k,g=a,b(f(c.$size(),0))?(g=d(y('GxG'),'ByteArray').$new(),e(c.$to_enum("each_index"),'each',[],function(f){var g;return f==null&&(f=a),b(c['$[]'](f)['$is_a?'](d(y('GxG'),'ByteArray')))?a:(g=[f,d(y('GxG'),'ByteArray').$new(c['$[]'](f))],e(c,'[]=',g),g[g.length-1])}),e(h,'each_with_index',[],function l(k,i){var m=l.$$s==null?this:l.$$s,f=a,h=a;return k==null&&(k=a),i==null&&(i=a),f=d(y('GxG'),'ByteArray').$new(),f['$<<'](k),e(c.$to_enum("each_index"),'each',[],function g(d){var e=g.$$s==null?this:g.$$s;return e.pad_value==null&&(e.pad_value=a),d==null&&(d=a),b(q(i,c['$[]'](d).$size()))?f['$<<'](e.pad_value):f['$<<'](c['$[]'](d).$data()['$[]'](i))},{$$s:m}),b(j['$respond_to?']("call"))&&(h=j.$call(f),b(h['$is_a?'](d('Array')))&&(h=d(y('GxG'),'ByteArray').$new(h)),b(h['$is_a?'](d(d('GxG'),'ByteArray')))&&(f=h)),g['$<<'](f)},{$$s:h})):g=h.$clone(),g},-1),l(B,"assoc","rassoc"),l(B,"map","collect"),l(B,"map!","collect!"),l(B,"compact!","compact"),l(B,"indices","values_at"),l(B,"indexes","values_at"),l(B,"rindex","find_index"),l(B,"index","find_index"),l(B,"length","size"),l(B,"nitems","size"),l(B,"to_ary","to_a"),l(B,"keep_if","select!"),c(B,'$paths_to',function(c,d){var g=this,f=a;return c==null&&(c=a),d==null&&(d=""),f=[],b(c['$is_a?'](y('Numeric')))&&e(g,'each_with_index',[],function(b,e){return b==null&&(b=a),e==null&&(e=a),k(b,c.$to_i())?f['$<<'](j(j(d,"/"),e.$to_s())):a}),f},-1),c(B,'$get_at_path',function(d){var h=this,c=a,g=a,i=a;return d==null&&(d="/"),c=a,k(d,"/")?c=h:(g=[h],i=d.$split("/"),function(){try{var d=s('break');return e(i.$to_enum(),'each',[],function i(e){var h=a;if(e==null&&(e=a),h=a,b(f(e.$size(),0))&&k(e['$=~'](/^(?:[0-9])*[0-9](?:[0-9])*$/),0)&&(h=e.$to_i()),b(h))if(c=g.$first()['$[]'](h),b(c['$is_a?'](y('NilClass'))))d.$throw(a,i.$$is_lambda);else return g.$unshift(c);else return a})}catch(a){if(a===d)return a.$v;throw a}finally{d.is_orphan=!0}}()),c},-1),c(B,'$set_at_path',function(i,g){var l=this,j=a,h=a,e=a,c=a;return i==null&&(i="/"),g==null&&(g=a),j=a,u(i,"/")&&(h=l,b(h)&&(e=d('File').$basename(i),c=a,b(f(e.$size(),0))&&k(e['$=~'](/^(?:[0-9])*[0-9](?:[0-9])*$/),0)&&(c=e.$to_i()),b(c)&&(h['$[]='](c,g),k(h['$[]'](c),g)&&(j=!0)))),j},-1)}(y[0],null,y)}(y[0],y)},Opal.modules["web/gxg_events"]=function(e){var m=e.module,n=e.const_set,j=e.klass,c=e.def,l=e.return_ivar,f=e.send,d=e.truthy,q=e.rb_gt,y=e.return_self,k=e.return_val,w=e.defs,p=e.slice,s=e.to_a,h=e.eqeq,t=e.rb_ge,g=e.rb_plus,o=e.alias,x=e.send2,z=e.find_super,u=e.rb_times,r=e.rb_divide,v=e.thrower,i=[],a=e.nil,b=e.$$$;return e.add_stubs('size,unshift,<<,each,values,[],read,dispatch_message,>,is_a?,valud_uuid?,to_s,fetch_channel,to_sym,write,send,socket,encode64,to_json,encrypt,export,secret,connector,log_warn,[]=,new,times,outbox_size,delete,next_message,send_message,new_message,import,raise,merge,uuid_generate,inspect,respond_to?,call,include?,keys,process,to_proc,process!,search,paths_to,get_at_path,set_at_path,is_any?,class,parse,is,gxg_import,gxg_export,shift,==,to_enum,>=,level,add,backtrace,+,exception,join,sleep,unknown?,unknown,warn?,warn,to_i,*,to_f,method,cancel_all_timers,now,each_with_index,delete_at,/,merge!,puts,adjust_event_queue,create_event_queue,post_to_event_queue,each_index,const_defined?,remove_const,startup,add_periodic_timer,process_messages,shutdown,create_channel'),function(A,B){var C=m(A,'GxG'),i=[C].concat(B);return n(i[0],'GXG_FEDERATION',new Map([["title","Untitled"],["uuid",a],["access_url",a],["available",new Map],["connections",new Map]])),function(h,i){var k=m(h,'Messages'),g=[k].concat(i);return function(e,f){var b=j(e,f,'Channel'),d=b.$$prototype;return d.inbox=d.outbox=a,c(b,'$initialize',function(c,d){var b=this;return c==null&&(c=a),d==null&&(d=a),b.uuid=c,b.inbox=[],b.outbox=[],b.socket=a,b.remote=a,b.channel_secret=a,b.object=d,b},-1),c(b,'$uuid',l("uuid")),c(b,'$object',l("object")),c(b,'$socket',l("socket")),c(b,'$socket=',function(b){var c=this;return b==null&&(b=a),c.socket=b},-1),c(b,'$remote',l("remote")),c(b,'$remote=',function(b){var c=this;return b==null&&(b=a),c.remote=b},-1),c(b,'$secret',l("channel_secret")),c(b,'$secret=',function(b){var c=this;return b==null&&(b=a),c.channel_secret=b},-1),c(b,'$inbox_size',function(){var a=this;return a.inbox.$size()}),c(b,'$next_message',function(){var a=this;return a.inbox.$unshift()}),c(b,'$outbox_size',function(){var a=this;return a.outbox.$size()}),c(b,'$send_message',function(a){var b=this;return b.outbox['$<<'](a)}),c(b,'$read',function(){var a=this;return a.outbox.$unshift()}),c(b,'$write',function(a){var b=this;return b.inbox['$<<'](a)})}(g[0],null),function(i,k,l){var g=j(i,k,'ChannelManager'),m=[g].concat(l),h=e.$r(m);return c(g,'$update_channels',function(){var e=this,c=a,b=a;return c=!1,b=[],f(h('GXG_FEDERATION')['$[]']("connections").$values(),'each',[],function(c){return c==null&&(c=a),b['$<<'](c)}),f(b,'each',[],function e(b){var f=e.$$s==null?this:e.$$s,c=a;for(b==null&&(b=a),c=b.$read();d(c);)f.$dispatch_message(c),c=b.$read()},{$$s:e}),d(q(b.$size(),0))&&(c=!0),c}),c(g,'$dispatch_message',function(c){var f=this,e=a,g=a,i=a;return c==null&&(c=a),e=!1,d(c['$is_a?'](b(b(b('GxG'),'Events'),'Message')))&&(g=c['$[]']("to"),d(b('GxG')['$valud_uuid?'](g.$to_s()))&&(i=f.$fetch_channel(g.$to_s().$to_sym()),d(i)?(i.$write(c),e=!0):d(b(h('GxG'),'DISPLAY_DETAILS')['$[]']("logged_in"))?(f.$socket().$send(new Map([["payload",c.$export().$to_s().$encrypt(f.$connector().$secret()).$encode64()]]).$to_json().$encode64(),"text"),e=!0):(f.$log_warn("Message dropped --> login and resend"),e=!1))),e},-1),c(g,'$fetch_channel',function(a){return h('GXG_FEDERATION')['$[]']("connections")['$[]'](a)}),c(g,'$create_channel',function(c,e){var f=this;return c==null&&(c=a),e==null&&(e=a),h('GXG_FEDERATION')['$[]']("connections")['$[]='](c,b(b(b('GxG'),'Messages'),'Channel').$new(c,e)),d(b(h('GxG'),'DISPLAY_DETAILS')['$[]']("logged_in"))?f.$socket().$send(new Map([["open_channel",c]]).$to_json().$encode64(),"text"):a},-1),c(g,'$destroy_channel',function(e){var g=this,c=a;return c=g.$fetch_channel(e),d(c)&&(f(c.$outbox_size(),'times',[],function e(f){var g=e.$$s==null?this:e.$$s,b=a;return f==null&&(f=a),b=c.$read(),d(b)?g.$dispatch_message(b):a},{$$s:g}),d(b(h('GxG'),'DISPLAY_DETAILS')['$[]']("logged_in"))&&g.$socket().$send(new Map([["close_channel",e]]).$to_json().$encode64(),"text")),h('GXG_FEDERATION')['$[]']("connections").$delete(e)}),c(g,'$next_message',function(e){var f=this,b=a,c=a;return b=a,c=f.$fetch_channel(e),d(c)&&(b=c.$next_message()),b}),c(g,'$send_message',function(c,e){var f=this,b=a;return b=f.$fetch_channel(c),d(b)?b.$send_message(e):a}),c(g,'$initialize',y)}(g[0],null,g)}(i[0],i),function(n,y){var A=m(n,'Events'),i=[A].concat(y);return function(i,l,m){var g=j(i,l,'Message'),n=[g].concat(m),h=e.$r(n),o=g.$$prototype;return o.data=a,w(g,'$import',function(b){var d=this,c=a;return b==null&&(b=a),c=f(d,'new_message',[],k(a)),c.$import(b),c},-1),c(g,'$initialize',function(i){var f,e,c=this;return f=p(arguments),e=f,d(e['$[]'](0)['$is_a?'](b('Hash')))||c.$raise(h('ArgumentError'),"you must pass a Hash to create the message"),c.data=new Map([["sender",a],["id",h('GxG').$uuid_generate().$to_s().$to_sym()],["subject",e['$[]'](1).$to_s()],["body",a],["on_success",a],["on_fail",a]]).$merge(e['$[]'](0)),d(c.data['$[]']("sender"))||c.$raise(h('ArgumentError'),"you must set the :sender key in the argument Hash"),c},-1),c(g,'$inspect',function(){var a=this;return a.data.$inspect()}),c(g,'$id',function(){var a=this;return a.data['$[]']("id")}),c(g,'$sender',function(){var a=this;return a.data['$[]']("sender")}),c(g,'$subject',function(){var a=this;return a.data['$[]']("subject")}),c(g,'$body',function(){var a=this;return a.data['$[]']("body")}),c(g,'$succeed',function(b){var c=this;return b==null&&(b=a),d(c.data['$[]']("on_success")['$respond_to?']("call"))?c.data['$[]']("on_success").$call(b):a},-1),c(g,'$fail',function(b){var c=this;return b==null&&(b=a),d(c.data['$[]']("on_fail")['$respond_to?']("call"))?c.data['$[]']("on_fail").$call(b):a},-1),c(g,'$on',function i(c){var g=i.$$p||a,b,e=this;if(i.$$p=null,c==null&&(c=a),d(["success","fail"]['$include?'](c)))if(d(g['$respond_to?']("call")))switch(c.valueOf()){case"success":return b=["on_success",g],f(e.data,'[]=',b),b[b.length-1];case"fail":return b=["on_fail",g],f(e.data,'[]=',b),b[b.length-1];default:return a}else return e.$raise(h('ArgumentError'),"You MUST provide a callable block.");else return e.$raise(h('ArgumentError'),"Unknown event type: "+c)},-1),c(g,'$keys',function(){var a=this;return a.data.$keys()}),c(g,'$[]',function(a){var b=this;return b.data['$[]'](a)}),c(g,'$[]=',function(b,c){var a,d=this;return a=[b,c],f(d.data,'[]=',a),a[a.length-1]}),c(g,'$process',function b(){var c=b.$$p||a,d=this;return b.$$p=null,f(d.data,'process',[],c.$to_proc())}),c(g,'$process!',function b(){var c=b.$$p||a,d=this;return b.$$p=null,f(d.data,'process!',[],c.$to_proc())}),c(g,'$search',function b(){var c=b.$$p||a,d=this;return b.$$p=null,f(d.data,'search',[],c.$to_proc())}),c(g,'$paths_to',function(e){var a,b,c=this;return a=p(arguments),b=a,f(c.data,'paths_to',s(b))},-1),c(g,'$get_at_path',function(e){var a,b,c=this;return a=p(arguments),b=a,f(c.data,'get_at_path',s(b))},-1),c(g,'$set_at_path',function(e){var a,b,c=this;return a=p(arguments),b=a,f(c.data,'set_at_path',s(b))},-1),c(g,'$import',function(c){var f=this,e=a;return c==null&&(c=a),d(c['$is_any?'](b('String'),b('Hash')))||f.$raise(h('Exception').$new("You MUST supply a JSON string or a Hash, you supplied: "+c.$class().$inspect())),e=!1,d(c['$is_a?'](b('String')))&&(c=h('JSON').$parse(c,new Map([["symbolize_names",!0]]))),d(c.$is(b('Hash')))&&(f.data.$merge(b('Hash').$gxg_import(c)),e=!0),e},-1),c(g,'$export',function(){var a=this;return a.data.$gxg_export().$to_json().$to_s()}),c(g,'$to_s',function(){var a=this;return a.$export().$to_s()}),c(g,'$to_json',function(){var a=this;return a.$to_s()})}(i[0],null,i),j(i[0],null,'LoggerDB'),function(s,p,q){var i=j(s,p,'LogRing'),r=[i].concat(q),n=e.$r(r),m=i.$$prototype;return m.outlets=m.busy=m.messages=a,c(i,'$initialize',function(){var a=this;return a.uuid=b('GxG').$uuid_generate().$to_sym(),a.busy=!1,a.outlets=new Map,a.messages=[]}),c(i,'$uuid',l("uuid")),c(i,'$keys',function(){var a=this;return a.outlets.$keys()}),c(i,'$[]',function(a){var b=this;return b.outlets['$[]'](a)}),c(i,'$[]=',function(e,a){var c=this;return d(a['$is_any?'](b('Logger'),b(b(b('GxG'),'Events'),'LoggerDB')))?(c.outlets['$[]='](e,a),a):c.$raise(n('ArgumentError'),"You must supply a Logger or GxG::Events::LoggerDB instance, you provided a "+a.$class())}),c(i,'$process_messages',function(){var i=this,c=a,j=a,k=a;if(!d(i.busy)){if(i.busy=!0,c=i.messages.$shift(),d(c['$is_a?'](b(b(b('GxG'),'Events'),'Message'))))try{h(c['$[]']("subject"),"notification")&&d(c['$[]']("body")['$is_a?'](b('Hash')))&&(j=i.$keys(),f(j.$to_enum("each"),'each',[],function h(f){var j=h.$$s==null?this:h.$$s,e=a,i=a;return f==null&&(f=a),e=j['$[]'](f),d(t(d(i=c['$[]']("body")['$[]']("severity"))?i:b(b('Logger'),'UNKNOWN'),e.$level()))?d(e['$is_a?'](b(b(b('GxG'),'Events'),'LoggerDB')))?a:d(c['$[]']("body")['$[]']("message")['$is_a?'](b('String')))||d(c['$[]']("body")['$[]']("message")['$is_a?'](b('Exception')))?e.$add(c['$[]']("body")['$[]']("severity"),c['$[]']("body")['$[]']("message"),c['$[]']("body")['$[]']("progname")):d(c['$[]']("body")['$[]']("message")['$is_a?'](b('Hash')))?d(c['$[]']("body")['$[]']("message")['$[]']("error")['$is_a?'](b('Exception')))?d(c['$[]']("body")['$[]']("message")['$[]']("error").$backtrace()['$is_a?'](b('Array')))?d(c['$[]']("body")['$[]']("message")['$[]']("parameters"))?e.$add(c['$[]']("body")['$[]']("severity"),g(g(g(g(g(g("\n "+c['$[]']("body")['$[]']("message")['$[]']("error").$exception().$class().$to_s()+": ",c['$[]']("body")['$[]']("message")['$[]']("error").$to_s()),"\n Parameters: "),c['$[]']("body")['$[]']("message")['$[]']("parameters").$inspect()),"\n Trace: "),c['$[]']("body")['$[]']("message")['$[]']("error").$backtrace().$join("\n")),"\n"),c['$[]']("body")['$[]']("progname")):e.$add(c['$[]']("body")['$[]']("severity"),g(g(g(g("\n "+c['$[]']("body")['$[]']("message")['$[]']("error").$exception().$class().$to_s()+": ",c['$[]']("body")['$[]']("message")['$[]']("error").$to_s()),"\n Trace: "),c['$[]']("body")['$[]']("message")['$[]']("error").$backtrace().$join("\n")),"\n"),c['$[]']("body")['$[]']("progname")):d(c['$[]']("body")['$[]']("message")['$[]']("parameters"))?e.$add(c['$[]']("body")['$[]']("severity"),g(g(g(g("\n "+c['$[]']("body")['$[]']("message")['$[]']("error").$exception().$class().$to_s()+": ",c['$[]']("body")['$[]']("message")['$[]']("error").$to_s()),"\n Parameters: "),c['$[]']("body")['$[]']("message")['$[]']("parameters").$inspect()),"\n"),c['$[]']("body")['$[]']("progname")):e.$add(c['$[]']("body")['$[]']("severity"),g(g("\n "+c['$[]']("body")['$[]']("message")['$[]']("error").$exception().$class().$to_s()+": ",c['$[]']("body")['$[]']("message")['$[]']("error").$to_s()),"\n"),c['$[]']("body")['$[]']("progname")):e.$add(c['$[]']("body")['$[]']("severity"),c['$[]']("body")['$[]']("message").$inspect(),c['$[]']("body")['$[]']("progname")):e.$add(c['$[]']("body")['$[]']("severity"),c['$[]']("body")['$[]']("message").$inspect(),c['$[]']("body")['$[]']("progname")):a},{$$s:i}))}catch(a){if(e.rescue(a,[n('Exception')])){k=a;try{i.busy=!1}finally{e.pop_exception(a)}}else throw a}i.busy=!1}return!0}),c(i,'$add',function m(i,f,g,j){var l=m.$$p||a,c=this,k=a,o=a;m.$$p=null,i==null&&(i=a),f==null&&(f=a),g==null&&(g=a),j==null&&(j=a),d([b(b('Logger'),'DEBUG'),b(b('Logger'),'INFO'),b(b('Logger'),'WARN'),b(b('Logger'),'ERROR'),b(b('Logger'),'FATAL'),b(b('Logger'),'UNKNOWN')]['$include?'](i))||(i=b(b('Logger'),'UNKNOWN')),d(g)&&(d(f)||(f=g,g=a));try{for(d(f)||d(l['$respond_to?']("call"))&&(f=l.$call()),k=c.$new_message(new Map([["severity",i],["message",f],["progname",g]]),"notification"),d(j)&&k['$[]=']("sender",j);h(c.busy,!0);)c.$sleep(.333);return c.busy=!0,c.messages['$<<'](k),c.busy=!1,!0}catch(a){if(e.rescue(a,[n('Exception')])){o=a;try{return c.busy=!1,!1}finally{e.pop_exception(a)}}else throw a}},-1),c(i,'$unknown?',k(!0)),o(i,"trace?","unknown?"),c(i,'$unknown',function h(c,e,g){var k=h.$$p||a,i=this,j=a;return h.$$p=null,c==null&&(c=a),e==null&&(e=a),g==null&&(g=a),f(i,'add',[b(b('Logger'),'UNKNOWN'),c,e,d(j=g)?j:i],k.$to_proc())},-1),o(i,"trace","unknown"),c(i,'$fatal?',k(!0)),c(i,'$fatal',function h(c,e,g){var k=h.$$p||a,i=this,j=a;return h.$$p=null,c==null&&(c=a),e==null&&(e=a),g==null&&(g=a),f(i,'add',[b(b('Logger'),'FATAL'),c,e,d(j=g)?j:i],k.$to_proc())},-1),c(i,'$error?',k(!0)),c(i,'$error',function h(c,e,g){var k=h.$$p||a,i=this,j=a;return h.$$p=null,c==null&&(c=a),e==null&&(e=a),g==null&&(g=a),f(i,'add',[b(b('Logger'),'ERROR'),c,e,d(j=g)?j:i],k.$to_proc())},-1),c(i,'$warn?',k(!0)),o(i,"warning?","warn?"),c(i,'$warn',function h(c,e,g){var k=h.$$p||a,i=this,j=a;return h.$$p=null,c==null&&(c=a),e==null&&(e=a),g==null&&(g=a),f(i,'add',[b(b('Logger'),'WARN'),c,e,d(j=g)?j:i],k.$to_proc())},-1),o(i,"warning","warn"),c(i,'$info?',k(!0)),c(i,'$info',function h(c,e,g){var k=h.$$p||a,i=this,j=a;return h.$$p=null,c==null&&(c=a),e==null&&(e=a),g==null&&(g=a),f(i,'add',[b(b('Logger'),'INFO'),c,e,d(j=g)?j:i],k.$to_proc())},-1),c(i,'$debug?',k(!0)),c(i,'$debug',function h(c,e,g){var k=h.$$p||a,i=this,j=a;return h.$$p=null,c==null&&(c=a),e==null&&(e=a),g==null&&(g=a),f(i,'add',[b(b('Logger'),'DEBUG'),c,e,d(j=g)?j:i],k.$to_proc())},-1)}(i[0],null,i),function(s,n,o){var i=j(s,n,'EventDispatcher'),p=[i].concat(o),k=e.$r(p),m=i.$$prototype;return m.host_timer=m.js_interval=m.running=m.ticking=m.timers=m.event_queues=a,c(i,'$initialize',function d(e){var f=d.$$p||a,c=this;return d.$$p=null,e==null&&(e=.333),x(c,z(c,'initialize',d,!1,!0),'initialize',[],null),c.uuid=b('GxG').$uuid_generate().$to_sym(),c.event_queues=new Map([["root",new Map([["events",[]],["settings",new Map([["active",!0],["portion",100]])]])]]),c.running=!1,c.ticking=!1,c.timers=[],c.js_interval=u(e.$to_f(),1e3).$to_i(),c.host_timer=a,c},-1),c(i,'$startup',function(){var a=this;return!!(a.running=!0,d(a.host_timer)||(a.host_timer=setInterval(a.$method("tick").$to_proc(),a.js_interval)),d(a.host_timer))}),c(i,'$shutdown',function(){var b=this;return b.running=!1,d(b.host_timer)&&(d(b.host_timer['$is_a?'](k('Numeric')))?clearInterval(b.host_timer):clearInterval(b.host_timer._id)),b.$cancel_all_timers(),b.host_timer=a,!0}),c(i,'$tick',function(){var c=this,j=a,m=a,n=a,o=a,l=a,i=a;return d(c.running)?d(c.ticking)?a:(c.ticking=!0,j=[],d(q(c.timers.$size(),0))&&(m=[],n=b('Time').$now().$to_f(),f(c.timers,'each_with_index',[],function i(b,c){var e,h=i.$$s==null?this:i.$$s;return h.timers==null&&(h.timers=a),b==null&&(b=a),c==null&&(c=a),d(t(n,b['$[]']("when")))?(j['$<<'](b['$[]']("what")),d(b['$[]']("interval")))?(e=["when",g(n,b['$[]']("interval").$to_f())],f(h.timers['$[]'](c),'[]=',e),e[e.length-1]):m.$unshift(c):a},{$$s:c}),f(m,'each',[],function d(b){var c=d.$$s==null?this:d.$$s;return c.timers==null&&(c.timers=a),b==null&&(b=a),c.timers.$delete_at(b)},{$$s:c})),o=100,l=0,i=new Map,f(c.event_queues.$keys(),'each',[],function e(b){var c=e.$$s==null?this:e.$$s;return c.event_queues==null&&(c.event_queues=a),b==null&&(b=a),d(c.event_queues['$[]'](b)['$[]']("settings")['$[]']("active"))&&d(q(c.event_queues['$[]'](b)['$[]']("events").$size(),0))?(i['$[]='](b,new Map([["portion",u(r(c.event_queues['$[]'](b)['$[]']("settings")['$[]']("portion").$to_f(),100),o.$to_f()).$to_i()]])),h(i['$[]'](b)['$[]']("portion"),0)&&i['$[]'](b)['$[]=']("portion",1),i['$[]'](b)['$[]=']("size",c.event_queues['$[]'](b)['$[]']("events").$size()),l=g(l,i['$[]'](b)['$[]']("size"))):a},{$$s:c}),f(i.$keys(),'each',[],function c(b){var e=c.$$s==null?this:c.$$s;return b==null&&(b=a),function(){try{var c=v('break');return f(i['$[]'](b)['$[]']("portion"),'times',[],function e(){var f=e.$$s==null?this:e.$$s,g=a;if(f.event_queues==null&&(f.event_queues=a),g=f.event_queues['$[]'](b)['$[]']("events").$shift(),d(g['$respond_to?']("call")))return j['$<<'](g);c.$throw(a,e.$$is_lambda)},{$$s:e})}catch(a){if(a===c)return a.$v;throw a}finally{c.is_orphan=!0}}()},{$$s:c}),f(j,'each',[],function(b){var c=a;if(b==null&&(b=a),d(b))try{return b.$call()}catch(b){if(e.rescue(b,[k('Exception')])){c=b;try{return a}finally{e.pop_exception(b)}}else throw b}else return a}),c.ticking=!1):a}),c(i,'$inspect_timers',l("timers")),c(i,'$inspect_queue',function(a){var b=this;return a==null&&(a="root"),b.event_queues['$[]'](a)},-1),c(i,'$adjust_event_queue',function(b,c){var e=this;return b==null&&(b="root"),c==null&&(c=new Map),h(b.$to_s().$to_sym(),"root")?a:d(e.event_queues['$[]'](b.$to_sym()))?f(["active"],'each',[],function h(e){var f=h.$$s==null?this:h.$$s,g=a;return f.event_queues==null&&(f.event_queues=a),e==null&&(e=a),d(c['$[]'](e.$to_sym()))?(g=new Map,g['$[]='](e.$to_sym(),c['$[]'](e.$to_sym())),f.event_queues['$[]'](b.$to_sym())['$[]']("settings")['$merge!'](g)):a},{$$s:e}):e.$puts("Warning: queue "+b.$inspect()+" does not exist")},-1),c(i,'$create_event_queue',function(e){var b=this,c=a,g=a;return e==null&&(e=new Map),d(e['$is_a?'](k('Hash')))||b.$raise(k('ArgumentError'),"you must provide a Hash as a parameter set"),c=e.$delete("name").$to_s().$to_sym(),d(q(c.$to_s().$size(),0))?d(b.event_queues['$[]'](c))?b.$raise(k('ArgumentError'),"Event Queue "+c.$inspect()+" already exists"):(b.event_queues['$[]='](c,new Map([["events",[]],["settings",new Map([["active",!1],["portion",0]])]])),g=r(100,b.event_queues.$keys().$size().$to_f()),f(b.event_queues.$keys(),'each',[],function e(c){var b,d=e.$$s==null?this:e.$$s;return d.event_queues==null&&(d.event_queues=a),c==null&&(c=a),(b=["portion",g],f(d.event_queues['$[]'](c)['$[]']("settings"),'[]=',b),b[b.length-1])},{$$s:b}),b.$adjust_event_queue(c,e.$merge(new Map([["active",!0]]))),!0):b.$raise(k('ArgumentError'),":name must be provided for Event Queue")},-1),c(i,'$delete_event_queue',function(b){var c=this,d=a;return!(b==null&&(b=a),h(b.$to_s().$to_sym(),"root"))&&(c.event_queues.$delete(b),d=r(c.event_queues.$keys().$size().$to_f(),100),f(c.event_queues.$keys(),'each',[],function g(c){var b,e=g.$$s==null?this:g.$$s;return e.event_queues==null&&(e.event_queues=a),c==null&&(c=a),(b=["portion",d],f(e.event_queues['$[]'](c)['$[]']("settings"),'[]=',b),b[b.length-1])},{$$s:c}),!0)},-1),c(i,'$pause_event_queue',function(b){var c=this;return b==null&&(b=a),h(b.$to_s().$to_sym(),"root")?a:c.$adjust_event_queue(b,new Map([["active",!0]]))},-1),c(i,'$unpause_event_queue',function(b){var c=this;return b==null&&(b=a),h(b.$to_s().$to_sym(),"root")?a:c.$adjust_event_queue(b,new Map([["active",!1]]))},-1),c(i,'$post_to_event_queue',function(c,b){var e=this;return c==null&&(c="root"),b==null&&(b=a),d(b['$respond_to?']("call"))?d(e.event_queues['$[]'](c))?e.event_queues['$[]'](c)['$[]']("events")['$<<'](b):e.event_queues['$[]']("root")['$[]']("events")['$<<'](b):a},-1),c(i,'$post_event',function e(b){var f=e.$$p||a,c=this;return e.$$p=null,b==null&&(b="root"),d(c.event_queues['$[]'](b.$to_sym()))||c.$create_event_queue(new Map([["name",b.$to_sym()]])),c.$post_to_event_queue(b.$to_sym(),f),!0},-1),c(i,'$add_timer',function j(e){var m=j.$$p||a,f=this,c=a,h=a,l=a,i=a;return j.$$p=null,e==null&&(e=new Map),c=e['$[]']("when"),h=d(l=e['$[]']("do"))?l:m,d(c['$is_a?'](b('Numeric')))?c=g(b('Time').$now().$to_f(),c.$to_f()):d(c['$is_a?'](b('Time')))?c=c.$to_f():f.$raise(k('ArgumentError'),"you must specify a :when => millisecond (float) offset, or a Time for the timer"),d(h['$respond_to?']("call"))||f.$raise(k('ArgumentError'),"you must provide a :do => callable object (Proc) for the timer, or a block"),i=b('GxG').$uuid_generate().$to_sym(),f.timers['$<<'](new Map([["when",c],["what",h],["id",i]])),new Map([["timer",i]])},-1),c(i,'$add_periodic_timer',function l(c){var n=l.$$p||a,i=this,e=a,j=a,m=a,f=a,h=a;return l.$$p=null,c==null&&(c=new Map),e=c['$[]']("interval"),j=d(m=c['$[]']("do"))?m:n,f=b('Time').$now().$to_f(),d(e['$is_a?'](b('Numeric')))?f=g(f,e.$to_f()):i.$raise(k('ArgumentError'),"you must specify an :interval => Float (as you would with sleep) offset interval for the periodic timer"),d(j['$respond_to?']("call"))||i.$raise(k('ArgumentError'),"you must provide a :do => callable object (Proc) for the timer, or a block"),h=b('GxG').$uuid_generate().$to_sym(),i.timers['$<<'](new Map([["when",f],["what",j],["interval",e.$to_f()],["id",h]])),new Map([["timer",h]])},-1),c(i,'$cancel_timer',function(b){var g=this,c=a,e=a;return b==null&&(b=new Map),c=b['$[]']("timer"),e=!1,d(c)&&function(){try{var b=v('break');return f(g.timers,'each_index',[],function g(d){var f=g.$$s==null?this:g.$$s;if(f.timers==null&&(f.timers=a),d==null&&(d=a),h(f.timers['$[]'](d)['$[]']("id"),c))f.timers.$delete_at(d),e=!0,b.$throw(a,g.$$is_lambda);else return a},{$$s:g})}catch(a){if(a===b)return a.$v;throw a}finally{b.is_orphan=!0}}(),e},-1),c(i,'$cancel_all_timers',function(){for(var a=this;h(a.ticking,!0);)a.$sleep(.333);return a.timers=[],!0})}(i[0],null,i)}(i[0],i)}(i[0],i),function(c,e){var a=m(c,'GxG'),f=[a].concat(e);return d(a['$const_defined?']("LOG"))&&a.$remove_const("LOG"),n(f[0],'LOG',b(b(b('GxG'),'Events'),'LogRing').$new())}(i[0],i),b(b('GxG'),'LOG')['$[]=']("default",b('Logger').$new(b(b('Logger'),'WARN'))),function(h,i){var a=m(h,'GxG'),c=[a].concat(i),g=e.$r(c);return d(a['$const_defined?']("DISPATCHER"))&&a.$remove_const("DISPATCHER"),n(c[0],'DISPATCHER',b(b(b('GxG'),'Events'),'EventDispatcher').$new(.1)),g('DISPATCHER').$startup(),n(c[0],'LOG_TIMER',f(g('DISPATCHER'),'add_periodic_timer',[new Map([["interval",1]])],function(){return b(b('GxG'),'LOG').$process_messages()})),w(a,'$shutdown',function(){return g('DISPATCHER').$shutdown()})}(i[0],i),function(a,c){var d=m(a,'GxG'),e=[d].concat(c);return n(e[0],'CHANNELS',b(b(b('GxG'),'Messages'),'ChannelManager').$new())}(i[0],i),function(f,g){var e=j(f,g,'Object'),h=e.$$prototype;return h.uuid=a,c(e,'$send_message',function(c){var a=this;return d(a.uuid)||(a.uuid=b('GxG').$uuid_generate().$to_s().$to_sym(),b(b('GxG'),'CHANNELS').$create_channel(a.uuid,a)),b(b('GxG'),'CHANNELS').$send_message(a.uuid,c),!0}),c(e,'$next_message',function(){var a=this;return d(a.uuid)||(a.uuid=b('GxG').$uuid_generate().$to_s().$to_sym(),b(b('GxG'),'CHANNELS').$create_channel(a.uuid,a)),b(b('GxG'),'CHANNELS').$next_message(a.uuid)}),c(e,'$post',function(f){var c=this,e=a;return d(c.uuid)||(c.uuid=b('GxG').$uuid_generate().$to_s().$to_sym(),b(b('GxG'),'CHANNELS').$create_channel(c.uuid,c)),e=b(b('GxG'),'CHANNELS').$fetch_channel(c.uuid),d(e)&&e.$write(f),!0}),c(e,'$process_message',function(b,c){return b==null&&(b=a),c==null&&(c=new Map),a},-1)}(i[0],null)},Opal.modules["web/gxg_database"]=function(g){var x=g.module,s=g.NilClass,k=g.defs,c=g.truthy,e=g.send,f=g.eqeq,m=g.thrower,h=g.rb_gt,j=g.rb_plus,r=g.klass,d=g.def,l=g.range,t=g.rb_divide,p=g.rb_times,w=g.return_ivar,i=g.return_val,o=g.neqeq,y=g.alias,n=g.rb_minus,u=g.eqeqeq,v=g.slice,z=g.rb_lt,q=[],a=g.nil,b=g.$$$;return g.add_stubs('index,keys,element_tables,to_sym,[],each,==,is_any?,search,element_table_for_instance,raise,persistable?,is_a?,new,object_id,<<,>,size,shift,call,[]=,log_error,each_pair,+,detached_format_find,respond_to?,format_pull,BigDecimal,to_s,gxg_import,import,public,clone,valid_uuid?,increment_version,to_d,log_warn,inspect,/,to_f,to_i,*,log_warning,uuid=,title=,parent=,parse,decode64,version=,format=,each_index,constraint=,uuid_generate,last,alive?,write_reserved?,get_reservation,now,hash,version,iterative_detached_persist,class,include?,delete,uuid,title,format,constraint,iso8601,encode64,to_enum,each_with_index,!=,iterative,to_proc,reverse,split,get_at_path,process!,gsub!,unshift,join,=~,first,dirname,basename,private,-,valid_field_classes,===,delete_at,save,key,<,refresh_ordinals,push,insert,load_element_links,with_index'),function(A,B){var C=x(A,'GxG'),q=[C].concat(B);return function(C,D){var A=x(C,'Database'),B=[A].concat(D),q=g.$r(B);return k(A,'$element_tables',function(){return new Map([["unspecified",a],["element_boolean",[b('TrueClass'),b('FalseClass'),s]],["element_integer",[b('Integer')]],["element_float",[b('Float')]],["element_bigdecimal",[b('BigDecimal')]],["element_datetime",[b('Time')]],["element_text",[b('String')]],["element_binary",[b(b('GxG'),'ByteArray')]],["element_array",[b('Array')]],["element_hash",[b('Hash')]]])}),k(A,'$valid_field_classes',function(){return[b('TrueClass'),b('FalseClass'),s,b('Integer'),b('Float'),b('BigDecimal'),b('Time'),b('String'),b(b('GxG'),'ByteArray')]}),k(A,'$element_table_index',function(d){var e=a;return d==null&&(d="unspecified"),c(e=b(b('GxG'),'Database').$element_tables().$keys().$index(d.$to_sym()))?e:0},-1),k(A,'$element_table_by_index',function(d){var e=a;return d==null&&(d=0),c(e=b(b('GxG'),'Database').$element_tables().$keys()['$[]'](d))?e:"unspecified"},-1),k(A,'$element_table_for_instance',function(d){var g=a,h=a;return d==null&&(d=a),g="unspecified",h=b(b('GxG'),'Database').$element_tables(),function(){try{var b=m('break');return e(h.$keys(),'each',[],function i(e){if(e==null&&(e=a),f(e,"unspecified"))return a;if(c(d['$is_any?'](h['$[]'](e))))g=e,b.$throw(a,i.$$is_lambda);else return a})}catch(a){if(a===b)return a.$v;throw a}finally{b.is_orphan=!0}}(),g},-1),k(A,'$persistable?',function(g){var d=a;return d=!0,c(g['$is_any?'](b(b(b('GxG'),'Database'),'DetachedHash'),b(b(b('GxG'),'Database'),'DetachedArray')))||(c(g['$is_any?'](b('Hash'),b('Array')))?function(){try{var h=m('break');return e(g,'search',[],function j(e,g,i){return e==null&&(e=a),g==null&&(g=a),i==null&&(i=a),c(d)&&f(b(b('GxG'),'Database').$element_table_for_instance(e),"unspecified")&&(d=!1,h.$throw(a,j.$$is_lambda)),a})}catch(a){if(a===h)return a.$v;throw a}finally{h.is_orphan=!0}}():f(b(b('GxG'),'Database').$element_table_for_instance(g),"unspecified")&&(d=!1)),d}),k(A,'$iterative_detached_persist',function(d){var n=this,o=a,l=a,i=a,p=a,t=a,v=a,u=a,k=a,j=a,s=a,r=a;d==null&&(d=a),o=a;try{for(c(d['$is_any?'](b('Array'),b('Hash')))||n.$raise(q('ArgumentError'),"You MUST provide either an Array or a Hash."),c(b(q('GxG'),'Database')['$persistable?'](d))||n.$raise(q('ArgumentError'),"The object you are attempting to persist contains a non-persistable item."),c(d['$is_a?'](b('Array')))&&(l=b(b(b('GxG'),'Database'),'DetachedArray').$new()),c(d['$is_a?'](b('Hash')))&&(l=b(b(b('GxG'),'Database'),'DetachedHash').$new()),i=[new Map([["parent",a],["parent_selector",a],["object",d],["partner",l]])],p=e(q('Proc'),'new',[],function(b){var c=a;return b==null&&(b=a),c=[],e(i,'each',[],function(d){return d==null&&(d=a),f(d['$[]']("parent").$object_id(),b.$object_id())?c['$<<'](d):a}),c},-1),t=e(q('Proc'),'new',[],function(b){var c=a;return b==null&&(b=a),c=a,e(i,'each',[],function(d){return d==null&&(d=a),f(d['$[]']("object").$object_id(),b.$object_id())?c=d:a}),c},-1),v=e(q('Proc'),'new',[],function(d){var g=a;return d==null&&(d=a),g=a,function(){try{var h=m('break');return e(i,'each',[],function i(e){if(e==null&&(e=a),c(e['$is_a?'](b('Hash'))))if(f(e['$[]']("object").$object_id(),d.$object_id()))g=e['$[]']("partner"),h.$throw(a,i.$$is_lambda);else return a;else return a})}catch(a){if(a===h)return a.$v;throw a}finally{h.is_orphan=!0}}(),g}),u=a,e(d,'search',[],function(d,e,f){return d==null&&(d=a),e==null&&(e=a),f==null&&(f=a),c(d['$is_a?'](b('Array')))?i['$<<'](new Map([["parent",f],["parent_selector",e],["object",d],["partner",b(b(b('GxG'),'Database'),'DetachedArray').$new()]])):c(d['$is_a?'](b('Hash')))?i['$<<'](new Map([["parent",f],["parent_selector",e],["object",d],["partner",b(b(b('GxG'),'Database'),'DetachedHash').$new()]])):i['$<<'](new Map([["parent",f],["parent_selector",e],["object",d],["partner",d]]))}),k=[i['$[]'](0)];c(h(k.$size(),0));)j=k.$shift(),c(j['$is_a?'](b('Hash')))&&c(j['$[]']("object")['$is_any?'](b('Array'),b('Hash')))&&(s=p.$call(j['$[]']("object")),e(s,'each',[],function(d){return d==null&&(d=a),j['$[]']("partner")['$[]='](d['$[]']("parent_selector"),d['$[]']("partner")),c(d['$[]']("partner")['$is_any?'](b(b(b('GxG'),'Database'),'DetachedArray'),b(b(b('GxG'),'Database'),'DetachedHash')))?k['$<<'](d):a}));o=l}catch(a){if(g.rescue(a,[q('Exception')])){r=a;try{n.$log_error(new Map([["error",r],["parameters",new Map([["object",d]])]]))}finally{g.pop_exception(a)}}else throw a}return o},-1),k(A,'$detached_format_find',function(g){var h=a,d=a;return g==null&&(g=new Map),h=a,d=new Map,e(["uuid","ufs","title","version"],'each',[],function(b){var f;return b==null&&(b=a),c(g['$[]'](b))?(f=[b,g['$[]'](b)],e(d,'[]=',f),f[f.length-1]):a}),function(){try{var c=m('break');return e(b(q('GxG'),'DB')['$[]']("formats"),'each_pair',[],function k(i,b){var g=a;if(i==null&&(i=a),b==null&&(b=a),g=0,e(d.$keys(),'each',[],function(c){return c==null&&(c=a),f(b['$[]'](c),d['$[]'](c))?g=j(g,1):a}),f(d.$keys().$size(),g))h=b,c.$throw(a,k.$$is_lambda);else return a})}catch(a){if(a===c)return a.$v;throw a}finally{c.is_orphan=!0}}(),h},-1),k(A,'$detached_format_load',function l(f){var i=l.$$p||a,j=a,k=a,d=a,g=a;return l.$$p=null,f==null&&(f=new Map),j=!1,k=[],d=[],c(f['$is_a?'](b('Hash')))?(g=b(b('GxG'),'Database').$detached_format_find(f),c(g)?(d['$<<'](g),c(i['$respond_to?']("call"))&&i.$call(d),j=!0):k['$<<'](f)):c(f['$is_a?'](b('Array')))&&e(f,'each',[],function(e){return e==null&&(e=a),g=b(b('GxG'),'Database').$detached_format_find(e),c(g)?d['$<<'](g):k['$<<'](e)}),c(h(k.$size(),0))?e(b(q('GxG'),'CONNECTION'),'format_pull',[k],function(f){return f==null&&(f=a),c(f['$is_a?'](b('Hash')))&&c(f['$[]']("result")['$is_a?'](b('Array')))?(e(f['$[]']("result"),'each',[],function(c){return c==null&&(c=a),b(q('GxG'),'DB')['$[]']("formats")['$[]='](c['$[]']("uuid").$to_sym(),c),d['$<<'](c)}),c(i['$respond_to?']("call"))&&i.$call(d),j=!0):a}):c(h(d.$size(),0))&&(c(i['$respond_to?']("call"))&&i.$call(d),j=!0),j},-1),k(A,'$process_detached_import',function(d){var g=this,f=a;return d==null&&(d=a),f=[],c(d['$is_a?'](b('Hash')))&&(c(h(d['$[]']("formats").$size(),0))&&e(d['$[]']("formats").$keys(),'each',[],function i(g){var h,j=i.$$s==null?this:i.$$s,f=a;return g==null&&(g=a),c(b(q('GxG'),'DB')['$[]']("formats")['$[]'](g))?a:(f=d['$[]']("formats")['$[]'](g),c(f['$[]']("version")['$is_a?'](b('String')))&&f['$[]=']("version",j.$BigDecimal(f['$[]']("version").$to_s())),f['$[]=']("content",b('Hash').$gxg_import(f['$[]']("content"))),(h=[g,f],e(b(q('GxG'),'DB')['$[]']("formats"),'[]=',h),h[h.length-1]))},{$$s:g}),c(h(d['$[]']("records").$size(),1))?e(d['$[]']("records"),'each',[],function(c){return c==null&&(c=a),f['$<<'](b(b(q('GxG'),'Database'),'DetachedHash').$import(c))}):f['$<<'](b(b(q('GxG'),'Database'),'DetachedHash').$import(d['$[]']("records")['$[]'](0)))),f},-1),k(A,'$process_import',function(d){var g=this,f=a;return d==null&&(d=a),f=[],c(d['$is_a?'](b('Hash')))&&(c(h(d['$[]']("formats").$size(),0))&&e(d['$[]']("formats").$keys(),'each',[],function i(g){var h,j=i.$$s==null?this:i.$$s,f=a;return g==null&&(g=a),c(b(q('GxG'),'DB')['$[]']("formats")['$[]'](g))?a:(f=d['$[]']("formats")['$[]'](g),c(f['$[]']("version")['$is_a?'](b('String')))&&f['$[]=']("version",j.$BigDecimal(f['$[]']("version").$to_s())),f['$[]=']("content",b('Hash').$gxg_import(f['$[]']("content"))),(h=[g,f],e(b(q('GxG'),'DB')['$[]']("formats"),'[]=',h),h[h.length-1]))},{$$s:g}),c(h(d['$[]']("records").$size(),1))?e(d['$[]']("records"),'each',[],function(c){return c==null&&(c=a),f['$<<'](b(b(q('GxG'),'Database'),'PersistedHash').$import(c))}):f['$<<'](b(b(q('GxG'),'Database'),'PersistedHash').$import(d['$[]']("records")['$[]'](0)))),f},-1),function(A,v,x){var n=r(A,v,'DetachedHash'),z=[n].concat(x),q=g.$r(z),u=n.$$prototype;return u.uuid=u.title=u.version=u.property_links=u.format=u.parent=a,n.$public(),d(n,'$uuid',function(){var a=this;return a.uuid.$clone()}),d(n,'$uuid=',function(b){var d=this;return b==null&&(b=a),c(q('GxG')['$valid_uuid?'](b))?d.uuid=b.$to_s().$to_sym():a},-1),d(n,'$title',function(){var a=this;return a.title.$clone()}),d(n,'$title=',function(b){var d=this;return b==null&&(b=a),c(b)?(d.title=b.$to_s()['$[]'](l(0,255,!1)),d.$increment_version()):a},-1),d(n,'$version',function(){var a=this;return a.version.$clone()}),d(n,'$version=',function(d){var e=this;return d==null&&(d=a),c(d['$is_a?'](b('Numeric')))?e.version=d.$to_s("F").$to_d():a},-1),d(n,'$element_version',function(d){var f=this,e=a;return d==null&&(d=a),e=0,c(d['$is_a?'](b('Symbol')))&&(c(h(d.$to_s().$size(),256))&&(f.$log_warn(new Map([["warning","Attempted oversized key usage (limited to 256 characters), truncated "+d.$inspect()+" to "+d.$to_s()['$[]'](l(0,255,!1)).$to_sym().$inspect()]])),d=d.$to_s()['$[]'](l(0,255,!1)).$to_sym()),c(f.property_links['$[]'](d.$to_s().$to_sym()))?e=f.property_links['$[]'](d.$to_s().$to_sym())['$[]']("record")['$[]']("version"):e=0),e},-1),d(n,'$set_element_version',function(f,e){var d=this,g=a;return e==null&&(e=a),g=!1,c(d.property_links['$[]'](f))?c(e['$is_a?'](b('Numeric')))?(d.property_links['$[]'](f)['$[]']("record")['$[]=']("version",t(p(e.$to_f(),1e4).$to_i().$to_f(),1e4)),g=!0):d.$log_warning("Attempted to set version to an invalid version value "+e.$inspect()+" for "+f.$inspect()+" on Object "+d.uuid.$inspect()):d.$log_warning("Attempted to set version with an invalid key "+f.$inspect()+" on Object "+d.uuid.$inspect()),g},-2),d(n,'$format',function(){var a=this;return a.format.$clone()}),d(n,'$format=',function(b){var d=this;return b==null&&(b=a),c(q('GxG')['$valid_uuid?'](b))?d.format=b.$to_s().$to_sym():a},-1),d(n,'$parent',w("parent")),d(n,'$parent=',function(d){var e=this;return d==null&&(d=a),c(d['$is_any?']([b(b(b('GxG'),'Database'),'DetachedHash'),b(b(b('GxG'),'Database'),'DetachedArray')]))?c(e.parent)?a:e.parent=d:a},-1),d(n,'$write_reserved?',i(!0)),d(n,'$release_reservation',i(!0)),d(n,'$get_reservation',i(!0)),d(n,'$wait_for_reservation',function(b){return b==null&&(b=a),!0},-1),k(n,'$import',function(i){var g=this,j=a,f=a,d=a;for(i==null&&(i=a),j=a,c(i['$is_any?'](b('Hash'),b(b(b('GxG'),'Database'),'DetachedHash')))||g.$raise(q('Exception'),"Malformed import record passed."),f=[new Map([["target",b(b(b('GxG'),'Database'),'DetachedHash').$new()],["record",i]])],j=f['$[]'](0)['$[]']("target");c(h(f.$size(),0));)switch(d=f.$shift(),d['$[]']("record")['$[]']("type").$to_s().$to_sym().valueOf()){case"element_hash":d['$[]']("target")['$uuid='](d['$[]']("record")['$[]']("uuid").$to_s().$to_sym()),d['$[]']("target")['$title='](d['$[]']("record")['$[]']("title").$to_s()),e(d['$[]']("record")['$[]']("content").$keys(),'each',[],function i(g){var c,j=i.$$s==null?this:i.$$s,h=a;switch(g==null&&(g=a),d['$[]']("record")['$[]']("content")['$[]'](g)['$[]']("type").$to_s().$to_sym().valueOf()){case"element_hash":return h=b(b(q('GxG'),'Database'),'DetachedHash').$new(),d['$[]']("target")['$[]='](g,h),f['$<<'](new Map([["target",h],["record",d['$[]']("record")['$[]']("content")['$[]'](g)]])),(c=[d['$[]']("target")],e(d['$[]']("target")['$[]'](g),'parent=',c),c[c.length-1]);case"element_array":return h=b(b(q('GxG'),'Database'),'DetachedArray').$new(),d['$[]']("target")['$[]='](g,h),f['$<<'](new Map([["target",h],["record",d['$[]']("record")['$[]']("content")['$[]'](g)]])),(c=[d['$[]']("target")],e(d['$[]']("target")['$[]'](g),'parent=',c),c[c.length-1]);case"element_boolean":case"element_integer":case"element_float":case"element_text":return c=[g,d['$[]']("record")['$[]']("content")['$[]'](g)['$[]']("content")],e(d['$[]']("target"),'[]=',c),c[c.length-1];case"element_bigdecimal":return c=[g,j.$BigDecimal(d['$[]']("record")['$[]']("content")['$[]'](g)['$[]']("content").$to_s())],e(d['$[]']("target"),'[]=',c),c[c.length-1];case"element_datetime":return c=[g,b('Chronic').$parse(d['$[]']("record")['$[]']("content")['$[]'](g)['$[]']("content").$to_s())],e(d['$[]']("target"),'[]=',c),c[c.length-1];case"element_binary":return c=[g,b(b('GxG'),'ByteArray').$new(d['$[]']("record")['$[]']("content")['$[]'](g)['$[]']("content").$to_s().$decode64())],e(d['$[]']("target"),'[]=',c),c[c.length-1];default:return a}},{$$s:g}),d['$[]']("target")['$version='](g.$BigDecimal(d['$[]']("record")['$[]']("version").$to_s())),d['$[]']("target")['$format='](d['$[]']("record")['$[]']("format").$to_s().$to_sym());break;case"element_array":d['$[]']("target")['$uuid='](d['$[]']("record")['$[]']("uuid").$to_s().$to_sym()),d['$[]']("target")['$title='](d['$[]']("record")['$[]']("title").$to_s()),e(d['$[]']("record")['$[]']("content"),'each_index',[],function i(g){var c,j=i.$$s==null?this:i.$$s,h=a;switch(g==null&&(g=a),d['$[]']("record")['$[]']("content")['$[]'](g)['$[]']("type").$to_s().$to_sym().valueOf()){case"element_hash":return h=b(b(q('GxG'),'Database'),'DetachedHash').$new(),d['$[]']("target")['$[]='](g,h),f['$<<'](new Map([["target",h],["record",d['$[]']("record")['$[]']("content")['$[]'](g)]])),(c=[d['$[]']("target")],e(d['$[]']("target")['$[]'](g),'parent=',c),c[c.length-1]);case"element_array":return h=b(b(q('GxG'),'Database'),'DetachedArray').$new(),d['$[]']("target")['$[]='](g,h),f['$<<'](new Map([["target",h],["record",d['$[]']("record")['$[]']("content")['$[]'](g)]])),(c=[d['$[]']("target")],e(d['$[]']("target")['$[]'](g),'parent=',c),c[c.length-1]);case"element_boolean":case"element_integer":case"element_float":case"element_text":return c=[g,d['$[]']("record")['$[]']("content")['$[]'](g)['$[]']("content")],e(d['$[]']("target"),'[]=',c),c[c.length-1];case"element_bigdecimal":return c=[g,j.$BigDecimal(d['$[]']("record")['$[]']("content")['$[]'](g)['$[]']("content").$to_s())],e(d['$[]']("target"),'[]=',c),c[c.length-1];case"element_datetime":return c=[g,b('Chronic').$parse(d['$[]']("record")['$[]']("content")['$[]'](g)['$[]']("content").$to_s())],e(d['$[]']("target"),'[]=',c),c[c.length-1];case"element_binary":return c=[g,b(b('GxG'),'ByteArray').$new(d['$[]']("record")['$[]']("content")['$[]'](g)['$[]']("content").$to_s().$decode64())],e(d['$[]']("target"),'[]=',c),c[c.length-1];default:return a}},{$$s:g}),d['$[]']("target")['$version='](g.$BigDecimal(d['$[]']("record")['$[]']("version").$to_s())),d['$[]']("target")['$constraint='](d['$[]']("record")['$[]']("constraint").$to_s().$to_sym());break;default:a}return j},-1),k(n,'$create_from_format',function(b){return b==null&&(b=a),a},-1),d(n,'$ufs',function(){var e=this,d=a;return c(e.format)?(d=b(q('GxG'),'DB')['$[]']("formats")['$[]'](e.format.$to_s().$to_sym()),c(d))?d['$[]']("ufs").$to_s().$to_sym():"":""}),d(n,'$increment_version',function(){var a=this;return a.version=j(a.version,1e-4)}),d(n,'$initialize',function(){var c=this;return c.uuid=b('GxG').$uuid_generate().$to_s().$to_sym(),c.title="Untitled "+c.uuid.$to_s(),c.version=c.$BigDecimal("0.0"),c.format=a,c.parent=a,c.property_links=new Map,c}),d(n,'$inspect',function(){var c=this,d=a,b=a;return d=c.property_links.$keys().$last(),b="{",e(c.property_links.$keys(),'each',[],function g(c){var e=g.$$s==null?this:g.$$s;return e.property_links==null&&(e.property_links=a),c==null&&(c=a),b=j(b,j(":"+c.$to_s()+" => ",e.property_links['$[]'](c)['$[]']("content").$inspect())),f(d,c)?a:b=j(b,", ")},{$$s:c}),j(b,"}")}),d(n,'$alive?',i(!0)),d(n,'$save',function(){var d=this,b=a,e=a;if(b=!1,c(d['$alive?']()))try{b=!0}catch(a){if(g.rescue(a,[q('Exception')])){e=a;try{d.$log_error(new Map([["error",e]]))}finally{g.pop_exception(a)}}else throw a}return b}),d(n,'$destroy',function(){var d=this,b=a,e=a;if(b=!1,c(d['$alive?']()))try{b=!0}catch(a){if(g.rescue(a,[q('Exception')])){e=a;try{d.$log_error(new Map([["error",e]]))}finally{g.pop_exception(a)}}else throw a}return b}),d(n,'$size',function(){var a=this;return a.property_links.$size()}),d(n,'$keys',function(){var a=this;return a.property_links.$keys()}),d(n,'$[]=',function(k,g){var e=this,n=a,i=a,m=a,d=a;if(k==null&&(k=a),g==null&&(g=a),c(e['$alive?']())||e.$raise(q('Exception'),"Attempted to alter a defunct structure"),n=a,c(k['$is_a?'](b('Symbol'))))if(c(h(k.$to_s().$size(),256))&&(e.$log_warn(new Map([["warning","Attempted oversized key usage (limited to 256 characters), truncated "+k.$inspect()+" to "+k.$to_s()['$[]'](l(0,255,!1)).$to_sym().$inspect()]])),k=k.$to_s()['$[]'](l(0,255,!1)).$to_sym()),i=k.$to_s().$to_sym(),c(g['$is_any?'](s,b('TrueClass'),b('FalseClass'),b('Integer'),b('Float'),b('BigDecimal'),b('String'),b('Time'),b(b('GxG'),'ByteArray'),b(b(b('GxG'),'Database'),'DetachedHash'),b(b(b('GxG'),'Database'),'DetachedArray'),b('Hash'),b('Array'))))if(c(e['$write_reserved?']())||e.$get_reservation(),c(e['$write_reserved?']())){if(c(e.property_links['$[]'](k.$to_s().$to_sym()))?m="set_value":c(e.format)?e.$raise(q('Exception'),"Formatted - the structure cannot be altered"):m="add_value",d=new Map([["linkid",a],["content",a],["loaded",!0],["state",0],["record",new Map([["parent_uuid",e.uuid.$to_s()],["property",k.$to_s()],["ordinal",0],["version",e.$BigDecimal("0.0")],["element","element_boolean"],["element_boolean",-1],["element_integer",0],["element_float",0],["element_bigdecimal",e.$BigDecimal("0.0")],["element_datetime",b('Time').$now()],["time_offset",0],["time_prior",0],["time_after",0],["length",0],["element_text",""],["element_binary",a],["element_array",a],["element_hash",a]])]]),c(g['$is_any?'](b(b(b('GxG'),'Database'),'DetachedHash'),b(b(b('GxG'),'Database'),'DetachedArray'))))d['$[]=']("content",g),d['$[]=']("loaded",!0),d['$[]=']("state",d['$[]']("content").$hash()),d['$[]']("record")['$[]=']("version",d['$[]']("content").$version()),c(g['$is_a?'](b(b(b('GxG'),'Database'),'DetachedHash')))?(d['$[]']("record")['$[]=']("element","element_hash"),d['$[]']("record")['$[]=']("element_hash",g)):(d['$[]']("record")['$[]=']("element","element_array"),d['$[]']("record")['$[]=']("element_array",g));else if(c(g['$is_any?'](b('Hash'),b('Array'))))d['$[]=']("content",b(b('GxG'),'Database').$iterative_detached_persist(g)),d['$[]=']("loaded",!0),d['$[]=']("state",d['$[]']("content").$hash()),d['$[]']("record")['$[]=']("version",d['$[]']("content").$version()),c(g['$is_a?'](b('Hash')))?(d['$[]']("record")['$[]=']("element","element_hash"),d['$[]']("record")['$[]=']("element_hash",d['$[]']("content"))):(d['$[]']("record")['$[]=']("element","element_array"),d['$[]']("record")['$[]=']("element_array",d['$[]']("content")));else switch(d['$[]']("record")['$[]=']("element",b(b('GxG'),'Database').$element_table_for_instance(g).$to_s()),d['$[]']("record")['$[]']("element").valueOf()){case"element_boolean":f(g.$class(),s)&&(d['$[]']("record")['$[]=']("element_boolean",-1),d['$[]=']("content",a)),f(g.$class(),b('FalseClass'))&&(d['$[]']("record")['$[]=']("element_boolean",0),d['$[]=']("content",!1)),f(g.$class(),b('TrueClass'))&&(d['$[]']("record")['$[]=']("element_boolean",1),d['$[]=']("content",!0));break;case"element_integer":d['$[]']("record")['$[]=']("element_integer",g),d['$[]=']("content",g);break;case"element_float":d['$[]']("record")['$[]=']("element_float",g),d['$[]=']("content",g);break;case"element_bigdecimal":d['$[]']("record")['$[]=']("element_bigdecimal",e.$BigDecimal(g.$to_s())),d['$[]=']("content",d['$[]']("record")['$[]']("element_bigdecimal"));break;case"element_datetime":d['$[]']("record")['$[]=']("element_datetime",g),d['$[]=']("content",g);break;case"element_text":d['$[]']("record")['$[]=']("element_text",g),d['$[]']("record")['$[]=']("length",g.$size()),d['$[]=']("content",g);break;case"element_binary":f(m,"set_value")&&(d['$[]']("record")['$[]=']("version",e.property_links['$[]'](i)['$[]']("record")['$[]']("version")),d['$[]']("record")['$[]=']("element_binary",e.property_links['$[]'](i)['$[]']("record")['$[]']("element_binary"))),d['$[]']("record")['$[]=']("length",g.$size()),d['$[]=']("content",g);break;default:e.$raise(q('Exception'),"Unable to map an element type for value: "+g.$inspect())}switch(m.valueOf()){case"set_value":c(d['$[]']("content")['$is_a?'](e.property_links['$[]'](i)['$[]']("content").$class()))||c([!0,!1,a]['$include?'](d['$[]']("content")))&&c([!0,!1,a]['$include?'](e.property_links['$[]'](i)['$[]']("content")))?(d['$[]=']("linkid",e.property_links['$[]'](i)['$[]']("linkid")),c(d['$[]']("content")['$is_any?'](b(b(b('GxG'),'Database'),'DetachedHash'),b(b(b('GxG'),'Database'),'DetachedArray')))?d['$[]']("record")['$[]=']("version",d['$[]']("content").$version()):d['$[]']("record")['$[]=']("version",j(e.property_links['$[]'](i)['$[]']("record")['$[]']("version"),1e-4)),d['$[]']("record")['$[]=']("ordinal",e.property_links['$[]'](i)['$[]']("record")['$[]']("ordinal")),d['$[]=']("loaded",!0),d['$[]=']("state",e.property_links['$[]'](i)['$[]']("state")),e.property_links['$[]='](i,d)):(c(d['$[]']("content")['$is_any?'](b(b(b('GxG'),'Database'),'DetachedHash'),b(b(b('GxG'),'Database'),'DetachedArray')))?d['$[]']("record")['$[]=']("version",d['$[]']("content").$version()):d['$[]']("record")['$[]=']("version",t(p(j(e.property_links['$[]'](i)['$[]']("record")['$[]']("version").$to_f(),1e-4),1e4).$to_i().$to_f(),1e4)),d['$[]']("record")['$[]=']("ordinal",e.property_links['$[]'](i)['$[]']("record")['$[]']("ordinal")),d['$[]=']("loaded",!0),e.property_links['$[]='](i,d)),n=e.property_links['$[]'](i)['$[]']("content");break;case"add_value":c(d['$[]']("content")['$is_any?'](b(b(b('GxG'),'Database'),'DetachedHash'),b(b(b('GxG'),'Database'),'DetachedArray')))?d['$[]']("record")['$[]=']("version",d['$[]']("content").$version()):d['$[]']("record")['$[]=']("version",e.$BigDecimal("0.0")),d['$[]']("record")['$[]=']("ordinal",e.property_links.$keys().$size()),d['$[]=']("loaded",!0),e.property_links['$[]='](i,d);break;default:a}c(e.property_links['$[]'](i)['$[]']("content")['$is_any?'](b(b(b('GxG'),'Database'),'DetachedHash'),b(b(b('GxG'),'Database'),'DetachedArray')))&&e.property_links['$[]'](i)['$[]']("content")['$parent='](e),e.$increment_version(),n=e.property_links['$[]'](i)['$[]']("content")}else e.$raise(q('Exception'),"You do not have sufficient privileges to make this change. (write-reservation)");else e.$raise(q('Exception'),"The value is not persistable.");else e.$raise(q('Exception'),"You must provide a property key in the form of a Symbol.");return n},-1),d(n,'$[]',function(d){var e=this,f=a,g=a;return d==null&&(d=a),f=a,c(e['$alive?']())?c(d['$is_a?'](b('Symbol')))?(c(h(d.$to_s().$size(),256))&&(e.$log_warn(new Map([["warning","Attempted oversized key usage (limited to 256 characters), truncated "+d.$inspect()+" to "+d.$to_s()['$[]'](l(0,255,!1)).$to_sym().$inspect()]])),d=d.$to_s()['$[]'](l(0,255,!1)).$to_sym()),g=d.$to_s().$to_sym(),c(e.property_links['$[]'](g))&&(f=e.property_links['$[]'](g)['$[]']("content"))):e.$raise(q('ArgumentError'),"You must specify with a Symbol, not a "+d.$class().$inspect()):e.$raise(q('Exception'),"Attempted to access a defunct structure"),f},-1),d(n,'$include?',function(a){var b=this;return b.property_links.$keys()['$include?'](a)}),d(n,'$delete',function(d){var e=this,f=a;return d==null&&(d=a),f=a,c(d['$is_a?'](b('Symbol')))?(c(h(d.$to_s().$size(),256))&&(e.$log_warn(new Map([["warning","Attempted oversized key usage (limited to 256 characters), truncated "+d.$inspect()+" to "+d.$to_s()['$[]'](l(0,255,!1)).$to_sym().$inspect()]])),d=d.$to_s()['$[]'](l(0,255,!1)).$to_sym()),c(e.format)?e.$raise(q('Exception'),"Formatted - the structure cannot be altered"):c(e.property_links['$[]'](d))&&(f=e.property_links['$[]'](d)['$[]']("content"),e.property_links.$delete(d))):e.$raise(q('ArgumentError'),"You must specify with a Symbol, not a "+d.$class().$inspect()),f},-1),d(n,'$unpersist',function(){var j=this,k=a,d=a,l=a,g=a,i=a;if(k=new Map,c(j['$alive?']()))for(d=[new Map([["parent",a],["parent_selector",a],["object",j],["record",k]])],l=e(q('Proc'),'new',[],function(b){var c=a;return b==null&&(b=a),c=[],e(d,'each',[],function(d){return d==null&&(d=a),f(d['$[]']("parent").$object_id(),b.$object_id())?c['$<<'](d):a}),c},-1),e(j,'search',[],function(e,f,g){return e==null&&(e=a),f==null&&(f=a),g==null&&(g=a),c(e['$is_a?'](b(b(b('GxG'),'Database'),'DetachedHash')))?d['$<<'](new Map([["parent",g],["parent_selector",f.$clone()],["object",e],["record",new Map]])):c(e['$is_a?'](b(b(b('GxG'),'Database'),'DetachedArray')))?d['$<<'](new Map([["parent",g],["parent_selector",f.$clone()],["object",e],["record",[]]])):d['$<<'](new Map([["parent",g],["parent_selector",f.$clone()],["object",e],["record",e]]))}),g=[d['$[]'](0)];c(h(g.$size(),0));)i=g.$shift(),e(l.$call(i['$[]']("object")),'each',[],function(d){return d==null&&(d=a),i['$[]']("record")['$[]='](d['$[]']("parent_selector"),d['$[]']("record")),c(d['$[]']("object")['$is_any?'](b(b(b('GxG'),'Database'),'DetachedHash'),b(b(b('GxG'),'Database'),'DetachedArray')))?g['$<<'](d):a});return k}),d(n,'$export',function(i){var d=this,m=a,j=a,k=a,g=a,o=a,l=a,n=a;for(i==null&&(i=new Map([["exclude_file_segments",!1]])),m=c(j=i['$[]']("exclude_file_segments"))&&j,f(i['$[]']("clone"),!0)?k=new Map([["type","element_hash"],["uuid",q('GxG').$uuid_generate().$to_s().$to_sym()],["title",d.title.$clone()],["version",d.version.$to_s("F")],["content",new Map]]):k=new Map([["type","element_hash"],["uuid",d.uuid.$clone()],["title",d.title.$clone()],["version",d.version.$to_s("F")],["format",d.format.$clone()],["content",new Map]]),g=[new Map([["parent",a],["parent_selector",a],["object",d],["record",k]])],o=e(q('Proc'),'new',[],function(b){var c=a;return b==null&&(b=a),c=[],e(g,'each',[],function(d){return d==null&&(d=a),f(d['$[]']("parent").$object_id(),b.$object_id())?c['$<<'](d):a}),c},-1),e(d,'search',[],function o(d,e,h){var p=o.$$s==null?this:o.$$s,k=a,n=a,l=a;if(d==null&&(d=a),e==null&&(e=a),h==null&&(h=a),c(d['$is_a?'](b(b(b('GxG'),'Database'),'DetachedHash')))&&(f(i['$[]']("clone"),!0)?k=q('GxG').$uuid_generate().$to_s().$to_sym():k=d.$uuid().$clone(),f(m,!0)&&(f(e,"file_segments")||f(e,"segments")||f(e,"portions"))?g['$<<'](new Map([["parent",h],["parent_selector",e.$clone()],["object",new Map],["record",new Map([["type","element_hash"],["uuid",k],["title",d.$title().$clone()],["version",d.$version().$to_s("F")],["format",d.$format().$clone()],["content",new Map]])]])):g['$<<'](new Map([["parent",h],["parent_selector",e.$clone()],["object",d],["record",new Map([["type","element_hash"],["uuid",k],["title",d.$title().$clone()],["version",d.$version().$to_s("F")],["format",d.$format().$clone()],["content",new Map]])]]))),c(d['$is_a?'](b(b(b('GxG'),'Database'),'DetachedArray')))&&(f(i['$[]']("clone"),!0)?k=q('GxG').$uuid_generate().$to_s().$to_sym():k=d.$uuid().$clone(),f(m,!0)&&(f(e,"file_segments")||f(e,"segments")||f(e,"portions"))?g['$<<'](new Map([["parent",h],["parent_selector",e.$clone()],["object",[]],["record",new Map([["type","element_array"],["uuid",k],["title",d.$title().$clone()],["version",d.$version().$to_s("F")],["constraint",d.$constraint().$clone()],["content",[]]])]])):g['$<<'](new Map([["parent",h],["parent_selector",e.$clone()],["object",d],["record",new Map([["type","element_array"],["uuid",k],["title",d.$title().$clone()],["version",d.$version().$to_s("F")],["constraint",d.$constraint().$clone()],["content",[]]])]]))),c(d['$is_any?'](s,b('TrueClass'),b('FalseClass'),b('Integer'),b('Float'),b('BigDecimal'),b('String'),b('Time'),b(b('GxG'),'ByteArray')))){switch(n=b(q('GxG'),'Database').$element_table_for_instance(d),n.valueOf()){case"element_bigdecimal":l=d.$to_s();break;case"element_datetime":l=d.$iso8601().$to_s();break;case"element_binary":l=d.$to_s().$encode64();break;case"element_text":l=d.$to_s();break;default:l=d}return g['$<<'](new Map([["parent",h],["parent_selector",e.$clone()],["object",d],["record",new Map([["type",n],["version",(c(j=h.$version(e))?j:p.$BigDecimal("0.0")).$to_s("F")],["content",l]])]]))}return a},{$$s:d}),l=[g['$[]'](0)];c(h(l.$size(),0));)n=l.$shift(),e(o.$call(n['$[]']("object")),'each',[],function(d){return d==null&&(d=a),n['$[]']("record")['$[]']("content")['$[]='](d['$[]']("parent_selector"),d['$[]']("record")),c(d['$[]']("object")['$is_any?'](b(b(b('GxG'),'Database'),'DetachedHash'),b(b(b('GxG'),'Database'),'DetachedArray')))?l['$<<'](d):a});return k},-1),d(n,'$each_pair',function d(){var f=d.$$p||a,g=this,b=a;return d.$$p=null,b=new Map,e(g.property_links.$keys(),'each',[],function f(c){var d,g=f.$$s==null?this:f.$$s;return c==null&&(c=a),(d=[c,g['$[]'](c)],e(b,'[]=',d),d[d.length-1])},{$$s:g}),c(f['$respond_to?']("call"))?e(b.$to_enum("each_pair"),'each',[],function(b,c){return b==null&&(b=a),c==null&&(c=a),f.$call(b,c)}):b.$to_enum("each_pair")}),d(n,'$iterative',function r(j){var t=r.$$p||a,k=this,m=a,s=a,n=a,p=a,i=a,d=a,l=a,u=a,v=a;r.$$p=null,j==null&&(j=new Map([["include_inactive",!0]])),m=[],s=e(q('Proc'),'new',[],function(i,g){var f=a,d=a;if(i==null&&(i=a),g==null&&(g=[]),f=[],c(i))for(f['$<<'](new Map([["parent",a],["parent_selector",a],["object",i]]));c(h(f.$size(),0));)d=f.$shift(),c(d['$[]']("object")['$is_a?'](b(b(b('GxG'),'Database'),'DetachedHash')))&&(c(d['$[]']("object")['$alive?']())?e(d['$[]']("object"),'each_pair',[],function(b,c){return b==null&&(b=a),c==null&&(c=a),f['$<<'](new Map([["parent",d['$[]']("object")],["parent_selector",b],["object",c]]))}):c(j['$[]']("include_inactive"))&&g['$<<'](d)),c(d['$[]']("object")['$is_a?'](b(b(b('GxG'),'Database'),'DetachedArray')))&&(c(d['$[]']("object")['$alive?']())?e(d['$[]']("object"),'each_with_index',[],function(b,c){return b==null&&(b=a),c==null&&(c=a),f['$<<'](new Map([["parent",d['$[]']("object")],["parent_selector",c],["object",b]]))}):c(j['$[]']("include_inactive"))&&g['$<<'](d));return g},-1),n=e(q('Proc'),'new',[],function(b,c){var d=a;return b==null&&(b=[]),c==null&&(c=a),d=[],e(b,'each',[],function(b){return b==null&&(b=a),f(b['$[]']("parent").$object_id(),c.$object_id())?d['$<<'](b):a}),d},-1);try{if(p=s.$call(k,[]),i=n.$call(p,k),c(t['$respond_to?']("call")))while(c(h(i.$size(),0)))d=i.$shift(),f(d['$[]']("object").$object_id(),k.$object_id())||(l=t.$call(d['$[]']("object"),d['$[]']("parent_selector"),d['$[]']("parent")),c(l)&&m['$<<'](l)),o(d['$[]']("object").$object_id(),a.$object_id())&&(u=n.$call(p,d['$[]']("object")),e(u,'each',[],function(b){return b==null&&(b=a),i['$<<'](b)}))}catch(a){if(g.rescue(a,[q('Exception')])){v=a;try{k.$log_error(new Map([["error",v],["parameters",new Map]]))}finally{g.pop_exception(a)}}else throw a}return m},-1),y(n,"process","iterative"),d(n,'$process!',function c(b){var f=c.$$p||a,d=this;return c.$$p=null,b==null&&(b=new Map([["include_inactive",!0]])),e(d,'iterative',[b],f.$to_proc()),d},-1),d(n,'$search',function f(b){var g=f.$$p||a,h=this,d=a;return f.$$p=null,b==null&&(b=new Map([["include_inactive",!0]])),d=[],c(g['$respond_to?']("call"))&&(d=e(h,'iterative',[b],g.$to_proc())),d},-1),d(n,'$paths_to',function(n,g){var t=this,j=a,d=a,i=a,r=a,s=a,p=a,k=a;return n==null&&(n=a),g==null&&(g=""),j=[],f(g['$[]'](0),"/")||(g="/"['$<<'](g)),c(h(g.$size(),1))?d=g.$split("/")['$[]'](l(1,-1,!1)).$reverse():d=[],i=t.$get_at_path(g),r=[new Map([["selector",a],["container",i]])],s=e(q('Proc'),'new',[],function(b){var c=a;return b==null&&(b=a),c=a,function(){try{var d=m('break');return e(r,'each_with_index',[],function h(e,g){if(e==null&&(e=a),g==null&&(g=a),f(e['$[]']("container"),b))c=e,d.$throw(a,h.$$is_lambda);else return a})}catch(a){if(a===d)return a.$v;throw a}finally{d.is_orphan=!0}}(),c}),p=i,k=!1,c(i['$is_any?'](b('Hash'),b('Array'),b('Struct'),b(b(b('GxG'),'Database'),'DetachedHash'),b(b(b('GxG'),'Database'),'DetachedArray')))?e(i,'process!',[],function(e,h,g){var i=a,l=a;return e==null&&(e=a),h==null&&(h=a),g==null&&(g=a),o(p.$object_id(),g.$object_id())&&(i=s.$call(g),c(i)&&(d=i['$[]']("prefix").$split("/").$reverse(),f(d.$size(),0)&&d['$<<']("")),p=g),l=h.$to_s(),l['$gsub!']("/","%2f"),d.$unshift(l),k=!1,f(e,n)&&(k=!0),c(k)&&j['$<<']("/"['$<<'](d.$reverse().$join("/"))),c(e['$is_any?'](b('Array'),b('Hash'),b('Struct'),b(b(b('GxG'),'Database'),'DetachedHash'),b(b(b('GxG'),'Database'),'DetachedArray')))&&r.$unshift(new Map([["selector",h],["container",e],["prefix",d.$reverse().$join("/")]])),d.$shift(),a}):j['$<<']("/"['$<<'](d.$join("/"))),j},-1),d(n,'$get_at_path',function(d){var i=this,b=a,g=a,j=a;return d==null&&(d="/"),b=a,f(d,"/")?b=i:(g=[i],j=d.$split("/"),function(){try{var d=m('break');return e(j.$to_enum(),'each',[],function j(i){var e=a;if(i==null&&(i=a),e=a,c(h(i.$size(),0))&&(f(i['$=~'](/^(?:[0-9])*[0-9](?:[0-9])*$/),0)?e=i.$to_i():(e=i.$to_s(),e['$gsub!']("%2f","/"),e=e.$to_sym())),c(e))if(b=g.$first()['$[]'](e),c(b['$is_a?'](q('NilClass'))))d.$throw(a,j.$$is_lambda);else return g.$unshift(b);else return a})}catch(a){if(a===d)return a.$v;throw a}finally{d.is_orphan=!0}}()),b},-1),d(n,'$set_at_path',function(g,j){var l=this,k=a,i=a,e=a,d=a;return g==null&&(g="/"),j==null&&(j=a),k=a,o(g,"/")&&(i=l.$get_at_path(b('File').$dirname(g)),c(i)&&(e=b('File').$basename(g),d=a,c(h(e.$size(),0))&&(f(e['$=~'](/^(?:[0-9])*[0-9](?:[0-9])*$/),0)?d=e.$to_i():(d=e.$to_s(),d['$gsub!']("%2f","/"),d=d.$to_sym())),c(d)&&(i['$[]='](d,j),k=i['$[]'](d)))),k},-1)}(B[0],null,B),function(D,A,B){var k=r(D,A,'DetachedArray'),C=[k].concat(B),q=g.$r(C),x=k.$$prototype;return x.element_links=x.uuid=x.title=x.version=x.constraint=x.parent=x.format=a,k.$private(),d(k,'$element_destroy',function(b){return b==null&&(b=a),a},-1),d(k,'$element_write',function(b){return b==null&&(b=a),a},-1),d(k,'$load_element_links',i(a)),d(k,'$refresh_ordinals',function(){var b=this,c=a;return c=[],e(b.element_links,'each_with_index',[],function e(f,b){var d=e.$$s==null?this:e.$$s;return d.element_links==null&&(d.element_links=a),f==null&&(f=a),b==null&&(b=a),d.element_links['$[]'](b)['$[]']("record")['$[]=']("ordinal",b),c['$<<'](d.element_links['$[]'](b))},{$$s:b}),b.element_links=c}),k.$public(),d(k,'$uuid',function(){var a=this;return a.uuid.$clone()}),d(k,'$uuid=',function(b){var d=this;return b==null&&(b=a),c(q('GxG')['$valid_uuid?'](b))?d.uuid=b.$to_s().$to_sym():a},-1),d(k,'$title',function(){var a=this;return a.title.$clone()}),d(k,'$title=',function(b){var d=this;return b==null&&(b=a),c(b)?(d.title=b.$to_s()['$[]'](l(0,255,!1)),d.$increment_version()):a},-1),d(k,'$version',function(){var a=this;return a.version.$clone()}),d(k,'$version=',function(d){var e=this;return d==null&&(d=a),c(d['$is_a?'](b('Numeric')))?e.version=d.$to_s("F").$to_d():a},-1),d(k,'$element_version',function(d){var f=this,e=a;return d==null&&(d=a),e=0,c(d['$is_a?'](b('Numeric')))&&(c(f.element_links['$[]'](d))?e=f.element_links['$[]'](d)['$[]']("record")['$[]']("version"):e=0),e},-1),d(k,'$set_element_version',function(f,e){var d=this,g=a;return e==null&&(e=a),g=!1,c(d.element_links['$[]'](f))?c(e['$is_a?'](b('Numeric')))?(d.element_links['$[]'](f)['$[]']("record")['$[]=']("version",t(p(e.$to_f(),1e4).$to_i().$to_f(),1e4)),g=!0):d.$log_warning("Attempted to set version to an invalid version value "+e.$inspect()+" for index "+f.$inspect()+" on Object "+d.uuid.$inspect()):d.$log_warning("Attempted to set version with an invalid index "+f.$inspect()+" on Object "+d.uuid.$inspect()),g},-2),d(k,'$constraint',function(){var a=this;return a.constraint.$clone()}),d(k,'$constraint=',function(b){var d=this;return b==null&&(b=a),c(q('GxG')['$valid_uuid?'](b))?d.constraint=b.$to_s().$to_sym():a},-1),d(k,'$parent',w("parent")),d(k,'$parent=',function(d){var e=this;return d==null&&(d=a),c(d['$is_any?']([b(b(b('GxG'),'Database'),'DetachedHash'),b(b(b('GxG'),'Database'),'DetachedArray')]))?c(e.parent)?a:e.parent=d:a},-1),d(k,'$get_permissions',i(a)),d(k,'$set_permissions',function(b,c){return b==null&&(b=a),c==null&&(c=a),a},-1),d(k,'$reservation',i(a)),d(k,'$write_permission?',i(!0)),d(k,'$write_reserved?',i(!0)),d(k,'$release_reservation',i(!0)),d(k,'$get_reservation',i(!0)),d(k,'$wait_for_reservation',function(b){return b==null&&(b=a),!0},-1),d(k,'$get_delegate',i(a)),d(k,'$set_delegate',function(b){return b==null&&(b=a),a},-1),d(k,'$increment_version',function(){var b=this;return c(b['$alive?']())&&c(b['$write_reserved?']())?b.version=t(p(j(b.version,1e-4),1e4).$to_i().$to_f(),1e4):a}),d(k,'$save_version',i(a)),d(k,'$clear_constraint',function(){var b=this;return c(b['$alive?']())&&c(b.constraint)&&(b.constraint=a),!0}),d(k,'$constraint',function(){var a=this;return a.constraint.$clone()}),d(k,'$ufs',function(){var e=this,d=a;return c(e.format)?(d=b(q('GxG'),'DB')['$[]']("formats")['$[]'](e.format.$to_s().$to_sym()),c(d))?d['$[]']("ufs").$to_s().$to_sym():"":""}),d(k,'$refresh_links',i(a)),d(k,'$initialize',function(){var c=this;return c.uuid=b('GxG').$uuid_generate().$to_s().$to_sym(),c.title="Untitled "+c.uuid.$to_s(),c.version=0,c.constraint=a,c.parent=a,c.data=[],c.element_links=[],c}),d(k,'$inspect',function(){var c=this,b=a;return b="[",e(c.element_links,'each_index',[],function e(c){var d=e.$$s==null?this:e.$$s;return d.element_links==null&&(d.element_links=a),c==null&&(c=a),b=j(b,d.element_links['$[]'](c)['$[]']("content").$inspect()),f(c,n(d.element_links.$size(),1))?a:b=j(b,", ")},{$$s:c}),j(b,"]")}),d(k,'$alive?',i(!0)),d(k,'$db_address',i(a)),d(k,'$deactivate',i(a)),d(k,'$save',i(a)),d(k,'$destroy',i(a)),d(k,'$size',function(){var a=this;return a.element_links.$size()}),d(k,'$structure_attached?',i(!1)),d(k,'$structure_detach',i(!0)),d(k,'$[]=',function(i,h){var g=this,l=a,k=a,d=a,m=a;if(i==null&&(i=a),h==null&&(h=a),c(g['$alive?']())||g.$raise(q('Exception'),"Attempted to alter a defunct structure"),l=a,c(i['$is_a?'](b('Integer'))))if(c(h['$is_any?'](b(b('GxG'),'Database').$valid_field_classes()))||c(h['$is_any?'](b(b(b('GxG'),'Database'),'DetachedHash'),b(b(b('GxG'),'Database'),'DetachedArray'),b('Hash'),b('Array'))))if(c(g['$write_reserved?']())||g.$get_reservation(),c(g['$write_reserved?']())){if(c(h['$is_any?'](b('Hash'),b('Array')))&&e(h,'search',[],function e(d,f,g){var h=e.$$s==null?this:e.$$s;return d==null&&(d=a),f==null&&(f=a),g==null&&(g=a),c(d['$is_any?'](b(b('GxG'),'Database').$valid_field_classes()))||c(d['$is_any?'](b(b(b('GxG'),'Database'),'DetachedHash'),b(b(b('GxG'),'Database'),'DetachedArray'),b('Hash'),b('Array')))?a:h.$raise(q('Exception'),"The structure you are attaching has an unpersistable item within it (not supported).")},{$$s:g}),c(g.element_links['$[]'](i))?k="set_value":c(g.constraint)?g.$raise(q('Exception'),"Formatted - the structure cannot be altered"):k="add_value",d=new Map([["linkid",a],["content",a],["loaded",!1],["state",0],["record",new Map([["parent_uuid",g.uuid.$to_s()],["ordinal",0],["version",0],["element","element_boolean"],["element_boolean",-1],["element_integer",0],["element_float",0],["element_bigdecimal",g.$BigDecimal("0.0")],["element_datetime",b('Time').$now()],["time_offset",0],["time_prior",0],["time_after",0],["length",0],["element_text",""],["element_binary",a],["element_array",a],["element_hash",a]])]]),c(h['$is_any?'](b(b(b('GxG'),'Database'),'DetachedHash'),b(b(b('GxG'),'Database'),'DetachedArray'))))d['$[]=']("content",h),d['$[]=']("loaded",!0),d['$[]=']("state",d['$[]']("content").$hash()),d['$[]']("record")['$[]=']("version",d['$[]']("content").$version()),c(h['$is_a?'](b(b(b('GxG'),'Database'),'DetachedHash')))?(d['$[]']("record")['$[]=']("element","element_hash"),d['$[]']("record")['$[]=']("element_hash",h)):(d['$[]']("record")['$[]=']("element","element_array"),d['$[]']("record")['$[]=']("element_array",h));else if(c(h['$is_any?'](b('Hash'),b('Array'))))d['$[]=']("content",b(b('GxG'),'Database').$iterative_detached_persist(h)),d['$[]=']("loaded",!0),d['$[]=']("state",d['$[]']("content").$hash()),d['$[]']("record")['$[]=']("version",d['$[]']("content").$version()),c(h['$is_a?'](b('Hash')))?(d['$[]']("record")['$[]=']("element","element_hash"),d['$[]']("record")['$[]=']("element_hash",d['$[]']("content"))):(d['$[]']("record")['$[]=']("element","element_array"),d['$[]']("record")['$[]=']("element_array",d['$[]']("content")));else switch(d['$[]']("record")['$[]=']("element",b(b('GxG'),'Database').$element_table_for_instance(h).$to_s()),d['$[]']("record")['$[]']("element").valueOf()){case"element_boolean":u(s,m=h.$class())?(d['$[]']("record")['$[]=']("element_boolean",-1),d['$[]=']("content",a)):u(b('FalseClass'),m)?(d['$[]']("record")['$[]=']("element_boolean",0),d['$[]=']("content",!1)):u(b('TrueClass'),m)?(d['$[]']("record")['$[]=']("element_boolean",1),d['$[]=']("content",!0)):a;break;case"element_integer":d['$[]']("record")['$[]=']("element_integer",h),d['$[]=']("content",h);break;case"element_float":d['$[]']("record")['$[]=']("element_float",h),d['$[]=']("content",h);break;case"element_bigdecimal":d['$[]']("record")['$[]=']("element_bigdecimal",g.$BigDecimal(h.$to_s())),d['$[]=']("content",d['$[]']("record")['$[]']("element_bigdecimal"));break;case"element_datetime":d['$[]']("record")['$[]=']("element_datetime",h),d['$[]=']("content",h);break;case"element_text":d['$[]']("record")['$[]=']("element_text",h),d['$[]']("record")['$[]=']("length",h.$size()),d['$[]=']("content",h);break;case"element_binary":f(k,"set_value")&&(d['$[]']("record")['$[]=']("version",g.element_links['$[]'](i)['$[]']("record")['$[]']("version")),d['$[]']("record")['$[]=']("element_binary_uuid",g.element_links['$[]'](i)['$[]']("record")['$[]']("element_binary_uuid"))),d['$[]']("record")['$[]=']("length",h.$size()),d['$[]=']("content",h);break;default:g.$raise(q('Exception'),"Unable to map an element type for value: "+h.$inspect())}switch(k.valueOf()){case"set_value":c(d['$[]']("content")['$is_a?'](g.element_links['$[]'](i)['$[]']("content").$class()))||c([!0,!1,a]['$include?'](d['$[]']("content")))&&c([!0,!1,a]['$include?'](g.element_links['$[]'](i)['$[]']("content")))?(d['$[]=']("linkid",g.element_links['$[]'](i)['$[]']("linkid")),c(d['$[]']("content")['$is_any?'](b(b(b('GxG'),'Database'),'DetachedHash'),b(b(b('GxG'),'Database'),'DetachedArray')))?d['$[]']("record")['$[]=']("version",d['$[]']("content").$version()):d['$[]']("record")['$[]=']("version",t(p(j(g.element_links['$[]'](i)['$[]']("record")['$[]']("version").$to_f(),1e-4),1e4).$to_i().$to_f(),1e4)),d['$[]']("record")['$[]=']("ordinal",g.element_links['$[]'](i)['$[]']("record")['$[]']("ordinal")),d['$[]=']("loaded",!0),d['$[]=']("state",g.element_links['$[]'](i)['$[]']("state")),c(d['$[]']("content")['$is_a?'](b('String')))&&g.element_links['$[]='](i,d)):(c(d['$[]']("content")['$is_any?'](b(b(b('GxG'),'Database'),'DetachedHash'),b(b(b('GxG'),'Database'),'DetachedArray')))?d['$[]']("record")['$[]=']("version",d['$[]']("content").$version()):d['$[]']("record")['$[]=']("version",t(p(j(g.element_links['$[]'](i)['$[]']("record")['$[]']("version").$to_f(),1e-4),1e4).$to_i().$to_f(),1e4)),d['$[]']("record")['$[]=']("ordinal",g.element_links['$[]'](i)['$[]']("record")['$[]']("ordinal")),d['$[]=']("loaded",!0),g.element_links['$[]='](i,d));break;case"add_value":c(d['$[]']("content")['$is_any?'](b(b(b('GxG'),'Database'),'DetachedHash'),b(b(b('GxG'),'Database'),'DetachedArray')))?d['$[]']("record")['$[]=']("version",d['$[]']("content").$version()):d['$[]']("record")['$[]=']("version",0),d['$[]']("record")['$[]=']("ordinal",g.element_links.$size()),d['$[]=']("loaded",!0),g.element_links['$[]='](i,d);break;default:a}c(g.element_links['$[]'](i)['$[]']("content")['$is_any?'](b(b(b('GxG'),'Database'),'DetachedHash'),b(b(b('GxG'),'Database'),'DetachedArray')))&&g.element_links['$[]'](i)['$[]']("content")['$parent='](g),g.$increment_version(),l=g.element_links['$[]'](i)['$[]']("content")}else g.$raise(q('Exception'),"You do not have sufficient privileges to make this change. (write-reservation)");else g.$raise(q('Exception'),"The value is not persistable.");else g.$raise(q('Exception'),"You must provide a index in the form of an Integer.");return l},-1),d(k,'$[]',function(d){var e=this,f=a;return d==null&&(d=a),f=a,c(e['$alive?']())?c(d['$is_a?'](b('Integer')))?c(e.element_links['$[]'](d))&&(f=e.element_links['$[]'](d)['$[]']("content")):e.$raise(q('ArgumentError'),"You must specify with an Integer, not a "+d.$class().$inspect()):e.$raise(q('Exception'),"Attempted to access a defunct structure"),f},-1),d(k,'$delete_at',function(e){var d=this,f=a,g=a;return e==null&&(e=a),f=a,c(d['$alive?']())?c(e['$is_a?'](b('Integer')))?c(d['$write_reserved?']())?c(d.element_links['$[]'](e))&&(f=d['$[]'](e),g=d.element_links.$delete_at(e),c(g['$[]']("content")['$is_any?'](b(b(b('GxG'),'Database'),'DetachedHash'),b(b(b('GxG'),'Database'),'DetachedArray')))&&g['$[]']("content").$save(),d.$increment_version()):d.$raise(q('Exception'),"You do not have sufficient privileges to make this change"):d.$raise(q('ArgumentError'),"You must specify with a Symbol, not a "+d.$key().$class().$inspect()):d.$raise(q('Exception'),"Attempted to access a defunct structure"),f},-1),d(k,'$<<',function(i){var d,b,f=this;return d=v(arguments),b=d,c(h(b.$size(),0))&&e(b,'each',[],function f(d){var b,c=f.$$s==null?this:f.$$s;return c.element_links==null&&(c.element_links=a),d==null&&(d=a),(b=[c.element_links.$size(),d],e(c,'[]=',b),b[b.length-1])},{$$s:f}),f},-1),d(k,'$push',function(i){var d,b,f=this;return d=v(arguments),b=d,c(h(b.$size(),0))&&e(b,'each',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),d['$<<'](b)},{$$s:f}),f},-1),d(k,'$pop',function(){var a=this;return a.$delete_at(n(a.element_links.$size(),1))}),d(k,'$shift',function(){var a=this;return a.$delete_at(0)}),d(k,'$insert',function(d,g){var e=this,i=a;return d==null&&(d=a),g==null&&(g=a),c(b(b('GxG'),'Database')['$persistable?'](g))&&(i=new Map([["linkid",a],["content",a],["loaded",!1],["state",0],["record",new Map([["parent_uuid",e.uuid.$to_s()],["ordinal",0],["version",e.$BigDecimal("0.0")],["element","element_boolean"],["element_boolean",-1],["element_integer",0],["element_float",0],["element_bigdecimal",e.$BigDecimal("0.0")],["element_datetime",b('DateTime').$now()],["time_offset",0],["time_prior",0],["time_after",0],["length",0],["element_text",""],["element_text_uuid",""],["element_binary_uuid",""],["element_array_uuid",""],["element_hash_uuid",""]])]]),d=d.$to_i(),c(z(d,0))&&(d=n(e.$size(),d)),f(d,0)?(i['$[]']("record")['$[]=']("ordinal",d),e.element_links.$unshift(i),e.$refresh_ordinals(),e['$[]='](0,g)):c(h(d,n(e.$size(),1)))?e.$push(g):(i['$[]']("record")['$[]=']("ordinal",d),e.element_links.$insert(d,i),e.$refresh_ordinals(),e['$[]='](d,g))),e},-1),d(k,'$unshift',function(b){var c=this;return b==null&&(b=a),c.$insert(0,b)},-1),d(k,'$swap',function(b,d){var e=this,f=a,h=a;return b==null&&(b=a),d==null&&(d=a),f=!1,c(b)&&c(d)&&c(g.Range.$new(0,n(e.$size(),1),!1)['$include?'](b.$to_i()))&&c(g.Range.$new(0,n(e.$size(),1),!1)['$include?'](d.$to_i()))&&o(b.$to_i(),d.$to_i())&&(h=e.element_links['$[]'](b),e.element_links['$[]='](b,e.element_links['$[]'](d)),e.element_links['$[]='](d,h),f=!0),f},-1),d(k,'$include?',function(c){var d=this,b=a;return b=!1,function(){try{var g=m('break');return e(d.element_links,'each',[],function e(d){if(d==null&&(d=a),f(d['$[]']("content"),c))b=!0,g.$throw(a,e.$$is_lambda);else return a})}catch(a){if(a===g)return a.$v;throw a}finally{g.is_orphan=!0}}(),b}),d(k,'$find_index',function(c){var d=this,b=a;return b=a,function(){try{var g=m('break');return e(d.element_links,'each_with_index',[],function h(d,e){if(d==null&&(d=a),e==null&&(e=a),f(d['$[]']("content"),c))b=e,g.$throw(a,h.$$is_lambda);else return a})}catch(a){if(a===g)return a.$v;throw a}finally{g.is_orphan=!0}}(),b}),d(k,'$export',function(i){var d=this,m=a,k=a,j=a,g=a,o=a,l=a,n=a;if(i==null&&(i=new Map([["exclude_file_segments",!1]])),c(d['$alive?']()))for(m=c(k=i['$[]']("exclude_file_segments"))&&k,f(i['$[]']("clone"),!0)?j=new Map([["type","element_array"],["uuid",q('GxG').$uuid_generate().$to_s().$to_sym()],["title",d.title.$clone()],["version",d.version.$clone()],["content",[]]]):j=new Map([["type","element_array"],["uuid",d.uuid.$clone()],["title",d.title.$clone()],["version",d.version.$clone()],["constraint",d.constraint.$clone()],["content",[]]]),g=[new Map([["parent",a],["parent_selector",a],["object",d],["record",j]])],o=e(q('Proc'),'new',[],function(b){var c=a;return b==null&&(b=a),c=[],e(g,'each',[],function(d){return d==null&&(d=a),f(d['$[]']("parent").$object_id(),b.$object_id())?c['$<<'](d):a}),c},-1),e(d,'search',[],function(d,e,h){var j=a,n=a,l=a;if(d==null&&(d=a),e==null&&(e=a),h==null&&(h=a),c(d['$is_a?'](b(b(b('GxG'),'Database'),'DetachedHash')))&&(f(i['$[]']("clone"),!0)?j=q('GxG').$uuid_generate().$to_s().$to_sym():j=d.$uuid().$clone(),f(m,!0)&&(f(e,"file_segments")||f(e,"segments")||f(e,"portions"))?g['$<<'](new Map([["parent",h],["parent_selector",e.$clone()],["object",new Map],["record",new Map([["type","element_hash"],["uuid",j],["title",d.$title().$clone()],["version",d.$version().$clone()],["format",d.$format().$clone()],["content",new Map]])]])):g['$<<'](new Map([["parent",h],["parent_selector",e.$clone()],["object",d],["record",new Map([["type","element_hash"],["uuid",j],["title",d.$title().$clone()],["version",d.$version().$clone()],["format",d.$format().$clone()],["content",new Map]])]]))),c(d['$is_a?'](b(b(b('GxG'),'Database'),'DetachedArray')))&&(f(i['$[]']("clone"),!0)?j=q('GxG').$uuid_generate().$to_s().$to_sym():j=d.$uuid().$clone(),f(m,!0)&&(f(e,"file_segments")||f(e,"segments")||f(e,"portions"))?g['$<<'](new Map([["parent",h],["parent_selector",e.$clone()],["object",[]],["record",new Map([["type","element_array"],["uuid",j],["title",d.$title().$clone()],["version",d.$version().$clone()],["constraint",d.$constraint().$clone()],["content",[]]])]])):g['$<<'](new Map([["parent",h],["parent_selector",e.$clone()],["object",d],["record",new Map([["type","element_array"],["uuid",j],["title",d.$title().$clone()],["version",d.$version().$clone()],["constraint",d.$constraint().$clone()],["content",[]]])]]))),c(d['$is_any?'](b(b('GxG'),'Database').$valid_field_classes()))){switch(n=b(q('GxG'),'Database').$element_table_for_instance(d),n.valueOf()){case"element_bigdecimal":l=d.$to_s();break;case"element_datetime":l=d.$iso8601().$to_s();break;case"element_binary":l=d.$to_s().$encode64();break;case"element_text":l=d.$to_s();break;default:l=d}return g['$<<'](new Map([["parent",h],["parent_selector",e.$clone()],["object",d],["record",new Map([["type",n],["version",c(k=h.$version(e))?k:0],["content",l]])]]))}return a}),l=[g['$[]'](0)];c(h(l.$size(),0));)n=l.$shift(),e(o.$call(n['$[]']("object")),'each',[],function(d){return d==null&&(d=a),n['$[]']("record")['$[]']("content")['$[]='](d['$[]']("parent_selector"),d['$[]']("record")),c(d['$[]']("object")['$is_any?'](b(b(b('GxG'),'Database'),'DetachedHash'),b(b(b('GxG'),'Database'),'DetachedArray')))?l['$<<'](d):a});else j=a;return j},-1),d(k,'$sync_export',function(a){var b=this;return a==null&&(a=new Map),b.$save()},-1),d(k,'$first',function(){var b=this;return c(h(b.element_links.$size(),0))?b['$[]'](0):a}),d(k,'$last',function(){var b=this;return c(h(b.element_links.$size(),0))?b['$[]'](n(b.element_links.$size(),1)):a}),d(k,'$each',function d(){var f=d.$$p||a,b=this;return d.$$p=null,c(f['$respond_to?']("call"))?(b.$load_element_links(),c(h(b.element_links.$size(),0))&&e(b.element_links,'each_index',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),f.$call(d['$[]'](b))},{$$s:b}),b):b.$to_enum("each")}),d(k,'$each_index',function d(){var f=d.$$p||a,b=this;return d.$$p=null,c(f['$respond_to?']("call"))?(b.$load_element_links(),c(h(b.element_links.$size(),0))&&e(b.element_links,'each_index',[],function(b){return b==null&&(b=a),f.$call(b)}),b):b.$to_enum("each_index")}),d(k,'$each_with_index',function f(d){var g=f.$$p||a,b=this;return f.$$p=null,d==null&&(d=0),c(g['$respond_to?']("call"))?(b.$load_element_links(),c(h(b.element_links.$size(),0))&&e(b.element_links.$to_enum("each").$with_index(d),'each',[],function c(d,b){var e=c.$$s==null?this:c.$$s;return d==null&&(d=a),b==null&&(b=a),g.$call(e['$[]'](b),b)},{$$s:b}),b):b.$to_enum("each_with_index",d)},-1),d(k,'$iterative',function r(i){var t=r.$$p||a,k=this,m=a,s=a,n=a,p=a,j=a,d=a,l=a,u=a,v=a;r.$$p=null,i==null&&(i=new Map([["include_inactive",!0]])),m=[],s=e(q('Proc'),'new',[],function(j,f){var g=a,d=a;if(j==null&&(j=a),f==null&&(f=[]),g=[],c(j))for(g['$<<'](new Map([["parent",a],["parent_selector",a],["object",j]]));c(h(g.$size(),0));)d=g.$shift(),c(d['$[]']("object")['$is_a?'](b(b(b('GxG'),'Database'),'DetachedHash')))&&(c(d['$[]']("object")['$alive?']())?e(d['$[]']("object"),'each_pair',[],function(b,c){return b==null&&(b=a),c==null&&(c=a),g['$<<'](new Map([["parent",d['$[]']("object")],["parent_selector",b],["object",c]]))}):c(i['$[]']("include_inactive"))&&f['$<<'](d)),c(d['$[]']("object")['$is_a?'](b(b(b('GxG'),'Database'),'DetachedArray')))&&(c(d['$[]']("object")['$alive?']())?e(d['$[]']("object"),'each_with_index',[],function(b,c){return b==null&&(b=a),c==null&&(c=a),g['$<<'](new Map([["parent",d['$[]']("object")],["parent_selector",c],["object",b]]))}):c(i['$[]']("include_inactive"))&&f['$<<'](d)),(c(d['$alive?']())||c(i['$[]']("include_inactive")))&&f['$<<'](d);return f},-1),n=e(q('Proc'),'new',[],function(b,c){var d=a;return b==null&&(b=[]),c==null&&(c=a),d=[],e(b,'each',[],function(b){return b==null&&(b=a),f(b['$[]']("parent").$object_id(),c.$object_id())?d['$<<'](b):a}),d},-1);try{if(p=s.$call(k,[]),j=n.$call(p,k),c(t['$respond_to?']("call")))while(c(h(j.$size(),0)))d=j.$shift(),f(d['$[]']("object").$object_id(),k.$object_id())||(l=t.$call(d['$[]']("object"),d['$[]']("parent_selector"),d['$[]']("parent")),c(l)&&m['$<<'](l)),o(d['$[]']("object").$object_id(),a.$object_id())&&(u=n.$call(p,d['$[]']("object")),e(u,'each',[],function(b){return b==null&&(b=a),j['$<<'](b)}))}catch(a){if(g.rescue(a,[q('Exception')])){v=a;try{k.$log_error(new Map([["error",v],["parameters",new Map]]))}finally{g.pop_exception(a)}}else throw a}return m},-1),y(k,"process","iterative"),d(k,'$process!',function c(b){var f=c.$$p||a,d=this;return c.$$p=null,b==null&&(b=new Map([["include_inactive",!0]])),e(d,'iterative',[b],f.$to_proc()),d},-1),d(k,'$search',function f(b){var g=f.$$p||a,h=this,d=a;return f.$$p=null,b==null&&(b=new Map([["include_inactive",!0]])),d=[],c(g['$respond_to?']("call"))&&(d=e(h,'iterative',[b],g.$to_proc())),d},-1),d(k,'$paths_to',function(n,g){var t=this,j=a,d=a,i=a,r=a,s=a,p=a,k=a;return n==null&&(n=a),g==null&&(g=""),j=[],f(g['$[]'](0),"/")||(g="/"['$<<'](g)),c(h(g.$size(),1))?d=g.$split("/")['$[]'](l(1,-1,!1)).$reverse():d=[],i=t.$get_at_path(g),r=[new Map([["selector",a],["container",i]])],s=e(q('Proc'),'new',[],function(b){var c=a;return b==null&&(b=a),c=a,function(){try{var d=m('break');return e(r,'each_with_index',[],function h(e,g){if(e==null&&(e=a),g==null&&(g=a),f(e['$[]']("container"),b))c=e,d.$throw(a,h.$$is_lambda);else return a})}catch(a){if(a===d)return a.$v;throw a}finally{d.is_orphan=!0}}(),c}),p=i,k=!1,c(i['$is_any?'](b('Hash'),b('Array'),b('Struct'),b(b(b('GxG'),'Database'),'DetachedHash'),b(b(b('GxG'),'Database'),'DetachedArray')))?e(i,'process!',[],function(e,h,g){var i=a,l=a;return e==null&&(e=a),h==null&&(h=a),g==null&&(g=a),o(p.$object_id(),g.$object_id())&&(i=s.$call(g),c(i)&&(d=i['$[]']("prefix").$split("/").$reverse(),f(d.$size(),0)&&d['$<<']("")),p=g),l=h.$to_s(),l['$gsub!']("/","%2f"),d.$unshift(l),k=!1,f(e,n)&&(k=!0),c(k)&&j['$<<']("/"['$<<'](d.$reverse().$join("/"))),c(e['$is_any?'](b('Array'),b('Hash'),b('Struct'),b(b(b('GxG'),'Database'),'DetachedHash'),b(b(b('GxG'),'Database'),'DetachedArray')))&&r.$unshift(new Map([["selector",h],["container",e],["prefix",d.$reverse().$join("/")]])),d.$shift(),a}):j['$<<']("/"['$<<'](d.$join("/"))),j},-1),d(k,'$get_at_path',function(d){var i=this,b=a,g=a,j=a;return d==null&&(d="/"),b=a,f(d,"/")?b=i:(g=[i],j=d.$split("/"),function(){try{var d=m('break');return e(j.$to_enum(),'each',[],function j(i){var e=a;if(i==null&&(i=a),e=a,c(h(i.$size(),0))&&(f(i['$=~'](/^(?:[0-9])*[0-9](?:[0-9])*$/),0)?e=i.$to_i():(e=i.$to_s(),e['$gsub!']("%2f","/"),e=e.$to_sym())),c(e))if(b=g.$first()['$[]'](e),c(b['$is_a?'](q('NilClass'))))d.$throw(a,j.$$is_lambda);else return g.$unshift(b);else return a})}catch(a){if(a===d)return a.$v;throw a}finally{d.is_orphan=!0}}()),b},-1),d(k,'$set_at_path',function(g,j){var l=this,k=a,i=a,e=a,d=a;return g==null&&(g="/"),j==null&&(j=a),k=a,o(g,"/")&&(i=l.$get_at_path(b('File').$dirname(g)),c(i)&&(e=b('File').$basename(g),d=a,c(h(e.$size(),0))&&(f(e['$=~'](/^(?:[0-9])*[0-9](?:[0-9])*$/),0)?d=e.$to_i():(d=e.$to_s(),d['$gsub!']("%2f","/"),d=d.$to_sym())),c(d)&&(i['$[]='](d,j),k=i['$[]'](d)))),k},-1),d(k,'$unpersist',function(){var j=this,k=a,d=a,l=a,g=a,i=a;if(k=[],c(j['$alive?']()))for(d=[new Map([["parent",a],["parent_selector",a],["object",j],["record",k]])],l=e(q('Proc'),'new',[],function(b){var c=a;return b==null&&(b=a),c=[],e(d,'each',[],function(d){return d==null&&(d=a),f(d['$[]']("parent").$object_id(),b.$object_id())?c['$<<'](d):a}),c},-1),e(j,'search',[],function(e,f,g){return e==null&&(e=a),f==null&&(f=a),g==null&&(g=a),c(e['$is_a?'](b(b(b('GxG'),'Database'),'DetachedHash')))?d['$<<'](new Map([["parent",g],["parent_selector",f.$clone()],["object",e],["record",new Map]])):c(e['$is_a?'](b(b(b('GxG'),'Database'),'DetachedArray')))?d['$<<'](new Map([["parent",g],["parent_selector",f.$clone()],["object",e],["record",[]]])):d['$<<'](new Map([["parent",g],["parent_selector",f.$clone()],["object",e],["record",e]]))}),g=[d['$[]'](0)];c(h(g.$size(),0));)i=g.$shift(),e(l.$call(i['$[]']("object")),'each',[],function(d){return d==null&&(d=a),i['$[]']("record")['$[]='](d['$[]']("parent_selector"),d['$[]']("record")),c(d['$[]']("object")['$is_any?'](b(b(b('GxG'),'Database'),'DetachedHash'),b(b(b('GxG'),'Database'),'DetachedArray')))?g['$<<'](d):a});return k})}(B[0],null,B),r(B[0],b(b(b('GxG'),'Database'),'DetachedArray'),'PeristedArray'),function(i,j,l){var f=r(i,j,'PeristedHash'),m=[f].concat(l),d=g.$r(m);return k(f,'$import',function(j){var i=this,k=a,g=a,f=a;for(j==null&&(j=a),k=a,c(j['$is_any?'](b('Hash'),b(b(b('GxG'),'Database'),'DetachedHash'),b(b(b('GxG'),'Database'),'PersistedHash')))||i.$raise(d('Exception'),"Malformed import record passed."),g=[new Map([["target",b(b(b('GxG'),'Database'),'PersistedHash').$new()],["record",j]])],k=g['$[]'](0)['$[]']("target");c(h(g.$size(),0));)switch(f=g.$shift(),f['$[]']("record")['$[]']("type").$to_s().$to_sym().valueOf()){case"element_hash":f['$[]']("target")['$uuid='](f['$[]']("record")['$[]']("uuid").$to_s().$to_sym()),f['$[]']("target")['$title='](f['$[]']("record")['$[]']("title").$to_s()),e(f['$[]']("record")['$[]']("content").$keys(),'each',[],function j(h){var c,k=j.$$s==null?this:j.$$s,i=a;switch(h==null&&(h=a),f['$[]']("record")['$[]']("content")['$[]'](h)['$[]']("type").$to_s().$to_sym().valueOf()){case"element_hash":return i=b(b(d('GxG'),'Database'),'PersistedHash').$new(),f['$[]']("target")['$[]='](h,i),g['$<<'](new Map([["target",i],["record",f['$[]']("record")['$[]']("content")['$[]'](h)]])),(c=[f['$[]']("target")],e(f['$[]']("target")['$[]'](h),'parent=',c),c[c.length-1]);case"element_array":return i=b(b(d('GxG'),'Database'),'PersistedArray').$new(),f['$[]']("target")['$[]='](h,i),g['$<<'](new Map([["target",i],["record",f['$[]']("record")['$[]']("content")['$[]'](h)]])),(c=[f['$[]']("target")],e(f['$[]']("target")['$[]'](h),'parent=',c),c[c.length-1]);case"element_boolean":case"element_integer":case"element_float":case"element_text":return c=[h,f['$[]']("record")['$[]']("content")['$[]'](h)['$[]']("content")],e(f['$[]']("target"),'[]=',c),c[c.length-1];case"element_bigdecimal":return c=[h,k.$BigDecimal(f['$[]']("record")['$[]']("content")['$[]'](h)['$[]']("content").$to_s())],e(f['$[]']("target"),'[]=',c),c[c.length-1];case"element_datetime":return c=[h,b('Chronic').$parse(f['$[]']("record")['$[]']("content")['$[]'](h)['$[]']("content").$to_s())],e(f['$[]']("target"),'[]=',c),c[c.length-1];case"element_binary":return c=[h,b(b('GxG'),'ByteArray').$new(f['$[]']("record")['$[]']("content")['$[]'](h)['$[]']("content").$to_s().$decode64())],e(f['$[]']("target"),'[]=',c),c[c.length-1];default:return a}},{$$s:i}),f['$[]']("target")['$version='](i.$BigDecimal(f['$[]']("record")['$[]']("version").$to_s())),f['$[]']("target")['$format='](f['$[]']("record")['$[]']("format").$to_s().$to_sym());break;case"element_array":f['$[]']("target")['$uuid='](f['$[]']("record")['$[]']("uuid").$to_s().$to_sym()),f['$[]']("target")['$title='](f['$[]']("record")['$[]']("title").$to_s()),e(f['$[]']("record")['$[]']("content"),'each_index',[],function j(h){var c,k=j.$$s==null?this:j.$$s,i=a;switch(h==null&&(h=a),f['$[]']("record")['$[]']("content")['$[]'](h)['$[]']("type").$to_s().$to_sym().valueOf()){case"element_hash":return i=b(b(d('GxG'),'Database'),'PersistedHash').$new(),f['$[]']("target")['$[]='](h,i),g['$<<'](new Map([["target",i],["record",f['$[]']("record")['$[]']("content")['$[]'](h)]])),(c=[f['$[]']("target")],e(f['$[]']("target")['$[]'](h),'parent=',c),c[c.length-1]);case"element_array":return i=b(b(d('GxG'),'Database'),'PersistedArray').$new(),f['$[]']("target")['$[]='](h,i),g['$<<'](new Map([["target",i],["record",f['$[]']("record")['$[]']("content")['$[]'](h)]])),(c=[f['$[]']("target")],e(f['$[]']("target")['$[]'](h),'parent=',c),c[c.length-1]);case"element_boolean":case"element_integer":case"element_float":case"element_text":return c=[h,f['$[]']("record")['$[]']("content")['$[]'](h)['$[]']("content")],e(f['$[]']("target"),'[]=',c),c[c.length-1];case"element_bigdecimal":return c=[h,k.$BigDecimal(f['$[]']("record")['$[]']("content")['$[]'](h)['$[]']("content").$to_s())],e(f['$[]']("target"),'[]=',c),c[c.length-1];case"element_datetime":return c=[h,b('Chronic').$parse(f['$[]']("record")['$[]']("content")['$[]'](h)['$[]']("content").$to_s())],e(f['$[]']("target"),'[]=',c),c[c.length-1];case"element_binary":return c=[h,b(b('GxG'),'ByteArray').$new(f['$[]']("record")['$[]']("content")['$[]'](h)['$[]']("content").$to_s().$decode64())],e(f['$[]']("target"),'[]=',c),c[c.length-1];default:return a}},{$$s:i}),f['$[]']("target")['$version='](i.$BigDecimal(f['$[]']("record")['$[]']("version").$to_s())),f['$[]']("target")['$constraint='](f['$[]']("record")['$[]']("constraint").$to_s().$to_sym());break;default:a}return k},-1)}(B[0],b(b(b('GxG'),'Database'),'DetachedHash'),B)}(q[0],q)}(q[0],q),function(c,e,f){var a=r(c,e,'Array'),h=[a].concat(f),i=g.$r(h);return d(a,'$persist',function(){var a=this;return b(i('GxG'),'Database').$iterative_detached_persist(a)})}(q[0],null,q),function(c,e,f){var a=r(c,e,'Hash'),h=[a].concat(f),i=g.$r(h);return d(a,'$persist',function(){var a=this;return b(i('GxG'),'Database').$iterative_detached_persist(a)})}(q[0],null,q)},Opal.modules["web/gxg_libraries"]=function(b){var l=b.module,m=b.klass,c=b.truthy,i=b.send,d=b.eqeq,g=b.rb_gt,e=b.def,h=b.return_ivar,k=b.thrower,j=[],a=b.nil,f=b.$$$;return b.add_stubs('is_a?,raise,uuid,title,version,to_s,[],each,library_loaded?,<<,load_libraries,==,>,size,loaded?,base64?,decode64,set_script,instance_eval,log_error,to_sym,the_refrence'),l(j[0],'Libraries'),function(n,o){var p=l(n,'GxG'),j=[p].concat(o);return function(r,o,p){var j=m(r,o,'Library'),q=[j].concat(p),l=b.$r(q),n=j.$$prototype;return n.local=n.source=n.type=n.global=a,e(j,'$initialize',function(b){var e=this,h=a,j=a;return b==null&&(b=a),c(b['$is_a?'](f(f(l('GxG'),'Database'),'PersistedHash')))||e.$raise(l('ArgumentError'),"You MUST provide a persisted source object."),e.uuid=b.$uuid(),e.title=b.$title(),e.version=b.$version(),e.type=(c(h=b['$[]']("type"))?h:"text/javascript").$to_s(),j=[],c(b['$[]']("requirements")['$is_a?'](f(f(f('GxG'),'Database'),'PersistedArray')))&&i(b['$[]']("requirements"),'each',[],function(b){return b==null&&(b=a),c(f(l('GxG'),'DISPLAY_DETAILS')['$[]']("object")['$library_loaded?'](b))?a:j['$<<'](b)}),i(f(l('GxG'),'DISPLAY_DETAILS')['$[]']("object"),'load_libraries',[j],function p(o){var e=p.$$s==null?this:p.$$s,k=a,m=a,n=a,q=a,j=a,i;return e.src==null&&(e.src=a),e.local==null&&(e.local=a),e.global==null&&(e.global=a),e.uuid==null&&(e.uuid=a),e.type==null&&(e.type=a),e.charset==null&&(e.charset=a),e.source==null&&(e.source=a),e.title==null&&(e.title=a),o==null&&(o=a),d(o,!0)?(e.src=b['$[]']("options")['$[]']("src").$to_s(),c(g(e.src.$size(),0))||(e.src=a),e.charset=(c(h=b['$[]']("options")['$[]']("charset"))?h:"utf-8").$to_s(),e.local=b['$[]']("options")['$[]']("local"),c(e.local)||(e.local=!1),e.global=b['$[]']("options")['$[]']("global").$to_s(),c(g(e.global.$size(),0))||(e.global=a),c(e['$loaded?']())||(c(g(e.global.$to_s().$size(),0))||(c(e.type="text/javascript")?e.global="Opal":e.global="GxG"),c(e.src['$is_a?'](f('String')))?(k=e.uuid,m=e.type,n=e.charset,q=e.src,i=document.createElement('script'),i.id=k,i.type=m,i.charset=n,i.src=q,document.body.appendChild(i)):(j=b['$[]']("options")['$[]']("native").$to_s(),c(j['$is_a?'](f('String')))&&c(g(j.$size(),0))&&(c(j['$base64?']())&&(j=j.$to_s().$decode64()),k=e.uuid,m=e.type,n=e.charset,i=document.createElement('script'),i.id=k,i.type=m,i.charset=n,i.innerHTML=j,document.body.appendChild(i)))),e.source=b,e.$set_script(e.source['$[]']("script").$to_s()),e.source=a):e.$raise(l('Exception'),"Library load error - skipping library intitialization: "+e.title)},{$$s:e}),e},-1),e(j,'$uuid',h("uuid")),e(j,'$title',h("title")),e(j,'$version',h("version")),e(j,'$type',h("type")),e(j,'$local',h("local")),e(j,'$global',h("global")),e(j,'$set_script',function(e){try{var h,f=this,i=a,j=a;if(e==null&&(e=""),i=!1,c(g(e.$size(),0)))try{c(e['$base64?']())&&(e=e.$decode64()),d(f.local,!0)?f.$instance_eval(e):(h=e,typeof b.compile=='function'?eval(b.compile(h,{scope_variables:["result","the_script_body"],arity_check:!1,file:'(eval)',eval:!0})):f.$eval(h)),i=!0}catch(a){if(b.rescue(a,[l('Exception')])){j=a;try{f.$log_error(new Map([["error",j],["parameters",new Map([["script",e]])]]))}finally{b.pop_exception(a)}}else throw a}return i}catch(a){if(a===b.t_eval_return)return a.$v;throw a}},-1),e(j,'$require_resource',function(b){var e=this,f=a;return b==null&&(b=a),f=!1,c(e.source)&&function(){try{var c=k('break');return i(e.source['$[]']("content"),'each',[],function g(e){var h=g.$$s==null?this:g.$$s;if(e==null&&(e=a),(d(e.$title(),b)||d(e.$uuid(),h.$the_refrence().$to_s().$to_sym()))&&d(e['$[]']("component").$to_s(),"script")&&d(e['$[]']("type").$to_s(),"text/ruby"))h.$set_script(e['$[]']("script").$to_s()),f=!0,c.$throw(a,g.$$is_lambda);else return a},{$$s:e})}catch(a){if(a===c)return a.$v;throw a}finally{c.is_orphan=!0}}(),f},-1),e(j,'$require_module_resource',function(e){try{var f=this,h=a;return e==null&&(e=a),h=!1,c(f.source)&&function(){try{var j=k('break');return i(f.source['$[]']("content"),'each',[],function i(f){var k,l,m=i.$$s==null?this:i.$$s;if(f==null&&(f=a),(d(f.$title(),e)||d(f.$uuid(),m.$the_refrence().$to_s().$to_sym()))&&d(f['$[]']("component").$to_s(),"script")&&d(f['$[]']("type").$to_s(),"text/ruby"))if(c(g(f['$[]']("script").$size(),0)))c(f['$[]']("script")['$base64?']())?(k=f['$[]']("script").$to_s().$decode64(),typeof b.compile=='function'?eval(b.compile(k,{scope_variables:["the_script","result","the_reference"],arity_check:!1,file:'(eval)',eval:!0})):m.$eval(k)):(l=f['$[]']("script").$to_s(),typeof b.compile=='function'?eval(b.compile(l,{scope_variables:["the_script","result","the_reference"],arity_check:!1,file:'(eval)',eval:!0})):m.$eval(l)),h=!0,j.$throw(a,i.$$is_lambda);else return a;else return a},{$$s:f})}catch(a){if(a===j)return a.$v;throw a}finally{j.is_orphan=!0}}(),h}catch(a){if(a===b.t_eval_return)return a.$v;throw a}},-1),e(j,'$loaded?',function(){try{var e,a=this;return d(a.type,"text/javascript")?!!c(window.hasOwnProperty(a.global.$to_s())):!!c(a.global)&&(!!c((e="defined? "+a.global.$to_s(),typeof b.compile=='function'?eval(b.compile(e,{scope_variables:[],arity_check:!1,file:'(eval)',eval:!0})):a.$eval(e))))}catch(a){if(a===b.t_eval_return)return a.$v;throw a}})}(j[0],null,j)}(j[0],j)},Opal.modules["web/gxg_applications"]=function(g){var m=g.module,l=g.klass,c=g.truthy,e=g.send,f=g.eqeq,j=g.rb_gt,d=g.def,i=g.thrower,h=g.return_ivar,k=[],a=g.nil,b=g.$$$;return g.add_stubs('[],is_a?,[]=,to_sym,to_s,uuid,each,base64?,decode64,json?,parse,process_import,log_error,title,unpersist,==,is_any?,library_loaded?,<<,load_libraries,get_library,>,size,instance_eval,log_warn,the_refrence,get_resource,app_state_pull,app_state_push,values,delete,search,respond_to?,downcase,to_proc,method,element,call,state_pull,application_close,inspect,valid_uuid?,get_window,keys,find_child,set_application,unlink_viewport,unlink_window,window_close,exit,get_viewport,gxg_each_child,destroy'),function(n,o){var p=m(n,'GxG'),k=[p].concat(o);return function(r,o,p){var k=l(r,o,'Application'),q=[k].concat(p),m=g.$r(q),n=k.$$prototype;return n.viewports=n.windows=n.definition=n.process=n.state=n.libraries=n.event_handlers=n.event_listeners=a,d(k,'$initialize',function(h){var d=this,i=a,n=a,l=a,k=a;if(h==null&&(h=new Map),d.process=h['$[]']("application"),d.definition=h['$[]']("source"),d.title="Untitled",d.state=c(i=h['$[]']("state"))?i:new Map,d.viewports=new Map,c(h['$[]']("viewport")['$is_a?'](b(b(b('GxG'),'Gui'),'ApplicationViewport')))&&d.viewports['$[]='](h['$[]']("viewport").$uuid().$to_s().$to_sym(),h['$[]']("viewport")),c(h['$[]']("viewports")['$is_a?'](b('Array')))&&e(h['$[]']("viewports"),'each',[],function h(d){var f,g=h.$$s==null?this:h.$$s;return g.viewports==null&&(g.viewports=a),d==null&&(d=a),c(d['$is_a?'](b(b(b('GxG'),'Gui'),'ApplicationViewport')))?(f=[d.$uuid().$to_s().$to_sym(),d],e(g.viewports,'[]=',f),f[f.length-1]):a},{$$s:d}),d.windows=new Map,c(h['$[]']("window")['$is_a?'](b(b(b('GxG'),'Gui'),'Window')))&&d.windows['$[]='](h['$[]']("window").$uuid().$to_s().$to_sym(),h['$[]']("window")),c(h['$[]']("windows")['$is_a?'](b('Array')))&&e(h['$[]']("windows"),'each',[],function h(d){var f,g=h.$$s==null?this:h.$$s;return g.windows==null&&(g.windows=a),d==null&&(d=a),c(d['$is_a?'](b(b(b('GxG'),'Gui'),'Window')))?(f=[d.$uuid().$to_s().$to_sym(),d],e(g.windows,'[]=',f),f[f.length-1]):a},{$$s:d}),d.libraries=new Map,d.event_handlers=new Map,d.event_listeners=new Map,d.credentialed=c(i=h['$[]']("credentialed"))&&i,d.unique=c(i=h['$[]']("unique"))?i:!0,d.location=h['$[]']("location"),d.heap=new Map,c(d.definition['$is_a?'](b('String'))))if(c(d.definition['$base64?']())&&(d.definition=d.definition.$decode64()),c(d.definition['$json?']()))try{d.definition=b('JSON').$parse(d.definition,new Map([["symbolize_names",!0]])),d.definition=b(b('GxG'),'Database').$process_import(d.definition)}catch(a){if(g.rescue(a,[m('Exception')])){n=a;try{d.$log_error(new Map([["error",n],["parameters",new Map([["definition",d.definition]])]]))}finally{g.pop_exception(a)}}else throw a}return c(d.definition['$is_a?'](b(b(b('GxG'),'Database'),'DetachedHash')))&&(d.title=d.definition.$title(),l=d.definition['$[]']("options").$unpersist(),f(l['$[]']("credentialed"),!0)?d.credentialed=!0:d.credentialed=!1,f(l['$[]']("unique"),!0)?d.unique=!0:d.unique=!1),c(d.definition['$is_any?'](b(b(b('GxG'),'Database'),'DetachedHash'),b(b(b('GxG'),'Database'),'DetachedHash')))&&(k=[],c(d.definition['$[]']("requirements")['$is_any?'](b(b(b('GxG'),'Database'),'DetachedArray'),b(b(b('GxG'),'Database'),'PersistedArray')))&&e(d.definition['$[]']("requirements"),'each',[],function(d){return d==null&&(d=a),c(b(m('GxG'),'DISPLAY_DETAILS')['$[]']("object")['$library_loaded?'](d))?a:k['$<<'](d)}),e(b(m('GxG'),'DISPLAY_DETAILS')['$[]']("object"),'load_libraries',[k],function h(g){var d=h.$$s==null?this:h.$$s;return d.definition==null&&(d.definition=a),g==null&&(g=a),f(g,!0)?(c(d.definition['$[]']("requirements")['$is_a?'](b(b(b('GxG'),'Database'),'PersistedArray')))&&e(d.definition['$[]']("requirements"),'each',[],function i(g){var d,h=i.$$s==null?this:i.$$s,f=a;return h.libraries==null&&(h.libraries=a),g==null&&(g=a),f=b(m('GxG'),'DISPLAY_DETAILS')['$[]']("object").$get_library(g),c(f)?(d=[f.$uuid(),f],e(h.libraries,'[]=',d),d[d.length-1]):a},{$$s:d}),c(j(d.definition['$[]']("script").$size(),0))?c(d.definition['$[]']("script")['$base64?']())?d.$instance_eval(d.definition['$[]']("script").$to_s().$decode64()):d.$instance_eval(d.definition['$[]']("script").$to_s()):a):d.$log_warn("Library load error - not processing main application script for "+d.definition.$title()+".")},{$$s:d})),d},-1),d(k,'$get_resource',function(b){var d=this,g=a;return b==null&&(b=a),g=a,c(d.definition)&&function(){try{var c=i('break');return e(d.definition['$[]']("content"),'each',[],function e(d){var h=e.$$s==null?this:e.$$s;if(d==null&&(d=a),f(d.$title(),b)||f(d.$uuid(),h.$the_refrence().$to_s().$to_sym()))g=d,c.$throw(a,e.$$is_lambda);else return a},{$$s:d})}catch(a){if(a===c)return a.$v;throw a}finally{c.is_orphan=!0}}(),g},-1),d(k,'$require_resource',function(e){var d=this,g=a,b=a;return e==null&&(e=a),g=!1,c(d.definition)&&(b=d.$get_resource(e),c(b)&&f(b['$[]']("component").$to_s(),"script")&&f(b['$[]']("type").$to_s(),"text/ruby")&&c(j(b['$[]']("script").$size(),0))&&(c(b['$[]']("script")['$base64?']())?d.$instance_eval(b['$[]']("script").$to_s().$decode64()):d.$instance_eval(b['$[]']("script").$to_s()),g=!0)),g},-1),d(k,'$title',h("title")),d(k,'$credentialed',h("credentialed")),d(k,'$unique',h("unique")),d(k,'$location',h("location")),d(k,'$libraries',h("libraries")),d(k,'$state_data',h("state")),d(k,'$state_pull',function(){var d=this;return e(b(m('GxG'),'CONNECTION'),'app_state_pull',[new Map([["application",d.process.$to_s()]])],function e(d){var f=e.$$s==null?this:e.$$s;return d==null&&(d=a),!!c(d['$is_a?'](b('Hash')))&&(!!c(d['$[]']("result")['$is_a?'](b('Hash')))&&(f.state=d['$[]']("result"),!0))},{$$s:d})}),d(k,'$state_push',function(){var d=this;return e(b(m('GxG'),'CONNECTION'),'app_state_push',[new Map([["application",d.process.$to_s()],["data",d.state]])],function(d){return d==null&&(d=a),!!c(d['$is_a?'](b('Hash')))&&(!!f(d['$[]']("result"),!0))})}),d(k,'$get_library',function(d){var h=this,g=a;return d==null&&(d=a),g=a,c(d['$is_any?'](b('String'),b('Symbol')))&&(g=h.libraries['$[]'](d.$to_s().$to_sym()),c(g)||function(){try{var b=i('break');return e(h.libraries.$values(),'each',[],function e(c){if(c==null&&(c=a),f(c.$title(),d))g=c,b.$throw(a,e.$$is_lambda);else return a})}catch(a){if(a===b)return a.$v;throw a}finally{b.is_orphan=!0}}()),g},-1),d(k,'$link_viewport',function(d){var e=this;return!!(d==null&&(d=a),c(d['$is_a?'](b(b(b('GxG'),'Gui'),'ApplicationViewport'))))&&(e.viewports['$[]='](d.$uuid().$to_s().$to_sym(),d),!0)},-1),d(k,'$unlink_viewport',function(d){var g=this;return!!(d==null&&(d=a),c(d['$is_any?'](b('String'),b('Symbol'))))&&(c(g.viewports['$[]'](d.$to_s().$to_sym()))?g.viewports.$delete(d.$to_s().$to_sym()):function(){try{var b=i('break');return e(g.viewports.$values(),'each',[],function e(c){var g=e.$$s==null?this:e.$$s;if(g.viewports==null&&(g.viewports=a),c==null&&(c=a),f(c.$title(),d))g.viewports.$delete(c.$uuid()),b.$throw(a,e.$$is_lambda);else return a},{$$s:g})}catch(a){if(a===b)return a.$v;throw a}finally{b.is_orphan=!0}}(),!0)},-1),d(k,'$viewports',h("viewports")),d(k,'$get_viewport',function(d){var h=this,g=a;return d==null&&(d=a),g=a,c(d['$is_any?'](b('String'),b('Symbol')))&&(g=h.viewports['$[]'](d.$to_s().$to_sym()),c(g)||function(){try{var b=i('break');return e(h.viewports.$values(),'each',[],function e(c){if(c==null&&(c=a),f(c.$title(),d))g=c,b.$throw(a,e.$$is_lambda);else return a})}catch(a){if(a===b)return a.$v;throw a}finally{b.is_orphan=!0}}()),g},-1),d(k,'$link_window',function(d){var e=this;return!!(d==null&&(d=a),c(d['$is_a?'](b(b(b('GxG'),'Gui'),'Window'))))&&(e.windows['$[]='](d.$uuid().$to_s().$to_sym(),d),!0)},-1),d(k,'$unlink_window',function(d){var g=this;return!!(d==null&&(d=a),c(d['$is_any?'](b('String'),b('Symbol'))))&&(c(g.windows['$[]'](d.$to_s().$to_sym()))?g.windows.$delete(d.$to_s().$to_sym()):function(){try{var b=i('break');return e(g.windows.$values(),'each',[],function e(c){var g=e.$$s==null?this:e.$$s;if(g.windows==null&&(g.windows=a),c==null&&(c=a),f(c.$title(),d))g.windows.$delete(c.$uuid()),b.$throw(a,e.$$is_lambda);else return a},{$$s:g})}catch(a){if(a===b)return a.$v;throw a}finally{b.is_orphan=!0}}(),!0)},-1),d(k,'$windows',h("windows")),d(k,'$get_window',function(d){var h=this,g=a;return d==null&&(d=a),g=a,c(d['$is_any?'](b('String'),b('Symbol')))&&(g=h.windows['$[]'](d.$to_s().$to_sym()),c(g)||function(){try{var b=i('break');return e(h.windows.$values(),'each',[],function e(c){if(c==null&&(c=a),f(c.$title(),d))g=c,b.$throw(a,e.$$is_lambda);else return a})}catch(a){if(a===b)return a.$v;throw a}finally{b.is_orphan=!0}}()),g},-1),d(k,'$process_uuid',h("process")),d(k,'$source_uuid',function(){var d=this;return c(d.definition['$is_a?'](b(b(b('GxG'),'Database'),'DetachedHash')))?d.definition.$uuid():a}),d(k,'$search_resources',function(d){var h=this,g=a;return d==null&&(d=a),g=a,c(d['$is_any?'](b('String'),b('Symbol')))&&c(h.definition)&&function(){try{var j=i('break');return e(h.definition['$[]']("content"),'search',[],function k(e,h,i){if(e==null&&(e=a),h==null&&(h=a),i==null&&(i=a),c(e['$is_a?'](b(b(b('GxG'),'Database'),'DetachedHash'))))if(f(d.$to_s().$to_sym(),e.$uuid().$to_s().$to_sym())||f(d.$to_s(),e.$title().$to_s()))g=e,j.$throw(a,k.$$is_lambda);else return a;else return a})}catch(a){if(a===j)return a.$v;throw a}finally{j.is_orphan=!0}}(),g},-1),d(k,'$on',function g(d,f){var h=g.$$p||a,e=this;return g.$$p=null,d==null&&(d=a),f==null&&(f=!1),c(d['$is_any?'](b('String'),b('Symbol')))&&c(h['$respond_to?']("call"))?(e.event_handlers['$[]='](d.$to_s().$downcase().$to_sym(),h),e.event_listeners['$[]='](d.$to_s().$downcase().$to_sym(),e.$method("event_handler").$to_proc()),e.$element().addEventListener(d.$to_s().$downcase(),e.event_listeners['$[]'](d.$to_s().$downcase().$to_sym()),f)):a},-1),d(k,'$remove_listener',function(b){var d=this;return b==null&&(b=a),c(d.event_handlers['$[]'](b.$to_s().$downcase().$to_sym()))&&c(d.event_listeners['$[]'](b.$to_s().$downcase().$to_sym()))&&(d.$element().removeEventListener(b.$to_s().$downcase(),d.event_listeners['$[]'](b.$to_s().$downcase().$to_sym())),d.event_handlers.$delete(b.$to_s().$downcase().$to_sym()),d.event_listeners.$delete(b.$to_s().$downcase().$to_sym())),!0},-1),d(k,'$event_handler',function(h){var i=this,e=a,d=a,f=a,g=a,j=a;return e=h.type.$to_s().$downcase().$to_sym(),d=new Map,c(i.event_handlers['$[]'](e))?(f=c(g=b(b(b(m('GxG'),'Gui'),'EventHandlers'),'EVENT_GENRES')['$[]'](e))?g:"event",c(f)&&(j=b(b(b(m('GxG'),'Gui'),'EventHandlers'),'EVENT_FIELDS')['$[]'](f),c(j)&&(serializer=function(a){if(a){var b={eventName:a.toString(),altKey:a.altKey,bubbles:a.bubbles,button:a.button,buttons:a.buttons,cancelBubble:a.cancelBubble,cancelable:a.cancelable,clientX:a.clientX,clientY:a.clientY,composed:a.composed,ctrlKey:a.ctrlKey,currentTarget:a.currentTarget?a.currentTarget.outerHTML:null,defaultPrevented:a.defaultPrevented,detail:a.detail,eventPhase:a.eventPhase,fromElement:a.fromElement?a.fromElement.outerHTML:null,isTrusted:a.isTrusted,layerX:a.layerX,layerY:a.layerY,metaKey:a.metaKey,movementX:a.movementX,movementY:a.movementY,offsetX:a.offsetX,offsetY:a.offsetY,pageX:a.pageX,pageY:a.pageY,relatedTarget:a.relatedTarget?a.relatedTarget.outerHTML:null,returnValue:a.returnValue,screenX:a.screenX,screenY:a.screenY,shiftKey:a.shiftKey,sourceCapabilities:a.sourceCapabilities?a.sourceCapabilities.toString():null,target:a.target?a.target.outerHTML:null,timeStamp:a.timeStamp,toElement:a.toElement?a.toElement.outerHTML:null,type:a.type,view:a.view?a.view.toString():null,which:a.which,x:a.x,y:a.y};return b}},d=JSON.stringify(serializer(h)),d=b('JSON').$parse(d.$to_s(),new Map([["symbolize_names",!0]])))),i.event_handlers['$[]'](e).$call(d)):a}),d(k,'$menu_item_select',function(b){return b==null&&(b=a),a},-1),d(k,'$run',function(d){var e=this;return d==null&&(d=new Map),c(d['$is_a?'](b('Hash')))&&f(d['$[]']("restore"),!0)?e.$state_pull():a},-1),d(k,'$exitready?',function(a){return a==null&&(a=new Map),"ready"},-1),d(k,'$before_exit',function(a){return a==null&&(a=new Map),!0},-1),d(k,'$exit',function(d){var g=this;return d==null&&(d=new Map),e(b(m('GxG'),'CONNECTION'),'application_close',[new Map([["application",g.process]])],function g(d){var e=g.$$s==null?this:g.$$s;return e.process==null&&(e.process=a),d==null&&(d=a),c(d['$is_a?'](b('Hash')))?f(d['$[]']("result"),!0)?b(m('GxG'),'APPLICATIONS')['$[]']("processes").$delete(e.process):e.$log_warn("Could not close application "+e.process.$inspect()+" : "+d.$inspect()):e.$log_warn("Malformed response: "+d.$inspect())},{$$s:g}),!0},-1),d(k,'$window_close',function(d){var f=this,g=a;return d==null&&(d=new Map),c(d['$is_a?'](b('Hash')))?c(m('GxG')['$valid_uuid?'](d['$[]']("window")))?(g=b(m('GxG'),'DISPLAY_DETAILS')['$[]']("object").$get_window(d['$[]']("window")),c(g)?(e(f.viewports.$keys(),'each',[],function e(b){var f=e.$$s==null?this:e.$$s,d=a;return b==null&&(b=a),d=g.$find_child(b),c(d)?(d.$set_application(a),f.$unlink_viewport(b)):a},{$$s:f}),f.$unlink_window(g.$uuid()),b(m('GxG'),'DISPLAY_DETAILS')['$[]']("object").$window_close(g.$uuid()),c(j(f.windows.$size(),0)))?a:f.$exit():a):f.$log_warn("Invalid Argument passed: "+d.$inspect()):a},-1),d(k,'$viewport_clear',function(d){var g=this,b=a;return!!(d==null&&(d=a),b=g.$get_viewport(d),c(b))&&(e(b,'gxg_each_child',[],function(c){return c==null&&(c=a),f(c,b)?a:c.$destroy()}),!0)},-1)}(k[0],null,k)}(k[0],k)},Opal.modules["web/gxg_vdom"]=function(g){var l=g.module,v=g.class_variable_set,c=g.truthy,f=g.eqeq,u=g.range,i=g.rb_plus,j=g.defs,n=g.klass,d=g.def,o=g.return_ivar,e=g.send,p=g.rb_minus,k=g.thrower,h=g.rb_gt,m=g.class_variable_get,r=g.return_val,q=g.Class,F=g.slice,s=g.send2,t=g.find_super,E=g.to_a,w=g.const_set,D=g.not,y=g.gvars,x=g.alias,A=g.rb_ge,C=g.neqeq,B=g.return_self,z=[],a=g.nil,b=g.$$$;return g.add_stubs('is_any?,unpersist,==,[],to_s,downcase,extname,include?,+,relative_url,log_warn,inspect,to_sym,valid_properties,each,keys,[]=,to_i,-,style_sheet,>,<<,new,is_a?,name,rule_names,remove_rule,find_rule,size,index,gsub,expand_path,each_with_index,reverse,delete_at,native_object,to_a,create_element,factory,update_classes,_stylize,style,class,set_attribute,join,map,_before_create,before_create,create,_after_create,after_create,cascade,raise,component_class,title,register_object,values,call,clone,shift,children,each_child,clearning_queue,unregister_object,page,delete,every_child,remove_listeners,forget_child,parent,element,has_key?,uuid,split,last,each_pair,set_state,!,get_state,add_state,merge_style,respond_to?,domtype,component,to_proc,method,remove_listener,parse,base64?,decode64,instance_eval,log_error,include,uuid_generate,find_object,puts,to_n,compile,find_child,included,each_included,send,start,animate,layout_refresh,find_parent_type,valid_uuid?,theme_icon,theme_background,theme_widget,theme_font,site_asset,attr_reader,dasherize,!~,strip,capitalize,set_settings,creation,set_text,root,build_components,disable,clear_attribute,type,to_f,version,>=,loaded?,library_pull,json?,process_import,load_library,set_busy,application_open,pull_object,merge,run,!=,add_child,set_application,get_viewport,link_viewport,link_window,track_deltas,set_script,on,close,build_page,find_object_by,detach,body,all_descendants,destroy,clear,clear_rules,refresh_css_cache,load_font,set_rule,load_libraries,load_page'),function(G,H){var I=l(G,'GxG'),z=[I].concat(H);return function(G,H){var I=l(G,'Gui'),z=[I].concat(H);return function(I,J){var H=l(I,'Vdom'),z=[H].concat(J),G=g.$r(z);return v(z[0],'@@CssCache',[]),v(z[0],'@@CssRuleProperties',new Map),j(H,'$load_font',function(d){var n=this,m=a,g=a,j=a,h=a,e=a,k=a,q,l,o,r,p;if(d==null&&(d=a),c(d['$is_any?'](b('Hash'),b(b(b('GxG'),'Database'),'DetachedHash'),b(b(b('GxG'),'Database'),'DetachedHash')))){if(c(d['$is_any?'](b(b(b('GxG'),'Database'),'DetachedHash'),b(b(b('GxG'),'Database'),'DetachedHash')))&&(d=d.$unpersist()),f(d['$[]']("resource_type"),"font-face")){if(m=(c(g=d['$[]']("font_family"))?g:"Unknown").$to_s(),j=(c(g=d['$[]']("font_style"))?g:"normal").$to_s(),h=(c(g=d['$[]']("font_weight"))?g:400).$to_s(),c(d['$[]']("format")))e=d['$[]']("format").$to_s().$downcase();else switch(G('File').$extname(d['$[]']("source")).$downcase().valueOf()){case".ttf":case".otf":e="truetype";break;case".eot":e="embedded-opentype";break;case".svg":e="svg";break;case".woff":e="woff";break;case".woff2":e="woff2";break;default:e="unknown"}return c(["sftp:","ftp:/","http:","https"]['$include?'](d['$[]']("source")['$[]'](u(0,4,!1)).$downcase()))?k=d['$[]']("source"):k=i(b(b('GxG'),'CONNECTION').$relative_url().$to_s(),d['$[]']("source")),q=m.$to_s(),l="url('"+k+"')",o="format('"+e+"')",o=="format('unknown')"?(r=l):(r=l+" "+o),h=h,j=j,p=new FontFace(q,l,{weight:h,style:j}),p.load().then(function(a){document.fonts.add(a)}).catch(function(a){alert(a)}),!0}return n.$log_warn("You attempted to load a non-font resource as a font: "+d.$inspect()),!1}else return n.$log_warn("You attempted to load a font with the wrong value: "+d.$inspect()),!1},-1),function(m,i,j){var f=n(m,i,'CSSRule'),k=[f].concat(j),l=g.$r(k),h=f.$$prototype;return h.native_rule=h.name=a,d(f,'$initialize',function(e){var b=this,d=a;return b.native_rule=e,b.name=(c(d=b.native_rule.selectorText)?d:"").$to_s().$to_sym()}),d(f,'$native_object',o("native_rule")),d(f,'$inspect',function(){var a=this;return""}),d(f,'$name',o("name")),d(f,'$keys',function(){return b(b(l('GxG'),'Gui'),'Vdom').$valid_properties()}),d(f,'$[]',function(a){var b=this;return b.native_rule.style[a]}),d(f,'$[]=',function(e,b){var f=this,d=a;return f.native_rule.style[e]=c(d=b)?d:"",b}),d(f,'$merge',function(b){var c=this;return b==null&&(b=new Map),e(b.$keys(),'each',[],function f(c){var d,g=f.$$s==null?this:f.$$s;return c==null&&(c=a),(d=[c,b['$[]'](c)],e(g,'[]=',d),d[d.length-1])},{$$s:c}),c},-1)}(z[0],null,z),j(H,'$style_sheet',function(){var b=a,d=a;return b=a,d=document.styleSheets.length.$to_i(),function(){try{var f=k('break');return e(g.Range.$new(0,p(d,1),!1),'each',[],function g(e){var d=a;if(e==null&&(e=a),d=document.styleSheets[e],c(d))if(c(d.href.$to_s()['$include?']("/themes/page.css")))b=d,f.$throw(a,g.$$is_lambda);else return a;else return a})}catch(a){if(a===f)return a.$v;throw a}finally{f.is_orphan=!0}}(),b}),j(H,'$refresh_css_cache',function(){var d=a,j=a,f=a,k=a,l=a,i=a;if(d=b(b(G('GxG'),'Gui'),'Vdom').$style_sheet(),c(d)){j=[];try{f=d.cssRules}catch(a){if(g.rescue(a,[G('Exception')])){k=a;try{f=d.rules}finally{g.pop_exception(a)}}else throw a}c(f)&&(l=f.length.$to_i(),c(h(l,0))?i=p(f.length.$to_i(),1):i=0,e(g.Range.$new(0,i,!1),'each',[],function(e){var f=a;e==null&&(e=a);try{f=d.cssRules[e]}catch(a){if(g.rescue(a,[G('Exception')])){k=a;try{f=d.rules[e]}finally{g.pop_exception(a)}}else throw a}return c(f)?j['$<<'](b(b(b(G('GxG'),'Gui'),'Vdom'),'CSSRule').$new(f)):a})),v(z[0],'@@CssCache',j)}return!0}),j(H,'$valid_properties',function(){return m(z[0],'@@CssRuleProperties',!1).$keys()}),j(H,'$get_property_name',function(d){var e=a;return d==null&&(d=a),e=a,c(d['$is_a?'](b('Symbol')))&&(e=m(z[0],'@@CssRuleProperties',!1)['$[]'](d)),e},-1),j(H,'$rules',function(){var b=a;return b=[],e(m(z[0],'@@CssCache',!1),'each',[],function(c){return c==null&&(c=a),b['$<<'](c.$name())}),b}),j(H,'$rule_names',function(){var b=a;return b=[],e(m(z[0],'@@CssCache',!1),'each',[],function(c){return c==null&&(c=a),b['$<<'](c.$name())}),b}),j(H,'$find_rule',function(b){var c=a;return b==null&&(b=a),c=[],e(m(z[0],'@@CssCache',!1),'each',[],function(d){return d==null&&(d=a),f(d.$name(),b.$to_s().$to_sym())?c['$<<'](d):a}),c},-1),j(H,'$clear_rules',function(){var c=a;return c=b(b(b('GxG'),'Gui'),'Vdom').$rule_names(),e(c,'each',[],function(c){return c==null&&(c=a),f(c,".hidden")?a:b(b(b('GxG'),'Gui'),'Vdom').$remove_rule(c)}),!0}),j(H,'$set_rule',function(k,n,s){var r=this,d=a,q=a,l=a,j=a,o=a,t=a;if(k==null&&(k=a),n==null&&(n=new Map),s==null&&(s=new Map([["merge",!0]])),d=b(b(G('GxG'),'Gui'),'Vdom').$style_sheet(),c(d)){if(q=b(b(G('GxG'),'Gui'),'Vdom').$find_rule(k),c(h(q.$size(),0))&&b(b(G('GxG'),'Gui'),'Vdom').$remove_rule(k),l=b(b('GxG'),'CONNECTION').$relative_url(),j="{ ",e(n.$keys(),'each',[],function(e){var d=a,h=a,b=a;return e==null&&(e=a),d=n['$[]'](e).$to_s(),c(d['$include?']("url("))&&(h=d.$index(")"),b=d['$[]'](g.Range.$new(4,p(h,1),!1)),(f(b['$[]'](0),"'")||f(b['$[]'](0),'"'))&&(b=b['$[]'](u(1,-1,!1))),(f(b['$[]'](-1),"'")||f(b['$[]'](-1),'"'))&&(b=b['$[]'](u(0,-2,!1))),c(b['$include?']("data:"))||c(b['$include?']("http:"))||c(b['$include?']("https:"))||f(b['$[]'](g.Range.$new(0,p(l.$size(),1),!1)),l)||(d=i(i("url('",G('File').$expand_path(i(i(l,"/"),b))),"')").$gsub("//","/"))),j=i(j,""+e.$to_s()+": "+d.$to_s()+"; ")}),j=i(j," }"),f(d.insertRule(i(k.$to_s(),j.$to_s()),d.cssRules.length).$to_i(),(d.cssRules.length-1).$to_i())){try{o=d.cssRules[d.cssRules.length-1]}catch(a){if(g.rescue(a,[G('Exception')])){t=a;try{o=d.rules[d.cssRules.length-1]}finally{g.pop_exception(a)}}else throw a}return m(z[0],'@@CssCache',!1)['$<<'](b(b(b(G('GxG'),'Gui'),'Vdom'),'CSSRule').$new(o)),!0}return r.$log_warn("GxG Style Sheet Rule creation failed.."),!1}else return r.$log_warn("GxG Style Sheet not found."),!1},-1),j(H,'$remove_rule',function(d){var j=a,i=a;return!!(d==null&&(d=a),j=[],e(m(z[0],'@@CssCache',!1),'each_with_index',[],function(b,c){return b==null&&(b=a),c==null&&(c=a),f(b.$name(),d.$to_s().$to_sym())||f(b.$name(),d.$to_s())?j['$<<'](c):a}),i=[],e(j.$reverse(),'each',[],function(b){return b==null&&(b=a),i['$<<'](m(z[0],'@@CssCache',!1).$delete_at(b))}),c(h(i.$size(),0)))&&(e(i,'each',[],function(f){var j=a,d=a,i=a;return f==null&&(f=a),j=f.$native_object(),d=b(b(G('GxG'),'Gui'),'Vdom').$style_sheet(),c(d)&&(i=d.cssRules.length.$to_i(),c(h(i,0)))?e(g.Range.$new(0,p(i,1),!1).$to_a().$reverse(),'each',[],function(b){var e=a;return b==null&&(b=a),e=d.cssRules[b],c(e)&&c(j.selectorText==e.selectorText)?d.deleteRule(b):a}):a}),!0)},-1),function(m,n){var j=l(m,'ElementMethods'),p=[j].concat(n),k=g.$r(p);return d(j,'$_before_create',r(a)),d(j,'$before_create',r(a)),d(j,'$create',function(){var b=this;return b.domtype==null&&(b.domtype=a),b.parent==null&&(b.parent=a),b.options==null&&(b.options=a),c(b.domtype)?b.element=b.$factory().$create_element(b,b.domtype,b.parent,b.options):a}),d(j,'$_after_create',function(){var a=this;return a.$update_classes(),a.$_stylize()}),d(j,'$after_create',r(a)),d(j,'$style',function(){var b=this,d=a;return b.style==null&&(b.style=a),b.style=c(d=b.style)?d:new Map}),d(j,'$_stylize',function(){var c=this,b=a;return b=c.$style(),f(b.$class(),k('Hash'))?c.$set_attribute("style",e(b,'map',[],function(b,c){return b==null&&(b=a),c==null&&(c=a),""+b+":"+c+";"}).$join()):a}),d(j,'$cascade',r(a)),d(j,'$creation',function(){var a=this;return a.$_before_create(),a.$before_create(),a.$create(),a.$_after_create(),a.$after_create(),a.$_stylize(),a.$cascade()}),d(j,'$add_child',function(g,h){var e=this,d=a,i=a;return e.children==null&&(e.children=a),g==null&&(g=new Map),h==null&&(h=new Map),d=a,f(g['$[]']("component").$to_s().$downcase().$to_sym(),"unknown")?e.$raise("Unknown Component Type"):(i=b(k('GxG'),'Gui').$component_class(g['$[]']("component").$to_s().$downcase().$to_sym()),c(i['$is_a?'](q))?(d=i.$new(e,g,h),e.children['$[]='](d.$title().$to_s().$to_sym(),d),b(b('GxG'),'DISPLAY_DETAILS')['$[]']("object").$register_object(d.$title(),d)):e.$raise("Unknown Component Type")),d},-1),d(j,'$each_child',function c(){var d=c.$$p||a,b=this;return b.children==null&&(b.children=a),c.$$p=null,e(b.children.$values(),'each',[],function(b){return b==null&&(b=a),d.$call(b)})}),d(j,'$all_descendants',function f(){var g=f.$$p||a,b=this,d=a;for(b.children==null&&(b.children=a),b.process_queue==null&&(b.process_queue=a),f.$$p=null,b.process_queue=b.children.$values().$clone();c(h(b.process_queue.$size(),0));)d=b.process_queue.$shift(),c(d)&&(g.$call(d),c(h(d.$children().$values().$size(),0))&&e(d,'each_child',[],function d(b){var c=d.$$s==null?this:d.$$s;return c.process_queue==null&&(c.process_queue=a),b==null&&(b=a),c.process_queue['$<<'](b)},{$$s:b}))}),d(j,'$forget_children',function(){var b=this,f=a,d=a;for(b.children==null&&(b.children=a),f=b.children.$values();c(h(b.$clearning_queue().$size(),0));)d=f.$shift(),c(d)&&(e(d.$children().$values(),'each',[],function(b){return b==null&&(b=a),f['$<<'](b)}),b.$page().$unregister_object(d.$title().$to_s()));return b.children=new Map}),d(j,'$forget_child',function(c){var b=this;return b.children==null&&(b.children=a),b.$page().$unregister_object(c),b.children.$delete(c.$to_s().$to_sym())}),d(j,'$destroy',function(){var b=this;return b.title==null&&(b.title=a),e(b,'every_child',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),b.$remove_listeners(),d.$page().$unregister_object(b.$title().$to_s())},{$$s:b}),b.$remove_listeners(),b.$parent().$forget_child(b.title.$to_s()),b.$parent().$element().removeChild(b.$element()),!0}),d(j,'$method_missing',function e(d,i){var h=e.$$p||a,f,g,b=this;return b.children==null&&(b.children=a),e.$$p=null,f=F(arguments,1),g=f,c(b.children['$has_key?'](d))?b.children['$[]'](d):s(b,t(b,'method_missing',e,!1,!0),'method_missing',[d].concat(E(g)),h)},-2),d(j,'$dom_id',function(){var a=this;return a.$uuid().$to_s()}),d(j,'$title',o("title")),d(j,'$update_classes',function(){var d=this,b=a,g=a;return d.element==null&&(d.element=a),d.states==null&&(d.states=a),b="",g=d.element.className.$split(" "),e(g,'each_with_index',[],function h(d,j){var e=h.$$s==null?this:h.$$s;return e.states==null&&(e.states=a),d==null&&(d=a),j==null&&(j=a),c(e.states.$keys()['$include?'](d.$to_s().$to_sym()))?a:(b=i(b,d),f(d,g.$last()))?a:b=i(b," ")},{$$s:d}),c(h(d.states.$keys().$size(),0))&&(b=i(b," ")),e(d.states,'each_pair',[],function g(c,d){var e=g.$$s==null?this:g.$$s;return e.states==null&&(e.states=a),c==null&&(c=a),d==null&&(d=a),f(d,!0)?(b=i(b,c.$to_s()),f(e.states.$keys().$last(),c))?a:b=i(b," "):a},{$$s:d}),d.element.className=b.$to_s(),!0}),d(j,'$option_replace',function(d,e){var b=this,f=a,g=a;return b.options==null&&(b.options=a),e==null&&(e=a),f=c(g=b.options['$[]'](d))?g:e,c(b.options['$has_key?'](d))&&b.options.$delete(d),f},-2),d(j,'$set_state',function(d,c){var b=this;return b.states==null&&(b.states=a),c==null&&(c=!1),f(c,!0)?b.states['$[]='](d.$to_s().$to_sym(),!0):b.states['$[]='](d.$to_s().$to_sym(),!1),b.$update_classes()},-2),d(j,'$set_states',function(b){var c=this;return b==null&&(b=new Map),e(b,'each_pair',[],function h(c,g){var b,d=h.$$s==null?this:h.$$s;return d.states==null&&(d.states=a),c==null&&(c=a),g==null&&(g=a),f(g,!0)?(b=[c.$to_s().$to_sym(),!0],e(d.states,'[]=',b),b[b.length-1]):(b=[c.$to_s().$to_sym(),!1],e(d.states,'[]=',b),b[b.length-1])},{$$s:c}),c.$update_classes()},-1),d(j,'$get_state',function(e){var b=this,d=a;return!!(b.states==null&&(b.states=a),c(d=b.states['$[]'](e.$to_s().$to_sym())))&&d}),d(j,'$get_states',o("states")),d(j,'$toggle_state',function(a){var b=this;return b.$set_state(a,b.$get_state(a)['$!']())}),d(j,'$set_application',function(b){var c=this;return b==null&&(b=a),c.application=b},-1),d(j,'$application',o("application")),d(j,'$state_active?',function(c){var b=this;return b.states==null&&(b.states=a),b.states.$keys()['$include?'](c.$to_s().$to_sym())}),d(j,'$add_states',function(b){var c=this;return e(b,'each',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),d.$add_state(b)},{$$s:c})}),d(j,'$add_state',function(b,a){var c=this;return a==null&&(a=!1),c.$set_state(b,a)},-2),d(j,'$value',function(){var b=this;return b.element==null&&(b.element=a),b.element.innerHTML}),d(j,'$get_text',function(){var b=this;return b.element==null&&(b.element=a),b.element.textContent}),d(j,'$value=',function(c){var b=this;return b.element==null&&(b.element=a),b.element.value=c}),d(j,'$set_text',function(c){var b=this;return b.element==null&&(b.element=a),b.element.textContent=c}),d(j,'$html',function(c){var b=this;return b.element==null&&(b.element=a),b.element.innerHTML=c}),d(j,'$set_style',function(d){var g=this,f=a;return!!(g.element==null&&(g.element=a),d==null&&(d=new Map),f="",c(d['$is_a?'](b('Hash'))))&&(e(d,'each_pair',[],function(b,c){return b==null&&(b=a),c==null&&(c=a),f=i(i(f,""+b.$to_s()+": "),""+c.$to_s()+";")}),g.element.setAttribute("style",f),!0)},-1),d(j,'$merge_style',function(d){var f=this;return!!(d==null&&(d=new Map),c(d['$is_a?'](b('Hash'))))&&(e(d,'each_pair',[],function d(b,c){var e=d.$$s==null?this:d.$$s;return b==null&&(b=a),c==null&&(c=a),e.$element().style[b]=c.$to_s()},{$$s:f}),!0)},-1),d(j,'$set_bg_color',function(a){var b=this;return a==null&&(a=0),b.$merge_style(new Map([["background-color","#"+a.$to_s()]]))},-1),d(j,'$get_attribute',function(b){var g=this,f=a,d=a,e=a;return b==null&&(b=a),f="",c(b)&&(d=g.$element(),e=a,d.getAttributeNames().includes(b)&&(d.getAttribute(b)!=null?e=d.getAttribute(b):e=!0),f=e.$to_s()),f},-1),d(j,'$set_attribute',function(b,d){var f=this,e=a;return b==null&&(b=a),d==null&&(d=a),e=!1,c(b)&&(c(d)?e=f.$element().setAttribute(b,d):e=f.$element().setAttribute(b,null)),e},-1),d(j,'$clear_attribute',function(b){var e=this,d=a;return b==null&&(b=a),d=!1,c(b)&&(e.$element().removeAttribute(b),d=!0),d},-1),d(j,'$each_child',function d(){var f=d.$$p||a,b=this;return b.children==null&&(b.children=a),d.$$p=null,c(f['$respond_to?']("call"))?e(b.children.$values(),'each',[],function(b){return b==null&&(b=a),f.$call(b)}):b.children.$values().$each()}),d(j,'$every_child',function g(){var i=g.$$p||a,j=this,b=a,d=a,f=a;for(g.$$p=null,b=[],d=[j];c(h(d.$size(),0));)f=d.$shift(),c(f)&&c(h(f.$children().$keys().$size(),0))&&e(f.$children().$values(),'each',[],function(e){return e==null&&(e=a),b['$<<'](e),c(h(e.$children().$keys().$size(),0))?d['$<<'](e):a});return c(i['$respond_to?']("call"))?e(b,'each',[],function(b){return b==null&&(b=a),i.$call(b)}):b.$values().$each()}),d(j,'$find_child',function(d){var i=this,e=a,g=a,b=a;for(d==null&&(d=a),e=a,g=i.$children().$values();c(h(g.$size(),0));)if(b=g.$shift(),c(b))if(f(b.$uuid(),d)||f(b.$title(),d)||f(b.$component(),d)||f(b.$class(),d)||f(b.$domtype(),d)){e=b;break}return e},-1),d(j,'$find_descendant',function(d){var j=this,g=a,i=a,b=a;for(d==null&&(d=a),g=a,i=j.$children().$values();c(h(i.$size(),0));)if(b=i.$shift(),c(b)){if(f(b.$uuid(),d)||f(b.$title(),d)||f(b.$component(),d)||f(b.$class(),d)||f(b.$domtype(),d)){g=b;break}c(g)||e(b.$children().$values(),'each',[],function(b){return b==null&&(b=a),i['$<<'](b)})}return g},-1),d(j,'$find_descendants',function(d){var j=this,i=a,g=a,b=a;for(d==null&&(d=a),i=[],g=j.$children().$values();c(h(g.$size(),0));)b=g.$shift(),c(b)&&((f(b.$uuid(),d)||f(b.$title(),d)||f(b.$component(),d)||f(b.$class(),d)||f(b.$domtype(),d))&&i['$<<'](b),e(b.$children().$values(),'each',[],function(b){return b==null&&(b=a),g['$<<'](b)}));return i},-1),d(j,'$find_ancestor',function(d){var i=this,g=a,e=a,b=a;for(d==null&&(d=a),g=a,e=[i.$parent()];c(h(e.$size(),0));)if(b=e.$shift(),c(b)){if(f(b.$uuid(),d)||f(b.$title(),d)||f(b.$component(),d)||f(b.$class(),d)||f(b.$domtype(),d)){g=b;break}f(b.$component(),"page")||e['$<<'](b.$parent())}return g},-1),d(j,'$find_ancestors',function(d){var i=this,g=a,e=a,b=a;for(d==null&&(d=a),g=[],e=[i.$parent()];c(h(e.$size(),0));)b=e.$shift(),c(b)&&((f(b.$uuid(),d)||f(b.$title(),d)||f(b.$component(),d)||f(b.$class(),d)||f(b.$domtype(),d))&&g['$<<'](b),f(b.$component(),"page")||e['$<<'](b.$parent()));return g},-1)}(z[0],z),function(k,m){var f=l(k,'EventHandlers'),i=[f].concat(m),j=g.$r(i);return w(i[0],'EVENT_TYPES',g.large_array_unpack("abort,afterprint,animatedend,animationiteration,animationstart,beforeprint,beforeunload,blur,canplay,canplaythrough,change,click,contextmenu,copy,cut,dblclick,drag,dragend,dragcenter,dragleave,dragover,dragstart,drop,durationchange,ended,error,focus,focusin,focusout,fullscreenchange,fullscreenerror,hashchange,input,invalid,keydown,keypress,keyup,load,loadeddata,loadedmetadata,loadstart,message,mousedown,mouseenter,mouseleave,mousemove,mouseover,mouseup,offline,online,open,pagehide,pageshow,paste,play,playing,popstate,progress,ratechange,resize,reset,scroll,search,seeked,select,show,stalled,storage,submit,suspend,timeupdate,toggle,touchcancel,touchend,touchmove,touchstart,transitionend,unload,volumechange,waiting,wheel")),w(i[0],'EVENT_GENRES',new Map([["click","mouse"],["contextmenu","mouse"],["dblclick","mouse"],["mouseenter","mouse"],["mouseleave","mouse"],["mouseover","mouse"],["mouseup","mouse"],["mousedown","mouse"],["mousemove","mouse"],["mouseout","mouse"],["keydown","keyboard"],["keypress","keyboard"],["keyup","keyboard"],["touchcancel","touch"],["touchmove","touch"],["touchstart","touch"],["touchend","touch"],["animationstart","animation"],["animationend","animation"],["animationiteration","animation"],["animationpause","animation"],["animationresume","animation"],["animationstop","animation"],["input","input"],["drag","drag"],["dragend","drag"],["dragenter","drag"],["dragleave","drag"],["dragover","drag"],["dragstart","drag"],["drop","drag"],["wheel","wheel"],["abort","ui"],["beforeunload","ui"],["error","ui"],["load","ui"],["resize","ui"],["scroll","ui"],["select","ui"],["unload","ui"],["blur","focus"],["focus","focus"],["focusin","focus"],["focusout","focus"],["afterprint","event"],["beforeprint","event"],["canplay","event"],["canplaythrough","event"],["change","event"],["fullscreenchange","event"],["fullscreenerror","event"],["invalid","event"],["loadeddata","event"],["loadedmetadata","event"],["message","event"],["offline","event"],["online","event"],["open","event"],["close","event"],["pause","event"],["play","event"],["playing","event"],["progress","event"],["changerate","event"],["reset","event"],["search","event"],["seek","event"],["seeking","event"],["show","event"],["hide","event"],["stalled","event"],["submit","event"],["suspend","event"],["timeupdate","event"],["toggle","event"],["waiting","event"],["copy","clipboard"],["cut","clipboard"],["paste","clipboard"],["pagehide","transition"],["pageshow","transition"],["popstate","history"],["loadstart","progress"],["storage","storage"],["credentialchanged","ui"]])),w(i[0],'EVENT_FIELDS',new Map([["mouse",["altKey","button","buttons","clientX","clientY","ctrlKey","metaKey","movementX","movementY","offsetX","offsetY","pageX","pageY","screenX","screenY","shiftKey","which","detail","view","bubbles","cancelable","currentTarget","defaultPrevented","eventPhase","isTrusted","target","timeStamp"]],["keyboard",["altKey","charCode","code","ctrlKey","metaKey","isComposing","key","keyCode","location","shift","repeat","shiftKey","which","detail","view","bubbles","cancelable","currentTarget","defaultPrevented","eventPhase","isTrusted","target","timeStamp"]],["touch",["altKey","ctrlKey","metaKey","shiftKey","detail","view","bubbles","cancelable","currentTarget","defaultPrevented","eventPhase","isTrusted","target","timeStamp"]],["animation",["animationName","elapsedTime","pseudoElement","bubbles","cancelable","currentTarget","defaultPrevented","eventPhase","isTrusted","target","timeStamp"]],["input",["data","inputType","isComposing","detail","view","bubbles","cancelable","currentTarget","defaultPrevented","eventPhase","isTrusted","target","timeStamp"]],["drag",["dataTranser","altKey","button","buttons","clientX","clientY","ctrlKey","metaKey","movementX","movementY","offsetX","offsetY","pageX","pageY","screenX","screenY","shiftKey","which","bubbles","cancelable","currentTarget","defaultPrevented","eventPhase","isTrusted","target","timeStamp"]],["wheel",["deltaX","deltaY","deltaZ","deltaMode","altKey","button","buttons","clientX","clientY","ctrlKey","metaKey","movementX","movementY","offsetX","offsetY","pageX","pageY","screenX","screenY","shiftKey","which","detail","view","bubbles","cancelable","currentTarget","defaultPrevented","eventPhase","isTrusted","target","timeStamp"]],["ui",["detail","view","bubbles","cancelable","currentTarget","defaultPrevented","eventPhase","isTrusted","target","timeStamp"]],["focus",["relatedTarget","detail","view","bubbles","cancelable","currentTarget","defaultPrevented","eventPhase","isTrusted","target","timeStamp"]],["event",["bubbles","cancelable","currentTarget","defaultPrevented","eventPhase","isTrusted","target","timeStamp"]],["transition",["persisted","bubbles","cancelable","currentTarget","defaultPrevented","eventPhase","isTrusted","target","timeStamp"]],["history",["state","bubbles","cancelable","currentTarget","defaultPrevented","eventPhase","isTrusted","target","timeStamp"]],["progress",["lengthComputable","loaded","total","bubbles","cancelable","currentTarget","defaultPrevented","eventPhase","isTrusted","target","timeStamp"]],["storage",["key","newValue","oldValue","storageArea","url","bubbles","cancelable","currentTarget","defaultPrevented","eventPhase","isTrusted","target","timeStamp"]],["clipboard",["clipboardData","bubbles","cancelable","currentTarget","defaultPrevented","eventPhase","isTrusted","target","timeStamp"]]])),d(f,'$on',function h(e,f){var i=h.$$p||a,d=this,g=a;return d.event_handlers==null&&(d.event_handlers=a),d.event_listeners==null&&(d.event_listeners=a),h.$$p=null,e==null&&(e=a),f==null&&(f=!1),g=!1,c(d.event_handlers['$is_a?'](b('Hash')))||(d.event_handlers=new Map,d.event_listeners=new Map),c(e['$is_any?'](b('String'),b('Symbol')))&&c(i['$respond_to?']("call"))&&(d.event_handlers['$[]='](e.$to_s().$downcase().$to_sym(),i),d.event_listeners['$[]='](e.$to_s().$downcase().$to_sym(),d.$method("event_handler").$to_proc()),d.$element().addEventListener(e.$to_s().$downcase(),d.event_listeners['$[]'](e.$to_s().$downcase().$to_sym()),f),g=!0),g},-1),d(f,'$remove_listener',function(d){var b=this;return b.event_listeners==null&&(b.event_listeners=a),b.event_handlers==null&&(b.event_handlers=a),d==null&&(d=a),c(b.event_handlers['$[]'](d.$to_s().$downcase().$to_sym()))&&c(b.event_listeners['$[]'](d.$to_s().$downcase().$to_sym()))&&(b.$element().removeEventListener(d.$to_s().$downcase(),b.event_listeners['$[]'](d.$to_s().$downcase().$to_sym())),b.event_handlers.$delete(d.$to_s().$downcase().$to_sym()),b.event_listeners.$delete(d.$to_s().$downcase().$to_sym())),!0},-1),d(f,'$remove_listeners',function(){var b=this;return b.event_handlers==null&&(b.event_handlers=a),e(b.event_handlers.$keys().$clone(),'each',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),d.$remove_listener(b)},{$$s:b}),!0}),d(f,'$event_handler',function(i){var e=this,f=a,d=a,g=a,h=a,k=a;return e.event_handlers==null&&(e.event_handlers=a),f=i.type.$to_s().$downcase().$to_sym(),d=new Map,c(e.event_handlers['$[]'](f))?(g=c(h=b(b(b(b(j('GxG'),'Gui'),'Vdom'),'EventHandlers'),'EVENT_GENRES')['$[]'](f))?h:"event",c(g)&&(k=b(b(b(b(j('GxG'),'Gui'),'Vdom'),'EventHandlers'),'EVENT_FIELDS')['$[]'](g),c(k)&&(serializer=function(a){if(a){var b={eventName:a.toString(),altKey:a.altKey,bubbles:a.bubbles,button:a.button,buttons:a.buttons,cancelBubble:a.cancelBubble,cancelable:a.cancelable,clientX:a.clientX,clientY:a.clientY,composed:a.composed,ctrlKey:a.ctrlKey,currentTarget:a.currentTarget?a.currentTarget.outerHTML:null,defaultPrevented:a.defaultPrevented,detail:a.detail,eventPhase:a.eventPhase,fromElement:a.fromElement?a.fromElement.outerHTML:null,isTrusted:a.isTrusted,layerX:a.layerX,layerY:a.layerY,metaKey:a.metaKey,movementX:a.movementX,movementY:a.movementY,offsetX:a.offsetX,offsetY:a.offsetY,pageX:a.pageX,pageY:a.pageY,relatedTarget:a.relatedTarget?a.relatedTarget.outerHTML:null,returnValue:a.returnValue,screenX:a.screenX,screenY:a.screenY,shiftKey:a.shiftKey,sourceCapabilities:a.sourceCapabilities?a.sourceCapabilities.toString():null,target:a.target?a.target.outerHTML:null,timeStamp:a.timeStamp,toElement:a.toElement?a.toElement.outerHTML:null,type:a.type,view:a.view?a.view.toString():null,which:a.which,x:a.x,y:a.y};return b}},d=JSON.stringify(serializer(i)),d=b('JSON').$parse(d.$to_s(),new Map([["symbolize_names",!0]])))),e.event_handlers['$[]'](f).$call(d)):a}),d(f,'$set_script',function(b,d){var e=this,f=a,i=a;if(b==null&&(b=""),d==null&&(d=a),f=!1,c(h(b.$size(),0)))try{c(b['$base64?']())&&(b=b.$decode64()),c(d)?(d.$remove_listeners(),d.$instance_eval(b)):(e.$remove_listeners(),e.$instance_eval(b)),f=!0}catch(a){if(g.rescue(a,[j('Exception')])){i=a;try{e.$log_error(new Map([["error",i],["parameters",new Map([["script",b]])]]))}finally{g.pop_exception(a)}}else throw a}return f},-1)}(z[0],z),function(r,l,m){var i=n(r,l,'Animation'),q=[i].concat(m),j=g.$r(q),k=i.$$prototype;return k.target_list=k.targets=k.origin=k.destination=k.options=k.tweens=a,i.$include(b(b(b(j('GxG'),'Gui'),'Vdom'),'EventHandlers')),d(i,'$initialize',function(d,g){var f=this,h=a,k=a,i=a;return d==null&&(d=new Map),g==null&&(g=a),f.event_handlers=new Map,f.event_listeners=new Map,c(d['$is_any?'](b('Hash'),b(b(b('GxG'),'Database'),'DetachedHash')))&&(c(d['$[]']("origin"))?c(d['$[]']("origin")['$is_a?'](b(b(b('GxG'),'Database'),'DetachedHash')))?f.origin=d['$[]']("origin").$unpersist():f.origin=d['$[]']("origin"):f.origin=a,c(d['$[]']("destination"))||f.$raise(j('ArgumentError'),"You MUST provide a :destination state for the object."),c(d['$[]']("destination")['$is_a?'](b(b(b('GxG'),'Database'),'DetachedHash')))?f.destination=d['$[]']("destination").$unpersist():f.destination=d['$[]']("destination"),c(d['$[]']("options"))?(f.options=new Map,c(d['$[]']("options")['$is_a?'](b(b(b('GxG'),'Database'),'DetachedHash')))?h=d['$[]']("options").$unpersist():h=d['$[]']("options"),k=new Map([["animationstart","start"],["animationend","complete"],["animationiteration","update"],["animationstop","stop"],["animationpause","pause"],["animationresume","resume"]]),e(h,'each_pair',[],function h(f,g){var b,d=h.$$s==null?this:h.$$s;return d.event_handlers==null&&(d.event_handlers=a),d.options==null&&(d.options=a),f==null&&(f=a),g==null&&(g=a),c(k.$keys()['$include?'](f))?c(g['$respond_to?']("call"))?(d.event_handlers['$[]='](f,g),(b=[f,g],e(d.options,'[]=',b),b[b.length-1])):d.$log_warn("Attempted to pass an invalid object as an event handler. "+f.$inspect()+" --> "+g.$inspect()):(b=[f,g],e(d.options,'[]=',b),b[b.length-1])},{$$s:f})):f.options=a,c(d['$[]']("targets"))||f.$raise(j('ArgumentError'),"You MUST provide a one or more :targets."),c(d['$[]']("targets")['$is_a?'](b(b(b('GxG'),'Database'),'DetachedHash')))?f.target_list=d['$[]']("targets").$unpersist():f.target_list=d['$[]']("targets")),f.uuid=(c(i=g)?i:b('GxG').$uuid_generate()).$to_s().$to_sym(),f.targets=a,f.tweens=[],f},-1),d(i,'$update_targets',function(d){var f=this,e=a;return d==null&&(d=a),e=!1,c(d['$is_any?'](b('Hash'),b(b(b('GxG'),'Database'),'DetachedHash')))&&(c(d['$is_a?'](b(b(b('GxG'),'Database'),'DetachedHash')))?f.target_list=d.$unpersist():f.target_list=d,e=!0),e},-1),d(i,'$update_origin',function(d){var f=this,e=a;return d==null&&(d=a),e=!1,c(d['$is_any?'](b('Hash'),b(b(b('GxG'),'Database'),'DetachedHash')))&&(c(d['$is_a?'](b(b(b('GxG'),'Database'),'DetachedHash')))?f.origin=d.$unpersist():f.origin=d,e=!0),e},-1),d(i,'$update_destination',function(d){var f=this,e=a;return d==null&&(d=a),e=!1,c(d['$is_any?'](b('Hash'),b(b(b('GxG'),'Database'),'DetachedHash')))&&(c(d['$is_a?'](b(b(b('GxG'),'Database'),'DetachedHash')))?f.destination=d.$unpersist():f.destination=d,e=!0),e},-1),d(i,'$update_options',function(d){var h=this,f=a,g=a,i=a;return d==null&&(d=a),f=!1,c(d['$is_any?'](b('Hash'),b(b(b('GxG'),'Database'),'DetachedHash')))&&(c(d['$is_a?'](b(b(b('GxG'),'Database'),'DetachedHash')))?g=d.$unpersist():g=d,h.options=new Map,i=new Map([["animationstart","start"],["animationend","complete"],["animationiteration","update"],["animationstop","stop"],["animationpause","pause"],["animationresume","resume"]]),e(g,'each_pair',[],function h(f,g){var b,d=h.$$s==null?this:h.$$s;return d.event_handlers==null&&(d.event_handlers=a),d.options==null&&(d.options=a),f==null&&(f=a),g==null&&(g=a),c(i.$keys()['$include?'](f))?c(g['$respond_to?']("call"))?(d.event_handlers['$[]='](f,g),(b=[f,g],e(d.options,'[]=',b),b[b.length-1])):d.$log_warn("Attempted to pass an invalid object as an event handler. "+f.$inspect()+" --> "+g.$inspect()):(b=[f,g],e(d.options,'[]=',b),b[b.length-1])},{$$s:h}),f=!0),f},-1),d(i,'$uuid',o("uuid")),d(i,'$compile',function(){var d=this,m=a,o=a,k=a,l=a,i=a,n=a,q=a;m=!1;try{d.targets=[],o=[],e(d.target_list.$keys(),'each',[],function k(i){var d=k.$$s==null?this:k.$$s;return d.target_list==null&&(d.target_list=a),i==null&&(i=a),f(i,"class")&&(c(d.target_list['$[]']("class")['$is_a?'](b('String')))||d.$raise(j('Exception'),"You MUST provide :class target as a String, not: "+d.target_list['$[]']("class").$class().$inspect()),e(d.target_list['$[]']("class").$split(" "),'each',[],function i(b){var j=i.$$s==null?this:i.$$s,d=a,f=a;return b==null&&(b=a),c(h(b.$size(),0))&&(d=document.getElementsByClassName(b),f=d.length.$to_i(),c(h(f,0)))?e(g.Range.$new(0,p(f,1),!1),'each',[],function g(e){var b=g.$$s==null?this:g.$$s,f=a;return b.targets==null&&(b.targets=a),e==null&&(e=a),f=d.item(e),c(b.targets['$include?'](f))?a:b.targets['$<<'](f)},{$$s:j}):a},{$$s:d})),f(i,"objects")&&(c(d.target_list['$[]']("objects")['$is_a?'](b('Array')))||d.$raise(j('Exception'),"You MUST provide :object target list as an Array, not: "+d.target_list['$[]']("objects").$class().$inspect()),e(d.target_list['$[]']("objects"),'each',[],function i(f){var d=i.$$s==null?this:i.$$s,g=a,h=a,e=a;return d.targets==null&&(d.targets=a),f==null&&(f=a),g=b(j('GxG'),'DISPLAY_DETAILS')['$[]']("object").$find_object(f.$to_s().$to_sym()),c(g)?(h=g.$element().attributes.getNamedItem('id')||0,c(h==0))?a:(e=document.getElementById(h),c(e)?c(d.targets['$include?'](e))?a:d.targets['$<<'](e):a):a},{$$s:d})),f(i,"elements")&&(c(d.target_list['$[]']("elements")['$is_a?'](b('Array')))||d.$raise(j('Exception'),"You MUST provide :elements target list as an Array, not: "+d.target_list['$[]']("elements").$class().$inspect()),e(d.target_list['$[]']("elements"),'each',[],function g(f){var d=g.$$s==null?this:g.$$s,b=a,e=a;return d.targets==null&&(d.targets=a),f==null&&(f=a),b=f.attributes.getNamedItem('id')||0,c(b==0)?a:(b=b.value,e=document.getElementById(b),c(e)?c(d.targets['$include?'](e))?a:d.targets['$<<'](e):a)},{$$s:d})),f(i,"assets"),a},{$$s:d}),c(h(d.targets.$size(),0))||d.$puts("No valid targets resulted."),e(d.targets,'each',[],function(b){return b==null&&(b=a),o.push(b)}),c(d.origin['$is_a?'](b('Hash')))?c(h(d.origin.$size(),0))?(k=new Map,e(d.origin,'each_pair',[],function(b,d){var c,g=a;return b==null&&(b=a),d==null&&(d=a),f(b,"attribue")||f(b,"attribute")?g="attr":g=b,(c=[g,d],e(k,'[]=',c),c[c.length-1])})):k=a:k=a,c(h(d.destination.$size(),0))?(l=new Map,e(d.destination,'each_pair',[],function(b,d){var c,g=a;return b==null&&(b=a),d==null&&(d=a),f(b,"attribue")||f(b,"attribute")?g="attr":g=b,(c=[g,d],e(l,'[]=',c),c[c.length-1])})):d.$raise(j('Exception'),"You MUST define a valid :destination state. not: "+d.destination.$inspect()),c(d.options['$is_a?'](b('Hash')))?c(h(d.options.$size(),0))?(i=new Map,n=new Map([["animationstart","start"],["animationend","complete"],["animationiteration","update"],["animationstop","stop"],["animationpause","pause"],["animationresume","resume"]]),e(d.options,'each_pair',[],function h(b,g){var d,f=h.$$s==null?this:h.$$s,j=a;return f.event_handlers==null&&(f.event_handlers=a),b==null&&(b=a),g==null&&(g=a),c(n.$keys()['$include?'](b))?(j=n['$[]'](b),c(f.event_handlers['$[]'](b)['$respond_to?']("call")))?(d=[j,f.event_handlers['$[]'](b)],e(i,'[]=',d),d[d.length-1]):a:c(["start_time"]['$include?'](b))?a:(d=[b,g],e(i,'[]=',d),d[d.length-1])},{$$s:d})):i=a:i=a,d.tweens=[],e(d.targets,'each',[],function e(b){var d=e.$$s==null?this:e.$$s;return d.tweens==null&&(d.tweens=a),b==null&&(b=a),c(k)?c(i)?d.tweens['$<<'](KUTE.fromTo(b,k.$to_n(),l.$to_n(),i.$to_n())):d.tweens['$<<'](KUTE.fromTo(b,k.$to_n(),l.$to_n())):c(i)?d.tweens['$<<'](KUTE.to(b,l.$to_n(),i.$to_n())):d.tweens['$<<'](KUTE.to(b,l.$to_n()))},{$$s:d}),m=!0}catch(b){if(g.rescue(b,[j('Exception')])){q=b;try{d.$log_error(new Map([["error",q]])),d.targets=a,d.tweens=[]}finally{g.pop_exception(b)}}else throw b}return m}),d(i,'$start',function(d){var f=this;return d==null&&(d=a),c(h(f.tweens.$size(),0))||f.$compile(),c(d['$is_a?'](b('Numeric')))||(d=window.performance.now()),c(h(f.tweens.$size(),0))?e(f.tweens,'each',[],function(b){return b==null&&(b=a),b.start(d)}):a},-1),d(i,'$stop',function(){var b=this;return c(h(b.tweens.$size(),0))?e(b.tweens,'each',[],function(b){return b==null&&(b=a),b.stop()}):a}),d(i,'$pause',function(){var b=this;return c(h(b.tweens.$size(),0))?e(b.tweens,'each',[],function(b){return b==null&&(b=a),b.pause()}):a}),d(i,'$resume',function(){var b=this;return c(h(b.tweens.$size(),0))?e(b.tweens,'each',[],function(b){return b==null&&(b=a),b.resume()}):a}),d(i,'$included',function(){var f=this,d=a;return d=[],c(f.targets)&&e(f.targets,'each',[],function(f){var e=a,g=a;return f==null&&(f=a),e=f.attributes.getNamedItem('id')||0,c(e==0)?a:(e=e.value,g=b(j('GxG'),'DISPLAY_DETAILS')['$[]']("object").$find_child(e.$to_s()),c(g))?d['$<<'](g):a}),d}),d(i,'$each_included',function b(){var d=b.$$p||a,f=this;return b.$$p=null,c(d['$respond_to?']("call"))?e(f.$included(),'each',[],function(b){return b==null&&(b=a),d.$call(b)}):f.$included().$each()}),d(i,'$broadcast',function(b,c){var d=this;return b==null&&(b=a),c==null&&(c=a),e(d,'each_included',[],function(d){return d==null&&(d=a),d.$send(b,c)})},-1)}(z[0],null,z),function(i,j){var h=l(i,'AnimationSupport'),k=[h].concat(j),f=g.$r(k);return d(h,'$animate',function(d){var g=this,e=a,f=a;return d==null&&(d=a),c(d['$[]']("destination")['$is_any?'](b('Hash'),b(b(b('GxG'),'Database'),'DetachedHash')))?(e=b(b(b(b('GxG'),'Gui'),'Vdom'),'Animation').$new(new Map([["targets",new Map([["elements",[g.$element()]]])],["origin",d['$[]']("origin")],["destination",d['$[]']("destination")],["options",d['$[]']("options")]])),f=window.performance.now(),c(d['$[]']("options")['$is_any?'](b('Hash'),b(b(b('GxG'),'Database'),'DetachedHash')))&&(f=d['$[]']("options")['$[]']("start_time")),e.$compile(),e.$start(f),!0):(g.$log_warn("Ignoring invalid animation: NO valid :destination state specified (required). not: "+d['$[]']("destination").$inspect()),!1)},-1),d(h,'$show',function i(d){var h=i.$$p||a,g=this;return i.$$p=null,d==null&&(d=a),c(d['$is_any?'](b('Hash'),b(b(b('GxG'),'Database'),'DetachedHash')))?(c(d['$is_a?'](b(b(b('GxG'),'Database'),'DetachedHash')))&&(d=d.$unpersist()),c(d['$[]']("destination")['$is_a?'](b('Hash')))&&c(d['$[]']("destination")['$[]']("opacity")['$is_a?'](b('Numeric')))&&(c(d['$[]']("origin")['$is_a?'](b('Hash')))?c(d['$[]']("origin")['$[]']("opacity")['$is_a?'](b('Numeric')))?g.$merge_style(new Map([["opacity",d['$[]']("origin")['$[]']("opacity")]])):g.$merge_style(new Map([["opacity",0]])):g.$merge_style(new Map([["opacity",0]]))),g.$set_state("hidden",!1),c(h['$respond_to?']("call"))&&(c(d['$[]']("options"))||d['$[]=']("options",new Map),d['$[]']("options")['$[]=']("animationend",e(f('Proc'),'new',[],function(){return h.$call()}))),g.$animate(d)):(g.$set_state("hidden",!1),c(h['$respond_to?']("call"))&&h.$call()),b(b('GxG'),'Gui').$layout_refresh(),!0},-1),d(h,'$hide',function j(d){var i=j.$$p||a,g=this,h=a,k=a;return j.$$p=null,d==null&&(d=a),c(d['$is_any?'](b('Hash'),b(b(b('GxG'),'Database'),'DetachedHash')))?(c(d['$is_a?'](b(b(b('GxG'),'Database'),'DetachedHash')))&&(d=d.$unpersist()),c(i['$respond_to?']("call"))?(c(d['$[]']("options"))||d['$[]=']("options",new Map),d['$[]']("options")['$[]=']("animationend",e(f('Proc'),'new',[],function a(){var b=a.$$s==null?this:a.$$s;return b.$set_state("hidden",!0),i.$call()},{$$s:g}))):(h=a,c(d['$[]']("options"))?c(d['$[]']("options")['$[]']("animationend")['$respond_to?']("call"))?(k=d['$[]']("options")['$[]']("animationend"),h=e(f('Proc'),'new',[],function a(){var b=a.$$s==null?this:a.$$s;return k.$call(),b.$set_state("hidden",!0)},{$$s:g})):h=e(f('Proc'),'new',[],function a(){var b=a.$$s==null?this:a.$$s;return b.$set_state("hidden",!0)},{$$s:g}):(d['$[]=']("options",new Map),h=e(f('Proc'),'new',[],function a(){var b=a.$$s==null?this:a.$$s;return b.$set_state("hidden",!0)},{$$s:g})),c(h)&&(c(d['$[]']("options")['$is_a?'](b('Hash')))||d['$[]=']("options",new Map),d['$[]']("options")['$[]=']("animationend",h))),g.$animate(d)):(g.$set_state("hidden",!0),c(i['$respond_to?']("call"))&&i.$call()),b(b('GxG'),'Gui').$layout_refresh(),!0},-1)}(z[0],z),function(k,m){var i=l(k,'ApplicationSupport'),n=[i].concat(m),j=g.$r(n);return d(i,'$find_parent_type',function(d){var i=this,g=a,f=a,e=a;if(d==null&&(d=a),g=a,c(d['$is_any?'](q,b('String'),b('Symbol'))))if(c(d['$is_any?'](b('String'),b('Symbol')))&&(d=b(j('GxG'),'Gui').$component_class(d.$to_s().$to_sym())),c(d['$is_a?'](q)))for(f=[i];c(h(f.$size(),0));)if(e=f.$shift(),c(e)){if(c(e['$is_a?'](d))){g=e;break}f['$<<'](e.$parent())}return g},-1),d(i,'$viewport',function(){var a=this;return a.$find_parent_type(b(b(b('GxG'),'Gui'),'ApplicationViewport'))}),d(i,'$tree_node',function(){var a=this;return a.$find_parent_type(b(b(b('GxG'),'Gui'),'TreeNode'))}),d(i,'$tree',function(){var a=this;return a.$find_parent_type(b(b(b('GxG'),'Gui'),'Tree'))}),d(i,'$window',function(){var a=this;return a.$find_parent_type(b(b(b('GxG'),'Gui'),'Window'))}),d(i,'$find_parent',function(d){var k=this,e=a,i=a,g=a,b=a;for(d==null&&(d=a),e=a,c(j('GxG')['$valid_uuid?'](d))?i=!0:i=!1,g=[k.$parent()];c(h(g.$size(),0));)if(b=g.$shift(),c(b)){if(c(i)){if(f(b.$uuid(),d)){e=b;break}}else if(f(b.$title(),d)){e=b;break}c(e)||g['$<<'](b.$parent())}return e},-1),d(i,'$find_child_type',function(d){var i=this,f=a,g=a,e=a;if(d==null&&(d=a),f=a,c(d['$is_any?'](q,b('String'),b('Symbol'))))if(c(d['$is_any?'](b('String'),b('Symbol')))&&(d=b(j('GxG'),'Gui').$component_class(d.$to_s().$to_sym())),c(d['$is_a?'](q)))for(g=i.$children().$values();c(h(g.$size(),0));)if(e=g.$shift(),c(e))if(c(e['$is_a?'](d))){f=e;break}return f},-1),d(i,'$find_child',function(d){var l=this,g=a,k=a,i=a,b=a;for(d==null&&(d=a),g=a,c(j('GxG')['$valid_uuid?'](d))?k=!0:k=!1,i=l.$children().$values();c(h(i.$size(),0));)if(b=i.$shift(),c(b)){if(c(k)){if(f(b.$uuid(),d)){g=b;break}}else if(f(b.$title(),d)){g=b;break}c(g)||e(b.$children().$values(),'each',[],function(b){return b==null&&(b=a),i['$<<'](b)})}return g},-1),d(i,'$find_peer',function(b){var c=this;return b==null&&(b=a),c.$parent().$find_child(b)},-1)}(z[0],z),function(f,h){var c=l(f,'ThemeSupport'),i=[c].concat(h),e=g.$r(i);return d(c,'$theme_icon',function(c){return c==null&&(c=a),b(e('GxG'),'DISPLAY_DETAILS')['$[]']("object").$theme_icon(c)},-1),d(c,'$theme_background',function(c){return c==null&&(c=a),b(e('GxG'),'DISPLAY_DETAILS')['$[]']("object").$theme_background(c)},-1),d(c,'$theme_widget',function(c){return c==null&&(c=a),b(e('GxG'),'DISPLAY_DETAILS')['$[]']("object").$theme_widget(c)},-1),d(c,'$theme_font',function(c){return c==null&&(c=a),b(e('GxG'),'DISPLAY_DETAILS')['$[]']("object").$theme_font(c)},-1),d(c,'$site_asset',function(c){return c==null&&(c=a),b(e('GxG'),'DISPLAY_DETAILS')['$[]']("object").$site_asset(c)},-1)}(z[0],z),function(g,h){var b=n(g,h,'Factory');return b.$attr_reader("body"),d(b,'$initialize',function(c){var a=this;for(a.body=document.body;document.body.firstChild;)document.body.removeChild(document.body.firstChild)}),d(b,'$create_element',function(g,d,h,c){var i=this,b=a;return c==null&&(c=new Map),f(d,"body")?b=document.body:b=document.createElement(d),f(d,"body")||(f(c['$[]']("prepend"),!0)?h.$element().insertBefore(b,c['$[]']("prepend").$element()):h.$element().appendChild(b)),b.classList.add(i.$dasherize(g.$class().$name())),D(c['$has_key?']("id"))&&(b.id=g.$uuid().$to_s()),e(c,'each',[],function(c,d){switch(c==null&&(c=a),d==null&&(d=a),c.valueOf()){case"prepend":return a;case"content":return b.appendChild(document.createTextNode(d));break;default:return b.setAttribute(c,d)}}),b},-4),d(b,'$dasherize',function(c){var b=a;return b=c.$gsub("::","-").$downcase().$gsub("_","-"),f(b['$[]'](0),"-")&&(b=b['$[]'](u(1,-1,!1))),b}),d(b,'$camelize',function(b){return c(b['$!~'](/-/))?b:e(b,'gsub',[/(?:-|(\/))([a-z\d]*)/],function(){var b;return""+((b=y['~'])===a?a:b['$[]'](1))+((b=y['~'])===a?a:b['$[]'](2)).$capitalize()}).$strip()})}(z[0],null),function(q,l,m){var i=n(q,l,'BaseElement'),p=[i].concat(m),j=g.$r(p),k=i.$$prototype;return k.uuid=k.settings=k.states=k.component=k.parent=a,i.$include(b(b(b(j('GxG'),'Gui'),'Vdom'),'ElementMethods')),i.$include(b(b(b(j('GxG'),'Gui'),'Vdom'),'EventHandlers')),i.$include(b(b(b(j('GxG'),'Gui'),'Vdom'),'AnimationSupport')),i.$include(b(b(b(j('GxG'),'Gui'),'Vdom'),'ApplicationSupport')),i.$include(b(b(b(j('GxG'),'Gui'),'Vdom'),'ThemeSupport')),i.$attr_reader("uuid","title","component","parent","children","element","domtype","settings"),d(i,'$set_settings',function(b){var c=this;return b==null&&(b=a),c.settings=b},-1),x(i,"settings=","set_settings"),d(i,'$initialize',function(k,f,g){var d=this,i=a;return f==null&&(f=new Map),g==null&&(g=new Map),c(f['$is_a?'](b(b(j('GxG'),'Database'),'DetachedHash')))?(d.uuid=b('GxG').$uuid_generate().$to_s().$to_sym(),c(h(f['$[]']("title").$to_s().$size(),0))?c(f['$[]']("title").$to_s().$include("Untitled "))?d.title="Untitled Component "+d.uuid.$to_s():d.title=f['$[]']("title").$to_s():d.title=f.$title().$to_s()):(d.uuid=b('GxG').$uuid_generate().$to_s().$to_sym(),d.title=(c(i=f['$[]']("title"))?i:"Untitled Component "+d.uuid.$to_s()).$to_s()),d.component=(c(i=f['$[]']("component"))?i:"unknown").$to_s().$downcase().$to_sym(),d.parent=k,c(f['$[]']("settings")['$is_a?'](b(b(j('GxG'),'Database'),'DetachedHash')))?d.settings=f['$[]']("settings").$unpersist():c(f['$[]']("settings")['$is_a?'](b('Hash')))?d.settings=f['$[]']("settings"):d.settings=new Map,c(f['$respond_to?']("uuid"))?d.settings['$[]=']("template",f.$uuid().$to_s().$to_sym()):d.settings['$[]=']("template",a),c(g['$[]']("application"))?d.application=g['$[]']("application"):d.application=a,d.children=new Map,d.element=a,d.domtype="div",d.states=new Map,d.states['$[]='](d.component.$to_s().$gsub(".","-").$to_sym(),!0),c(f['$[]']("options")['$is_any?'](b('Hash'),b(b(j('GxG'),'Database'),'DetachedHash')))&&c(f['$[]']("options")['$[]']("states")['$is_any?'](b('Array'),b(b(j('GxG'),'Database'),'DetachedArray')))&&e(f['$[]']("options")['$[]']("states"),'each',[],function f(c){var b,d=f.$$s==null?this:f.$$s;return d.states==null&&(d.states=a),c==null&&(c=a),(b=[c.$to_s().$to_sym(),!0],e(d.states,'[]=',b),b[b.length-1])},{$$s:d}),d.style=new Map,c(f['$[]']("options")['$is_a?'](b('Hash'),b(b(j('GxG'),'Database'),'DetachedHash')))&&c(f['$[]']("options")['$[]']("style")['$is_a?'](b('Hash'),b(b(j('GxG'),'Database'),'DetachedHash')))&&(d.style=f['$[]']("options")['$[]']("style")),d.options=new Map,c(f['$[]']("options")['$is_a?'](b('Hash'),b(b(j('GxG'),'Database'),'DetachedHash')))&&e(f['$[]']("options"),'each_pair',[],function h(b,f){var d,g=h.$$s==null?this:h.$$s;return g.options==null&&(g.options=a),b==null&&(b=a),f==null&&(f=a),c(["background-color","icon","label","data","content","uuid","title","opacity","window_title","menu","top","right","bottom","left","height","width","close","minimize","maximize","resize","scroll","modal","track","states","style"]['$include?'](b.$to_s().$to_sym()))?a:(d=[b.$to_s().$to_sym(),f.$to_s()],e(g.options,'[]=',d),d[d.length-1])},{$$s:d}),d.event_handlers=new Map,d.event_listeners=new Map,d.$creation(),c(f['$[]']("options")['$is_a?'](b('Hash'),b(b(j('GxG'),'Database'),'DetachedHash')))&&c(f['$[]']("content")['$is_a?'](b('String')))&&d.$set_text(f['$[]']("content")),d},-2),d(i,'$parent',o("parent")),d(i,'$root',function(){var g=this,e=a,d=a,b=a;for(e=a,d=[g.parent];c(h(d.$size(),0));)if(b=d.$shift(),c(b)){if(f(b.$component(),"page")){e=b;break}d['$<<'](b.$parent())}return e}),d(i,'$factory',function(){var a=this;return a.$root().$factory()}),d(i,'$build',function(b,c){var d=this;return b==null&&(b=a),c==null&&(c=new Map),d.$page().$build_components(d,b,c)},-1)}(z[0],null,z),function(f,g){var b=n(f,g,'BaseInputElement'),e=b.$$prototype;return e.options=e.element=e.disabled=a,d(b,'$_before_create',function e(){var f=e.$$p||a,b=this,d=a;return e.$$p=null,s(b,t(b,'_before_create',e,!1,!0),'_before_create',[],null),b.domtype="input",c(d=b.options['$[]']("type"))?d:b.options['$[]=']("type","text"),c(b.options['$[]']("content"))&&b.options['$[]=']("value",b.options.$delete("content")),b.disabled=c(d=b.options['$[]']("disabled"))&&d}),d(b,'$value',function(){var a=this;return a.element.value}),d(b,'$value=',function(a){var b=this;return b.element.value=a}),d(b,'$_after_create',function d(){var e=d.$$p||a,b=this;return d.$$p=null,s(b,t(b,'_after_create',d,!1,!0),'_after_create',[],null),c(b.disabled)?b.$disable():a}),d(b,'$disable',function(){var a=this;return a.$set_attribute("disabled","disabled")}),d(b,'$enable',function(){var a=this;return a.$clear_attribute("disabled")})}(z[0],b(b(b(b('GxG'),'Gui'),'Vdom'),'BaseElement')),function(b,c){var e=n(b,c,'BaseClickableElement');return d(e,'$_before_create',function b(){var d=b.$$p||a,c=this;return b.$$p=null,s(c,t(c,'_before_create',b,!1,!0),'_before_create',[],null)})}(z[0],b(b(b(b('GxG'),'Gui'),'Vdom'),'BaseInputElement')),function(s,o,p){var j=n(s,o,'Page'),q=[j].concat(p),l=g.$r(q),m=j.$$prototype;return m.theme_prefix=m.settings=m.element=m.uuid=m.title=m.title_registry=m.factory=a,j.$include(b(b(b(l('GxG'),'Gui'),'Vdom'),'ElementMethods')),j.$include(b(b(b(l('GxG'),'Gui'),'Vdom'),'EventHandlers')),j.$include(b(b(b(l('GxG'),'Gui'),'Vdom'),'AnimationSupport')),j.$include(b(b(b(l('GxG'),'Gui'),'Vdom'),'ApplicationSupport')),j.$include(b(b(b(l('GxG'),'Gui'),'Vdom'),'ThemeSupport')),j.$attr_reader("uuid","title","component","parent","children","domtype","settings"),d(j,'$set_settings',function(b){var c=this;return b==null&&(b=a),c.settings=b},-1),x(j,"settings=","set_settings"),d(j,'$get_library',function(d){var h=a;return d==null&&(d=a),h=a,c(d['$is_any?'](b('Hash'),b(b(b('GxG'),'Database'),'DetachedHash')))?function(){try{var i=k('break');return e(b(l('GxG'),'APPLICATIONS')['$[]']("libraries").$values(),'each',[],function e(b){var j=a;if(b==null&&(b=a),f(b.$title(),d['$[]']("library").$to_s())&&f(b.$type(),c(j=d['$[]']("type"))?j:b.$type()))if(c(d['$[]']("maximum")))if(c(g.Range.$new(d['$[]']("minimum").$to_f(),d['$[]']("maximum").$to_f(),!1)['$include?'](b.$version())))h=b,i.$throw(a,e.$$is_lambda);else return a;else if(c(A(b.$version(),d['$[]']("minimum").$to_f())))h=b,i.$throw(a,e.$$is_lambda);else return a;else return a})}catch(a){if(a===i)return a.$v;throw a}finally{i.is_orphan=!0}}():c(b(l('GxG'),'APPLICATIONS')['$[]']("libraries")['$[]'](d.$to_s().$to_sym()))?h=b(l('GxG'),'APPLICATIONS')['$[]']("libraries")['$[]'](d.$to_s().$to_sym()):function(){try{var c=k('break');return e(b(l('GxG'),'APPLICATIONS')['$[]']("libraries").$values(),'each',[],function e(b){if(b==null&&(b=a),f(b.$title(),d))h=b,c.$throw(a,e.$$is_lambda);else return a})}catch(a){if(a===c)return a.$v;throw a}finally{c.is_orphan=!0}}(),h},-1),d(j,'$library_loaded?',function(d){var h=a;return d==null&&(d=a),c(d['$is_any?'](b('Hash'),b(b(b('GxG'),'Database'),'DetachedHash')))?(h=!1,function(){try{var i=k('break');return e(b(l('GxG'),'APPLICATIONS')['$[]']("libraries").$values(),'each',[],function e(b){var j=a;if(b==null&&(b=a),f(b.$title(),d['$[]']("library").$to_s())&&f(b.$type(),(c(j=d['$[]']("type"))?j:b.$type()).$to_s()))if(c(d['$[]']("maximum")))if(c(g.Range.$new(d['$[]']("minimum").$to_f(),d['$[]']("maximum").$to_f(),!1)['$include?'](b.$version())))h=b['$loaded?'](),i.$throw(a,e.$$is_lambda);else return a;else if(c(A(b.$version(),d['$[]']("minimum").$to_f())))h=b['$loaded?'](),i.$throw(a,e.$$is_lambda);else return a;else return a})}catch(a){if(a===i)return a.$v;throw a}finally{i.is_orphan=!0}}(),h):!!c(b(l('GxG'),'APPLICATIONS')['$[]']("libraries")['$[]'](d.$to_s().$to_sym()))||(h=!1,function(){try{var c=k('break');return e(b(l('GxG'),'APPLICATIONS')['$[]']("libraries").$values(),'each',[],function e(b){if(b==null&&(b=a),f(b.$title(),d))h=b['$loaded?'](),c.$throw(a,e.$$is_lambda);else return a})}catch(a){if(a===c)return a.$v;throw a}finally{c.is_orphan=!0}}(),h)},-1),d(j,'$load_library',function h(d){var i=h.$$p||a,g=a,f=a;return h.$$p=null,d==null&&(d=a),c(d['$is_any?'](b('Hash'),b(b(b('GxG'),'Database'),'DetachedHash')))?(c(d['$[]']("maximum"))?g=d['$[]']("maximum").$to_f():g=a,e(b(l('GxG'),'CONNECTION'),'library_pull',[new Map([["library",d['$[]']("library").$to_s()],["type",(c(f=d['$[]']("type"))?f:"text/ruby").$to_s()],["minimum",(c(f=d['$[]']("minimum"))?f:0).$to_f()],["maximum",g],["dependencies",!0],["loaded",b(l('GxG'),'APPLICATIONS')['$[]']("libraries").$keys()]])],function(d){return d==null&&(d=a),c(d['$is_a?'](b('Hash')))&&c(d['$[]']("result")['$is_a?'](b('Array')))?e(d['$[]']("result"),'each',[],function(e){var d=a;return e==null&&(e=a),c(b(l('GxG'),'APPLICATIONS')['$[]']("libraries").$keys()['$include?'](e['$[]']("uuid").$to_s().$to_sym()))?a:(d=e['$[]']("data"),c(d['$is_a?'](b('String')))?(c(d['$base64?']())&&(d=d.$decode64()),c(d['$json?']())&&(d=b('JSON').$parse(d,new Map([["symbolize_names",!0]]))),c(d['$is_a?'](b('Hash')))&&(d=b(b('GxG'),'Database').$process_import(d)),c(d['$is_a?'](b(b(b('GxG'),'Database'),'DetachedHash')))&&(b(l('GxG'),'APPLICATIONS')['$[]']("libraries")['$[]='](e['$[]']("uuid").$to_s().$to_sym(),b(b('GxG'),'Library').$new(d)),c(i['$respond_to?']("call")))?i.$call(b(l('GxG'),'APPLICATIONS')['$[]']("libraries")['$[]'](e['$[]']("uuid").$to_s().$to_sym())):a):a)}):a})):a},-1),d(j,'$load_libraries',function g(d){var h=g.$$p||a,i=this,f=a;return g.$$p=null,d==null&&(d=[]),f=!0,c(d['$is_any?'](b('Array'),b(b(b('GxG'),'Database'),'DetachedArray')))&&e(d,'each',[],function g(d){var h=g.$$s==null?this:g.$$s;return d==null&&(d=a),function(){try{var g=k('break');return e(b(l('GxG'),'DISPLAY_DETAILS')['$[]']("object"),'load_library',[d],function d(b){var e=d.$$s==null?this:d.$$s;if(b==null&&(b=a),c(b['$loaded?']()))return a;e.$log_warn("Unable to load library: "+b.$title()),f=!1,g.$throw(a,d.$$is_lambda)},{$$s:h})}catch(a){if(a===g)return a.$v;throw a}finally{g.is_orphan=!0}}()},{$$s:i}),c(h['$respond_to?']("call"))&&h.$call(f),f},-1),d(j,'$application_open',function(d,f){var g=this,h=a,j=a;return d==null&&(d=new Map),f==null&&(f=new Map),h=!1,c(d['$is_a?'](b('Hash')))?(j=e(l('Proc'),'new',[],r(a)),g.$set_busy(!0),e(b(l('GxG'),'CONNECTION'),'application_open',[d,j],function j(d){var g=j.$$s==null?this:j.$$s;return d==null&&(d=a),c(d['$is_a?'](b('Hash')))?c(d['$[]']("result")['$is_a?'](b('Hash')))?e(b(l('GxG'),'CONNECTION'),'pull_object',[d['$[]']("result")['$[]']("location")],function e(c){var g=e.$$s==null?this:e.$$s;return c==null&&(c=a),b(l('GxG'),'APPLICATIONS')['$[]']("processes")['$[]='](d['$[]']("result")['$[]']("application").$to_s().$to_sym(),b(l('GxG'),'Application').$new(d['$[]']("result").$merge(new Map([["source",c]])))),h=b(l('GxG'),'APPLICATIONS')['$[]']("processes")['$[]'](d['$[]']("result")['$[]']("application").$to_s().$to_sym()).$run(f),g.$set_busy(!1)},{$$s:g}):g.$log_warn(i("Error opening Application: ",d.$inspect())):g.$log_warn("Malformed response: "+d.$inspect())},{$$s:g})):g.$log_warn("Invalid Argument: "+d.$inspect()),h},-1),d(j,'$site_asset',function(e){var d=a;return e==null&&(e=a),c(window.location.href['$include?']("https://"))?d=i("https://",window.location.host):d=i("http://",window.location.host),C(b(b('GxG'),'CONNECTION').$relative_url().$to_s()['$[]'](0),"/")&&(d=i(d,"/")),c(e)?i(d,l('File').$expand_path(i(i(b(b('GxG'),'CONNECTION').$relative_url().$to_s(),"/"),e.$to_s()))):""},-1),d(j,'$theme_icon',function(b){var d=this;return b==null&&(b=a),c(b)?i(i(d.theme_prefix,"/icons/"),b.$to_s()):""},-1),d(j,'$theme_background',function(b){var d=this;return b==null&&(b=a),c(b)?i(i(d.theme_prefix,"/backgrounds/"),b.$to_s()):""},-1),d(j,'$theme_widget',function(b){var d=this;return b==null&&(b=a),c(b)?i(i(d.theme_prefix,"/widgets/"),b.$to_s()):""},-1),d(j,'$theme_font',function(b){var d=this;return b==null&&(b=a),c(b)?i(i(d.theme_prefix,"/fonts/"),b.$to_s()):""},-1),d(j,'$theme_window_title_layout',function(){return new Map([["left",["close","minimize","maximize"]],["center",["title"]],["right",[]]])}),d(j,'$build_components',function(i,j,d){var l=a,k=a,g=a;if(i==null&&(i=a),j==null&&(j=a),d==null&&(d=new Map),l=!1,c(i)||(i=b(b('GxG'),'DISPLAY_DETAILS')['$[]']("object")),c(i)&&c(j['$is_any?'](b('Array'),b(b(b('GxG'),'Database'),'DetachedArray')))){for(k=[new Map([["parent",i],["content",j]])];c(h(k.$size(),0));)g=k.$shift(),c(g)&&e(g['$[]']("content"),'each',[],function(e){var i=a;return e==null&&(e=a),i=g['$[]']("parent").$add_child(e,d),c(h(e['$[]']("content").$size(),0))&&k['$<<'](new Map([["parent",i],["content",e['$[]']("content")]])),f(e['$[]']("component").$to_s().$downcase().$to_sym(),"org.gxg.gui.application.viewport")&&c(d['$[]']("application"))&&(i.$set_application(d['$[]']("application")),c(d['$[]']("application").$get_viewport(i.$uuid()))||d['$[]']("application").$link_viewport(i)),f(e['$[]']("component").$to_s().$downcase().$to_sym(),"org.gxg.gui.window")&&c(d['$[]']("application"))&&(d['$[]']("application").$link_window(i),i.$set_application(d['$[]']("application"))),f(e['$[]']("component").$to_s().$downcase().$to_sym(),"org.gxg.gui.window.dialog")&&c(d['$[]']("application"))&&i.$set_application(d['$[]']("application")),f(e['$[]']("component").$to_s().$downcase().$to_sym(),"org.gxg.gui.menu.bar")&&c(d['$[]']("application"))&&i.$set_application(d['$[]']("application")),f(e['$[]']("component").$to_s().$downcase().$to_sym(),"org.gxg.gui.menu")&&c(d['$[]']("application"))&&i.$set_application(d['$[]']("application")),c(g['$[]']("parent")['$is_a?'](b(b(b('GxG'),'Gui'),'Window')))&&c(e['$[]']("options")['$[]']("track"))?g['$[]']("parent").$track_deltas(i.$uuid(),i,e['$[]']("options")['$[]']("track")):a});l=!0}return l},-1),d(j,'$build',function(b,c){var d=this;return b==null&&(b=a),c==null&&(c=new Map),d.$build_components(d,b,c)},-1),d(j,'$build_page',function(f){var d=this,g=a;return f==null&&(f=a),c(f['$is_any?'](b(b(b('GxG'),'Database'),'DetachedHash'),b(b(b('GxG'),'Database'),'DetachedHash')))?(d.element=document.body,d.settings=f['$[]']("settings"),d.theme_prefix=i(b(b('GxG'),'CONNECTION').$relative_url(),"/themes/"+(c(g=d.settings['$[]']("theme"))?g:"default")),d.uuid=f.$uuid().$to_s().$to_sym(),d.element.id=d.uuid.$to_s(),d.title=d.settings['$[]']("page_title").$to_s(),document.title=d.title.$to_s(),d.component="org.gxg.gui.page",d.parent=d,d.children=new Map,d.domtype="body",d.states=new Map([["org-gxg-gui-page",!0]]),c(f['$[]']("options")['$is_any?'](b('Hash'),b(b(b('GxG'),'Database'),'DetachedHash'),b(b(b('GxG'),'Database'),'DetachedHash')))&&c(f['$[]']("options")['$[]']("states")['$is_any?'](b('Array'),b(b(b('GxG'),'Database'),'PersistedArray'),b(b(b('GxG'),'Database'),'DetachedArray')))&&e(f['$[]']("options")['$[]']("states"),'each',[],function f(c){var b,d=f.$$s==null?this:f.$$s;return d.states==null&&(d.states=a),c==null&&(c=a),(b=[c.$to_s().$to_sym(),!0],e(d.states,'[]=',b),b[b.length-1])},{$$s:d}),d.style=new Map,c(f['$[]']("options")['$is_any?'](b('Hash'),b(b(b('GxG'),'Database'),'DetachedHash'),b(b(b('GxG'),'Database'),'DetachedHash')))&&c(f['$[]']("options")['$[]']("style")['$is_any?'](b('Hash'),b(b(b('GxG'),'Database'),'DetachedHash'),b(b(b('GxG'),'Database'),'DetachedHash')))&&(d.style=f['$[]']("options")['$[]']("style")),d.options=new Map,c(f['$[]']("options")['$is_any?'](b('Hash'),b(b(b('GxG'),'Database'),'DetachedHash'),b(b(b('GxG'),'Database'),'DetachedHash')))&&e(f['$[]']("options"),'each_pair',[],function h(b,f){var d,g=h.$$s==null?this:h.$$s;return g.options==null&&(g.options=a),b==null&&(b=a),f==null&&(f=a),c(["background-color","data","icon","label","content","uuid","title","opacity","window_title","menu","top","right","bottom","left","height","width","close","minimize","maximize","resize","scroll","modal","track","states","style"]['$include?'](b.$to_s().$to_sym()))?a:(d=[b.$to_s().$to_sym(),f.$to_s()],e(g.options,'[]=',d),d[d.length-1])},{$$s:d}),d.event_handlers=new Map,d.event_listeners=new Map,d.$creation(),c(f['$[]']("script")['$is_a?'](b('String')))&&c(h(f['$[]']("script").$size(),0))&&d.$set_script(f['$[]']("script")),d.$build_components(d,f['$[]']("content"))):a},-1),d(j,'$initialize',function(d){var c=this;return d==null&&(d=a),b(b('GxG'),'DISPLAY_DETAILS')['$[]=']("object",c),e(b(b('GxG'),'DISPLAY_DETAILS')['$[]']("object"),'on',["onbeforeunload"],function(c){return c==null&&(c=a),b(b('GxG'),'DISPLAY_DETAILS')['$[]']("socket").$close()}),e(b(b('GxG'),'DISPLAY_DETAILS')['$[]']("object"),'on',["beforeunload"],function(c){return c==null&&(c=a),b(b('GxG'),'DISPLAY_DETAILS')['$[]']("socket").$close()}),e(b(b('GxG'),'DISPLAY_DETAILS')['$[]']("object"),'on',["onunload"],function(c){return c==null&&(c=a),b(b('GxG'),'DISPLAY_DETAILS')['$[]']("socket").$close()}),c.theme_prefix=i(b(b('GxG'),'CONNECTION').$relative_url(),"/themes/"+b(b('GxG'),'DISPLAY_DETAILS')['$[]']("theme")),c.settings=a,c.busy=!1,c.window_switcher=a,c.window_registry=new Map,c.dialog=a,c.dialog_queue=[],c.title_registry=new Map,c.$build_page(d),c},-1),d(j,'$find_object_by_dom_id',function(f){var m=this,j=a,l=a,g=a,d=a;for(f==null&&(f=a),j=a,c(f['$is_a?'](b('Numeric')))?f=i("_",f.$to_i().$to_s()):f=f.$to_s(),l=[m];c(h(l.$size(),0));){if(g=l.$shift(),d=g.$element().attributes.getNamedItem('id')||0,!c(d==0))if(d=d.value,c(d.$to_s()==f.$to_s())){j=g;break}c(g['$respond_to?']("children"))&&function(){try{var b=k('break');return e(g.$children().$keys(),'each',[],function h(e){if(e==null&&(e=a),d=g.$children()['$[]'](e).$element().attributes.getNamedItem('id')||0,c(d==0))return a;if(d=d.value,c(d.$to_s()==f.$to_s()))j=g.$children()['$[]'](e),b.$throw(a,h.$$is_lambda);else return l['$<<'](g.$children()['$[]'](e))})}catch(a){if(a===b)return a.$v;throw a}finally{b.is_orphan=!0}}()}return j},-1),d(j,'$find_object',function(d){var i=this,g=a,f=a,b=a;for(d==null&&(d=a),g=a,f=[i];c(h(f.$size(),0));)if(b=f.$shift(),c(b['$respond_to?']("children"))){if(c(b.$children()['$[]'](d))){g=b.$children()['$[]'](d);break}e(b.$children().$keys(),'each',[],function(c){return c==null&&(c=a),f['$<<'](b.$children()['$[]'](c))})}return g},-1),d(j,'$find_object_by',function(b){var h=this,d=a,g=a;return b==null&&(b=a),d=a,c(l('GxG')['$valid_uuid?'](b))?g=!0:g=!1,function(){try{var i=k('break');return e(h.title_registry.$keys(),'each',[],function j(e){var h=j.$$s==null?this:j.$$s;if(h.title_registry==null&&(h.title_registry=a),e==null&&(e=a),f(g,!0))if(c(h.title_registry['$[]'](e).$to_s()['$include?'](b.$to_s())))d=h.$find_object(e),i.$throw(a,j.$$is_lambda);else return a;else if(f(b,h.title_registry['$[]'](e)))d=h.$find_object(e),i.$throw(a,j.$$is_lambda);else return a},{$$s:h})}catch(a){if(a===i)return a.$v;throw a}finally{i.is_orphan=!0}}(),d},-1),d(j,'$register_object',function(b,d){var e=this;return!!(b==null&&(b=a),d==null&&(d=a),c(b)&&c(d))&&(e.title_registry['$[]='](d.$uuid(),b.$to_s()),!0)},-1),d(j,'$unregister_object',function(e){var f=this,d=a;return!!(e==null&&(e=a),c(e))&&(d=f.$find_object_by(e),c(d)&&(c(d['$is_a?'](b(b(b('GxG'),'Gui'),'ApplicationViewport')))&&d.$detach(),f.title_registry.$delete(d.$uuid())),!0)},-1),d(j,'$factory',function(){var d=this,e=a;return d.factory=c(e=d.factory)?e:b(b(b(l('GxG'),'Gui'),'Vdom'),'Factory').$new(d)}),d(j,'$element',function(){var a=this;return a.$factory().$body()}),d(j,'$parent',B),d(j,'$root',B),d(j,'$domclear',function(){while(document.body.firstChild)document.body.removeChild(document.body.firstChild);return!0}),d(j,'$clear',function(){var b=this,c=a;return e(b,'all_descendants',[],function(b){return b==null&&(b=a),b.$remove_listeners()}),b.$remove_listeners(),e(b,'each_child',[],function(b){return b==null&&(b=a),b.$destroy()}),c=document.body.getAttributeNames(),e(c,'each',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),d.$clear_attribute(b)},{$$s:b}),!0})}(z[0],null,z),j(H,'$load_page',function(d){var g=this,i=a,j=a;return d==null&&(d=a),c(b(b('GxG'),'DISPLAY_DETAILS')['$[]']("object")['$is_any?'](b(b(b('GxG'),'Gui'),'Page'),b(b(b(b('GxG'),'Gui'),'Vdom'),'Page')))&&(b(b('GxG'),'DISPLAY_DETAILS')['$[]']("object").$clear(),b(b(b('GxG'),'Gui'),'Vdom').$clear_rules(),b(b(b('GxG'),'Gui'),'Vdom').$refresh_css_cache()),i=c(j=d['$[]']("settings")['$[]']("theme"))?j:"default",e(b(b('GxG'),'CONNECTION'),'pull_object',["/Public/www/content/themes/"+i],function h(g){var i=h.$$s==null?this:h.$$s;return g==null&&(g=a),c(g['$is_a?'](b('Array')))?(e(g['$[]'](0)['$[]']("resources"),'each',[],function(c){return c==null&&(c=a),f(c['$[]']("resource_type"),"font-face")?b(b(b('GxG'),'Gui'),'Vdom').$load_font(c):a}),e(g['$[]'](0)['$[]']("rules"),'each_pair',[],function(c,d){return c==null&&(c=a),d==null&&(d=a),b(b(b('GxG'),'Gui'),'Vdom').$set_rule(c,d)}),c(b(b('GxG'),'DISPLAY_DETAILS')['$[]']("object")['$is_any?'](b(b(b('GxG'),'Gui'),'Page'),b(b(b(b('GxG'),'Gui'),'Vdom'),'Page')))?b(b('GxG'),'DISPLAY_DETAILS')['$[]']("object").$build_page(d):b(b('GxG'),'DISPLAY_DETAILS')['$[]=']("object",b(b(b('GxG'),'Gui'),'Page').$new(d)),b(b('GxG'),'Gui').$layout_refresh()):i.$log_error(new Map([["error",G('Exception').$new("Invalid theme object as response.")]]))},{$$s:g}),c(d['$[]']("requirements")['$is_any?'](b('Array'),b(b(b('GxG'),'Database'),'DetachedArray'),b(b(b('GxG'),'Database'),'PersistedArray')))&&c(h(d['$[]']("requirements").$size(),0))&&g.$load_libraries(d['$[]']("requirements")),c(d['$[]']("auto_start")['$is_any?'](b('Array'),b(b(b('GxG'),'Database'),'DetachedArray'),b(b(b('GxG'),'Database'),'PersistedArray')))&&c(h(d['$[]']("auto_start").$size(),0))&&e(d['$[]']("auto_start"),'each',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),d.$application_open(new Map([["name",b['$[]']("name")],["restore",!0]]))},{$$s:g}),!0},-1),j(H,'$navigate_to',function(j){var k=this,d=a,l=a;return j==null&&(j=""),c(h(b(b('GxG'),'CONNECTION').$relative_url().$to_s().$size(),0))?d=j['$[]'](g.Range.$new(b(b('GxG'),'CONNECTION').$relative_url().$size(),-1,!1)):d=j,(f(d,"/")||f(d,""))&&(d="/index"),f(d['$[]'](0),"/")||(d=i("/",d)),b(b('GxG'),'DISPLAY_DETAILS')['$[]=']("host_path",d),c(b(G('GxG'),'PAGES')['$[]'](d))?b(b(G('GxG'),'Gui'),'Vdom').$load_page(b(G('GxG'),'PAGES')['$[]'](d)):(l=e(G('Proc'),'new',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),d.$log_error(b.$inspect())},{$$s:k}),e(b(b('GxG'),'CONNECTION'),'pull_object',["/Public/www/content/pages"+d,l],function f(e){var g=f.$$s==null?this:f.$$s;return e==null&&(e=a),g.$puts("Response (Page Load): "+e.$inspect()),c(e['$is_any?'](b('Array')))?(b(G('GxG'),'PAGES')['$[]='](d,e['$[]'](0)),b(b(G('GxG'),'Gui'),'Vdom').$load_page(b(G('GxG'),'PAGES')['$[]'](d))):g.$log_error(new Map([["error",G('Exception').$new("Invalid page object as response.")]])),b(b('GxG'),'Gui').$layout_refresh()},{$$s:k}))},-1)}(z[0],z)}(z[0],z)}(z[0],z)},Opal.modules["web/gxg_foundation"]=function(j){var n=j.module,f=j.klass,d=j.send2,e=j.find_super,g=j.send,c=j.def,h=j.truthy,q=j.rb_gt,i=j.eqeq,r=j.const_set,m=j.defs,s=j.Class,p=j.neqeq,o=j.return_ivar,k=j.rb_plus,l=[],b=j.nil,a=j.$$$;return j.add_stubs('[]=,to_s,clone,values,children,>,size,shift,==,domtype,to_sym,title,value,each,<<,delete,[],on,index,keys,component_class,is_a?,is_any?,component_registered?,!=,log_warn,inspect,register_component_class,include?,new_component,title=,build_components,page,find_object_by,set_text,state_active?,set_state,application,menu_item_select,new,add_child,+,set_attribute,uuid,set_script,find_descendant,raise,downcase,value=,private,log_error'),function(l,o){var t=n(l,'GxG'),k=[t].concat(o);return function(t,u){var o=n(t,'Gui'),k=[o].concat(u),l=j.$r(k);return f(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'Page'),'Page'),function(i,j){var a=f(i,j,'Abbreviation'),h=a.$$prototype;return h.title=h.options=b,c(a,'$_before_create',function f(){var c,h=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="abbr",(c=["title",a.title.$clone().$to_s()],g(a.options,'[]=',c),c[c.length-1])})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Address');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="address"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Area');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="area"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Bold');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="b"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Bdi');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="bdi"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Bdo');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="bdo"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'BlockQuote');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="blockquote"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Break');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="br"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Caption');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="caption"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Cite');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="cite"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Code');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="code"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Column');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="col"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'ColumnGroup');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="colgroup"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Data');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="data"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'DataList');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="datalist"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Description');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="dd"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Deleted');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="del"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Details');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="details"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Dfn');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="dfn"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Dialog');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="dialog"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Division');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="div"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'DescriptionList');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="dl"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'DescriptionTerm');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="dt"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Emphasis');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="em"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Figure');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="figure"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'FigureCaption');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="figcaption"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'ThemeDivider');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="hr"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Italic');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="i"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'InlineFrame');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="iframe"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Insertion');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="ins"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'KeyboardKey');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="kbd"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Map');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="map"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Mark');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="mark"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Meter');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="meter"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'NoScript');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="noscript"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Object');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="object"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'OptionGroup');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="optgroup"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Parameter');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="param"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Picture');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="picture"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Preformatted');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="pre"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Progress');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="progress"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Quotation');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="q"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'StrikeThrough');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="s"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Sample');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="samp"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Source');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="source"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Strong');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="strong"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Small');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="small"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Style');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="style"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'SubScript');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="sub"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Summary');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="summary"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'SuperScript');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="sup"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Svg');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="svg"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Template');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="template"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Time');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="time"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Track');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="track"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Misspelled');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="u"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Variable');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="var"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'WordBreak');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="wbr"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Header');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="header"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Navigation');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="nav"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Main');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="main"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Section');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="section"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Article');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="article"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Aside');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="aside"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Footer');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="footer"})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(j,k){var a=f(j,k,'Form');return c(a,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="div"}),c(a,'$form_data',function(){var e=this,d=b,c=b,a=b;for(d=new Map,c=e.$children().$values();h(q(c.$size(),0));)a=c.$shift(),h(a)&&(i(a.$domtype(),"input")?d['$[]='](a.$title().$to_s().$to_sym(),a.$value()):g(a.$children().$values(),'each',[],function(a){return a==null&&(a=b),c['$<<'](a)}));return d})}(k[0],a(a(a(l('GxG'),'Gui'),'Vdom'),'BaseElement')),function(h,i){var a=f(h,i,'ButtonInput'),j=a.$$prototype;return j.options=b,c(a,'$_before_create',function c(){var a,h=c.$$p||b,f=this;return c.$$p=null,d(f,e(f,'_before_create',c,!1,!0),'_before_create',[],null),(a=["type","button"],g(f.options,'[]=',a),a[a.length-1])})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseClickableElement')),function(h,i){var a=f(h,i,'SubmitButton'),j=a.$$prototype;return j.options=b,c(a,'$_before_create',function c(){var a,h=c.$$p||b,f=this;return c.$$p=null,d(f,e(f,'_before_create',c,!1,!0),'_before_create',[],null),(a=["type","submit"],g(f.options,'[]=',a),a[a.length-1])})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseClickableElement')),function(g,h){var a=f(g,h,'Block'),i=a.$$prototype;return i.options=b,c(a,'$_before_create',function c(){var f=c.$$p||b,a=this;return c.$$p=null,d(a,e(a,'_before_create',c,!1,!0),'_before_create',[],null),a.domtype="div",a.options.$delete("type"),!0})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseClickableElement')),function(h,i){var a=f(h,i,'CheckBox'),j=a.$$prototype;return j.options=b,c(a,'$_before_create',function c(){var a,h=c.$$p||b,f=this;return c.$$p=null,d(f,e(f,'_before_create',c,!1,!0),'_before_create',[],null),(a=["type","checkbox"],g(f.options,'[]=',a),a[a.length-1])})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseClickableElement')),function(i,j){var a=f(i,j,'Image'),k=a.$$prototype;return k.options=b,c(a,'$_before_create',function f(){var c,j=f.$$p||b,a=this,i=b;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="image",h(a.options['$[]']("source"))&&a.options['$[]=']("src",a.options.$delete("source")),h(i=a.options['$[]']("alt"))?i:(c=["alt",a.options['$[]']("src")],g(a.options,'[]=',c),c[c.length-1])})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),function(i,j){var a=f(i,j,'Video'),k=a.$$prototype;return k.options=b,c(a,'$_before_create',function f(){var c,i=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="video",h(a.options['$[]']("source"))?(c=["src",a.options.$delete("source")],g(a.options,'[]=',c),c[c.length-1]):b})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),function(i,j){var a=f(i,j,'Audio'),k=a.$$prototype;return k.options=b,c(a,'$_before_create',function f(){var c,i=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="audio",h(a.options['$[]']("source"))?(c=["src",a.options.$delete("source")],g(a.options,'[]=',c),c[c.length-1]):b})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),function(i,j){var a=f(i,j,'Canvas'),k=a.$$prototype;return k.options=b,c(a,'$_before_create',function f(){var c,i=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="canvas",h(a.options['$[]']("source"))?(c=["src",a.options.$delete("source")],g(a.options,'[]=',c),c[c.length-1]):b})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),function(h,i){var a=f(h,i,'HiddenInput'),j=a.$$prototype;return j.options=b,c(a,'$_before_create',function c(){var a,h=c.$$p||b,f=this;return c.$$p=null,d(f,e(f,'_before_create',c,!1,!0),'_before_create',[],null),(a=["type","hidden"],g(f.options,'[]=',a),a[a.length-1])})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseInputElement')),function(h,i){var a=f(h,i,'FileInput'),j=a.$$prototype;return j.options=b,c(a,'$_before_create',function c(){var a,h=c.$$p||b,f=this;return c.$$p=null,d(f,e(f,'_before_create',c,!1,!0),'_before_create',[],null),(a=["type","file"],g(f.options,'[]=',a),a[a.length-1])})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseInputElement')),function(h,i){var a=f(h,i,'TextInput'),j=a.$$prototype;return j.options=b,c(a,'$_before_create',function c(){var a,h=c.$$p||b,f=this;return c.$$p=null,d(f,e(f,'_before_create',c,!1,!0),'_before_create',[],null),(a=["type","text"],g(f.options,'[]=',a),a[a.length-1])})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseInputElement')),function(h,i){var a=f(h,i,'PasswordInput'),j=a.$$prototype;return j.options=b,c(a,'$_before_create',function c(){var a,h=c.$$p||b,f=this;return c.$$p=null,d(f,e(f,'_before_create',c,!1,!0),'_before_create',[],null),(a=["type","password"],g(f.options,'[]=',a),a[a.length-1])})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseInputElement')),function(h,i){var a=f(h,i,'ResetInput'),j=a.$$prototype;return j.options=b,c(a,'$_before_create',function c(){var a,h=c.$$p||b,f=this;return c.$$p=null,d(f,e(f,'_before_create',c,!1,!0),'_before_create',[],null),(a=["type","reset"],g(f.options,'[]=',a),a[a.length-1])})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseInputElement')),function(h,i){var a=f(h,i,'RadioButton'),j=a.$$prototype;return j.options=b,c(a,'$_before_create',function c(){var a,h=c.$$p||b,f=this;return c.$$p=null,d(f,e(f,'_before_create',c,!1,!0),'_before_create',[],null),(a=["type","radio"],g(f.options,'[]=',a),a[a.length-1])})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseInputElement')),function(h,i){var a=f(h,i,'ColorPicker'),j=a.$$prototype;return j.options=b,c(a,'$_before_create',function c(){var a,h=c.$$p||b,f=this;return c.$$p=null,d(f,e(f,'_before_create',c,!1,!0),'_before_create',[],null),(a=["type","color"],g(f.options,'[]=',a),a[a.length-1])})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseInputElement')),function(h,i){var a=f(h,i,'DatePicker'),j=a.$$prototype;return j.options=b,c(a,'$_before_create',function c(){var a,h=c.$$p||b,f=this;return c.$$p=null,d(f,e(f,'_before_create',c,!1,!0),'_before_create',[],null),(a=["type","date"],g(f.options,'[]=',a),a[a.length-1])})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseInputElement')),function(h,i){var a=f(h,i,'DateTimeLocal'),j=a.$$prototype;return j.options=b,c(a,'$_before_create',function c(){var a,h=c.$$p||b,f=this;return c.$$p=null,d(f,e(f,'_before_create',c,!1,!0),'_before_create',[],null),(a=["type","datetime-local"],g(f.options,'[]=',a),a[a.length-1])})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseInputElement')),function(h,i){var a=f(h,i,'EmailInput'),j=a.$$prototype;return j.options=b,c(a,'$_before_create',function c(){var a,h=c.$$p||b,f=this;return c.$$p=null,d(f,e(f,'_before_create',c,!1,!0),'_before_create',[],null),(a=["type","email"],g(f.options,'[]=',a),a[a.length-1])})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseInputElement')),function(h,i){var a=f(h,i,'MonthPicker'),j=a.$$prototype;return j.options=b,c(a,'$_before_create',function c(){var a,h=c.$$p||b,f=this;return c.$$p=null,d(f,e(f,'_before_create',c,!1,!0),'_before_create',[],null),(a=["type","month"],g(f.options,'[]=',a),a[a.length-1])})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseInputElement')),function(h,i){var a=f(h,i,'NumberInput'),j=a.$$prototype;return j.options=b,c(a,'$_before_create',function c(){var a,h=c.$$p||b,f=this;return c.$$p=null,d(f,e(f,'_before_create',c,!1,!0),'_before_create',[],null),(a=["type","number"],g(f.options,'[]=',a),a[a.length-1])})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseInputElement')),function(h,i){var a=f(h,i,'RangeInput'),j=a.$$prototype;return j.options=b,c(a,'$_before_create',function c(){var a,h=c.$$p||b,f=this;return c.$$p=null,d(f,e(f,'_before_create',c,!1,!0),'_before_create',[],null),(a=["type","range"],g(f.options,'[]=',a),a[a.length-1])})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseInputElement')),function(h,i){var a=f(h,i,'SearchInput'),j=a.$$prototype;return j.options=b,c(a,'$_before_create',function c(){var a,h=c.$$p||b,f=this;return c.$$p=null,d(f,e(f,'_before_create',c,!1,!0),'_before_create',[],null),(a=["type","search"],g(f.options,'[]=',a),a[a.length-1])})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseInputElement')),function(h,i){var a=f(h,i,'PhoneInput'),j=a.$$prototype;return j.options=b,c(a,'$_before_create',function c(){var a,h=c.$$p||b,f=this;return c.$$p=null,d(f,e(f,'_before_create',c,!1,!0),'_before_create',[],null),(a=["type","tel"],g(f.options,'[]=',a),a[a.length-1])})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseInputElement')),function(h,i){var a=f(h,i,'TimePicker'),j=a.$$prototype;return j.options=b,c(a,'$_before_create',function c(){var a,h=c.$$p||b,f=this;return c.$$p=null,d(f,e(f,'_before_create',c,!1,!0),'_before_create',[],null),(a=["type","time"],g(f.options,'[]=',a),a[a.length-1])})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseInputElement')),function(h,i){var a=f(h,i,'UrlInput'),j=a.$$prototype;return j.options=b,c(a,'$_before_create',function c(){var a,h=c.$$p||b,f=this;return c.$$p=null,d(f,e(f,'_before_create',c,!1,!0),'_before_create',[],null),(a=["type","url"],g(f.options,'[]=',a),a[a.length-1])})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseInputElement')),function(h,i){var a=f(h,i,'WeekPicker'),j=a.$$prototype;return j.options=b,c(a,'$_before_create',function c(){var a,h=c.$$p||b,f=this;return c.$$p=null,d(f,e(f,'_before_create',c,!1,!0),'_before_create',[],null),(a=["type","week"],g(f.options,'[]=',a),a[a.length-1])})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseInputElement')),function(a,g){var h=f(a,g,'Label');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="label"})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'TextArea');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="textarea"})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Output');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="output"})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Paragraph');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="p"})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Header1');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="h1"})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Header2');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="h2"})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Header3');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="h3"})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Header4');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="h4"})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Header5');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="h5"})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Header6');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="h6"})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'List');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="ul"})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'OrderedList');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="ol"})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'ListItem');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="li"})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Anchor');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="a"})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),function(g,i){var a=f(g,i,'ExternalLink'),j=a.$$prototype;return j.options=b,c(a,'$_before_create',function c(){var g=c.$$p||b,a=this,f=b;return c.$$p=null,d(a,e(a,'_before_create',c,!1,!0),'_before_create',[],null),h(f=a.options['$[]']("target"))?f:a.options['$[]=']("target","_blank"),a.domtype="a"})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),function(j,k){var a=f(j,k,'Button'),h=a.$$prototype;return h.options=h.states=b,c(a,'$_before_create',function f(){var c,h=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="button",i(a.options['$[]']("type"),"button")||a.options['$[]=']("type","button"),i(a.states['$[]']("button"),!0)?b:(c=["button",!0],g(a.states,'[]=',c),c[c.length-1])}),c(a,'$_after_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_after_create',a,!1,!0),'_after_create',[],null),g(c,'on',["click"],function(a){return a==null&&(a=b),document.activeElement.blur()})})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Table');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="table"})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'TableHeader');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="th"})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'TableRow');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="tr"})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'TableCell');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="td"})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),function(h,j){var a=f(h,j,'BlockTable'),k=a.$$prototype;return k.states=b,c(a,'$_before_create',function f(){var c,h=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="div",i(a.states['$[]']("table"),!0)?b:(c=["table",!0],g(a.states,'[]=',c),c[c.length-1])})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),function(h,j){var a=f(h,j,'BlockTableHeader'),k=a.$$prototype;return k.states=b,c(a,'$_before_create',function f(){var c,h=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="div",i(a.states['$[]']("th"),!0)?b:(c=["th",!0],g(a.states,'[]=',c),c[c.length-1])})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),function(h,j){var a=f(h,j,'BlockTableRow'),k=a.$$prototype;return k.states=b,c(a,'$_before_create',function f(){var c,h=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="div",i(a.states['$[]']("tr"),!0)?b:(c=["tr",!0],g(a.states,'[]=',c),c[c.length-1])})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),function(h,j){var a=f(h,j,'BlockTableCell'),k=a.$$prototype;return k.states=b,c(a,'$_before_create',function f(){var c,h=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="div",i(a.states['$[]']("td"),!0)?b:(c=["td",!0],g(a.states,'[]=',c),c[c.length-1])})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Span');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="span"})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Select');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="select"})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Option');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="option"})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),function(h,j){var a=f(h,j,'FieldSet'),k=a.$$prototype;return k.states=b,c(a,'$_before_create',function f(){var c,h=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="fieldset",i(a.states['$[]']("fieldset"),!0)?b:(c=["fieldset",!0],g(a.states,'[]=',c),c[c.length-1])})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),function(a,g){var h=f(a,g,'Legend');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="legend"})}(k[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),r(k[0],'COMPONENT_CLASSES',new Map([["org.gxg.gui.page",a(a(a('GxG'),'Gui'),'Page')],["org.gxg.gui.abbreviation",a(a(a('GxG'),'Gui'),'Abbreviation')],["org.gxg.gui.address",a(a(a('GxG'),'Gui'),'Address')],["org.gxg.gui.area",a(a(a('GxG'),'Gui'),'Area')],["org.gxg.gui.bold",a(a(a('GxG'),'Gui'),'Bold')],["org.gxg.gui.bdi",a(a(a('GxG'),'Gui'),'Bdi')],["org.gxg.gui.bdo",a(a(a('GxG'),'Gui'),'Bdo')],["org.gxg.gui.blockquote",a(a(a('GxG'),'Gui'),'BlockQuote')],["org.gxg.gui.break",a(a(a('GxG'),'Gui'),'Break')],["org.gxg.gui.caption",a(a(a('GxG'),'Gui'),'Caption')],["org.gxg.gui.cite",a(a(a('GxG'),'Gui'),'Cite')],["org.gxg.gui.code",a(a(a('GxG'),'Gui'),'Code')],["org.gxg.gui.column",a(a(a('GxG'),'Gui'),'Column')],["org.gxg.gui.column.group",a(a(a('GxG'),'Gui'),'ColumnGroup')],["org.gxg.gui.data",a(a(a('GxG'),'Gui'),'Data')],["org.gxg.gui.data.list",a(a(a('GxG'),'Gui'),'DataList')],["org.gxg.gui.description",a(a(a('GxG'),'Gui'),'Description')],["org.gxg.gui.deleted",a(a(a('GxG'),'Gui'),'Deleted')],["org.gxg.gui.details",a(a(a('GxG'),'Gui'),'Details')],["org.gxg.gui.dfn",a(a(a('GxG'),'Gui'),'Dfn')],["org.gxg.gui.dialog",a(a(a('GxG'),'Gui'),'Dialog')],["org.gxg.gui.division",a(a(a('GxG'),'Gui'),'Division')],["org.gxg.gui.description.list",a(a(a('GxG'),'Gui'),'DescriptionList')],["org.gxg.gui.description.item",a(a(a('GxG'),'Gui'),'DescriptionTerm')],["org.gxg.gui.emphasis",a(a(a('GxG'),'Gui'),'Emphasis')],["org.gxg.gui.figure",a(a(a('GxG'),'Gui'),'Figure')],["org.gxg.gui.figure.caption",a(a(a('GxG'),'Gui'),'FigureCaption')],["org.gxg.gui.theme.divider",a(a(a('GxG'),'Gui'),'ThemeDivider')],["org.gxg.gui.italic",a(a(a('GxG'),'Gui'),'Italic')],["org.gxg.gui.frame.inline",a(a(a('GxG'),'Gui'),'InlineFrame')],["org.gxg.gui.insertion",a(a(a('GxG'),'Gui'),'Insertion')],["org.gxg.gui.keyboard.key",a(a(a('GxG'),'Gui'),'KeyboardKey')],["org.gxg.gui.map",a(a(a('GxG'),'Gui'),'Map')],["org.gxg.gui.mark",a(a(a('GxG'),'Gui'),'Mark')],["org.gxg.gui.meter",a(a(a('GxG'),'Gui'),'Meter')],["org.gxg.gui.noscript",a(a(a('GxG'),'Gui'),'NoScript')],["org.gxg.gui.object",a(a(a('GxG'),'Gui'),'Object')],["org.gxg.gui.option.group",a(a(a('GxG'),'Gui'),'OptionGroup')],["org.gxg.gui.parameter",a(a(a('GxG'),'Gui'),'Parameter')],["org.gxg.gui.picture",a(a(a('GxG'),'Gui'),'Picture')],["org.gxg.gui.preformatted",a(a(a('GxG'),'Gui'),'Preformatted')],["org.gxg.gui.progress",a(a(a('GxG'),'Gui'),'Progress')],["org.gxg.gui.quotation",a(a(a('GxG'),'Gui'),'Quotation')],["org.gxg.gui.strike.through",a(a(a('GxG'),'Gui'),'StrikeThrough')],["org.gxg.gui.sample",a(a(a('GxG'),'Gui'),'Sample')],["org.gxg.gui.section",a(a(a('GxG'),'Gui'),'Section')],["org.gxg.gui.small",a(a(a('GxG'),'Gui'),'Small')],["org.gxg.gui.source",a(a(a('GxG'),'Gui'),'Source')],["org.gxg.gui.strong",a(a(a('GxG'),'Gui'),'Strong')],["org.gxg.gui.style",a(a(a('GxG'),'Gui'),'Style')],["org.gxg.gui.sub.script",a(a(a('GxG'),'Gui'),'SubScript')],["org.gxg.gui.summary",a(a(a('GxG'),'Gui'),'Summary')],["org.gxg.gui.super.script",a(a(a('GxG'),'Gui'),'SuperScript')],["org.gxg.gui.svg",a(a(a('GxG'),'Gui'),'Svg')],["org.gxg.gui.template",a(a(a('GxG'),'Gui'),'Template')],["org.gxg.gui.text.area",a(a(a('GxG'),'Gui'),'TextArea')],["org.gxg.gui.time",a(a(a('GxG'),'Gui'),'Time')],["org.gxg.gui.track",a(a(a('GxG'),'Gui'),'Track')],["org.gxg.gui.misspelled",a(a(a('GxG'),'Gui'),'Misspelled')],["org.gxg.gui.variable",a(a(a('GxG'),'Gui'),'Variable')],["org.gxg.gui.word.break",a(a(a('GxG'),'Gui'),'WordBreak')],["org.gxg.gui.header",a(a(a('GxG'),'Gui'),'Header')],["org.gxg.gui.navigator",a(a(a('GxG'),'Gui'),'Navigation')],["org.gxg.gui.main",a(a(a('GxG'),'Gui'),'Main')],["org.gxg.gui.article",a(a(a('GxG'),'Gui'),'Article')],["org.gxg.gui.aside",a(a(a('GxG'),'Gui'),'Aside')],["org.gxg.gui.footer",a(a(a('GxG'),'Gui'),'Footer')],["org.gxg.gui.form",a(a(a('GxG'),'Gui'),'Form')],["org.gxg.gui.input.button",a(a(a('GxG'),'Gui'),'ButtonInput')],["org.gxg.gui.input.button.submit",a(a(a('GxG'),'Gui'),'SubmitButton')],["org.gxg.gui.block",a(a(a('GxG'),'Gui'),'Block')],["org.gxg.gui.button.checkbox",a(a(a('GxG'),'Gui'),'CheckBox')],["org.gxg.gui.image",a(a(a('GxG'),'Gui'),'Image')],["org.gxg.gui.video",a(a(a('GxG'),'Gui'),'Video')],["org.gxg.gui.audio",a(a(a('GxG'),'Gui'),'Audio')],["org.gxg.gui.canvas",a(a(a('GxG'),'Gui'),'Canvas')],["org.gxg.gui.input.hidden",a(a(a('GxG'),'Gui'),'HiddenInput')],["org.gxg.gui.input.file",a(a(a('GxG'),'Gui'),'FileInput')],["org.gxg.gui.input.text",a(a(a('GxG'),'Gui'),'TextInput')],["org.gxg.gui.input.password",a(a(a('GxG'),'Gui'),'PasswordInput')],["org.gxg.gui.input.reset",a(a(a('GxG'),'Gui'),'ResetInput')],["org.gxg.gui.button.radio",a(a(a('GxG'),'Gui'),'RadioButton')],["org.gxg.gui.picker.color",a(a(a('GxG'),'Gui'),'ColorPicker')],["org.gxg.gui.picker.date",a(a(a('GxG'),'Gui'),'DatePicker')],["org.gxg.gui.input.datetime.local",a(a(a('GxG'),'Gui'),'DateTimeLocal')],["org.gxg.gui.input.email",a(a(a('GxG'),'Gui'),'EmailInput')],["org.gxg.gui.picker.month",a(a(a('GxG'),'Gui'),'MonthPicker')],["org.gxg.gui.picker.number",a(a(a('GxG'),'Gui'),'NumberInput')],["org.gxg.gui.input.range",a(a(a('GxG'),'Gui'),'RangeInput')],["org.gxg.gui.input.search",a(a(a('GxG'),'Gui'),'SearchInput')],["org.gxg.gui.input.phone",a(a(a('GxG'),'Gui'),'PhoneInput')],["org.gxg.gui.picker.time",a(a(a('GxG'),'Gui'),'TimePicker')],["org.gxg.gui.input.url",a(a(a('GxG'),'Gui'),'UrlInput')],["org.gxg.gui.picker.week",a(a(a('GxG'),'Gui'),'WeekPicker')],["org.gxg.gui.label",a(a(a('GxG'),'Gui'),'Label')],["org.gxg.gui.output",a(a(a('GxG'),'Gui'),'Output')],["org.gxg.gui.paragraph",a(a(a('GxG'),'Gui'),'Paragraph')],["org.gxg.gui.header.one",a(a(a('GxG'),'Gui'),'Header1')],["org.gxg.gui.header.two",a(a(a('GxG'),'Gui'),'Header2')],["org.gxg.gui.header.three",a(a(a('GxG'),'Gui'),'Header3')],["org.gxg.gui.header.four",a(a(a('GxG'),'Gui'),'Header4')],["org.gxg.gui.header.five",a(a(a('GxG'),'Gui'),'Header5')],["org.gxg.gui.header.six",a(a(a('GxG'),'Gui'),'Header6')],["org.gxg.gui.list",a(a(a('GxG'),'Gui'),'List')],["org.gxg.gui.list.ordered",a(a(a('GxG'),'Gui'),'OrderedList')],["org.gxg.gui.list.item",a(a(a('GxG'),'Gui'),'ListItem')],["org.gxg.gui.link.anchor",a(a(a('GxG'),'Gui'),'Anchor')],["org.gxg.gui.link.external",a(a(a('GxG'),'Gui'),'ExternalLink')],["org.gxg.gui.button",a(a(a('GxG'),'Gui'),'Button')],["org.gxg.gui.table",a(a(a('GxG'),'Gui'),'Table')],["org.gxg.gui.table.header",a(a(a('GxG'),'Gui'),'TableHeader')],["org.gxg.gui.table.row",a(a(a('GxG'),'Gui'),'TableRow')],["org.gxg.gui.table.cell",a(a(a('GxG'),'Gui'),'TableCell')],["org.gxg.gui.block.table",a(a(a('GxG'),'Gui'),'BlockTable')],["org.gxg.gui.block.table.header",a(a(a('GxG'),'Gui'),'BlockTableHeader')],["org.gxg.gui.block.table.row",a(a(a('GxG'),'Gui'),'BlockTableRow')],["org.gxg.gui.block.table.cell",a(a(a('GxG'),'Gui'),'BlockTableCell')],["org.gxg.gui.span",a(a(a('GxG'),'Gui'),'Span')],["org.gxg.gui.select",a(a(a('GxG'),'Gui'),'Select')],["org.gxg.gui.option",a(a(a('GxG'),'Gui'),'Option')],["org.gxg.gui.field.set",a(a(a('GxG'),'Gui'),'FieldSet')],["org.gxg.gui.legend",a(a(a('GxG'),'Gui'),'Legend')]])),m(o,'$component_class',function(c){var d=b;return c==null&&(c=b),d=b,h(c)&&(d=a(a(l('GxG'),'Gui'),'COMPONENT_CLASSES')['$[]'](c.$to_s().$to_sym())),d},-1),m(o,'$class_component',function(c){var d=b,e=b;return c==null&&(c=b),d=b,h(c)&&(e=a(a(l('GxG'),'Gui'),'COMPONENT_CLASSES').$values().$index(c),h(e)&&(d=a(a(l('GxG'),'Gui'),'COMPONENT_CLASSES').$keys()['$[]'](e))),d},-1),m(o,'$component_registered?',function(c){return!!(c==null&&(c=b),h(a(l('GxG'),'Gui').$component_class(c)))},-1),m(o,'$register_component_class',function(c,d){var e=this;return c==null&&(c=b),d==null&&(d=b),!!(h(c['$is_any?'](a('String'),a('Symbol')))&&h(d['$is_a?'](s)))&&(h(a(l('GxG'),'Gui')['$component_registered?'](c.$to_s().$to_sym()))?p(a(l('GxG'),'Gui').$component_class(c.$to_s().$to_sym()),d)?(a(a(l('GxG'),'Gui'),'COMPONENT_CLASSES')['$[]='](c.$to_s().$to_sym(),d),!0):(e.$log_warn("Component Class "+c.$to_s().$to_sym().$inspect()+" => "+d.$inspect()+" already defined."),!1):(a(a(l('GxG'),'Gui'),'COMPONENT_CLASSES')['$[]='](c.$to_s().$to_sym(),d),!0))},-1)}(k[0],k)}(l[0],l),function(l,m){var p=n(l,'GxG'),j=[p].concat(m);return function(l,m){var p=n(l,'Gui'),j=[p].concat(m);return function(h,j){var a=f(h,j,'GridContainer'),k=a.$$prototype;return k.states=b,c(a,'$_before_create',function f(){var c,h=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="div",i(a.states['$[]']("grid-container"),!0)?b:(c=["grid-container",!0],g(a.states,'[]=',c),c[c.length-1])}),c(a,'$_after_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_after_create',a,!1,!0),'_after_create',[],null),$(document).foundation()})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.grid.container",a(a(a('GxG'),'Gui'),'GridContainer')),function(h,j){var a=f(h,j,'GridX'),k=a.$$prototype;return k.states=b,c(a,'$_before_create',function f(){var c,h=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="div",i(a.states['$[]']("grid-x"),!0)?b:(c=["grid-x",!0],g(a.states,'[]=',c),c[c.length-1])}),c(a,'$_after_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_after_create',a,!1,!0),'_after_create',[],null),$(document).foundation()})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.grid.x",a(a(a('GxG'),'Gui'),'GridX')),function(h,j){var a=f(h,j,'GridY'),k=a.$$prototype;return k.states=b,c(a,'$_before_create',function f(){var c,h=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="div",i(a.states['$[]']("grid-y"),!0)?b:(c=["grid-y",!0],g(a.states,'[]=',c),c[c.length-1])}),c(a,'$_after_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_after_create',a,!1,!0),'_after_create',[],null),$(document).foundation()})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.grid.y",a(a(a('GxG'),'Gui'),'GridY')),function(k,l){var a=f(k,l,'Accordion'),j=a.$$prototype;return j.states=j.options=b,c(a,'$_before_create',function f(){var c,j=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="ul",i(a.states['$[]']("accordion"),!0)||a.states['$[]=']("accordion",!0),h(a.options.$keys()['$include?']("data-accordion"))?b:(c=["data-accordion",b],g(a.options,'[]=',c),c[c.length-1])}),c(a,'$_after_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_after_create',a,!1,!0),'_after_create',[],null),$(document).foundation()})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.accordion",a(a(a('GxG'),'Gui'),'Accordion')),function(k,l){var a=f(k,l,'AccordionItem'),j=a.$$prototype;return j.states=j.options=b,c(a,'$_before_create',function f(){var c,j=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="li",i(a.states['$[]']("accordion-item"),!0)||a.states['$[]=']("accordion-item",!0),h(a.options.$keys()['$include?']("data-accordion-item"))?b:(c=["data-accordion-item",b],g(a.options,'[]=',c),c[c.length-1])}),c(a,'$_after_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_after_create',a,!1,!0),'_after_create',[],null),$(document).foundation()})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.accordion.item",a(a(a('GxG'),'Gui'),'AccordionItem')),function(k,l){var a=f(k,l,'AccordionMenu'),j=a.$$prototype;return j.states=j.options=b,c(a,'$_before_create',function f(){var c,j=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="ul",i(a.states['$[]']("vertical"),!0)||a.states['$[]=']("vertical",!0),i(a.states['$[]']("menu"),!0)||a.states['$[]=']("menu",!0),h(a.options.$keys()['$include?']("data-accordion-menu"))?b:(c=["data-accordion-menu",b],g(a.options,'[]=',c),c[c.length-1])}),c(a,'$_after_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_after_create',a,!1,!0),'_after_create',[],null),$(document).foundation()})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.accordion.menu",a(a(a('GxG'),'Gui'),'AccordionMenu')),function(h,j){var a=f(h,j,'AccordionSubMenu'),k=a.$$prototype;return k.states=b,c(a,'$_before_create',function f(){var c,h=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="ul",i(a.states['$[]']("vertical"),!0)||a.states['$[]=']("vertical",!0),i(a.states['$[]']("menu"),!0)||a.states['$[]=']("menu",!0),i(a.states['$[]']("nested"),!0)?b:(c=["nested",!0],g(a.states,'[]=',c),c[c.length-1])}),c(a,'$_after_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_after_create',a,!1,!0),'_after_create',[],null),$(document).foundation()})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.accordion.submenu",a(a(a('GxG'),'Gui'),'AccordionSubMenu')),function(a,g){var h=f(a,g,'AccordionMenuItem');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="li"})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.accordion.menu.item",a(a(a('GxG'),'Gui'),'AccordionMenuItem')),function(h,j){var a=f(h,j,'AnchorButton'),k=a.$$prototype;return k.states=b,c(a,'$_before_create',function f(){var c,h=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="a",i(a.states['$[]']("button"),!0)?b:(c=["button",!0],g(a.states,'[]=',c),c[c.length-1])}),c(a,'$_after_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_after_create',a,!1,!0),'_after_create',[],null),$(document).foundation()})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.anchor.button",a(a(a('GxG'),'Gui'),'AnchorButton')),function(h,j){var a=f(h,j,'Badge'),k=a.$$prototype;return k.states=b,c(a,'$_before_create',function f(){var c,h=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="span",i(a.states['$[]']("badge"),!0)?b:(c=["badge",!0],g(a.states,'[]=',c),c[c.length-1])}),c(a,'$_after_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_after_create',a,!1,!0),'_after_create',[],null),$(document).foundation()})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.badge",a(a(a('GxG'),'Gui'),'Badge')),function(h,j){var a=f(h,j,'Breadcrumb'),k=a.$$prototype;return k.states=b,c(a,'$_before_create',function f(){var c,h=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="ul",i(a.states['$[]']("breadcrumb"),!0)?b:(c=["breadcrumb",!0],g(a.states,'[]=',c),c[c.length-1])}),c(a,'$_after_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_after_create',a,!1,!0),'_after_create',[],null),$(document).foundation()})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.breadcrumb",a(a(a('GxG'),'Gui'),'Breadcrumb')),function(g,h){var a=f(g,h,'BreadcrumbItem');return c(a,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="li"}),c(a,'$_after_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_after_create',a,!1,!0),'_after_create',[],null),$(document).foundation()})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.breadcrumb.item",a(a(a('GxG'),'Gui'),'BreadcrumbItem')),function(h,j){var a=f(h,j,'ButtonGroup'),k=a.$$prototype;return k.states=b,c(a,'$_before_create',function f(){var c,h=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="div",i(a.states['$[]']("button-group"),!0)?b:(c=["button-group",!0],g(a.states,'[]=',c),c[c.length-1])}),c(a,'$_after_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_after_create',a,!1,!0),'_after_create',[],null),$(document).foundation()})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.button.group",a(a(a('GxG'),'Gui'),'ButtonGroup')),function(h,j){var a=f(h,j,'Callout'),k=a.$$prototype;return k.states=b,c(a,'$_before_create',function f(){var c,h=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="div",i(a.states['$[]']("callout"),!0)?b:(c=["callout",!0],g(a.states,'[]=',c),c[c.length-1])}),c(a,'$_after_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_after_create',a,!1,!0),'_after_create',[],null),$(document).foundation()})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.callout",a(a(a('GxG'),'Gui'),'Callout')),function(h,j){var a=f(h,j,'ColoredLabel'),k=a.$$prototype;return k.states=b,c(a,'$_before_create',function f(){var c,h=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="span",i(a.states['$[]']("label"),!0)?b:(c=["label",!0],g(a.states,'[]=',c),c[c.length-1])})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.label.colored",a(a(a('GxG'),'Gui'),'ColoredLabel')),function(k,l){var a=f(k,l,'DrilldownMenu'),j=a.$$prototype;return j.states=j.options=b,c(a,'$_before_create',function f(){var c,j=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="ul",i(a.states['$[]']("vertical"),!0)||a.states['$[]=']("vertical",!0),i(a.states['$[]']("menu"),!0)||a.states['$[]=']("menu",!0),h(a.options.$keys()['$include?']("data-drilldown"))?b:(c=["data-drilldown",b],g(a.options,'[]=',c),c[c.length-1])}),c(a,'$_after_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_after_create',a,!1,!0),'_after_create',[],null),$(document).foundation()})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.drilldown.menu",a(a(a('GxG'),'Gui'),'DrilldownMenu')),function(h,j){var a=f(h,j,'DrilldownSubMenu'),k=a.$$prototype;return k.states=b,c(a,'$_before_create',function f(){var c,h=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="ul",i(a.states['$[]']("vertical"),!0)||a.states['$[]=']("vertical",!0),i(a.states['$[]']("menu"),!0)?b:(c=["menu",!0],g(a.states,'[]=',c),c[c.length-1])}),c(a,'$_after_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_after_create',a,!1,!0),'_after_create',[],null),$(document).foundation()})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.drilldown.submenu",a(a(a('GxG'),'Gui'),'DrilldownSubMenu')),function(a,g){var h=f(a,g,'DrilldownMenuItem');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="li"})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.drilldown.menu.item",a(a(a('GxG'),'Gui'),'DrilldownMenuItem')),function(h,j){var a=f(h,j,'DropdownSubMenu'),k=a.$$prototype;return k.states=b,c(a,'$_before_create',function f(){var c,h=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="ul",i(a.states['$[]']("menu"),!0)?b:(c=["menu",!0],g(a.states,'[]=',c),c[c.length-1])}),c(a,'$_after_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_after_create',a,!1,!0),'_after_create',[],null),$(document).foundation()})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.dropdown.submenu",a(a(a('GxG'),'Gui'),'DropdownSubMenu')),function(j,k){var a=f(j,k,'DropdownMenuItem'),i=a.$$prototype;return i.uuid=i.settings=i.application=i.label=i.parent=b,c(a,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="li"}),c(a,'$initialize',function c(g,h,f){var i=c.$$p||b,a=this;return c.$$p=null,f==null&&(f=new Map),a.label=b,d(a,e(a,'initialize',c,!1,!0),'initialize',[g,h,f],null),a},-3),c(a,'$cascade',function(){var a=this,c=b,e=b,d=b;return c=a.$new_component("org.gxg.gui.link.anchor"),c['$title=']("label "+a.uuid.$to_s()),c['$[]=']("options",new Map([["content",(h(e=a.settings['$[]']("label"))?e:"Untitled").$to_s()]])),c['$[]=']("script","\n on(:mouseup) do |event|\n if @parent.enabled?\n @parent.selecct()\n end\n end\n "),a.$page().$build_components(a,[c],new Map([["application",a.application]])),d=a.$page().$find_object_by("label "+a.uuid.$to_s()),h(d)?a.label=d:b}),c(a,'$label',o("label")),c(a,'$set_label_text',function(a){var c,d=this;return a==null&&(a=b),h(d.label)?(d.label.$set_text(a.$to_s()),(c=["label",a.$to_s()],g(d.settings,'[]=',c),c[c.length-1])):b},-1),c(a,'$enabled?',function(){var a=this;return!!h(a.label)&&(!h(a.label['$state_active?']("menu-item-disabled")))}),c(a,'$enable',function(){var a=this;return h(a.label)?a.label.$set_state("menu-item-disabled",!1):b}),c(a,'$disable',function(){var a=this;return h(a.label)?a.label.$set_state("menu-item-disabled",!0):b}),c(a,'$set_data',function(c){var a,d=this;return c==null&&(c=b),(a=["data",c],g(d.settings,'[]=',a),a[a.length-1])},-1),c(a,'$select',function(c){var d=this,a=b;return c==null&&(c=b),a=d.parent.$application(),h(a)?a.$menu_item_select(d.settings):b},-1)}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.dropdown.menu.item",a(a(a('GxG'),'Gui'),'DropdownMenuItem')),function(k,l){var a=f(k,l,'Equalizer'),j=a.$$prototype;return j.states=j.options=b,c(a,'$_before_create',function f(){var c,j=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="div",i(a.states['$[]']("grid-x"),!0)||a.states['$[]=']("grid-x",!0),i(a.states['$[]']("grid-margin-x"),!0)||a.states['$[]=']("grid-margin-x",!0),h(a.options.$keys()['$include?']("data-equalizer"))||a.options['$[]=']("data-equalizer",b),h(a.options.$keys()['$include?']("data-equalize-on"))?b:(c=["data-equalize-on","medium"],g(a.options,'[]=',c),c[c.length-1])})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.equalizer",a(a(a('GxG'),'Gui'),'Equalizer')),function(h,j){var a=f(h,j,'FlexGridRow'),k=a.$$prototype;return k.states=b,c(a,'$_before_create',function f(){var c,h=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="div",i(a.states['$[]']("row"),!0)?b:(c=["row",!0],g(a.states,'[]=',c),c[c.length-1])})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.flexgrid.row",a(a(a('GxG'),'Gui'),'FlexGridRow')),function(h,j){var a=f(h,j,'FlexGridColumn'),k=a.$$prototype;return k.states=b,c(a,'$_before_create',function f(){var c,h=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="div",i(a.states['$[]']("columns"),!0)?b:(c=["columns",!0],g(a.states,'[]=',c),c[c.length-1])})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.flexgrid.column",a(a(a('GxG'),'Gui'),'FlexGridColumn')),function(h,j){var a=f(h,j,'Embed'),k=a.$$prototype;return k.states=b,c(a,'$_before_create',function f(){var c,h=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="div",i(a.states['$[]']("responsive-embed"),!0)?b:(c=["responsive-embed",!0],g(a.states,'[]=',c),c[c.length-1])})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.embed",a(a(a('GxG'),'Gui'),'Embed')),function(h,j){var a=f(h,j,'MediaObject'),k=a.$$prototype;return k.states=b,c(a,'$_before_create',function f(){var c,h=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="div",i(a.states['$[]']("media-object"),!0)?b:(c=["media-object",!0],g(a.states,'[]=',c),c[c.length-1])})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.media.object",a(a(a('GxG'),'Gui'),'MediaObject')),function(h,j){var a=f(h,j,'MediaObjectSection'),k=a.$$prototype;return k.states=b,c(a,'$_before_create',function f(){var c,h=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="div",i(a.states['$[]']("media-object-section"),!0)?b:(c=["media-object-section",!0],g(a.states,'[]=',c),c[c.length-1])})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.media.object.section",a(a(a('GxG'),'Gui'),'MediaObjectSection')),function(l,m){var j=f(l,m,'DropdownMenu'),k=j.$$prototype;return k.states=k.options=k.application=b,c(j,'$_before_create',function f(){var c,j=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="ul",i(a.states['$[]']("dropdown"),!0)||a.states['$[]=']("dropdown",!0),i(a.states['$[]']("menu"),!0)||a.states['$[]=']("menu",!0),h(a.options.$keys()['$include?']("data-dropdown-menu"))?b:(c=["data-dropdown-menu",b],g(a.options,'[]=',c),c[c.length-1])}),c(j,'$add_menu_item',function(d,e){var f=this,c=b;return d==null&&(d=b),e==null&&(e=b),c=a(a(a('GxG'),'Database'),'DetachedHash').$new(),c['$[]=']("component","org.gxg.gui.dropdown.menu.item"),c['$[]=']("settings",new Map([["label",d],["data",e]])),c['$[]=']("options",new Map),c['$[]=']("script",""),c['$[]=']("content",[]),f.$page().$build_components(f,[c],new Map([["application",f.application]])),!0},-1)}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.dropdown.menu",a(a(a('GxG'),'Gui'),'DropdownMenu')),f(j[0],a(a(a('GxG'),'Gui'),'DropdownMenu'),'MenuBar'),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.menu.bar",a(a(a('GxG'),'Gui'),'MenuBar')),function(j,k){var a=f(j,k,'Menu'),h=a.$$prototype;return h.states=h.application=b,c(a,'$_before_create',function f(){var c,h=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="ul",i(a.states['$[]']("menu"),!0)?b:(c=["menu",!0],g(a.states,'[]=',c),c[c.length-1])}),c(a,'$add_menu_item',function(c,d){var a=this,e=b;return c==null&&(c=b),d==null&&(d=b),e=a.$new_component("org.gxg.gui.menu.item"),e['$[]=']("settings",new Map([["label",c],["data",d]])),a.$page().$build_components(a,[e],new Map([["application",a.application]])),!0},-1)}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.menu",a(a(a('GxG'),'Gui'),'Menu')),function(j,k){var a=f(j,k,'MenuItem'),i=a.$$prototype;return i.uuid=i.settings=i.application=i.label=i.parent=b,c(a,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="li"}),c(a,'$initialize',function c(g,h,f){var i=c.$$p||b,a=this;return c.$$p=null,f==null&&(f=new Map),a.label=b,d(a,e(a,'initialize',c,!1,!0),'initialize',[g,h,f],null),a},-3),c(a,'$cascade',function(){var a=this,c=b,e=b,d=b;return c=a.$new_component("org.gxg.gui.link.anchor"),c['$title=']("label "+a.uuid.$to_s()),c['$[]=']("options",new Map([["content",(h(e=a.settings['$[]']("label"))?e:"Untitled").$to_s()]])),c['$[]=']("script","\n on(:mouseup) do |event|\n if @parent.enabled?\n @parent.selecct()\n end\n end\n "),a.$page().$build_components(a,[c],new Map([["application",a.application]])),d=a.$page().$find_object_by("label "+a.uuid.$to_s()),h(d)?a.label=d:b}),c(a,'$label',o("label")),c(a,'$set_label_text',function(a){var c,d=this;return a==null&&(a=b),h(d.label)?(d.label.$set_text(a.$to_s()),(c=["label",a.$to_s()],g(d.settings,'[]=',c),c[c.length-1])):b},-1),c(a,'$enabled?',function(){var a=this;return!!h(a.label)&&(!h(a.label['$state_active?']("menu-item-disabled")))}),c(a,'$enable',function(){var a=this;return h(a.label)?a.label.$set_state("menu-item-disabled",!1):b}),c(a,'$disable',function(){var a=this;return h(a.label)?a.label.$set_state("menu-item-disabled",!0):b}),c(a,'$set_data',function(c){var a,d=this;return c==null&&(c=b),(a=["data",c],g(d.settings,'[]=',a),a[a.length-1])},-1),c(a,'$select',function(c){var d=this,a=b;return c==null&&(c=b),a=d.parent.$application(),h(a)?a.$menu_item_select(d.settings):b},-1)}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.menu.item",a(a(a('GxG'),'Gui'),'MenuItem')),function(h,j){var a=f(h,j,'OffCanvasWrapper'),k=a.$$prototype;return k.states=b,c(a,'$_before_create',function f(){var c,h=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="div",i(a.states['$[]']("off-canvas-wrapper"),!0)?b:(c=["off-canvas-wrapper",!0],g(a.states,'[]=',c),c[c.length-1])})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.offcanvas.wrapper",a(a(a('GxG'),'Gui'),'OffCanvasWrapper')),function(k,l){var a=f(k,l,'OffCanvasWrapperInner'),j=a.$$prototype;return j.states=j.options=b,c(a,'$_before_create',function f(){var c,j=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="div",i(a.states['$[]']("off-canvas-wrapper-inner"),!0)||a.states['$[]=']("off-canvas-wrapper-inner",!0),h(a.options.$keys()['$include?']("data-off-canvas-wrapper"))?b:(c=["data-off-canvas-wrapper",b],g(a.options,'[]=',c),c[c.length-1])})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.offcanvas.wrapper.inner",a(a(a('GxG'),'Gui'),'OffCanvasWrapperInner')),function(k,l){var a=f(k,l,'OffCanvasLeft'),j=a.$$prototype;return j.states=j.options=b,c(a,'$_before_create',function f(){var c,j=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="div",i(a.states['$[]']("off-canvas"),!0)||a.states['$[]=']("off-canvas",!0),i(a.states['$[]']("position-left"),!0)||a.states['$[]=']("position-left",!0),h(a.options.$keys()['$include?']("data-off-canvas"))?b:(c=["data-off-canvas",b],g(a.options,'[]=',c),c[c.length-1])})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.offcanvas.left",a(a(a('GxG'),'Gui'),'OffCanvasLeft')),function(k,l){var a=f(k,l,'OffCanvasRight'),j=a.$$prototype;return j.states=j.options=b,c(a,'$_before_create',function f(){var c,j=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="div",i(a.states['$[]']("off-canvas"),!0)||a.states['$[]=']("off-canvas",!0),i(a.states['$[]']("position-right"),!0)||a.states['$[]=']("position-right",!0),h(a.options.$keys()['$include?']("data-off-canvas"))||a.options['$[]=']("data-off-canvas",b),h(a.options.$keys()['$include?']("data-position"))?b:(c=["data-position","right"],g(a.options,'[]=',c),c[c.length-1])})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.offcanvas.right",a(a(a('GxG'),'Gui'),'OffCanvasRight')),function(k,l){var a=f(k,l,'OffCanvasContent'),j=a.$$prototype;return j.states=j.options=b,c(a,'$_before_create',function f(){var c,j=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="div",i(a.states['$[]']("off-canvas-content"),!0)||a.states['$[]=']("off-canvas-content",!0),h(a.options.$keys()['$include?']("data-off-canvas-content"))?b:(c=["data-off-canvas-content",b],g(a.options,'[]=',c),c[c.length-1])})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.offcanvas.content",a(a(a('GxG'),'Gui'),'OffCanvasContent')),function(k,l){var a=f(k,l,'Orbit'),j=a.$$prototype;return j.states=j.options=b,c(a,'$_before_create',function f(){var c,j=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="div",i(a.states['$[]']("orbit"),!0)||a.states['$[]=']("orbit",!0),h(a.options.$keys()['$include?']("role"))||a.options['$[]=']("role","region"),h(a.options.$keys()['$include?']("data-orbit"))?b:(c=["data-orbit",b],g(a.options,'[]=',c),c[c.length-1])})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.orbit",a(a(a('GxG'),'Gui'),'Orbit')),function(h,j){var a=f(h,j,'OrbitContainer'),k=a.$$prototype;return k.states=b,c(a,'$_before_create',function f(){var c,h=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="ul",i(a.states['$[]']("orbit-container"),!0)?b:(c=["orbit-container",!0],g(a.states,'[]=',c),c[c.length-1])})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.orbit.container",a(a(a('GxG'),'Gui'),'OrbitContainer')),function(h,j){var a=f(h,j,'OrbitPrevious'),k=a.$$prototype;return k.states=b,c(a,'$_before_create',function f(){var c,h=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="button",i(a.states['$[]']("orbit-previous"),!0)?b:(c=["orbit-previous",!0],g(a.states,'[]=',c),c[c.length-1])})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.orbit.previous",a(a(a('GxG'),'Gui'),'OrbitPrevious')),function(h,j){var a=f(h,j,'OrbitNext'),k=a.$$prototype;return k.states=b,c(a,'$_before_create',function f(){var c,h=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="button",i(a.states['$[]']("orbit-next"),!0)?b:(c=["orbit-next",!0],g(a.states,'[]=',c),c[c.length-1])})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.orbit.next",a(a(a('GxG'),'Gui'),'OrbitNext')),function(h,j){var a=f(h,j,'OrbitSlide'),k=a.$$prototype;return k.states=b,c(a,'$_before_create',function f(){var c,h=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="li",i(a.states['$[]']("orbit-slide"),!0)?b:(c=["orbit-slide",!0],g(a.states,'[]=',c),c[c.length-1])})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.orbit.slide",a(a(a('GxG'),'Gui'),'OrbitSlide')),function(h,j){var a=f(h,j,'OrbitNavigator'),k=a.$$prototype;return k.states=b,c(a,'$_before_create',function f(){var c,h=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="nav",i(a.states['$[]']("orbit-bullets"),!0)?b:(c=["orbit-bullets",!0],g(a.states,'[]=',c),c[c.length-1])})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.orbit.navigator",a(a(a('GxG'),'Gui'),'OrbitNavigator')),function(i,j){var a=f(i,j,'OrbitBullet'),k=a.$$prototype;return k.options=b,c(a,'$_before_create',function f(){var c,i=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="button",h(a.options.$keys()['$include?']("data-slide"))?b:(c=["data-slide","0"],g(a.options,'[]=',c),c[c.length-1])})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.orbit.bullet",a(a(a('GxG'),'Gui'),'OrbitBullet')),function(i,j){var a=f(i,j,'Pagination'),k=a.$$prototype;return k.options=b,c(a,'$_before_create',function f(){var c,i=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="ul",h(a.options.$keys()['$include?']("role"))?b:(c=["role","navigation"],g(a.options,'[]=',c),c[c.length-1])})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.pagination",a(a(a('GxG'),'Gui'),'Pagination')),function(a,g){var h=f(a,g,'PaginationItem');return c(h,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="li"})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.pagination.item",a(a(a('GxG'),'Gui'),'PaginationItem')),function(k,l){var a=f(k,l,'ProgressBar'),j=a.$$prototype;return j.states=j.options=b,c(a,'$_before_create',function f(){var c,j=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="div",i(a.states['$[]']("progress"),!0)||a.states['$[]=']("progress",!0),h(a.options.$keys()['$include?']("role"))?b:(c=["role","progressbar"],g(a.options,'[]=',c),c[c.length-1])})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.progress.bar",a(a(a('GxG'),'Gui'),'ProgressBar')),function(h,j){var a=f(h,j,'ProgressMeter'),k=a.$$prototype;return k.states=b,c(a,'$_before_create',function f(){var c,h=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="div",i(a.states['$[]']("progress-meter"),!0)?b:(c=["progress-meter",!0],g(a.states,'[]=',c),c[c.length-1])})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.progress.meter",a(a(a('GxG'),'Gui'),'ProgressMeter')),function(j,l){var g=f(j,l,'HorizontalSlider'),a=g.$$prototype;return a.states=a.options=a.data_second=a.data_start=a.data_end=a.uuid=b,c(g,'$_before_create',function c(){var f=c.$$p||b,a=this;return c.$$p=null,d(a,e(a,'_before_create',c,!1,!0),'_before_create',[],null),a.domtype="div",i(a.states['$[]']("slider"),!0)||a.states['$[]=']("slider",!0),h(a.options['$[]']("data-initial-start"))?a.data_start=a.options.$delete("data-initial-start"):a.data_start="50",h(a.options['$[]']("data-initial-end"))?a.data_second=a.options.$delete("data-initial-end"):a.data_second=b,h(a.options['$[]']("data-end"))?a.data_end=a.options.$delete("data-end"):a.data_end="200"}),c(g,'$_after_create',function l(){var p=l.$$p||b,a=this,g=b,c=b,i=b,m=b,f=b,j=b,n=b,o=b;return l.$$p=null,d(a,e(a,'_after_create',l,!1,!0),'_after_create',[],null),h(a.data_second)?(g=a.$add_child(new Map([["component","org.gxg.gui.block"],["title","slider_container"],["settings",new Map],["options",new Map([["states",["small-10 columns"]]])],["script",""],["content",[]]])),c=g.$add_child(new Map([["component","org.gxg.gui.block"],["title","slider"],["settings",new Map],["options",new Map([["data-slider",b],["data-initial-start",a.data_start],["data-initial-end",a.data_second],["data-end",a.data_end],["states",["slider"]]])],["script",""],["content",[]]])),i=c.$add_child(new Map([["component","org.gxg.gui.span"],["title","slider_handle"],["settings",new Map],["options",new Map([["data-slider-handle",b],["role","slider"],["tabindex","1"],["states",["slider-handle"]]])],["script",""],["content",[]]])),c.$add_child(new Map([["component","org.gxg.gui.span"],["title","slider_groove"],["settings",new Map],["options",new Map([["data-slider-fill",b],["states",["slider-fill"]]])],["script",""],["content",[]]])),m=c.$add_child(new Map([["component","org.gxg.gui.span"],["title","slider_handle_two"],["settings",new Map],["options",new Map([["data-slider-handle",b],["role","slider"],["tabindex","1"],["states",["slider-handle"]]])],["script",""],["content",[]]])),f=a.$add_child(new Map([["component","org.gxg.gui.block"],["title",k("value_container",a.uuid.$to_s())],["settings",new Map],["options",new Map([["states",["small-2 columns"]]])],["script",""],["content",[]]])),j=f.$add_child(new Map([["component","org.gxg.gui.picker.number"],["title","slider_value"],["settings",new Map],["options",new Map],["script",""],["content",[]]])),n=a.$add_child(new Map([["component","org.gxg.gui.block"],["title",k("value_container_two",a.uuid.$to_s())],["settings",new Map],["options",new Map([["states",["small-2 columns"]]])],["script",""],["content",[]]])),o=n.$add_child(new Map([["component","org.gxg.gui.picker.number"],["title","slider_value_two"],["settings",new Map],["options",new Map],["script",""],["content",[]]])),i.$set_attribute("aria-controls",j.$uuid().$to_s()),m.$set_attribute("aria-controls",o.$uuid().$to_s())):(g=a.$add_child(new Map([["component","org.gxg.gui.block"],["title","slider_container"],["settings",new Map],["options",new Map([["states",["small-10 columns"]]])],["script",""],["content",[]]])),c=g.$add_child(new Map([["component","org.gxg.gui.block"],["title","slider"],["settings",new Map],["options",new Map([["data-slider",b],["data-initial-start",a.data_start],["data-end",a.data_end],["states",["slider"]]])],["script",""],["content",[]]])),i=c.$add_child(new Map([["component","org.gxg.gui.span"],["title","slider_handle"],["settings",new Map],["options",new Map([["data-slider-handle",b],["role","slider"],["tabindex","1"],["states",["slider-handle"]]])],["script",""],["content",[]]])),c.$add_child(new Map([["component","org.gxg.gui.span"],["title","slider_groove"],["settings",new Map],["options",new Map([["data-slider-fill",b],["states",["slider-fill"]]])],["script",""],["content",[]]])),f=a.$add_child(new Map([["component","org.gxg.gui.block"],["title",k("value_container",a.uuid.$to_s())],["settings",new Map],["options",new Map([["states",["small-2 columns"]]])],["script",""],["content",[]]])),j=f.$add_child(new Map([["component","org.gxg.gui.picker.number"],["title","slider_value"],["settings",new Map],["options",new Map],["script",""],["content",[]]])),i.$set_attribute("aria-controls",j.$uuid().$to_s())),$(document).foundation()}),c(g,'$set_script',function g(c,i){var k=g.$$p||b,a=this,f=b,j=b;return g.$$p=null,c==null&&(c=""),i==null&&(i=b),h(i)?i.$set_script(c):h(a.data_second)?(f=a.$find_descendant("slider_handle"),h(f)||a.$raise("Unable to find slider handle object."),d(a,e(a,'set_script',g,!1,!0),'set_script',[c,f],null),j=a.$find_descendant("slider_handle_two"),h(j)||a.$raise("Unable to find slider handle object."),d(a,e(a,'set_script',g,!1,!0),'set_script',[c,j],null)):(f=a.$find_descendant("slider_handle"),h(f)||a.$raise("Unable to find slider handle object."),d(a,e(a,'set_script',g,!1,!0),'set_script',[c,f],null))},-1)}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.slider.horizontal",a(a(a('GxG'),'Gui'),'HorizontalSlider')),function(j,l){var g=f(j,l,'VerticalSlider'),a=g.$$prototype;return a.states=a.options=a.data_second=a.data_start=a.data_end=a.uuid=b,c(g,'$_before_create',function c(){var f=c.$$p||b,a=this;return c.$$p=null,d(a,e(a,'_before_create',c,!1,!0),'_before_create',[],null),a.domtype="div",i(a.states['$[]']("slider"),!0)||a.states['$[]=']("slider",!0),i(a.states['$[]']("vertical"),!0)||a.states['$[]=']("vertical",!0),h(a.options['$[]']("data-initial-start"))?a.data_start=a.options.$delete("data-initial-start"):a.data_start="50",h(a.options['$[]']("data-initial-end"))?a.data_second=a.options.$delete("data-initial-end"):a.data_second=b,h(a.options['$[]']("data-end"))?a.data_end=a.options.$delete("data-end"):a.data_end="200"}),c(g,'$_after_create',function l(){var p=l.$$p||b,a=this,g=b,c=b,i=b,m=b,f=b,j=b,n=b,o=b;return l.$$p=null,d(a,e(a,'_after_create',l,!1,!0),'_after_create',[],null),h(a.data_second)?(g=a.$add_child(new Map([["component","org.gxg.gui.block"],["title","slider_container"],["settings",new Map],["options",new Map([["states",["small-10 columns"]]])],["script",""],["content",[]]])),c=g.$add_child(new Map([["component","org.gxg.gui.block"],["title","slider"],["settings",new Map],["options",new Map([["data-slider",b],["data-initial-start",a.data_start],["data-initial-end",a.data_second],["data-end",a.data_end],["states",["vertical","slider"]]])],["script",""],["content",[]]])),i=c.$add_child(new Map([["component","org.gxg.gui.span"],["title","slider_handle"],["settings",new Map],["options",new Map([["data-slider-handle",b],["role","slider"],["tabindex","1"],["states",["slider-handle"]]])],["script",""],["content",[]]])),c.$add_child(new Map([["component","org.gxg.gui.span"],["title","slider_groove"],["settings",new Map],["options",new Map([["data-slider-fill",b],["states",["slider-fill"]]])],["script",""],["content",[]]])),m=c.$add_child(new Map([["component","org.gxg.gui.span"],["title","slider_handle_two"],["settings",new Map],["options",new Map([["data-slider-handle",b],["role","slider"],["tabindex","1"],["states",["slider-handle"]]])],["script",""],["content",[]]])),f=a.$add_child(new Map([["component","org.gxg.gui.block"],["title",k("value_container",a.uuid.$to_s())],["settings",new Map],["options",new Map([["states",["small-2 columns"]]])],["script",""],["content",[]]])),j=f.$add_child(new Map([["component","org.gxg.gui.picker.number"],["title","slider_value"],["settings",new Map],["options",new Map],["script",""],["content",[]]])),n=a.$add_child(new Map([["component","org.gxg.gui.block"],["title",k("value_container_two",a.uuid.$to_s())],["settings",new Map],["options",new Map([["states",["small-2 columns"]]])],["script",""],["content",[]]])),o=n.$add_child(new Map([["component","org.gxg.gui.picker.number"],["title","slider_value_two"],["settings",new Map],["options",new Map],["script",""],["content",[]]])),i.$set_attribute("aria-controls",j.$uuid().$to_s()),m.$set_attribute("aria-controls",o.$uuid().$to_s())):(g=a.$add_child(new Map([["component","org.gxg.gui.block"],["title","slider_container"],["settings",new Map],["options",new Map([["states",["small-10 columns"]]])],["script",""],["content",[]]])),c=g.$add_child(new Map([["component","org.gxg.gui.block"],["title","slider"],["settings",new Map],["options",new Map([["data-slider",b],["data-initial-start",a.data_start],["data-end",a.data_end],["states",["vertical","slider"]]])],["script",""],["content",[]]])),i=c.$add_child(new Map([["component","org.gxg.gui.span"],["title","slider_handle"],["settings",new Map],["options",new Map([["data-slider-handle",b],["role","slider"],["tabindex","1"],["states",["slider-handle"]]])],["script",""],["content",[]]])),c.$add_child(new Map([["component","org.gxg.gui.span"],["title","slider_groove"],["settings",new Map],["options",new Map([["data-slider-fill",b],["states",["slider-fill"]]])],["script",""],["content",[]]])),f=a.$add_child(new Map([["component","org.gxg.gui.block"],["title",k("value_container",a.uuid.$to_s())],["settings",new Map],["options",new Map([["states",["small-2 columns"]]])],["script",""],["content",[]]])),j=f.$add_child(new Map([["component","org.gxg.gui.picker.number"],["title","slider_value"],["settings",new Map],["options",new Map],["script",""],["content",[]]])),i.$set_attribute("aria-controls",j.$uuid().$to_s())),$(document).foundation()}),c(g,'$set_script',function g(c,i){var k=g.$$p||b,a=this,f=b,j=b;return g.$$p=null,c==null&&(c=""),i==null&&(i=b),h(i)?i.$set_script(c):h(a.data_second)?(f=a.$find_descendant("slider_handle"),h(f)||a.$raise("Unable to find slider handle object."),d(a,e(a,'set_script',g,!1,!0),'set_script',[c,f],null),j=a.$find_descendant("slider_handle_two"),h(j)||a.$raise("Unable to find slider handle object."),d(a,e(a,'set_script',g,!1,!0),'set_script',[c,j],null)):(f=a.$find_descendant("slider_handle"),h(f)||a.$raise("Unable to find slider handle object."),d(a,e(a,'set_script',g,!1,!0),'set_script',[c,f],null))},-1)}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.slider.vertical",a(a(a('GxG'),'Gui'),'VerticalSlider')),function(i,j){var a=f(i,j,'StickyContainer'),k=a.$$prototype;return k.options=b,c(a,'$_before_create',function f(){var c,i=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="div",h(a.options.$keys()['$include?']("data-sticky-container"))?b:(c=["data-sticky-container",b],g(a.options,'[]=',c),c[c.length-1])})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.sticky.container",a(a(a('GxG'),'Gui'),'StickyContainer')),function(k,l){var a=f(k,l,'Sticky'),j=a.$$prototype;return j.states=j.options=b,c(a,'$_before_create',function f(){var c,j=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="div",i(a.states['$[]']("sticky"),!0)||a.states['$[]=']("sticky",!0),h(a.options.$keys()['$include?']("data-sticky"))?b:(c=["data-sticky",b],g(a.options,'[]=',c),c[c.length-1])})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.sticky",a(a(a('GxG'),'Gui'),'Sticky')),function(j,l){var a=f(j,l,'Switch'),h=a.$$prototype;return h.states=h.uuid=b,c(a,'$_before_create',function f(){var c,h=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="div",i(a.states['$[]']("switch"),!0)?b:(c=["switch",!0],g(a.states,'[]=',c),c[c.length-1])}),c(a,'$_after_create',function(){var a=this,c=b,d=b,e=b;return c=a.$add_child(new Map([["component","org.gxg.gui.button.checkbox"],["title",k("switch_input",a.uuid.$to_s())],["settings",new Map],["options",new Map([["states",["switch-input"]]])],["script",""],["content",[]]])),d=a.$add_child(new Map([["component","org.gxg.gui.label"],["title",k("switch_paddle",a.uuid.$to_s())],["settings",new Map],["options",new Map([["for",c.$uuid().$to_s()],["states",["switch-paddle"]]])],["script",""],["content",[]]])),e=d.$add_child(new Map([["component","org.gxg.gui.span"],["title",k("switch_span",a.uuid.$to_s())],["settings",new Map],["options",new Map([["states",["show-for-sr"]]])],["script",""],["content",[]]])),$(document).foundation()})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.switch",a(a(a('GxG'),'Gui'),'Switch')),function(h,j){var a=f(h,j,'TabContent'),k=a.$$prototype;return k.states=b,c(a,'$_before_create',function f(){var c,h=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="div",i(a.states['$[]']("tabs-panel"),!0)?b:(c=["tabs-panel",!0],g(a.states,'[]=',c),c[c.length-1])})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.tab.content",a(a(a('GxG'),'Gui'),'TabContent')),function(h,j){var a=f(h,j,'TabSet'),g=a.$$prototype;return g.uuid=g.tabs=g.tab_content=b,c(a,'$_before_create',function a(){var f=a.$$p||b,c=this;return a.$$p=null,d(c,e(c,'_before_create',a,!1,!0),'_before_create',[],null),c.domtype="div"}),c(a,'$_after_create',function(){var a=this;return a.tabs=a.$add_child(new Map([["component","org.gxg.gui.list"],["title",k("tabs",a.uuid.$to_s())],["settings",new Map],["options",new Map([["data-tabs",b],["states",["tabs"]]])],["script",""],["content",[]]])),a.tab_content=a.$add_child(new Map([["component","org.gxg.gui.block"],["title",k("tab_content",a.uuid.$to_s())],["settings",new Map],["options",new Map([["data-tabs-content",a.tabs.$uuid().$to_s()],["states",["tabs-content"]]])],["script",""],["content",[]]])),$(document).foundation()}),c(a,'$add_child',function(c,f){var d=this,a=b,g=b,e=b;return c==null&&(c=new Map),f==null&&(f=new Map),a=b,i(c['$[]']("component").$to_s().$downcase().$to_sym(),"tab_content")?(a=d.tab_content.$add_child(c),g=d.tabs.$add_child(new Map([["component","org.gxg.gui.list.item"],["title",k("tab",a.$uuid().$to_s())],["settings",new Map],["options",new Map([["states",["tabs-title"]]])],["script",""],["content",[]]])),e=g.$add_child(new Map([["component","org.gxg.gui.link.anchor"],["title",k("link",a.$uuid().$to_s())],["settings",new Map],["options",new Map([["href",k("#",a.$uuid().$to_s())],["states",[]]])],["script",""],["content",[]]])),e['$value='](a.$title().$to_s())):d.$raise("Unacceptable Component Type"),a},-1)}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.tab.set",a(a(a('GxG'),'Gui'),'TabSet')),function(h,j){var a=f(h,j,'Thumbnail'),k=a.$$prototype;return k.states=b,c(a,'$_before_create',function f(){var c,h=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="img",i(a.states['$[]']("thumbnail"),!0)?b:(c=["thumbnail",!0],g(a.states,'[]=',c),c[c.length-1])})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.thumbnail",a(a(a('GxG'),'Gui'),'Thumbnail')),function(h,j){var a=f(h,j,'Titlebar'),k=a.$$prototype;return k.states=b,c(a,'$_before_create',function f(){var c,h=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="div",i(a.states['$[]']("title-bar"),!0)?b:(c=["title-bar",!0],g(a.states,'[]=',c),c[c.length-1])})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.titlebar",a(a(a('GxG'),'Gui'),'Titlebar')),function(h,j){var a=f(h,j,'TitlebarLeft'),k=a.$$prototype;return k.states=b,c(a,'$_before_create',function f(){var c,h=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="div",i(a.states['$[]']("title-bar-left"),!0)?b:(c=["title-bar-left",!0],g(a.states,'[]=',c),c[c.length-1])})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.titlebar.left",a(a(a('GxG'),'Gui'),'TitlebarLeft')),function(h,j){var a=f(h,j,'TitlebarRight'),k=a.$$prototype;return k.states=b,c(a,'$_before_create',function f(){var c,h=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="div",i(a.states['$[]']("title-bar-right"),!0)?b:(c=["title-bar-right",!0],g(a.states,'[]=',c),c[c.length-1])})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.titlebar.right",a(a(a('GxG'),'Gui'),'TitlebarRight')),function(h,j){var a=f(h,j,'Topbar'),k=a.$$prototype;return k.states=b,c(a,'$_before_create',function f(){var c,h=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="div",i(a.states['$[]']("top-bar"),!0)?b:(c=["top-bar",!0],g(a.states,'[]=',c),c[c.length-1])})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.topbar",a(a(a('GxG'),'Gui'),'Topbar')),function(h,j){var a=f(h,j,'TopbarLeft'),k=a.$$prototype;return k.states=b,c(a,'$_before_create',function f(){var c,h=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="div",i(a.states['$[]']("top-bar-left"),!0)?b:(c=["top-bar-left",!0],g(a.states,'[]=',c),c[c.length-1])})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.topbar.left",a(a(a('GxG'),'Gui'),'TopbarLeft')),function(h,j){var a=f(h,j,'TopbarRight'),k=a.$$prototype;return k.states=b,c(a,'$_before_create',function f(){var c,h=f.$$p||b,a=this;return f.$$p=null,d(a,e(a,'_before_create',f,!1,!0),'_before_create',[],null),a.domtype="div",i(a.states['$[]']("top-bar-right"),!0)?b:(c=["top-bar-right",!0],g(a.states,'[]=',c),c[c.length-1])})}(j[0],a(a(a(a('GxG'),'Gui'),'Vdom'),'BaseElement')),a(a('GxG'),'Gui').$register_component_class("org.gxg.gui.topbar.right",a(a(a('GxG'),'Gui'),'TopbarRight'))}(j[0],j)}(l[0],l),function(e,g){var d=f(e,g,'Object');return d.$private(),c(d,'$new_component',function(d){var e=this,c=b;return d==null&&(d=b),c=b,h(d)?h(a(a('GxG'),'Gui')['$component_registered?'](d.$to_s().$to_sym()))?(c=a(a(a('GxG'),'Database'),'DetachedHash').$new(),c['$[]=']("component",d.$to_s()),c['$[]=']("settings",new Map),c['$[]=']("options",new Map),c['$[]=']("script",""),c['$[]=']("content",[])):e.$log_error("Component "+d.$inspect()+" not registered."):e.$log_error("You MUST specify a registered component moniker."),c},-1)}(l[0],null)},Opal.modules["web/gxg_layout"]=function(d){var l=d.module,h=d.send,c=d.truthy,i=d.rb_divide,f=d.rb_gt,g=d.rb_lt,e=d.rb_times,j=d.defs,m=d.thrower,n=d.def,k=[],b=d.nil,a=d.$$$;return d.add_stubs('to_i,max,each,each_pair,[],find_object,[]=,element,/,to_f,to_sym,to_s,values,>,<,*,include?,layout_refresh,delete'),function(d,k){var o=l(d,'GxG'),p=[o].concat(k);return function(k){var d=l(k,'Gui');return j(d,'$layout_refresh',function(){var r=this,n=b,q=b,o=b,p=b,m=b,d=b,j=b,k=b,l=b;return n=window.innerWidth.$to_i(),q=document.body,o=document.documentElement,p=0,p=Math.max(q.scrollHeight,q.offsetHeight,o.clientHeight,o.scrollHeight,o.offsetHeight),m=[window.innerHeight.$to_i(),p.$to_i()].$max(),d=0,j=0,k=1,l=1,h(["top-left","top","top-right","right","bottom-right","bottom","bottom-left","left"],'each',[],function e(d){var f=e.$$s==null?this:e.$$s;return d==null&&(d=b),h(a(a('GxG'),'LAYOUT')['$[]'](d),'each_pair',[],function o(k,l){var j,p=o.$$s==null?this:o.$$s,g=b,e=b,f=b;return k==null&&(k=b),l==null&&(l=b),g=p.$find_object(k),c(g)?(e=new Map([["top",0],["left",0],["right",0],["bottom",0]]),e['$[]=']("top",g.$element().getBoundingClientRect().top.$to_i()),e['$[]=']("left",g.$element().getBoundingClientRect().left.$to_i()),e['$[]=']("right",g.$element().getBoundingClientRect().right.$to_i()),e['$[]=']("bottom",g.$element().getBoundingClientRect().bottom.$to_i()),f=new Map([["top",0],["left",0],["right",0],["bottom",0]]),f['$[]=']("top",i(e['$[]']("top").$to_f(),m.$to_f())),f['$[]=']("left",i(e['$[]']("left").$to_f(),n.$to_f())),f['$[]=']("right",i(e['$[]']("right").$to_f(),n.$to_f())),f['$[]=']("bottom",i(e['$[]']("bottom").$to_f(),m.$to_f())),(j=[k.$to_s().$to_sym(),f],h(a(a('GxG'),'LAYOUT')['$[]'](d.$to_s().$to_sym()),'[]=',j),j[j.length-1])):b},{$$s:f})},{$$s:r}),h(["top-left","top","top-right","right","bottom-right","bottom","bottom-left","left"],'each',[],function(e){return e==null&&(e=b),h(a(a('GxG'),'LAYOUT')['$[]'](e).$values(),'each',[],function(a){switch(a==null&&(a=b),e.valueOf()){case"top":return c(f(a['$[]']("bottom"),d))?d=a['$[]']("bottom"):b;break;case"left":return c(f(a['$[]']("right"),j))?j=a['$[]']("right"):b;break;case"right":return c(g(a['$[]']("left"),k))?k=a['$[]']("left"):b;break;case"bottom":return c(g(a['$[]']("top"),l))?l=a['$[]']("top"):b;break;case"top-left":return c(f(a['$[]']("bottom"),d))&&(d=a['$[]']("bottom")),c(f(a['$[]']("right"),j))?j=a['$[]']("right"):b;break;case"top-right":return c(f(a['$[]']("bottom"),d))&&(d=a['$[]']("bottom")),c(g(a['$[]']("left"),k))?k=a['$[]']("left"):b;break;case"bottom-right":return c(g(a['$[]']("top"),l))&&(l=a['$[]']("top")),c(g(a['$[]']("left"),k))?k=a['$[]']("left"):b;break;case"bottom-left":return c(g(a['$[]']("top"),l))&&(l=a['$[]']("top")),c(f(a['$[]']("right"),j))?j=a['$[]']("right"):b;break;default:return b}})}),a(a('GxG'),'LAYOUT_LIMITS')['$[]=']("page_width",n.$to_i()),a(a('GxG'),'LAYOUT_LIMITS')['$[]=']("page_height",m.$to_i()),a(a('GxG'),'LAYOUT_LIMITS')['$[]=']("top",e(d,m.$to_f()).$to_i()),a(a('GxG'),'LAYOUT_LIMITS')['$[]=']("top_percent",e(d,100)),a(a('GxG'),'LAYOUT_LIMITS')['$[]=']("left",e(j,n.$to_f()).$to_i()),a(a('GxG'),'LAYOUT_LIMITS')['$[]=']("left_percent",e(j,100)),a(a('GxG'),'LAYOUT_LIMITS')['$[]=']("right",e(k,n.$to_f()).$to_i()),a(a('GxG'),'LAYOUT_LIMITS')['$[]=']("right_percent",e(k,100)),a(a('GxG'),'LAYOUT_LIMITS')['$[]=']("bottom",e(l,m.$to_f()).$to_i()),a(a('GxG'),'LAYOUT_LIMITS')['$[]=']("bottom_percent",e(l,100)),!0}),j(d,'$layout_add_item',function(e,d,f){return!!(e==null&&(e=b),d==null&&(d=b),f==null&&(f=!0),c(["top-left","top","top-right","right","bottom-right","bottom","bottom-left","left"]['$include?'](d.$to_s().$to_sym())))&&(a(a('GxG'),'LAYOUT')['$[]'](d.$to_s().$to_sym())['$[]='](e.$to_s().$to_sym(),new Map([["top",0],["left",0],["right",0],["bottom",0]])),c(f)&&a(a('GxG'),'Gui').$layout_refresh(),!0)},-1),j(d,'$layout_remove_item',function(d){return d==null&&(d=b),function(){try{var e=m('break');return h(["top-left","top","top-right","right","bottom-right","bottom","bottom-left","left"],'each',[],function g(f){if(f==null&&(f=b),c(a(a('GxG'),'LAYOUT')['$[]'](f.$to_s().$to_sym())['$[]'](d.$to_s().$to_sym())))a(a('GxG'),'LAYOUT')['$[]'](f.$to_s().$to_sym()).$delete(d.$to_s().$to_sym()),e.$throw(b,g.$$is_lambda);else return b})}catch(a){if(a===e)return a.$v;throw a}finally{e.is_orphan=!0}}(),a(a('GxG'),'Gui').$layout_refresh(),!0},-1),n(d,'$layout_content_area',function(){return a(a('GxG'),'LAYOUT_LIMITS')})}(p[0])}(k[0],k)},Opal.modules["web/gxg_windows"]=function(j){var v=j.module,p=j.klass,d=j.def,m=j.alias,b=j.truthy,x=j.assign_ivar,l=j.return_ivar,i=j.rb_times,f=j.rb_divide,e=j.rb_minus,h=j.rb_plus,g=j.send,n=j.rb_ge,q=j.rb_le,r=j.rb_lt,o=j.rb_gt,k=j.eqeq,s=j.send2,t=j.find_super,u=j.thrower,w=[],a=j.nil,c=j.$$$;return j.add_stubs('set_application,respond_to?,unlink_viewport,register_component_class,layout_content_area,[],*,/,to_f,height,width,[]=,gxg_merge_style,parent,-,size,+,each_pair,to_sym,to_s,include?,to_i,gsub,update_appearance,is_any?,delete,element,is_a?,>=,fit_within_boundaries,commit_settings,set_top,set_left,<=,set_right,set_bottom,set_width,set_height,<,>,set_text,set_window_title,set_frame,layout_refresh,==,add_child,original_add_child,children,valid_uuid?,values,original_children,shift,uuid,title,each,<<,new,title=,theme_widget,build_components,page,find_object_by,post_event,set_data,set_responder,dialog_close,call,set_attribute,merge_style,set_script,menu_reference,search_content,set_menu,log_warn,inspect,window_register,before_open,open,show,after_open,get_window_registration,before_close,close,hide,after_close,application,unlink_window,window_unregister,destroy,set_title,get_window,link_window,every_child,dialog_open,to_proc,min,collect,max,window_is_in_back?,window_back_layer,window_top_layer,window_next_layer,step,get_window_switcher,next_minimize_slot,window_send_to_back,animate,top,left,right,bottom,find_child,unminimize_effect,clear_special_state,unmaximize_effect,rolldown_effect,window_restoreable?,window_restore,set_special_state,minimize_effect,maximize_effect,window_bring_to_front,rollup_effect,keys,to_h,sort_by,each_with_index,window_repack_layers'),function(y,z){var A=v(y,'GxG'),w=[A].concat(z);return function(y,z){var A=v(y,'Gui'),w=[A].concat(z);return function(f,g){var c=p(f,g,'ApplicationViewport'),e=c.$$prototype;return e.application=e.uuid=a,d(c,'$set_application',function(b){var c=this;return b==null&&(b=a),c.application=b},-1),m(c,"application=","set_application"),d(c,'$detach',function(){var c=this;return b(c.application)&&b(c.application['$respond_to?']("unlink_viewport"))?(c.application.$unlink_viewport(c.uuid),c.application=a):a})}(w[0],c(c(c(c('GxG'),'Gui'),'Vdom'),'BaseElement')),c(c('GxG'),'Gui').$register_component_class("org.gxg.gui.application.viewport",c(c(c('GxG'),'Gui'),'ApplicationViewport')),function(B,y,z){var u=p(B,y,'Window'),A=[u].concat(z),w=j.$r(A),v=u.$$prototype;return v.top=v.left=v.title_object=v.window_title=v.content=v.title_margin=v.menu_margin=v.resize_margin=v.tracking=v.menu_bar=v.menu_area=v.bottom=v.right=v.modal=v.menu_reference=v.uuid=v.closebox=v.minimizebox=v.maximizebox=v.scrolling=v.resize=v.application=a,d(u,'$before_close',function(b){return b==null&&(b=a),a},-1),d(u,'$close',function(b){return b==null&&(b=a),a},-1),d(u,'$after_close',function(b){return b==null&&(b=a),a},-1),d(u,'$before_open',function(b){return b==null&&(b=a),a},-1),d(u,'$open',function(b){return b==null&&(b=a),a},-1),d(u,'$after_open',function(b){return b==null&&(b=a),a},-1),d(u,'$set_application',x("application")),m(u,"application=","set_application"),d(u,'$application',l("application")),d(u,'$commit_settings',function(){var d=this,k=a,m=a,n=a,o=a,l=a,j=a;return k=c(w('GxG'),'DISPLAY_DETAILS')['$[]']("object").$layout_content_area(),m=i(f(d.top.$to_f(),k['$[]']("page_height").$to_f()),100),n=i(f(d.left.$to_f(),k['$[]']("page_width").$to_f()),100),o=i(f(d.$height().$to_f(),k['$[]']("page_height").$to_f()),100),l=i(f(d.$width().$to_f(),k['$[]']("page_width").$to_f()),100),j=new Map,j['$[]=']("position","absolute"),j['$[]=']("display","block"),j['$[]=']("tabindex",-1),j['$[]=']("top",""+m+"%"),j['$[]=']("left",""+n+"%"),j['$[]=']("height",""+o+"%"),j['$[]=']("width",""+l+"%"),d.$gxg_merge_style(j),b(d.title_object)&&d.title_object.$parent().$gxg_merge_style(new Map([["padding","0px 0px 0px "+e(e(f(d.$width(),2),i(f(d.window_title.$size(),2),8)),60)+"px"]])),b(d.content)&&(d.content.$gxg_merge_style(new Map([["height",""+e(d.$height(),h(h(d.title_margin,d.menu_margin),d.resize_margin))+"px"],["width",""+e(d.$width(),i(d.resize_margin,2))+"px"]])),g(d.tracking,'each_pair',[],function j(k,d){var l=j.$$s==null?this:j.$$s,c=a;return k==null&&(k=a),d==null&&(d=a),c=new Map,g(d['$[]']("details"),'each_pair',[],function m(l,k){var d,j=m.$$s==null?this:m.$$s;switch(j.resize_margin==null&&(j.resize_margin=a),j.title_margin==null&&(j.title_margin=a),j.menu_margin==null&&(j.menu_margin=a),l==null&&(l=a),k==null&&(k=a),l.$to_s().$to_sym().valueOf()){case"width":return b(k.$to_s()['$include?']("%"))?(d=["width",h(i(f(k.$to_s().$gsub("%","").$to_f(),100),e(j.$width(),i(j.resize_margin,2)).$to_f()).$to_i().$to_s(),"px")],g(c,'[]=',d),d[d.length-1]):(d=["width",""+k.$to_s()+"px"],g(c,'[]=',d),d[d.length-1]);break;case"height":return b(k.$to_s()['$include?']("%"))?(d=["height",h(i(f(k.$to_s().$gsub("%","").$to_f(),100),e(j.$height(),h(h(j.title_margin,j.menu_margin),j.resize_margin)).$to_f()).$to_i().$to_s(),"px")],g(c,'[]=',d),d[d.length-1]):(d=["height",""+k.$to_s()+"px"],g(c,'[]=',d),d[d.length-1]);break;default:return a}},{$$s:l}),d['$[]']("object").$gxg_merge_style(c)},{$$s:d})),b(d.menu_bar)&&(d.menu_area.$gxg_merge_style(new Map([["width",""+e(d.$width(),i(d.resize_margin,2))+"px"]])),b(d.menu_bar['$respond_to?']("update_appearance")))?d.menu_bar.$update_appearance():a}),d(u,'$track_deltas',function(d,e,f){var g=this;return!!(d==null&&(d=a),e==null&&(e=a),f==null&&(f=new Map),b(d)&&b(e)&&b(f['$is_any?'](c('Hash'),c(c(c('GxG'),'Database'),'DetachedHash'))))&&(g.tracking['$[]='](d,new Map([["object",e],["details",f]])),!0)},-1),d(u,'$untrack_deltas',function(c){var d=this;return!!(c==null&&(c=a),b(c))&&(d.tracking.$delete(c),!0)},-1),d(u,'$content',l("content")),d(u,'$content_width',function(){var a=this;return b(a.content)?(a.content.$element().getBoundingClientRect().right-a.content.$element().getBoundingClientRect().left).$to_i():0}),d(u,'$content_height',function(){var a=this;return b(a.content)?(a.content.$element().getBoundingClientRect().bottom-a.content.$element().getBoundingClientRect().top).$to_i():0}),d(u,'$set_top',function(d){var f=this;return d==null&&(d=a),b(d['$is_a?'](c('Numeric')))&&b(n(e(f.bottom,d),100))?b(n(d,c(w('GxG'),'DISPLAY_DETAILS')['$[]']("object").$layout_content_area()['$[]']("top")))?(f.top=d,f.$fit_within_boundaries(),f.$commit_settings()):a:a},-1),m(u,"top=","set_top"),d(u,'$top',l("top")),d(u,'$set_left',function(d){var f=this;return d==null&&(d=a),b(d['$is_a?'](c('Numeric')))&&b(n(e(f.right,d),200))?b(n(d,c(w('GxG'),'DISPLAY_DETAILS')['$[]']("object").$layout_content_area()['$[]']("left")))?(f.left=d,f.$fit_within_boundaries(),f.$commit_settings()):a:a},-1),m(u,"left=","set_left"),d(u,'$left',l("left")),d(u,'$set_right',function(d){var f=this;return d==null&&(d=a),b(d['$is_a?'](c('Numeric')))&&b(n(e(d,f.left),200))?b(q(d,c(w('GxG'),'DISPLAY_DETAILS')['$[]']("object").$layout_content_area()['$[]']("right")))?(f.right=d,f.$fit_within_boundaries(),f.$commit_settings()):a:a},-1),m(u,"right=","set_right"),d(u,'$right',l("right")),d(u,'$set_bottom',function(d){var f=this;return d==null&&(d=a),b(d['$is_a?'](c('Numeric')))&&b(n(e(d,f.top),100))?b(q(d,c(w('GxG'),'DISPLAY_DETAILS')['$[]']("object").$layout_content_area()['$[]']("bottom")))?(f.bottom=d,f.$fit_within_boundaries(),f.$commit_settings()):a:a},-1),m(u,"bottom=","set_bottom"),d(u,'$bottom',l("bottom")),d(u,'$set_width',function(d){var e=this;return d==null&&(d=a),b(d['$is_a?'](c('Numeric')))&&b(n(d,200))?b(q(h(e.left,d),c(w('GxG'),'DISPLAY_DETAILS')['$[]']("object").$layout_content_area()['$[]']("right")))?(e.right=h(e.left,d),e.$fit_within_boundaries(),e.$commit_settings()):a:a},-1),m(u,"width=","set_width"),d(u,'$width',function(){var a=this;return e(a.right,a.left)}),d(u,'$set_height',function(d){var e=this;return d==null&&(d=a),b(d['$is_a?'](c('Numeric')))&&b(n(d,100))?b(q(h(e.top,d),c(w('GxG'),'DISPLAY_DETAILS')['$[]']("object").$layout_content_area()['$[]']("bottom")))?(e.bottom=h(e.top,d),e.$fit_within_boundaries(),e.$commit_settings()):a:a},-1),m(u,"height=","set_height"),d(u,'$height',function(){var a=this;return e(a.bottom,a.top)}),d(u,'$set_position',function(f,g){var d=this,i=a,k=a,e=a;return f==null&&(f=a),g==null&&(g=a),i=d.$width(),k=d.$height(),e=c(w('GxG'),'DISPLAY_DETAILS')['$[]']("object").$layout_content_area(),b(j.Range.$new(e['$[]']("top"),e['$[]']("bottom"),!1)['$include?'](g.$to_i()))&&b(j.Range.$new(e['$[]']("top"),e['$[]']("bottom"),!1)['$include?'](h(g.$to_i(),k)))&&(d.top=g.$to_i()),b(j.Range.$new(e['$[]']("left"),e['$[]']("right"),!1)['$include?'](f.$to_i()))&&b(j.Range.$new(e['$[]']("left"),e['$[]']("right"),!1)['$include?'](h(f.$to_i(),i)))&&(d.left=f.$to_i()),d.bottom=h(d.top,k),d.right=h(d.left,i),d.$fit_within_boundaries(),d.$commit_settings()},-1),d(u,'$set_frame',function(f){var d=this,e=a;return f==null&&(f=a),b(f['$is_a?'](c('Hash')))?(d.top=b(e=f['$[]']("top"))?e:d.top,d.left=b(e=f['$[]']("left"))?e:d.left,d.right=b(e=f['$[]']("right"))?e:d.right,d.bottom=b(e=f['$[]']("bottom"))?e:d.bottom,d.$fit_within_boundaries(),d.$commit_settings()):a},-1),d(u,'$position',function(){var a=this;return new Map([["x",a.left],["y",a.top]])}),d(u,'$fit_within_boundaries',function(){var d=this,f=a,g=a,e=a;return f=d.$width(),g=d.$height(),e=c(w('GxG'),'DISPLAY_DETAILS')['$[]']("object").$layout_content_area(),b(r(d.top,e['$[]']("top")))&&(d.top=e['$[]']("top")),b(r(d.left,e['$[]']("left")))&&(d.left=e['$[]']("left")),d.right=h(d.left,f),d.bottom=h(d.top,g),b(o(d.bottom,e['$[]']("bottom")))&&(d.bottom=e['$[]']("bottom")),b(o(d.right,e['$[]']("right")))?d.right=e['$[]']("right"):a}),d(u,'$set_window_title',function(g){var d=this;return g==null&&(g=a),b(d.title_object)&&b(g['$is_a?'](c('String')))?(d.window_title=g,d.title_object.$set_text(d.window_title),d.title_object.$parent().$gxg_merge_style(new Map([["padding","0px 0px 0px "+e(e(f(d.$width(),2),i(f(d.window_title.$size(),2),8)),60)+"px"]]))):a},-1),m(u,"window_title=","set_window_title"),d(u,'$window_title',function(){var c=this;return b(c.title_object)?c.window_title:a}),d(u,'$special_state',l("special_state")),d(u,'$set_special_state',function(e){var d=this,f=a;return e==null&&(e=a),b(e['$is_a?'](c('Hash')))?(d.special_state=e,d.top=b(f=e['$[]']("top"))?f:d.top,d.left=b(f=e['$[]']("left"))?f:d.left,d.right=b(f=e['$[]']("right"))?f:d.right,d.bottom=b(f=e['$[]']("bottom"))?f:d.bottom,d.$fit_within_boundaries(),d.$commit_settings()):a},-1),d(u,'$clear_special_state',function(d){var e=this;return d==null&&(d=a),e.special_state=a,b(d['$is_a?'](c('Hash')))?e.$set_frame(d):a},-1),d(u,'$initialize',function n(o,g,m){var p=n.$$p||a,d=this,l=a,j=a;return n.$$p=null,m==null&&(m=new Map),c(c('GxG'),'DISPLAY_DETAILS')['$[]']("object").$layout_refresh(),l=c(w('GxG'),'DISPLAY_DETAILS')['$[]']("object").$layout_content_area(),d.special_state=a,d.content=a,b(g['$[]']("top")['$is_a?'](c('String')))||b(g['$[]']("top").$to_s()['$include?']("."))?b(g['$[]']("top")['$is_a?'](c('String')))?d.top=i(l['$[]']("page_height"),f(g['$[]']("top").$gsub("%","").$to_f(),100)):d.top=i(l['$[]']("page_height"),f(g['$[]']("top"),100)):d.top=b(j=g['$[]']("top"))?j:e(f(window.innerHeight.$to_i(),2),50),b(g['$[]']("left")['$is_a?'](c('String')))||b(g['$[]']("left").$to_s()['$include?']("."))?b(g['$[]']("left")['$is_a?'](c('String')))?d.left=i(l['$[]']("page_width"),f(g['$[]']("left").$gsub("%","").$to_f(),100)):d.left=i(l['$[]']("page_width"),f(g['$[]']("left"),100)):d.left=b(j=g['$[]']("left"))?j:e(f(window.innerWidth.$to_i(),2),100),b(g['$[]']("right")['$is_a?'](c('String')))||b(g['$[]']("right").$to_s()['$include?']("."))?b(g['$[]']("right")['$is_a?'](c('String')))?d.right=i(l['$[]']("page_width"),f(g['$[]']("right").$gsub("%","").$to_f(),100)):d.right=i(l['$[]']("page_width"),f(g['$[]']("right"),100)):d.right=b(j=g['$[]']("right"))?j:h(f(window.innerWidth.$to_i(),2),100),b(g['$[]']("bottom")['$is_a?'](c('String')))||b(g['$[]']("bottom").$to_s()['$include?']("."))?b(g['$[]']("bottom")['$is_a?'](c('String')))?d.bottom=i(l['$[]']("page_height"),f(g['$[]']("bottom").$gsub("%","").$to_f(),100)):d.bottom=i(l['$[]']("page_height"),f(g['$[]']("bottom"),100)):d.bottom=b(j=g['$[]']("bottom"))?j:h(f(window.innerHeight.$to_i(),2),50),d.window_title=b(j=g['$[]']("window_title"))?j:"Untitled",d.title_object=a,b(g['$[]']("width")['$is_a?'](c('String')))||b(g['$[]']("width").$to_s()['$include?']("."))?b(g['$[]']("width")['$is_a?'](c('String')))?d.right=h(d.left,i(e(l['$[]']("right"),l['$[]']("left")),f(g['$[]']("width").$gsub("%","").$to_f(),100))):d.right=h(d.left,i(e(l['$[]']("right"),l['$[]']("left")),f(g['$[]']("width"),100))):b(g['$[]']("width")['$is_a?'](c('Numeric')))&&(d.right=h(d.left,g.$delete("width"))),b(g['$[]']("height")['$is_a?'](c('String')))||b(g['$[]']("height").$to_s()['$include?']("."))?b(g['$[]']("height")['$is_a?'](c('String')))?d.bottom=h(d.top,i(e(l['$[]']("bottom"),l['$[]']("top")),f(g['$[]']("height").$gsub("%","").$to_f(),100))):d.bottom=h(d.top,i(e(l['$[]']("bottom"),l['$[]']("top")),f(g['$[]']("height"),100))):b(g['$[]']("height")['$is_a?'](c('Numeric')))&&(d.bottom=h(d.top,g['$[]']("height"))),d.$fit_within_boundaries(),d.modal=b(j=g['$[]']("modal"))&&j,d.scrolling=g['$[]']("scroll"),d.title_margin=24,k(d.modal,!0)?(d.resize=!1,d.resize_margin=0):(d.resize=b(j=g['$[]']("resize"))?j:!0,d.resize_margin=2,d.title_margin=26),k(d.modal,!0)?(d.closebox=!1,d.minimizebox=!1,d.maximizebox=!1):(k(g['$[]']("close"),!1)?d.closebox=!1:d.closebox=(b(j=g['$[]']("close"))?j:"enabled").$to_s().$to_sym(),k(g['$[]']("minimize"),!1)?d.minimizebox=!1:d.minimizebox=(b(j=g['$[]']("minimize"))?j:"enabled").$to_s().$to_sym(),k(g['$[]']("maximize"),!1)?d.maximizebox=!1:d.maximizebox=(b(j=g['$[]']("maximize"))?j:"enabled").$to_s().$to_sym()),d.tracking=new Map,d.menu_reference=g['$[]']("menu"),d.menu_area=a,d.menu_bar=a,b(d.menu_reference)?d.menu_margin=16:d.menu_margin=0,s(d,t(d,'initialize',n,!1,!0),'initialize',[o,g,m],null),d},-3),d(u,'$menu_reference',l("menu_reference")),d(u,'$menubar',l("menu_area")),m(u,"original_add_child","add_child"),d(u,'$add_child',function(c){var d=this;return c==null&&(c=a),b(d.content)?d.content.$add_child(c):d.$original_add_child(c)},-1),m(u,"original_children","children"),d(u,'$children',function(){var a=this;return b(a.content)?a.content.$children():new Map}),d(u,'$find_child',function(f,h){var j=this,e=a,i=a,d=a,c=a;for(f==null&&(f=a),h==null&&(h=!1),e=a,b(w('GxG')['$valid_uuid?'](f))?i=!0:i=!1,k(h,!0)?d=j.$original_children().$values():d=j.$children().$values();b(o(d.$size(),0));)if(c=d.$shift(),b(c)){if(b(i)){if(k(c.$uuid(),f)){e=c;break}}else if(k(c.$title(),f)){e=c;break}b(e)||g(c.$children().$values(),'each',[],function(b){return b==null&&(b=a),d['$<<'](b)})}return e},-1),d(u,'$cascade',function(){var d=this,J=a,z=a,v=a,u=a,s=a,y=a,o=a,q=a,t=a,I=a,j=a,K=a,B=a,H=a,G=a,F=a,C=a,D=a,E=a,A=a,r=a,p=a,l=a,x=a,m=a,n=a;return d.$commit_settings(),J=[],z=c(c(c('GxG'),'Database'),'DetachedHash').$new(),z['$title=']("title_object "+d.uuid.$to_s()),z['$[]=']("component","org.gxg.gui.label"),z['$[]=']("settings",new Map),z['$[]=']("options",new Map([["content",d.window_title],["style",new Map([["width","100%"],["font-size","16px"],["text-align","center"]])]])),z['$[]=']("script",""),z['$[]=']("content",[]),v=c(c(c('GxG'),'Database'),'DetachedHash').$new(),v['$[]=']("component","org.gxg.gui.image"),v['$[]=']("settings",new Map),v['$[]=']("options",new Map([["src",d.$theme_widget("close.png")],["width",20],["height",20],["style",new Map([["padding","2px"]])]])),v['$[]=']("script","\n on(:mouseup) do |event|\n unless self.gxg_get_state(:disabled) == true\n self.gxg_set_attribute(:src,theme_widget('close.png'))\n the_window = self.window\n if the_window\n if the_window.application\n the_window.application.window_close({:window => the_window.uuid})\n else\n GxG::DISPLAY_DETAILS[:object].window_close(the_window.uuid)\n end\n else\n log_warn('Window Not Found')\n end\n end\n end\n on(:mousedown) do |event|\n unless self.gxg_get_state(:disabled) == true\n self.gxg_set_attribute(:src,theme_widget('close_mousedown.png'))\n end\n end\n on(:mouseenter) do |event|\n unless self.gxg_get_state(:disabled) == true\n self.gxg_set_attribute(:src,theme_widget('close_mouseenter.png'))\n end\n end\n on(:mouseleave) do |event|\n unless self.gxg_get_state(:disabled) == true\n self.gxg_set_attribute(:src,theme_widget('close.png'))\n end\n end\n "),v['$[]=']("content",[]),u=c(c(c('GxG'),'Database'),'DetachedHash').$new(),u['$[]=']("component","org.gxg.gui.image"),u['$[]=']("settings",new Map),u['$[]=']("options",new Map([["src",d.$theme_widget("minimize.png")],["width",20],["height",20],["style",new Map([["padding","2px"]])]])),u['$[]=']("script","\n on(:mouseup) do |event|\n unless self.gxg_get_state(:disabled) == true\n self.gxg_set_attribute(:src,theme_widget('minimize.png'))\n the_window = self.window\n if the_window\n special = the_window.special_state()\n if special.is_a?(::Hash)\n if special[:action] == :minimize\n GxG::DISPLAY_DETAILS[:object].window_restore(the_window.uuid)\n else\n GxG::DISPLAY_DETAILS[:object].window_minimize(the_window.uuid,{:top => the_window.top, :left => the_window.left, :right => the_window.right, :bottom => the_window.bottom})\n end\n else\n GxG::DISPLAY_DETAILS[:object].window_minimize(the_window.uuid,{:top => the_window.top, :left => the_window.left, :right => the_window.right, :bottom => the_window.bottom})\n end\n end\n end\n end\n on(:mousedown) do |event|\n unless self.gxg_get_state(:disabled) == true\n self.gxg_set_attribute(:src,theme_widget('minimize_mousedown.png'))\n end\n end\n on(:mouseenter) do |event|\n unless self.gxg_get_state(:disabled) == true\n self.gxg_set_attribute(:src,theme_widget('minimize_mouseenter.png'))\n end\n end\n on(:mouseleave) do |event|\n unless self.gxg_get_state(:disabled) == true\n self.gxg_set_attribute(:src,theme_widget('minimize.png'))\n end\n end\n "),u['$[]=']("content",[]),s=c(c(c('GxG'),'Database'),'DetachedHash').$new(),s['$[]=']("component","org.gxg.gui.image"),s['$[]=']("settings",new Map),s['$[]=']("options",new Map([["src",d.$theme_widget("maximize.png")],["width",20],["height",20],["style",new Map([["padding","2px"]])]])),s['$[]=']("script","\n on(:mouseup) do |event|\n unless self.gxg_get_state(:disabled) == true\n self.gxg_set_attribute(:src,theme_widget('maximize.png'))\n the_window = self.window\n if the_window\n special = the_window.special_state()\n if special.is_a?(::Hash)\n if special[:action] == :maximize\n GxG::DISPLAY_DETAILS[:object].window_restore(the_window.uuid)\n else\n GxG::DISPLAY_DETAILS[:object].window_maximize(the_window.uuid,{:top => the_window.top, :left => the_window.left, :right => the_window.right, :bottom => the_window.bottom})\n end\n else\n GxG::DISPLAY_DETAILS[:object].window_maximize(the_window.uuid,{:top => the_window.top, :left => the_window.left, :right => the_window.right, :bottom => the_window.bottom})\n end\n end\n end\n end\n on(:mousedown) do |event|\n unless self.gxg_get_state(:disabled) == true\n self.gxg_set_attribute(:src,theme_widget('maximize_mousedown.png'))\n end\n end\n on(:mouseenter) do |event|\n unless self.gxg_get_state(:disabled) == true\n self.gxg_set_attribute(:src,theme_widget('maximize_mouseenter.png'))\n end\n end\n on(:mouseleave) do |event|\n unless self.gxg_get_state(:disabled) == true\n self.gxg_set_attribute(:src,theme_widget('maximize.png'))\n end\n end\n "),s['$[]=']("content",[]),y=c(c(c('GxG'),'Database'),'DetachedHash').$new(),y['$[]=']("component","org.gxg.gui.block.table"),y['$[]=']("settings",new Map),y['$[]=']("options",new Map([["style",new Map([["clear","both"],["height","24px"],["padding","0px"],["margin","0px"],["border-radius","5px 5px 0px 0px"],["border-bottom","1px solid #c2c2c2"]])],["states",new Map([["default-background-color",!0]])]])),y['$[]=']("script",""),y['$[]=']("content",[]),o=c(c(c('GxG'),'Database'),'DetachedHash').$new(),o['$[]=']("component","org.gxg.gui.block.table.row"),o['$[]=']("settings",new Map),o['$[]=']("options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["vertical-align","middle"],["background-color","transparent"]])]])),o['$[]=']("script",""),o['$[]=']("content",[]),q=c(c(c('GxG'),'Database'),'DetachedHash').$new(),q['$[]=']("component","org.gxg.gui.block.table.cell"),q['$[]=']("settings",new Map),q['$[]=']("options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["vertical-align","middle"],["background-color","transparent"]])]])),q['$[]=']("script",""),q['$[]=']("content",[]),t=c(c(c('GxG'),'Database'),'DetachedHash').$new(),t['$[]=']("component","org.gxg.gui.block.table.cell"),t['$[]=']("settings",new Map),t['$[]=']("options",new Map([["style",new Map([["width","100%"],["padding","0px 0px 0px "+e(e(f(d.$width(),2),i(f(d.window_title.$size(),2),8)),60)+"px"],["vertical-align","middle"],["margin","0px"],["background-color","transparent"]])]])),t['$[]=']("script",""),t['$[]=']("content",[]),I=c(c(c('GxG'),'Database'),'DetachedHash').$new(),I['$[]=']("component","org.gxg.gui.block.table.cell"),I['$[]=']("settings",new Map),I['$[]=']("options",new Map([["style",new Map([["float","right"],["padding","0px"],["vertical-align","middle"],["margin","0px"],["background-color","transparent"]])]])),I['$[]=']("script",""),I['$[]=']("content",[]),b(d.closebox)&&(k(d.closebox,"disabled")&&(v['$[]']("options")['$[]=']("src",d.$theme_widget("close_disable.png")),v['$[]']("options")['$[]=']("states",new Map([["disabled",!0]]))),q['$[]']("content")['$<<'](v)),b(d.minimizebox)&&(k(d.minimizebox,"disabled")&&(u['$[]']("options")['$[]=']("src",d.$theme_widget("minimize_disable.png")),u['$[]']("options")['$[]=']("states",new Map([["disabled",!0]]))),q['$[]']("content")['$<<'](u)),b(d.maximizebox)&&(k(d.maximizebox,"disabled")&&(s['$[]']("options")['$[]=']("src",d.$theme_widget("maximize_disable.png")),s['$[]']("options")['$[]=']("states",new Map([["disabled",!0]]))),q['$[]']("content")['$<<'](s)),t['$[]=']("script","\n def do_drag(event)\n if ((event[:buttons] & 1) == 1)\n #\n if @window_handle\n unless @last_mouse_x\n @last_mouse_x = event[:pageX]\n end\n unless @last_mouse_y\n @last_mouse_y = event[:pageY]\n end\n offset_x = (event[:pageX] - @window_handle.left)\n if event[:pageY] < @window_handle.top\n offset_y = (@window_handle.top - event[:pageY])\n else\n offset_y = (event[:pageY] - @window_handle.top)\n end\n new_x = ((event[:pageX] - offset_x) + (event[:pageX] - @last_mouse_x))\n new_y = ((event[:pageY] - offset_y) + (event[:pageY] - @last_mouse_y))\n @window_handle.set_position(new_x,new_y)\n @last_mouse_x = event[:pageX]\n @last_mouse_y = event[:pageY]\n end\n end\n end\n on(:dblclick) do |event|\n the_window = self.window\n if the_window\n special = the_window.special_state()\n if special.is_a?(::Hash)\n if special[:action] == :rollup\n GxG::DISPLAY_DETAILS[:object].window_restore(the_window.uuid)\n else\n GxG::DISPLAY_DETAILS[:object].window_rollup(the_window.uuid,{:top => the_window.top, :left => the_window.left, :right => the_window.right, :bottom => the_window.bottom})\n end\n else\n GxG::DISPLAY_DETAILS[:object].window_rollup(the_window.uuid,{:top => the_window.top, :left => the_window.left, :right => the_window.right, :bottom => the_window.bottom})\n end\n end\n end\n on(:mouseup) do |event|\n @mode = :hover\n the_window = self.window\n if the_window\n GxG::DISPLAY_DETAILS[:object].window_bring_to_front(the_window.uuid)\n end\n end\n on(:mousemove) do |event|\n @window_handle = self.window\n if ((event[:buttons] & 1) == 1)\n @mode = :drag\n"+" do_drag(event)\n"+" else\n"+" @mode = :hover\n"+" end\n"+" end\n"+" on(:mouseover) do |event|\n"+" if @mode == :drag\n"+" do_drag(event)\n"+" end\n"+" end\n"+" on(:mouseleave) do |event|\n"+" if @mode == :drag\n"+" do_drag(event)\n"+" end\n"+" end\n"+" on(:mouseenter) do |event|\n"+" if @mode == :drag\n"+" do_drag(event)\n"+" end\n"+" end\n"+" "),t['$[]']("content")['$<<'](z),o['$[]']("content")['$<<'](q),o['$[]']("content")['$<<'](t),o['$[]']("content")['$<<'](I),y['$[]']("content")['$<<'](o),J['$<<'](y),j=c(c(c('GxG'),'Database'),'DetachedHash').$new(),j['$title=']("content "+d.uuid.$to_s()),j['$[]=']("component","org.gxg.gui.block"),j['$[]=']("settings",new Map),j['$[]=']("options",new Map([["style",new Map([["clear","both"],["padding","0px"],["margin","0px"],["border","0px"],["width",""+e(d.$width(),i(d.resize_margin,2))+"px"],["height",""+e(d.$height(),h(h(d.title_margin,d.menu_margin),d.resize_margin))+"px"]])],["states",new Map([["default-background-color",!0]])]])),j['$[]=']("script",""),j['$[]=']("content",[]),K=j.$uuid(),b(d.scrolling)?k(d.scrolling,!0)?j['$[]']("options")['$[]']("style")['$[]=']("overflow","scroll"):(k(d.scrolling,"vertical")&&j['$[]']("options")['$[]']("style")['$[]=']("overflow-y","scroll"),k(d.scrolling,"horizontal")&&j['$[]']("options")['$[]']("style")['$[]=']("overflow-x","scroll")):j['$[]']("options")['$[]']("style")['$[]=']("overflow","hidden"),B=c(c(c('GxG'),'Database'),'DetachedHash').$new(),B['$[]=']("component","org.gxg.gui.block.table.cell"),B['$[]=']("settings",new Map),B['$[]=']("options",new Map([["style",new Map([["width","2px"],["cursor","w-resize"]])]])),B['$[]=']("script","\n def do_drag(event)\n if ((event[:buttons] & 1) == 1)\n window_handle = self.window\n if window_handle\n window_handle.set_left(event[:pageX])\n end\n end\n end\n on(:mouseup) do |event|\n @mode = :hover\n the_window = self.window\n if the_window\n GxG::DISPLAY_DETAILS[:object].window_bring_to_front(the_window.uuid)\n end\n end\n on(:mousedown) do |event|\n @mode = :drag\n do_drag(event)\n end\n on(:mouseover) do |event|\n if @mode == :drag\n do_drag(event)\n end\n end\n on(:mouseleave) do |event|\n if @mode == :drag\n do_drag(event)\n end\n end\n on(:mouseenter) do |event|\n if @mode == :drag\n do_drag(event)\n end\n end\n "),B['$[]=']("content",[]),H=c(c(c('GxG'),'Database'),'DetachedHash').$new(),H['$[]=']("component","org.gxg.gui.block.table.cell"),H['$[]=']("settings",new Map),H['$[]=']("options",new Map([["style",new Map([["width","2px"],["cursor","e-resize"]])]])),H['$[]=']("script","\n def do_drag(event)\n if ((event[:buttons] & 1) == 1)\n window_handle = self.window\n if window_handle\n window_handle.set_right(event[:pageX] + 1)\n end\n end\n end\n on(:mouseup) do |event|\n @mode = :hover\n the_window = self.window\n if the_window\n GxG::DISPLAY_DETAILS[:object].window_bring_to_front(the_window.uuid)\n end\n end\n on(:mousedown) do |event|\n @mode = :drag\n do_drag(event)\n end\n on(:mouseover) do |event|\n if @mode == :drag\n do_drag(event)\n end\n end\n on(:mouseleave) do |event|\n if @mode == :drag\n do_drag(event)\n end\n end\n on(:mouseenter) do |event|\n if @mode == :drag\n do_drag(event)\n end\n end\n "),H['$[]=']("content",[]),G=c(c(c('GxG'),'Database'),'DetachedHash').$new(),G['$[]=']("component","org.gxg.gui.block.table.cell"),G['$[]=']("settings",new Map),G['$[]=']("options",new Map([["style",new Map([["height","2px"],["cursor","s-resize"]])]])),G['$[]=']("script","\n def do_drag(event)\n window_handle = self.window\n if window_handle\n if ((event[:buttons] & 1) == 1)\n window_handle.set_bottom(event[:pageY] + 4)\n end\n end\n end\n on(:mouseup) do |event|\n @mode = :hover\n the_window = self.window\n if the_window\n GxG::DISPLAY_DETAILS[:object].window_bring_to_front(the_window.uuid)\n end\n end\n on(:mousedown) do |event|\n @mode = :drag\n do_drag(event)\n end\n on(:mouseover) do |event|\n if @mode == :drag\n do_drag(event)\n end\n end\n on(:mouseleave) do |event|\n if @mode == :drag\n do_drag(event)\n end\n end\n on(:mouseenter) do |event|\n if @mode == :drag\n do_drag(event)\n end\n end\n "),G['$[]=']("content",[]),F=c(c(c('GxG'),'Database'),'DetachedHash').$new(),F['$[]=']("component","org.gxg.gui.block.table.cell"),F['$[]=']("settings",new Map),F['$[]=']("options",new Map([["style",new Map([["width","2px"],["height","2px"],["cursor","sw-resize"]])]])),F['$[]=']("script","\n def do_drag(event)\n if ((event[:buttons] & 1) == 1)\n window_handle = self.window\n if window_handle\n window_handle.set_left(event[:pageX] - 2)\n window_handle.set_bottom(event[:pageY] + 4)\n end\n end\n end\n on(:mouseup) do |event|\n @mode = :hover\n the_window = self.window\n if the_window\n GxG::DISPLAY_DETAILS[:object].window_bring_to_front(the_window.uuid)\n end\n end\n on(:mousedown) do |event|\n @mode = :drag\n do_drag(event)\n end\n on(:mouseover) do |event|\n if @mode == :drag\n do_drag(event)\n end\n end\n on(:mouseleave) do |event|\n if @mode == :drag\n do_drag(event)\n end\n end\n on(:mouseenter) do |event|\n if @mode == :drag\n do_drag(event)\n end\n end\n "),F['$[]=']("content",[]),C=c(c(c('GxG'),'Database'),'DetachedHash').$new(),C['$[]=']("component","org.gxg.gui.block.table.cell"),C['$[]=']("settings",new Map),C['$[]=']("options",new Map([["style",new Map([["width","2px"],["height","2px"],["cursor","se-resize"]])]])),C['$[]=']("script","\n def do_drag(event)\n if ((event[:buttons] & 1) == 1)\n window_handle = self.window\n if window_handle\n window_handle.set_right(event[:pageX] + 2)\n window_handle.set_bottom(event[:pageY] + 4)\n end\n end\n end\n on(:mouseup) do |event|\n @mode = :hover\n the_window = self.window\n if the_window\n GxG::DISPLAY_DETAILS[:object].window_bring_to_front(the_window.uuid)\n end\n end\n on(:mousedown) do |event|\n @mode = :drag\n do_drag(event)\n end\n on(:mouseover) do |event|\n if @mode == :drag\n do_drag(event)\n end\n end\n on(:mouseleave) do |event|\n if @mode == :drag\n do_drag(event)\n end\n end\n on(:mouseenter) do |event|\n if @mode == :drag\n do_drag(event)\n end\n end\n "),C['$[]=']("content",[]),D=c(c(c('GxG'),'Database'),'DetachedHash').$new(),D['$[]=']("component","org.gxg.gui.block.table.cell"),D['$[]=']("settings",new Map),D['$[]=']("options",new Map([["style",new Map([["width","2px"],["cursor","w-resize"]])]])),D['$[]=']("script","\n def do_drag(event)\n if ((event[:buttons] & 1) == 1)\n window_handle = self.window\n if window_handle\n window_handle.set_left(event[:pageX])\n end\n end\n end\n on(:mouseup) do |event|\n @mode = :hover\n the_window = self.window\n if the_window\n GxG::DISPLAY_DETAILS[:object].window_bring_to_front(the_window.uuid)\n end\n end\n on(:mousedown) do |event|\n @mode = :drag\n do_drag(event)\n end\n on(:mouseover) do |event|\n if @mode == :drag\n do_drag(event)\n end\n end\n on(:mouseleave) do |event|\n if @mode == :drag\n do_drag(event)\n end\n end\n on(:mouseenter) do |event|\n if @mode == :drag\n do_drag(event)\n end\n end\n "),D['$[]=']("content",[]),E=c(c(c('GxG'),'Database'),'DetachedHash').$new(),E['$[]=']("component","org.gxg.gui.block.table.cell"),E['$[]=']("settings",new Map),E['$[]=']("options",new Map([["style",new Map([["width","2px"],["cursor","e-resize"]])]])),E['$[]=']("script","\n def do_drag(event)\n if ((event[:buttons] & 1) == 1)\n window_handle = self.window\n if window_handle\n window_handle.set_right(event[:pageX] + 1)\n end\n end\n end\n on(:mouseup) do |event|\n @mode = :hover\n the_window = self.window\n if the_window\n GxG::DISPLAY_DETAILS[:object].window_bring_to_front(the_window.uuid)\n end\n end\n on(:mousedown) do |event|\n @mode = :drag\n do_drag(event)\n end\n on(:mouseover) do |event|\n if @mode == :drag\n do_drag(event)\n end\n end\n on(:mouseleave) do |event|\n if @mode == :drag\n do_drag(event)\n end\n end\n on(:mouseenter) do |event|\n if @mode == :drag\n do_drag(event)\n end\n end\n "),E['$[]=']("content",[]),A=c(c(c('GxG'),'Database'),'DetachedHash').$new(),A['$title=']("menu_area "+d.uuid.$to_s()),A['$[]=']("component","org.gxg.gui.block.table.cell"),A['$[]=']("settings",new Map),A['$[]=']("options",new Map([["style",new Map([["overflow","hidden"],["height","16px"],["padding","0px"],["margin","0px"]])]])),A['$[]=']("script",""),A['$[]=']("content",[]),r=c(c(c('GxG'),'Database'),'DetachedHash').$new(),r['$title=']("menu_area_row "+d.uuid.$to_s()),r['$[]=']("component","org.gxg.gui.block.table.row"),r['$[]=']("settings",new Map),r['$[]=']("options",new Map([["style",new Map([["overflow","hidden"],["clear","both"],["padding","0px"],["width","100%"],["height","16px"],["margin","0px"],["vertical-align","middle"],["background-color","transparent"],["border-bottom","1px solid #c2c2c2"]])]])),r['$[]=']("script",""),r['$[]=']("content",[D,A,E]),p=c(c(c('GxG'),'Database'),'DetachedHash').$new(),p['$title=']("content_area "+d.uuid.$to_s()),p['$[]=']("component","org.gxg.gui.block.table.cell"),p['$[]=']("settings",new Map),p['$[]=']("options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["border","0px"]])]])),p['$[]=']("script",""),p['$[]=']("content",[j]),l=c(c(c('GxG'),'Database'),'DetachedHash').$new(),l['$[]=']("component","org.gxg.gui.block.table.row"),l['$[]=']("settings",new Map),l['$[]=']("options",new Map),l['$[]=']("script",""),l['$[]=']("content",[]),x=c(c(c('GxG'),'Database'),'DetachedHash').$new(),x['$[]=']("component","org.gxg.gui.block.table.row"),x['$[]=']("settings",new Map),x['$[]=']("options",new Map),x['$[]=']("script",""),x['$[]=']("content",[]),m=c(c(c('GxG'),'Database'),'DetachedHash').$new(),m['$title=']("window_body "+d.uuid.$to_s()),m['$[]=']("component","org.gxg.gui.block.table"),m['$[]=']("settings",new Map),m['$[]=']("options",new Map([["style",new Map([["width","100%"]])],["states",new Map([["default-background-color",!0]])]])),m['$[]=']("script",""),m['$[]=']("content",[]),b(d.resize)?(l['$[]=']("content",[B,p,H]),x['$[]=']("content",[F,G,C]),b(d.menu_reference)?m['$[]=']("content",[r,l,x]):m['$[]=']("content",[l,x])):b(d.menu_reference)?(l['$[]=']("content",[p]),m['$[]=']("content",[r,l])):(l['$[]=']("content",[p]),m['$[]=']("content",[l])),J['$<<'](m),d.content=a,d.$page().$build_components(d,J,new Map([["application",d.application]])),n=d.$page().$find_object_by(K),b(n)&&(d.content=n),n=d.$page().$find_object_by("window_body "+d.uuid.$to_s()),b(n)&&(d.window_body=n),n=d.$page().$find_object_by("title_object "+d.uuid.$to_s()),b(n)&&(d.title_object=n),n=d.$page().$find_object_by("menu_area "+d.uuid.$to_s()),b(n)&&(d.menu_area=n,d.menu_margin=(d.menu_area.$element().getBoundingClientRect().bottom-d.menu_area.$element().getBoundingClientRect().top).$to_i(),b(d.menu_area)&&d.menu_area.$parent().$parent().$gxg_merge_style(new Map([["border-collapse","collapse"]]))),g(c(w('GxG'),'DISPATCHER'),'post_event',[],function a(){var b=a.$$s==null?this:a.$$s;return b.$commit_settings()},{$$s:d}),d})}(w[0],c(c(c(c('GxG'),'Gui'),'Vdom'),'BaseElement'),w),c(c('GxG'),'Gui').$register_component_class("org.gxg.gui.window",c(c(c('GxG'),'Gui'),'Window')),function(y,r,u){var n=p(y,r,'DialogBox'),v=[n].concat(u),w=j.$r(v),q=n.$$prototype;return q.title_object=q.window_title=q.responder=q.right=q.left=q.bottom=q.top=q.opacity=q.content=q.background_color=q.layer=q.uuid=a,d(n,'$_before_create',function b(){var d=b.$$p||a,c=this;return b.$$p=null,s(c,t(c,'_before_create',b,!1,!0),'_before_create',[],null)}),d(n,'$uuid',l("uuid")),d(n,'$before_close',function(b){return b==null&&(b=a),a},-1),d(n,'$after_close',function(b){return b==null&&(b=a),a},-1),d(n,'$before_open',function(b){return b==null&&(b=a),a},-1),d(n,'$after_open',function(b){return b==null&&(b=a),a},-1),d(n,'$set_application',x("application")),m(n,"application=","set_application"),d(n,'$application',l("application")),d(n,'$set_window_title',function(d){var e=this;return d==null&&(d=a),b(e.title_object)&&b(d['$is_a?'](c('String')))?(e.window_title=d,e.title_object.$set_text(e.window_title)):a},-1),m(n,"window_title=","set_window_title"),d(n,'$window_title',function(){var c=this;return b(c.title_object)?c.window_title:a}),d(n,'$set_data',function(a){var b=this;return a==null&&(a=new Map),b.data=a},-1),m(n,"data=","set_data"),d(n,'$data',l("data")),d(n,'$set_responder',function(c){var d=this;return c==null&&(c=a),b(c['$respond_to?']("call"))?d.responder=c:a},-1),m(n,"responder=","set_responder"),d(n,'$respond',function(c){var d=this;return c==null&&(c=a),d.$page().$dialog_close(),b(d.responder['$respond_to?']("call"))?d.responder.$call(c):a},-1),d(n,'$top',l("top")),d(n,'$left',l("left")),d(n,'$right',l("right")),d(n,'$bottom',l("bottom")),d(n,'$width',function(){var a=this;return e(a.right,a.left)}),d(n,'$height',function(){var a=this;return e(a.bottom,a.top)}),d(n,'$position',function(){var a=this;return new Map([["x",a.left],["y",a.top]])}),d(n,'$layer',l("layer")),d(n,'$initialize',function n(o,d,m){var p=n.$$p||a,g=this,k=a,l=a,j=a;return n.$$p=null,m==null&&(m=new Map),g.special_state=a,g.content=a,k=a,b(d['$[]']("width")['$is_a?'](c('String')))||b(d['$[]']("width").$to_s()['$include?']("."))?b(d['$[]']("width")['$is_a?'](c('String')))?k=i(window.innerWidth.$to_f(),f(d['$[]']("width").$gsub("%","").$to_f(),100)):k=i(window.innerWidth.$to_f(),f(d['$[]']("width"),100)):b(d['$[]']("width")['$is_a?'](c('Numeric')))&&(k=d['$[]']("width").$to_f()),b(k)&&(g.left=e(f(window.innerWidth.$to_f(),2),f(k,2)),g.right=h(f(window.innerWidth.$to_f(),2),f(k,2))),l=a,b(d['$[]']("height")['$is_a?'](c('String')))||b(d['$[]']("height").$to_s()['$include?']("."))?b(d['$[]']("height")['$is_a?'](c('String')))?l=i(window.innerHeight.$to_f(),f(d['$[]']("height").$gsub("%","").$to_f(),100)):l=i(window.innerHeight.$to_f(),f(d['$[]']("height"),100)):b(d['$[]']("height")['$is_a?'](c('Numeric')))&&(l=d['$[]']("height").$to_f()),b(l)&&(g.top=e(f(window.innerHeight.$to_f(),2),f(l,2)),g.bottom=h(f(window.innerHeight.$to_f(),2),f(l,2))),b(d['$[]']("top")['$is_a?'](c('String')))||b(d['$[]']("top").$to_s()['$include?']("."))?b(d['$[]']("top")['$is_a?'](c('String')))?g.top=i(window.innerHeight.$to_f(),f(d['$[]']("top").$gsub("%","").$to_f(),100)):g.top=i(window.innerHeight.$to_f(),f(d['$[]']("top"),100)):b(l)||(g.top=b(j=d['$[]']("top"))?j:e(f(window.innerHeight.$to_i(),2),150)),b(d['$[]']("left")['$is_a?'](c('String')))||b(d['$[]']("left").$to_s()['$include?']("."))?b(d['$[]']("left")['$is_a?'](c('String')))?g.left=i(window.innerWidth.$to_f(),f(d['$[]']("left").$gsub("%","").$to_f(),100)):g.left=i(window.innerWidth.$to_f(),f(d['$[]']("left"),100)):b(k)||(g.left=b(j=d['$[]']("left"))?j:e(f(window.innerWidth.$to_i(),2),300)),b(d['$[]']("right")['$is_a?'](c('String')))||b(d['$[]']("right").$to_s()['$include?']("."))?b(d['$[]']("right")['$is_a?'](c('String')))?g.right=i(window.innerWidth.$to_f(),f(d['$[]']("right").$gsub("%","").$to_f(),100)):g.right=i(window.innerWidth.$to_f(),f(d['$[]']("right"),100)):b(k)||(g.right=b(j=d['$[]']("right"))?j:h(f(window.innerWidth.$to_i(),2),300)),b(d['$[]']("bottom")['$is_a?'](c('String')))||b(d['$[]']("bottom").$to_s()['$include?']("."))?b(d['$[]']("bottom")['$is_a?'](c('String')))?g.bottom=i(window.innerHeight.$to_f(),f(d['$[]']("bottom").$gsub("%","").$to_f(),100)):g.bottom=i(window.innerHeight.$to_f(),f(d['$[]']("bottom"),100)):b(l)||(g.bottom=b(j=d['$[]']("bottom"))?j:h(f(window.innerHeight.$to_i(),2),150)),g.window_title=b(j=d['$[]']("window_title"))?j:"Untitled",g.title_object=a,g.opacity=b(j=d['$[]']("opacity"))?j:.8,g.background_color=b(j=d['$[]']("background-color"))?j:"rgba(0,0,0,"+g.opacity.$to_s()+")",g.layer=2e3,g.tracking=new Map,g.responder=a,g.data=new Map,s(g,t(g,'initialize',n,!1,!0),'initialize',[o,d,m],null),g.$set_attribute("draggable",!1),g},-3),m(n,"original_add_child","add_child"),d(n,'$add_child',function(c){var a=this;return b(a.content)?a.content.$add_child(c):a.$original_add_child(c)}),m(n,"original_children","children"),d(n,'$children',function(){var a=this;return b(a.content)?a.content.$children():new Map}),d(n,'$find_child',function(f,h){var j=this,e=a,i=a,d=a,c=a;for(f==null&&(f=a),h==null&&(h=!1),e=a,b(w('GxG')['$valid_uuid?'](f))?i=!0:i=!1,k(h,!0)?d=j.$original_children().$values():d=j.$children().$values();b(o(d.$size(),0));)if(c=d.$shift(),b(c)){if(b(i)){if(k(c.$uuid(),f)){e=c;break}}else if(k(c.$title(),f)){e=c;break}b(e)||g(c.$children().$values(),'each',[],function(b){return b==null&&(b=a),d['$<<'](b)})}return e},-1),d(n,'$cascade',function(){var d=this,q=a,p=a,g=a,k=a,l=a,n=a,j=a,m=a,o=a;return d.$merge_style(new Map([["position","absolute"],["top","0px"],["left","0px"],["width","100%"],["height","100%"],["background-color",d.background_color],["z-index",d.layer]])),q="\n on(:mouseup,true) do |event|\n end\n on(:mousedown,true) do |event|\n end\n on(:mousemove,true) do |event|\n end\n on(:mouseenter,true) do |event|\n end\n on(:mouseleave,true) do |event|\n end\n ",d.$set_script(q),p=[],g=c(c(c('GxG'),'Database'),'DetachedHash').$new(),g['$title=']("modal_frame "+d.uuid.$to_s()),g['$[]=']("component","org.gxg.gui.block.table"),g['$[]=']("settings",new Map),g['$[]=']("options",new Map([["style",new Map([["opacity",1],["clear","both"],["overflow","hidden"],["position","absolute"],["top",""+d.top+"px"],["left",""+d.left+"px"],["width",""+d.$width()+"px"],["height",""+d.$height()+"px"],["padding","0px"],["margin","0px"],["border-radius","5px 5px 5px 5px"],["z-index",h(d.layer,100)]])],["states",new Map([["default-background-color",!0]])]])),g['$[]=']("script",""),g['$[]=']("content",[]),k=c(c(c('GxG'),'Database'),'DetachedHash').$new(),k['$title=']("title "+d.uuid.$to_s()),k['$[]=']("component","org.gxg.gui.label"),k['$[]=']("settings",new Map),k['$[]=']("options",new Map([["content",d.window_title],["style",new Map([["opacity",1],["width","100%"],["font-size","16px"],["text-align","center"]])]])),k['$[]=']("script",""),k['$[]=']("content",[]),l=c(c(c('GxG'),'Database'),'DetachedHash').$new(),l['$[]=']("component","org.gxg.gui.block.table.cell"),l['$[]=']("settings",new Map),l['$[]=']("options",new Map([["style",new Map([["opacity",1],["width","100%"],["padding","0px 0px 0px "+e(f(d.$width(),2),i(f(d.window_title.$size(),2),8))+"px"],["margin","0px"],["vertical-align","middle"],["background-color","transparent"]])]])),l['$[]=']("script",""),l['$[]=']("content",[k]),n=c(c(c('GxG'),'Database'),'DetachedHash').$new(),n['$[]=']("component","org.gxg.gui.block.table.row"),n['$[]=']("settings",new Map),n['$[]=']("options",new Map([["style",new Map([["opacity",1],["clear","both"],["padding","0px"],["width","100%"],["height","24px"],["margin","0px"],["vertical-align","middle"],["background-color","#ffffff"],["border-bottom","1px solid #c2c2c2"]])]])),n['$[]=']("script",""),n['$[]=']("content",[l]),j=c(c(c('GxG'),'Database'),'DetachedHash').$new(),j['$title=']("content "+d.uuid.$to_s()),j['$[]=']("component","org.gxg.gui.block.table.cell"),j['$[]=']("settings",new Map),j['$[]=']("options",new Map([["style",new Map([["opacity",1],["clear","both"],["padding","0px"],["margin","0px"],["border","0px"],["width",""+d.$width()+"px"],["height",""+d.$height()+"px"]])],["states",new Map([["default-background-color",!0]])]])),j['$[]=']("script",""),j['$[]=']("content",[]),m=c(c(c('GxG'),'Database'),'DetachedHash').$new(),m['$[]=']("component","org.gxg.gui.block.table.row"),m['$[]=']("settings",new Map),m['$[]=']("options",new Map([["style",new Map([["opacity",1],["width",""+d.$width()+"px"],["height",""+e(d.$height(),24)+"px"],["padding","0px"],["margin","0px"],["border","0px"]])]])),m['$[]=']("script",""),m['$[]=']("content",[j]),g['$[]=']("content",[n,m]),p['$<<'](g),d.content=a,d.$page().$build_components(d,p),o=d.$page().$find_object_by("content "+d.uuid.$to_s()),b(o)&&(d.content=o),o=d.$page().$find_object_by("title "+d.uuid.$to_s()),b(o)?d.title_object=o:a}),d(n,'$open',function(b){return b==null&&(b=new Map),a},-1),d(n,'$close',function(b){return b==null&&(b=new Map),a},-1)}(w[0],c(c(c(c('GxG'),'Gui'),'Vdom'),'BaseElement'),w),c(c('GxG'),'Gui').$register_component_class("org.gxg.gui.window.dialog",c(c(c('GxG'),'Gui'),'DialogBox')),function(m,n){var q=v(m,'Vdom'),f=[q].concat(n);return function(v,q,s){var f=p(v,q,'Page'),t=[f].concat(s),m=j.$r(t),n=f.$$prototype;return n.dialog=n.dialog_queue=n.window_registry=a,d(f,'$window_open',function(f,g){var e=this,d=a,h=a;return f==null&&(f=a),g==null&&(g=a),!!b(f['$is_a?'](c(c(m('GxG'),'Database'),'DetachedHash')))&&(e.$build_components(e,[f],new Map([["application",g]])),d=e.$find_object_by(f.$uuid()),b(d)?(b(d.$menu_reference())&&(h=g.$search_content(d.$menu_reference()),b(h['$is_a?'](c(c(m('GxG'),'Database'),'DetachedHash')))?d.$set_menu(h):e.$log_warn("Invalid Menu Resource referenced: "+d.$menu_reference().$inspect())),e.$window_register(d.$uuid(),d),d.$before_open(),d.$open(),d.$show(),d.$after_open(),!0):(e.$log_warn("Unable to locate newly created window object."),!1))},-1),d(f,'$window_close',function(e,f){var g=this,d=a;return e==null&&(e=a),f==null&&(f=new Map),!!b(e['$is_any?'](c('String'),c('Symbol')))&&(!!(d=g.$get_window_registration(e),b(d))&&(d['$[]']("window").$before_close(),d['$[]']("window").$close(),d['$[]']("window").$hide(),d['$[]']("window").$after_close(),b(d['$[]']("window").$application())&&(d['$[]']("window").$application().$unlink_window(e),d['$[]']("window").$set_application(a)),g.$window_unregister(e),d['$[]']("window").$destroy(),!0))},-1),d(f,'$dialog_open',function j(e,f,g){var i=j.$$p||a,h=this,d=a;return j.$$p=null,e==null&&(e=a),f==null&&(f=a),g==null&&(g=a),b(e['$is_a?'](c(c(c('GxG'),'Database'),'DetachedHash')))?b(h.dialog['$is_a?'](c(c(c('GxG'),'Gui'),'DialogBox')))?(h.dialog_queue['$<<'](new Map([["source",e],["application",f],["details",g],["responder",i]])),!0):!!(h.$page().$build_components(h,[e],new Map([["application",f]])),d=h.$page().$find_object_by(e.$uuid()),b(d))&&(d.$set_title(e.$title()),b(f['$is_a?'](c(c('GxG'),'Application')))&&(d.$set_application(f),b(f.$get_window(e.$uuid()))||f.$link_window(d)),b(g)&&d.$set_data(g),b(i['$respond_to?']("call"))&&d.$set_responder(i),d.$before_open(),d.$open(),d.$show(new Map([["origin",new Map([["opacity",0]])],["destination",new Map([["opacity",1]])]])),d.$after_open(),!0):a},-1),d(f,'$dialog_close',function(d){var e=this,f=a;return d==null&&(d=new Map),b(e.dialog['$is_a?'](c(c(c('GxG'),'Gui'),'DialogBox')))&&(e.dialog.$before_close(),f=g(m('Proc'),'new',[],function f(){var d=f.$$s==null?this:f.$$s,e=a;return d.dialog==null&&(d.dialog=a),d.dialog_queue==null&&(d.dialog_queue=a),d.dialog.$close(),d.dialog.$after_close(),g(d.dialog,'every_child',[],function(d){var e=a;return d==null&&(d=a),b(d['$is_a?'](c(c(c('GxG'),'Gui'),'ApplicationViewport')))&&(e=d.$application(),b(e))?e.$unlink_viewport(d.$title()):a}),d.dialog.$destroy(),d.dialog=a,b(o(d.dialog_queue.$size(),0))?(e=d.dialog_queue.$shift(),g(d.$page(),'dialog_open',[e['$[]']("source"),e['$[]']("application"),e['$[]']("details")],e['$[]']("responder").$to_proc())):a},{$$s:e}),b(d['$[]']("origin"))&&b(d['$[]']("destination"))?g(e.dialog,'hide',[d],f.$to_proc()):g(e.dialog,'hide',[new Map([["origin",new Map([["opacity",1]])],["destination",new Map([["opacity",0]])],["options",new Map([["duration",500]])]])],f.$to_proc())),!0},-1),d(f,'$window_is_in_back?',function(c){var e=this,d=a,f=a,h=a;return c==null&&(c=a),d=e.$get_window_registration(c),!!b(d)&&(!!(f=b(h=g(e.window_registry,'collect',[],function(c,b){return c==null&&(c=a),b==null&&(b=a),b['$[]']("layer")}).$min())?h:0,k(d['$[]']("layer"),f)))},-1),d(f,'$window_is_in_front?',function(c){var e=this,d=a,f=a,h=a;return c==null&&(c=a),d=e.$get_window_registration(c),!!b(d)&&(!!(f=b(h=g(e.window_registry,'collect',[],function(c,b){return c==null&&(c=a),b==null&&(b=a),b['$[]']("layer")}).$max())?h:0,k(d['$[]']("layer"),f)))},-1),d(f,'$window_send_to_back',function(c){var d,f=this,e=a,i=a;return c==null&&(c=a),e=f.$get_window_registration(c),!!b(e)&&(b(f['$window_is_in_back?'](c))?a:(i=f.$window_back_layer(),e['$[]']("window").$gxg_merge_style("z-index",h(200,i)),(d=["layer",i],g(e,'[]=',d),d[d.length-1])))},-1),d(f,'$window_bring_to_front',function(d,g){var e=this,c=a,f=a;return!!(d==null&&(d=a),g==null&&(g=new Map),c=e.$get_window_registration(d),b(c))&&(k(c['$[]']("layer"),e.$window_top_layer())||(f=e.$window_next_layer(),c['$[]']("window").$gxg_merge_style("z-index",h(200,f)),c['$[]=']("layer",f)),!0)},-1),d(f,'$next_minimize_slot',function(){var q=this,f=a,l=a,d=a,p=a,o=a,n=a;return f=200,l=24,d=c(m('GxG'),'DISPLAY_DETAILS')['$[]']("object").$layout_content_area(),p=j.Range.$new(0,e(d['$[]']("right"),d['$[]']("left")).$step(f).$size(),!1),o=j.Range.$new(0,e(d['$[]']("bottom"),d['$[]']("top")).$step(l).$size(),!1),n=a,function(){try{var c=u('break');return g(j.Range.$new(0,e(o,1),!1),'each',[],function o(m){var q=o.$$s==null?this:o.$$s;if(m==null&&(m=a),function(){try{var c=u('break');return g(j.Range.$new(0,e(p,1),!1),'each',[],function o(j){var p=o.$$s==null?this:o.$$s,q=a,e=a;if(p.window_registry==null&&(p.window_registry=a),j==null&&(j=a),q=!1,e=new Map([["top",h(d['$[]']("top"),i(m,l))],["left",h(d['$[]']("left"),i(j,f))],["right",h(h(d['$[]']("left"),i(j,f)),f)],["bottom",h(h(d['$[]']("top"),i(m,l)),l)]]),function(){try{var b=u('break');return g(p.window_registry.$values(),'each',[],function f(d){var c=a;if(d==null&&(d=a),c=new Map([["top",0],["left",0],["right",0],["bottom",0]]),c['$[]=']("top",d['$[]']("window").$element().getBoundingClientRect().top.$to_i()),c['$[]=']("left",d['$[]']("window").$element().getBoundingClientRect().left.$to_i()),c['$[]=']("right",d['$[]']("window").$element().getBoundingClientRect().right.$to_i()),c['$[]=']("bottom",d['$[]']("window").$element().getBoundingClientRect().bottom.$to_i()),k(c['$[]']("top"),e['$[]']("top"))&&k(c['$[]']("left"),e['$[]']("left"))&&k(c['$[]']("right"),e['$[]']("right"))&&k(c['$[]']("bottom"),e['$[]']("bottom")))q=!0,b.$throw(a,f.$$is_lambda);else return a})}catch(a){if(a===b)return a.$v;throw a}finally{b.is_orphan=!0}}(),b(q))return a;n=e,c.$throw(a,o.$$is_lambda)},{$$s:q})}catch(a){if(a===c)return a.$v;throw a}finally{c.is_orphan=!0}}(),b(n))c.$throw(a,o.$$is_lambda);else return a},{$$s:q})}catch(a){if(a===c)return a.$v;throw a}finally{c.is_orphan=!0}}(),n}),d(f,'$minimize_effect',function t(c){var n=t.$$p||a,r=this,i=a,f=a,l=a,k=a,d=a,o=a,p=a,q=a,j=a,s=a,h=a;return t.$$p=null,c==null&&(c=a),i=r.$get_window_switcher(),b(i)?(f=new Map([["opacity",1]]),f['$[]=']("top",c['$[]']("window").$element().getBoundingClientRect().top.$to_i()),f['$[]=']("left",c['$[]']("window").$element().getBoundingClientRect().left.$to_i()),l=c['$[]']("window").$element().getBoundingClientRect().right.$to_i(),k=c['$[]']("window").$element().getBoundingClientRect().bottom.$to_i(),f['$[]=']("width",e(l,f['$[]']("left"))),f['$[]=']("height",e(k,f['$[]']("top"))),d=new Map([["opacity",0]]),d['$[]=']("top",i.$element().getBoundingClientRect().top.$to_i()),d['$[]=']("left",i.$element().getBoundingClientRect().right.$to_i()),o=i.$element().getBoundingClientRect().right.$to_i(),p=i.$element().getBoundingClientRect().top.$to_i(),d['$[]=']("width",e(o,d['$[]']("left"))),d['$[]=']("height",e(p,d['$[]']("top"))),q=g(m('Proc'),'new',[],function(){return b(n['$respond_to?']("call"))?n.$call(!0):a})):(j=r.$next_minimize_slot(),f=new Map([["opacity",1]]),f['$[]=']("top",c['$[]']("window").$element().getBoundingClientRect().top.$to_i()),f['$[]=']("left",c['$[]']("window").$element().getBoundingClientRect().left.$to_i()),l=c['$[]']("window").$element().getBoundingClientRect().right.$to_i(),k=c['$[]']("window").$element().getBoundingClientRect().bottom.$to_i(),f['$[]=']("width",e(l,f['$[]']("left"))),f['$[]=']("height",e(k,f['$[]']("top"))),d=new Map([["opacity",.5]]),d['$[]=']("top",j['$[]']("top")),d['$[]=']("left",j['$[]']("left")),o=j['$[]']("right"),p=j['$[]']("bottom"),d['$[]=']("width",e(o,d['$[]']("left"))),d['$[]=']("height",e(p,d['$[]']("top"))),q=g(m('Proc'),'new',[],function d(){var e=d.$$s==null?this:d.$$s;return e.$window_send_to_back(c['$[]']("window").$uuid()),b(n['$respond_to?']("call"))?n.$call(!0):a},{$$s:r})),s=g(m('Proc'),'new',[],function(){var b=a,d=a,e=a,f=a;return b=c['$[]']("window").$element().getBoundingClientRect().top.$to_i(),d=c['$[]']("window").$element().getBoundingClientRect().left.$to_i(),e=c['$[]']("window").$element().getBoundingClientRect().right.$to_i(),f=c['$[]']("window").$element().getBoundingClientRect().bottom.$to_i(),c['$[]']("window").$set_frame(new Map([["top",b],["left",d],["right",e],["bottom",f]]))}),c['$[]']("window").$animate(new Map([["origin",f],["destination",d],["options",new Map([["duration",500],["animationiteration",s],["animationend",q]])]])),h=new Map([["action","minimize"],["top",0],["left",0],["right",0],["bottom",0]]),h['$[]=']("top",c['$[]']("window").$element().getBoundingClientRect().top.$to_i()),h['$[]=']("left",c['$[]']("window").$element().getBoundingClientRect().left.$to_i()),h['$[]=']("right",c['$[]']("window").$element().getBoundingClientRect().right.$to_i()),h['$[]=']("bottom",c['$[]']("window").$element().getBoundingClientRect().bottom.$to_i()),h},-1),d(f,'$unminimize_effect',function l(c){var p=l.$$p||a,r=this,n=a,f=a,k=a,h=a,d=a,j=a,i=a,o=a,q=a;return l.$$p=null,c==null&&(c=a),n=r.$get_window_switcher(),b(n)?(f=new Map([["opacity",0]]),f['$[]=']("top",c['$[]']("window").$element().getBoundingClientRect().top.$to_i()),f['$[]=']("left",c['$[]']("window").$element().getBoundingClientRect().left.$to_i()),k=c['$[]']("window").$element().getBoundingClientRect().right.$to_i(),h=c['$[]']("window").$element().getBoundingClientRect().bottom.$to_i(),f['$[]=']("width",e(k,f['$[]']("left"))),f['$[]=']("height",e(h,f['$[]']("top"))),d=new Map([["opacity",1]]),d['$[]=']("top",c['$[]']("restore")['$[]']("settings")['$[]']("top")),d['$[]=']("left",c['$[]']("restore")['$[]']("settings")['$[]']("left")),j=c['$[]']("restore")['$[]']("settings")['$[]']("right"),i=c['$[]']("restore")['$[]']("settings")['$[]']("bottom"),d['$[]=']("width",e(j,d['$[]']("left"))),d['$[]=']("height",e(i,d['$[]']("top")))):(f=new Map([["opacity",.5]]),f['$[]=']("top",c['$[]']("window").$element().getBoundingClientRect().top.$to_i()),f['$[]=']("left",c['$[]']("window").$element().getBoundingClientRect().left.$to_i()),k=c['$[]']("window").$element().getBoundingClientRect().right.$to_i(),h=c['$[]']("window").$element().getBoundingClientRect().bottom.$to_i(),f['$[]=']("width",e(k,f['$[]']("left"))),f['$[]=']("height",e(h,f['$[]']("top"))),d=new Map([["opacity",1]]),d['$[]=']("top",c['$[]']("restore")['$[]']("settings")['$[]']("top")),d['$[]=']("left",c['$[]']("restore")['$[]']("settings")['$[]']("left")),j=c['$[]']("restore")['$[]']("settings")['$[]']("right"),i=c['$[]']("restore")['$[]']("settings")['$[]']("bottom"),d['$[]=']("width",e(j,d['$[]']("left"))),d['$[]=']("height",e(i,d['$[]']("top")))),o=g(m('Proc'),'new',[],function(){var b=a,d=a,e=a,f=a;return b=c['$[]']("window").$element().getBoundingClientRect().top.$to_i(),d=c['$[]']("window").$element().getBoundingClientRect().left.$to_i(),e=c['$[]']("window").$element().getBoundingClientRect().right.$to_i(),f=c['$[]']("window").$element().getBoundingClientRect().bottom.$to_i(),c['$[]']("window").$set_frame(new Map([["top",b],["left",d],["right",e],["bottom",f]]))}),q=g(m('Proc'),'new',[],function(){return b(p['$respond_to?']("call"))?p.$call(!0):a}),c['$[]']("window").$animate(new Map([["origin",f],["destination",d],["options",new Map([["duration",500],["animationiteration",o],["animationend",q]])]])),!0},-1),d(f,'$maximize_effect',function k(d){var l=k.$$p||a,f=a,h=a,n=a,o=a,i=a,p=a,q=a,j=a;return k.$$p=null,d==null&&(d=a),f=c(m('GxG'),'DISPLAY_DETAILS')['$[]']("object").$layout_content_area(),h=new Map,h['$[]=']("top",d['$[]']("window").$element().getBoundingClientRect().top.$to_i()),h['$[]=']("left",d['$[]']("window").$element().getBoundingClientRect().left.$to_i()),n=d['$[]']("window").$element().getBoundingClientRect().right.$to_i(),o=d['$[]']("window").$element().getBoundingClientRect().bottom.$to_i(),h['$[]=']("width",e(n,h['$[]']("left"))),h['$[]=']("height",e(o,h['$[]']("top"))),i=new Map,i['$[]=']("top",f['$[]']("top")),i['$[]=']("left",f['$[]']("left")),i['$[]=']("width",e(f['$[]']("right"),i['$[]']("left"))),i['$[]=']("height",e(f['$[]']("bottom"),i['$[]']("top"))),p=g(m('Proc'),'new',[],function(){var b=a,c=a,e=a,f=a;return b=d['$[]']("window").$element().getBoundingClientRect().top.$to_i(),c=d['$[]']("window").$element().getBoundingClientRect().left.$to_i(),e=d['$[]']("window").$element().getBoundingClientRect().right.$to_i(),f=d['$[]']("window").$element().getBoundingClientRect().bottom.$to_i(),d['$[]']("window").$set_frame(new Map([["top",b],["left",c],["right",e],["bottom",f]]))}),q=g(m('Proc'),'new',[],function(){return b(l['$respond_to?']("call"))?l.$call(!0):a}),d['$[]']("window").$animate(new Map([["origin",h],["destination",i],["options",new Map([["duration",500],["animationiteration",p],["animationend",q]])]])),j=new Map([["action","maximize"],["top",0],["left",0],["right",0],["bottom",0]]),j['$[]=']("top",f['$[]']("top")),j['$[]=']("left",f['$[]']("left")),j['$[]=']("right",f['$[]']("right")),j['$[]=']("bottom",f['$[]']("bottom")),j},-1),d(f,'$unmaximize_effect',function k(c){var h=k.$$p||a,f=a,i=a,j=a,d=a,l=a,n=a,o=a,p=a;return k.$$p=null,c==null&&(c=a),f=new Map,f['$[]=']("top",c['$[]']("window").$top()),f['$[]=']("left",c['$[]']("window").$left()),i=c['$[]']("window").$right(),j=c['$[]']("window").$bottom(),f['$[]=']("width",e(i,f['$[]']("left"))),f['$[]=']("height",e(j,f['$[]']("top"))),d=new Map,d['$[]=']("top",c['$[]']("restore")['$[]']("settings")['$[]']("top")),d['$[]=']("left",c['$[]']("restore")['$[]']("settings")['$[]']("left")),l=c['$[]']("restore")['$[]']("settings")['$[]']("right"),n=c['$[]']("restore")['$[]']("settings")['$[]']("bottom"),d['$[]=']("width",e(l,d['$[]']("left"))),d['$[]=']("height",e(n,d['$[]']("top"))),o=g(m('Proc'),'new',[],function(){var b=a,d=a,e=a,f=a;return b=c['$[]']("window").$element().getBoundingClientRect().top.$to_i(),d=c['$[]']("window").$element().getBoundingClientRect().left.$to_i(),e=c['$[]']("window").$element().getBoundingClientRect().right.$to_i(),f=c['$[]']("window").$element().getBoundingClientRect().bottom.$to_i(),c['$[]']("window").$set_frame(new Map([["top",b],["left",d],["right",e],["bottom",f]]))}),p=g(m('Proc'),'new',[],function(){return b(h['$respond_to?']("call"))?h.$call(!0):a}),c['$[]']("window").$animate(new Map([["origin",f],["destination",d],["options",new Map([["duration",500],["animationiteration",o],["animationend",p]])]])),!0},-1),d(f,'$rollup_effect',function j(c){var i=j.$$p||a,f=a,k=a,h=a,e=a,d=a;return j.$$p=null,c==null&&(c=a),f=new Map,k=c['$[]']("window").$top(),f['$[]=']("height",c['$[]']("window").$height()),h=new Map,h['$[]=']("height",24),e=c['$[]']("window").$find_child("window_body",!0),b(e)&&g(e,'hide',[new Map([["origin",new Map([["opacity",1]])],["destination",new Map([["opacity",0]])]])],function(){return c['$[]']("window").$animate(new Map([["origin",f],["destination",h]])),b(i['$respond_to?']("call"))?i.$call(!0):a}),d=new Map([["action","rollup"],["top",0],["left",0],["right",0],["bottom",0]]),d['$[]=']("top",c['$[]']("window").$element().getBoundingClientRect().top.$to_i()),d['$[]=']("left",c['$[]']("window").$element().getBoundingClientRect().left.$to_i()),d['$[]=']("right",c['$[]']("window").$element().getBoundingClientRect().right.$to_i()),d['$[]=']("bottom",c['$[]']("window").$element().getBoundingClientRect().bottom.$to_i()),d},-1),d(f,'$rolldown_effect',function h(c){var i=h.$$p||a,d=a,f=a,j=a;return h.$$p=null,c==null&&(c=a),d=new Map,d['$[]=']("height",24),f=new Map,f['$[]=']("height",e(c['$[]']("restore")['$[]']("settings")['$[]']("bottom"),c['$[]']("restore")['$[]']("settings")['$[]']("top"))),j=g(m('Proc'),'new',[],function(){var d=a;return d=c['$[]']("window").$find_child("window_body",!0),b(d)?g(d,'show',[new Map([["origin",new Map([["opacity",0]])],["destination",new Map([["opacity",1]])]])],function(){return c['$[]']("window").$commit_settings(),b(i['$respond_to?']("call"))?i.$call(!0):a}):a}),c['$[]']("window").$animate(new Map([["origin",d],["destination",f],["options",new Map([["duration",500],["animationend",j]])]])),!0},-1),d(f,'$window_restoreable?',function(d){var f=this,e=a;return d==null&&(d=a),e=f.$get_window_registration(d),!!b(e)&&(!!b(e['$[]']("restore")['$is_a?'](c('Hash'))))},-1),d(f,'$window_restore',function i(h,j){var e=i.$$p||a,f=this,d=a;if(i.$$p=null,h==null&&(h=a),j==null&&(j=new Map),d=f.$get_window_registration(h),b(d)){if(b(d['$[]']("restore")['$is_a?'](c('Hash')))){switch(d['$[]']("restore")['$[]']("action").valueOf()){case"minimize":g(f,'unminimize_effect',[d],function(){return d['$[]']("window").$clear_special_state(d['$[]']("restore")['$[]']("settings")),d['$[]=']("restore",a),b(e['$respond_to?']("call"))?e.$call(!0):a});break;case"maximize":g(f,'unmaximize_effect',[d],function(){return d['$[]']("window").$clear_special_state(d['$[]']("restore")['$[]']("settings")),d['$[]=']("restore",a),b(e['$respond_to?']("call"))?e.$call(!0):a});break;case"rollup":g(f,'rolldown_effect',[d],function(){return d['$[]']("window").$clear_special_state(d['$[]']("restore")['$[]']("settings")),d['$[]=']("restore",a),b(e['$respond_to?']("call"))?e.$call(!0):a});break;default:a}return!0}return!1}else return!1},-1),d(f,'$window_minimize',function(d,e){var f=this,c=a;return!!(d==null&&(d=a),e==null&&(e=new Map),c=f.$get_window_registration(d),b(c))&&(b(f['$window_restoreable?'](d))?g(f,'window_restore',[d],function a(){var b=a.$$s==null?this:a.$$s;return e=new Map([["top",c['$[]']("window").$top()],["left",c['$[]']("window").$left()],["right",c['$[]']("window").$right()],["bottom",c['$[]']("window").$bottom()]]),c['$[]=']("restore",new Map([["action","minimize"],["settings",e]])),c['$[]']("window").$set_special_state(b.$minimize_effect(c))},{$$s:f}):(c['$[]=']("restore",new Map([["action","minimize"],["settings",e]])),c['$[]']("window").$set_special_state(f.$minimize_effect(c))),!0)},-1),d(f,'$window_maximize',function(d,f){var e=this,c=a;return!!(d==null&&(d=a),f==null&&(f=new Map),c=e.$get_window_registration(d),b(c))&&(b(e['$window_restoreable?'](d))?g(e,'window_restore',[d],function a(){var b=a.$$s==null?this:a.$$s;return f=new Map([["top",c['$[]']("window").$top()],["left",c['$[]']("window").$left()],["right",c['$[]']("window").$right()],["bottom",c['$[]']("window").$bottom()]]),c['$[]=']("restore",new Map([["action","maximize"],["settings",f]])),c['$[]']("window").$set_special_state(b.$maximize_effect(c)),b.$window_bring_to_front(d)},{$$s:e}):(c['$[]=']("restore",new Map([["action","maximize"],["settings",f]])),c['$[]']("window").$set_special_state(e.$maximize_effect(c)),e.$window_bring_to_front(d)),!0)},-1),d(f,'$window_rollup',function(d,e){var f=this,c=a;return!!(d==null&&(d=a),e==null&&(e=new Map),c=f.$get_window_registration(d),b(c))&&(b(f['$window_restoreable?'](d))?g(f,'window_restore',[d],function a(){var b=a.$$s==null?this:a.$$s;return e=new Map([["top",c['$[]']("window").$top()],["left",c['$[]']("window").$left()],["right",c['$[]']("window").$right()],["bottom",c['$[]']("window").$bottom()]]),c['$[]=']("restore",new Map([["action","rollup"],["settings",e]])),c['$[]']("window").$set_special_state(b.$rollup_effect(c))},{$$s:f}):(c['$[]=']("restore",new Map([["action","rollup"],["settings",e]])),c['$[]']("window").$set_special_state(f.$rollup_effect(c))),!0)},-1),d(f,'$get_window_registration',function(d){var e=this;return d==null&&(d=a),b(d['$is_any?'](c('String'),c('Symbol')))?e.window_registry['$[]'](d):a},-1),d(f,'$get_window',function(d){var f=this,e=a;return d==null&&(d=a),b(d['$is_any?'](c('String'),c('Symbol')))&&(e=f.$get_window_registration(d),b(e))?e['$[]']("window"):a},-1),d(f,'$window_list',function(){var c=this,b=a;return b=[],g(c.window_registry.$keys(),'each',[],function e(c){var d=e.$$s==null?this:e.$$s;return d.window_registry==null&&(d.window_registry=a),c==null&&(c=a),b['$<<'](new Map([["uuid",c],["title",d.window_registry['$[]'](c)['$[]']("window").$title()]]))},{$$s:c}),b}),d(f,'$window_repack_layers',function(){var b=this;return b.window_registry=g(b.window_registry,'sort_by',[],function(c,b){return c==null&&(c=a),b==null&&(b=a),b['$[]']("layer")}).$to_h(),g(b.window_registry.$values(),'each_with_index',[],function(b,c){var d;return b==null&&(b=a),c==null&&(c=a),b['$[]']("window").$gxg_merge_style("z-index",h(200,c)),(d=["layer",c],g(b,'[]=',d),d[d.length-1])}),!0}),d(f,'$window_top_layer',function(){var d=this,c=a;return b(c=g(d.window_registry,'collect',[],function(c,b){return c==null&&(c=a),b==null&&(b=a),b['$[]']("layer")}).$max())?c:0}),d(f,'$window_back_layer',function(){var f=this,c=a,d=a;return c=e(b(d=g(f.window_registry,'collect',[],function(c,b){return c==null&&(c=a),b==null&&(b=a),b['$[]']("layer")}).$min())?d:0,1),b(r(c,100))&&(f.$window_repack_layers(),c=e(b(d=g(f.window_registry,'collect',[],function(c,b){return c==null&&(c=a),b==null&&(b=a),b['$[]']("layer")}).$min())?d:0,1)),c}),d(f,'$window_next_layer',function(){var e=this,c=a,d=a;return c=h(b(d=g(e.window_registry,'collect',[],function(c,b){return c==null&&(c=a),b==null&&(b=a),b['$[]']("layer")}).$max())?d:0,1),b(o(c,99))&&(e.$window_repack_layers(),c=h(b(d=g(e.window_registry,'collect',[],function(c,b){return c==null&&(c=a),b==null&&(b=a),b['$[]']("layer")}).$max())?d:0,1)),c}),d(f,'$window_register',function(e,d){var g=this,f=a;return e==null&&(e=a),d==null&&(d=a),!!b(e['$is_any?'](c('String'),c('Symbol')))&&(!!b(d)&&(f=g.$window_next_layer(),d.$gxg_merge_style("z-index",h(200,f)),g.window_registry['$[]='](e,new Map([["window",d],["layer",f],["restore",a]])),!0))},-1),d(f,'$window_unregister',function(d){var e=this;return!!(d==null&&(d=a),b(d['$is_any?'](c('String'),c('Symbol'))))&&(e.window_registry.$delete(d),!0)},-1),d(f,'$set_window_switcher',function(c){var d=this;return c==null&&(c=a),b(c)?d.window_switcher=c:a},-1),d(f,'$get_window_switcher',l("window_switcher"))}(f[0],null,f)}(w[0],w)}(w[0],w)}(w[0],w)},Opal.modules["web/gxg_gui"]=function(e){var r=e.module,m=e.klass,o=e.send2,p=e.find_super,d=e.def,w=e.assign_ivar,n=e.return_ivar,c=e.truthy,i=e.rb_gt,g=e.send,h=e.eqeq,t=e.thrower,q=e.alias,f=e.rb_plus,s=e.neqeq,k=e.rb_times,j=e.rb_minus,l=e.rb_divide,v=e.range,u=[],a=e.nil,b=e.$$$;return e.add_stubs('>,size,shift,valid_uuid?,[],children,uuid,object_source,each_child,<<,==,title,register_component_class,add_child,is_a?,original_add_child,values,original_children,each,new_component,title=,to_s,[]=,build_components,page,find_object_by,respond_to?,include?,to_sym,log_warn,inspect,clone,node_path,nodes,split,node_at_path,+,join,gxg_get_state,expand,post_event,expand_path,to_proc,call,!=,unhighlight,highlight,parent,unshift,is_any?,update_appearance,find_parent_type,theme_icon,theme_widget,new,merge_style,show,set_state,set_attribute,tree,hide,collapse,unpersist,each_pair,animate,layout_refresh,to_i,*,to_f,layout_content_area,-,round,/,dialog_open,log_error,basename,reverse'),function(x,y){var z=r(x,'GxG'),u=[z].concat(y);return function(x,y){var z=r(x,'Gui'),u=[z].concat(y);return function(f,j,k){var b=m(f,j,'ApplicationViewport'),l=[b].concat(k),q=e.$r(l);return d(b,'$_before_create',function b(){var d=b.$$p||a,c=this;return b.$$p=null,c.domtype="div",o(c,p(c,'_before_create',b,!1,!0),'_before_create',[],null)}),d(b,'$set_application',w("application")),d(b,'$application',n("application")),d(b,'$find_child',function(d){var j=this,f=a,e=a,b=a;if(d==null&&(d=a),f=a,c(d))for(e=[j];c(i(e.$size(),0));)if(b=e.$shift(),c(b))if(c(q('GxG')['$valid_uuid?'](d))){if(c(b.$children()['$[]'](j.$object_source().$uuid()))){f=b.$children()['$[]'](j.$object_source().$uuid());break}g(b,'each_child',[],function(b){return b==null&&(b=a),e['$<<'](b)})}else(function(){try{var c=t('break');return g(b,'each_child',[],function g(b){if(b==null&&(b=a),h(b.$title(),d))f=b,c.$throw(a,g.$$is_lambda);else return e['$<<'](b)})}catch(a){if(a===c)return a.$v;throw a}finally{c.is_orphan=!0}})();return f},-1)}(u[0],b(b(b(b('GxG'),'Gui'),'Vdom'),'BaseElement'),u),b(b('GxG'),'Gui').$register_component_class("org.gxg.gui.application.viewport",b(b(b('GxG'),'Gui'),'ApplicationViewport')),function(w,r,u){var j=m(w,r,'Tree'),v=[j].concat(u),k=e.$r(v),l=j.$$prototype;return l.content=l.uuid=l.processors=l.selection=a,q(j,"original_add_child","add_child"),d(j,'$add_child',function(d){var e=this;return d==null&&(d=a),c(d['$is_a?'](b(b(b('GxG'),'Database'),'DetachedHash')))?c(e.content)?e.content.$add_child(d):e.$original_add_child(d):a},-1),q(j,"original_children","children"),d(j,'$children',function(){var a=this;return c(a.content)?a.content.$children():new Map}),d(j,'$find_child',function(f,j){var m=this,e=a,l=a,d=a,b=a;for(f==null&&(f=a),j==null&&(j=!1),e=a,c(k('GxG')['$valid_uuid?'](f))?l=!0:l=!1,h(j,!0)?d=m.$original_children().$values():d=m.$children().$values();c(i(d.$size(),0));)if(b=d.$shift(),c(b)){if(c(l)){if(h(b.$uuid(),f)){e=b;break}}else if(h(b.$title(),f)){e=b;break}c(e)||g(b.$children().$values(),'each',[],function(b){return b==null&&(b=a),d['$<<'](b)})}return e},-1),d(j,'$initialize',function c(d,e){var f=c.$$p||a,b=this;return c.$$p=null,b.content=a,b.selection=a,b.processors=new Map,o(b,p(b,'initialize',c,!1,!0),'initialize',[d,e],null),b}),d(j,'$cascade',function(){var b=this,d=a,e=a;return d=b.$new_component("org.gxg.gui.list"),d['$title=']("content "+b.uuid.$to_s()),d['$[]=']("options",new Map([["style",new Map([["white-space","nowrap"],["width","auto"],["height","auto"],["list-style","none"],["margin","0px"],["padding","0px"]])]])),b.content=a,b.$page().$build_components(b,[d]),e=b.$page().$find_object_by("content "+b.uuid.$to_s()),c(e)?b.content=e:a}),d(j,'$update_appearance',function(b){return b==null&&(b=a),a},-1),d(j,'$set_processor',function e(b){var f=e.$$p||a,d,h=this;return e.$$p=null,b==null&&(b=a),c(f['$respond_to?']("call"))?c(["select","expand","collapse"]['$include?'](b.$to_s().$to_sym()))?(d=[b.$to_s().$to_sym(),f],g(h.processors,'[]=',d),d[d.length-1]):h.$log_warn("Unsupported processor type: "+b.$to_s().$to_sym().$inspect()):a},-1),d(j,'$node_at_path',function(f){var l=this,j=a,e=a,d=a;for(f==null&&(f=a),j=a,e=l.$children().$values().$clone();c(i(e.$size(),0));)if(d=e.$shift(),c(d['$is_a?'](b(b(k('GxG'),'Gui'),'TreeNode')))){if(h(d.$node_path(),f)){j=d;break}g(d.$nodes().$values(),'each',[],function(b){return b==null&&(b=a),e['$<<'](b)})}return j},-1),d(j,'$expand_path',function l(d){var e=l.$$p||a,n=this,j=a,m=a;return l.$$p=null,d==null&&(d=a),c(d['$is_a?'](b('String')))&&(j=[],m=d.$split("/"),function(){try{var l=t('break');return g(m,'each',[],function n(o){var p=n.$$s==null?this:n.$$s,m=a;if(o==null&&(o=a),c(i(o.$size(),0)))if(j['$<<'](o),m=p.$node_at_path(f("/",j.$join("/"))),c(m['$is_a?'](b(b(k('GxG'),'Gui'),'TreeNode'))))return h(m.$gxg_get_state("expanded"),!1)&&(m.$expand(),g(b(k('GxG'),'DISPATCHER'),'post_event',["display"],function a(){var b=a.$$s==null?this:a.$$s;return g(b,'expand_path',[d],e.$to_proc())},{$$s:p}),l.$throw(a,n.$$is_lambda)),h(m.$node_path(),d)&&c(e['$respond_to?']("call"))?e.$call():a;else g(b(k('GxG'),'DISPATCHER'),'post_event',["display"],function a(){var b=a.$$s==null?this:a.$$s;return g(b,'expand_path',[d],e.$to_proc())},{$$s:p}),l.$throw(a,n.$$is_lambda);else return a},{$$s:n})}catch(a){if(a===l)return a.$v;throw a}finally{l.is_orphan=!0}}()),!0},-1),d(j,'$selection',n("selection")),d(j,'$select',function(e){var d=this;return e==null&&(e=a),c(e['$is_a?'](b(b(k('GxG'),'Gui'),'TreeNode')))&&s(d.selection,e)?(c(d.selection)&&d.selection.$unhighlight(),d.selection=e,d.selection.$highlight(),c(d.processors['$[]']("select")['$respond_to?']("call")))?d.processors['$[]']("select").$call(d.selection):a:a},-1),d(j,'$expand',function(d){var e=this;return d==null&&(d=a),c(d['$is_a?'](b(b(k('GxG'),'Gui'),'TreeNode')))&&c(e.processors['$[]']("expand")['$respond_to?']("call"))?e.processors['$[]']("expand").$call(d):a},-1),d(j,'$collapse',function(d){var e=this;return d==null&&(d=a),c(d['$is_a?'](b(b(k('GxG'),'Gui'),'TreeNode')))&&c(e.processors['$[]']("collapse")['$respond_to?']("call"))?e.processors['$[]']("collapse").$call(d):a},-1)}(u[0],b(b(b(b('GxG'),'Gui'),'Vdom'),'BaseElement'),u),b(b('GxG'),'Gui').$register_component_class("tree",b(b(b('GxG'),'Gui'),'Tree')),function(v,r,t){var j=m(v,r,'TreeNode'),u=[j].concat(t),l=e.$r(u),k=j.$$prototype;return k.data=k.content=k.appearance=k.uuid=k.label=k.expander=a,d(j,'$_before_create',function e(){var f=e.$$p||a,d=this;return e.$$p=null,c(d.data['$is_a?'](b('Hash')))&&c(d.data['$[]']("title"))&&(d.title=d.data['$[]']("title")),o(d,p(d,'_before_create',e,!1,!0),'_before_create',[],null)}),q(j,"original_add_child","add_child"),d(j,'$add_child',function(d){var e=this;return d==null&&(d=a),c(d['$is_a?'](b(b(b('GxG'),'Database'),'DetachedHash')))?c(e.content)?e.content.$add_child(d):e.$original_add_child(d):a},-1),d(j,'$nodes',function(){var a=this;return c(a.content)?a.content.$children():new Map}),d(j,'$node_path',function(){var i=this,e=a,h=a,d=a;for(e="",h=[i],d=i.$parent();s(d,a);)c(d['$is_a?'](b(b(l('GxG'),'Gui'),'TreeNode')))&&h.$unshift(d),d=d.$parent(),c(d['$is_a?'](b(b(l('GxG'),'Gui'),'Tree')))&&(d=a);return g(h,'each',[],function(b){return b==null&&(b=a),e=f(e,"/"+b.$title())}),e}),d(j,'$find_child',function(d){var k=this,e=a,j=a,f=a,b=a;for(d==null&&(d=a),e=a,c(l('GxG')['$valid_uuid?'](d))?j=!0:j=!1,f=k.$children().$values();c(i(f.$size(),0));)if(b=f.$shift(),c(b)){if(c(j)){if(h(b.$uuid(),d)){e=b;break}}else if(h(b.$title(),d)){e=b;break}c(e)||g(b.$children().$values(),'each',[],function(b){return b==null&&(b=a),f['$<<'](b)})}return e},-1),d(j,'$update_appearance',function(d){var e=this;return!!(d==null&&(d=a),c(e.appearance['$is_any?'](b('Hash'),b(b(b('GxG'),'Database'),'DetachedHash'))))},-1),d(j,'$data',n("data")),d(j,'$appearance',n("appearance")),d(j,'$set_appearance',function(d){var e=this;return d==null&&(d=a),c(d['$is_any?'](b('Hash'),b(b(b('GxG'),'Database'),'DetachedHash')))?(e.appearance=d,e.$update_appearance()):a},-1),d(j,'$tree_node',function(){var a=this;return a.$find_parent_type(b(b(b('GxG'),'Gui'),'TreeNode'))}),d(j,'$tree',function(){var a=this;return a.$find_parent_type(b(b(b('GxG'),'Gui'),'Tree'))}),d(j,'$initialize',function g(h,f){var i=g.$$p||a,d=this,e=a;return g.$$p=null,d.content=a,d.appearance=new Map([["icon",d.$theme_icon("folder.svg")],["label","Untitled"]]),c(f['$is_any?'](b('Hash'),b(b(b('GxG'),'Database'),'DetachedHash')))&&(d.data=c(e=f['$[]']("data"))?e:new Map([["title","Untitled"],["type","virtual_directory"],["content",new Map]]),d.appearance['$[]=']("icon",(c(e=f['$[]']("icon"))?e:d.$theme_icon("folder.svg")).$to_s()),d.appearance['$[]=']("label",(c(e=f['$[]']("label"))?e:d.data['$[]']("title")).$to_s())),o(d,p(d,'initialize',g,!1,!0),'initialize',[h,f],null),d}),d(j,'$cascade',function(){var d=this,h=a,f=a,i=a,j=a,k=a,l=a,g=a,m=a,n=a,o=a,p=a,e=a;return h=d.$new_component("org.gxg.gui.block.table"),h['$[]']("settings")['$[]=']("nodepath",d.$node_path()),f=d.$new_component("org.gxg.gui.block.table"),i=d.$new_component("org.gxg.gui.image"),i['$title=']("expander "+d.uuid.$to_s()),i['$[]=']("options",new Map([["src",d.$theme_widget("collapse.svg")],["width",32],["height",32],["style",new Map([["clear","both"],["vertical-align","middle"]])]])),i['$[]=']("script","\n on(:mouseup) do |event|\n the_node = self.tree_node()\n if the_node\n unless the_node.get_state(:disabled) == true\n if self.get_state(:expanded) == true\n self.set_attribute(:src, theme_widget('collapse.svg'))\n self.set_state(:expanded,false)\n the_node.collapse()\n else\n self.set_attribute(:src, theme_widget('expand.svg'))\n self.set_state(:expanded,true)\n the_node.expand()\n end\n end\n end\n end\n "),j=b(b(b('GxG'),'Database'),'DetachedHash').$new(),j=d.$new_component("org.gxg.gui.block.table.cell"),j['$[]=']("options",new Map([["style",new Map([["float","left"],["width","32px"],["vertical-align","middle"]])]])),j['$[]']("content")['$<<'](i),k=d.$new_component("org.gxg.gui.block.table.cell"),k['$title=']("icon "+d.uuid.$to_s()),k['$[]=']("options",new Map([["src",d.appearance['$[]']("icon")],["style",new Map([["clear","both"],["width","32px"],["height","32px"],["vertical-align","middle"]])]])),k['$[]=']("script","\n on(:mouseup) do |event|\n the_node = self.tree_node()\n if the_node\n the_tree = the_node.tree()\n if the_tree\n the_tree.select(the_node)\n end\n end\n end\n "),l=b(b(b('GxG'),'Database'),'DetachedHash').$new(),l=d.$new_component("org.gxg.gui.block.table.cell"),l['$[]=']("options",new Map([["style",new Map([["float","left"],["width","32px"],["vertical-align","middle"]])]])),l['$[]']("content")['$<<'](k),g=d.$new_component("org.gxg.gui.label"),g['$title=']("title "+d.uuid.$to_s()),g['$[]=']("options",new Map([["content",d.appearance['$[]']("label")],["style",new Map([["float","left"],["font-size","16px"],["vertical-align","middle"],["text-align","left"],["margin","2px"],["padding","2px"]])]])),g['$[]=']("script","\n on(:mouseup) do |event|\n the_node = self.tree_node()\n if the_node\n the_tree = the_node.tree()\n if the_tree\n the_tree.select(the_node)\n end\n end\n end\n "),m=d.$new_component("org.gxg.gui.block.table.cell"),m['$[]=']("options",new Map([["style",new Map([["float","left"],["vertical-align","middle"]])]])),m['$[]']("content")['$<<'](g),f=d.$new_component("org.gxg.gui.block.table.row"),f['$[]=']("script","\n on(:mouseenter) do |event|\n the_node = self.tree_node()\n if the_node\n the_tree = the_node.highlight()\n end\n end\n on(:mouseleave) do |event|\n the_node = self.tree_node()\n if the_node\n the_tree = the_node.unhighlight()\n end\n end\n "),f['$[]']("content")['$<<'](j),f['$[]']("content")['$<<'](l),f['$[]']("content")['$<<'](m),n=d.$new_component("org.gxg.gui.list"),n['$title=']("content "+d.uuid.$to_s()),n['$[]=']("options",new Map([["width","100%"],["height","100%"],["style",new Map([["list-style","none"]])]])),o=d.$new_component("org.gxg.gui.block.table.cell"),o['$[]']("content")['$<<'](n),p=d.$new_component("org.gxg.gui.block.table.row"),p['$[]']("content")['$<<'](o),h['$[]']("content")['$<<'](f),h['$[]']("content")['$<<'](p),d.content=a,d.$page().$build_components(d,[h]),e=d.$page().$find_object_by("content "+d.uuid.$to_s()),c(e)&&(d.content=e),e=d.$page().$find_object_by("expander "+d.uuid.$to_s()),c(e)&&(d.expander=e),e=d.$page().$find_object_by("icon "+d.uuid.$to_s()),c(e)&&(d.icon=e),e=d.$page().$find_object_by("title "+d.uuid.$to_s()),c(e)?d.label=e:a}),d(j,'$highlight',function(b){var d=this;return b==null&&(b=a),c(d.label)?d.label.$merge_style(new Map([["background-color","#87acd5"]])):a},-1),d(j,'$unhighlight',function(b){var d=this;return b==null&&(b=a),c(d.label)?d.label.$merge_style(new Map([["background-color","#f2f2f2"]])):a},-1),d(j,'$expand',function(d){var b=this,e=a;return d==null&&(d=a),b.content.$show(d),b.$set_state("expanded",!0),c(b.expander)&&b.expander.$set_attribute("src",b.$page().$theme_widget("expand.svg")),e=b.$tree(),c(e)?e.$expand(b):a},-1),d(j,'$collapse',function(d){var b=this,e=a;return d==null&&(d=a),b.content.$hide(d),b.$set_state("expanded",!1),c(b.expander)&&b.expander.$set_attribute("src",b.$page().$theme_widget("collapse.svg")),e=b.$tree(),c(e)?e.$collapse(b):a},-1),d(j,'$enable',function(d){var e=this;return d==null&&(d=a),c(d['$is_any?'](b('Hash'),b(b(b('GxG'),'Database'),'DetachedHash')))?c(d['$is_a?'](b(b(b('GxG'),'Database'),'DetachedHash')))&&(d=d.$unpersist()):d=new Map([["origin",new Map([["opacity",.5]])],["destination",new Map([["opacity",1]])]]),g(e.$children(),'each_pair',[],function f(c,b){var e=f.$$s==null?this:f.$$s;return e.uuid==null&&(e.uuid=a),c==null&&(c=a),b==null&&(b=a),h(c,("content "+e.uuid.$to_s()).$to_sym())?a:(b.$set_state("disabled",!1),b.$animate(d))},{$$s:e})},-1),d(j,'$disable',function(d){var e=this;return d==null&&(d=a),c(d['$is_any?'](b('Hash'),b(b(b('GxG'),'Database'),'DetachedHash')))?c(d['$is_a?'](b(b(b('GxG'),'Database'),'DetachedHash')))&&(d=d.$unpersist()):d=new Map([["origin",new Map([["opacity",1]])],["destination",new Map([["opacity",.5]])]]),g(e.$children(),'each_pair',[],function f(c,b){var e=f.$$s==null?this:f.$$s;return e.uuid==null&&(e.uuid=a),c==null&&(c=a),b==null&&(b=a),h(c,("content "+e.uuid.$to_s()).$to_sym())?a:(b.$animate(d),b.$set_state("disabled",!0))},{$$s:e})},-1)}(u[0],b(b(b('GxG'),'Gui'),'ListItem'),u),b(b('GxG'),'Gui').$register_component_class("tree_node",b(b(b('GxG'),'Gui'),'TreeNode')),m(u[0],b(b(b(b('GxG'),'Gui'),'Vdom'),'BaseElement'),'Panel'),b(b('GxG'),'Gui').$register_component_class("panel",b(b(b('GxG'),'Gui'),'Panel')),function(n,o){var p=r(n,'Vdom'),b=[p].concat(o);return function(o,p,q){var n=m(o,p,'Page'),r=[n].concat(q),b=e.$r(r);return d(n,'$upload_dialog',function F(D,m){var L=F.$$p||a,d=this,C=a,n=a,B=a,w=a,H=a,t=a,v=a,K=a,x=a,y=a,G=a,J=a,h=a,r=a,p=a,s=a,E=a,z=a,u=a,A=a,q=a,o=a,I=a;if(F.$$p=null,D==null&&(D=a),m==null&&(m=a),d.$layout_refresh(),C=(c(n=m)?n:new Map([["title","Choose a file:"]]))['$[]']("title").$to_s(),B=(c(n=m)?n:new Map([["banner","Choose a file to upload"]]))['$[]']("banner").$to_s(),w=(c(n=m)?n:new Map([["destination",a]]))['$[]']("destination").$to_s(),H=k(d.$layout_content_area()['$[]']("page_width").$to_f(),.25).$to_i(),t=20,v=5,K=j(H,k(f(t,v),2)),x=k(f(t,v),2),y=16,c(i(B.$to_s().$size(),40))?G=k(l(B.$size().$to_f(),40),y.$to_f()).$round().$to_i():G=y,J=16,c(i(w.$size(),0))){h=d.$new_component("org.gxg.gui.form"),h['$[]']("options")['$[]=']("action","/file_upload"),h['$[]']("options")['$[]=']("method","POST"),h['$[]']("options")['$[]=']("enctype","multipart/form-data"),h['$[]']("options")['$[]=']("style",new Map([["background-color","#f2f2f2"],["padding","20px"],["margin","5px"],["width","100%"]])),x=330,r=d.$new_component("org.gxg.gui.input.file"),r['$title=']("file"),r['$[]']("options")['$[]=']("name","file"),h['$[]']("content")['$<<'](r),p=d.$new_component("org.gxg.gui.input.hidden"),p['$title=']("destination"),p['$[]']("options")['$[]=']("name","destination"),p['$[]']("options")['$[]=']("value",w),h['$[]']("content")['$<<'](p),s=d.$new_component("org.gxg.gui.grid.container"),E=d.$new_component("org.gxg.gui.grid.x"),z=d.$new_component("org.gxg.gui.grid.x"),u=d.$new_component("org.gxg.gui.input.button"),A=d.$new_component("org.gxg.gui.input.button.submit"),E['$[]']("content")['$<<'](u),z['$[]']("content")['$<<'](A),s['$[]']("content")['$<<'](E),s['$[]']("content")['$<<'](z),h['$[]']("content")['$<<'](s),u['$[]=']("script","\n on(:mouseup) do |event|\n the_window = self.find_parent_type(::GxG::Gui::DialogBox)\n form = self.find_parent_type(::GxG::Gui::Form)\n if the_window && form\n the_window.respond({:action => :cancel})\n end\n end\n "),A['$[]=']("script","\n on(:mouseup) do |event|\n the_window = self.find_parent_type(::GxG::Gui::DialogBox)\n form = self.find_parent_type(::GxG::Gui::Form)\n if the_window && form\n page.set_busy true\n ::GxG::CONNECTION.post(form) do |response|\n page.set_busy false\n the_window.respond({:action => :upload, :destination => form.form_data[:destination].to_s})\n end\n end\n end\n "),q=d.$new_component("org.gxg.gui.application.viewport"),q['$title=']("gxg_selection_viewport"),q['$[]']("options")['$[]=']("style",new Map([["overflow","hidden"],["width","100%"],["height","100%"]])),q['$[]']("content")['$<<'](h),o=d.$new_component("org.gxg.gui.window.dialog"),o['$title='](C),o['$[]=']("options",new Map([["window_title",C],["states",new Map([["hidden",!0]])],["width",350],["height",x]])),o['$[]']("content")['$<<'](q);try{return g(d,'dialog_open',[o,D,m],L.$to_proc()),!0}catch(a){if(e.rescue(a,[b('Exception')])){I=a;try{return d.$log_error(new Map([["error",I],["parameters",m]])),!1}finally{e.pop_exception(a)}}else throw a}}else return d.$log_error("You MUST provide a destination path"),!1},-1),d(n,'$choice_dialog',function $(H,q){var ab=$.$$p||a,x=this,L=a,n=a,s=a,E=a,D=a,F=a,_=a,C=a,Z=a,z=a,v=a,u=a,p=a,o=a,A=a,t=a,y=a,V=a,R=a,P=a,N=a,B=a,M=a,K=a,O=a,J=a,Q=a,I=a,S=a,T=a,U=a,m=a,W=a,X=a,Y=a,d=a,r=a,w=a,G=a,aa=a;switch($.$$p=null,H==null&&(H=a),q==null&&(q=a),x.$layout_refresh(),L=(c(n=q)?n:new Map([["title","Choose"]]))['$[]']("title").$to_s(),s=(c(n=q)?n:new Map([["banner","(Please provide some text here)"]]))['$[]']("banner").$to_s(),E=(c(n=q)?n:new Map([["one",""]]))['$[]']("one").$to_s(),D=(c(n=q)?n:new Map([["two",""]]))['$[]']("two").$to_s(),F=(c(n=q)?n:new Map([["three",""]]))['$[]']("three").$to_s(),_=(c(n=q)?n:new Map([["default",""]]))['$[]']("default").$to_s(),C=c(n=(c(Z=q)?Z:new Map([["type","choose"]]))['$[]']("type"))?n:"choose",z=k(x.$layout_content_area()['$[]']("page_width").$to_f(),.25).$to_i(),v=20,u=5,p=j(z,k(f(v,u),2)),o=k(f(v,u),2),A=16,c(i(s.$to_s().$size(),40))?t=k(l(s.$size().$to_f(),40),A.$to_f()).$round().$to_i():t=A,y=16,V=new Map([["component","org.gxg.gui.text"],["options",new Map([["content",s],["style",new Map([["font-size",""+A+"px"],["width","100%"]])]])],["content",[]],["script",""]]),R=new Map([["component","org.gxg.gui.block.table.cell"],["options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["width","100%"],["height",t],["vertical-align","middle"]])]])],["content",[V]],["script",""]]),P=new Map([["component","org.gxg.gui.input.text"],["options",new Map([["title","data"],["content",_],["style",new Map([["background-color","#f2f2f2"],["font-size",""+y+"px"],["width","100%"]])]])],["content",[]],["script",""]]),N=new Map([["component","org.gxg.gui.block.table.cell"],["options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["width","100%"],["vertical-align","middle"]])]])],["content",[P]],["script",""]]),B=new Map([["component","org.gxg.gui.button"],["options",new Map([["content",E],["style",new Map([["padding","2px"],["width","80px"],["height","32px"]])]])],["content",[]],["script",""]]),B['$[]=']("script","\n on(:mouseup) do |event|\n the_window = self.find_parent_type(::GxG::Gui::DialogBox)\n if the_window\n the_window.respond({:action => :one})\n end\n end\n "),M=new Map([["component","org.gxg.gui.block.table.cell"],["options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["width","40%"],["vertical-align","middle"]])]])],["content",[B]],["script",""]]),K=new Map([["component","org.gxg.gui.button"],["options",new Map([["content",D],["style",new Map([["padding","2px"],["width","80px"],["height","32px"]])]])],["content",[]],["script",""]]),K['$[]=']("script","\n on(:mouseup) do |event|\n the_window = self.find_parent_type(::GxG::Gui::DialogBox)\n if the_window\n the_window.respond({:action => :two})\n end\n end\n "),O=new Map([["component","org.gxg.gui.block.table.cell"],["options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["width","40%"],["vertical-align","middle"]])]])],["content",[K]],["script",""]]),J=new Map([["component","org.gxg.gui.button"],["options",new Map([["content",F],["style",new Map([["padding","2px"],["width","80px"],["height","32px"]])]])],["content",[]],["script",""]]),J['$[]=']("script","\n on(:mouseup) do |event|\n the_window = self.find_parent_type(::GxG::Gui::DialogBox)\n if the_window\n the_window.respond({:action => :three})\n end\n end\n "),Q=new Map([["component","org.gxg.gui.block.table.cell"],["options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["width","40%"],["vertical-align","middle"]])]])],["content",[J]],["script",""]]),I=new Map([["component","org.gxg.gui.button"],["options",new Map([["content","Cancel"],["style",new Map([["padding","2px"],["width","80px"],["height","32px"]])]])],["content",[]],["script",""]]),I['$[]=']("script","\n on(:mouseup) do |event|\n the_window = self.find_parent_type(::GxG::Gui::DialogBox)\n if the_window\n the_window.respond({:action => :cancel})\n end\n end\n "),S=new Map([["component","org.gxg.gui.block.table.cell"],["options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["vertical-align","middle"]])]])],["content",[I]],["script",""]]),T=new Map([["component","org.gxg.gui.block.table.row"],["options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["width","100%"]])]])],["content",[R]],["script",""]]),U=new Map([["component","org.gxg.gui.block.table.row"],["options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["width","100%"]])]])],["content",[N]],["script",""]]),m=new Map([["component","org.gxg.gui.block.table.row"],["options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["width","100%"]])]])],["content",[]],["script",""]]),W=new Map([["component","org.gxg.gui.block.table"],["options",new Map([["style",new Map([["padding","5px"],["margin","0px"],["width","100%"]])]])],["content",[T]],["script",""]]),X=new Map([["component","org.gxg.gui.block.table"],["options",new Map([["style",new Map([["padding","5px"],["margin","0px"],["width","100%"]])]])],["content",[U]],["script",""]]),Y=new Map([["component","org.gxg.gui.block.table"],["options",new Map([["style",new Map([["padding","5px"],["margin","0px"],["width","100%"]])]])],["content",[m]],["script",""]]),d=new Map([["component","org.gxg.gui.form"],["options",new Map([["style",new Map([["background-color","#f2f2f2"],["padding",""+v+"px"],["margin",""+u+"px"]])]])],["content",[]],["script",""]]),c(i(s.$size(),0))&&d['$[]']("content")['$<<'](W),C.valueOf()){case"choose":c(i(E.$size(),0))&&m['$[]']("content")['$<<'](M),c(i(D.$size(),0))&&m['$[]']("content")['$<<'](O),c(i(F.$size(),0))&&m['$[]']("content")['$<<'](Q);break;case"alert":r=new Map([["component","org.gxg.gui.button"],["options",new Map([["content","OK"],["style",new Map([["padding","2px"],["width","80px"],["height","32px"]])]])],["content",[]],["script",""]]),r['$[]=']("script","\n on(:mouseup) do |event|\n the_window = self.find_parent_type(::GxG::Gui::DialogBox)\n if the_window\n the_window.respond({:action => :ok})\n end\n end\n "),w=new Map([["component","org.gxg.gui.block.table.cell"],["options",new Map([["style",new Map([["padding","0px"],["margin","0px"]])]])],["content",[r]],["script",""]]),m['$[]']("content")['$<<'](w);break;case"input":m['$[]']("content")['$<<'](S),r=new Map([["component","button"],["options",new Map([["content","OK"],["style",new Map([["padding","2px"],["width","80px"],["height","32px"]])]])],["content",[]],["script",""]]),r['$[]=']("script","\n on(:mouseup) do |event|\n the_window = self.find_parent_type(::GxG::Gui::DialogBox)\n form = self.find_parent_type(:form)\n if the_window && form\n the_window.respond({:action => :ok, :form => form.form_data()})\n end\n end\n "),w=new Map([["component","org.gxg.gui.block.table.cell"],["options",new Map([["style",new Map([["padding","0px"],["margin","0px"]])]])],["content",[r]],["script",""]]),m['$[]']("content")['$<<'](w),d['$[]']("content")['$<<'](X);break;default:a}switch(d['$[]']("content")['$<<'](Y),d['$[]']("options")['$[]']("style")['$[]=']("width",""+z+"px"),c(i(s.$to_s().$size(),0))&&(d['$[]']("content")['$[]'](0)['$[]']("options")['$[]']("style")['$[]=']("width",""+p+"px"),d['$[]']("content")['$[]'](0)['$[]']("options")['$[]']("style")['$[]=']("height",""+t+"px"),d['$[]']("content")['$[]'](0)['$[]']("options")['$[]']("style")['$[]=']("padding","10px 0px 10px 0px"),o=f(o,f(t,20))),h(C,"input")?(d['$[]']("content")['$[]'](1)['$[]']("options")['$[]']("style")['$[]=']("width",""+p+"px"),d['$[]']("content")['$[]'](1)['$[]']("options")['$[]']("style")['$[]=']("height",""+y+"px"),d['$[]']("content")['$[]'](1)['$[]']("options")['$[]']("style")['$[]=']("padding","10px 0px 10px 0px"),o=f(o,f(y,20)),d['$[]']("content")['$[]'](2)['$[]']("options")['$[]']("style")['$[]=']("width",""+p+"px"),d['$[]']("content")['$[]'](2)['$[]']("options")['$[]']("style")['$[]=']("height","32px"),d['$[]']("content")['$[]'](2)['$[]']("options")['$[]']("style")['$[]=']("padding","10px 0px 10px 0px"),o=f(o,52)):(d['$[]']("content")['$[]'](1)['$[]']("options")['$[]']("style")['$[]=']("width",""+p+"px"),d['$[]']("content")['$[]'](1)['$[]']("options")['$[]']("style")['$[]=']("height","32px"),d['$[]']("content")['$[]'](1)['$[]']("options")['$[]']("style")['$[]=']("padding","10px 0px 10px 0px"),o=f(o,52)),o=f(o,32),d['$[]']("options")['$[]']("style")['$[]=']("height",""+j(o,k(f(v,u),2))+"px"),m['$[]']("content").$size().valueOf()){case 1:m['$[]']("content")['$[]'](0)['$[]']("options")['$[]']("style")['$[]=']("padding","5px 0px 5px "+j(l(p,2),25)+"px");break;case 2:m['$[]']("content")['$[]'](0)['$[]']("options")['$[]']("style")['$[]=']("padding","5px 0px 5px "+j(l(p,4),12)+"px"),m['$[]']("content")['$[]'](1)['$[]']("options")['$[]']("style")['$[]=']("padding","5px 0px 5px "+j(l(p,4),12)+"px");break;case 3:m['$[]']("content")['$[]'](0)['$[]']("options")['$[]']("style")['$[]=']("padding","5px 0px 5px "+j(l(p,6),6)+"px"),m['$[]']("content")['$[]'](1)['$[]']("options")['$[]']("style")['$[]=']("padding","5px 0px 5px "+j(l(p,6),6)+"px"),m['$[]']("content")['$[]'](2)['$[]']("options")['$[]']("style")['$[]=']("padding","5px 0px 5px "+j(l(p,6),6)+"px");break;default:a}G=new Map([["component","org.gxg.gui.window.dialog"],["options",new Map([["window_title",L],["states",new Map([["hidden",!0]])],["width",z],["height",o]])],["script",""],["content",[d]]]),G['$[]=']("script","\n on(:keyup) do |event|\n if event[:which] == 27\n self.respond({:action => :cancel})\n end\n end\n ");try{return g(x,'dialog_open',[G,H,q],ab.$to_proc()),!0}catch(a){if(e.rescue(a,[b('Exception')])){aa=a;try{return x.$log_error(new Map([["error",aa],["parameters",new Map]])),!1}finally{e.pop_exception(a)}}else throw a}},-1),d(n,'$vfs_dialog',function R(Q,s){var U=R.$$p||a,d=this,n=a,p=a,o=a,E=a,P=a,k=a,t=a,m=a,O=a,y=a,S=a,i=a,x=a,B=a,C=a,D=a,q=a,F=a,u=a,H=a,I=a,J=a,K=a,L=a,M=a,z=a,A=a,G=a,l=a,N=a,w=a,r=a,T=a;switch(R.$$p=null,Q==null&&(Q=a),s==null&&(s=a),n="Unsupported Dialog Type",p="Unsupported",o=(c(E=s)?E:new Map([["type","folder"]]))['$[]']("type"),o.valueOf()){case"save":case"save":n="Save As ...",p="Save";break;case"folder":case"folder":n="Choose Folder",p="Choose";break;case"object":case"object":n="Select Object",p="Select";break;default:a}switch(P="\n def select(data=nil)\n the_window = self.find_parent_type(::GxG::Gui::DialogBox)\n if the_window\n the_window.settings[:data] = @settings[:data]\n menu_bar_header = page.find_object_by('gxg_path_menu_header')\n if menu_bar_header\n menu_bar_header.set_label(File.basename(@settings[:data]))\n menu_bar_header.set_data(@settings[:data])\n end\n menu = page.find_object_by('gxg_path_menu')\n if menu\n menu.update_menu(@settings[:data])\n end\n sublist = page.find_object_by('gxg_path_subitems')\n if sublist\n sublist.update_appearance()\n end\n end\n end\n ",k=d.$new_component("org.gxg.gui.menu.bar"),k['$title=']("gxg_path_menu_bar"),k['$[]=']("settings",new Map([["path",c(E=s['$[]']("path"))?E:"/"]])),t=d.$new_component("org.gxg.gui.menu.item"),t['$title=']("gxg_path_menu_header"),t['$[]=']("settings",new Map([["label",b('File').$basename(k['$[]']("settings")['$[]']("path"))],["data",a]])),m=d.$new_component("org.gxg.gui.menu"),m['$title=']("gxg_path_menu"),m['$[]=']("settings",new Map([["item_script",P]])),m['$[]=']("script","\n def update_menu(the_path=nil)\n if the_path.is_a?(::String)\n build_list = []\n menu[:content] = []\n #\n menu_manifest = []\n (0..(the_path.split('/').size - 1)).each do |the_index|\n menu_manifest << (the_path.split('/')[0..(the_index)].join('/'))\n end\n menu_manifest.reverse.[1..-1].each do |the_subpath|\n the_item = ::GxG::Database::DetachedHash.new\n the_item[:component] = 'menu_item'\n the_item[:settings] = {:label => File.basename(the_subpath), :data => the_subpath}\n the_item[:options] = {}\n the_item[:script] = @settings[:item_script].to_s\n the_item[:content] = []\n build_list << the_item\n end\n children.values.reverse.each do |the_child|\n the_child.destroy\n end\n if build_list.size > 0\n page.build_components(self, build_list)\n end\n #\n end\n end\n "),O=[],g(e.Range.$new(0,j(k['$[]']("settings")['$[]']("path").$split("/").$size(),1),!1),'each',[],function(b){return b==null&&(b=a),O['$<<'](k['$[]']("settings")['$[]']("path").$split("/")['$[]'](e.Range.$new(0,b,!1)).$join("/"))}),g(O.$reverse()['$[]'](v(1,-1,!1)),'each',[],function e(c){var f=e.$$s==null?this:e.$$s,d=a;return c==null&&(c=a),d=f.$new_component("org.gxg.gui.menu.item"),d['$[]=']("settings",new Map([["label",b('File').$basename(c)],["data",c]])),d['$[]=']("script",P),m['$[]']("content")['$<<'](d)},{$$s:d}),t['$[]']("content")['$<<'](m),k['$[]']("content")['$<<'](t),y=d.$new_component("org.gxg.gui.block.table.cell"),y['$[]=']("options",new Map([["style",new Map([["border","1px solid #c2c2c2"],["padding","0px"],["margin","0px"],["width","100%"]])]])),y['$[]=']("content",[k]),S="\n def highlight()\n self.merge_style({:'background-color' => '#c2c2c2'})\n end\n def unhighlight()\n self.merge_style({:'background-color' => '#ffffff'})\n end\n def select()\n # unhighlight all others\n parent.children.values.each do |the_child|\n the_child.unhighlight()\n end\n # set selection\n self.highlight()\n the_window = self.find_parent_type(::GxG::Gui::DialogBox)\n if the_window\n the_window.settings[:selection] = self\n end\n end\n on(:mouseup) do |the_event|\n self.select()\n end\n ",i=d.$new_component("org.gxg.gui.list"),i['$title=']("gxg_path_subitems"),i['$[]=']("settings",new Map([["list_item_script",S]])),i['$[]=']("options",new Map([["style",new Map([["clear","both"],["list-style","none"],["padding","0px"],["margin","0px"]])]])),i['$[]=']("script","\n def add_list_item(the_icon=nil, the_path=nil, the_profile=nil)\n the_window = self.find_parent_type(::GxG::Gui::DialogBox)\n if the_window\n #\n the_item = ::GxG::Database::DetachedHash.new\n the_item[:component] = 'list_tiem'\n the_item[:settings] = {:label => File.basename(the_path), :data => the_path}\n the_item[:options] = {}\n the_item[:script] = @settings[:list_item_script].to_s\n the_item[:content] = []\n #\n the_window.settings[:manifest][(the_item.uuid.to_s.to_sym)] = {:path => the_path, :profile => the_profile}\n #\n icon_item = ::GxG::Database::DetachedHash.new\n icon_item[:component] = 'image'\n icon_item[:settings] = {}\n icon_item[:options] = {src => the_icon.to_s, :style => {:width => '16px', :height => '16px'}}\n icon_item[:script] = '\n on(:mouseup) do |the_event|\n parent.select()\n end\n '\n icon_item[:content] = []\n #\n label_item = ::GxG::Database::DetachedHash.new\n label_item[:component] = 'label'\n label_item[:settings] = {}\n label_item[:options] = {:content => File.basename(the_path)}\n label_item[:script] = '\n on(:mouseup) do |the_event|\n parent.select()\n end\n '\n label_item[:content] = []\n #\n the_item[:content] << icon_item\n the_item[:content] << label_item\n page.build_components(self, [(the_item)])\n true\n else\n false\n end\n end\n #\n def update_appearance(data=nil)\n the_window = self.find_parent_type(::GxG::Gui::DialogBox)\n if the_window\n dialog_type = (the_window.settings[:type] || :folder)\n the_path = the_window.settings[:data]\n if the_path.is_a?(::String)\n"+" #\n"+" the_window.settings[:selection] = nil\n"+" the_window.settings[:manifest] = {}\n"+" # Clear List\n"+" self.children.values.each do |the_child|\n"+" the_child.destroy\n"+" end\n"+" # Rebuild List\n"+" GxG::CONNECTION.entries({:location => (the_path)}) do |response|\n"+" if response.is_a?(::Hash)\n"+" response[:result].each do |the_profile|\n"+" # add list item\n"+" item_path = (the_path + '/' + the_profile[:title].to_s)\n"+" if dialog_type == :folder\n"+" if [:virtual_directory, :directory, :persisted_array].include?(the_profile[:type].to_s.to_sym)\n"+" self.add_list_item(self.theme_icon('folder.svg'), item_path, the_profile)\n"+" end\n"+" else\n"+" case (the_profile[:type].to_s.to_sym)\n"+" when :virtual_directory, :directory, :persisted_array\n"+" the_icon_path = self.theme_icon('folder.svg')\n"+" when :persisted_hash\n"+" the_icon_path = self.theme_icon('object.svg')\n"+" else\n"+" # Review: further qualify file type icons ??\n"+" the_icon_path = self.theme_icon('file.svg')\n"+" end\n"+" self.add_list_item(the_icon_path, item_path, the_profile)\n"+" end\n"+" #\n"+" end\n"+" #\n"+" end\n"+" end\n"+" #\n"+" end\n"+" end\n"+" end\n"+" "),o.valueOf()){case"save":i['$[]=']("script",f(f(i['$[]']("script"),"\n"),"\n self.set_select_responder do |the_uuid|\n if @manifest[(the_uuid.to_s.to_sym)]\n # nothing\n end\n end\n self.set_open_responder do |the_uuid|\n if @manifest[(the_uuid.to_s.to_sym)]\n if [:virtual_directory, :directory, :persisted_array].include?(@manifest[(the_uuid.to_s.to_sym)][:profile][:type].to_s.to_sym)\n # open folder\n the_window = self.find_parent_type(::GxG::Gui::DialogBox)\n if the_window\n menu_bar = the_window.find_child('path_menu_bar')\n if menu_bar\n GxG::DISPATCHER.post_event(:root) do\n menu_bar.path = @manifest[(the_uuid.to_s.to_sym)][:path]\n end\n end\n end\n end\n end\n end\n "));break;case"folder":i['$[]=']("script",f(f(i['$[]']("script"),"\n"),"\n self.set_select_responder do |the_uuid|\n if @manifest[(the_uuid.to_s.to_sym)]\n # nothing\n end\n end\n self.set_open_responder do |the_uuid|\n if @manifest[(the_uuid.to_s.to_sym)]\n if [:virtual_directory, :directory, :persisted_array].include?(@manifest[(the_uuid.to_s.to_sym)][:profile][:type].to_s.to_sym)\n # open folder\n the_window = self.find_parent_type(::GxG::Gui::DialogBox)\n if the_window\n menu_bar = the_window.find_child('path_menu_bar')\n if menu_bar\n GxG::DISPATCHER.post_event(:root) do\n menu_bar.path = @manifest[(the_uuid.to_s.to_sym)][:path]\n end\n end\n end\n end\n end\n end\n "));break;case"object":i['$[]=']("script",f(f(i['$[]']("script"),"\n"),"\n self.set_select_responder do |the_uuid|\n if @manifest[(the_uuid.to_s.to_sym)]\n # if object selected enable Select button else disable it.\n the_window = self.find_parent_type(::GxG::Gui::DialogBox)\n if the_window\n action_button = the_window.find_child('action_button')\n if action_button\n if [:file, :persisted_hash].include?(@manifest[(the_uuid.to_s.to_sym)][:profile][:type].to_s.to_sym)\n action_button.enable()\n else\n action_button.disable()\n end\n end\n end\n end\n end\n self.set_open_responder do |the_uuid|\n if @manifest[(the_uuid.to_s.to_sym)]\n if [:virtual_directory, :directory, :persisted_array].include?(@manifest[(the_uuid.to_s.to_sym)][:profile][:type].to_s.to_sym)\n # open folder\n # first, disable Select button\n the_window = self.find_parent_type(::GxG::Gui::DialogBox)\n if the_window\n menu_bar = the_window.find_child('path_menu_bar')\n if menu_bar\n GxG::DISPATCHER.post_event(:root) do\n menu_bar.path = @manifest[(the_uuid.to_s.to_sym)][:profile][:path]\n end\n end\n end\n end\n end\n end\n "));break;default:a}x=d.$new_component("org.gxg.gui.block"),x['$[]=']("options",new Map([["style",new Map([["width","100%"],["height","192px"],["overflow-y","scroll"]])]])),x['$[]=']("content",[i]),B=d.$new_component("org.gxg.gui.block.table.cell"),B['$[]=']("options",new Map([["style",new Map([["border","1px solid #c2c2c2"],["padding","0px"],["margin","0px"],["width","100%"]])]])),B['$[]=']("content",[x]),C=d.$new_component("org.gxg.gui.input.text"),C['$title=']("gxg_save_name"),C['$[]=']("options",new Map([["style",new Map([["background-color","#f2f2f2"],["font-size","16px"],["width","100%"]])]])),D=d.$new_component("org.gxg.gui.block.table.cell"),D['$[]=']("options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["width","100%"]])]])),D['$[]=']("content",[C]),q=d.$new_component("org.gxg.gui.input.button.submit"),q['$title=']("gxg_action_button"),q['$[]=']("options",new Map([["content",p],["style",new Map([["padding","0px"],["width","80px"],["height","32px"]])]])),q['$[]=']("script","\n on(:mouseup) do |event|\n the_window = self.find_parent_type(::GxG::Gui::DialogBox)\n form = self.find_parent_type(::GxG::Gui::Form)\n if the_window && form\n the_action = the_window.settings[:type].to_s.to_sym\n the_path = the_window.settings[:data].to_s\n if the_action == :save\n the_path = (the_path + '/' + (form.form_data()[:gxg_save_name] || 'Untitled.data').to_s)\n end\n the_window.respond({:action => the_action, :path => the_path})\n end\n end\n "),F=d.$new_component("org.gxg.gui.block.table.cell"),F['$[]=']("options",new Map([["style",new Map([["padding","10px 0px 0px 35px"],["margin","0px"],["width","50%"]])]])),F['$[]=']("content",[q]),u=d.$new_component("org.gxg.gui.input.button.submit"),u['$title=']("gxg_cancel_button"),u['$[]=']("options",new Map([["content","Cancel"],["style",new Map([["padding","2px"],["width","80px"],["height","32px"]])]])),u['$[]=']("script","\n on(:mouseup) do |event|\n the_window = self.find_parent_type(::GxG::Gui::DialogBox)\n if the_window\n the_window.respond({:action => :cancel})\n end\n end\n "),H=d.$new_component("org.gxg.gui.block.table.cell"),H['$[]=']("options",new Map([["style",new Map([["padding","10px 0px 0px 35px"],["margin","0px"],["width","50%"]])]])),H['$[]=']("content",[u]),I=d.$new_component("org.gxg.gui.block.table.row"),I['$[]=']("options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["width","100%"]])]])),I['$[]=']("content",[y]),J=d.$new_component("org.gxg.gui.block.table.row"),J['$[]=']("options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["width","100%"]])]])),J['$[]=']("content",[B]),K=d.$new_component("org.gxg.gui.block.table.row"),K['$[]=']("options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["width","100%"]])]])),K['$[]=']("content",[D]),L=d.$new_component("org.gxg.gui.block.table.row"),L['$[]=']("options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["width","100%"]])]])),L['$[]=']("content",[H,F]),M=d.$new_component("org.gxg.gui.block.table"),M['$[]=']("options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["width","300px"],["height","32px"]])]])),M['$[]=']("content",[I]),z=d.$new_component("org.gxg.gui.block.table"),z['$[]=']("options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["width","300px"],["height","192px"]])]])),z['$[]=']("content",[J]),A=d.$new_component("org.gxg.gui.block.table"),A['$[]=']("options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["width","300px"],["height","32px"]])]])),A['$[]=']("content",[K]),G=d.$new_component("org.gxg.gui.block.table"),G['$[]=']("options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["width","300px"],["height","32px"]])]])),G['$[]=']("content",[L]),l=d.$new_component("org.gxg.gui.form"),l['$[]=']("options",new Map([["style",new Map([["background-color","#f2f2f2"],["padding","20px"],["margin","5px"],["width","100%"]])]])),l['$[]=']("content",[]),N=330,l['$[]']("content")['$<<'](M),l['$[]']("content")['$<<'](z),(h(o,"save")||h(o,"save"))&&(l['$[]']("content")['$<<'](A),N=f(N,32)),l['$[]']("content")['$<<'](G),w=d.$new_component("org.gxg.gui.application.viewport"),w['$title=']("gxg_selection_viewport"),w['$[]=']("options",new Map([["style",new Map([["overflow","hidden"],["width","100%"],["height","100%"]])]])),w['$[]=']("content",[l]),r=d.$new_component("org.gxg.gui.window.dialog"),r['$title='](n),r['$[]=']("options",new Map([["window_title",n],["states",new Map([["hidden",!0]])],["width",350],["height",N]])),r['$[]=']("content",[w]);try{return g(d,'dialog_open',[r,Q,s],U.$to_proc()),!0}catch(a){if(e.rescue(a,[b('Exception')])){T=a;try{return d.$log_error(new Map([["error",T],["parameters",new Map]])),!1}finally{e.pop_exception(a)}}else throw a}},-1)}(b[0],null,b)}(u[0],u)}(u[0],u)}(u[0],u)},Opal.modules["web/gxg_comm"]=function(f){var l=f.module,k=f.klass,e=f.def,b=f.truthy,d=f.send,j=f.return_ivar,g=f.rb_gt,m=f.rb_lt,i=f.rb_plus,h=f.eqeq,o=f.rb_minus,n=[],a=f.nil,c=f.$$$;return f.add_stubs('is_any?,respond_to?,[]=,to_sym,downcase,to_s,next_message,[],is_a?,keys,call,<<,parse,decode64,log_error,new,shift,encode64,generate,export,include?,to_json,valid_uuid?,uuid_generate,new_message,pull,cancel_timer,get_attribute,>,size,to_i,<,log_info,inspect,element,open?,on,to_proc,body,fail,succeed,+,==,pull_data,base64?,json?,process_detached_import,push,uuid,format,search,constraint,each,clone,gxg_export,push_data,set_busy,encrypt,id,send,socket,basename,split,index,join,-,post_event,sleep,navigate_to,open,gsub,create_channel,import,decrypt,fetch_channel,write,add_periodic_timer,follow_up,heartbeat'),function(p,q){var r=l(p,'GxG'),n=[r].concat(q);return function(h,i){var m=l(h,'Networking'),g=[m].concat(i);return function(h,i,j){var g=k(h,i,'SocketMonitor'),l=[g].concat(j),m=f.$r(l),n=g.$$prototype;return n.event_handlers=a,e(g,'$initialize',function(){var a=this;return a.event_handlers=new Map,a}),e(g,'$on',function g(e){var h=g.$$p||a,f,i=this;return g.$$p=null,e==null&&(e=a),b(e['$is_any?'](c('String'),c('Symbol')))&&b(h['$respond_to?']("call"))?(f=[e.$to_s().$downcase().$to_sym(),h],d(i.event_handlers,'[]=',f),f[f.length-1]):a},-1),e(g,'$follow_up',function(f){var g=this,d=a,e=a;return f==null&&(f=new Map),d=c(m('GxG'),'DISPLAY_DETAILS')['$[]']("socket").$next_message(),b(d['$is_a?'](c('Hash')))&&(e=d.$keys()['$[]'](0),b(g.event_handlers['$[]'](e)['$respond_to?']("call")))?g.event_handlers['$[]'](e).$call(d['$[]'](e)):a},-1)}(g[0],null,g),function(o,l,m){var g=k(o,l,'Socket'),n=[g].concat(m),h=f.$r(n),i=g.$$prototype;return i.inbox=i.socket=a,e(g,'$inbox',j("inbox")),e(g,'$add_to_inbox',function(b){var d=this,e=a;b==null&&(b="");try{return d.inbox['$<<'](c('JSON').$parse(b.$decode64(),new Map([["symbolize_names",!0]])))}catch(a){if(f.rescue(a,[h('Exception')])){e=a;try{return d.$log_error(new Map([["error",e],["parameters",b.$decode64()]]))}finally{f.pop_exception(a)}}else throw a}},-1),e(g,'$error_message',function(a){var b=this;return b.$log_error(new Map([["error",h('Exception').$new(a)]]))}),e(g,'$next_message',function(){var a=this;return a.inbox.$shift()}),e(g,'$write',function(d){var f=this,e=a;return!!(d==null&&(d=""),b(d['$is_any?'](c('Hash'),c(c(c('GxG'),'Database'),'DetachedHash')))&&(b(d['$is_a?'](c('Hash')))?d=h('JSON').$generate(d).$to_s().$encode64():d=h('JSON').$generate(d.$export()).$to_s().$encode64()),e=f.socket,b(e))&&(e.send(d),!0)},-1),e(g,'$close',function(){var d=this,c=a;return!!(c=d.socket,b(c))&&(c.close,d.socket=a,!0)}),e(g,'$open?',function(){var a=this;return!!b(a.socket)}),e(g,'$open',function(k){var i,g=this,j=a,l=a,e=a,m=a;g.socket=a,b(window.location.href['$include?']("https://"))?j="wss://"+k:j="ws://"+k;try{l=new Map([["attach_display",!0]]).$to_json().$encode64(),e=new WebSocket(j),e.onopen=function(a){e.send(l)},e.onmessage=function(a){f.eval("GxG::DISPLAY_DETAILS[:socket].add_to_inbox('"+a.data+"')")},e.onclose=function(a){f.eval("GxG::DISPLAY_DETAILS[:socket].close")},e.onerror=function(a){f.eval("GxG::DISPLAY_DETAILS[:socket].error_message('"+a.message+"')")},g.socket=e}catch(a){if(f.rescue(a,[h('Exception')])){m=a;try{g.$log_error(new Map([["error",m],["parameters",new Map([["url",j.$to_s()]])]]))}finally{f.pop_exception(a)}}else throw a}return b(g.socket)?(i=["socket",g],d(c(c('GxG'),'DISPLAY_DETAILS'),'[]=',i),i[i.length-1]):a}),e(g,'$set_remote_uuid',function(c){var d=this;return!!(c==null&&(c=a),b(h('GxG')['$valid_uuid?'](c)))&&(d.remote_uuid=c.$to_sym(),!0)},-1),e(g,'$initialize',function(){var b=this;return b.uuid=h('GxG').$uuid_generate().$to_sym(),b.remote_uuid=a,b.inbox=[],b})}(g[0],null,g)}(n[0],n),function(p,q){var r=l(p,'Networking'),n=[r].concat(q);return function(t,q,r){var l=k(t,q,'Connector'),s=[l].concat(r),n=f.$r(s),p=l.$$prototype;return p.uuid=p.remote_uuid=p.heart_beat_timer=p.active=p.relative_url=p.host_prefix=p.display_path=p.csrf=a,e(l,'$remote_uuid',j("remote_uuid")),e(l,'$open?',j("active")),e(l,'$close',function(){var d=this,e=a;return e=d.$new_message(new Map([["close",!0]])),e['$[]=']("sender",d.uuid),e['$[]=']("to",d.remote_uuid),d.$pull(e,new Map([["synchronous",!0]])),d.active=!1,d.csrf=a,b(d.heart_beat_timer['$is_a?'](c('Hash')))&&c(n('GxG'),'DISPATCHER').$cancel_timer(d.heart_beat_timer),!0}),e(l,'$post',function p(k,o){var r=p.$$p||a,h=this,l=a,i=a,e=a,q=a,j=a,s=a;return p.$$p=null,k==null&&(k=""),o==null&&(o=new Map),b(h.active)?!!b(k['$is_a?'](c(c(c('GxG'),'Gui'),'Form')))&&(l=k.$get_attribute("action").$to_s(),b(g(l.$size(),0))?b(g(h.relative_url.$to_s().$size(),0))?i=""+h.host_prefix+h.relative_url.$to_s()+l.$to_s()+"?display="+h.display_path.$to_s():i=""+h.host_prefix+l.$to_s()+"?display="+h.display_path.$to_s():b(g(h.relative_url.$to_s().$size(),0))?i=""+h.host_prefix+h.relative_url.$to_s()+"?display="+h.display_path.$to_s():i=""+h.host_prefix+"?display="+h.display_path.$to_s(),e=new XMLHttpRequest,e.open('POST',i,!0),e.timeout=b(q=o['$[]']("timeout"))?q:5e3,e.setRequestHeader('X-Requested-With','XMLHttpRequest'),e.setRequestHeader('Accept','application/json'),e.setRequestHeader('X-CSRF-Token',h.csrf),e.setRequestHeader('Content-Type','multipart/form-data'),j=d(n('Proc'),'new',[],function b(a){var c=b.$$s==null?this:b.$$s;return a==null&&(a=new Map([["error","unknown"]])),c.$log_error(a)},{$$arity:-1,$$s:h}),s=d(n('Proc'),'new',[],function i(){var g=i.$$s==null?this:i.$$s,k=a,h=a,d=a;if(k=e.status.$to_i(),b(m(k,300)))try{return h=c('JSON').$parse(e.response,new Map([["symbolize_names",!0]])),g.$log_info(h.$inspect()),b(r['$respond_to?']("call"))?r.$call(h):a}catch(a){if(f.rescue(a,[n('Exception')])){d=a;try{return g.$log_error(new Map([["error",d],["parameters",e.response]]))}finally{f.pop_exception(a)}}else throw a}else try{return j.$call(c('JSON').$parse(e.response,new Map([["symbolize_names",!0]])))}catch(a){if(f.rescue(a,[n('Exception')])){d=a;try{return g.$log_error(new Map([["error",d],["parameters",e.response]]))}finally{f.pop_exception(a)}}else throw a}},{$$s:h}),e.addEventListener('load',s),e.addEventListener('error',j),e.addEventListener('timeout',j),e.addEventListener('abort',j),e.send(k.$element()),!0):a},-1),e(l,'$download_file',function j(f,g){var i=j.$$p||a,h=this,e=a;return j.$$p=null,f==null&&(f=""),g==null&&(g=a),b(h['$open?']())?!!(b(f['$is_a?'](c('String')))&&b(i))&&(e=h.$new_message(new Map([["download_file",new Map([["path",f]])]])),e['$[]=']("sender",h.uuid),e['$[]=']("to",h.remote_uuid),b(g['$respond_to?']("call"))&&d(e,'on',["fail"],g.$to_proc()),d(e,'on',["success"],function(d){var e=a,f=a;if(d==null&&(d=a),b(d['$is_a?'](c('Hash')))){e=d['$[]']("result")['$[]']("file_name").$to_s(),f=d['$[]']("result")['$[]']("file_data").$decode64();const b=window.streamSaver,c=b.createWriteStream(e,{}),a=c.getWriter(),g=(new TextEncoder).encode(f);return a.write(g),a.close(),i.$call(!0)}return i.$call(!1)}),c(n('GxG'),'CONNECTION').$pull(e),!0):a},-1),e(l,'$push',function(i,l){var h=this,k=a,o=a,e=a,p=a,j=a,q=a;return i==null&&(i=a),l==null&&(l=new Map),b(h.active)?!!b(i['$is_a?'](c(c(c('GxG'),'Events'),'Message')))&&(b(g(h.relative_url.$to_s().$size(),0))?k=""+h.host_prefix+h.relative_url.$to_s()+"?display="+h.display_path.$to_s():k=""+h.host_prefix+"?display="+h.display_path.$to_s(),o=i.$body().$to_json().$to_s(),e=new XMLHttpRequest,e.open('PUT',k,!0),e.timeout=b(p=l['$[]']("timeout"))?p:5e3,e.setRequestHeader('X-Requested-With','XMLHttpRequest'),e.setRequestHeader('Accept','application/json'),e.setRequestHeader('X-CSRF-Token',h.csrf),e.setRequestHeader('Content-Type','application/json'),j=d(n('Proc'),'new',[],function(b){return b==null&&(b=a),i.$fail(b)},-1),q=d(n('Proc'),'new',[],function g(){var k=g.$$s==null?this:g.$$s,d=a,h=a;if(d=e.status.$to_i(),b(m(d,300)))try{return i.$succeed(c('JSON').$parse(e.response,new Map([["symbolize_names",!0]])))}catch(a){if(f.rescue(a,[n('Exception')])){h=a;try{return k.$log_error(new Map([["error",h],["parameters",e.response]]))}finally{f.pop_exception(a)}}else throw a}else return j.$call(d)},{$$s:h}),e.addEventListener('load',q),e.addEventListener('error',j),e.addEventListener('timeout',j),e.addEventListener('abort',j),e.send(o),!0):a},-1),e(l,'$pull',function(k,p){var j=this,q=a,o=a,e=a,r=a,l=a,s=a;return k==null&&(k=a),p==null&&(p=new Map([["synchronous",!1]])),b(j.active)?!!b(k['$is_a?'](c(c(c('GxG'),'Events'),'Message')))&&(q="display="+j.display_path.$to_s()+"&details="+k.$body().$to_json().$encode64(),b(g(j.relative_url.$to_s().$size(),0))?o=i(i(i(j.host_prefix.$to_s(),j.relative_url.$to_s()),"?"),q):o=i(i(j.host_prefix.$to_s(),"?"),q),e=new XMLHttpRequest,h(p['$[]']("synchronous"),!0)?e.open('GET',o.$to_s(),!1):(e.open('GET',o.$to_s(),!0),e.timeout=b(r=p['$[]']("timeout"))?r:6e5),e.setRequestHeader('X-Requested-With','XMLHttpRequest'),e.setRequestHeader('Accept','application/json'),l=d(n('Proc'),'new',[],function(b){return b==null&&(b=a),k.$fail(b)},-1),s=d(n('Proc'),'new',[],function g(){var i=g.$$s==null?this:g.$$s,d=a,h=a;if(d=e.status.$to_i(),b(m(d,300)))try{return k.$succeed(c('JSON').$parse(e.response,new Map([["symbolize_names",!0]])))}catch(a){if(f.rescue(a,[n('Exception')])){h=a;try{return i.$log_error(new Map([["error",h],["parameters",e.response]]))}finally{f.pop_exception(a)}}else throw a}else return l.$call(d)},{$$s:j}),e.addEventListener('load',s),e.addEventListener('error',l),e.addEventListener('timeout',l),e.addEventListener('abort',l),e.send(null),!0):a},-1),e(l,'$push_message',function(b){return b==null&&(b=a),a},-1),e(l,'$pull_message',function(b){return b==null&&(b=new Map),a},-1),e(l,'$process_pending',function(b){return b==null&&(b=new Map),a},-1),e(l,'$push_object_portions',function b(c,d){var e=b.$$p||a;return b.$$p=null,c==null&&(c=new Map),d==null&&(d=a),a},-1),e(l,'$search_database',function g(e,f){var h=g.$$p||a,i=this;return!!(g.$$p=null,e==null&&(e=new Map),f==null&&(f=a),b(e['$is_a?'](c('Hash')))&&b(h))&&(d(i,'pull_data',[new Map([["search_database",new Map([["criteria",e]])]]),f],h.$to_proc()),!0)},-1),e(l,'$search_pull',function h(g,e){var i=h.$$p||a,j=this;return!!(h.$$p=null,g==null&&(g=new Map),e==null&&(e=a),b(g['$is_a?'](c('Hash')))&&b(i))&&(d(j,'pull_data',[new Map([["search_pull",new Map([["criteria",g]])]]),e],function g(d){var h=g.$$s==null?this:g.$$s,j=a;if(d==null&&(d=a),b(d['$is_a?'](c('Hash'))))if(b(d['$[]']("result")))if(b(d['$[]']("result")['$is_a?'](c('String'))))if(b(d['$[]']("result").$to_s()['$base64?']())&&(d=d['$[]']("result").$decode64()),b(d.$to_s()['$json?']()))try{return d=c('JSON').$parse(d.$to_s(),new Map([["symbolize_names",!0]])),i.$call(c(c('GxG'),'Database').$process_detached_import(d))}catch(a){if(f.rescue(a,[n('Exception')])){j=a;try{return h.$log_error(new Map([["error",j],["parameters",new Map([["data",d]])]]))}finally{f.pop_exception(a)}}else throw a}else return a;else return h.$log_error(new Map([["error",n('Exception').$new("Malformed Response Data")],["parameters",new Map([["data",d['$[]']("result")]])]]));else return b(d['$[]']("error"))&&b(e['$respond_to?']("call"))?e.$call(d):a;else return a},{$$s:j}),!0)},-1),e(l,'$destroy_object',function g(e,f){var h=g.$$p||a,i=this;return!!(g.$$p=null,e==null&&(e=a),f==null&&(f=a),b(e)&&b(h))&&(d(i,'pull_data',[new Map([["destroy_object",new Map([["path",e]])]]),f],function(d){return d==null&&(d=a),b(d['$is_a?'](c('Hash')))?h.$call(d):a}),!0)},-1),e(l,'$push_data',function i(f,g){var j=i.$$p||a,h=this,e=a;return!!(i.$$p=null,f==null&&(f=new Map),g==null&&(g=a),b(f['$is_a?'](c('Hash')))&&b(j))&&(e=h.$new_message(f),e['$[]=']("sender",h.uuid),e['$[]=']("to",h.remote_uuid),b(g['$respond_to?']("call"))&&d(e,'on',["fail"],g.$to_proc()),d(e,'on',["success"],function(b){return b==null&&(b=a),j.$call(b)}),c(n('GxG'),'CONNECTION').$push(e),!0)},-1),e(l,'$push_object',function m(e,h){var l=m.$$p||a,o=this,i=a,f=a,j=a,k=a;return m.$$p=null,e==null&&(e=new Map),h==null&&(h=a),!!(b(e['$is_a?'](c('Hash')))&&b(l))&&(i=a,f=new Map,b(e['$[]']("object")['$is_any?'](c(c('GxG'),'BinaryArray'),c('String')))?b(g(e['$[]']("path").$to_s().$size(),0))?(f['$[]=']("path",e['$[]']("path")),f['$[]=']("object",e['$[]']("object").$to_s().$encode64())):i="You MUST specify a :path to store the data into.":b(e['$[]']("object")['$is_a?'](c(c(c('GxG'),'Database'),'DetachedHash')))?(b(g(e['$[]']("path").$to_s().$size(),0))&&f['$[]=']("path",e['$[]']("path")),f['$[]=']("uuid",e['$[]']("object").$uuid().$to_s()),j=[],k=new Map([["formats",new Map],["records",[]]]),b(g(e['$[]']("object").$format().$to_s().$size(),0))&&j['$<<'](e['$[]']("object").$format()),d(e['$[]']("object"),'search',[],function(d,e,f){return d==null&&(d=a),e==null&&(e=a),f==null&&(f=a),b(d['$is_a?'](c(c(c('GxG'),'Database'),'DetachedHash')))&&b(g(d.$format().$to_s().$size(),0))&&j['$<<'](d.$format()),b(d['$is_a?'](c(c(c('GxG'),'Database'),'PersistedArray')))&&b(g(d.$constraint().$to_s().$size(),0))?j['$<<'](d.$constraint()):a}),d(j,'each',[],function(f){var g,e=a;return f==null&&(f=a),e=c(n('GxG'),'DB')['$[]']("formats")['$[]'](f.$to_s().$to_sym()).$clone(),b(e['$is_a?'](c('Hash')))?(e['$[]=']("content",e['$[]']("content").$gxg_export()),(g=[f.$to_s().$to_sym(),e],d(k['$[]']("formats"),'[]=',g),g[g.length-1])):a}),k['$[]']("records")['$<<'](e['$[]']("object").$export()),f['$[]=']("object",k)):i="Invalid Data Type",b(i)?(b(h['$respond_to?']("call"))&&h.$call(new Map([["result",a],["error",i]])),!1):(d(o,'push_data',[new Map([["put_object",f]]),h],function(d){return d==null&&(d=a),b(d['$is_a?'](c('Hash')))?l.$call(d):a}),!0))},-1),e(l,'$pull_data',function j(g,h){var k=j.$$p||a,i=this,e=a;return j.$$p=null,g==null&&(g=new Map),h==null&&(h=a),b(g)&&b(k)?(e=i.$new_message(g),e['$[]=']("sender",i.uuid),e['$[]=']("to",i.remote_uuid),b(h['$respond_to?']("call"))&&d(e,'on',["fail"],h.$to_proc()),d(e,'on',["success"],function g(d){var h=g.$$s==null?this:g.$$s,e=a,i=a;if(d==null&&(d=a),b(d['$is_a?'](c('Hash')))){if(e=a,b(d['$[]']("result")['$is_a?'](c('String')))){if(b(d['$[]']("result").$to_s()['$base64?']())&&(e=d['$[]']("result").$decode64()),b(e.$to_s()['$json?']()))try{e=c('JSON').$parse(e.$to_s(),new Map([["symbolize_names",!0]]))}catch(a){if(f.rescue(a,[n('Exception')])){i=a;try{h.$log_error(new Map([["error",i],["parameters",new Map([["data",e]])]]))}finally{f.pop_exception(a)}}else throw a}return k.$call(e)}return h.$log_error(new Map([["error",n('Exception').$new("Malformed Response Data")],["parameters",new Map([["data",d['$[]']("result")]])]]))}else return a},{$$s:i}),c(n('GxG'),'CONNECTION').$pull(e)):a},-1),e(l,'$pull_object',function h(e,f){var i=h.$$p||a,j=this,g=a;return!!(h.$$p=null,e==null&&(e=a),f==null&&(f=a),b(e)&&b(i))&&(b(n('GxG')['$valid_uuid?'](e.$to_s()))?g=new Map([["get_object",new Map([["uuid",e]])]]):g=new Map([["get_object",new Map([["path",e]])]]),d(j,'pull_data',[g,f],function(d){return d==null&&(d=a),b(d['$is_a?'](c('Hash')))?i.$call(c(c('GxG'),'Database').$process_detached_import(d)):a}),!0)},-1),e(l,'$load_format',function h(g,e){var i=h.$$p||a,j=this;return!!(h.$$p=null,g==null&&(g=new Map),e==null&&(e=a),b(g)&&b(i))&&(d(j,'pull_data',[new Map([["get_format",g]]),e],function g(d){var h=g.$$s==null?this:g.$$s,j=a;if(d==null&&(d=a),b(d['$is_a?'](c('Hash'))))if(b(d['$[]']("result")))if(b(d['$[]']("result")['$is_a?'](c('String'))))if(b(d['$[]']("result").$to_s()['$base64?']())&&(d=d['$[]']("result").$decode64()),b(d.$to_s()['$json?']()))try{return d=c('JSON').$parse(d.$to_s(),new Map([["symbolize_names",!0]])),c(c('GxG'),'Database').$process_detached_import(d),i.$call(new Map([["result",!0]]))}catch(a){if(f.rescue(a,[n('Exception')])){j=a;try{return h.$log_error(new Map([["error",j],["parameters",new Map([["data",d]])]]))}finally{f.pop_exception(a)}}else throw a}else return a;else return h.$log_error(new Map([["error",n('Exception').$new("Malformed Response Data")],["parameters",new Map([["data",d['$[]']("result")]])]]));else return b(d['$[]']("error"))&&b(e['$respond_to?']("call"))?e.$call(d):a;else return a},{$$s:j}),!0)},-1),e(l,'$store_format',function l(e,j){var k=l.$$p||a,m=this,f=a,i=a;return!!(l.$$p=null,e==null&&(e=new Map),j==null&&(j=a),b(e)&&b(k))&&(h(e.$keys().$size(),0)?f=c(c('GxG'),'DB')['$[]']("formats").$keys():(f=[],d(c(c('GxG'),'DB')['$[]']("formats").$keys(),'each',[],function(d){return d==null&&(d=a),b(g(e['$[]']("uuid").$to_s().$size(),0))&&h(d,e['$[]']("uuid"))&&(b(f['$include?'](d))||f['$<<'](d)),b(g(e['$[]']("type").$to_s().$size(),0))&&h(c(c('GxG'),'DB')['$[]']("formats")['$[]'](d)['$[]']("type"),e['$[]']("type"))&&(b(f['$include?'](d))||f['$<<'](d)),b(g(e['$[]']("ufs").$to_s().$size(),0))&&h(c(c('GxG'),'DB')['$[]']("formats")['$[]'](d)['$[]']("ufs"),e['$[]']("ufs"))&&(b(f['$include?'](d))||f['$<<'](d)),b(g(e['$[]']("title").$to_s().$size(),0))&&h(c(c('GxG'),'DB')['$[]']("formats")['$[]'](d)['$[]']("title"),e['$[]']("title"))&&(b(f['$include?'](d))||f['$<<'](d)),b(g(e['$[]']("version").$to_s().$size(),0))&&h(c(c('GxG'),'DB')['$[]']("formats")['$[]'](d)['$[]']("version"),e['$[]']("version"))?b(f['$include?'](d))?a:f['$<<'](d):a})),i=new Map([["formats",new Map],["records",[]]]),d(f,'each',[],function(b){var e,f=a;return b==null&&(b=a),f=c(c('GxG'),'DB')['$[]']("formats")['$[]'](b.$to_s().$to_sym()).$clone(),f['$[]=']("content",f['$[]']("content").$gxg_export()),(e=[b.$to_s().$to_sym(),f],d(i['$[]']("formats"),'[]=',e),e[e.length-1])}),d(m,'push_data',[new Map([["put_format",i]]),j],function(d){return d==null&&(d=a),b(d['$is_a?'](c('Hash')))?k.$call(d):a}),!0)},-1),e(l,'$get_permissions',function g(e,f){var h=g.$$p||a,i=this;return!!(g.$$p=null,e==null&&(e=a),f==null&&(f=a),b(e)&&b(h))&&(d(i,'pull_data',[new Map([["get_permissions",new Map([["path",e]])]]),f],function(d){return d==null&&(d=a),b(d['$is_a?'](c('Hash')))?h.$call(d):a}),!0)},-1),e(l,'$call_event',function h(f,e,g){var i=h.$$p||a,j=this;return h.$$p=null,f==null&&(f="core"),e==null&&(e=new Map([["interface",!0]])),g==null&&(g=a),b(j['$open?']())?!!(b(e['$is_a?'](c('Hash')))&&b(i))&&(d(j,'pull_data',[new Map([["call_event",new Map([["service",f.$to_s()],["op_frame",e]])]]),g],i.$to_proc()),!0):a},-1),e(l,'$library_pull',function g(e,f){var h=g.$$p||a,i=this;return g.$$p=null,e==null&&(e=new Map),f==null&&(f=a),b(i['$open?']())?!!(b(e['$is_a?'](c('Hash')))&&b(h))&&(d(i,'pull_data',[new Map([["get_library",e]]),f],function(b){return b==null&&(b=a),h.$call(b)}),!0):a},-1),e(l,'$format_pull',function g(e,f){var h=g.$$p||a,i=this;return g.$$p=null,e==null&&(e=new Map),f==null&&(f=a),b(i['$open?']())?!!(b(e['$is_any?'](c('Array'),c('Hash')))&&b(h))&&(d(i,'pull_data',[new Map([["format_pull",e]]),f],function(b){return b==null&&(b=a),h.$call(b)}),!0):a},-1),e(l,'$format_push',function g(e,f){var h=g.$$p||a,i=this;return g.$$p=null,e==null&&(e=new Map),f==null&&(f=a),b(i['$open?']())?!!(b(e['$is_a?'](c('Hash')))&&b(h))&&(d(i,'push_data',[new Map([["format_push",e]]),f],function(b){return b==null&&(b=a),h.$call(b)}),!0):a},-1),e(l,'$format_list',function g(e,f){var h=g.$$p||a,i=this;return g.$$p=null,e==null&&(e=new Map),f==null&&(f=a),b(i['$open?']())?!!(b(e['$is_a?'](c('Hash')))&&b(h))&&(d(i,'pull_data',[new Map([["format_list",e]]),f],function(b){return b==null&&(b=a),h.$call(b)}),!0):a},-1),e(l,'$admin',function g(e,f){var h=g.$$p||a,i=this;return g.$$p=null,e==null&&(e=new Map),f==null&&(f=a),b(i['$open?']())?!!(b(e['$is_a?'](c('Hash')))&&b(h))&&(d(i,'pull_data',[new Map([["admin",e]]),f],function(b){return b==null&&(b=a),h.$call(b)}),!0):a},-1),e(l,'$vfs',function g(e,f){var h=g.$$p||a,i=this;return g.$$p=null,e==null&&(e=new Map),f==null&&(f=a),!!b(i['$open?']())&&(!!(b(e['$is_a?'](c('Hash')))&&b(h))&&(!!b(["vfs_mkfile","vfs_mkdir","vfs_rename","vfs_destroy","vfs_copy","vfs_move","set_permissions"]['$include?'](e.$keys()['$[]'](0)))&&(d(i,'pull_data',[e,f],function(b){return b==null&&(b=a),h.$call(b)}),!0)))},-1),e(l,'$app_state_push',function g(e,f){var h=g.$$p||a,i=this;return!!(g.$$p=null,e==null&&(e=new Map),f==null&&(f=a),b(e['$is_a?'](c('Hash')))&&b(h))&&(d(i,'push_data',[new Map([["app_state_push",new Map([["application",e['$[]']("application")],["data",e['$[]']("data")]])]]),f],function(d){return d==null&&(d=a),b(d['$is_a?'](c('Hash')))?h.$call(d):a}),!0)},-1),e(l,'$app_state_pull',function g(e,f){var h=g.$$p||a,i=this;return g.$$p=null,e==null&&(e=new Map),f==null&&(f=a),b(i['$open?']())?!!(b(e['$is_a?'](c('Hash')))&&b(h))&&(d(i,'pull_data',[new Map([["app_state_pull",new Map([["application",e['$[]']("application")]])]]),f],function(b){return b==null&&(b=a),h.$call(b)}),!0):a},-1),e(l,'$application_open',function j(e,f){var h=j.$$p||a,i=this,g=a;return j.$$p=null,e==null&&(e=new Map),f==null&&(f=a),b(i['$open?']())?!!(b(e['$is_a?'](c('Hash')))&&b(h))&&(b(e['$[]']("name"))?d(i,'pull_data',[new Map([["application_open",new Map([["restore",b(g=e['$[]']("restore"))&&g],["name",e['$[]']("name")]])]]),f],function(b){return b==null&&(b=a),h.$call(b)}):d(i,'pull_data',[new Map([["application_open",new Map([["restore",b(g=e['$[]']("restore"))&&g],["path",e['$[]']("path")]])]]),f],function(b){return b==null&&(b=a),h.$call(b)}),!0):a},-1),e(l,'$application_close',function g(e,f){var h=g.$$p||a,i=this;return g.$$p=null,e==null&&(e=new Map),f==null&&(f=a),b(i['$open?']())?!!(b(e['$is_a?'](c('Hash')))&&b(h))&&(d(i,'pull_data',[new Map([["application_close",new Map([["application",e['$[]']("application")]])]]),f],function(b){return b==null&&(b=a),h.$call(b)}),!0):a},-1),e(l,'$application_list',function e(c){var f=e.$$p||a,g=this;return e.$$p=null,c==null&&(c=a),b(g['$open?']())?!!b(f)&&(d(g,'pull_data',[new Map([["application_list",!0]]),c],function(b){return b==null&&(b=a),f.$call(b)}),!0):a},-1),e(l,'$application_menu',function e(c){var f=e.$$p||a,g=this;return e.$$p=null,c==null&&(c=a),b(g['$open?']())?!!b(f)&&(d(g,'pull_data',[new Map([["application_menu",!0]]),c],function(b){return b==null&&(b=a),f.$call(b)}),!0):a},-1),e(l,'$entries',function g(e,f){var h=g.$$p||a,i=this;return g.$$p=null,e==null&&(e=new Map),f==null&&(f=a),b(i['$open?']())?!!(b(e['$is_a?'](c('Hash')))&&b(h))&&(c(n('GxG'),'DISPLAY_DETAILS')['$[]']("object").$set_busy(!0),d(i,'pull_data',[new Map([["entries",new Map([["path",e['$[]']("path")]])]]),f],function(b){return b==null&&(b=a),h.$call(b),c(n('GxG'),'DISPLAY_DETAILS')['$[]']("object").$set_busy(!1)}),!0):a},-1),e(l,'$heartbeat',function(){var f=this,e=a;return b(f.active)?(e=f.$new_message(new Map([["heartbeat",!0]])),e['$[]=']("sender",f.uuid.$to_s()),e['$[]=']("to",f.remote_uuid.$to_s()),d(e,'on',["success"],function(e){var f;return e==null&&(e=a),b(e['$is_a?'](c('Hash')))?(h(e['$[]']("result")['$[]']("status"),"credentialed"),(f=["server_status",e['$[]']("result")['$[]']("server").$to_s().$to_sym()],d(c(n('GxG'),'DISPLAY_DETAILS'),'[]=',f),f[f.length-1])):a}),c(n('GxG'),'CONNECTION').$pull(e)):a}),e(l,'$update_credential',function l(g,i){var j=l.$$p||a,f=this,k=a,e=a;return l.$$p=null,g==null&&(g=new Map),i==null&&(i=a),b(f['$open?']())&&b(g['$is_a?'](c('Hash')))&&b(j)?(k=g.$to_json().$to_s().$encrypt(f.csrf.$to_s()).$encode64(),e=f.$new_message(new Map([["update_credential",k]])),e['$[]=']("sender",f.uuid),e['$[]=']("to",f.remote_uuid),e['$[]']("body")['$[]=']("thread",e.$id().$to_s()),d(e,'on',["success"],function f(e){var g=f.$$s==null?this:f.$$s;return e==null&&(e=a),b(e['$is_a?'](c('Hash')))&&h(e['$[]']("status"),"credentialed")&&(c(n('GxG'),'DISPLAY_DETAILS')['$[]=']("logged_in",!0),d(n('GXG_FEDERATION')['$[]']("connections").$keys(),'each',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),d.$socket().$send(new Map([["open_channel",b.$to_s()]]).$to_json().$encode64(),"text")},{$$s:g})),j.$call(e)},{$$s:f}),b(i)&&d(e,'on',["fail"],function(b){return b==null&&(b=a),i.$call(b)}),c(n('GxG'),'CONNECTION').$push(e)):a},-1),e(l,'$downgrade_credential',function g(){var i=g.$$p||a,e=this,f=a;return g.$$p=null,b(e.active)?(f=e.$new_message(new Map([["downgrade_credential",!0]])),f['$[]=']("sender",e.uuid.$to_s()),f['$[]=']("to",e.remote_uuid.$to_s()),d(f,'on',["success"],function f(e){var j=f.$$s==null?this:f.$$s,g=a;return e==null&&(e=a),b(e['$is_a?'](c('Hash')))&&h(e['$[]']("status"),"uncredentialed")?(d(n('GXG_FEDERATION')['$[]']("connections").$keys(),'each',[],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),d.$socket().$send(new Map([["close_channel",b.$to_s()]]).$to_json().$encode64(),"text")},{$$s:j}),c(n('GxG'),'DISPLAY_DETAILS')['$[]=']("logged_in",!1),b(i['$respond_to?']("call"))&&i.$call(e),g=new CustomEvent('credentialchanged',{detail:e['$[]']("status").$to_s()}),window.dispatchEvent(g)):a},{$$s:e}),c(n('GxG'),'CONNECTION').$pull(f)):a}),e(l,'$action',function b(c,d){var e=b.$$p||a;return b.$$p=null,c==null&&(c=new Map),d==null&&(d=a),a},-1),e(l,'$relative_url',j("relative_url")),e(l,'$query',j("query")),e(l,'$article',j("article")),e(l,'$display_path',j("display_path")),e(l,'$secret',j("csrf")),e(l,'$initialize',function(){var e=this,q=a,p=a,l=a,j=a,m=a,k=a;return b(window.location.href['$include?']("https://"))?e.host_prefix=i("https://",window.location.host):e.host_prefix=i("http://",window.location.host),e.relative_url="",q=n('File').$basename(window.location.pathname),p=window.location.pathname.$split("/"),l=p.$index(q),b(l['$is_a?'](c('Numeric')))&&b(g(l,1))&&(e.relative_url=p['$[]'](f.Range.$new(0,o(l,1),!1)).$join("/")),e.article=a,e.query=new Map,j=window.location.href.$split("?")['$[]'](1),b(j)?(e.article=j.$split("#")['$[]'](1),j=j.$split("#")['$[]'](0),b(j['$include?']("&"))?m=j.$split("&"):m=j.$split("&"),d(m,'each',[],function g(c){var b,e=g.$$s==null?this:g.$$s,f=a;return e.query==null&&(e.query=a),c==null&&(c=a),f=c.$split("="),(b=[f['$[]'](0).$to_s().$to_sym(),f['$[]'](1)],d(e.query,'[]=',b),b[b.length-1])},{$$s:e})):e.article=window.location.href.$split("#")['$[]'](1),e.uuid=n('GxG').$uuid_generate().$to_sym(),e.remote_uuid=a,e.active=!0,e.display_path=a,e.in_busy=!1,e.out_busy=!1,e.pending=new Map,e.channels=new Map,e.buffers=new Map,e.csrf=a,e.the_connector=e,k=e.$new_message(new Map([["introduction",e.uuid.$to_s()]])),k['$[]=']("sender",e.uuid.$to_s()),k['$[]=']("to",e.host_prefix.$to_s()),d(k,'on',["success"],function j(e){var g=j.$$s==null?this:j.$$s;return e==null&&(e=a),h(e['$[]']("result"),"OK")?(b(e['$[]']("csrf"))&&(g.csrf=e['$[]']("csrf")),h(e['$[]']("status"),"credentialed")?c(n('GxG'),'DISPLAY_DETAILS')['$[]=']("logged_in",!0):c(n('GxG'),'DISPLAY_DETAILS')['$[]=']("logged_in",!1),b(e['$[]']("relative_url"))&&(g.relative_url=e['$[]']("relative_url")),h(e['$[]']("display"),"unavailable"))?alert('Display Resource Unavailable'):(g.display_path=e['$[]']("display"),g.active=!0,d(c(n('GxG'),'DISPATCHER'),'post_event',["display"],function j(){var e=j.$$s==null?this:j.$$s,g;for(e.query==null&&(e.query=a),e.article==null&&(e.article=a),e.relative_url==null&&(e.relative_url=a);!h(document.readyState.$to_s(),"complete");)e.$sleep(.5);return c(c('GxG'),'DISPLAY_DETAILS')['$[]=']("query",e.query),c(c('GxG'),'DISPLAY_DETAILS')['$[]=']("article",e.article),g=function(a){f.GxG.$eval("GxG::DISPLAY_DETAILS[:socket].close"),a&&(a.returnValue="closing...");for(var b=0;b<5e8;b++);return"closing..."},window.addEventListener('unload',g,!1),window.addEventListener('onunload',g,!1),window.addEventListener('beforeunload',g,!1),window.addEventListener('onbeforeunload',g,!1),window.onbeforeunload=g,window.beforeunload=g,d(c(n('GxG'),'DISPATCHER'),'post_event',["display"],function(){return c(c(c('GxG'),'Gui'),'Vdom').$navigate_to(window.location.pathname)}),c(c('GxG'),'DISPLAY_DETAILS')['$[]=']("socket",c(c(c('GxG'),'Networking'),'Socket').$new()),c(c('GxG'),'DISPLAY_DETAILS')['$[]']("socket").$open(i(i(i(window.location.host,"/"),e.relative_url),"/ws").$gsub("//","/")),d(c(c('GxG'),'SOCKET_MONITOR'),'on',["attach_socket"],function h(g){var e=h.$$s==null?this:h.$$s,f=a;return e.uuid==null&&(e.uuid=a),e.remote_uuid==null&&(e.remote_uuid=a),g==null&&(g=a),b(c('GxG')['$valid_uuid?'](g))?(f=e.$new_message(new Map([["attach_socket",g.$to_s()]])),f['$[]=']("sender",e.uuid),f['$[]=']("to",e.remote_uuid),d(f,'on',["success"],function d(e){var b=d.$$s==null?this:d.$$s;return b.uuid==null&&(b.uuid=a),e==null&&(e=a),c(c('GxG'),'CHANNELS').$create_channel(b.uuid)},{$$s:e}),c(n('GxG'),'CONNECTION').$push(f)):a},{$$s:e}),d(c(c('GxG'),'SOCKET_MONITOR'),'on',["payload"],function h(f){var g=h.$$s==null?this:h.$$s,d=a,e=a;return g.csrf==null&&(g.csrf=a),f==null&&(f=a),d=c(c(c('GxG'),'Events'),'Message').$import(f.$to_s().$decode64().$decrypt(g.csrf)),b(d['$is_a?'](c(c(c('GxG'),'Events'),'Message')))&&(e=c(c('GxG'),'CHANNELS').$fetch_channel(d['$[]']("to")),b(e)||(c(c('GxG'),'CHANNELS').$create_channel(d['$[]']("to")),e=c(c('GxG'),'CHANNELS').$fetch_channel(d['$[]']("to"))),b(e))?e.$write(d):a},{$$s:e}),d(c(c('GxG'),'DISPATCHER'),'add_periodic_timer',[new Map([["interval",.333]])],function(){return c(c('GxG'),'SOCKET_MONITOR').$follow_up()})},{$$s:g})):a},{$$s:e}),d(k,'on',["fail"],function c(b){var d=c.$$s==null?this:c.$$s;return b==null&&(b=a),d.active=!1,d.$log_error(new Map([["error",n('Exception').$new("Communication Error")],["parameters",new Map([["response",b]])]]))},{$$s:e}),d(c(n('GxG'),'DISPATCHER'),'post_event',["communications"],function a(){var b=a.$$s==null?this:a.$$s;return c(n('GxG'),'CONNECTION').$pull(k),b.heart_beat_timer=d(c(n('GxG'),'DISPATCHER'),'add_periodic_timer',[new Map([["interval",60]])],function(){return c(n('GxG'),'CONNECTION').$heartbeat()})},{$$s:e}),e})}(n[0],null,n)}(n[0],n)}(n[0],n)},Opal.queue(function(d){var i=d.module,c=d.const_set,h=d.klass,e=d.def,a=d.top,g=[],f=d.nil,b=d.$$$;return d.add_stubs('require,to_i,new,private,[]'),a.$require("opal"),a.$require("opal/paths"),a.$require("bigdecimal"),a.$require("buffer"),a.$require("base64"),a.$require("console"),a.$require("date"),a.$require("delegate"),a.$require("enumerator"),a.$require("forwardable"),a.$require("iconv"),a.$require("json"),a.$require("js"),a.$require("observer"),a.$require("opal-parser"),a.$require("opal-platform"),a.$require("pathname"),a.$require("pp"),a.$require("promise"),a.$require("securerandom"),a.$require("singleton"),a.$require("stringio"),a.$require("strscan"),a.$require("thread"),a.$require("time"),a.$require("deps/chronic"),a.$require("web/gxg"),a.$require("web/gxg_augments"),a.$require("web/gxg_elements"),a.$require("web/gxg_events"),a.$require("web/gxg_database"),a.$require("web/gxg_libraries"),a.$require("web/gxg_applications"),a.$require("web/gxg_vdom"),a.$require("web/gxg_foundation"),a.$require("web/gxg_layout"),a.$require("web/gxg_windows"),a.$require("web/gxg_gui"),a.$require("web/gxg_comm"),function(d,e){var g=i(d,'GxG'),a=[g].concat(e);return c(a[0],'DISPLAY_DETAILS',new Map([["server_status","running"],["logged_in",!1],["host_path",""],["use_ssl",!1],["socket",f],["object",f],["theme","default"],["query",new Map],["article",f],["mode","browsing"]])),c(a[0],'LAYOUT',new Map([["top-left",new Map],["top",new Map],["top-right",new Map],["right",new Map],["bottom-right",new Map],["bottom",new Map],["bottom-left",new Map],["left",new Map]])),c(a[0],'LAYOUT_LIMITS',new Map([["top",0],["left",0],["bottom",window.innerHeight.$to_i()],["right",window.innerWidth.$to_i()],["page_width",window.innerWidth.$to_i()],["page_height",window.innerHeight.$to_i()]])),c(a[0],'APPLICATIONS',new Map([["processes",new Map],["libraries",new Map],["viewports",new Map],["prefetching",!1]])),c(a[0],'ANIMATION',new Map([["animations",new Map],["assets",new Map]])),c(a[0],'DB',new Map([["formats",new Map]])),c(a[0],'CONNECTION',b(b(b('GxG'),'Networking'),'Connector').$new()),c(a[0],'SOCKET_MONITOR',b(b(b('GxG'),'Networking'),'SocketMonitor').$new()),c(a[0],'THEMES',new Map),c(a[0],'PAGES',new Map),c(a[0],'DOCUMENTS',new Map)}(g[0],g),function(c,d){var a=h(c,d,'Object');return a.$private(),e(a,'$page',function(){return b(b('GxG'),'DISPLAY_DETAILS')['$[]']("object")}),e(a,'$applications',function(){return b(b('GxG'),'APPLICATIONS')['$[]']("processes")}),e(a,'$libraries',function(){return b(b('GxG'),'APPLICATIONS')['$[]']("libraries")}),e(a,'$viewports',function(){return b(b('GxG'),'APPLICATIONS')['$[]']("viewports")}),e(a,'$connector',function(){return b(b('GxG'),'CONNECTION')}),e(a,'$socket',function(){return b(b('GxG'),'DISPLAY_DETAILS')['$[]']("socket")}),e(a,'$sockets',function(){return b(b('GxG'),'SOCKET_MONITOR')}),e(a,'$documents',function(){return b(b('GxG'),'DOCUMENTS')})}(g[0],null)}),Opal.queue(function(a){var b=a.Kernel,c=a.nil;return a.add_stubs('exit'),b.$exit()})