From 398d20fa73d80ff9c9a6eb5f8e7fe66fe722722d Mon Sep 17 00:00:00 2001 From: "G. Gibson" Date: Sat, 28 Mar 2026 11:11:27 -0700 Subject: [PATCH] altered Hash/Array/Detached/Persisted path system --- Public/www/javascript/gxg.js | 2 +- seeds/gxg-framework-current.gem | Bin 241664 -> 241664 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/Public/www/javascript/gxg.js b/Public/www/javascript/gxg.js index 05ba913..7184488 100644 --- a/Public/www/javascript/gxg.js +++ b/Public/www/javascript/gxg.js @@ -1 +1 @@ -(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 k=f.klass,e=f.def,w=f.module,n=f.const_set,C=f.return_ivar,c=f.truthy,s=f.gvars,d=f.send,v=f.alias,B=f.slice,u=f.to_a,q=f.send2,p=f.find_super,m=f.defs,j=f.rb_plus,t=f.rb_lt,y=f.rb_times,g=f.eqeq,h=f.rb_gt,l=f.range,z=f.not,x=f.rb_minus,o=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,content,join,to_enum,=~,to_sym,first,dirname,basename,delete,class,gxg_import,try_convert,process'),function(b,c,d){var f=k(b,c,'Buffer'),g=[f].concat(d);return function(c,d){var b=k(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 k(b[0],null,'Field'),k(b[0],null,'PersistedArray'),(k(b[0],null,'PersistedHash'),a)}(b[0],b)}(i[0],i),function(j,l,m){var g=k(j,l,'Logger'),i=[g].concat(m),h=f.$r(i);return n(i[0],'DEBUG',0),n(i[0],'INFO',1),n(i[0],'WARN',2),n(i[0],'ERROR',3),n(i[0],'FATAL',4),n(i[0],'UNKNOWN',5),n(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;s.$==null&&(s.$=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")+"#"+s.$.$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=k(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,l,n){var g=k(i,l,'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())}),m(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),m(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(j(j("T%T",c(t(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),j(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),j(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=k(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=k(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(n,o,p){var i=k(n,o,'String'),q=[i].concat(p),m=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['$[]'](l(0,6,!1)),"binary:")&&c(d['$[]'](l(7,-1,!1))['$base64?']())&&h['$[]='](f,b(m('GxG'),'ByteArray').$new(d['$[]'](l(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 m('Base64').$strict_decode64(b),!0}catch(a){if(f.rescue(a,[m('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,[m('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,k=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=j(b,1),c(h(b,255)))?b=0:a:(b=x(b,1),c(t(b,0)))?b=255:a})}),(g=[f,b],d(e,'[]=',g),g[g.length-1])}),k=e.$to_s(),k):g.$dup()},-1),e(i,'$decrypt',function(f){var g=this,i=a,e=a,k=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(t(b,0)))?b=255:a:(b=j(b,1),c(h(b,255)))?b=0:a})}),(g=[f,b],d(e,'[]=',g),g[g.length-1])}),k=e.$to_s(),k):g.$dup()},-1),e(i,'$to_d',function(){var a=this;return a.$BigDecimal(a)})}(i[0],null,i),function(p,q,s){var n=k(p,q,'Hash'),t=[n].concat(s),i=f.$r(t);return m(n,'$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),m(n,'$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(n,'$iterative',function r(){var s=r.$$p||a,k=this,m=a,q=a,n=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),n=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=n.$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)),o(e['$[]']("object").$object_id(),a.$object_id())&&(t=n.$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(n,'$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(n,'$process!',function b(){var e=b.$$p||a,c=this;return b.$$p=null,d(c,'iterative',[],e.$to_proc()),c}),e(n,'$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(n,'$paths_to',function(n,f){var u=this,p=a,e=a,k=a,s=a,t=a,q=a,m=a;return n==null&&(n=a),f==null&&(f=""),p=[],g(f['$[]'](0),"/")||(f=j("/",f)),c(h(f.$size(),1))?e=f.$split("/")['$[]'](l(1,-1,!1)).$reverse():e=[],k=u.$get_at_path(f),s=[new Map([["selector",a],["container",k],["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=k,m=!1,c(k['$is_any?'](b('Hash'),b('Array'),b('Struct'),b(b(b('GxG'),'Database'),'PersistedHash'),b(b(b('GxG'),'Database'),'PersistedArray')))?d(k,'process!',[],function(d,f,h){var l=a,k=a;return d==null&&(d=a),f==null&&(f=a),h==null&&(h=a),o(q.$object_id(),h.$object_id())&&(l=t.$call(h),c(l)&&(e=l['$[]']("prefix").$split("/").$reverse(),g(e.$size(),0)&&e['$<<']("")),q=h),c(f['$is_a?'](i('Symbol')))?k=j(":",f.$to_s()):k=f.$to_s(),k=k.$gsub("/","%2f"),e.$unshift(k),m=!1,c(d['$is_a?'](b(b(b('GxG'),'Database'),'Field')))?g(d.$content(),n)&&(m=!0):g(d,n)&&(m=!0),c(m)&&p['$<<'](j("/",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",f],["container",d],["prefix",e.$reverse().$join("/")]])),e.$shift(),a}):p['$<<'](j("/",e.$join("/"))),p},-1),e(n,'$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","/"),g(d['$[]'](0),":")&&(d=d['$[]'](l(1,-1,!1)).$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(n,'$set_at_path',function(f,j){var m=this,k=a,i=a,e=a,d=a;return f==null&&(f="/"),j==null&&(j=a),k=a,o(f,"/")&&(i=m.$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","/"),g(d['$[]'](0),":")&&(d=d['$[]'](l(1,-1,!1)).$to_sym()))),c(d)&&(i['$[]='](d,j),k=i['$[]'](d)))),k},-1),e(n,'$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(n,'$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}),m(n,'$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 n=k(p,q,'Array'),t=[n].concat(s),i=f.$r(t);return m(n,'$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),m(n,'$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(n,'$iterative',function r(){var s=r.$$p||a,k=this,m=a,q=a,n=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),n=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=n.$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)),o(e['$[]']("object").$object_id(),a.$object_id())&&(t=n.$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(n,'$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(n,'$process!',function b(){var e=b.$$p||a,c=this;return b.$$p=null,d(c,'iterative',[],e.$to_proc()),c}),e(n,'$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(n,'$paths_to',function(n,f){var u=this,p=a,e=a,k=a,s=a,t=a,q=a,m=a;return n==null&&(n=a),f==null&&(f=""),p=[],g(f['$[]'](0),"/")||(f=j("/",f)),c(h(f.$size(),1))?e=f.$split("/")['$[]'](l(1,-1,!1)).$reverse():e=[],k=u.$get_at_path(f),s=[new Map([["selector",a],["container",k]])],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=k,m=!1,c(k['$is_any?'](b('Hash'),b('Array'),b('Struct'),b(b(b('GxG'),'Database'),'PersistedHash'),b(b(b('GxG'),'Database'),'PersistedArray')))?d(k,'process!',[],function(d,f,h){var l=a,k=a;return d==null&&(d=a),f==null&&(f=a),h==null&&(h=a),o(q.$object_id(),h.$object_id())&&(l=t.$call(h),c(l)&&(e=l['$[]']("prefix").$split("/").$reverse(),g(e.$size(),0)&&e['$<<']("")),q=h),c(f['$is_a?'](i('Symbol')))?k=j(":",f.$to_s()):k=f.$to_s(),k=k.$gsub("/","%2f"),e.$unshift(k),m=!1,c(d['$is_a?'](b(b(b('GxG'),'Database'),'Field')))?g(d.$content(),n)&&(m=!0):g(d,n)&&(m=!0),c(m)&&p['$<<'](j("/",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",f],["container",d],["prefix",e.$reverse().$join("/")]])),e.$shift(),a}):p['$<<'](j("/",e.$join("/"))),p},-1),e(n,'$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","/"),g(d['$[]'](0),":")&&(d=d['$[]'](l(1,-1,!1)).$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(n,'$set_at_path',function(f,j){var m=this,k=a,i=a,e=a,d=a;return f==null&&(f="/"),j==null&&(j=a),k=a,o(f,"/")&&(i=m.$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","/"),g(d['$[]'](0),":")&&(d=d['$[]'](l(1,-1,!1)).$to_sym()))),c(d)&&(i['$[]='](d,j),k=i['$[]'](d)))),k},-1),e(n,'$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}),m(n,'$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],["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,l=g.defs,c=g.truthy,e=g.send,f=g.eqeq,m=g.thrower,h=g.rb_gt,k=g.rb_plus,r=g.klass,d=g.def,j=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 l(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')]]])}),l(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')]}),l(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),l(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),l(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),l(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}),l(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),l(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 j(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=k(g,1):a}),f(d.$keys().$size(),g))h=b,c.$throw(a,j.$$is_lambda);else return a})}catch(a){if(a===c)return a.$v;throw a}finally{c.is_orphan=!0}}(),h},-1),l(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),l(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),l(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()['$[]'](j(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()['$[]'](j(0,255,!1)).$to_sym().$inspect()]])),d=d.$to_s()['$[]'](j(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),l(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),l(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=k(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=k(b,k(":"+c.$to_s()+" => ",e.property_links['$[]'](c)['$[]']("content").$inspect())),f(d,c)?a:b=k(b,", ")},{$$s:c}),k(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(l,g){var e=this,n=a,i=a,m=a,d=a;if(l==null&&(l=a),g==null&&(g=a),c(e['$alive?']())||e.$raise(q('Exception'),"Attempted to alter a defunct structure"),n=a,c(l['$is_a?'](b('Symbol'))))if(c(h(l.$to_s().$size(),256))&&(e.$log_warn(new Map([["warning","Attempted oversized key usage (limited to 256 characters), truncated "+l.$inspect()+" to "+l.$to_s()['$[]'](j(0,255,!1)).$to_sym().$inspect()]])),l=l.$to_s()['$[]'](j(0,255,!1)).$to_sym()),i=l.$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['$[]'](l.$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",l.$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",k(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(k(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()['$[]'](j(0,255,!1)).$to_sym().$inspect()]])),d=d.$to_s()['$[]'](j(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()['$[]'](j(0,255,!1)).$to_sym().$inspect()]])),d=d.$to_s()['$[]'](j(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(p,g){var u=this,l=a,d=a,i=a,s=a,t=a,r=a,n=a;return p==null&&(p=a),g==null&&(g=""),l=[],f(g['$[]'](0),"/")||(g="/"['$<<'](g)),c(h(g.$size(),1))?d=g.$split("/")['$[]'](j(1,-1,!1)).$reverse():d=[],i=u.$get_at_path(g),s=[new Map([["selector",a],["container",i]])],t=e(q('Proc'),'new',[],function(b){var c=a;return b==null&&(b=a),c=a,function(){try{var d=m('break');return e(s,'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}),r=i,n=!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(g,e,h){var j=a,i=a;return g==null&&(g=a),e==null&&(e=a),h==null&&(h=a),o(r.$object_id(),h.$object_id())&&(j=t.$call(h),c(j)&&(d=j['$[]']("prefix").$split("/").$reverse(),f(d.$size(),0)&&d['$<<']("")),r=h),c(e['$is_a?'](q('Symbol')))?i=k(":",e.$to_s()):i=e.$to_s(),i['$gsub!']("/","%2f"),d.$unshift(i),n=!1,f(g,p)&&(n=!0),c(n)&&l['$<<']("/"['$<<'](d.$reverse().$join("/"))),c(g['$is_any?'](b('Array'),b('Hash'),b('Struct'),b(b(b('GxG'),'Database'),'DetachedHash'),b(b(b('GxG'),'Database'),'DetachedArray')))&&s.$unshift(new Map([["selector",e],["container",g],["prefix",d.$reverse().$join("/")]])),d.$shift(),a}):l['$<<']("/"['$<<'](d.$join("/"))),l},-1),d(n,'$get_at_path',function(d){var i=this,b=a,g=a,k=a;return d==null&&(d="/"),b=a,f(d,"/")?b=i:(g=[i],k=d.$split("/"),function(){try{var d=m('break');return e(k.$to_enum(),'each',[],function k(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,e['$gsub!']("%2f","/"),f(e['$[]'](0),":")&&(e=e['$[]'](j(1,-1,!1)).$to_sym()))),c(e))if(b=g.$first()['$[]'](e),c(b['$is_a?'](q('NilClass'))))d.$throw(a,k.$$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,k){var m=this,l=a,i=a,e=a,d=a;return g==null&&(g="/"),k==null&&(k=a),l=a,o(g,"/")&&(i=m.$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,d['$gsub!']("%2f","/"),f(d['$[]'](0),":")&&(d=d['$[]'](j(1,-1,!1)).$to_sym()))),c(d)&&(i['$[]='](d,k),l=i['$[]'](d)))),l},-1)}(B[0],null,B),function(D,A,B){var l=r(D,A,'DetachedArray'),C=[l].concat(B),q=g.$r(C),x=l.$$prototype;return x.element_links=x.uuid=x.title=x.version=x.constraint=x.parent=x.format=a,l.$private(),d(l,'$element_destroy',function(b){return b==null&&(b=a),a},-1),d(l,'$element_write',function(b){return b==null&&(b=a),a},-1),d(l,'$load_element_links',i(a)),d(l,'$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}),l.$public(),d(l,'$uuid',function(){var a=this;return a.uuid.$clone()}),d(l,'$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(l,'$title',function(){var a=this;return a.title.$clone()}),d(l,'$title=',function(b){var d=this;return b==null&&(b=a),c(b)?(d.title=b.$to_s()['$[]'](j(0,255,!1)),d.$increment_version()):a},-1),d(l,'$version',function(){var a=this;return a.version.$clone()}),d(l,'$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(l,'$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(l,'$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(l,'$constraint',function(){var a=this;return a.constraint.$clone()}),d(l,'$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(l,'$parent',w("parent")),d(l,'$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(l,'$get_permissions',i(a)),d(l,'$set_permissions',function(b,c){return b==null&&(b=a),c==null&&(c=a),a},-1),d(l,'$reservation',i(a)),d(l,'$write_permission?',i(!0)),d(l,'$write_reserved?',i(!0)),d(l,'$release_reservation',i(!0)),d(l,'$get_reservation',i(!0)),d(l,'$wait_for_reservation',function(b){return b==null&&(b=a),!0},-1),d(l,'$get_delegate',i(a)),d(l,'$set_delegate',function(b){return b==null&&(b=a),a},-1),d(l,'$increment_version',function(){var b=this;return c(b['$alive?']())&&c(b['$write_reserved?']())?b.version=t(p(k(b.version,1e-4),1e4).$to_i().$to_f(),1e4):a}),d(l,'$save_version',i(a)),d(l,'$clear_constraint',function(){var b=this;return c(b['$alive?']())&&c(b.constraint)&&(b.constraint=a),!0}),d(l,'$constraint',function(){var a=this;return a.constraint.$clone()}),d(l,'$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(l,'$refresh_links',i(a)),d(l,'$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(l,'$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=k(b,d.element_links['$[]'](c)['$[]']("content").$inspect()),f(c,n(d.element_links.$size(),1))?a:b=k(b,", ")},{$$s:c}),k(b,"]")}),d(l,'$alive?',i(!0)),d(l,'$db_address',i(a)),d(l,'$deactivate',i(a)),d(l,'$save',i(a)),d(l,'$destroy',i(a)),d(l,'$size',function(){var a=this;return a.element_links.$size()}),d(l,'$structure_attached?',i(!1)),d(l,'$structure_detach',i(!0)),d(l,'$[]=',function(i,h){var g=this,l=a,j=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))?j="set_value":c(g.constraint)?g.$raise(q('Exception'),"Formatted - the structure cannot be altered"):j="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(j,"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(j.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(k(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(k(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(l,'$[]',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(l,'$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(l,'$<<',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(l,'$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(l,'$pop',function(){var a=this;return a.$delete_at(n(a.element_links.$size(),1))}),d(l,'$shift',function(){var a=this;return a.$delete_at(0)}),d(l,'$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(l,'$unshift',function(b){var c=this;return b==null&&(b=a),c.$insert(0,b)},-1),d(l,'$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(l,'$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(l,'$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(l,'$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(l,'$sync_export',function(a){var b=this;return a==null&&(a=new Map),b.$save()},-1),d(l,'$first',function(){var b=this;return c(h(b.element_links.$size(),0))?b['$[]'](0):a}),d(l,'$last',function(){var b=this;return c(h(b.element_links.$size(),0))?b['$[]'](n(b.element_links.$size(),1)):a}),d(l,'$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(l,'$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(l,'$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(l,'$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(l,"process","iterative"),d(l,'$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(l,'$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(l,'$paths_to',function(p,g){var u=this,l=a,d=a,i=a,s=a,t=a,r=a,n=a;return p==null&&(p=a),g==null&&(g=""),l=[],f(g['$[]'](0),"/")||(g="/"['$<<'](g)),c(h(g.$size(),1))?d=g.$split("/")['$[]'](j(1,-1,!1)).$reverse():d=[],i=u.$get_at_path(g),s=[new Map([["selector",a],["container",i]])],t=e(q('Proc'),'new',[],function(b){var c=a;return b==null&&(b=a),c=a,function(){try{var d=m('break');return e(s,'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}),r=i,n=!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(g,e,h){var j=a,i=a;return g==null&&(g=a),e==null&&(e=a),h==null&&(h=a),o(r.$object_id(),h.$object_id())&&(j=t.$call(h),c(j)&&(d=j['$[]']("prefix").$split("/").$reverse(),f(d.$size(),0)&&d['$<<']("")),r=h),c(e['$is_a?'](q('Symbol')))?i=k(":",e.$to_s()):i=e.$to_s(),i['$gsub!']("/","%2f"),d.$unshift(i),n=!1,f(g,p)&&(n=!0),c(n)&&l['$<<']("/"['$<<'](d.$reverse().$join("/"))),c(g['$is_any?'](b('Array'),b('Hash'),b('Struct'),b(b(b('GxG'),'Database'),'DetachedHash'),b(b(b('GxG'),'Database'),'DetachedArray')))&&s.$unshift(new Map([["selector",e],["container",g],["prefix",d.$reverse().$join("/")]])),d.$shift(),a}):l['$<<']("/"['$<<'](d.$join("/"))),l},-1),d(l,'$get_at_path',function(d){var i=this,b=a,g=a,k=a;return d==null&&(d="/"),b=a,f(d,"/")?b=i:(g=[i],k=d.$split("/"),function(){try{var d=m('break');return e(k.$to_enum(),'each',[],function k(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,e['$gsub!']("%2f","/"),f(e['$[]'](0),":")&&(e=e['$[]'](j(1,-1,!1)).$to_sym()))),c(e))if(b=g.$first()['$[]'](e),c(b['$is_a?'](q('NilClass'))))d.$throw(a,k.$$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(l,'$set_at_path',function(g,k){var m=this,l=a,i=a,e=a,d=a;return g==null&&(g="/"),k==null&&(k=a),l=a,o(g,"/")&&(i=m.$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,d['$gsub!']("%2f","/"),f(d['$[]'](0),":")&&(d=d['$[]'](j(1,-1,!1)).$to_sym()))),c(d)&&(i['$[]='](d,k),l=i['$[]'](d)))),l},-1),d(l,'$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,k){var f=r(i,j,'PeristedHash'),m=[f].concat(k),d=g.$r(m);return l(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.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,i){var d=this,g=a;return f==null&&(f=new Map),i==null&&(i=new Map),c(f['$is_a?'](b(b(j('GxG'),'Database'),'DetachedHash')))?(d.uuid=f.$uuid().$to_s().$to_sym(),c(h(f['$[]']("title").$to_s().$size(),0))?d.title=f['$[]']("title").$to_s():d.title=f.$title().$to_s()):(d.uuid=(c(g=f['$[]']("uuid"))?g:b('GxG').$uuid_generate()).$to_s().$to_sym(),d.title=(c(g=f['$[]']("title"))?g:"Untitled Component "+d.uuid.$to_s()).$to_s()),d.component=(c(g=f['$[]']("component"))?g:"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(i['$[]']("application"))?d.application=i['$[]']("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()}) \ No newline at end of file +(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()}) \ No newline at end of file diff --git a/seeds/gxg-framework-current.gem b/seeds/gxg-framework-current.gem index 571ffc3e6aa3d70a440622fe32588825bc3b4005..c1cbc02a4ce9eca4c444141d6abe372d502792f2 100644 GIT binary patch delta 220481 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 z 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%0AXh`3^aW!NLh&p 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ࣞX88NI)jrn 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 C_^PY` delta 220548 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