gxg-server/Public/www/javascript/gxg.js
2026-06-09 14:52:44 -07:00

941 lines
No EOL
2.4 MiB
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

(function(e){"use strict";if(typeof globalThis!="undefined"?e=globalThis:typeof global!="undefined"?e=global:typeof window!="undefined"&&(e=window),e.console==null&&(e.console={}),typeof e.console=="object"?c=e.console:c={},"log"in c||(c.log=function(){}),"warn"in c||(c.warn=c.log),typeof e.Opal!="undefined")return c.warn("Opal already loaded. Loading twice can cause troubles, please fix your setup."),e.Opal;var o,i,a,c,l,m,f,g,v,j,_,O,E,T,D,I,B,$,Q,J,t=e.Opal={},ee;t.global=e,t.config={missing_require_severity:"error",unsupported_features_severity:"warning",experimental_features_severity:"warning",enable_stack_trace:!0},E=Function.prototype.call,Q=Function.prototype.bind,v=Object.hasOwn||E.bind(Object.prototype.hasOwnProperty),a=Object.setPrototypeOf,_=E.bind(Array.prototype.slice),J=E.bind(Array.prototype.splice),D=4,I=D;function V(){return I+=2,I}t.uid=V,t.id=function(e){return e.$$is_number?e*2+1:(e.$$id==null&&n(e,"$$id",V()),e.$$id)},l=t.gvars={},t.exit=function(e){l.DEBUG&&c.log("Exited with status "+e)},t.exceptions=[],t.pop_exception=function(e){var n=t.exceptions.pop();n===e||(n?l["!"]=n:l["!"]=i)};function s(e,n){if(e||(e=t.Exception||Error),g&&g.$raise)arguments.length>2?g.$raise(e.$new.apply(e,_(arguments,1))):g.$raise(e,n);else throw e.$new?e.$new(n):new e(n)}$={value:void 0,enumerable:!1,configurable:!0,writable:!0};function n(e,t,n){typeof e=="string"?e[t]=n:($.value=n,Object.defineProperty(e,t,$))}t.prop=n,t.defineProperty=t.prop,t.slice=_,f=t.truthy=function(e){return!1!==e&&i!==e&&void 0!==e&&null!==e&&(!(e instanceof Boolean)||!0===e.valueOf())},t.falsy=function(e){return!f(e)},t.type_error=function(e,n,o,i){e=e.$$class,i&&o?(i=i.$$class,s(t.TypeError,"can't convert "+e+" into "+n+" ("+e+"#"+o+" gives "+i+")")):s(t.TypeError,"no implicit conversion of "+e+" into "+n)},t.coerce_to=function(e,n,s,o){var i;return s==="to_int"&&n===t.Integer&&e.$$is_number?e<0?Math.ceil(e):Math.floor(e):s==="to_str"&&n===t.String&&e.$$is_string?e:t.is_a(e,n)?e:e["$respond_to?"].$$pristine&&e.$method_missing.$$pristine?(i=e[u(s)],(i==null||i.$$stub)&&t.type_error(e,n),i.apply(e,o)):(e["$respond_to?"](s)||t.type_error(e,n),o==null&&(o=[]),t.send(e,s,o))},t.respond_to=function(e,n,s){if(e==null||!e.$$class)return!1;s=!!s;var o=e[n];if(e["$respond_to?"].$$pristine){{if(typeof o=="function"&&!o.$$stub)return!0;if(!e["$respond_to_missing?"].$$pristine)return t.send(e,e["$respond_to_missing?"],[n.substr(1),s])}}else return t.send(e,e["$respond_to?"],[n.substr(1),s])},t.trace_class=!1,t.tracers_for_class=[];function Y(e){var n,s,o;for(n=0,o=t.tracers_for_class.length;n<o;n++)s=t.tracers_for_class[n],s.trace_object=e,s.block.$call(s)}function L(e,n){if(e.$$autoload[n].loaded){if(e.$$autoload[n].loaded&&!e.$$autoload[n].required&&e.$$autoload[n].exception)throw e.$$autoload[n].exception}else{e.$$autoload[n].loaded=!0;try{t.Kernel.$require(e.$$autoload[n].path)}catch(t){throw e.$$autoload[n].exception=t,t}if(e.$$autoload[n].required=!0,e.$$const[n]!=null)return e.$$autoload[n].success=!0,e.$$const[n]}}function b(e,t){if(e){if(e.$$const[t]!=null)return e.$$const[t];if(e.$$autoload&&e.$$autoload[t])return L(e,t)}}function ce(e,t){var n,s,o;if(e.length===0)return;for(n=0,o=e.length;n<o;n++){if(s=e[n].$$const[t],s!=null)return s;if(e[n].$$autoload&&e[n].$$autoload[t])return L(e[n],t)}}function A(e,t){var n,s,o;if(e==null)return;s=r(e);for(n=0,o=s.length;n<o;n++){if(s[n].$$const&&v(s[n].$$const,t))return s[n].$$const[t];if(s[n].$$autoload&&s[n].$$autoload[t])return L(s[n],t)}}function he(e,t){if(e==null||e.$$is_module)return A(o,t)}function H(e,t){return(e||o).$const_missing(t)}t.const_get_local=function(e,n,i){var a;if(e==null)return;return e==="::"&&(e=o),!e.$$is_module&&!e.$$is_class&&s(t.TypeError,e.toString()+" is not a class/module"),a=b(e,n),a!=null||i?a:H(e,n)},t.const_get_qualified=function(e,i,a){var r,c,l,d=t.const_cache_version;if(i==null)return r=b(o,e),r??t.const_get_qualified(o,e,a);if(e==null)return;return e==="::"&&(e=o),!e.$$is_module&&!e.$$is_class&&s(t.TypeError,e.toString()+" is not a class/module"),(c=e.$$const_cache)==null&&(n(e,"$$const_cache",Object.create(null)),c=e.$$const_cache),l=c[i],l==null||l[0]!==d?((r=b(e,i))!=null||(r=A(e,i))!=null,c[i]=[d,r]):r=l[1],r!=null||a?r:H(e,i)},t.const_cache_version=1,t.const_get_relative=function(e,s,o){var i,r,c,a=e[0],l=t.const_cache_version;return(r=e.$$const_cache)==null&&(n(e,"$$const_cache",Object.create(null)),r=e.$$const_cache),c=r[s],c==null||c[0]!==l?((i=b(a,s))!=null||(i=ce(e,s))!=null||(i=A(a,s))!=null||(i=he(a,s))!=null,r[s]=[l,i]):i=c[1],i!=null||o?i:H(a,s)};function d(e,s,a){var r=!0;return(e==null||e==="::")&&(e=o),a.$$is_a_module&&((a.$$name==null||a.$$name===i)&&(a.$$name=s),a.$$base_module==null&&(a.$$base_module=e)),e.$$const=e.$$const||Object.create(null),(s in e.$$const||"$$autoload"in e&&s in e.$$autoload)&&(r=!1),e.$$const[s]=a,e.$$=e.$$const,t.const_cache_version++,e===o&&(t[s]=a),n(e,s,a),r&&e.$const_added&&!e.$const_added.$$pristine&&e.$const_added(s),a}t.const_set=d,t.constants=function(e,n){n==null&&(n=!0);var i,a,c,d,s=[e],l={};n&&(s=s.concat(r(e))),n&&e.$$is_module&&(s=s.concat([t.Object]).concat(r(t.Object)));for(a=0,d=s.length;a<d;a++){if(i=s[a],e!==o&&i==o)break;for(c in i.$$const)l[c]=!0;if(i.$$autoload)for(c in i.$$autoload)l[c]=!0}return Object.keys(l)},t.const_remove=function(e,n){if(t.const_cache_version++,e.$$const[n]!=null){var o=e.$$const[n];return delete e.$$const[n],o}if(e.$$autoload&&e.$$autoload[n])return delete e.$$autoload[n],i;s(t.NameError,"constant "+e+"::"+e.$name()+" not defined")},t.const_get_relative_factory=function(e){return function(n,s){return t.$$(e,n,s)}},t.$$=t.const_get_relative,t.$$$=t.const_get_qualified,t.$r=t.const_get_relative_factory;function q(e){return e!=null&&(e.$$bridge?e:!!e.$$super&&q(e.$$super))}function h(e,s,o){if((u=q(s))?r=function(){var e=new(Q.apply(u.$$constructor,R(null,arguments)));return a(e,r.$$prototype),e}:r=function(){},e&&e!==i&&n(r,"displayName","::"+e),n(r,"$$name",e),n(r,"$$constructor",r),n(r,"$$prototype",r.prototype),n(r,"$$const",{}),n(r,"$$is_class",!0),n(r,"$$is_a_module",!0),n(r,"$$super",s),n(r,"$$cvars",{}),n(r,"$$own_included_modules",[]),n(r,"$$own_prepended_modules",[]),n(r,"$$ancestors",[]),n(r,"$$ancestors_cache_version",null),n(r,"$$subclasses",[]),n(r,"$$cloned_from",[]),n(r.$$prototype,"$$class",r),t.Class&&a(r,t.Class.prototype),s!=null){if(a(r.$$prototype,s.$$prototype),o!==!0)if(typeof WeakRef!="undefined"){var r,c,l,u,d=[];for(c=0;c<s.$$subclasses.length;c++)l=s.$$subclasses[c],l.deref()!==void 0&&d.push(l);d.push(new WeakRef(r)),s.$$subclasses=d}else s.$$subclasses.push(r);s.$$meta&&t.build_class_singleton_class(r)}return r}t.allocate_class=h;function se(e,n){var o=b(e,n);if(o)return o.$$is_class||s(t.TypeError,n+" is not a class"),o}function ne(e,n){e.$$super!==n&&s(t.TypeError,"superclass mismatch for class "+e.$$name)}t.klass=function(e,n,i){e==null||e=="::"?e=o:!e.$$is_class&&!e.$$is_module&&(e=e.$$class),n!=null&&(!n.hasOwnProperty||n.hasOwnProperty&&!n.hasOwnProperty("$$is_class"))&&(n.constructor&&n.constructor.name=="Function"?(r=n,n=o):s(t.TypeError,"superclass must be a Class ("+(n.constructor&&(n.constructor.name||n.constructor.$$name)||typeof n)+" given)"));var r,a=se(e,i);return a!=null?n&&ne(a,n):(n==null&&(n=o),a=h(i,n),d(e,i,a),n.$inherited&&n.$inherited(a),r&&t.bridge(r,a)),t.trace_class&&Y(a),a};function k(e){var o=function(){},s=o;return e&&n(o,"displayName",e+".constructor"),n(s,"$$name",e),n(s,"$$prototype",o.prototype),n(s,"$$const",{}),n(s,"$$is_module",!0),n(s,"$$is_a_module",!0),n(s,"$$cvars",{}),n(s,"$$iclasses",[]),n(s,"$$own_included_modules",[]),n(s,"$$own_prepended_modules",[]),n(s,"$$ancestors",[s]),n(s,"$$ancestors_cache_version",null),n(s,"$$cloned_from",[]),a(s,t.Module.prototype),s}t.allocate_module=k;function oe(e,n){var i=b(e,n);return i==null&&e===o&&(i=A(o,n)),i&&!i.$$is_module&&i!==o&&s(t.TypeError,n+" is not a module"),i}t.module=function(e,n){var s;return e==null||e=="::"?e=o:!e.$$is_class&&!e.$$is_module&&(e=e.$$class),s=oe(e,n),s==null&&(s=k(n),d(e,n,s)),t.trace_class&&Y(s),s},t.get_singleton_class=function(e){return e.$$is_number&&s(t.TypeError,"can't define singleton"),e.$$meta?e.$$meta:e.hasOwnProperty("$$is_class")?t.build_class_singleton_class(e):e.hasOwnProperty("$$is_module")?t.build_module_singleton_class(e):t.build_object_singleton_class(e)};function P(e,t){e.hasOwnProperty("$$meta")?e.$$meta=t:n(e,"$$meta",t),e.$$frozen?e.$$meta.$freeze():a(e,t.$$prototype)}t.build_class_singleton_class=function(e){if(e.$$meta)return e.$$meta;var o=e===j?m:t.get_singleton_class(e.$$super),s=h(null,o,!0);return n(s,"$$is_singleton",!0),n(s,"$$singleton_of",e),P(e,s),n(e,"$$class",t.Class),s},t.build_module_singleton_class=function(e){if(e.$$meta)return e.$$meta;var s=h(null,t.Module,!0);return n(s,"$$is_singleton",!0),n(s,"$$singleton_of",e),P(e,s),n(e,"$$class",t.Module),s},t.build_object_singleton_class=function(e){var s=e.$$class,t=h(i,s,!0);return n(t,"$$is_singleton",!0),n(t,"$$singleton_of",e),delete t.$$prototype.$$class,P(e,t),t},t.is_method=function(e){return e[0]==="$"&&e[1]!=="$"},t.instance_methods=function(e){for(var n,s,o,a,c,u,m,f,l=Object.create(null),h=[],d=r(e),i=0,p=d.length;i<p;i++){c=d[i],n=c.$$prototype,n.hasOwnProperty("$$dummy")&&(n=n.$$define_methods_on);for(a=Object.getOwnPropertyNames(n),o=0,u=a.length;o<u;o++){if(s=a[o],l[s])continue;t.is_method(s)&&(m=n[s],m.$$stub||(f=s.slice(1),h.push(f))),l[s]=!0}}return h},t.own_instance_methods=function(e){var s,o,i,r,c,l,a=[],n=e.$$prototype;n.hasOwnProperty("$$dummy")&&(n=n.$$define_methods_on);for(i=Object.getOwnPropertyNames(n),s=0,r=i.length;s<r;s++)o=i[s],t.is_method(o)&&(c=n[o],c.$$stub||(l=o.slice(1),a.push(l)));return a},t.methods=function(e){return t.instance_methods(e.$$meta||e.$$class)},t.own_methods=function(e){return e.$$meta?t.own_instance_methods(e.$$meta):[]},t.receiver_methods=function(e){var n=t.get_singleton_class(e),s=t.own_instance_methods(n),o=t.own_instance_methods(n.$$super);return s.concat(o)},t.class_variables=function(e){var t,n,i,s=r(e),a=s.length,o={};for(t=a-1;t>=0;t--){n=s[t];for(i in n.$$cvars)o[i]=n.$$cvars[i]}return o},t.class_variable_set=function(e,t,n){var s,o,i=r(e),a=i.length;for(s=a-2;s>=0;s--)if(o=i[s],v(o.$$cvars,t))return o.$$cvars[t]=n,n;return e.$$cvars[t]=n,n},t.class_variable_get=function(e,n,o){if(v(e.$$cvars,n))return e.$$cvars[n];var a,c,l=r(e),d=l.length;for(a=0;a<d;a++)if(c=l[a],v(c.$$cvars,n))return c.$$cvars[n];return o||s(t.NameError,"uninitialized class variable "+n+" in "+e.$name()),i};function W(e){return e.hasOwnProperty("$$iclass")&&e.hasOwnProperty("$$root")}function ie(e){for(var n,s=[],t=Object.getPrototypeOf(e.$$prototype);t;){if(t.hasOwnProperty("$$class"))break;n=M(t),n&&s.push(n),t=Object.getPrototypeOf(t)}return s}function ae(e){var n,s=[],t=Object.getPrototypeOf(e.$$prototype);if(e.$$prototype.hasOwnProperty("$$dummy"))for(;t;){if(t===e.$$prototype.$$define_methods_on)break;n=M(t),n&&s.push(n),t=Object.getPrototypeOf(t)}return s}t.append_features=function(e,o){d=r(e),m=[],d.indexOf(o)!==-1&&s(t.ArgumentError,"cyclic include detected");for(var i,c,l,d,u,h,m,p,g,v,b,f=0,j=d.length;f<j;f++)b=d[f],p=X(b),n(p,"$$included",!0),m.push(p);if(v=r(o),g=te(m),v.indexOf(e)===-1)u=o.$$prototype,h=Object.getPrototypeOf(o.$$prototype);else{for(l=o.$$prototype,i=Object.getPrototypeOf(l);i!=null;){if(i.$$module===e&&W(i))break;l=i,i=Object.getPrototypeOf(i)}if(i){for(c=Object.getPrototypeOf(i);c.hasOwnProperty("$$iclass")&&!W(c);)c=Object.getPrototypeOf(c);u=l,h=c}else u=o.$$prototype,h=Object.getPrototypeOf(o.$$prototype)}a(u,g.first),a(g.last,h),o.$$own_included_modules=ie(o),t.const_cache_version++},t.prepend_features=function(e,o){d=r(e),u=[],d.indexOf(o)!==-1&&s(t.ArgumentError,"cyclic prepend detected");for(var d,u,m,p,v,h=0,j=d.length;h<j;h++)p=d[h],m=X(p),n(m,"$$prepended",!0),u.push(m);var c,l,g,f=te(u),i=o.$$prototype,b=Object.getPrototypeOf(i);if(i.hasOwnProperty("$$dummy")?l=i.$$define_methods_on:(l=K(o),re(o),n(i,"$$dummy",!0),n(i,"$$define_methods_on",l),a(i,l),a(l,b)),v=r(o),v.indexOf(e)===-1)for(g=i,c=Object.getPrototypeOf(i);c!=null;){if(c.hasOwnProperty("$$root")||c===l||!c.hasOwnProperty("$$iclass"))break;c=Object.getPrototypeOf(c)}else s(t.RuntimeError,"Prepending a module multiple times is not supported");a(g,f.first),a(f.last,c),o.$$own_prepended_modules=ae(o),t.const_cache_version++};function re(e){for(var s,o=e.$$prototype,i=Object.getOwnPropertyNames(o),n=0;n<i.length;n++)s=i[n],t.is_method(s)&&delete o[s]}function X(e){var t=K(e);return e.$$is_module&&e.$$iclasses.push(t),t}function K(e){var o,i,a,r,s={},t=e.$$prototype;t.hasOwnProperty("$$dummy")&&(t=t.$$define_methods_on),i=Object.getOwnPropertyNames(t),r=i.length;for(o=0;o<r;o++)a=i[o],n(s,a,t[a]);return n(s,"$$iclass",!0),n(s,"$$module",e),s}function te(e){var s,i,r,o=e.length,t=e[0];if(n(t,"$$root",!0),o===1)return{first:t,last:t};for(i=t,s=1;s<o;s++)r=e[s],a(i,r),i=r;return{first:e[0],last:e[o-1]}}t.bridge=function(e,o){e.hasOwnProperty("$$bridge")&&s(t.ArgumentError,"already bridged"),n(e,"$$bridge",o),a(e.prototype,(o.$$super||t.Object).$$prototype),n(o,"$$prototype",e.prototype),n(o.$$prototype,"$$class",o),n(o,"$$constructor",e),n(o,"$$bridge",!0)};function M(e){if(e.hasOwnProperty("$$dummy"))return;if(e.hasOwnProperty("$$iclass"))return e.$$module;if(e.hasOwnProperty("$$class"))return e.$$class}function de(e){return e.$$own_prepended_modules.concat([e]).concat(e.$$own_included_modules)}function r(e){if(!e)return[];if(e.$$ancestors_cache_version===t.const_cache_version)return e.$$ancestors;var n,s,i,o=[];for(n=0,s=de(e),i=s.length;n<i;n++)o.push(s[n]);if(e.$$super)for(n=0,s=r(e.$$super),i=s.length;n<i;n++)o.push(s[n]);return e.$$ancestors_cache_version=t.const_cache_version,e.$$ancestors=o,o}t.ancestors=r,t.included_modules=function(e){for(var s=[],n=null,t=Object.getPrototypeOf(e.$$prototype);t&&Object.getPrototypeOf(t);t=Object.getPrototypeOf(t))n=M(t),n&&n.$$is_module&&t.$$iclass&&t.$$included&&s.push(n);return s},t.add_stubs=function(e){n=t.BasicObject.$$prototype,e=e.split(",");for(var n,s,o,i=0,a=e.length;i<a;i++)s=u(e[i]),o=n[s],(o==null||o.$$stub)&&t.add_stub_for(n,s)},t.add_stub_for=function(e,s){n(e,s,t.stub_for(s))},t.stub_for=function(e){function t(){return this.$method_missing.$$p=t.$$p,t.$$p=null,this.$method_missing.apply(this,R(e.slice(1),arguments))}return t.$$stub=!0,t},t.ac=function(e,n,o,i){var a="";o.$$is_a_module?a+=o.$$name+".":a+=o.$$class.$$name+"#",a+=i,s(t.ArgumentError,"["+a+"] wrong number of arguments (given "+e+", expected "+n+")")},t.block_ac=function(e,n,o){var i="`block in "+o+"'";s(t.ArgumentError,i+": wrong number of arguments (given "+e+", expected "+n+")")};function G(e){return r(e.hasOwnProperty("$$meta")&&e.$$meta!==null?e.$$meta:e.$$class)}t.find_super=function(e,n,o,i,a){var r,c,l,d,m=u(n),p=-1,h=G(e),f=o.$$owner;for(r=0;r<h.length;r++)if(l=h[r],l===f||l.$$cloned_from.indexOf(f)!==-1){p=r;break}for(r=p+1;r<h.length;r++)if(l=h[r],c=l.$$prototype,c.hasOwnProperty("$$dummy")&&(c=c.$$define_methods_on),c.hasOwnProperty(m)){d=c[m];break}return!i&&d&&d.$$stub&&e.$method_missing.$$pristine&&s(t.NoMethodError,"super: no superclass method `"+n+"' for "+e,n),d.$$stub&&!a?null:d},t.find_block_super=function(e,n,o,i,a){var r=n;return o||s(t.RuntimeError,"super called outside of method"),a&&o.$$define_meth&&s(t.RuntimeError,"implicit argument passing of super from method defined by define_method() is not supported. Specify all arguments explicitly"),o.$$def&&(r=o.$$jsid),t.find_super(e,r,o,i)},t.find_super_dispatcher=t.find_super,t.find_iter_super_dispatcher=t.find_block_super;function S(e,t,n){try{e(t)}catch(e){if(e===n)return n.$v;throw e}}t.yield1=function(e,n){typeof e!="function"&&s(t.LocalJumpError,"no block given");var a=e.$$has_top_level_mlhs_arg,o=e.$$has_trailing_comma_in_args,i=e.$$is_lambda&&e.$$ret;return(e.length>1||(a||o)&&e.length===1)&&(n=t.to_ary(n)),(e.length>1||o&&e.length===1)&&n.$$is_array?i?S(e.apply.bind(e,null),n,e.$$ret):e.apply(null,n):i?S(e,n,e.$$ret):e(n)},t.yieldX=function(e,n){return typeof e!="function"&&s(t.LocalJumpError,"no block given"),e.length>1&&n.length===1&&n[0].$$is_array&&(n=n[0]),e.$$is_lambda&&e.$$ret?S(e.apply.bind(e,null),n,e.$$ret):e.apply(null,n)},t.rescue=function(e,n){for(var s,i,o=0;o<n.length;o++)if(s=n[o],s.$$is_array){if(i=t.rescue(e,s),i)return i}else if(s===t.JS.Error||s["$==="](e))return s;return null},t.is_a=function(e,n){if(n!=null&&e.$$meta===n||e.$$class===n)return!0;if(e.$$is_number&&n.$$is_number_class)return!n.$$is_integer_class||e%1===0;var s=r(e.$$is_class?t.get_singleton_class(e):e.$$meta||e.$$class);return s.indexOf(n)!==-1},t.to_hash=function(e){if(e.$$is_hash)return e;if(e["$respond_to?"]("to_hash",!0)){var n=e.$to_hash();if(n.$$is_hash)return n;s(t.TypeError,"Can't convert "+e.$$class+" to Hash ("+e.$$class+"#to_hash gives "+n.$$class+")")}else s(t.TypeError,"no implicit conversion of "+e.$$class+" into Hash")},t.to_ary=function(e){if(e.$$is_array)return e;if(e["$respond_to?"]("to_ary",!0)){var n=e.$to_ary();if(n===i)return[e];if(n.$$is_array)return n;s(t.TypeError,"Can't convert "+e.$$class+" to Array ("+e.$$class+"#to_ary gives "+n.$$class+")")}else return[e]},t.to_a=function(e){if(e.$$is_array)return e.slice();if(e["$respond_to?"]("to_a",!0)){var n=e.$to_a();if(n===i)return[e];if(n.$$is_array)return n;s(t.TypeError,"Can't convert "+e.$$class+" to Array ("+e.$$class+"#to_a gives "+n.$$class+")")}else return[e]},t.extract_kwargs=function(e){var n=e[e.length-1];if(n!=null&&t.respond_to(n,"$to_hash",!0))return J(e,e.length-1),n},t.kwrestargs=function(e,n){var s=new Map;return t.hash_each(e,!1,function(e,o){return n[e]||t.hash_put(s,e,o),[!1,!1]}),s};function C(e,t){typeof t=="number"?e.$$arity=t:typeof t=="object"&&Object.assign(e,t)}B=new Map;function u(e){var t=B.get(e);return t||(t="$"+e,B.set(e,t)),t}t.jsid=u;function R(e,t){return t.$$is_array||(t=_(t)),[e].concat(t)}t.send=function(e,n,o,i,a){var r;return typeof n=="function"?(r=n,n=null):typeof n=="string"?r=e[u(n)]:s(t.NameError,"Passed method should be a string or a function"),t.send2(e,r,n,o,i,a)},t.send2=function(e,t,n,s,o,i){return t==null&&n!=null&&e.$method_missing&&(t=e.$method_missing,s=R(n,s)),C(o,i),typeof o=="function"&&(t.$$p=o),t.apply(e,s)},t.refined_send=function(e,n,s,o,i,a){var r,c,l,d,h,m,f,p,v,g=G(n);for(r=0;r<g.length;r++){d=t.id(g[r]);for(c=0;c<e.length;c++){h=e[c];for(l=h.length-1;l>=0;l--){if(m=h[l],typeof m.$$refine_modules=="undefined")continue;if(f=m.$$refine_modules,typeof f[d]=="undefined")continue;if(p=f[d],typeof p.$$prototype[u(s)]!="undefined")return v=p.$$prototype[u(s)],t.send2(n,v,s,o,i,a)}}}return t.send(n,s,o,i,a)},t.lambda=function(e,t){return e.$$is_lambda=!0,C(e,t),e},t.def=function(e,n,s,o){return C(s,o),e===t.top?t.defn(t.Object,n,s):!e.$$eval&&e.$$is_a_module?t.defn(e,n,s):t.defs(e,n,s)},t.defn=function(e,s,o){if(y(e),o.displayName=s,o.$$owner=e,r=s.substr(1),a=e.$$prototype,a.hasOwnProperty("$$dummy")&&(a=a.$$define_methods_on),n(a,s,o),e.$$is_module){e.$$module_function&&t.defs(e,s,o);for(var i,a,r,d,c=0,l=e.$$iclasses,u=l.length;c<u;c++)d=l[c],n(d,s,o)}return i=e.$$singleton_of,e.$method_added&&!e.$method_added.$$stub&&!i?e.$method_added(r):i&&i.$singleton_method_added&&!i.$singleton_method_added.$$stub&&i.$singleton_method_added(r),r},t.defs=function(e,n,o,i){return C(o,i),(e.$$is_string||e.$$is_number)&&s(t.TypeError,"can't define singleton"),t.defn(t.get_singleton_class(e),n,o)};function U(e,t){if(e.$$is_module)for(var o,n=0,s=e.$$iclasses,i=s.length;n<i;n++)o=s[n],delete o[t]}t.rdef=function(e,n){v(e.$$prototype,n)||s(t.NameError,"method '"+n.substr(1)+"' not defined in "+e.$name()),delete e.$$prototype[n],U(e,n),e.$$is_singleton?e.$$prototype.$singleton_method_removed&&!e.$$prototype.$singleton_method_removed.$$stub&&e.$$prototype.$singleton_method_removed(n.substr(1)):e.$method_removed&&!e.$method_removed.$$stub&&e.$method_removed(n.substr(1))},t.udef=function(e,n){(!e.$$prototype[n]||e.$$prototype[n].$$stub)&&s(t.NameError,"method '"+n.substr(1)+"' not defined in "+e.$name()),t.add_stub_for(e.$$prototype,n),U(e,n),e.$$is_singleton?e.$$prototype.$singleton_method_undefined&&!e.$$prototype.$singleton_method_undefined.$$stub&&e.$$prototype.$singleton_method_undefined(n.substr(1)):e.$method_undefined&&!e.$method_undefined.$$stub&&e.$method_undefined(n.substr(1))};function N(e){return typeof e=="function"&&!e.$$stub}t.alias=function(e,n,o){var i,a,r,l=u(n),c=u(o);if(typeof e.$$prototype=="undefined"&&(e=t.Object),i=e.$$prototype[c],e.$$eval)return t.alias(t.get_singleton_class(e),n,o);if(!N(i)){for(r=e.$$super;typeof i!="function"&&r;)i=r[c],r=r.$$super;!N(i)&&e.$$is_module&&(i=t.Object.$$prototype[c]),N(i)||s(t.NameError,"undefined method `"+o+"' for class `"+e.$name()+"'")}return i.$$alias_of&&(i=i.$$alias_of),a=t.wrap_method_body(i),a.displayName=n,a.$$alias_of=i,a.$$alias_name=n,t.defn(e,l,a),e},t.wrap_method_body=function(e){var n=function(){var s=n.$$p;return n.$$p=null,t.send(this,e,arguments,s)};try{Object.defineProperty(n,"length",{value:e.length})}catch{}return n.$$arity=e.$$arity==null?e.length:e.$$arity,n.$$parameters=e.$$parameters,n.$$source_location=e.$$source_location,n},t.alias_gvar=function(e,t){return Object.defineProperty(l,e,{configurable:!0,enumerable:!0,get:function(){return l[t]},set:function(e){l[t]=e}}),i},t.alias_native=function(e,n,o){var a=u(n),i=e.$$prototype[o];return(typeof i!="function"||i.$$stub)&&s(t.NameError,"undefined native method `"+o+"' for class `"+e.$name()+"'"),t.defn(e,a,i),e},t.hash_init=function(){c.warn("DEPRECATION: Opal.hash_init is deprecated and is now a no-op.")},t.hash_clone=function(e,n){return n.$$none=e.$$none,n.$$proc=e.$$proc,t.hash_each(e,n,function(e,s){return t.hash_put(n,e,s),[!1,n]})},t.hash_put=function(e,n,s){if(o=typeof n,o==="string"||o==="symbol"||o==="number"||o==="boolean"||o==="bigint")e.set(n,s);else if(n.$$is_string)e.set(n.valueOf(),s);else{e.$$keys||(e.$$keys=new Map);var o,i,a,r,c=n.$$is_string?n.valueOf():e.$$by_identity?t.id(n):n.$hash(),l=e.$$keys;if(!l.has(c)){l.set(c,[n]),e.set(n,s);return}for(i=l.get(c),r=0;r<i.length;r++)if(a=i[r],n===a||n["$eql?"](a)){e.set(a,s);return}i.push(n),e.set(n,s)}},t.hash_get=function(e,n){if(s=typeof n,s==="string"||s==="symbol"||s==="number"||s==="boolean"||s==="bigint")return e.get(n);if(e.$$keys){{var s,o,i,r=n.$$is_string?n.valueOf():e.$$by_identity?t.id(n):n.$hash(),a=e.$$keys.get(r);if(a!==void 0){for(i=0;i<a.length;i++)if(o=a[i],n===o||n["$eql?"](o))return e.get(o)}else if(n.$$is_string)return e.get(r)}}else if(n.$$is_string)return e.get(n.valueOf())};function x(e,t){var n=e.get(t);if(n!==void 0)return e.delete(t),n}t.hash_delete=function(e,n){if(s=typeof n,s==="string"||s==="symbol"||s==="number"||s==="boolean"||s==="bigint")return x(e,n);if(e.$$keys){{var s,i,a,r=n.$$is_string?n.valueOf():e.$$by_identity?t.id(n):n.$hash(),o=e.$$keys.get(r);if(o!==void 0){for(i=0;i<o.length;i++)if(a=o[i],n===a||n["$eql?"](a))return o.splice(i,1),o.length===0&&e.$$keys.delete(r),x(e,a)}else if(n.$$is_string)return x(e,r)}}else if(n.$$is_string)return x(e,n.valueOf())},t.hash_rehash=function(e){var n=e.$$keys;return n&&n.clear(),t.hash_each(e,!1,function(s){if(i=typeof s,i==="string"||i==="symbol"||i==="number"||i==="boolean"||i==="bigint")return[!1,!1];if(c=s.$$is_string?s.valueOf():e.$$by_identity?t.id(s):s.$hash(),n||(e.$$keys=n=new Map),!n.has(c))return n.set(c,[s]),[!1,!1];for(var i,r,c,a=n.get(c),d=a.length===1?a:_(a),l=0;l<d.length;l++)r=d[l],(s===r||s["$eql?"](r))&&(a.splice(a.indexOf(r),1),e.delete(r));return a.push(s),[!1,!1]}),e},t.hash=function(){var e,n,o,i,a,c,r=arguments.length;if(r===1&&arguments[0].$$is_hash)return arguments[0];if(i=new Map,r===1){if(n=arguments[0],arguments[0].$$is_array){c=n.length;for(e=0;e<c;e++)n[e].length!==2&&s(t.ArgumentError,"value not of length 2: "+n[e].$inspect()),o=n[e][0],a=n[e][1],t.hash_put(i,o,a);return i}n=arguments[0];for(o in n)v(n,o)&&(a=n[o],t.hash_put(i,o,a));return i}r%2!==0&&s(t.ArgumentError,"odd number of arguments for Hash");for(e=0;e<r;e+=2)o=arguments[e],a=arguments[e+1],t.hash_put(i,o,a);return i},t.hash2=function(e,t){c.warn("DEPRECATION: `Opal.hash2` is deprecated and will be removed in Opal 2.0. Use `new Map()` with an array of key/value pairs instead.");for(var s=new Map,n=0,o=e.length;n<o;n++)s.set(e[n],t[e[n]]);return s},t.hash_each=function(e,t,n){for(var s,i,o=0,a=Array.from(e.entries()),r=a.length;o<r;o++)if(i=a[o],s=n(i[0],i[1]),s[0])return s[1];return s?s[1]:t},t.range=function(e,n,s){var o=new t.Range;return o.begin=e,o.end=n,o.excl=s,o},ee=["constructor","displayName","__count__","__noSuchMethod__","__parent__","__proto__","hasOwnProperty","valueOf"],t.ivar=function(e){return ee.indexOf(e)!==-1&&(e+="$"),e};function y(e){e.$$frozen&&s(t.FrozenError,"can't modify frozen "+e.$class()+": "+e,new Map([["receiver",e]]))}t.deny_frozen_access=y,t.freeze=function(e){return n(e,"$$frozen",!0),e.hasOwnProperty("$$id")||n(e,"$$id",V()),e.hasOwnProperty("$$meta")?e.$$meta.$freeze():n(e,"$$meta",null),e.hasOwnProperty("$$comparable")||n(e,"$$comparable",null),Object.seal(e),e};function Z(e,t){var n,s,o,i=Object.getOwnPropertyNames(e),a=i.length;for(n=0;n<a;n++){if(s=i[n],s[0]==="$")continue;o=Object.getOwnPropertyDescriptor(e,s),o&&o.enumerable&&t(s,o)}}t.each_ivar=Z,t.freeze_props=function(e){var t={get:null,set:function(){y(e)},enumerable:!0};Z(e,function(n,s){if(!s.writable)return;t.get=w(s.value),Object.defineProperty(e,n,t)})},t.escape_regexp=function(e){return e.replace(/([-[\]/{}()*+?.^$\\| ])/g,"\\$1").replace(/[\n]/g,`\\n`).replace(/[\r]/g,`\\r`).replace(/[\f]/g,"\\f").replace(/[\t]/g,"\\t")},t.global_regexp=function(e){return e.global?e:(e.$$g==null?e.$$g=new RegExp(e.source,(e.multiline?"gm":"g")+(e.ignoreCase?"i":"")):e.$$g.lastIndex=null,e.$$g)},t.global_multiline_regexp=function(e){var t,n;return e.global&&e.multiline?e:(n="gm"+(e.ignoreCase?"i":""),e.multiline?(e.$$g==null&&(e.$$g=new RegExp(e.source,n)),t=e.$$g):(e.$$gm==null&&(e.$$gm=new RegExp(e.source,n)),t=e.$$gm),t.lastIndex=null,t)},t.regexp=function(e,n){for(var s,i=typeof n!="undefined"&&n&&n.indexOf("i")>=0,o=0,a=e.length;o<a;o++)s=e[o],s instanceof RegExp&&(s.ignoreCase!==i&&t.Kernel.$warn("ignore case doesn't match for "+s.source.$inspect(),new Map([["uplevel",1]])),s=s.source),s===""&&(s="(?:"+s+")"),e[o]=s;return n?new RegExp(e.join(""),n):new RegExp(e.join(""))},t.modules={},t.loaded_features=["corelib/runtime"],t.current_dir=".",t.require_table={"corelib/runtime":!0},t.normalize=function(e){var n,s,o,r,i=[],a="/";t.current_dir!=="."&&(e=t.current_dir.replace(/\/*$/,"/")+e),e=e.replace(/^\.\//,""),e=e.replace(/\.(rb|opal|js)$/,"");for(o=e.split(a),s=0,r=o.length;s<r;s++){if(n=o[s],n==="")continue;n===".."?i.pop():i.push(n)}return i.join(a)},t.loaded=function(e){var n,s,o;for(n=0,o=e.length;n<o;n++){if(s=t.normalize(e[n]),t.require_table[s])continue;t.loaded_features.push(s),t.require_table[s]=!0}},t.load_normalized=function(e){t.loaded([e]);var n,o,i,a=t.modules[e];if(a){if(n=a(t),typeof Promise!="undefined"&&n instanceof Promise)return n.then(w(!0))}else o=t.config.missing_require_severity,i="cannot load such file -- "+e,o==="error"?s(t.LoadError,i):o==="warning"&&c.warn("WARNING: LoadError: "+i);return!0},t.load=function(e){return e=t.normalize(e),t.load_normalized(e)},t.require=function(e){return e=t.normalize(e),!t.require_table[e]&&t.load_normalized(e)},t.encodings=Object.create(null),t.set_encoding=function(e,n,o){typeof o=="undefined"&&(o="encoding"),(typeof e=="string"||e.$$frozen===!0)&&s(t.FrozenError,"can't modify frozen String");var i=t.find_encoding(n);return i===e[o]?e:(e[o]=i,e)},t.find_encoding=function(e){var n=t.encodings,o=n[e]||n[e.toUpperCase()];return o||s(t.ArgumentError,"unknown encoding name - "+e),o},t.enc=function(e,n){var s=new String(e),s=t.set_encoding(s,n);return s.internal_encoding=s.encoding,s},t.binary=function(e){var n=new String(e);return t.set_encoding(n,"binary","internal_encoding")},t.last_promise=null,t.promise_unhandled_exception=!1,t.queue=function(e){if(t.last_promise)return t.last_promise=t.last_promise.then(function(){if(!t.promise_unhandled_exception)return e(t)}).catch(function(e){t.respond_to(e,"$full_message")&&(e=e.$full_message()),c.error(e),t.promise_unhandled_exception=!0,t.exit(1)}),t.last_promise;var n=e(t);return typeof Promise=="function"&&typeof n=="object"&&n instanceof Promise&&(t.last_promise=n),n};function p(e,t){return typeof e=="number"&&typeof t=="number"}t.rb_plus=function(e,t){return p(e,t)?e+t:e["$+"](t)},t.rb_minus=function(e,t){return p(e,t)?e-t:e["$-"](t)},t.rb_times=function(e,t){return p(e,t)?e*t:e["$*"](t)},t.rb_divide=function(e,t){return p(e,t)?e/t:e["$/"](t)},t.rb_lt=function(e,t){return p(e,t)?e<t:e["$<"](t)},t.rb_gt=function(e,t){return p(e,t)?e>t:e["$>"](t)},t.rb_le=function(e,t){return p(e,t)?e<=t:e["$<="](t)},t.rb_ge=function(e,t){return p(e,t)?e>=t:e["$>="](t)};function z(e,t){return typeof e=="number"&&typeof t=="number"||typeof e=="string"&&typeof t=="string"}function le(e,t){return z(e,t)?e===t:f(e["$=="](t))}t.eqeq=le,t.eqeqeq=function(e,t){return z(e,t)?e===t:f(e["$==="](t))},t.neqeq=function(e,t){return z(e,t)?e!==t:f(e["$!="](t))},t.not=function(e){return e==null||!1===e||i===e||!0!==e&&!e["$!"].$$pristine&&f(e["$!"]())};function w(e){return function(){return e}}t.return_val=w,t.return_self=function(){return this},t.return_ivar=function(e){return function(){return this[e]==null?i:this[e]}},t.assign_ivar=function(e){return function(t){return y(this),this[e]=t}},t.assign_ivar_val=function(e,t){return function(){return y(this),this[e]=t}},t.ensure_kwargs=function(e){if(e==null)return new Map;if(e.$$is_hash)return e;s(t.ArgumentError,"expected kwargs")},t.get_kwarg=function(e,n){var o=t.hash_get(e,n);return o===void 0&&s(t.ArgumentError,"missing keyword: "+n),o},t.large_array_unpack=function(e){var t,n=e.split(","),s=n.length;for(t=0;t<s;t++)switch(n[t][0]){case void 0:n[t]=i;break;case"-":case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":n[t]=+n[t]}return n},t.opal32_init=w(1332765036);function ue(e,t){return e<<t|e>>>32-t}t.opal32_add=function(e,t){return e^=t,e=ue(e,1),e},t.BasicObject=j=h("BasicObject",null),t.Object=o=h("Object",t.BasicObject),t.Module=O=h("Module",t.Object),t.Class=m=h("Class",t.Module),t.Opal=T=k("Opal"),t.Kernel=g=k("Kernel"),a(t.BasicObject,t.Class.$$prototype),a(t.Object,t.Class.$$prototype),a(t.Module,t.Class.$$prototype),a(t.Class,t.Class.$$prototype),j.$$const.BasicObject=j,d(o,"BasicObject",j),d(o,"Object",o),d(o,"Module",O),d(o,"Class",m),d(o,"Opal",T),d(o,"Kernel",g),j.$$class=m,o.$$class=m,O.$$class=m,m.$$class=m,T.$$class=O,g.$$class=O,n(o.$$prototype,"toString",function(){var e=this.$to_s();return e.$$is_string&&typeof e=="object"?e.valueOf():e}),n(o.$$prototype,"$require",t.require),t.top=new o,t.top.$to_s=t.top.$inspect=w("main"),t.top.$define_method=F;function F(){var e=F.$$p;return F.$$p=null,t.send(o,"define_method",arguments,e)}t.NilClass=h("NilClass",t.Object),d(o,"NilClass",t.NilClass),i=t.nil=new t.NilClass,i.$$id=D,i.call=i.apply=function(){s(t.LocalJumpError,"no block given")},i.$$frozen=!0,i.$$comparable=!1,Object.seal(i),t.thrower=function(e){var n={$thrower_type:e,$throw:function(n,o){throw n==null&&(n=i),this.is_orphan&&!o&&s(t.LocalJumpError,"unexpected "+e,n,e.$to_sym()),this.$v=n,this},is_orphan:!1};return n},Object.defineProperty(l,"@",{enumerable:!0,configurable:!0,get:function(){return f(l["!"])?l["!"].$backtrace():i},set:function(e){f(l["!"])?l["!"].$set_backtrace(e):s(t.ArgumentError,"$! not set")}}),t.t_eval_return=t.thrower("return"),TypeError.$$super=Error,t.file_sources={}}).call(this),Opal.loaded(["corelib/runtime.js"]),Opal.modules["corelib/helpers"]=function(e){var l=e.type_error,d=e.coerce_to,u=e.module,t=e.defs,r=e.slice,c=e.eqeqeq,i=e.Kernel,o=e.truthy,a=e.Opal,n=e.nil,s=e.$$$;return e.add_stubs("===,raise,respond_to?,nil?,__send__,<=>,class,coerce_to!,new,to_s,__id__"),function(h){var f,m=u(h,"Opal");return t(m,"$bridge",function(n,s){return e.bridge(n,s)}),t(m,"$coerce_to!",function(t,s,o){var u=n,h=r(arguments,3),m=h,u=d(t,s,o,m);return c(s,u)||i.$raise(l(t,s,o,u)),u},-4),t(m,"$coerce_to?",function(t,s,a){var h=n,m=r(arguments,3),f=m;return o(t["$respond_to?"](a))?(h=d(t,s,a,f),o(h["$nil?"]())?n:(c(s,h)||i.$raise(l(t,s,a,h)),h)):n},-4),t(m,"$try_convert",function(t,s,i){return c(s,t)?t:o(t["$respond_to?"](i))?t.$__send__(i):n}),t(m,"$compare",function(t,a){var r=n,r=t["$<=>"](a);return o(r===n)&&i.$raise(s("ArgumentError"),"comparison of "+t.$class()+" with "+a.$class()+" failed"),r}),t(m,"$destructure",function(t){if(t.length==1)return t[0];if(t.$$is_array)return t;for(var s=new Array(t.length),n=0,o=s.length;n<o;n++)s[n]=t[n];return s}),t(m,"$respond_to?",function(t,n,s){return s==null&&(s=!1),t!=null&&!!t.$$class&&t["$respond_to?"](n,s)},-3),t(m,"$instance_variable_name!",function(t){return t=a["$coerce_to!"](t,s("String"),"to_str"),o(/^@[a-zA-Z_][a-zA-Z0-9_]*?$/.test(t))||i.$raise(s("NameError").$new("'"+t+"' is not allowed as an instance variable name",t)),t}),t(m,"$class_variable_name!",function(t){return t=a["$coerce_to!"](t,s("String"),"to_str"),o(t.length<3||t.slice(0,2)!=="@@")&&i.$raise(s("NameError").$new("`"+t+"' is not allowed as a class variable name",t)),t}),t(m,"$const_name?",function(t){return typeof t!="string"&&(t=a["$coerce_to!"](t,s("String"),"to_str")),t[0]===t[0].toUpperCase()}),t(m,"$const_name!",function(t){var i,r=this;return o((i=s("::","String","skip_raise"))?"constant":n)&&(t=a["$coerce_to!"](t,s("String"),"to_str")),(!t||t[0]!=t[0].toUpperCase())&&r.$raise(s("NameError"),"wrong constant name "+t),t}),t(m,"$pristine",function(s){for(var i,l,d=r(arguments,1),c=d,a=c.length-1;a>=0;a--)l=c[a],i=s.$$prototype[e.jsid(l)],i&&!i.$$stub&&(i.$$pristine=!0);return n},-2),f=[],t(m,"$inspect",function(o){var a=n,i=!1;return function(){try{try{return o===null?"null":o===void 0?"undefined":typeof o.$$class=="undefined"?Object.prototype.toString.apply(o):typeof o.$inspect!="function"||o.$inspect.$$stub?"#<"+o.$$class+":0x"+o.$__id__().$to_s(16)+">":f.indexOf(o.$__id__())!==-1?"#<"+o.$$class+":0x"+o.$__id__().$to_s(16)+">":(f.push(o.$__id__()),i=!0,o.$inspect());return n}catch(t){if(e.rescue(t,[s("Exception")])){a=t;try{return"#<"+o.$$class+":0x"+o.$__id__().$to_s(16)+">"}finally{e.pop_exception(t)}}else throw t}}finally{i&&f.pop()}}()},-1)}("::")},Opal.modules["corelib/module"]=function(e){var i=e.truthy,j=e.coerce_to,y=e.const_set,m=e.Object,C=e.return_ivar,F=e.assign_ivar,_=e.ivar,a=e.deny_frozen_access,T=e.freeze,D=e.prop,d=e.jsid,N=e.each_ivar,x=e.klass,c=e.Opal,o=e.Kernel,g=e.defs,l=e.send,t=e.def,u=e.eqeqeq,f=e.Module,b=e.rb_lt,M=e.rb_gt,r=e.slice,p=e.to_a,h=e.return_val,E=e.eqeq,k=e.not,A=e.rb_le,S=e.range,O=e.send2,w=e.find_super,v=e.alias,z=[],n=e.nil,s=e.$$$;return e.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(z,L,R){var P=x(z,L,"Module"),B=[P].concat(R),H=e.$r(B);function I(e){if(e.$$is_string)return e;var t=c.$try_convert(e,s("String"),"to_str");if(t.$$is_string)return t;t===n?o.$raise(s("TypeError"),""+e+" is not a symbol nor a string"):o.$raise(s("TypeError"),"can't convert "+e.$class()+" to String ("+e.$class()+"#to_str gives "+t.$class())}g(P,"$allocate",function(){var s=this,o=e.allocate_module(n,function(){});return s!==e.Module&&Object.setPrototypeOf(o,s.$$prototype),o}),t(P,"$initialize",function e(){var t=e.$$p||n,s=this;return e.$$p=null,t!==n?l(s,"module_eval",[],t.$to_proc()):n}),t(P,"$===",function(n){var s=this;return!i(n==null)&&e.is_a(n,s)}),t(P,"$<",function(i){var a,r,c,d,l=this;if(u(f,i)||o.$raise(s("TypeError"),"compared with non class/module"),d=l,d===i)return!1;for(a=0,r=e.ancestors(l),c=r.length;a<c;a++)if(r[a]===i)return!0;for(a=0,r=e.ancestors(i),c=r.length;a<c;a++)if(r[a]===l)return!1;return n}),t(P,"$<=",function(t){var s=this,o=n;return i(o=s["$equal?"](t))?o:b(s,t)}),t(P,"$>",function(t){var n=this;return u(f,t)||o.$raise(s("TypeError"),"compared with non class/module"),b(t,n)}),t(P,"$>=",function(t){var s=this,o=n;return i(o=s["$equal?"](t))?o:M(s,t)}),t(P,"$<=>",function(t){var o=this,s=n;return o===t?0:u(f,t)?(s=b(o,t),i(s["$nil?"]())?n:i(s)?-1:1):n}),t(P,"$alias_method",function(n,o){var i=this;return a(i),n=j(n,s("String"),"to_str"),o=j(o,s("String"),"to_str"),e.alias(i,n,o),i}),t(P,"$alias_native",function(n,s){var o=this;return s==null&&(s=n),a(o),e.alias_native(o,n,s),o},-2),t(P,"$ancestors",function(){var n=this;return e.ancestors(n)}),t(P,"$append_features",function(n){var s=this;return a(n),e.append_features(s,n),s}),t(P,"$attr_accessor",function(){var s=this,o=r(arguments),n=o;return l(s,"attr_reader",p(n)),l(s,"attr_writer",p(n))},-1),t(P,"$attr",function(){var o=this,i=r(arguments),s=i;return s.length==2&&(s[1]===!0||s[1]===!1)?(o.$warn("optional boolean argument is obsoleted",new Map([["uplevel",1]])),s[1]?o.$attr_accessor(s[0]):o.$attr_reader(s[0]),n):l(o,"attr_reader",p(s))},-1),t(P,"$attr_reader",function(){o=this,u=r(arguments),l=u,a(o);for(h=o.$$prototype,i=l.length-1;i>=0;i--){var o,i,l,u,h,m=l[i],p=d(m),f=_(m),c=C(f);e.prop(h,f,n),c.$$parameters=[],c.$$arity=0,e.defn(o,p,c)}return n},-1),t(P,"$attr_writer",function(){o=this,u=r(arguments),l=u,a(o);for(h=o.$$prototype,i=l.length-1;i>=0;i--){var o,i,l,u,h,m=l[i],p=d(m+"="),f=_(m),c=F(f);c.$$parameters=[["req"]],c.$$arity=1,e.prop(h,f,n),e.defn(o,p,c)}return n},-1),t(P,"$autoload",function(i,r){var c=this;return a(c),H("Opal")["$const_name?"](i)||o.$raise(s("NameError"),"autoload must be constant name: "+i),r==""&&o.$raise(s("ArgumentError"),"empty file name"),c.$$const.hasOwnProperty(i)||(c.$$autoload||(c.$$autoload={}),e.const_cache_version++,c.$$autoload[i]={path:r,loaded:!1,required:!1,success:!1,exception:!1},c.$const_added&&!c.$const_added.$$pristine&&c.$const_added(i)),n}),t(P,"$autoload?",function(t){if(s=this,s.$$autoload&&s.$$autoload[t]&&!s.$$autoload[t].required&&!s.$$autoload[t].success)return s.$$autoload[t].path;for(var s,i=s.$ancestors(),o=0,a=i.length;o<a;o++)if(i[o].$$autoload&&i[o].$$autoload[t]&&!i[o].$$autoload[t].required&&!i[o].$$autoload[t].success)return i[o].$$autoload[t].path;return n}),t(P,"$class_variables",function(){var n=this;return Object.keys(e.class_variables(n))}),t(P,"$class_variable_get",function(n){var s=this;return n=c["$class_variable_name!"](n),e.class_variable_get(s,n,!1)}),t(P,"$class_variable_set",function(n,s){var o=this;return a(o),n=c["$class_variable_name!"](n),e.class_variable_set(o,n,s)}),t(P,"$class_variable_defined?",function(n){var s=this;return n=c["$class_variable_name!"](n),e.class_variables(s).hasOwnProperty(n)}),t(P,"$const_added",h(n)),c.$pristine(P,"const_added"),t(P,"$remove_class_variable",function(n){var r,i=this;if(a(i),n=c["$class_variable_name!"](n),e.hasOwnProperty.call(i.$$cvars,n))return r=i.$$cvars[n],delete i.$$cvars[n],r;o.$raise(s("NameError"),"cannot remove "+n+" for "+i)}),t(P,"$constants",function(n){var s=this;return n==null&&(n=!0),e.constants(s,n)},-1),g(P,"$constants",function(n){if(o=this,n==null){var s,o,a,c,i=(o.$$nesting||[]).concat(m),r={};for(s=0,c=i.length;s<c;s++)for(a in i[s].$$const)r[a]=!0;return Object.keys(r)}return e.constants(o,n)},-1),g(P,"$nesting",function(){var t=this;return t.$$nesting||[]}),t(P,"$const_defined?",function(n,a){var r,l,d,h,f,u=this;a==null&&(a=!0),n=H("Opal")["$const_name!"](n),i(n["$=~"](s(c,"CONST_NAME_REGEXP")))||o.$raise(s("NameError").$new("wrong constant name "+n,n)),r=[u],a&&(r=r.concat(e.ancestors(u)),u.$$is_module&&(r=r.concat([m]).concat(e.ancestors(m))));for(d=0,h=r.length;d<h;d++){if(l=r[d],l.$$const[n]!=null)return!0;if(l.$$autoload&&l.$$autoload[n]&&!l.$$autoload[n].required&&!l.$$autoload[n].success)return!0}return!1},-2),t(P,"$const_get",function(a,r){var d=this;return r==null&&(r=!0),a=H("Opal")["$const_name!"](a),a.indexOf("::")===0&&a!=="::"&&(a=a.slice(2)),i(a.indexOf("::")!=-1&&a!="::")?l(a.$split("::"),"inject",[d],function(t,s){return t==null&&(t=n),s==null&&(s=n),t.$const_get(s)}):(i(a["$=~"](s(c,"CONST_NAME_REGEXP")))||o.$raise(s("NameError").$new("wrong constant name "+a,a)),r?e.$$([d],a):e.const_get_local(d,a))},-2),t(P,"$const_missing",function(t){var i=this,a=n,a=E(i,m)?t:""+i+"::"+t;return o.$raise(s("NameError").$new("uninitialized constant "+a,t))}),t(P,"$const_set",function(t,n){var r=this;return a(r),t=c["$const_name!"](t),(i(t["$!~"](s(c,"CONST_NAME_REGEXP")))||i(t["$start_with?"]("::")))&&o.$raise(s("NameError").$new("wrong constant name "+t,t)),y(r,t,n),n}),t(P,"$public_constant",h(n)),t(P,"$define_method",function t(r,c){var g,l=t.$$p||n,m=this,f=n,h=n,p=n;return t.$$p=null,a(m),c===void 0&&l===n&&o.$raise(s("ArgumentError"),"tried to create a Proc object without a block"),r=I(r),i(c!==void 0)&&(l=u(s("Proc"),f=c)?c:u(s("Method"),f)?c.$to_proc().$$unbound:u(s("UnboundMethod"),f)?e.wrap_method_body(c.$$method):o.$raise(s("TypeError"),"wrong argument type "+c.$class()+" (expected Proc/Method/UnboundMethod)"),i(!c.$$is_proc)&&(h=c.$owner(),i(h.$$is_class)&&k(A(m,h))&&(p=i(h.$$is_singleton)?"can't bind singleton method to a different class":"bind argument must be a subclass of "+h,o.$raise(s("TypeError"),p)))),typeof Proxy!="undefined"&&(g=Object.create(null),l.$$proxy_target=l,l=new Proxy(l,{apply:function(e,t,n){var s=e.$$jsid,o=e.$$is_lambda;e.$$jsid=r,e.$$is_lambda=!0;try{return e.apply(t,n)}catch(t){if(t===e.$$brk||t===e.$$ret)return t.$v;throw t}finally{e.$$jsid=s,e.$$is_lambda=o}}})),l.$$jsid=r,l.$$s=null,l.$$def=l,l.$$define_meth=!0,e.defn(m,d(r),l)},-2),t(P,"$freeze",function(){var t=this;return i(t["$frozen?"]())?t:(t.hasOwnProperty("$$base_module")||D(t,"$$base_module",null),T(t))}),t(P,"$remove_method",function(){for(var c,s=this,l=r(arguments),i=l,o=0;o<i.length;o++)c=I(i[o]),a(s),e.rdef(s,"$"+c);return s},-1),t(P,"$singleton_class?",function(){var t=this;return!!t.$$is_singleton}),t(P,"$include",function(){for(var n,i=this,l=r(arguments),c=l,a=c.length-1;a>=0;a--)n=c[a],n.$$is_module||o.$raise(s("TypeError"),"wrong argument type "+n.$class()+" (expected Module)"),n.$append_features(i),n.$included(i);return i},-1),t(P,"$included_modules",function(){var n=this;return e.included_modules(n)}),t(P,"$include?",function(n){var i,a,r,l,c=this;n.$$is_module||o.$raise(s("TypeError"),"wrong argument type "+n.$class()+" (expected Module)"),r=e.ancestors(c);for(i=0,l=r.length;i<l;i++)if(a=r[i],a===n&&a!==c)return!0;return!1}),t(P,"$instance_method",function(t){var n=this,i=n.$$prototype[d(t)];return(!i||i.$$stub)&&o.$raise(s("NameError").$new("undefined method `"+t+"' for class `"+n.$name()+"'",t)),s("UnboundMethod").$new(n,i.$$owner||n,i,t)}),t(P,"$instance_methods",function(n){var s=this;return n==null&&(n=!0),i(n)?e.instance_methods(s):e.own_instance_methods(s)},-1),t(P,"$included",h(n)),t(P,"$extended",h(n)),t(P,"$extend_object",function(t){return a(t),n}),t(P,"$method_added",function(){var s=r(arguments),o=s;return n},-1),t(P,"$method_removed",function(){var s=r(arguments),o=s;return n},-1),t(P,"$method_undefined",function(){var s=r(arguments),o=s;return n},-1),t(P,"$module_eval",function t(){var d,h,v,w,O,u=t.$$p||n,m=this,g=n,f=n,x=n,b=n,j=n,y=n,_=n;return t.$$p=null,v=r(arguments),h=v,i(u["$nil?"]())&&i(!!e.compile)?(i(S(1,3,!1)["$cover?"](h.$size()))||o.$raise(s("ArgumentError"),"wrong number of arguments (0 for 1..3)"),d=[].concat(p(h)),g=d[0]==null?n:d[0],f=d[1]==null?n:d[1],x=d[2]==null?n:d[2],d,b=new Map([["file",i(j=f)?j:"(eval)"],["eval",!0]]),y=new Map([["arity_check",!1]]).$merge(b),_=c.$compile(g,y),u=l(o,"proc",[],function t(){var n=t.$$s==null?this:t.$$s;return new Function("Opal,self","return "+_)(e,n)},{$$s:m})):i(h["$any?"]())&&o.$raise(s("ArgumentError"),""+("wrong number of arguments ("+h.$size()+" for 0)")+`
NOTE:If you want to enable passing a String argument please add "require 'opal-parser'" to your script
`),w=u.$$s,u.$$s=null,O=u.apply(m,[m]),u.$$s=w,O},-1),t(P,"$module_exec",function e(){var a,c,l,d,i=e.$$p||n,u=this;return e.$$p=null,a=r(arguments),c=a,i===n&&o.$raise(s("LocalJumpError"),"no block given"),l=i.$$s,i.$$s=null,d=i.apply(u,c),i.$$s=l,d},-1),t(P,"$method_defined?",function(t){var s=this,n=s.$$prototype[d(t)];return!!n&&!n.$$stub}),t(P,"$module_function",function(){if(i=this,l=r(arguments),o=l,a(i),o.length===0)return i.$$module_function=!0,n;for(var o,i,l,c=0,h=o.length;c<h;c++){var m=o[c],u=d(m),f=i.$$prototype[u];e.defs(i,u,f)}return o.length===1?o[0]:o;return i},-1),t(P,"$name",function(){if(s=this,s.$$full_name)return s.$$full_name;for(var s,o=[],t=s;t;){if(t.$$name===n||t.$$name==null)return n;if(o.unshift(t.$$name),t=t.$$base_module,t===m)break}return o.length===0?n:s.$$full_name=o.join("::")}),t(P,"$prepend",function(){var n,i,c=this,l=r(arguments),a=l;a.length===0&&o.$raise(s("ArgumentError"),"wrong number of arguments (given 0, expected 1+)");for(i=a.length-1;i>=0;i--)n=a[i],n.$$is_module||o.$raise(s("TypeError"),"wrong argument type "+n.$class()+" (expected Module)"),n.$prepend_features(c),n.$prepended(c);return c},-1),t(P,"$prepend_features",function(n){var i=this;return a(n),i.$$is_module||o.$raise(s("TypeError"),"wrong argument type "+i.$class()+" (expected Module)"),e.prepend_features(i,n),i}),t(P,"$prepended",h(n)),t(P,"$remove_const",function(n){var s=this;return a(s),e.const_remove(s,n)}),t(P,"$to_s",function(){var s=this,o=n;return i(o=e.Module.$name.call(s))?o:"#<"+(s.$$is_module?"Module":"Class")+":0x"+s.$__id__().$to_s(16)+">"}),t(P,"$undef_method",function(){for(var c,s=this,l=r(arguments),i=l,o=0;o<i.length;o++)c=I(i[o]),a(s),e.udef(s,"$"+c);return s},-1),t(P,"$instance_variables",function(){var s=this,o=n,o=(e.Module.$$nesting=B,s.$constants()),i=[];return N(s,function(e){e!=="constructor"&&!o["$include?"](e)&&i.push("@"+e)}),i});function V(t,n){o=e.own_instance_methods(t);for(s=0;s<o.length;s++){var s,o,i=o[s],a=d(i),c=t.$$prototype[a],r=e.wrap_method_body(c);r.$$jsid=i,e.defn(n,a,r)}}function $(t,n){for(var o=t.$$own_included_modules,s=o.length-1;s>=0;s--)e.append_features(o[s],n)}function W(t,n){for(var o=t.$$own_prepended_modules,s=o.length-1;s>=0;s--)e.prepend_features(o[s],n)}return t(P,"$initialize_copy",function(t){var n=this;return V(t,n),$(t,n),W(t,n),n.$$cloned_from=t.$$cloned_from.concat(t),n.$copy_class_variables(t),n.$copy_constants(t)}),t(P,"$initialize_dup",function e(t){var o=e.$$p||n,s=this;return e.$$p=null,O(s,w(s,"initialize_dup",e,!1,!0),"initialize_dup",[t],o),s.$copy_singleton_methods(t)}),t(P,"$copy_class_variables",function(t){var n,s=this;for(n in t.$$cvars)s.$$cvars[n]=t.$$cvars[n]}),t(P,"$copy_constants",function(t){var n,o=this,s=t.$$const;for(n in s)y(o,n,s[n])}),t(P,"$refine",function t(o){var r,u=t.$$p||n,a=this,d=n,i=n,c=n;return t.$$p=null,r=[a,n,n],d=r[0],i=r[1],c=r[2],r,c=e.id(o),typeof a.$$refine_modules=="undefined"&&(a.$$refine_modules=Object.create(null)),typeof a.$$refine_modules[c]=="undefined"?i=a.$$refine_modules[c]=s("Refinement").$new():i=a.$$refine_modules[c],i.refinement_module=d,i.refined_class=o,l(i,"class_exec",[],u.$to_proc()),i}),t(P,"$refinements",function(){var s,o=this,t=o.$$refine_modules,n=new Map;if(typeof t=="undefined")return n;for(s in t)n["$[]="](t[s].refined_class,t[s]);return n}),t(P,"$using",function(){return o.$raise("Module#using is not permitted in methods")}),v(P,"class_eval","module_eval"),v(P,"class_exec","module_exec"),v(P,"inspect","to_s")}("::",null,z),function(e,s){var o=x(e,s,"Refinement"),a=o.$$prototype;return a.refinement_module=a.refined_class=n,o.$attr_reader("refined_class"),t(o,"$inspect",function e(){var s=e.$$p||n,t=this;return e.$$p=null,i(t.refinement_module)?"#<refinement:"+t.refined_class.$inspect()+"@"+t.refinement_module.$inspect()+">":O(t,w(t,"inspect",e,!1,!0),"inspect",[],s)})}("::",f)},Opal.modules["corelib/class"]=function(e){var l=e.klass,i=e.send,b=e.defs,n=e.def,c=e.ensure_kwargs,m=e.hash_get,s=e.eqeq,o=e.truthy,a=e.rb_plus,d=e.return_val,u=e.slice,h=e.send2,r=e.find_super,f=e.Kernel,p=e.alias,g=e.top,v=[],t=e.nil,j=e.$$$;return e.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"),g.$require("corelib/module"),function(g,v,y){var _=l(g,v,"Class"),O=[_].concat(y),w=e.$r(O);return b(_,"$new",function n(s){var o,a=n.$$p||t;if(n.$$p=null,s==null&&(s=w("Object")),!s.$$is_class)throw e.TypeError.$new("superclass must be a Class");return o=e.allocate_class(t,s),s.$inherited(o),a!==t?i(o,"class_eval",[],a.$to_proc()):t,o},-1),n(_,"$allocate",function(){var s=this,n=new s.$$constructor;return n.$$id=e.uid(),n}),n(_,"$clone",function(i){var a,r=this,l=t;return i=c(i),a=m(i,"freeze"),a==null&&(a=t),o(a["$nil?"]())||s(a,!0)||s(a,!1)||r.$raise(w("ArgumentError"),"unexpected value for freeze: "+a.$class()),l=e.allocate_class(t,r.$$super),l.$copy_instance_variables(r),l.$copy_singleton_methods(r),l.$initialize_clone(r,new Map([["freeze",a]])),(s(a,!0)||o(a["$nil?"]())&&o(r["$frozen?"]()))&&l.$freeze(),l},-1),n(_,"$dup",function(){var o=this,s=t,s=e.allocate_class(t,o.$$super);return s.$copy_instance_variables(o),s.$initialize_dup(o),s}),n(_,"$descendants",function(){var t=this;return a(t.$subclasses(),i(t.$subclasses(),"map",[],"descendants".$to_proc()).$flatten())}),n(_,"$inherited",d(t)),n(_,"$new",function n(){var o,i,a,r=n.$$p||t,c=this;return n.$$p=null,i=u(arguments),a=i,o=c.$allocate(),e.send(o,o.$initialize,a,r),o},-1),n(_,"$subclasses",function(){var t,s,o,n=this;if(typeof WeakRef!="undefined"){o=[];for(t=0;t<n.$$subclasses.length;t++)s=n.$$subclasses[t].deref(),s!==void 0&&o.push(s);return o}return n.$$subclasses}),n(_,"$superclass",function(){var n=this;return n.$$super||t}),n(_,"$to_s",function n(){var s,i=n.$$p||t,o=this;return n.$$p=null,s=o.$$singleton_of,s&&s.$$is_a_module?"#<Class:"+s.$name()+">":s?"#<Class:#<"+s.$$class.$name()+":0x"+e.id(s).$to_s(16)+">>":h(o,r(o,"to_s",n,!1,!0),"to_s",[],null)}),n(_,"$attached_object",function(){var t=this;if(t.$$singleton_of!=null)return t.$$singleton_of;f.$raise(j("TypeError"),"`"+t+"' is not a singleton class")}),p(_,"inspect","to_s")}("::",null,v)},Opal.modules["corelib/basic_object"]=function(e){"use strict";var p=e.klass,s=e.slice,n=e.def,c=e.alias,f=e.return_val,r=e.Opal,o=e.truthy,l=e.range,i=e.Kernel,d=e.to_a,u=e.send,h=e.eqeq,m=e.rb_ge,t=e.nil,a=e.$$$;return e.add_stubs("==,raise,inspect,pristine,!,nil?,cover?,size,merge,compile,proc,[],first,>=,length,instance_variable_get,any?,new,caller"),function(g,v){var b=p(g,v,"BasicObject");return n(b,"$initialize",function(){var o=s(arguments),i=o;return t},-1),n(b,"$==",function(t){var n=this;return n===t}),n(b,"$eql?",function(t){var n=this;return n["$=="](t)}),c(b,"equal?","=="),n(b,"$__id__",function(){var n=this;return n.$$id!=null?n.$$id:(e.prop(n,"$$id",e.uid()),n.$$id)}),n(b,"$__send__",function n(o){var l,d,u,c=n.$$p||t,r=this;return n.$$p=null,u=s(arguments,1),d=u,o.$$is_string||r.$raise(a("TypeError"),""+r.$inspect()+" is not a symbol nor a string"),l=r[e.jsid(o)],l?(c!==t&&(l.$$p=c),l.apply(r,d)):(c!==t&&(r.$method_missing.$$p=c),r.$method_missing.apply(r,[o].concat(d)))},-2),n(b,"$!",f(!1)),r.$pristine("!"),n(b,"$!=",function(t){var n=this;return n["$=="](t)["$!"]()}),n(b,"$instance_eval",function n(){var g,v,b,C,E,p=n.$$p||t,f=this,y=t,j=t,k=t,_=t,w=t,O=t,x=t;if(n.$$p=null,E=s(arguments),g=E,o(p["$nil?"]())&&o(!!e.compile))o(l(1,3,!1)["$cover?"](g.$size()))||i.$raise(a("ArgumentError"),"wrong number of arguments (0 for 1..3)"),v=[].concat(d(g)),y=v[0]==null?t:v[0],j=v[1]==null?t:v[1],k=v[2]==null?t:v[2],v,_=new Map([["file",o(w=j)?w:"(eval)"],["eval",!0]]),O=new Map([["arity_check",!1]]).$merge(_),x=r.$compile(y,O),p=u(i,"proc",[],function t(){var n=t.$$s==null?this:t.$$s;return new Function("Opal,self","return "+x)(e,n)},{$$s:f});else if(o(p["$nil?"]())&&o(m(g.$length(),1))&&h(g.$first()["$[]"](0),"@"))return f.$instance_variable_get(g.$first());else o(g["$any?"]())&&i.$raise(a("ArgumentError"),"wrong number of arguments ("+g.$size()+" for 0)");if(C=p.$$s,p.$$s=null,f.$$is_a_module){f.$$eval=!0;try{b=p.call(f,f)}finally{f.$$eval=!1}}else b=p.call(f,f);return p.$$s=C,b},-1),n(b,"$instance_exec",function e(){var l,d,u,h,r=e.$$p||t,c=this;if(e.$$p=null,u=s(arguments),l=u,o(r)||i.$raise(a("ArgumentError"),"no block given"),h=r.$$s,r.$$s=null,c.$$is_a_module){c.$$eval=!0;try{d=r.apply(c,l)}finally{c.$$eval=!1}}else d=r.apply(c,l);return r.$$s=h,d},-1),n(b,"$singleton_method_added",function(){var o=s(arguments),i=o;return t},-1),n(b,"$singleton_method_removed",function(){var o=s(arguments),i=o;return t},-1),n(b,"$singleton_method_undefined",function(){var o=s(arguments),i=o;return t},-1),n(b,"$method_missing",function e(n){var c,l,h=e.$$p||t,u=this,d=t;return e.$$p=null,c=s(arguments,1),l=c,d=r.$inspect(u),i.$raise(a("NoMethodError").$new("undefined method `"+n+"' for "+d,n,l),t,i.$caller(1))},-2),r.$pristine(b,"method_missing"),n(b,"$respond_to_missing?",function(t,n){return n==null&&(n=!1),!1},-2)}("::",null)},Opal.modules["corelib/kernel"]=function(e){"use strict";var i=e.truthy,g=e.coerce_to,b=e.respond_to,c=e.Opal,j=e.deny_frozen_access,T=e.freeze,F=e.freeze_props,y=e.jsid,x=e.each_ivar,A=e.module,p=e.return_val,n=e.def,a=e.Kernel,o=e.gvars,l=e.slice,r=e.send,d=e.to_a,m=e.ensure_kwargs,h=e.hash_get,f=e.eqeq,_=e.rb_plus,w=e.extract_kwargs,k=e.eqeqeq,v=e.return_self,C=e.rb_le,E=e.rb_lt,O=e.Object,u=e.alias,S=e.klass,M=[],t=e.nil,s=e.$$$;return e.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(S,M){var N,z=A(S,"Kernel"),L=[z].concat(M),D=e.$r(L);return n(z,"$=~",p(!1)),n(z,"$!~",function(t){var n=this;return n["$=~"](t)["$!"]()}),n(z,"$===",function(n){var s=this,o=t;return i(o=s.$object_id()["$=="](n.$object_id()))?o:s["$=="](n)}),n(z,"$<=>",function(n){var s,o=this;return o.$$comparable=!0,s=o["$=="](n),s&&s!==t?0:t}),n(z,"$method",function(t){var n=this,o=n[y(t)];return(!o||o.$$stub)&&a.$raise(s("NameError").$new("undefined method `"+t+"' for class `"+n.$class()+"'",t)),s("Method").$new(n,o.$$owner||n.$class(),o,t)}),n(z,"$methods",function(n){var s=this;return n==null&&(n=!0),i(n)?e.methods(s):e.own_methods(s)},-1),n(z,"$public_methods",function(n){var s=this;return n==null&&(n=!0),i(n)?e.methods(s):e.receiver_methods(s)},-1),n(z,"$Array",function(n){var o;return n===t?[]:n.$$is_array?n:(o=c["$coerce_to?"](n,s("Array"),"to_ary"),o!==t?o:(o=c["$coerce_to?"](n,s("Array"),"to_a"),o!==t?o:[n]))}),n(z,"$at_exit",function e(){var n=e.$$p||t,s=t;return o.__at_exit__==null&&(o.__at_exit__=t),e.$$p=null,o.__at_exit__=i(s=o.__at_exit__)?s:[],o.__at_exit__["$<<"](n),n}),n(z,"$caller",function(n,s){n==null&&(n=1),s==null&&(s=t);for(var a=(new Error).$backtrace(),o=[],i=n+1,r=a.length;i<r;i++)a[i].match(/runtime\.js/)||o.push(a[i]);return s!=t&&(o=o.slice(0,s)),o},-1),n(z,"$caller_locations",function(){var a=this,o=l(arguments),i=o;return r(r(a,"caller",d(i)),"map",[],function(n){return n==null&&(n=t),s(s(s("Thread"),"Backtrace"),"Location").$new(n)})},-1),n(z,"$class",function(){var t=this;return t.$$class}),n(z,"$copy_instance_variables",function(t){var n,s,a,i=this,o=Object.keys(t);for(s=0,a=o.length;s<a;s++)n=o[s],n.charAt(0)!=="$"&&t.hasOwnProperty(n)&&(i[n]=t[n])}),n(z,"$copy_singleton_methods",function(n){var s,o,i,a,r,c,l=this;if(n.hasOwnProperty("$$meta")&&n.$$meta!==null){a=e.get_singleton_class(n),c=e.get_singleton_class(l),i=Object.getOwnPropertyNames(a.$$prototype);for(o=0,r=i.length;o<r;o++)s=i[o],e.is_method(s)&&(c.$$prototype[s]=a.$$prototype[s]);c.$$const=Object.assign({},a.$$const),Object.setPrototypeOf(c.$$prototype,Object.getPrototypeOf(a.$$prototype))}for(o=0,i=Object.getOwnPropertyNames(n),r=i.length;o<r;o++)s=i[o],s.charAt(0)==="$"&&s.charAt(1)!=="$"&&n.hasOwnProperty(s)&&(l[s]=n[s])}),n(z,"$clone",function(n){var s,o=this,a=t;return n=m(n),s=h(n,"freeze"),s==null&&(s=t),i(s["$nil?"]())||f(s,!0)||f(s,!1)||o.$raise(D("ArgumentError"),"unexpected value for freeze: "+s.$class()),a=o.$class().$allocate(),a.$copy_instance_variables(o),a.$copy_singleton_methods(o),a.$initialize_clone(o,new Map([["freeze",s]])),(f(s,!0)||i(s["$nil?"]())&&i(o["$frozen?"]()))&&a.$freeze(),a},-1),n(z,"$initialize_clone",function(n,s){var o,i=this;return s=m(s),o=h(s,"freeze"),o==null&&(o=t),i.$initialize_copy(n),i},-2),n(z,"$define_singleton_method",function e(n,s){var o=e.$$p||t,i=this;return e.$$p=null,r(i.$singleton_class(),"define_method",[n,s],o.$to_proc())},-2),n(z,"$dup",function(){var s=this,n=t,n=s.$class().$allocate();return n.$copy_instance_variables(s),n.$initialize_dup(s),n}),n(z,"$initialize_dup",function(t){var n=this;return n.$initialize_copy(t)}),n(z,"$enum_for",function e(){var i,a,c,u=e.$$p||t,h=this;return e.$$p=null,i=l(arguments),i.length>0&&(a=i.shift()),a==null&&(a="each"),c=i,r(s("Enumerator"),"for",[h,a].concat(d(c)),u.$to_proc())},-1),n(z,"$equal?",function(t){var n=this;return n===t}),n(z,"$exit",function(a){var r=t,c=t;for(o.__at_exit__==null&&(o.__at_exit__=t),a==null&&(a=!0),o.__at_exit__=i(r=o.__at_exit__)?r:[];!i(o.__at_exit__["$empty?"]());)c=o.__at_exit__.$pop(),c.$call();return a.$$is_boolean?a=a?0:1:a=g(a,s("Integer"),"to_int"),e.exit(a),t},-1),n(z,"$extend",function(){var o,i,c,n=this,d=l(arguments),r=d;r.length==0&&n.$raise(s("ArgumentError"),"wrong number of arguments (given 0, expected 1+)"),j(n);for(c=n.$singleton_class(),i=r.length-1;i>=0;i--)o=r[i],o.$$is_module||a.$raise(s("TypeError"),"wrong argument type "+o.$class()+" (expected Module)"),o.$append_features(c),o.$extend_object(n),o.$extended(n);return n},-1),n(z,"$freeze",function(){var t=this;return i(t["$frozen?"]())?t:typeof t=="object"?(F(t),T(t)):t}),n(z,"$frozen?",function(){var t=this;switch(typeof t){case"string":case"symbol":case"number":case"boolean":return!0;case"object":return t.$$frozen||!1;default:return!1}}),n(z,"$gets",function(){var s,i;return o.stdin==null&&(o.stdin=t),s=l(arguments),i=s,r(o.stdin,"gets",d(i))},-1),n(z,"$hash",function(){var t=this;return t.$__id__()}),n(z,"$initialize_copy",p(t)),N=[],n(z,"$inspect",function(){var s=this,o=t,a=t,c=t,l=t;return function(){try{try{return o="",a=s.$__id__(),i(N["$include?"](a))?o=" ...":(N["$<<"](a),c=!0,r(s.$instance_variables(),"each",[],function e(n){var a=e.$$s==null?this:e.$$s,s=t,i=t;return n==null&&(n=t),s=a.$instance_variable_get(n),i=D("Opal").$inspect(s),o=_(o," "+n+"="+i)},{$$s:s})),"#<"+s.$class()+":0x"+a.$to_s(16)+o+">"}catch(t){if(e.rescue(t,[D("StandardError")])){l=t;try{return"#<"+s.$class()+":0x"+a.$to_s(16)+">"}finally{e.pop_exception(t)}}else throw t}}finally{i(c)?N.$pop():t}}()}),n(z,"$instance_of?",function(t){var n=this;return!t.$$is_class&&!t.$$is_module&&a.$raise(s("TypeError"),"class or module required"),n.$$class===t}),n(z,"$instance_variable_defined?",function(n){var s=this;return n=c["$instance_variable_name!"](n),e.hasOwnProperty.call(s,n.substr(1))}),n(z,"$instance_variable_get",function(s){var o,i=this;return s=c["$instance_variable_name!"](s),o=i[e.ivar(s.substr(1))],o??t}),n(z,"$instance_variable_set",function(n,s){var o=this;return j(o),n=c["$instance_variable_name!"](n),o[e.ivar(n.substr(1))]=s}),n(z,"$remove_instance_variable",function(n){var o,r,i=this;return n=c["$instance_variable_name!"](n),o=e.ivar(n.substr(1)),i.hasOwnProperty(o)?(r=i[o],delete i[o],r):a.$raise(s("NameError"),"instance variable "+n+" not defined")}),n(z,"$instance_variables",function(){var s,n=this,t=[];return x(n,function(e){e.substr(-1)==="$"&&(e=e.slice(0,e.length-1)),t.push("@"+e)}),t}),n(z,"$Integer",function(o){var d,u,f,p,j,v=l(arguments,1),b=w(v),b=m(b);if(v.length>0&&(d=v.shift()),u=h(b,"exception"),u==null&&(u=!0),u=i(u),!o.$$is_string){if(d!==void 0)if(u)a.$raise(s("ArgumentError"),"base specified for non string value");else return t;if(o===t)if(u)a.$raise(s("TypeError"),"can't convert nil into Integer");else return t;if(o.$$is_number){if(o===1/0||o===-(1/0)||isNaN(o))if(u)a.$raise(s("FloatDomainError"),o);else return t;return Math.floor(o)}if(o["$respond_to?"]("to_int")&&(f=o.$to_int(),e.is_a(f,s("Integer"))))return f;if(o["$respond_to?"]("to_i")&&(f=o.$to_i(),e.is_a(f,s("Integer"))))return f;if(u)a.$raise(s("TypeError"),"can't convert "+o.$class()+" into Integer");else return t}if(o==="0")return 0;if(d===void 0)d=0;else if(d=g(d,s("Integer"),"to_int"),d===1||d<0||d>36)if(u)a.$raise(s("ArgumentError"),"invalid radix "+d);else return t;if(p=o.toLowerCase(),p=p.replace(/(\d)_(?=\d)/g,"$1"),p=p.replace(/^(\s*[+-]?)(0[bodx]?)/,function(e,n,i){switch(i){case"0b":if(d===0||d===2)return d=2,n;case"0":case"0o":if(d===0||d===8)return d=8,n;case"0d":if(d===0||d===10)return d=10,n;case"0x":if(d===0||d===16)return d=16,n}if(u)a.$raise(s("ArgumentError"),'invalid value for Integer(): "'+o+'"');else return t}),d=d===0?10:d,j="0-"+(d<=10?d-1:"9a-"+String.fromCharCode(97+(d-11))),!new RegExp("^\\s*[+-]?["+j+"]+\\s*$").test(p))if(u)a.$raise(s("ArgumentError"),'invalid value for Integer(): "'+o+'"');else return t;if(f=parseInt(p,d),isNaN(f))if(u)a.$raise(s("ArgumentError"),'invalid value for Integer(): "'+o+'"');else return t;return f},-2),n(z,"$Float",function(n,o){var r,l;if(o=m(o),r=h(o,"exception"),r==null&&(r=!0),r=i(r),n===t)if(r)a.$raise(s("TypeError"),"can't convert nil into Float");else return t;if(n.$$is_string){if(l=n.toString(),l=l.replace(/(\d)_(?=\d)/g,"$1"),/^\s*[-+]?0[xX][0-9a-fA-F]+\s*$/.test(l))return a.$Integer(l);if(!/^\s*[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?\s*$/.test(l))if(r)a.$raise(s("ArgumentError"),'invalid value for Float(): "'+n+'"');else return t;return parseFloat(l)}return r?c["$coerce_to!"](n,s("Float"),"to_f"):g(n,s("Float"),"to_f")},-2),n(z,"$Hash",function(t){return i(t["$nil?"]())||f(t,[])?new Map:k(s("Hash"),t)?t:c["$coerce_to!"](t,s("Hash"),"to_hash")}),n(z,"$is_a?",function(n){var o=this;return!n.$$is_class&&!n.$$is_module&&a.$raise(s("TypeError"),"class or module required"),e.is_a(o,n)}),n(z,"$itself",v),n(z,"$lambda",function n(){var s=n.$$p||t;return n.$$p=null,e.lambda(s)}),n(z,"$load",function(n){return n=c["$coerce_to!"](n,s("String"),"to_str"),e.load(n)}),n(z,"$loop",function n(){var o=n.$$p||t,a=this,c=t;if(n.$$p=null,o===t)return r(a,"enum_for",["loop"],function(){return s(s("Float"),"INFINITY")});for(;i(!0);)try{e.yieldX(o,[])}catch(t){if(e.rescue(t,[s("StopIteration")])){c=t;try{return c.$result()}finally{e.pop_exception(t)}}else throw t}return a}),n(z,"$nil?",p(!1)),n(z,"$printf",function(){var s,a,u=this,c=t;return o.stdout==null&&(o.stdout=t),a=l(arguments),s=a,i(s["$empty?"]())?t:(c=i(s[0].$$is_string)?o.stdout:s.$shift(),c.$write(r(u,"format",d(s))),t)},-1),n(z,"$proc",function e(){var n=e.$$p||t;return e.$$p=null,i(n)||a.$raise(s("ArgumentError"),"tried to create Proc object without a block"),n.$$is_lambda=!1,n}),n(z,"$puts",function(){var s,i;return o.stdout==null&&(o.stdout=t),s=l(arguments),i=s,r(o.stdout,"puts",d(i))},-1),n(z,"$p",function(){var a=l(arguments),s=a;return r(s,"each",[],function(n){return o.stdout==null&&(o.stdout=t),n==null&&(n=t),o.stdout.$puts(n.$inspect())}),i(C(s.$length(),1))?s["$[]"](0):s},-1),n(z,"$print",function(){var s,i;return o.stdout==null&&(o.stdout=t),s=l(arguments),i=s,r(o.stdout,"print",d(i))},-1),n(z,"$readline",function(){var s,i;return o.stdin==null&&(o.stdin=t),s=l(arguments),i=s,r(o.stdin,"readline",d(i))},-1),n(z,"$warn",function(){var f,p,v,b,j,y,O=this,g=t;return o.VERBOSE==null&&(o.VERBOSE=t),o.stderr==null&&(o.stderr=t),y=l(arguments),v=w(y),v=m(v),p=y,f=h(v,"uplevel"),f==null&&(f=t),i(f)&&(f=c["$coerce_to!"](f,s("Integer"),"to_str"),i(E(f,0))&&a.$raise(s("ArgumentError"),"negative level ("+f+")"),g=(b=(j=O.$caller(_(f,1),1).$first(),j===t||j==null?t:j.$split(":in `")),b===t||b==null?t:b.$first()),i(g)&&(g=""+g+": "),p=r(p,"map",[],function(n){return n==null&&(n=t),""+g+"warning: "+n})),i(o.VERBOSE["$nil?"]())||i(p["$empty?"]())?t:r(o.stderr,"puts",d(p))},-1),n(z,"$raise",function(i,a,r){throw o["!"]==null&&(o["!"]=t),a==null&&(a=t),r==null&&(r=t),i==null&&o["!"]!==t?o["!"]:(i==null?i=s("RuntimeError").$new(""):b(i,"$to_str")?i=s("RuntimeError").$new(i.$to_str()):i.$$is_class&&b(i,"$exception")?i=i.$exception(a):i.$$is_exception||(i=s("TypeError").$new("exception class/object expected")),r!==t&&i.$set_backtrace(r),o["!"]!==t&&e.exceptions.push(o["!"]),o["!"]=i,i)},-1),n(z,"$rand",function(t){return t===void 0?s(s("Random"),"DEFAULT").$rand():(t.$$is_number&&(t<0&&(t=Math.abs(t)),t%1!==0&&(t=t.$to_i()),t===0&&(t=void 0)),s(s("Random"),"DEFAULT").$rand(t))},-1),n(z,"$respond_to?",function(t,n){var o,s=this;return n==null&&(n=!1),o=s[y(t)],typeof o=="function"&&!o.$$stub||s["$respond_to_missing?"].$$pristine!==!0&&s["$respond_to_missing?"](t,n)},-2),n(z,"$respond_to_missing?",function(t,n){return n==null&&(n=!1),!1},-2),c.$pristine(z,"respond_to?","respond_to_missing?"),n(z,"$require",function(n){return typeof n!="string"&&e.String&&e.Array&&(n=c["$coerce_to!"](n,s("String"),"to_str")),e.require(n)}),n(z,"$require_relative",function(n){return c["$try_convert!"](n,s("String"),"to_str"),n=s("File").$expand_path(s("File").$join(e.current_file,"..",n)),e.require(n)}),n(z,"$require_tree",function(n,o){o=m(o),i=h(o,"autoload"),i==null&&(i=!1);var i,a,r=[];n=s("File").$expand_path(n),n=e.normalize(n),n==="."&&(n="");for(a in e.modules)a["$start_with?"](n)&&(i?r.push([a,!0]):r.push([a,e.require(a)]));return r},-2),n(z,"$singleton_class",function(){var n=this;return e.get_singleton_class(n)}),n(z,"$sleep",function(o){o==null&&(o=t),o===t&&a.$raise(s("TypeError"),"can't convert NilClass into time interval"),o.$$is_number||a.$raise(s("TypeError"),"can't convert "+o.$class()+" into time interval"),o<0&&a.$raise(s("ArgumentError"),"time interval must be positive");for(var i=e.global.performance?function(){return performance.now()}:function(){return new Date},r=i();i()-r<=o*1e3;);return Math.round(o)},-1),n(z,"$srand",function(t){return t==null&&(t=D("Random").$new_seed()),s("Random").$srand(t)},-1),n(z,"$String",function(n){var o=t;return i(o=c["$coerce_to?"](n,s("String"),"to_str"))?o:c["$coerce_to!"](n,s("String"),"to_s")}),n(z,"$tap",function n(){var o=n.$$p||t,s=this;return n.$$p=null,e.yield1(o,s),s}),n(z,"$to_proc",v),n(z,"$to_s",function(){var t=this;return"#<"+t.$class()+":0x"+t.$__id__().$to_s(16)+">"}),n(z,"$catch",function n(o){var l=n.$$p||t,c=t,r=t;n.$$p=null,o==null&&(o=t);try{return o=i(c=o)?c:O.$new(),e.yield1(l,o)}catch(t){if(e.rescue(t,[s("UncaughtThrowError")])){r=t;try{return f(r.$tag(),o)?r.$value():a.$raise()}finally{e.pop_exception(t)}}else throw t}},-1),n(z,"$throw",function(n,o){return o==null&&(o=t),a.$raise(s("UncaughtThrowError").$new(n,o))},-2),n(z,"$open",function e(){var o,i,a=e.$$p||t;return e.$$p=null,o=l(arguments),i=o,r(s("File"),"open",d(i),a.$to_proc())},-1),n(z,"$yield_self",function n(){var s=n.$$p||t,o=this;return n.$$p=null,s!==t?e.yield1(s,o):r(o,"enum_for",["yield_self"],p(1))}),u(z,"fail","raise"),u(z,"kind_of?","is_a?"),u(z,"object_id","__id__"),u(z,"public_send","__send__"),u(z,"send","__send__"),u(z,"then","yield_self"),u(z,"to_enum","enum_for")}("::",M),function(e,t){var n=S(e,t,"Object");return delete O.$$prototype.$require,n.$include(a)}("::",null)},Opal.modules["corelib/main"]=function(e){var n=e.return_val,t=e.def,s=e.Object,o=e.slice,i=e.Kernel,a=e.top,r=[],c=e.nil;return e.add_stubs("include,raise"),function(a){return t(a,"$to_s",n("main")),t(a,"$include",function(t){return s.$include(t)}),t(a,"$autoload",function(){var s=o(arguments),i=s;return e.Object.$autoload.apply(e.Object,i)},-1),t(a,"$using",function(){return i.$raise("main.using is permitted only at toplevel")})}(e.get_singleton_class(a),r)},Opal.modules["corelib/error/errno"]=function(e){var o=e.module,i=e.truthy,a=e.rb_plus,r=e.send2,c=e.find_super,n=e.def,l=e.klass,s=[],t=e.nil,d=e.$$$;return e.add_stubs("+,errno,class,attr_reader"),function(s,l){var d,m=o(s,"Errno"),f=[m].concat(l),u=t,h=t,u=[["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]],h=t;for(d=0;d<u.length;d++)(function(){var s=u[d][0],o=u[d][1],l=u[d][2];h=e.klass(m,e.SystemCallError,s),h.errno=l,function(e){return n(e,"$new",function e(n){var d=e.$$p||t,l=this,s=t;return e.$$p=null,n==null&&(n=t),s=o,i(n)&&(s=a(s," - "+n)),r(l,c(l,"new",e,!1,!0),"new",[s],null)},-1)}(e.get_singleton_class(h),f)})()}("::",s),function(t,s,o){var i=l(t,s,"SystemCallError"),a=[i].concat(o);return n(i,"$errno",function(){var t=this;return t.$class().$errno()}),function(e){return e.$attr_reader("errno")}(e.get_singleton_class(i),a)}("::",d("StandardError"),s)},Opal.modules["corelib/error"]=function(e){var s=e.klass,h=e.slice,c=e.gvars,g=e.defs,u=e.send,_=e.to_a,o=e.def,a=e.send2,r=e.find_super,i=e.truthy,l=e.Kernel,j=e.not,d=e.rb_plus,b=e.eqeq,v=e.Object,f=e.ensure_kwargs,m=e.hash_get,y=e.module,p=[],t=e.nil,n=e.$$$;return e.add_stubs("new,map,backtrace,clone,to_s,merge,tty?,[],include?,raise,dup,empty?,!,caller,shift,+,class,join,cause,full_message,==,reverse,split,autoload,attr_reader,inspect"),function(m,f,p){var y,v=s(m,f,"Exception"),O=[v].concat(p),x=e.$r(O),C=v.$$prototype;C.message=t,e.prop(v.$$prototype,"$$is_exception",!0),Error.stackTraceLimit=100,g(v,"$new",function(){var o,i,a,r,l=this;return c["!"]==null&&(c["!"]=t),r=h(arguments),i=r,a=i.length>0?i[0]:t,o=new l.$$constructor(a),o.name=l.$$name,o.message=a,o.cause=c["!"],e.send(o,o.$initialize,i),e.config.enable_stack_trace&&Error.captureStackTrace&&Error.captureStackTrace(o,y),o},-1),y=v.$new,g(v,"$exception",function(){var o=this,n=h(arguments),s=n;return u(o,"new",_(s))},-1),o(v,"$initialize",function(){var i=this,o=h(arguments),s=o;return i.message=s.length>0?s[0]:t},-1),o(v,"$copy_instance_variables",function e(n){var o=e.$$p||t,s=this;e.$$p=null,a(s,r(s,"copy_instance_variables",e,!1,!0),"copy_instance_variables",[n],o),s.message=n.message,s.cause=n.cause,s.stack=n.stack});function w(e){for(var t,n,s=[],o=0;o<e.length;o++)n=e[o],!n||!n.$$is_string||((t=n.match(/^ at (.*?) \((.*?)\)$/))?s.push(t[2]+":in `"+t[1]+"'"):(t=n.match(/^ at (.*?)$/))?s.push(t[1]+":in `undefined'"):(t=n.match(/^ from (.*?)$/))?s.push(t[1]):(t=n.match(/^(.*?)@(.*?)$/))&&s.push(t[2]+":in `"+t[1]+"'"));return s}return o(v,"$backtrace",function(){var t,n=this;return n.backtrace?n.backtrace:(t=n.stack,typeof t!="undefined"&&t.$$is_string?n.backtrace=w(t.split(`
`)):t?n.backtrace=w(t):[])}),o(v,"$backtrace_locations",function(){var o,s=this;return s.backtrace_locations?s.backtrace_locations:(s.backtrace_locations=(o=s.$backtrace(),o===t||o==null?t:u(o,"map",[],function(s){return s==null&&(s=t),n(n(n("Thread"),"Backtrace"),"Location").$new(s)})),s.backtrace_locations)}),o(v,"$cause",function(){var n=this;return n.cause||t}),o(v,"$exception",function(n){var o,s=this;return n==null&&(n=t),n===t||s===n?s:(o=s.$clone(),o.message=n,s.backtrace&&(o.backtrace=s.backtrace.$dup()),o.stack=s.stack,o.cause=s.cause,o)},-1),o(v,"$message",function(){var t=this;return t.$to_s()}),o(v,"$full_message",function(s){var p,w,a=this,y=t,h=t,g=t,v=t,m=t,f=t,r=t,_=t,o=t;return c.stderr==null&&(c.stderr=t),s==null&&(s=t),i((w=x("Hash","skip_raise"))?"constant":t)?(s=new Map([["highlight",c.stderr["$tty?"]()],["order","top"]]).$merge(i(y=s)?y:new Map),p=[s["$[]"]("highlight"),s["$[]"]("order")],h=p[0],g=p[1],p,i([!0,!1]["$include?"](h))||l.$raise(n("ArgumentError"),"expected true or false as highlight: "+h),i(["top","bottom"]["$include?"](g))||l.$raise(n("ArgumentError"),"expected :top or :bottom as order: "+g),i(h)?(v="",m="",f=""):v=m=f="",r=a.$backtrace().$dup(),(j(r)||i(r["$empty?"]()))&&(r=a.$caller()),_=r.$shift(),o=""+_+": ",o=d(o,""+m+a.$to_s()+" ("+v+a.$class()+f+m+")"+f+`
`),o=d(o,u(r,"map",[],function(n){return n==null&&(n=t)," from "+n+`
`}).$join()),i(a.$cause())&&(o=d(o,a.$cause().$full_message(new Map([["highlight",h]])))),b(g,"bottom")&&(o=o.$split(`
`).$reverse().$join(`
`),o=d(""+m+"Traceback"+f+` (most recent call last):
`,o)),o):""+a.message+`
`+a.stack},-1),o(v,"$inspect",function(){var n=this,s=t,s=n.$to_s();return i(s["$empty?"]())?n.$class().$to_s():"#<"+n.$class().$to_s()+": "+n.$to_s()+">"}),o(v,"$set_backtrace",function(s){var a,r,o=this,i=!0;if(s===t)o.backtrace=t,o.stack="";else if(s.$$is_string)o.backtrace=[s],o.stack=" from "+s;else{if(s.$$is_array){for(a=0,r=s.length;a<r;a++)if(!s[a].$$is_string){i=!1;break}}else i=!1;i===!1&&l.$raise(n("TypeError"),"backtrace must be Array of String"),o.backtrace=s,o.stack=u(s,"map",[],function(n){return n==null&&(n=t),d(" from ",n)}).join(`
`)}return s}),o(v,"$to_s",function(){var n=this,s=t,o=t;return i(s=i(o=n.message)?n.message.$to_s():o)?s:n.$class().$to_s()})}("::",Error,p),s("::",n("Exception"),"ScriptError"),s("::",n("ScriptError"),"SyntaxError"),s("::",n("ScriptError"),"LoadError"),s("::",n("ScriptError"),"NotImplementedError"),s("::",n("Exception"),"SystemExit"),s("::",n("Exception"),"NoMemoryError"),s("::",n("Exception"),"SignalException"),s("::",n("SignalException"),"Interrupt"),s("::",n("Exception"),"SecurityError"),s("::",n("Exception"),"SystemStackError"),s("::",n("Exception"),"StandardError"),s("::",n("StandardError"),"EncodingError"),s("::",n("StandardError"),"ZeroDivisionError"),s("::",n("StandardError"),"NameError"),s("::",n("NameError"),"NoMethodError"),s("::",n("StandardError"),"RuntimeError"),s("::",n("RuntimeError"),"FrozenError"),s("::",n("StandardError"),"LocalJumpError"),s("::",n("StandardError"),"TypeError"),s("::",n("StandardError"),"ArgumentError"),s("::",n("ArgumentError"),"UncaughtThrowError"),s("::",n("StandardError"),"IndexError"),s("::",n("IndexError"),"StopIteration"),s("::",n("StopIteration"),"ClosedQueueError"),s("::",n("IndexError"),"KeyError"),s("::",n("StandardError"),"RangeError"),s("::",n("RangeError"),"FloatDomainError"),s("::",n("StandardError"),"IOError"),s("::",n("IOError"),"EOFError"),s("::",n("StandardError"),"SystemCallError"),s("::",n("StandardError"),"RegexpError"),s("::",n("StandardError"),"ThreadError"),s("::",n("StandardError"),"FiberError"),v.$autoload("Errno","corelib/error/errno"),function(e,n){var i=s(e,n,"FrozenError");return i.$attr_reader("receiver"),o(i,"$initialize",function e(n,s){var o,c=e.$$p||t,i=this;return e.$$p=null,s=f(s),o=m(s,"receiver"),o==null&&(o=t),a(i,r(i,"initialize",e,!1,!0),"initialize",[n],null),i.receiver=o},-2)}("::",n("RuntimeError")),function(e,n){var i=s(e,n,"UncaughtThrowError"),c=i.$$prototype;return c.tag=t,i.$attr_reader("tag","value"),o(i,"$initialize",function e(n,s){var i=e.$$p||t,o=this;return e.$$p=null,s==null&&(s=t),o.tag=n,o.value=s,a(o,r(o,"initialize",e,!1,!0),"initialize",["uncaught throw "+o.tag.$inspect()],null)},-2)}("::",n("ArgumentError")),function(e,n){var i=s(e,n,"NameError");return i.$attr_reader("name"),o(i,"$initialize",function e(n,s){var i=e.$$p||t,o=this;return e.$$p=null,s==null&&(s=t),a(o,r(o,"initialize",e,!1,!0),"initialize",[n],null),o.name=s},-2)}("::",null),function(e,n){var i=s(e,n,"NoMethodError");return i.$attr_reader("args"),o(i,"$initialize",function e(n,s,o){var c=e.$$p||t,i=this;return e.$$p=null,s==null&&(s=t),o==null&&(o=[]),a(i,r(i,"initialize",e,!1,!0),"initialize",[n,s],null),i.args=o},-2)}("::",null),function(e,t){var n=s(e,t,"StopIteration");return n.$attr_reader("result")}("::",null),function(e,c){var d=s(e,c,"KeyError"),u=d.$$prototype;return u.receiver=u.key=t,o(d,"$initialize",function e(n,s){var o,i,l=e.$$p||t,c=this;return e.$$p=null,s=f(s),o=m(s,"receiver"),o==null&&(o=t),i=m(s,"key"),i==null&&(i=t),a(c,r(c,"initialize",e,!1,!0),"initialize",[n],null),c.receiver=o,c.key=i},-2),o(d,"$receiver",function(){var o=this,s=t;return i(s=o.receiver)?s:l.$raise(n("ArgumentError"),"no receiver is available")}),o(d,"$key",function(){var o=this,s=t;return i(s=o.key)?s:l.$raise(n("ArgumentError"),"no key is available")})}("::",null),function(e,n){var i=s(e,n,"LocalJumpError");return i.$attr_reader("exit_value","reason"),o(i,"$initialize",function e(n,s,o){var c=e.$$p||t,i=this;return e.$$p=null,s==null&&(s=t),o==null&&(o="noreason"),a(i,r(i,"initialize",e,!1,!0),"initialize",[n],null),i.exit_value=s,i.reason=o},-2)}("::",null),function(e,n){var o=y(e,"JS"),i=[o].concat(n);return s(i[0],null,"Error"),t}("::",p)},Opal.modules["corelib/constants"]=function(e){var t=e.const_set,s=e.nil,n=e.$$$;return t("::","RUBY_PLATFORM","opal"),t("::","RUBY_ENGINE","opal"),t("::","RUBY_VERSION","3.2.0"),t("::","RUBY_ENGINE_VERSION","1.8.2"),t("::","RUBY_RELEASE_DATE","2023-11-23"),t("::","RUBY_PATCHLEVEL",0),t("::","RUBY_REVISION","0"),t("::","RUBY_COPYRIGHT","opal - Copyright (C) 2011-2023 Adam Beynon and the Opal contributors"),t("::","RUBY_DESCRIPTION","opal "+n("RUBY_ENGINE_VERSION")+" ("+n("RUBY_RELEASE_DATE")+" revision "+n("RUBY_REVISION")+")")},Opal.modules["opal/base"]=function(e){var t=e.Object,n=e.nil;return e.add_stubs("require"),t.$require("corelib/runtime"),t.$require("corelib/helpers"),t.$require("corelib/module"),t.$require("corelib/class"),t.$require("corelib/basic_object"),t.$require("corelib/kernel"),t.$require("corelib/main"),t.$require("corelib/error"),t.$require("corelib/constants")},Opal.modules["corelib/nil"]=function(e){var r=e.klass,o=e.Kernel,t=e.def,n=e.return_val,f=e.ensure_kwargs,m=e.hash_get,a=e.NilClass,c=e.slice,l=e.truthy,d=e.rb_gt,u=e.alias,h=[],s=e.nil,i=e.$$$;return e.add_stubs("raise,name,new,>,length,Rational,to_i"),function(h,p,g){var v=r(h,p,"NilClass"),b=[v].concat(g);return v.$$prototype.$$meta=v,function(n){return t(n,"$allocate",function(){var t=this;return o.$raise(i("TypeError"),"allocator undefined for "+t.$name())}),e.udef(n,"$new"),s}(e.get_singleton_class(v),b),t(v,"$!",n(!0)),t(v,"$&",n(!1)),t(v,"$|",function(t){return t!==!1&&t!==s}),t(v,"$^",function(t){return t!==!1&&t!==s}),t(v,"$==",function(t){return t===s}),t(v,"$dup",n(s)),t(v,"$clone",function(t){var n;return t=f(t),n=m(t,"freeze"),n==null&&(n=!0),s},-1),t(v,"$inspect",n("nil")),t(v,"$nil?",n(!0)),t(v,"$singleton_class",function(){return a}),t(v,"$to_a",function(){return[]}),t(v,"$to_h",function(){return new Map}),t(v,"$to_i",n(0)),t(v,"$to_s",n("")),t(v,"$to_c",function(){return i("Complex").$new(0,0)}),t(v,"$rationalize",function(){var n=c(arguments),s=n;return l(d(s.$length(),1))&&o.$raise(i("ArgumentError")),o.$Rational(0,1)},-1),t(v,"$to_r",function(){return o.$Rational(0,1)}),t(v,"$instance_variables",function(){return[]}),u(v,"to_f","to_i")}("::",null,h)},Opal.modules["corelib/boolean"]=function(e){"use strict";var o=e.klass,p=e.Kernel,t=e.def,f=e.return_self,h=e.ensure_kwargs,r=e.hash_get,a=e.slice,c=e.truthy,l=e.send2,d=e.find_super,u=e.to_a,s=e.alias,m=[],n=e.nil,i=e.$$$;return e.add_stubs("raise,name,==,to_s,__id__"),function(m,g,v){var j,y,b=o(m,g,"Boolean"),_=[b].concat(v);e.prop(b.$$prototype,"$$is_boolean",!0);for(y=["$$class","$$meta"],j=0;j<y.length;j++)Object.defineProperty(b.$$prototype,y[j],{configurable:!0,enumerable:!1,get:function(){return this==!0?e.TrueClass:this==!1?e.FalseClass:e.Boolean}});return Object.defineProperty(b.$$prototype,"$$id",{configurable:!0,enumerable:!1,get:function(){return this==!0?2:this==!1?0:n}}),function(s){return t(s,"$allocate",function(){var t=this;return p.$raise(i("TypeError"),"allocator undefined for "+t.$name())}),e.udef(s,"$new"),n}(e.get_singleton_class(b),_),t(b,"$__id__",function(){var t=this;return t.valueOf()?2:0}),t(b,"$!",function(){var t=this;return t!=!0}),t(b,"$&",function(t){var s=this;return s==!0&&t!==!1&&t!==n}),t(b,"$|",function(t){var s=this;return s==!0||t!==!1&&t!==n}),t(b,"$^",function(t){var s=this;return s==!0?t===!1||t===n:t!==!1&&t!==n}),t(b,"$==",function(t){var n=this;return n==!0===t.valueOf()}),t(b,"$singleton_class",function(){var t=this;return t.$$meta}),t(b,"$to_s",function(){var t=this;return t==!0?"true":"false"}),t(b,"$dup",f),t(b,"$clone",function(t){var n,s=this;return t=h(t),n=r(t,"freeze"),n==null&&(n=!0),s},-1),t(b,"$method_missing",function t(s){var r,h,f,m=t.$$p||n,i=this;return t.$$p=null,f=a(arguments,1),h=f,r=i.$$class.$$prototype[e.jsid(s)],c(typeof r!="undefined"&&!r.$$stub)||l(i,d(i,"method_missing",t,!1,!0),"method_missing",[s].concat(u(h)),m),e.send(i,r,h,m)},-2),t(b,"$respond_to_missing?",function(n,s){var o,i=this;return s==null&&(s=!1),o=i.$$class.$$prototype[e.jsid(n)],typeof o!="undefined"&&!o.$$stub},-2),s(b,"eql?","=="),s(b,"equal?","=="),s(b,"inspect","to_s"),s(b,"object_id","__id__")}("::",Boolean,m),o("::",i("Boolean"),"TrueClass"),(o("::",i("Boolean"),"FalseClass"),n)},Opal.modules["corelib/comparable"]=function(e){var o=e.truthy,l=e.module,r=e.rb_gt,c=e.rb_lt,i=e.eqeqeq,a=e.Kernel,n=e.def,t=e.nil,s=e.$$$;return e.add_stubs(">,<,===,raise,class,<=>,equal?"),function(d){var u=l(d,"Comparable"),m=t;function f(t){return e.is_a(t,e.Integer)?t:r(t,0)?1:c(t,0)?-1:0}function p(e,n){var o;i(t,m=n)||i(!0,m)||i(!1,m)||i(s("Integer"),m)||i(s("Float"),m)?o=n.$inspect():o=n.$$class,a.$raise(s("ArgumentError"),"comparison of "+e.$class()+" with "+o+" failed")}function h(e,t){var n=e["$<=>"](t);return o(n)||p(e,t),f(n)}return n(u,"$==",function(s){var i=this,a=t;return!!o(i["$equal?"](s))||i["$<=>"]!=e.Kernel["$<=>"]&&(i.$$comparable?(i.$$comparable=!1,!1):!!o(a=i["$<=>"](s))&&f(a)==0)}),n(u,"$>",function(t){var n=this;return h(n,t)>0}),n(u,"$>=",function(t){var n=this;return h(n,t)>=0}),n(u,"$<",function(t){var n=this;return h(n,t)<0}),n(u,"$<=",function(t){var n=this;return h(n,t)<=0}),n(u,"$between?",function(t,n){var s=this;return!o(c(s,t))&&!o(r(s,n))}),n(u,"$clamp",function(o,i){var r,l,c=this;if(i==null&&(i=t),i===t&&(e.is_a(o,e.Range)||a.$raise(s("TypeError"),"wrong argument type "+o.$class()+" (expected Range)"),l=o.excl,i=o.end,o=o.begin,i!==t&&l&&a.$raise(s("ArgumentError"),"cannot clamp with an exclusive range")),o!==t&&i!==t&&h(o,i)>0&&a.$raise(s("ArgumentError"),"min argument must be smaller than max argument"),o!==t){if(r=h(c,o),r==0)return c;if(r<0)return o}return i!==t&&(r=h(c,i),r>0)?i:c},-2)}("::")},Opal.modules["corelib/regexp"]=function(e){var c=e.coerce_to,p=e.prop,k=e.freeze,f=e.klass,d=e.const_set,E=e.send2,v=e.find_super,n=e.def,i=e.truthy,s=e.gvars,u=e.slice,a=e.Kernel,m=e.Opal,l=e.alias,r=e.send,g=e.regexp,C=e.rb_plus,b=e.ensure_kwargs,j=e.hash_get,y=e.rb_ge,_=e.to_a,w=e.eqeqeq,O=e.rb_minus,x=e.return_ivar,h=[],t=e.nil,o=e.$$$;return e.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"),f("::",o("StandardError"),"RegexpError"),function(h,b,j){var y=f(h,b,"Regexp"),_=[y].concat(j),w=e.$r(_);return d(y,"IGNORECASE",1),d(y,"EXTENDED",2),d(y,"MULTILINE",4),e.prop(y.$$prototype,"$$is_regexp",!0),function(r,d){var f=[r].concat(d),h=e.$r(f);return n(r,"$allocate",function e(){var o=e.$$p||t,s=this,n=t;return e.$$p=null,n=E(s,v(s,"allocate",e,!1,!0),"allocate",[],o),n.uninitialized=!0,n}),n(r,"$escape",function(n){return n=c(n,o("String"),"to_str"),e.escape_regexp(n)}),n(r,"$last_match",function(n){return s["~"]==null&&(s["~"]=t),n==null&&(n=t),i(n["$nil?"]())?s["~"]:i(s["~"])?s["~"]["$[]"](n):t},-1),n(r,"$union",function(){var s,i,r,c,d,h,l=this,m=u(arguments),n=m;if(n.length==0)return/(?!)/;if(n.length==1&&n[0].$$is_regexp)return n[0];d=n[0].$$is_array,n.length>1&&d&&a.$raise(o("TypeError"),"no implicit conversion of Array into String"),d&&(n=n[0]);for(r=void 0,i=[],c=0;c<n.length;c++)s=n[c],s.$$is_string?i.push(l.$escape(s)):s.$$is_regexp?(h=s.$options(),r!=null&&r!=h&&a.$raise(o("TypeError"),"All expressions must use the same options"),r=h,i.push("("+s.source+")")):i.push(l.$escape(s.$to_str()));return l.$new(i.$join("|"),r)},-1),n(r,"$new",function(t,n){if(t.$$is_regexp)return new RegExp(t);if(t=m["$coerce_to!"](t,o("String"),"to_str"),t.charAt(t.length-1)==="\\"&&t.charAt(t.length-2)!=="\\"&&a.$raise(o("RegexpError"),"too short escape sequence: /"+t+"/"),t=t.replace("\\A","^").replace("\\z","$"),n===void 0||n["$!"]())return new RegExp(t);if(n.$$is_number){var s="";h("IGNORECASE")&n&&(s+="i"),h("MULTILINE")&n&&(s+="m"),n=s}else n="i";return new RegExp(t,n)},-2),l(r,"compile","new"),l(r,"quote","escape")}(e.get_singleton_class(y),_),n(y,"$==",function(t){var n=this;return t instanceof RegExp&&n.toString()===t.toString()}),n(y,"$===",function(n){var s=this;return s.$match(m["$coerce_to?"](n,o("String"),"to_str"))!==t}),n(y,"$=~",function(n){var a=this,o=t;return s["~"]==null&&(s["~"]=t),i(o=a.$match(n))?s["~"].$begin(0):o}),n(y,"$freeze",function(){var t=this;return i(t["$frozen?"]())?t:(t.hasOwnProperty("$$g")||p(t,"$$g",null),t.hasOwnProperty("$$gm")||p(t,"$$gm",null),k(t))}),n(y,"$inspect",function(){var t,n,s,o,a,c,l,d,u=this,h=/^\/(.*)\/([^/]*)$/,r=u.toString(),i=h.exec(r);if(i){for(c=i[1],l=i[2],a=c.split(""),d=a.length,t=!1,n="",s=0;s<d;s++)o=a[s],!t&&o=="/"&&(n=n.concat("\\")),n=n.concat(o),o=="\\"?t?t=!1:t=!0:t=!1;return"/"+n+"/"+l}return r}),n(y,"$match",function n(i,r){var l,h,m,d=n.$$p||t,u=this;if(s["~"]==null&&(s["~"]=t),n.$$p=null,u.uninitialized&&a.$raise(o("TypeError"),"uninitialized Regexp"),r===void 0)return i===t?s["~"]=t:(m=u.exec(c(i,o("String"),"to_str")),m?(s["~"]=o("MatchData").$new(u,m),d===t?s["~"]:e.yield1(d,s["~"])):s["~"]=t);if(r=c(r,o("Integer"),"to_int"),i===t)return s["~"]=t;if(i=c(i,o("String"),"to_str"),r<0&&(r+=i.length,r<0))return s["~"]=t;for(h=e.global_regexp(u);!0;){if(l=h.exec(i),l===null)return s["~"]=t;if(l.index>=r)return s["~"]=o("MatchData").$new(h,l),d===t?s["~"]:e.yield1(d,s["~"]);h.lastIndex=l.index+1}},-2),n(y,"$match?",function(s,i){var l,d,r=this;return r.uninitialized&&a.$raise(o("TypeError"),"uninitialized Regexp"),i===void 0?s!==t&&r.test(c(s,o("String"),"to_str")):(i=c(i,o("Integer"),"to_int"),s!==t&&(s=c(s,o("String"),"to_str"),!(i<0&&(i+=s.length,i<0))&&(d=e.global_regexp(r),l=d.exec(s),!(l===null||l.index<i))))},-2),n(y,"$names",function(){var t=this;return r(t.$source().$scan(g(["\\(?<(\\w+)>"]),new Map([["no_matchdata",!0]])),"map",[],"first".$to_proc()).$uniq()}),n(y,"$named_captures",function(){var n=this;return r(r(r(n.$source().$scan(g(["\\(?<(\\w+)>"]),new Map([["no_matchdata",!0]])),"map",[],"first".$to_proc()).$each_with_index(),"group_by",[],"first".$to_proc()),"transform_values",[],function(n){return n==null&&(n=t),r(n,"map",[],function(n){return n==null&&(n=t),C(n.$last(),1)})})}),n(y,"$~",function(){var n=this;return s._==null&&(s._=t),n["$=~"](s._)}),n(y,"$source",function(){var t=this;return t.source}),n(y,"$options",function(){var t,n=this;return n.uninitialized&&a.$raise(o("TypeError"),"uninitialized Regexp"),t=0,n.multiline&&(t|=w("MULTILINE")),n.ignoreCase&&(t|=w("IGNORECASE")),t}),n(y,"$casefold?",function(){var t=this;return t.ignoreCase}),l(y,"eql?","=="),l(y,"to_s","source")}("::",RegExp,h),function(c,d,h){var p=f(c,d,"MatchData"),g=[p].concat(h),v=e.$r(g),C=p.$$prototype;return C.matches=t,p.$attr_reader("post_match","pre_match","regexp","string"),n(p,"$initialize",function(n,o,a){r=this,a=b(a),c=j(a,"no_matchdata"),c==null&&(c=!1),i(c)||(s["~"]=r),r.regexp=n,r.begin=o.index,r.string=o.input,r.pre_match=o.input.slice(0,o.index),r.post_match=o.input.slice(o.index+o[0].length),r.matches=[];for(var r,c,d,l=0,u=o.length;l<u;l++)d=o[l],d==null?r.matches.push(t):r.matches.push(d)},-3),n(p,"$match",function(n){var s=this,r=t;return i(r=s["$[]"](n))?r:i(n["$is_a?"](v("Integer")))&&i(y(n,s.$length()))?a.$raise(o("IndexError"),"index "+n+" out of matches"):t}),n(p,"$match_length",function(n){var s,o=this;return s=o.$match(n),s===t||s==null?t:s.$length()}),n(p,"$[]",function(){var s=this,i=u(arguments),n=i;return n[0].$$is_string?(s.$regexp().$names()["$include?"](n["$[]"](0))["$!"]()&&a.$raise(o("IndexError"),"undefined group name reference: "+n["$[]"](0)),s.$named_captures()["$[]"](n["$[]"](0))):r(s.matches,"[]",_(n))},-1),n(p,"$offset",function(t){var n=this;return t!==0&&a.$raise(o("ArgumentError"),"MatchData#offset only supports 0th element"),[n.begin,n.begin+n.matches[t].length]}),n(p,"$==",function(n){var s=this,a=t,r=t,c=t,l=t;return!!w(o("MatchData"),n)&&(i(a=i(r=i(c=i(l=s.string==n.string)?s.regexp.toString()==n.regexp.toString():l)?s.pre_match==n.pre_match:c)?s.post_match==n.post_match:r)?s.begin==n.begin:a)}),n(p,"$begin",function(t){var n=this;return t!==0&&a.$raise(o("ArgumentError"),"MatchData#begin only supports 0th element"),n.begin}),n(p,"$end",function(t){var n=this;return t!==0&&a.$raise(o("ArgumentError"),"MatchData#end only supports 0th element"),n.begin+n.matches[t].length}),n(p,"$captures",function(){var t=this;return t.matches.slice(1)}),n(p,"$named_captures",function(){var n=this,s=t,s=n.$captures();return r(n.$regexp().$named_captures(),"transform_values",[],function(n){return n==null&&(n=t),s["$[]"](O(n.$last(),1))})}),n(p,"$names",function(){var t=this;return t.$regexp().$names()}),n(p,"$inspect",function(){if(n=this,s="#<MatchData "+n.matches[0].$inspect(),n.$regexp().$names()["$empty?"]())for(var n,s,o=1,i=n.matches.length;o<i;o++)s+=" "+o+":"+n.matches[o].$inspect();else r(n.$named_captures(),"each",[],function(n,o){return n==null&&(n=t),o==null&&(o=t),s+=" "+n+":"+o.$inspect()});return s+">"}),n(p,"$length",function(){var t=this;return t.matches.length}),n(p,"$to_a",x("matches")),n(p,"$to_s",function(){var t=this;return t.matches[0]}),n(p,"$values_at",function(){var s,a,l,c=this,d=u(arguments),i=d,r=[];for(s=0;s<i.length;s++){if(i[s].$$is_range&&(l=i[s].$to_a(),l.unshift(s,1),Array.prototype.splice.apply(i,l)),a=m["$coerce_to!"](i[s],o("Integer"),"to_int"),a<0&&(a+=c.matches.length,a<0)){r.push(t);continue}r.push(c.matches[a])}return r},-1),l(p,"eql?","=="),l(p,"size","length")}(h[0],null,h)},Opal.modules["corelib/string"]=function(e){var o=e.coerce_to,T=e.respond_to,d=e.global_multiline_regexp,F=e.prop,k=e.opal32_init,_=e.opal32_add,C=e.klass,E=e.send2,S=e.find_super,n=e.def,p=e.Opal,j=e.defs,l=e.slice,u=e.send,b=e.to_a,y=e.extract_kwargs,m=e.ensure_kwargs,h=e.hash_get,f=e.eqeqeq,a=e.Kernel,r=e.truthy,i=e.gvars,w=e.rb_divide,O=e.rb_plus,g=e.eqeq,c=e.alias,A=e.const_set,x=e.top,v=[],M=e.$r(v),s=e.nil,t=e.$$$;return e.add_stubs("require,include,coerce_to?,initialize,===,format,raise,respond_to?,to_s,to_str,<=>,==,=~,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"),x.$require("corelib/comparable"),x.$require("corelib/regexp"),function(v,x,A){var z,M=C(v,x,"String"),L=[M].concat(A),D=e.$r(L);M.$include(t("Comparable")),e.prop(M.$$prototype,"$$is_string",!0),z=new Map,function(){"use strict";n(M,"$__id__",function t(){var o,i=t.$$p||s,n=this;return t.$$p=null,typeof n=="object"?E(n,S(n,"__id__",t,!1,!0),"__id__",[],i):z.has(n)?z.get(n):(o=e.uid(),z.set(n,o),o)}),n(M,"$hash",function(){var n,s=this,t=k(),o=s.length,t=_(t,5),t=_(t,o);for(n=0;n<o;n++)t=_(t,s.charCodeAt(n));return t})}(),j(M,"$try_convert",function(n){return p["$coerce_to?"](n,t("String"),"to_str")}),j(M,"$new",function(){var c=this,r=l(arguments),i=r,s=i[0]||"",a=i[i.length-1],s=o(s,t("String"),"to_str");return a&&a.$$is_hash&&a.has("encoding")&&(s=s.$force_encoding(a.get("encoding").value)),s=new c.$$constructor(s),s.$initialize.$$pristine||u(s,"initialize",b(i)),s},-1),n(M,"$initialize",function(){var a,r,c,i=l(arguments),o=y(i),o=m(o);return i.length>0&&(c=i.shift()),a=h(o,"encoding"),a==null&&(a=s),r=h(o,"capacity"),r==null&&(r=s),s},-1),n(M,"$%",function(n){var s=this;return f(t("Array"),n)?u(s,"format",[s].concat(b(n))):s.$format(s,n)}),n(M,"$*",function(n){if(i=this,n=o(n,t("Integer"),"to_int"),n<0&&a.$raise(t("ArgumentError"),"negative argument"),n===0)return"";var i,r="",s=i.toString();for(s.length*n>=1<<28&&a.$raise(t("RangeError"),"multiply count must not overflow maximum string size");;){if((n&1)===1&&(r+=s),n>>>=1,n===0)break;s+=s}return r}),n(M,"$+",function(s){var a,i=this;return s=o(s,t("String"),"to_str"),s==""&&i.$$class===e.String?i:i==""&&s.$$class===e.String?s:(a=i+s,i.encoding===a.encoding&&s.encoding===a.encoding?a:i.encoding.name==="UTF-8"||s.encoding.name==="UTF-8"?a:e.enc(a,i.encoding))}),n(M,"$<=>",function(t){var n,o=this;return r(t["$respond_to?"]("to_str"))?(t=t.$to_str().$to_s(),o>t?1:o<t?-1:0):(n=t["$<=>"](o),n===s?s:n>0?-1:n<0?1:0)}),n(M,"$==",function(t){var n=this;return t.$$is_string?n.toString()===t.toString():!!T(t,"$to_str")&&t["$=="](n)}),n(M,"$=~",function(n){var s=this;return n.$$is_string&&a.$raise(t("TypeError"),"type mismatch: String given"),n["$=~"](s)}),n(M,"$[]",function(n,r){var c,u,h,l=this,d=l.length;return n.$$is_range?(u=n.excl,h=n,r=n.end===s?-1:o(n.end,t("Integer"),"to_int"),n=n.begin===s?0:o(n.begin,t("Integer"),"to_int"),Math.abs(n)>d?s:(n<0&&(n+=d),r<0&&(r+=d),(!u||h.end===s)&&(r+=1),r=r-n,r<0&&(r=0),l.substr(n,r))):n.$$is_string?(r!=null&&a.$raise(t("TypeError")),l.indexOf(n)!==-1?n:s):n.$$is_regexp?(c=l.match(n),c===null?(i["~"]=s,s):(i["~"]=t("MatchData").$new(n,c),r==null?c[0]:(r=o(r,t("Integer"),"to_int"),r<0&&-r<c.length?c[r+=c.length]:r>=0&&r<c.length?c[r]:s))):(n=o(n,t("Integer"),"to_int"),n<0&&(n+=d),r==null?n>=d||n<0?s:l.substr(n,1):(r=o(r,t("Integer"),"to_int"),r<0?s:n>d||n<0?s:l.substr(n,r)))},-2),n(M,"$b",function(){var t=this;return new String(t).$force_encoding("binary")}),n(M,"$capitalize",function(){var t=this;return t.charAt(0).toUpperCase()+t.substr(1).toLowerCase()}),n(M,"$casecmp",function(n){var a,i=this;return r(n["$respond_to?"]("to_str"))?(n=o(n,t("String"),"to_str").$to_s(),a=/^[\x00-\x7F]*$/,a.test(i)&&a.test(n)&&(i=i.toLowerCase(),n=n.toLowerCase()),i["$<=>"](n)):s}),n(M,"$casecmp?",function(t){var o=this,n=o.$casecmp(t);return n===s?s:n===0}),n(M,"$center",function(n,s){if(i=this,s==null&&(s=" "),n=o(n,t("Integer"),"to_int"),s=o(s,t("String"),"to_str").$to_s(),r(s["$empty?"]())&&a.$raise(t("ArgumentError"),"zero width padding"),r(n<=i.length))return i;var i,c=i.$ljust(w(O(n,i.length),2).$ceil(),s),l=i.$rjust(w(O(n,i.length),2).$floor(),s);return l+c.slice(i.length)},-2),n(M,"$chomp",function(n){var a,c,o=this;return i["/"]==null&&(i["/"]=s),n==null&&(n=i["/"]),r(n===s||o.length===0)?o:(n=p["$coerce_to!"](n,t("String"),"to_str").$to_s(),n===`
`?a=o.replace(/\r?\n?$/,""):n===""?a=o.replace(/(\r?\n)+$/,""):o.length>=n.length&&(c=o.substr(o.length-n.length,n.length),c===n&&(a=o.substr(0,o.length-n.length))),a??o)},-1),n(M,"$chop",function(){var s,t=this,n=t.length;return n<=1?s="":t.charAt(n-1)===`
`&&t.charAt(n-2)===` `?s=t.substr(0,n-2):s=t.substr(0,n-1),s}),n(M,"$chr",function(){var t=this;return t.charAt(0)}),n(M,"$clone",function(t){var n,i=this,o=s;return t=m(t),n=h(t,"freeze"),n==null&&(n=s),r(n["$nil?"]())||g(n,!0)||g(n,!1)||i.$raise(D("ArgumentError"),"unexpected value for freeze: "+n.$class()),o=new String(i),o.$copy_singleton_methods(i),o.$initialize_clone(i,new Map([["freeze",n]])),g(n,!0)?o.$$frozen||(o.$$frozen=!0):r(n["$nil?"]())&&i.$$frozen&&(o.$$frozen=!0),o},-1),n(M,"$dup",function(){var n=this,t=s,t=new String(n);return t.$initialize_dup(n),t}),n(M,"$count",function(){var s,i=this,r=l(arguments),o=r;return o.length===0&&a.$raise(t("ArgumentError"),"ArgumentError: wrong number of arguments (0 for 1+)"),s=N(o),s===null?0:i.length-i.replace(new RegExp(s,"g"),"").length},-1),n(M,"$delete",function(){var s,i=this,r=l(arguments),o=r;return o.length===0&&a.$raise(t("ArgumentError"),"ArgumentError: wrong number of arguments (0 for 1+)"),s=N(o),s===null?i:i.replace(new RegExp(s,"g"),"")},-1),n(M,"$delete_prefix",function(n){var s=this;return n.$$is_string||(n=o(n,t("String"),"to_str")),s.slice(0,n.length)===n?s.slice(n.length):s}),n(M,"$delete_suffix",function(n){var s=this;return n.$$is_string||(n=o(n,t("String"),"to_str")),s.slice(s.length-n.length)===n?s.slice(0,s.length-n.length):s}),n(M,"$downcase",function(){var t=this;return t.toLowerCase()}),n(M,"$each_line",function n(){var c,d,u,p,g,b,j,_,w,O,x,C,v=n.$$p||s,f=this;if(i["/"]==null&&(i["/"]=s),n.$$p=null,j=l(arguments),b=y(j),b=m(b),j.length>0&&(d=j.shift()),d==null&&(d=i["/"]),g=h(b,"chomp"),g==null&&(g=!1),v===s)return f.$enum_for("each_line",d,new Map([["chomp",g]]));if(d===s)return e.yield1(v,f),f;if(d=o(d,t("String"),"to_str"),d.length===0){for(p=f.split(/((?:\r?\n){2})(?:(?:\r?\n)*)/),c=0,x=p.length;c<x;c+=2)(p[c]||p[c+1])&&(u=(p[c]||"")+(p[c+1]||""),g&&(u=u.$chomp(`
`)),e.yield1(v,u));return f}w=f.$chomp(d),C=f.length!=w.length,O=w.split(d);for(c=0,_=O.length;c<_;c++)u=O[c],(c<_-1||C)&&(u+=d),g&&(u=u.$chomp(d)),e.yield1(v,u);return f},-1),n(M,"$empty?",function(){var t=this;return t.length===0}),n(M,"$end_with?",function(){for(var s,r,c,i=this,c=l(arguments),r=c,a=0,d=r.length;a<d;a++)if(s=o(r[a],t("String"),"to_str").$to_s(),i.length>=s.length&&i.substr(i.length-s.length,s.length)==s)return!0;return!1},-1),n(M,"$gsub",function e(n,a){var p,m=e.$$p||s,c=this;if(e.$$p=null,a===void 0&&m===s)return c.$enum_for("gsub",n);var r,l,u="",f=s,h=0;for(n.$$is_regexp?n=d(n):(n=o(n,t("String"),"to_str"),n=new RegExp(n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"gm"));!0;){if(r=n.exec(c),r===null){i["~"]=s,u+=c.slice(h);break}f=t("MatchData").$new(n,r),a===void 0?(p=n.lastIndex,l=m(r[0]),n.lastIndex=p):a.$$is_hash?l=a["$[]"](r[0]).$to_s():(a.$$is_string||(a=o(a,t("String"),"to_str")),l=a.replace(/([\\]+)([0-9+&`'])/g,function(e,t,n){if(t.length%2===0)return e;switch(n){case"+":for(var s=r.length-1;s>0;s--)if(r[s]!==void 0)return t.slice(1)+r[s];return"";case"&":return t.slice(1)+r[0];case"`":return t.slice(1)+c.slice(0,r.index);case"'":return t.slice(1)+c.slice(r.index+r[0].length);default:return t.slice(1)+(r[n]||"")}}).replace(/\\\\/g,"\\")),n.lastIndex===r.index?(u+=c.slice(h,r.index)+l+(c[r.index]||""),n.lastIndex+=1):u+=c.slice(h,r.index)+l,h=n.lastIndex}return i["~"]=f,u},-2),n(M,"$hex",function(){var t=this;return t.$to_i(16)}),n(M,"$include?",function(n){var s=this;return n.$$is_string||(n=o(n,t("String"),"to_str")),s.indexOf(n)!==-1}),n(M,"$index",function(n,a){var r,c,u,l=this;if(a===void 0)a=0;else if(a=o(a,t("Integer"),"to_int"),a<0&&(a+=l.length,a<0))return s;if(n.$$is_regexp)for(u=d(n);!0;){if(c=u.exec(l),c===null){i["~"]=s,r=-1;break}if(c.index>=a){i["~"]=t("MatchData").$new(u,c),r=c.index;break}u.lastIndex=c.index+1}else n=o(n,t("String"),"to_str"),n.length===0&&a>l.length?r=-1:r=l.indexOf(n,a);return r===-1?s:r},-2),n(M,"$inspect",function(){var t=this,s=/[\\"\x00-\x1f\u007F-\u009F\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,n={"":"\\a","":"\\e","":"\\b"," ":"\\t","\n":`\\n`," ":"\\f","\r":`\\r`," ":"\\v",'"':'\\"',"\\":"\\\\"},o=t.replace(s,function(e){return n[e]?n[e]:(e=e.charCodeAt(0),e<=255&&(t.encoding["$binary?"]()||t.internal_encoding["$binary?"]())?"\\x"+("00"+e.toString(16).toUpperCase()).slice(-2):"\\u"+("0000"+e.toString(16).toUpperCase()).slice(-4))});return'"'+o.replace(/#[$@{]/g,"\\$&")+'"'}),n(M,"$intern",function(){var t=this;return t.toString()}),n(M,"$length",function(){var t=this;return t.length}),c(M,"size","length"),n(M,"$lines",function e(){var o,a,c,d,f=e.$$p||s,p=this,g=s;return i["/"]==null&&(i["/"]=s),e.$$p=null,o=l(arguments),a=y(o),a=m(a),o.length>0&&(c=o.shift()),c==null&&(c=i["/"]),d=h(a,"chomp"),d==null&&(d=!1),g=u(p,"each_line",[c,new Map([["chomp",d]])],f.$to_proc()),r(f)?p:g.$to_a()},-1),n(M,"$ljust",function(n,s){if(i=this,s==null&&(s=" "),n=o(n,t("Integer"),"to_int"),s=o(s,t("String"),"to_str").$to_s(),r(s["$empty?"]())&&a.$raise(t("ArgumentError"),"zero width padding"),r(n<=i.length))return i;var i,l=-1,c="";for(n-=i.length;++l<n;)c+=s;return i+c.slice(0,n)},-2),n(M,"$lstrip",function(){var t=this;return t.replace(/^[\x00\x09\x0a-\x0d\x20]*/,"")}),n(M,"$ascii_only?",function(){var t=this;return!!t.encoding.ascii&&/^[\x00-\x7F]*$/.test(t)}),n(M,"$match",function e(n,o){var i=e.$$p||s,c=this;return e.$$p=null,(f(D("String"),n)||r(n["$respond_to?"]("to_str")))&&(n=t("Regexp").$new(n.$to_str())),f(t("Regexp"),n)||a.$raise(t("TypeError"),"wrong argument type "+n.$class()+" (expected Regexp)"),u(n,"match",[c,o],i.$to_proc())},-2),n(M,"$match?",function(n,s){var o=this;return(f(D("String"),n)||r(n["$respond_to?"]("to_str")))&&(n=t("Regexp").$new(n.$to_str())),f(t("Regexp"),n)||a.$raise(t("TypeError"),"wrong argument type "+n.$class()+" (expected Regexp)"),n["$match?"](o,s)},-2),n(M,"$next",function(){var t,n,o,a,i=this,s=i.length;if(s===0)return"";for(o=i,a=i.search(/[a-zA-Z0-9]/),n=!1;s--;){if(t=i.charCodeAt(s),t>=48&&t<=57||t>=65&&t<=90||t>=97&&t<=122)switch(t){case 57:n=!0,t=48;break;case 90:n=!0,t=65;break;case 122:n=!0,t=97;break;default:n=!1,t+=1}else a===-1?t===255?(n=!0,t=0):(n=!1,t+=1):n=!0;if(o=o.slice(0,s)+String.fromCharCode(t)+o.slice(s+1),n&&(s===0||s===a)){switch(t){case 65:break;case 97:break;default:t+=1}s===0?o=String.fromCharCode(t)+o:o=o.slice(0,s)+String.fromCharCode(t)+o.slice(s),n=!1}if(!n)break}return o}),n(M,"$oct",function(){var s,o=this,n=o,t=8;return/^\s*_/.test(n)?0:(n=n.replace(/^(\s*[+-]?)(0[bodx]?)(.+)$/i,function(e,n,s,o){switch(o.charAt(0)){case"+":case"-":return e;case"0":if(o.charAt(1)==="x"&&s==="0x")return e}switch(s){case"0b":t=2;break;case"0":case"0o":t=8;break;case"0d":t=10;break;case"0x":t=16;break}return n+o}),s=parseInt(n.replace(/_(?!_)/g,""),t),isNaN(s)?0:s)}),n(M,"$ord",function(){var t=this;return typeof t.codePointAt=="function"?t.codePointAt(0):t.charCodeAt(0)}),n(M,"$partition",function(n){var s,a,i=this;return n.$$is_regexp?(a=n.exec(i),a===null?s=-1:(t("MatchData").$new(n,a),n=a[0],s=a.index)):(n=o(n,t("String"),"to_str"),s=i.indexOf(n)),s===-1?[i,"",""]:[i.slice(0,s),i.slice(s,s+n.length),i.slice(s+n.length)]}),n(M,"$reverse",function(){var t=this;return t.split("").reverse().join("")}),n(M,"$rindex",function(n,a){var r,c,u,h,l=this;if(a===void 0)a=l.length;else if(a=o(a,t("Integer"),"to_int"),a<0&&(a+=l.length,a<0))return s;if(n.$$is_regexp){for(r=null,u=d(n);!0;){if(h=u.exec(l),h===null||h.index>a)break;r=h,u.lastIndex=r.index+1}r===null?(i["~"]=s,c=-1):(t("MatchData").$new(u,r),c=r.index)}else n=o(n,t("String"),"to_str"),c=l.lastIndexOf(n,a);return c===-1?s:c},-2),n(M,"$rjust",function(n,s){if(i=this,s==null&&(s=" "),n=o(n,t("Integer"),"to_int"),s=o(s,t("String"),"to_str").$to_s(),r(s["$empty?"]())&&a.$raise(t("ArgumentError"),"zero width padding"),r(n<=i.length))return i;var i,c=Math.floor(n-i.length),d=Math.floor(c/s.length),l=Array(d+1).join(s),u=c-l.length;return l+s.slice(0,u)+i},-2),n(M,"$rpartition",function(n){var s,i,r,c,a=this;if(n.$$is_regexp){for(i=null,r=d(n);!0;){if(c=r.exec(a),c===null)break;i=c,r.lastIndex=i.index+1}i===null?s=-1:(t("MatchData").$new(r,i),n=i[0],s=i.index)}else n=o(n,t("String"),"to_str"),s=a.lastIndexOf(n);return s===-1?["","",a]:[a.slice(0,s),a.slice(s,s+n.length),a.slice(s+n.length)]}),n(M,"$rstrip",function(){var t=this;return t.replace(/[\x00\x09\x0a-\x0d\x20]*$/,"")}),n(M,"$scan",function n(a,r){var c,l,u,p,f=n.$$p||s,g=this;for(n.$$p=null,r=m(r),l=h(r,"no_matchdata"),l==null&&(l=!1),p=[],u=s,a.$$is_regexp?a=d(a):(a=o(a,t("String"),"to_str"),a=new RegExp(a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"gm"));(c=a.exec(g))!=null;)u=t("MatchData").$new(a,c,new Map([["no_matchdata",l]])),f===s?c.length==1?p.push(c[0]):p.push(u.$captures()):c.length==1?e.yield1(f,c[0]):e.yield1(f,u.$captures()),a.lastIndex===c.index&&(a.lastIndex+=1);return l||(i["~"]=u),f!==s?g:p},-2),n(M,"$singleton_class",function(){var n=this;return e.get_singleton_class(n)}),n(M,"$split",function(a,c){var g=this,v=s;if(i[";"]==null&&(i[";"]=s),g.length===0)return[];if(c===void 0)c=0;else if(c=p["$coerce_to!"](c,t("Integer"),"to_int"),c===1)return[g];(a===void 0||a===s)&&(a=r(v=i[";"])?v:" ");var u,f,y,l=[],h=g.toString(),b=0,j=0,m=0;if(a.$$is_regexp?a=d(a):(a=o(a,t("String"),"to_str").$to_s(),a===" "&&(a=/\s+/gm,h=h.replace(/^\s+/,""))),l=h.split(a),l.length===1&&l[0]===h)return[l[0]];for(;(f=l.indexOf(void 0))!==-1;)l.splice(f,1);if(c===0){for(;l[l.length-1]==="";)l.pop();return l}if(a.$$is_regexp||(a=e.escape_regexp(a),a=new RegExp(a,"gm")),u=a.exec(h),c<0){if(u!==null&&u[0]===""&&a.source.indexOf("(?=")===-1)for(f=0,y=u.length;f<y;f++)l.push("");return l}if(u!==null&&u[0]==="")return m=(u.length-1)*(c-1)+c,l.splice(m-1,l.length-1,l.slice(m-1).join("")),l;if(c>=l.length)return l;for(;u!==null;){if(j++,b=a.lastIndex,m+=u.length,j+1===c)break;u=a.exec(h)}return l.splice(m,l.length-1,h.slice(b)),l},-1),n(M,"$squeeze",function(){var s,n=this,i=l(arguments),o=i;return o.length===0?n.replace(/(.)\1+/g,"$1"):(s=N(o),s===null?n:n.replace(new RegExp("("+s+")\\1+","g"),"$1"))},-1),n(M,"$start_with?",function(){for(var r,c,u,h,m,d=this,m=l(arguments),r=m,a=0,f=r.length;a<f;a++)if(r[a].$$is_regexp){if(u=r[a],c=u.exec(d),c!=null&&c.index===0)return i["~"]=t("MatchData").$new(u,c),!0;i["~"]=s}else if(h=o(r[a],t("String"),"to_str").$to_s(),d.length>=h.length&&d.startsWith(h))return!0;return!1},-1),n(M,"$strip",function(){var t=this;return t.replace(/^[\x00\x09\x0a-\x0d\x20]*|[\x00\x09\x0a-\x0d\x20]*$/g,"")}),n(M,"$sub",function e(n,r){var c,d,u=e.$$p||s,l=this;return e.$$p=null,n.$$is_regexp||(n=o(n,t("String"),"to_str"),n=new RegExp(n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"))),c=n.exec(l),c===null?(i["~"]=s,d=l.toString()):(t("MatchData").$new(n,c),r===void 0?(u===s&&a.$raise(t("ArgumentError"),"wrong number of arguments (1 for 2)"),d=l.slice(0,c.index)+u(c[0])+l.slice(c.index+c[0].length)):r.$$is_hash?d=l.slice(0,c.index)+r["$[]"](c[0]).$to_s()+l.slice(c.index+c[0].length):(r=o(r,t("String"),"to_str"),r=r.replace(/([\\]+)([0-9+&`'])/g,function(e,t,n){if(t.length%2===0)return e;switch(n){case"+":for(var s=c.length-1;s>0;s--)if(c[s]!==void 0)return t.slice(1)+c[s];return"";case"&":return t.slice(1)+c[0];case"`":return t.slice(1)+l.slice(0,c.index);case"'":return t.slice(1)+l.slice(c.index+c[0].length);default:return t.slice(1)+(c[n]||"")}}).replace(/\\\\/g,"\\"),d=l.slice(0,c.index)+r+l.slice(c.index+c[0].length))),d},-2),n(M,"$sum",function(n){s=this,n==null&&(n=16),n=o(n,t("Integer"),"to_int");for(var s,i=0,r=s.length,a=0;a<r;a++)i+=s.charCodeAt(a);return n<=0?i:i&Math.pow(2,n)-1},-1),n(M,"$swapcase",function(){var t=this,n=t.replace(/([a-z]+)|([A-Z]+)/g,function(e,t){return t?e.toUpperCase():e.toLowerCase()});return n}),n(M,"$to_f",function(){var t,n=this;return n.charAt(0)==="_"?0:(t=parseFloat(n.replace(/_/g,"")),isNaN(t)||t==1/0||t==-(1/0)?0:t)}),n(M,"$to_i",function(n){c=this,n==null&&(n=10);var r,c,i=c.toLowerCase(),s=o(n,t("Integer"),"to_int");return(s===1||s<0||s>36)&&a.$raise(t("ArgumentError"),"invalid radix "+s),/^\s*_/.test(i)?0:(i=i.replace(/^(\s*[+-]?)(0[bodx]?)(.+)$/,function(e,t,n,o){switch(o.charAt(0)){case"+":case"-":return e;case"0":if(o.charAt(1)==="x"&&n==="0x"&&(s===0||s===16))return e}switch(n){case"0b":if(s===0||s===2)return s=2,t+o;break;case"0":case"0o":if(s===0||s===8)return s=8,t+o;break;case"0d":if(s===0||s===10)return s=10,t+o;break;case"0x":if(s===0||s===16)return s=16,t+o;break}return e}),r=parseInt(i.replace(/_(?!_)/g,""),s),isNaN(r)?0:r)},-1),n(M,"$to_proc",function n(){var d=n.$$p||s,c=this,o=s,r=s,i=s;return n.$$p=null,o=c.valueOf(),r=e.jsid(o),i=u(a,"proc",[],function e(){var i,c,d,h,u=e.$$p||s;return e.$$p=null,h=l(arguments),i=h,i.length===0&&a.$raise(t("ArgumentError"),"no receiver given"),c=i[0],c==null&&(c=s),d=c[r],d?i=i.slice(1):(d=c.$method_missing,i[0]=o),typeof u=="function"&&(d.$$p=u),i.length===0?d.call(c):d.apply(c,i)},-1),i.$$source_location=s,i}),n(M,"$to_s",function(){var t=this;return t.toString()}),n(M,"$tr",function(n,s){var i,r,c,l,d,u,h,m,f,p,g,v,b,j,y,_,w,O,C,E,k,A,x=this;if(n=o(n,t("String"),"to_str").$to_s(),s=o(s,t("String"),"to_str").$to_s(),n.length==0||n===s)return x;_={},c=n.split(""),g=c.length,h=s.split(""),u=h.length,y=!1,C=null,c[0]==="^"&&c.length>1&&(y=!0,c.shift(),C=h[u-1],g-=1),d=[],b=null,f=!1;for(i=0;i<g;i++)if(r=c[i],b==null)b=r,d.push(r);else if(r==="-")b==="-"?(d.push("-"),d.push("-")):i==g-1?d.push("-"):f=!0;else if(f){m=b.charCodeAt(0),v=r.charCodeAt(0),m>v&&a.$raise(t("ArgumentError"),'invalid range "'+String.fromCharCode(m)+"-"+String.fromCharCode(v)+'" in string transliteration');for(p=m+1;p<v;p++)d.push(String.fromCharCode(p));d.push(r),f=null,b=null}else d.push(r);if(c=d,g=c.length,y)for(i=0;i<g;i++)_[c[i]]=!0;else{if(u>0){l=[],j=null,f=!1;for(i=0;i<u;i++)if(r=h[i],j==null)j=r,l.push(r);else if(r==="-")j==="-"?(l.push("-"),l.push("-")):i==u-1?l.push("-"):f=!0;else if(f){m=j.charCodeAt(0),v=r.charCodeAt(0),m>v&&a.$raise(t("ArgumentError"),'invalid range "'+String.fromCharCode(m)+"-"+String.fromCharCode(v)+'" in string transliteration');for(p=m+1;p<v;p++)l.push(String.fromCharCode(p));l.push(r),f=null,j=null}else l.push(r);h=l,u=h.length}if(E=g-u,E>0){A=u>0?h[u-1]:"";for(i=0;i<E;i++)h.push(A)}for(i=0;i<g;i++)_[c[i]]=h[i]}w="";for(i=0,k=x.length;i<k;i++)r=x.charAt(i),O=_[r],y?w+=O==null?C:r:w+=O??r;return w}),n(M,"$tr_s",function(n,s){var i,r,c,l,d,u,h,m,f,p,g,v,b,j,y,_,w,O,C,E,k,A,S,x=this;if(n=o(n,t("String"),"to_str").$to_s(),s=o(s,t("String"),"to_str").$to_s(),n.length==0)return x;w={},c=n.split(""),p=c.length,m=s.split(""),h=m.length,O=!1,E=null,c[0]==="^"&&c.length>1&&(O=!0,c.shift(),E=m[h-1],p-=1),u=[],l=null,j=!1;for(i=0;i<p;i++)if(r=c[i],l==null)l=r,u.push(r);else if(r==="-")l==="-"?(u.push("-"),u.push("-")):i==p-1?u.push("-"):j=!0;else if(j){v=l.charCodeAt(0),f=r.charCodeAt(0),v>f&&a.$raise(t("ArgumentError"),'invalid range "'+String.fromCharCode(v)+"-"+String.fromCharCode(f)+'" in string transliteration');for(b=v+1;b<f;b++)u.push(String.fromCharCode(b));u.push(r),j=null,l=null}else u.push(r);if(c=u,p=c.length,O)for(i=0;i<p;i++)w[c[i]]=!0;else{if(h>0){d=[],A=null,j=!1;for(i=0;i<h;i++)if(r=m[i],l==null)l=r,d.push(r);else if(r==="-")A==="-"?(d.push("-"),d.push("-")):i==h-1?d.push("-"):j=!0;else if(j){v=l.charCodeAt(0),f=r.charCodeAt(0),v>f&&a.$raise(t("ArgumentError"),'invalid range "'+String.fromCharCode(v)+"-"+String.fromCharCode(f)+'" in string transliteration');for(b=v+1;b<f;b++)d.push(String.fromCharCode(b));d.push(r),j=null,l=null}else d.push(r);m=d,h=m.length}if(C=p-h,C>0){k=h>0?m[h-1]:"";for(i=0;i<C;i++)m.push(k)}for(i=0;i<p;i++)w[c[i]]=m[i]}y="",g=null;for(i=0,S=x.length;i<S;i++)r=x.charAt(i),_=w[r],O?_==null?g==null&&(y+=E,g=!0):(y+=r,g=null):_!=null?(g==null||g!==_)&&(y+=_,g=_):(y+=r,g=null);return y}),n(M,"$upcase",function(){var t=this;return t.toUpperCase()}),n(M,"$upto",function e(n,i){var a,r,c,l=e.$$p||s,d=this;if(e.$$p=null,i==null&&(i=!1),l===s)return d.$enum_for("upto",n,i);if(a=d.toString(),n=o(n,t("String"),"to_str"),a.length===1&&n.length===1)for(r=a.charCodeAt(0),c=n.charCodeAt(0);r<=c;){if(i&&r===c)break;l(String.fromCharCode(r)),r+=1}else if(parseInt(a,10).toString()===a&&parseInt(n,10).toString()===n)for(r=parseInt(a,10),c=parseInt(n,10);r<=c;){if(i&&r===c)break;l(r.toString()),r+=1}else for(;a.length<=n.length&&a<=n;){if(i&&a===n)break;l(a),a=a.$succ()}return d},-2);function N(e){function m(e){var n,s,o,i,r,l,c="",d=e.length;for(n=0;n<d;n++)if(s=e.charAt(n),s==="-"&&n>0&&n<d-1&&!l){o=e.charCodeAt(n-1),i=e.charCodeAt(n+1),o>i&&a.$raise(t("ArgumentError"),'invalid range "'+o+"-"+i+'" in string transliteration');for(r=o+1;r<i+1;r++)c+=String.fromCharCode(r);l=!0,n++}else l=s==="\\",c+=s;return c}function h(e,t){if(e.length===0)return t;var n,s,o="",i=e.length;for(n=0;n<i;n++)s=e.charAt(n),t.indexOf(s)!==-1&&(o+=s);return o}var n,s,c,l,d,u,i="",r="";for(n=0,c=e.length;n<c;n++)s=o(e[n],t("String"),"to_str"),l=s.charAt(0)==="^"&&s.length>1,s=m(l?s.slice(1):s),l?r=h(r,s):i=h(i,s);if(i.length>0&&r.length>0){u="";for(n=0,c=i.length;n<c;n++)d=i.charAt(n),r.indexOf(d)===-1&&(u+=d);i=u,r=""}return i.length>0?"["+t("Regexp").$escape(i)+"]":r.length>0?"[^"+t("Regexp").$escape(r)+"]":null}return n(M,"$instance_variables",function(){return[]}),j(M,"$_load",function(){var o=this,n=l(arguments),s=n;return u(o,"new",b(s))},-1),n(M,"$unicode_normalize",function(n){var s=this;return n==null&&(n="nfc"),r(["nfc","nfd","nfkc","nfkd"]["$include?"](n))||a.$raise(t("ArgumentError"),"Invalid normalization form "+n),s.normalize(n.$upcase())},-1),n(M,"$unicode_normalized?",function(t){var n=this;return t==null&&(t="nfc"),n.$unicode_normalize(t)["$=="](n)},-1),n(M,"$unpack",function(){return a.$raise("To use String#unpack, you must first require 'corelib/string/unpack'.")}),n(M,"$unpack1",function(){return a.$raise("To use String#unpack1, you must first require 'corelib/string/unpack'.")}),n(M,"$freeze",function(){var t=this;return typeof t=="string"?t:(F(t,"$$frozen",!0),t)}),n(M,"$-@",function(){var t=this;return typeof t=="string"?t:t.$$frozen?t:t.encoding.name=="UTF-8"&&t.internal_encoding.name=="UTF-8"?t.toString():t.$dup().$freeze()}),n(M,"$frozen?",function(){var t=this;return typeof t=="string"||t.$$frozen===!0}),c(M,"+@","dup"),c(M,"===","=="),c(M,"byteslice","[]"),c(M,"eql?","=="),c(M,"equal?","==="),c(M,"object_id","__id__"),c(M,"slice","[]"),c(M,"succ","next"),c(M,"to_str","to_s"),c(M,"to_sym","intern"),p.$pristine(M,"initialize")}("::",String,v),A(v[0],"Symbol",M("String"))},Opal.modules["corelib/enumerable"]=function(e){var s=e.truthy,v=e.coerce_to,d=e.yield1,p=e.yieldX,C=e.deny_frozen_access,w=e.module,n=e.send,r=e.slice,l=e.to_a,i=e.Opal,u=e.thrower,o=e.def,c=e.Kernel,_=e.return_val,f=e.rb_gt,A=e.rb_times,k=e.rb_lt,b=e.eqeq,m=e.rb_plus,g=e.rb_minus,y=e.rb_divide,j=e.rb_le,O=e.lambda,x=e.not,h=e.alias,E=[],t=e.nil,a=e.$$$;return e.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,S){var M=w(E,"Enumerable"),T=[M].concat(S),z=e.$r(T);function F(e){return e.length===0&&(e=[t]),e.length>1&&(e=[e]),e}return o(M,"$all?",function o(a){try{var c=u("return"),h=o.$$p||t,d=this;return o.$$p=null,s(a!==void 0)?n(d,"each",[],function e(){var i=t,d=r(arguments),u=d,i=F(u);if(s(n(a,"public_send",["==="].concat(l(i)))))return t;c.$throw(!1,e.$$is_lambda)},{$$arity:-1,$$ret:c}):h!==t?n(d,"each",[],function n(){var i=r(arguments),a=i;if(s(e.yieldX(h,l(a))))return t;c.$throw(!1,n.$$is_lambda)},{$$arity:-1,$$ret:c}):n(d,"each",[],function e(){var o=r(arguments),a=o;if(s(i.$destructure(a)))return t;c.$throw(!1,e.$$is_lambda)},{$$arity:-1,$$ret:c}),!0}catch(e){if(e===c)return e.$v;throw e}finally{c.is_orphan=!0}},-1),o(M,"$any?",function o(a){try{var c=u("return"),h=o.$$p||t,d=this;return o.$$p=null,s(a!==void 0)?n(d,"each",[],function e(){var i=t,d=r(arguments),u=d,i=F(u);if(s(n(a,"public_send",["==="].concat(l(i)))))c.$throw(!0,e.$$is_lambda);else return t},{$$arity:-1,$$ret:c}):h!==t?n(d,"each",[],function n(){var i=r(arguments),a=i;if(s(e.yieldX(h,l(a))))c.$throw(!0,n.$$is_lambda);else return t},{$$arity:-1,$$ret:c}):n(d,"each",[],function e(){var o=r(arguments),a=o;if(s(i.$destructure(a)))c.$throw(!0,e.$$is_lambda);else return t},{$$arity:-1,$$ret:c}),!1}catch(e){if(e===c)return e.$v;throw e}finally{c.is_orphan=!0}},-1),o(M,"$chunk",function e(){var o=e.$$p||t,s=this;return e.$$p=null,o!==t?n(a("Enumerator"),"new",[],function e(n){a=e.$$s==null?this:e.$$s,n==null&&(n=t);var a,s=t,i=[];function r(){i.length>0&&n.$yield(s,i)}a.$each.$$p=function(e){var n=d(o,e);n===t?(r(),i=[],s=t):(s===t||s===n?i.push(e):(r(),i=[e]),s=n)},a.$each(),r()},{$$s:s}):n(s,"to_enum",["chunk"],function e(){var t=e.$$s==null?this:e.$$s;return t.$enumerator_size()},{$$s:s})}),o(M,"$chunk_while",function s(){var o=s.$$p||t,i=this;return s.$$p=null,o!==t||c.$raise(a("ArgumentError"),"no block given"),n(i,"slice_when",[],function(s,i){return s==null&&(s=t),i==null&&(i=t),e.yieldX(o,[s,i])["$!"]()})}),o(M,"$collect",function e(){var o,i=e.$$p||t,s=this;return e.$$p=null,i!==t?(o=[],s.$each.$$p=function(){var e=p(i,arguments);o.push(e)},s.$each(),o):n(s,"enum_for",["collect"],function e(){var t=e.$$s==null?this:e.$$s;return t.$enumerator_size()},{$$s:s})}),o(M,"$collect_concat",function e(){var o=e.$$p||t,s=this;return e.$$p=null,o!==t?n(s,"map",[],o.$to_proc()).$flatten(1):n(s,"enum_for",["collect_concat"],function e(){var t=e.$$s==null?this:e.$$s;return t.$enumerator_size()},{$$s:s})}),o(M,"$compact",function(){var t=this;return t.$to_a().$compact()}),o(M,"$count",function e(o){var a=e.$$p||t,d=this,l=t;return e.$$p=null,l=0,o!=null&&a!==t&&d.$warn("warning: given block not used"),s(o!=null)?a=n(c,"proc",[],function(){var n=r(arguments),s=n;return i.$destructure(s)["$=="](o)},-1):s(a["$nil?"]())&&(a=n(c,"proc",[],_(!0))),n(d,"each",[],function(){var o=r(arguments),i=o;return s(p(a,i))?l++:t},-1),l},-1),o(M,"$cycle",function e(o){var r,c,h,m,l=e.$$p||t,u=this;if(e.$$p=null,o==null&&(o=t),l===t)return n(u,"enum_for",["cycle",o],function e(){var n=e.$$s==null?this:e.$$s;return s(o["$nil?"]())?s(n["$respond_to?"]("size"))?a(a("Float"),"INFINITY"):t:(o=i["$coerce_to!"](o,a("Integer"),"to_int"),s(f(o,0))?A(n.$enumerator_size(),o):0)},{$$s:u});if(!s(o["$nil?"]())&&(o=i["$coerce_to!"](o,a("Integer"),"to_int"),s(o<=0)))return t;if(c=[],u.$each.$$p=function(){var e=i.$destructure(arguments),t=d(l,e);c.push(e)},u.$each(),c.length===0)return t;if(o===t)for(;!0;)for(r=0,h=c.length;r<h;r++)m=d(l,c[r]);else for(;o>1;){for(r=0,h=c.length;r<h;r++)m=d(l,c[r]);o--}},-1),o(M,"$detect",function o(a){try{var c=u("return"),l=o.$$p||t,d=this;return o.$$p=null,l!==t?(n(d,"each",[],function n(){var a=t,d=r(arguments),u=d,a=i.$destructure(u);if(s(e.yield1(l,a)))c.$throw(a,n.$$is_lambda);else return t},{$$arity:-1,$$ret:c}),a!==void 0?typeof a=="function"?a():a:t):d.$enum_for("detect",a)}catch(e){if(e===c)return e.$v;throw e}finally{c.is_orphan=!0}},-1),o(M,"$drop",function(t){n=this,t=v(t,a("Integer"),"to_int"),s(t<0)&&c.$raise(a("ArgumentError"),"attempt to drop negative size");var n,o=[],r=0;return n.$each.$$p=function(){t<=r&&o.push(i.$destructure(arguments)),r++},n.$each(),o}),o(M,"$drop_while",function e(){var n,a,r=e.$$p||t,o=this;return e.$$p=null,r!==t?(n=[],a=!0,o.$each.$$p=function(){var t,e=i.$destructure(arguments);a?(t=d(r,e),s(t)||(a=!1,n.push(e))):n.push(e)},o.$each(),n):o.$enum_for("drop_while")}),o(M,"$each_cons",function e(o){var r,u=e.$$p||t,l=this;return e.$$p=null,s(arguments.length!=1)&&c.$raise(a("ArgumentError"),"wrong number of arguments ("+arguments.length+" for 1)"),o=i.$try_convert(o,a("Integer"),"to_int"),s(o<=0)&&c.$raise(a("ArgumentError"),"invalid size"),u!==t?(r=[],l.$each.$$p=function(){var e=i.$destructure(arguments);r.push(e),r.length>o&&r.shift(),r.length==o&&d(u,r.slice(0,o))},l.$each(),l):n(l,"enum_for",["each_cons",o],function e(){var i=e.$$s==null?this:e.$$s,n=t,n=i.$enumerator_size();return s(n["$nil?"]())?t:b(n,0)||s(k(n,o))?0:m(g(n,o),1)},{$$s:l})}),o(M,"$each_entry",function e(){var a,u,c=e.$$p||t,o=this;return e.$$p=null,u=r(arguments),a=u,c!==t?(o.$each.$$p=function(){var e=i.$destructure(arguments);d(c,e)},o.$each.apply(o,a),o):n(o,"to_enum",["each_entry"].concat(l(a)),function e(){var t=e.$$s==null?this:e.$$s;return t.$enumerator_size()},{$$s:o})},-1),o(M,"$each_slice",function e(o){var r,u=e.$$p||t,l=this;return e.$$p=null,o=v(o,a("Integer"),"to_int"),s(o<=0)&&c.$raise(a("ArgumentError"),"invalid slice size"),u!==t?(r=[],l.$each.$$p=function(){var e=i.$destructure(arguments);r.push(e),r.length===o&&(d(u,r),r=[])},l.$each(),r.length>0&&d(u,r),l):n(l,"enum_for",["each_slice",o],function e(){var n=e.$$s==null?this:e.$$s;return s(n["$respond_to?"]("size"))?y(n.$size(),o).$ceil():t},{$$s:l})}),o(M,"$each_with_index",function e(){var a,c,u,d=e.$$p||t,o=this;return e.$$p=null,u=r(arguments),a=u,d!==t?(c=0,o.$each.$$p=function(){var e=i.$destructure(arguments);d(e,c),c++},o.$each.apply(o,a),o):n(o,"enum_for",["each_with_index"].concat(l(a)),function e(){var t=e.$$s==null?this:e.$$s;return t.$enumerator_size()},{$$s:o})},-1),o(M,"$each_with_object",function e(s){var a=e.$$p||t,o=this;return e.$$p=null,a!==t?(o.$each.$$p=function(){var e=i.$destructure(arguments);a(e,s)},o.$each(),s):n(o,"enum_for",["each_with_object",s],function e(){var t=e.$$s==null?this:e.$$s;return t.$enumerator_size()},{$$s:o})}),o(M,"$entries",function(){var n=this,o=r(arguments),a=o,s=[];return n.$each.$$p=function(){s.push(i.$destructure(arguments))},n.$each.apply(n,a),s},-1),o(M,"$filter_map",function e(){var o=e.$$p||t,s=this;return e.$$p=null,o!==t?n(n(s,"map",[],o.$to_proc()),"select",[],"itself".$to_proc()):n(s,"enum_for",["filter_map"],function e(){var t=e.$$s==null?this:e.$$s;return t.$enumerator_size()},{$$s:s})}),o(M,"$find_all",function e(){var a,r=e.$$p||t,o=this;return e.$$p=null,r!==t?(a=[],o.$each.$$p=function(){var e=i.$destructure(arguments),t=d(r,e);s(t)&&a.push(e)},o.$each(),a):n(o,"enum_for",["find_all"],function e(){var t=e.$$s==null?this:e.$$s;return t.$enumerator_size()},{$$s:o})}),o(M,"$find_index",function o(a){try{var c=u("return"),m=o.$$p||t,h=this,d=t;return o.$$p=null,s(a===void 0&&m===t)?h.$enum_for("find_index"):(a!=null&&m!==t&&h.$warn("warning: given block not used"),d=0,s(a!=null)?n(h,"each",[],function e(){var n=r(arguments),s=n;return b(i.$destructure(s),a)&&c.$throw(d,e.$$is_lambda),d+=1},{$$arity:-1,$$ret:c}):n(h,"each",[],function t(){var o=r(arguments),i=o;return s(e.yieldX(m,l(i)))&&c.$throw(d,t.$$is_lambda),d+=1},{$$arity:-1,$$ret:c}),t)}catch(e){if(e===c)return e.$v;throw e}finally{c.is_orphan=!0}},-1),o(M,"$first",function(o){try{var l=u("return"),h=this,d=t,m=t;return s(o===void 0)?n(h,"each",[],function e(n){n==null&&(n=t),l.$throw(n,e.$$is_lambda)},{$$ret:l}):(d=[],o=v(o,a("Integer"),"to_int"),s(o<0)&&c.$raise(a("ArgumentError"),"attempt to take negative size"),s(o==0)?[]:(m=0,n(h,"each",[],function e(){var a=r(arguments),c=a;if(d.push(i.$destructure(c)),s(o<=++m))l.$throw(d,e.$$is_lambda);else return t},{$$arity:-1,$$ret:l}),d))}catch(e){if(e===l)return e.$v;throw e}finally{l.is_orphan=!0}},-1),o(M,"$grep",function o(i){var c=o.$$p||t,d=this,a=t;return o.$$p=null,a=[],n(d,"each",[],function(){var h=t,m=r(arguments),u=m,h=F(u);return s(n(i,"__send__",["==="].concat(l(h))))?(c!==t?(s(f(u.$length(),1))&&(u=[u]),u=e.yieldX(c,l(u))):s(j(u.$length(),1))&&(u=u["$[]"](0)),a.$push(u)):t},-1),a}),o(M,"$grep_v",function o(i){var c=o.$$p||t,d=this,a=t;return o.$$p=null,a=[],n(d,"each",[],function(){var h=t,m=r(arguments),u=m,h=F(u);return s(n(i,"__send__",["==="].concat(l(h))))?t:(c!==t?(s(f(u.$length(),1))&&(u=[u]),u=e.yieldX(c,l(u))):s(j(u.$length(),1))&&(u=u["$[]"](0)),a.$push(u))},-1),a}),o(M,"$group_by",function e(){var o,u,c=e.$$p||t,a=this,r=t,l=t;return e.$$p=null,c!==t?(r=new Map,a.$each.$$p=function(){var e=i.$destructure(arguments),t=d(c,e);(s(l=r["$[]"](t))?l:(o=[t,[]],n(r,"[]=",o),o[o.length-1]))["$<<"](e)},a.$each(),u!==void 0?u:r):n(a,"enum_for",["group_by"],function e(){var t=e.$$s==null?this:e.$$s;return t.$enumerator_size()},{$$s:a})}),o(M,"$include?",function(s){try{var o=u("return"),a=this;return n(a,"each",[],function e(){var a=r(arguments),c=a;if(b(i.$destructure(c),s))o.$throw(!0,e.$$is_lambda);else return t},{$$arity:-1,$$ret:o}),!1}catch(e){if(e===o)return e.$v;throw e}finally{o.is_orphan=!0}}),o(M,"$inject",function e(n,s){var o,l=e.$$p||t,r=this;return e.$$p=null,o=n,l!==t&&s===void 0?r.$each.$$p=function(){var e=i.$destructure(arguments);if(o===void 0){o=e;return}e=p(l,[o,e]),o=e}:(s===void 0&&(a("Symbol")["$==="](n)||c.$raise(a("TypeError"),""+n.$inspect()+" is not a Symbol"),s=n,o=void 0),r.$each.$$p=function(){var e=i.$destructure(arguments);if(o===void 0){o=e;return}o=o.$__send__(s,e)}),r.$each(),o??t},-1),o(M,"$lazy",function(){var s=this;return n(a(a("Enumerator"),"Lazy"),"new",[s,s.$enumerator_size()],function(s){var i,a;return s==null&&(s=t),i=r(arguments,1),a=i,n(s,"yield",l(a))},-2)}),o(M,"$enumerator_size",function(){var n=this;return s(n["$respond_to?"]("size"))?n.$size():t}),o(M,"$max",function e(s){var o,r,l=e.$$p||t,d=this;return e.$$p=null,s===void 0||s===t?(d.$each.$$p=function(){var e=i.$destructure(arguments);if(o===void 0){o=e;return}l!==t?r=p(l,[e,o]):r=e["$<=>"](o),r===t&&c.$raise(a("ArgumentError"),"comparison failed"),r>0&&(o=e)},d.$each(),o===void 0?t:o):(s=v(s,a("Integer"),"to_int"),n(d,"sort",[],l.$to_proc()).$reverse().$first(s))},-1),o(M,"$max_by",function e(o){var r,l,c=e.$$p||t,a=this;return e.$$p=null,o==null&&(o=t),s(c)?s(o["$nil?"]())?(a.$each.$$p=function(){var e=i.$destructure(arguments),t=d(c,e);if(r===void 0){r=e,l=t;return}t["$<=>"](l)>0&&(r=e,l=t)},a.$each(),r===void 0?t:r):n(a,"sort_by",[],c.$to_proc()).$reverse().$take(o):n(a,"enum_for",["max_by",o],function e(){var t=e.$$s==null?this:e.$$s;return t.$enumerator_size()},{$$s:a})},-1),o(M,"$min",function o(r){var l,u=o.$$p||t,d=this;return o.$$p=null,r==null&&(r=t),s(r["$nil?"]())?(u!==t?d.$each.$$p=function(){var n,e=i.$destructure(arguments);if(l===void 0){l=e;return}n=u(e,l),n===t&&c.$raise(a("ArgumentError"),"comparison failed"),n<0&&(l=e)}:d.$each.$$p=function(){var e=i.$destructure(arguments);if(l===void 0){l=e;return}i.$compare(e,l)<0&&(l=e)},d.$each(),l===void 0?t:l):u!==t?n(d,"sort",[],function(s,o){return s==null&&(s=t),o==null&&(o=t),e.yieldX(u,[s,o])}).$take(r):d.$sort().$take(r)},-1),o(M,"$min_by",function e(o){var r,l,c=e.$$p||t,a=this;return e.$$p=null,o==null&&(o=t),s(c)?s(o["$nil?"]())?(a.$each.$$p=function(){var e=i.$destructure(arguments),t=d(c,e);if(r===void 0){r=e,l=t;return}t["$<=>"](l)<0&&(r=e,l=t)},a.$each(),r===void 0?t:r):n(a,"sort_by",[],c.$to_proc()).$take(o):n(a,"enum_for",["min_by",o],function e(){var t=e.$$s==null?this:e.$$s;return t.$enumerator_size()},{$$s:a})},-1),o(M,"$minmax",function e(){var o=e.$$p||t,d=this,u=t;e.$$p=null;var o=s(u=o)?u:n(c,"proc",[],function(n,s){return n==null&&(n=t),s==null&&(s=t),n["$<=>"](s)}),r=t,l=t,h=!0;return d.$each.$$p=function(){var n,s,e=i.$destructure(arguments);h?(r=l=e,h=!1):(n=o.$call(r,e),n===t?c.$raise(a("ArgumentError"),"comparison failed"):n>0&&(r=e),s=o.$call(l,e),s===t?c.$raise(a("ArgumentError"),"comparison failed"):s<0&&(l=e))},d.$each(),[r,l]}),o(M,"$minmax_by",function e(){var a,r,c,l,u=e.$$p||t,o=this;return e.$$p=null,s(u)?(a=t,r=t,o.$each.$$p=function(){var t=i.$destructure(arguments),e=d(u,t);(c===void 0||e["$<=>"](c)<0)&&(a=t,c=e),(l===void 0||e["$<=>"](l)>0)&&(r=t,l=e)},o.$each(),[a,r]):n(o,"enum_for",["minmax_by"],function e(){var t=e.$$s==null?this:e.$$s;return t.$enumerator_size()},{$$s:o})}),o(M,"$none?",function o(a){try{var c=u("return"),h=o.$$p||t,d=this;return o.$$p=null,s(a!==void 0)?n(d,"each",[],function e(){var i=t,d=r(arguments),u=d,i=F(u);if(s(n(a,"public_send",["==="].concat(l(i)))))c.$throw(!1,e.$$is_lambda);else return t},{$$arity:-1,$$ret:c}):h!==t?n(d,"each",[],function n(){var i=r(arguments),a=i;if(s(e.yieldX(h,l(a))))c.$throw(!1,n.$$is_lambda);else return t},{$$arity:-1,$$ret:c}):n(d,"each",[],function e(){var o=t,a=r(arguments),l=a,o=i.$destructure(l);if(s(o))c.$throw(!1,e.$$is_lambda);else return t},{$$arity:-1,$$ret:c}),!0}catch(e){if(e===c)return e.$v;throw e}finally{c.is_orphan=!0}},-1),o(M,"$one?",function o(a){try{var d=u("return"),p=o.$$p||t,h=this,c=t;return o.$$p=null,c=0,s(a!==void 0)?n(h,"each",[],function e(){var i=t,u=r(arguments),h=u,i=F(h);if(s(n(a,"public_send",["==="].concat(l(i)))))if(c=m(c,1),s(f(c,1)))d.$throw(!1,e.$$is_lambda);else return t;else return t},{$$arity:-1,$$ret:d}):p!==t?n(h,"each",[],function n(){var i=r(arguments),a=i;if(!s(e.yieldX(p,l(a))))return t;if(c=m(c,1),s(f(c,1)))d.$throw(!1,n.$$is_lambda);else return t},{$$arity:-1,$$ret:d}):n(h,"each",[],function e(){var o=r(arguments),a=o;if(!s(i.$destructure(a)))return t;if(c=m(c,1),s(f(c,1)))d.$throw(!1,e.$$is_lambda);else return t},{$$arity:-1,$$ret:d}),c["$=="](1)}catch(e){if(e===d)return e.$v;throw e}finally{d.is_orphan=!0}},-1),o(M,"$partition",function e(){var a,r,l,c=e.$$p||t,o=this;return e.$$p=null,c!==t?(a=[],r=[],o.$each.$$p=function(){var e=i.$destructure(arguments),t=d(c,e);s(t)?a.push(e):r.push(e)},o.$each(),[a,r]):n(o,"enum_for",["partition"],function e(){var t=e.$$s==null?this:e.$$s;return t.$enumerator_size()},{$$s:o})}),o(M,"$reject",function e(){var a,r=e.$$p||t,o=this;return e.$$p=null,r!==t?(a=[],o.$each.$$p=function(){var e=i.$destructure(arguments),t=d(r,e);s(t)||a.push(e)},o.$each(),a):n(o,"enum_for",["reject"],function e(){var t=e.$$s==null?this:e.$$s;return t.$enumerator_size()},{$$s:o})}),o(M,"$reverse_each",function e(){var s,i,a=e.$$p||t,o=this;if(e.$$p=null,a===t)return n(o,"enum_for",["reverse_each"],function e(){var t=e.$$s==null?this:e.$$s;return t.$enumerator_size()},{$$s:o});s=[],o.$each.$$p=function(){s.push(arguments)},o.$each();for(i=s.length-1;i>=0;i--)p(a,s[i]);return s}),o(M,"$slice_before",function e(o){var r=e.$$p||t,l=this;return e.$$p=null,s(o===void 0&&r===t)&&c.$raise(a("ArgumentError"),"both pattern and block are given"),s(o!==void 0&&r!==t||arguments.length>1)&&c.$raise(a("ArgumentError"),"wrong number of arguments ("+arguments.length+" expected 1)"),n(a("Enumerator"),"new",[],function e(n){var a,c=e.$$s==null?this:e.$$s;n==null&&(n=t),a=[],r!==t?o===void 0?c.$each.$$p=function(){var e=i.$destructure(arguments),t=d(r,e);s(t)&&a.length>0&&(n["$<<"](a),a=[]),a.push(e)}:c.$each.$$p=function(){var e=i.$destructure(arguments),t=r(e,o.$dup());s(t)&&a.length>0&&(n["$<<"](a),a=[]),a.push(e)}:c.$each.$$p=function(){var e=i.$destructure(arguments),t=o["$==="](e);s(t)&&a.length>0&&(n["$<<"](a),a=[]),a.push(e)},c.$each(),a.length>0&&n["$<<"](a)},{$$s:l})},-1),o(M,"$slice_after",function e(o){var r=e.$$p||t,l=this;return e.$$p=null,s(o===void 0&&r===t)&&c.$raise(a("ArgumentError"),"both pattern and block are given"),s(o!==void 0&&r!==t||arguments.length>1)&&c.$raise(a("ArgumentError"),"wrong number of arguments ("+arguments.length+" expected 1)"),s(o!==void 0)&&(r=n(c,"proc",[],function(n){return n==null&&(n=t),o["$==="](n)})),n(a("Enumerator"),"new",[],function e(n){var o,a=e.$$s==null?this:e.$$s;n==null&&(n=t),a.$each.$$p=function(){var e=i.$destructure(arguments),t=d(r,e);o==null&&(o=[]),s(t)?(o.push(e),n.$yield(o),o=null):o.push(e)},a.$each(),o!=null&&n.$yield(o)},{$$s:l})},-1),o(M,"$slice_when",function e(){var o=e.$$p||t,r=this;return e.$$p=null,o!==t||c.$raise(a("ArgumentError"),"wrong number of arguments (0 for 1)"),n(a("Enumerator"),"new",[],function e(n){r=e.$$s==null?this:e.$$s,n==null&&(n=t);var r,a=t,c=t;r.$each_cons.$$p=function(){var r=i.$destructure(arguments),e=r[0],l=r[1],d=p(o,[e,l]);c=l,a===t&&(a=[]),s(d)?(a.push(e),n.$yield(a),a=[]):a.push(e)},r.$each_cons(2),a!==t&&(a.push(c),n.$yield(a))},{$$s:r})}),o(M,"$sort",function e(){var s=e.$$p||t,i=this,o=t;return e.$$p=null,o=i.$to_a(),s!==t||(s=O(function(n,s){return n==null&&(n=t),s==null&&(s=t),n["$<=>"](s)})),n(o,"sort",[],s.$to_proc())}),o(M,"$sort_by",function s(){var r=s.$$p||t,o=this,a=t;return s.$$p=null,r!==t?(a=n(o,"map",[],function(){var s=t,s=i.$destructure(arguments);return[e.yield1(r,s),s]}),n(a,"sort!",[],function(n,s){return n==null&&(n=t),s==null&&(s=t),n[0]["$<=>"](s[0])}),n(a,"map!",[],function(n){return n==null&&(n=t),n[1]})):n(o,"enum_for",["sort_by"],function e(){var t=e.$$s==null?this:e.$$s;return t.$enumerator_size()},{$$s:o})}),o(M,"$sum",function o(c){var h=o.$$p||t,f=this,d=t,u=t;return o.$$p=null,c==null&&(c=0),d=c,u=0,n(f,"each",[],function(){var c=t,f=t,p=t,b=r(arguments),v=b,c=h!==t?e.yieldX(h,l(v)):i.$destructure(v);return x([a(a("Float"),"INFINITY"),a(a("Float"),"INFINITY")["$-@"]()]["$include?"](c))&&s(c["$respond_to?"]("-"))?(f=g(c,u),p=m(d,f),u=g(g(p,d),f),d=p):d=m(d,c)},-1),d},-1),o(M,"$take",function(t){var n=this;return n.$first(t)}),o(M,"$take_while",function o(){try{var a=u("return"),l=o.$$p||t,d=this,c=t;return o.$$p=null,s(l)?(c=[],n(d,"each",[],function n(){var d=t,u=r(arguments),h=u,d=i.$destructure(h);return s(e.yield1(l,d))||a.$throw(c,n.$$is_lambda),c.push(d)},{$$arity:-1,$$ret:a})):d.$enum_for("take_while")}catch(e){if(e===a)return e.$v;throw e}finally{a.is_orphan=!0}}),o(M,"$uniq",function o(){var c=o.$$p||t,l=this,a=t;return o.$$p=null,a=new Map,n(l,"each",[],function(){var d,u=t,h=t,m=r(arguments),f=m,u=i.$destructure(f),h=c!==t?e.yield1(c,u):u;return s(a["$key?"](h))?t:(d=[h,u],n(a,"[]=",d),d[d.length-1])},-1),a.$values()}),o(M,"$tally",function(o){var a=this,i=t;return o&&o!==t&&C(o),i=n(n(a,"group_by",[],"itself".$to_proc()),"transform_values",[],"count".$to_proc()),s(o)?(n(i,"each",[],function(s,i){var a;return s==null&&(s=t),i==null&&(i=t),(a=[s,m(o.$fetch(s,0),i)],n(o,"[]=",a),a[a.length-1])}),o):i},-1),o(M,"$to_h",function s(){var u,h,f,m=s.$$p||t,d=this;return s.$$p=null,f=r(arguments),u=f,m!==t?n(n(d,"map",[],m.$to_proc()),"to_h",l(u)):(h=new Map,d.$each.$$p=function(){var s,o,n=i.$destructure(arguments),t=i["$coerce_to?"](n,a("Array"),"to_ary");t.$$is_array||c.$raise(a("TypeError"),"wrong element type "+n.$class()+" (expected array)"),t.length!==2&&c.$raise(a("ArgumentError"),"element has wrong array length (expected 2, was "+t.$length()+")"),s=t[0],o=t[1],e.hash_put(h,s,o)},d.$each.apply(d,u),h)},-1),o(M,"$to_set",function e(){var i,a,c,d=e.$$p||t,u=this;return e.$$p=null,i=r(arguments),i.length>0&&(a=i.shift()),a==null&&(a=z("Set")),c=i,n(a,"new",[u].concat(l(c)),d.$to_proc())},-1),o(M,"$zip",function e(){var o,i,c=e.$$p||t,a=this;return e.$$p=null,o=r(arguments),i=o,n(a.$to_a(),"zip",l(i))},-1),h(M,"find","detect"),h(M,"filter","find_all"),h(M,"flat_map","collect_concat"),h(M,"map","collect"),h(M,"member?","include?"),h(M,"reduce","inject"),h(M,"select","find_all"),h(M,"to_a","entries")}("::",E)},Opal.modules["corelib/enumerator/arithmetic_sequence"]=function(e){var d=e.klass,n=e.truthy,y=e.to_a,g=e.eqeq,a=e.Kernel,s=e.def,i=e.rb_gt,u=e.rb_lt,f=e.rb_le,p=e.rb_ge,c=e.rb_plus,o=e.rb_minus,r=e.eqeqeq,v=e.not,h=e.rb_times,b=e.rb_divide,m=e.alias,j=[],t=e.nil,l=e.$$$;return e.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(j,_,w){var O=d(j,_,"Enumerator"),x=[O].concat(w);return function(j,_,w){var x,O=d(j,_,"ArithmeticSequence"),k=[O].concat(w),E=e.$r(k),C=O.$$prototype;return C.step_arg2=C.receiver_num=C.step_arg1=C.step=C.range=C.topfx=C.bypfx=C.creation_method=C.skipped_arg=t,e.prop(O.$$prototype,"$$is_arithmetic_seq",!0),x=1/0,s(O,"$initialize",function(o,i,r){var d,c=this,u=t;return r==null&&(r="step"),c.creation_method=r,n(o["$is_a?"](l("Array")))?(d=[].concat(y(o)),c.step_arg1=d[0]==null?t:d[0],c.step_arg2=d[1]==null?t:d[1],c.topfx=d[2]==null?t:d[2],c.bypfx=d[3]==null?t:d[3],d,c.receiver_num=i,c.step=1,c.range=n(c.step_arg2)?(c.step=c.step_arg2,e.Range.$new(c.receiver_num,c.step_arg1,!1)):n(c.step_arg1)?e.Range.$new(c.receiver_num,c.step_arg1,!1):e.Range.$new(c.receiver_num,t,!1)):(n(i)||(c.skipped_arg=!0),d=[o,n(u=i)?u:1],c.range=d[0],c.step=d[1],d),c.object=c,g(c.step,0)&&a.$raise(E("ArgumentError"),"step can't be 0"),n(c.step["$respond_to?"]("to_int"))?t:a.$raise(E("ArgumentError"),""+("no implicit conversion of "+c.step.$class()+" ")+"into Integer")},-2),O.$attr_reader("step"),s(O,"$begin",function(){var t=this;return t.range.$begin()}),s(O,"$end",function(){var t=this;return t.range.$end()}),s(O,"$exclude_end?",function(){var t=this;return t.range["$exclude_end?"]()}),s(O,"$_lesser_than_end?",function(s){var a=this,o=t,r=t,o=n(r=a.$end())?r:x;return n(i(a.$step(),0))?n(a["$exclude_end?"]())?u(s,o):f(s,o):n(a["$exclude_end?"]())?i(s,o):p(s,o)}),s(O,"$_greater_than_begin?",function(s){var a=this,o=t,r=t,o=n(r=a.$begin())?r:x["$-@"]();return n(i(a.$step(),0))?i(s,o):u(s,o)}),s(O,"$first",function(s){var r=this,a=t,l=t,d=t,a=n(l=r.$begin())?l:x["$-@"]();if(!n(s))return n(r["$_lesser_than_end?"](a))?a:t;for(d=[];n(n(l=r["$_lesser_than_end?"](a))?i(s,0):l);)d["$<<"](a),a=c(a,r.$step()),s=o(s,1);return d},-1),s(O,"$each",function s(){var d=s.$$p||t,o=this,l=t,i=t;if(s.$$p=null,d===t)return o;for(r(t,l=o.$begin())?a.$raise(E("TypeError"),"nil can't be coerced into Integer"):t,i=n(l=o.$begin())?l:x["$-@"]();n(o["$_lesser_than_end?"](i));)e.yield1(d,i),i=c(i,o.$step());return o}),s(O,"$last",function(s){var c=this,u=t,d=t,h=t;if(r(x,u=c.$end())||r(x["$-@"](),u)?a.$raise(l("FloatDomainError"),c.$end()):r(t,u)?a.$raise(l("RangeError"),"cannot get the last element of endless arithmetic sequence"):t,d=o(c.$end(),o(c.$end(),c.$begin())["$%"](c.$step())),n(c["$_lesser_than_end?"](d))||(d=o(d,c.$step())),!n(s))return n(c["$_greater_than_begin?"](d))?d:t;for(h=[];n(n(u=c["$_greater_than_begin?"](d))?i(s,0):u);)h["$<<"](d),d=o(d,c.$step()),s=o(s,1);return h.$reverse()},-1),s(O,"$size",function(){var s=this,r=t,a=t,r=n(i(s.$step(),0))?1:-1;return v(s["$_lesser_than_end?"](s.$begin()))?0:n([x["$-@"](),x]["$include?"](s.$step()))?1:n([h(x["$-@"](),r),t]["$include?"](s.$begin()))||n([h(x,r),t]["$include?"](s.$end()))?x:(a=o(s.$end(),o(s.$end(),s.$begin())["$%"](s.$step())),n(s["$_lesser_than_end?"](a))||(a=o(a,s.$step())),c(b(o(a,s.$begin()),s.$step()).$abs().$to_i(),1))}),s(O,"$==",function(s){var o=this,i=t,a=t,r=t,c=t;return n(i=n(a=n(r=n(c=o.$class()["$=="](s.$class()))?o.$begin()["$=="](s.$begin()):c)?o.$end()["$=="](s.$end()):r)?o.$step()["$=="](s.$step()):a)?o["$exclude_end?"]()["$=="](s["$exclude_end?"]()):i}),s(O,"$hash",function(){var t=this;return[E("ArithmeticSequence"),t.$begin(),t.$end(),t.$step(),t["$exclude_end?"]()].$hash()}),s(O,"$inspect",function(){var s=this,o=t;return n(s.receiver_num)?(o=n(s.step_arg2)?"("+s.topfx+s.step_arg1.$inspect()+", "+s.bypfx+s.step_arg2.$inspect()+")":n(s.step_arg1)?"("+s.topfx+s.step_arg1.$inspect()+")":t,"("+s.receiver_num.$inspect()+"."+s.creation_method+o+")"):(o=n(s.skipped_arg)?t:"("+s.step+")","(("+s.range.$inspect()+")."+s.creation_method+o+")")}),m(O,"===","=="),m(O,"eql?","==")}(O,O,x)}("::",null,j)},Opal.modules["corelib/enumerator/chain"]=function(e){var l=e.deny_frozen_access,a=e.klass,o=e.slice,s=e.def,n=e.send,i=e.to_a,r=e.truthy,d=e.rb_plus,u=e.thrower,t=e.nil,c=e.$$$;return e.add_stubs("to_enum,size,each,<<,to_proc,include?,+,reverse_each,respond_to?,rewind,inspect"),function(e,h){var m=a(e,h,"Enumerator");return function(e,h){var m=a(e,h,"Chain"),f=m.$$prototype;return f.enums=f.iterated=t,s(m,"$initialize",function(){var n=this,s=o(arguments),i=s;return l(n),n.enums=i,n.iterated=[],n.object=n},-1),s(m,"$each",function e(){var r,l,c=e.$$p||t,a=this;return e.$$p=null,l=o(arguments),r=l,c!==t?(n(a.enums,"each",[],function e(s){var o=e.$$s==null?this:e.$$s;return o.iterated==null&&(o.iterated=t),s==null&&(s=t),o.iterated["$<<"](s),n(s,"each",i(r),c.$to_proc())},{$$s:a}),a):n(a,"to_enum",["each"].concat(i(r)),function e(){var t=e.$$s==null?this:e.$$s;return t.$size()},{$$s:a})},-1),s(m,"$size",function(){try{var a=u("return"),f=this,l=t,h=o(arguments),m=h,l=0;return n(f.enums,"each",[],function e(s){var o=t;return s==null&&(s=t),o=n(s,"size",i(m)),r([t,c(c("Float"),"INFINITY")]["$include?"](o))&&a.$throw(o,e.$$is_lambda),l=d(l,o)},{$$ret:a}),l}catch(e){if(e===a)return e.$v;throw e}finally{a.is_orphan=!0}},-1),s(m,"$rewind",function(){var s=this;return n(s.iterated,"reverse_each",[],function(n){return n==null&&(n=t),r(n["$respond_to?"]("rewind"))?n.$rewind():t}),s.iterated=[],s}),s(m,"$inspect",function(){var t=this;return"#<Enumerator::Chain: "+t.enums.$inspect()+">"})}(m,m)}("::",null)},Opal.modules["corelib/enumerator/generator"]=function(e){var a=e.deny_frozen_access,n=e.klass,r=e.truthy,c=e.Kernel,s=e.def,l=e.slice,d=e.send,o=[],t=e.nil,i=e.$$$;return e.add_stubs("include,raise,new,to_proc"),function(o,u,h){var f=n(o,u,"Enumerator"),m=[f].concat(h);return function(o,u,h){var m=n(o,u,"Generator"),f=[m].concat(h),p=e.$r(f),g=m.$$prototype;return g.block=t,m.$include(i("Enumerable")),s(m,"$initialize",function e(){var n=e.$$p||t,s=this;return e.$$p=null,a(s),r(n)||c.$raise(i("LocalJumpError"),"no block given"),s.block=n}),s(m,"$each",function n(){var o,i,c=n.$$p||t,a=this,r=t;n.$$p=null,i=l(arguments),o=i,r=d(p("Yielder"),"new",[],c.$to_proc());try{o.unshift(r),e.yieldX(a.block,o)}catch(e){if(e&&e.$thrower_type=="breaker")return e.$v;throw e}return a},-1)}(m[0],null,m)}(o[0],null,o)},Opal.modules["corelib/enumerator/lazy"]=function(e){var s=e.truthy,j=e.coerce_to,b=e.yield1,l=e.yieldX,w=e.deny_frozen_access,m=e.klass,i=e.slice,p=e.send2,f=e.find_super,c=e.to_a,y=e.defs,r=e.Kernel,n=e.send,a=e.def,_=e.return_self,h=e.Opal,u=e.rb_lt,g=e.eqeqeq,v=e.rb_plus,d=e.alias,O=[],t=e.nil,o=e.$$$;return e.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(O,x,C){var E=m(O,x,"Enumerator"),k=[E].concat(C);return function(O,x,C){var E=m(O,x,"Lazy"),A=[E].concat(C),k=e.$r(A),S=E.$$prototype;return S.enumerator=t,m(E,o("Exception"),"StopLazyError"),y(E,"$for",function e(n){var a,r,d=e.$$p||t,l=this,o=t;return e.$$p=null,a=i(arguments,1),r=a,o=p(l,f(l,"for",e,!1,!0),"for",[n].concat(c(r)),d),o.enumerator=n,o},-2),a(E,"$initialize",function s(a,d){var h=s.$$p||t,u=this;return s.$$p=null,d==null&&(d=t),w(u),h!==t||r.$raise(o("ArgumentError"),"tried to call lazy new without a block"),u.enumerator=a,p(u,f(u,"initialize",s,!1,!0),"initialize",[d],function(o){var d,u;o==null&&(o=t),d=i(arguments,1),u=d;try{return n(a,"each",c(u),function(){var s=i(arguments),n=s;n.unshift(o),l(h,n)},-1)}catch(n){if(e.rescue(n,[k("StopLazyError")]))try{return t}finally{e.pop_exception(n)}else throw n}},-2)},-2),a(E,"$lazy",_),a(E,"$collect",function e(){var a=e.$$p||t,c=this;return e.$$p=null,s(a)||r.$raise(o("ArgumentError"),"tried to call lazy map without a block"),n(k("Lazy"),"new",[c,c.$enumerator_size()],function(n){n==null&&(n=t);var o=i(arguments,1),r=o,c=l(a,r);n.$yield(c)},-2)}),a(E,"$collect_concat",function e(){var a=e.$$p||t,c=this;return e.$$p=null,s(a)||r.$raise(o("ArgumentError"),"tried to call lazy map without a block"),n(k("Lazy"),"new",[c,t],function(s){s==null&&(s=t);var d,u=i(arguments,1),m=u,c=l(a,m);c["$respond_to?"]("force")&&c["$respond_to?"]("each")?n(c,"each",[],function(n){return n==null&&(n=t),s.$yield(n)}):(d=h.$try_convert(c,o("Array"),"to_ary"),d===t?s.$yield(c):n(c,"each",[],function(n){return n==null&&(n=t),s.$yield(n)}))},-2)}),a(E,"$drop",function(a){var h=this,l=t,m=t,d=t;return a=j(a,o("Integer"),"to_int"),s(u(a,0))&&r.$raise(o("ArgumentError"),"attempt to drop negative size"),l=h.$enumerator_size(),m=g(o("Integer"),l)?s(u(a,l))?a:l:l,d=0,n(k("Lazy"),"new",[h,m],function(o){var l,h;return o==null&&(o=t),l=i(arguments,1),h=l,s(u(d,a))?d=v(d,1):n(o,"yield",c(h))},-2)}),a(E,"$drop_while",function e(){var d=e.$$p||t,u=this,a=t;return e.$$p=null,s(d)||r.$raise(o("ArgumentError"),"tried to call lazy drop_while without a block"),a=!0,n(k("Lazy"),"new",[u,t],function(o){if(o==null&&(o=t),h=i(arguments,1),u=h,s(a)){var u,h,m=l(d,u);s(m)||(a=!1,n(o,"yield",c(u)))}else return n(o,"yield",c(u))},-2)}),a(E,"$enum_for",function e(){var a,r,l,u=e.$$p||t,d=this;return e.$$p=null,a=i(arguments),a.length>0&&(r=a.shift()),r==null&&(r="each"),l=a,n(d.$class(),"for",[d,r].concat(c(l)),u.$to_proc())},-1),a(E,"$find_all",function e(){var a=e.$$p||t,d=this;return e.$$p=null,s(a)||r.$raise(o("ArgumentError"),"tried to call lazy select without a block"),n(k("Lazy"),"new",[d,t],function(o){o==null&&(o=t);var u=i(arguments,1),d=u,h=l(a,d);s(h)&&n(o,"yield",c(d))},-2)}),a(E,"$grep",function e(o){var a=e.$$p||t,r=this;return e.$$p=null,s(a)?n(k("Lazy"),"new",[r,t],function(n){n==null&&(n=t);var d=i(arguments,1),u=d,c=h.$destructure(u),l=o["$==="](c);s(l)&&(l=b(a,c),n.$yield(b(a,c)))},-2):n(k("Lazy"),"new",[r,t],function(n){n==null&&(n=t);var c=i(arguments,1),l=c,r=h.$destructure(l),d=o["$==="](r);s(d)&&n.$yield(r)},-2)}),a(E,"$reject",function e(){var a=e.$$p||t,d=this;return e.$$p=null,s(a)||r.$raise(o("ArgumentError"),"tried to call lazy reject without a block"),n(k("Lazy"),"new",[d,t],function(o){o==null&&(o=t);var u=i(arguments,1),d=u,h=l(a,d);s(h)||n(o,"yield",c(d))},-2)}),a(E,"$take",function(a){var h=this,l=t,m=t,d=t;return a=j(a,o("Integer"),"to_int"),s(u(a,0))&&r.$raise(o("ArgumentError"),"attempt to take negative size"),l=h.$enumerator_size(),m=g(o("Integer"),l)?s(u(a,l))?a:l:l,d=0,n(k("Lazy"),"new",[h,m],function(o){var h,m;return o==null&&(o=t),h=i(arguments,1),m=h,s(u(d,a))?(n(o,"yield",c(m)),d=v(d,1)):r.$raise(k("StopLazyError"))},-2)}),a(E,"$take_while",function e(){var a=e.$$p||t,d=this;return e.$$p=null,s(a)||r.$raise(o("ArgumentError"),"tried to call lazy take_while without a block"),n(k("Lazy"),"new",[d,t],function(o){o==null&&(o=t);var h=i(arguments,1),u=h,m=l(a,u);s(m)?n(o,"yield",c(u)):r.$raise(k("StopLazyError"))},-2)}),a(E,"$inspect",function(){var t=this;return"#<"+t.$class()+": "+t.enumerator.$inspect()+">"}),d(E,"force","to_a"),d(E,"filter","find_all"),d(E,"flat_map","collect_concat"),d(E,"map","collect"),d(E,"select","find_all"),d(E,"to_enum","enum_for")}(E,E,k)}("::",null,O)},Opal.modules["corelib/enumerator/yielder"]=function(e){var n=e.klass,t=e.def,s=e.slice,o=e.send,r=e.to_a,i=[],a=e.nil;return e.add_stubs("yield,proc"),function(i,c,l){var d=n(i,c,"Enumerator"),u=[d].concat(l);return function(i,c){var l=n(i,c,"Yielder"),d=l.$$prototype;return d.block=a,t(l,"$initialize",function e(){var n=e.$$p||a,t=this;return e.$$p=null,t.block=n,t}),t(l,"$yield",function(){var r=this,i=s(arguments),a=i,o=e.yieldX(r.block,a);if(o&&o.$thrower_type=="break")throw o;return o},-1),t(l,"$<<",function(t){var n=this;return n.$yield(t),n}),t(l,"$to_proc",function(){var t=this;return o(t,"proc",[],function e(){var a=e.$$s==null?this:e.$$s,n=s(arguments),i=n;return o(a,"yield",r(i))},{$$arity:-1,$$s:t})})}(u[0],null)}(i[0],null,i)},Opal.modules["corelib/enumerator"]=function(e){var a=e.slice,d=e.coerce_to,_=e.deny_frozen_access,v=e.klass,w=e.defs,s=e.truthy,i=e.send,p=e.not,n=e.def,r=e.rb_plus,c=e.to_a,h=e.Opal,m=e.send2,f=e.find_super,u=e.rb_ge,g=e.Kernel,l=e.rb_le,b=e.alias,j=e.top,y=[],t=e.nil,o=e.$$$;return e.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"),j.$require("corelib/enumerable"),function(j,y,O){var x=v(j,y,"Enumerator"),k=[x].concat(O),E=e.$r(k),C=x.$$prototype;return C.size=C.args=C.object=C.method=C.values=C.cursor=t,x.$include(o("Enumerable")),x.$$prototype.$$is_enumerator=!0,w(x,"$for",function e(n){var i,r,c,l,d=e.$$p||t,u=this;return e.$$p=null,r=a(arguments,1),r.length>0&&(c=r.shift()),c==null&&(c="each"),l=r,i=u.$allocate(),i.object=n,i.size=d,i.method=c,i.args=l,i.cursor=0,i},-2),n(x,"$initialize",function e(){var l,u,c=e.$$p||t,r=this;return e.$$p=null,l=a(arguments),u=l,_(r),r.cursor=0,s(c)?(r.object=i(E("Generator"),"new",[],c.$to_proc()),r.method="each",r.args=[],r.size=arguments[0]||t,s(r.size)&&p(r.size["$respond_to?"]("call"))?r.size=d(r.size,o("Integer"),"to_int"):t):(r.object=arguments[0],r.method=arguments[1]||"each",r.args=a(arguments,2),r.size=t)},-1),n(x,"$each",function e(){var l,u,d=e.$$p||t,o=this;return e.$$p=null,u=a(arguments),l=u,s(d["$nil?"]())&&s(l["$empty?"]())?o:(l=r(o.args,l),s(d["$nil?"]())?i(o.$class(),"new",[o.object,o.method].concat(c(l))):i(o.object,"__send__",[o.method].concat(c(l)),d.$to_proc()))},-1),n(x,"$size",function(){var t=this;return s(t.size["$respond_to?"]("call"))?i(t.size,"call",c(t.args)):t.size}),n(x,"$with_index",function e(n){var r,l,c=e.$$p||t,a=this;return e.$$p=null,n==null&&(n=0),n=s(n)?d(n,o("Integer"),"to_int"):0,s(c)?(r=n,a.$each.$$p=function(){var e=h.$destructure(arguments),t=c(e,r);return r++,t},a.$each()):i(a,"enum_for",["with_index",n],function e(){var t=e.$$s==null?this:e.$$s;return t.$size()},{$$s:a})},-1),n(x,"$each_with_index",function e(){var s=e.$$p||t,n=this;return e.$$p=null,s!==t?(m(n,f(n,"each_with_index",e,!1,!0),"each_with_index",[],s),n.object):i(n,"enum_for",["each_with_index"],function e(){var t=e.$$s==null?this:e.$$s;return t.$size()},{$$s:n})}),n(x,"$rewind",function(){var t=this;return t.cursor=0,t}),n(x,"$peek_values",function(){var n=this,r=t;return n.values=s(r=n.values)?r:i(n,"map",[],function(){var n=a(arguments),s=n;return s},-1),s(u(n.cursor,n.values.$length()))&&g.$raise(o("StopIteration"),"iteration reached an end"),n.values["$[]"](n.cursor)}),n(x,"$peek",function(){var o=this,n=t,n=o.$peek_values();return s(l(n.$length(),1))?n["$[]"](0):n}),n(x,"$next_values",function(){var n=this,s=t,s=n.$peek_values();return n.cursor=r(n.cursor,1),s}),n(x,"$next",function(){var o=this,n=t,n=o.$next_values();return s(l(n.$length(),1))?n["$[]"](0):n}),n(x,"$feed",function(){var n=this;return n.$raise(E("NotImplementedError"),"Opal doesn't support Enumerator#feed")}),n(x,"$+",function(t){var n=this;return o(o("Enumerator"),"Chain").$new(n,t)}),n(x,"$inspect",function(){var n=this,i=t,i="#<"+n.$class()+": "+n.object.$inspect()+":"+n.method;return s(n.args["$any?"]())&&(i=r(i,"("+n.args.$inspect()["$[]"](o("Range").$new(1,-2))+")")),r(i,">")}),b(x,"with_object","each_with_object"),x.$autoload("ArithmeticSequence","corelib/enumerator/arithmetic_sequence"),x.$autoload("Chain","corelib/enumerator/chain"),x.$autoload("Generator","corelib/enumerator/generator"),x.$autoload("Lazy","corelib/enumerator/lazy"),x.$autoload("Yielder","corelib/enumerator/yielder")}("::",null,y)},Opal.modules["corelib/numeric"]=function(e){var j=e.klass,i=e.truthy,o=e.Kernel,t=e.def,k=e.to_ary,c=e.return_self,f=e.rb_minus,p=e.rb_times,l=e.rb_lt,b=e.eqeq,u=e.rb_divide,r=e.return_val,h=e.Opal,E=e.slice,x=e.extract_kwargs,g=e.ensure_kwargs,d=e.hash_get,m=e.not,v=e.send,y=e.rb_ge,_=e.rb_le,w=e.rb_plus,O=e.rb_gt,a=e.alias,C=e.top,s=e.nil,n=e.$$$;return e.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"),C.$require("corelib/comparable"),function(C,A){var S=j(C,A,"Numeric");return S.$include(n("Comparable")),t(S,"$coerce",function(t){var n=this;return i(t["$instance_of?"](n.$class()))?[t,n]:[o.$Float(t),o.$Float(n)]}),t(S,"$__coerced__",function(t,a){var r,c,l=this,d=s,u=s;if(i(a["$respond_to?"]("coerce")))return c=a.$coerce(l),r=k(c),d=r[0]==null?s:r[0],u=r[1]==null?s:r[1],c,d.$__send__(t,u);switch(t.valueOf()){case"+":case"-":case"*":case"/":case"%":case"&":case"|":case"^":case"**":return o.$raise(n("TypeError"),""+a.$class()+" can't be coerced into Numeric");case">":case">=":case"<":case"<=":case"<=>":return o.$raise(n("ArgumentError"),"comparison of "+l.$class()+" with "+a.$class()+" failed");default:return s}}),t(S,"$<=>",function(t){var n=this;return i(n["$equal?"](t))?0:s}),t(S,"$+@",c),t(S,"$-@",function(){var t=this;return f(0,t)}),t(S,"$%",function(t){var n=this;return f(n,p(t,n.$div(t)))}),t(S,"$abs",function(){var t=this;return i(l(t,0))?t["$-@"]():t}),t(S,"$abs2",function(){var t=this;return p(t,t)}),t(S,"$angle",function(){var t=this;return i(l(t,0))?n(n("Math"),"PI"):0}),t(S,"$ceil",function(t){var n=this;return t==null&&(t=0),n.$to_f().$ceil(t)},-1),t(S,"$conj",c),t(S,"$denominator",function(){var t=this;return t.$to_r().$denominator()}),t(S,"$div",function(t){var s=this;return b(t,0)&&o.$raise(n("ZeroDivisionError"),"divided by o"),u(s,t).$floor()}),t(S,"$divmod",function(t){var n=this;return[n.$div(t),n["$%"](t)]}),t(S,"$fdiv",function(t){var n=this;return u(n.$to_f(),t)}),t(S,"$floor",function(t){var n=this;return t==null&&(t=0),n.$to_f().$floor(t)},-1),t(S,"$i",function(){var t=this;return o.$Complex(0,t)}),t(S,"$imag",r(0)),t(S,"$integer?",r(!1)),t(S,"$nonzero?",function(){var t=this;return i(t["$zero?"]())?s:t}),t(S,"$numerator",function(){var t=this;return t.$to_r().$numerator()}),t(S,"$polar",function(){var t=this;return[t.$abs(),t.$arg()]}),t(S,"$quo",function(t){var s=this;return u(h["$coerce_to!"](s,n("Rational"),"to_r"),t)}),t(S,"$real",c),t(S,"$real?",r(!0)),t(S,"$rect",function(){var t=this;return[t,0]}),t(S,"$round",function(t){var n=this;return n.$to_f().$round(t)},-1),t(S,"$step",function t(){var l,u,p,O,C,k,A,S,M,F,T,z,D,b=t.$$p||s,f=this,j=s;t.$$p=null,O=E(arguments),k=x(O),k=g(k),O.length>0&&(u=O.shift()),O.length>0&&(l=O.shift()),C=d(k,"to"),S=d(k,"by"),u!==void 0&&C!==void 0&&o.$raise(n("ArgumentError"),"to is given twice"),l!==void 0&&S!==void 0&&o.$raise(n("ArgumentError"),"step is given twice"),C!==void 0&&(u=C),S!==void 0&&(l=S),u===void 0&&(u=s);function L(){l===s&&o.$raise(n("TypeError"),"step must be numeric"),l!=null&&l["$=="](0)&&o.$raise(n("ArgumentError"),"step can't be 0"),(l===s||l==null)&&(l=1);var e=l["$<=>"](0);e===s&&o.$raise(n("ArgumentError"),"0 can't be coerced into "+l.$class()),(u===s||u==null)&&(u=e>0?n(n("Float"),"INFINITY"):n(n("Float"),"INFINITY")["$-@"]()),h.$compare(f,u)}function N(){if(l>0&&f>u||l<0&&f<u)return 0;if(l===1/0||l===-(1/0))return 1;var t=Math.abs,s=Math.floor,e=(t(f)+t(u)+t(u-f))/t(l)*n(n("Float"),"EPSILON");return e===1/0||e===-(1/0)?0:(e>.5&&(e=.5),s((u-f)/l+e)+1)}function R(){if(L(),l===0)return 1/0;if(l%1!==0)return N();if(l>0&&f>u||l<0&&f<u)return 0;var t=Math.ceil,e=Math.abs,n=e(f-u)+1,s=e(l);return t(n/s)}if(b===s)return(m(u)||i(u["$is_a?"](n("Numeric"))))&&(m(l)||i(l["$is_a?"](n("Numeric"))))?n(n("Enumerator"),"ArithmeticSequence").$new([u,l,i(C)?"to: ":s,i(S)?"by: ":s],f):v(f,"enum_for",["step",u,l],R.$to_proc());if(L(),M=l["$negative?"](),z=l["$=="](0)||u===1/0&&!M||u===-(1/0)&&M,f.$$is_number&&l.$$is_number&&u.$$is_number){if(f%1===0&&(z||u%1===0)&&l%1===0){if(p=f,z)for(;;p+=l)b(p);else if(M)for(;p>=u;p+=l)b(p);else for(;p<=u;p+=l)b(p);return f}if(T=f.$to_f().valueOf(),l=l.$to_f().valueOf(),u=u.$to_f().valueOf(),D=N(),isFinite(l))if(l===0)for(;!0;)b(T);else for(F=0;F<D;F++)A=F*l+f,(l>=0?u<A:u>A)&&(A=u),b(A);else D!==0&&b(T);return f}for(j=f;i(M?y(j,u):_(j,u));)e.yield1(b,j),j=w(j,l)},-1),t(S,"$to_c",function(){var t=this;return o.$Complex(t,0)}),t(S,"$to_int",function(){var t=this;return t.$to_i()}),t(S,"$truncate",function(t){var n=this;return t==null&&(t=0),n.$to_f().$truncate(t)},-1),t(S,"$zero?",function(){var t=this;return t["$=="](0)}),t(S,"$positive?",function(){var t=this;return O(t,0)}),t(S,"$negative?",function(){var t=this;return l(t,0)}),t(S,"$dup",c),t(S,"$clone",function(t){var n,s=this;return t=g(t),n=d(t,"freeze"),n==null&&(n=!0),s},-1),t(S,"$finite?",r(!0)),t(S,"$infinite?",r(s)),a(S,"arg","angle"),a(S,"conjugate","conj"),a(S,"imaginary","imag"),a(S,"magnitude","abs"),a(S,"modulo","%"),a(S,"phase","arg"),a(S,"rectangular","rect")}("::",null)},Opal.modules["corelib/array"]=function(e){var o=e.truthy,H=e.falsy,u=e.yield1,p=e.hash_get,m=e.hash_put,P=e.hash_delete,a=e.coerce_to,g=e.respond_to,c=e.deny_frozen_access,N=e.freeze,S=e.opal32_init,f=e.opal32_add,O=e.klass,d=e.slice,y=e.defs,i=e.Kernel,n=e.def,l=e.Opal,_=e.eqeqeq,v=e.send2,b=e.find_super,r=e.send,E=e.rb_gt,L=e.rb_times,C=e.eqeq,F=e.rb_minus,A=e.to_a,w=e.to_ary,j=e.gvars,M=e.rb_ge,k=e.assign_ivar,T=e.rb_lt,z=e.return_self,D=e.neqeq,h=e.alias,x=e.top,R=[],t=e.nil,s=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"),x.$require("corelib/enumerable"),x.$require("corelib/numeric"),function(x,R,I){var $,K,B=O(x,R,"Array"),ee=[B].concat(I),W=e.$r(ee);B.$include(s("Enumerable")),e.prop(B.$$prototype,"$$is_array",!0);function X(e){for(var n=e[0],t=1,s=e.length;t<s;t++)e[t-1]=e[t];return e.pop(),n}function J(t,n){return n.$$name===e.Array?t:n.$allocate().$replace(t.$to_a())}function G(e,t,n){for(var r,s=null,i=new Array(e.length),o=0,a=0;o<e.length;o++){if(!s)try{r=u(n,e[o])}catch(e){s=e}(s||t(r))&&(i[a]=e[o],a+=1)}if(a!==o&&(e.splice.apply(e,[0,i.length].concat(i)),e.splice(a,i.length)),s)throw s}function V(e){return e.$$is_array||(e=a(e,s("Array"),"to_ary")),e.$to_a()}function q(e,t){var n,s=t.length;if(s>6&&s<32767)e.push.apply(e,t);else for(n=0;n<s;n++)e.push(t[n])}y(B,"$[]",function(){var o=this,n=d(arguments),s=n;return J(s,o)},-1),n(B,"$initialize",function e(n,o){var l,u,d=e.$$p||t,r=this;if(e.$$p=null,n==null&&(n=t),o==null&&(o=t),c(r),o!==t&&d!==t&&i.$warn("warning: block supersedes default value argument"),n>s(s("Integer"),"MAX")&&i.$raise(s("ArgumentError"),"array size too big"),arguments.length>2&&i.$raise(s("ArgumentError"),"wrong number of arguments ("+arguments.length+" for 0..2)"),arguments.length===0)return r.length>0&&r.splice(0,r.length),r;if(arguments.length===1){if(n.$$is_array)return r.$replace(n.$to_a()),r;if(n["$respond_to?"]("to_ary"))return r.$replace(n.$to_ary()),r}if(n=a(n,s("Integer"),"to_int"),n<0&&i.$raise(s("ArgumentError"),"negative array size"),r.splice(0,r.length),d===t)for(l=0;l<n;l++)r.push(o);else for(l=0,u;l<n;l++)u=d(l),r[l]=u;return r},-1),y(B,"$try_convert",function(t){return l["$coerce_to?"](t,s("Array"),"to_ary")}),n(B,"$&",function(t){if(s=this,t=V(t),s.length===0||t.length===0)return[];var n,s,o,i,a=[],r=new Map;for(n=0,o=t.length;n<o;n++)m(r,t[n],!0);for(n=0,o=s.length;n<o;n++)i=s[n],P(r,i)!==void 0&&a.push(i);return a}),n(B,"$|",function(t){var n,s,o,a,i=this;t=V(t),s=new Map;for(n=0,o=i.length;n<o;n++)m(s,i[n],!0);for(n=0,o=t.length;n<o;n++)m(s,t[n],!0);return s.$keys()}),n(B,"$*",function(t){if(n=this,o(t["$respond_to?"]("to_str")))return n.$join(t.$to_str());t=a(t,s("Integer"),"to_int"),o(t<0)&&i.$raise(s("ArgumentError"),"negative argument");for(var n,r=[],l=n.$to_a(),c=0;c<t;c++)r=r.concat(l);return r}),n(B,"$+",function(t){var n=this;return t=V(t),n.concat(t)}),n(B,"$-",function(t){if(s=this,t=V(t),o(s.length===0))return[];if(o(t.length===0))return s.slice();var n,s,i,a,r=[],c=new Map;for(n=0,i=t.length;n<i;n++)m(c,t[n],!0);for(n=0,i=s.length;n<i;n++)a=s[n],p(c,a)===void 0&&r.push(a);return r}),n(B,"$<<",function(t){var n=this;return c(n),n.push(t),n}),n(B,"$<=>",function(n){var i,r,c,a=this;if(_(s("Array"),n))n=n.$to_a();else if(o(n["$respond_to?"]("to_ary")))n=n.$to_ary().$to_a();else return t;if(a===n)return 0;for(c=Math.min(a.length,n.length),i=0;i<c;i++)if(r=a[i]["$<=>"](n[i]),r!==0)return r;return a.length["$<=>"](n.length)}),n(B,"$==",function(t){var o=this,n={};function s(e,t){var o,i,a,r;if(e===t)return!0;if(!t.$$is_array)return!!g(t,"$to_ary")&&t["$=="](e);if(e.$$constructor!==Array&&(e=e.$to_a()),t.$$constructor!==Array&&(t=t.$to_a()),e.length!==t.length)return!1;n[e.$object_id()]=!0;for(i=0,r=e.length;i<r;i++)if(o=e[i],a=t[i],o.$$is_array){{if(a.$$is_array&&a.length!==o.length)return!1;if(!n.hasOwnProperty(o.$object_id())&&!s(o,a))return!1}}else if(!o["$=="](a))return!1;return!0}return s(o,t)});function Y(n,s){var c,r=n.length,l=s.excl,o=s.begin===t?0:a(s.begin,e.Integer,"to_int"),i=s.end===t?-1:a(s.end,e.Integer,"to_int");return o<0&&(o+=r,o<0)?t:(s.excl_rev&&s.begin!==t&&(o+=1),o>r?t:i<0&&(i+=r,i<0)?[]:((!l||s.end===t)&&(i+=1),c=n.slice(o,i),c))}function Z(e,t){var n,i,o=[],s=0;for(t.step<0?(i={begin:t.range.end,end:t.range.begin,excl:!1,excl_rev:t.range.excl},n=Y(e,i).$reverse()):n=Y(e,t.range);s<n.length;)o.push(n[s]),s+=Math.abs(t.step);return o}function Q(n,s,o){var r,c,l,d,i=n.length;return s=a(s,e.Integer,"to_int"),s<0&&(s+=i,s<0)?t:o===void 0?s>=i||s<0?t:n[s]:(o=a(o,e.Integer,"to_int"),o<0||s>i||s<0?t:(r=n.slice(s,s+o),r))}n(B,"$[]",function(t,n){var s=this;return t.$$is_range?Y(s,t):t.$$is_arithmetic_seq?Z(s,t):Q(s,t,n)},-2),n(B,"$[]=",function(o,r,l){var h,m,v,d=this,u=t,p=t;if(c(d),u=t,m=d.length,o.$$is_range){r.$$is_array?u=r.$to_a():r["$respond_to?"]("to_ary")?u=r.$to_ary().$to_a():u=[r];var b=o.excl,f=o.begin===t?0:a(o.begin,e.Integer,"to_int"),g=o.end===t?-1:a(o.end,e.Integer,"to_int");if(f<0&&(f+=m,f<0&&i.$raise(s("RangeError"),""+o.$inspect()+" out of range")),g<0&&(g+=m),(!b||o.end===t)&&(g+=1),f>m)for(h=m;h<f;h++)d[h]=t;return g<0?d.splice.apply(d,[f,0].concat(u)):d.splice.apply(d,[f,g-f].concat(u)),r}if(l===void 0?p=1:(p=r,r=l,r.$$is_array?u=r.$to_a():r["$respond_to?"]("to_ary")?u=r.$to_ary().$to_a():u=[r]),o=a(o,s("Integer"),"to_int"),p=a(p,s("Integer"),"to_int"),o<0&&(v=o,o+=m,o<0&&i.$raise(s("IndexError"),"index "+v+" too small for array; minimum "+-d.length)),p<0&&i.$raise(s("IndexError"),"negative length ("+p+")"),o>m)for(h=m;h<o;h++)d[h]=t;return l===void 0?d[o]=r:d.splice.apply(d,[o,p].concat(u)),r},-3),n(B,"$any?",function e(n){var o=e.$$p||t,s=this;return e.$$p=null,s.length!==0&&v(s,b(s,"any?",e,!1,!0),"any?",[n],o)},-1),n(B,"$assoc",function(n){for(var s,i=this,o=0,a=i.length;o<a;o++)if(s=i[o],s.length&&s[0]["$=="](n))return s;return t}),n(B,"$at",function(n){var o=this;return n=a(n,s("Integer"),"to_int"),n<0&&(n+=o.length),n<0||n>=o.length?t:o[n]}),n(B,"$bsearch_index",function e(){var d=e.$$p||t,c=this;if(e.$$p=null,d===t)return c.$enum_for("bsearch_index");for(var n,o,h,a=0,l=c.length,r=!1,m=t;a<l;){if(o=a+Math.floor((l-a)/2),h=c[o],n=u(d,h),n===!0)m=o,r=!0;else if(n===!1||n===t)r=!1;else if(n.$$is_number){if(n===0)return o;r=n<0}else i.$raise(s("TypeError"),"wrong argument type "+n.$class()+" (must be numeric, true, false or nil)");r?l=o:a=o+1}return m}),n(B,"$bsearch",function e(){var o=e.$$p||t,s=this,n=t;return e.$$p=null,o!==t?(n=r(s,"bsearch_index",[],o.$to_proc()),n!=null&&n.$$is_number?s[n]:n):s.$enum_for("bsearch")}),n(B,"$cycle",function e(n){var a,c,h,d=e.$$p||t,i=this;if(e.$$p=null,n==null&&(n=t),d===t)return r(i,"enum_for",["cycle",n],function e(){var t=e.$$s==null?this:e.$$s;return o(n["$nil?"]())?s(s("Float"),"INFINITY"):(n=l["$coerce_to!"](n,s("Integer"),"to_int"),o(E(n,0))?L(t.$enumerator_size(),n):0)},{$$s:i});if(o(i["$empty?"]())||C(n,0))return t;if(n===t)for(;!0;)for(a=0,c=i.length;a<c;a++)h=u(d,i[a]);else{if(n=l["$coerce_to!"](n,s("Integer"),"to_int"),n<=0)return i;for(;n>0;){for(a=0,c=i.length;a<c;a++)h=u(d,i[a]);n--}}return i},-1),n(B,"$clear",function(){var t=this;return c(t),t.splice(0,t.length),t}),n(B,"$count",function e(n){var i=e.$$p||t,s=this;return e.$$p=null,o(n!==void 0)||o(i)?v(s,b(s,"count",e,!1,!0),"count",[n],i):s.$size()},-1),n(B,"$initialize_copy",function(t){var n=this;return n.$replace(t)}),n(B,"$collect",function e(){var n,o,a,i=e.$$p||t,s=this;if(e.$$p=null,i===t)return r(s,"enum_for",["collect"],function e(){var t=e.$$s==null?this:e.$$s;return t.$size()},{$$s:s});for(o=[],n=0;n<s.length;n++)a=u(i,s[n]),o[n]=a;return o}),n(B,"$collect!",function e(){var s,i,o=e.$$p||t,n=this;if(e.$$p=null,o===t)return r(n,"enum_for",["collect!"],function e(){var t=e.$$s==null?this:e.$$s;return t.$size()},{$$s:n});c(n);for(s=0;s<n.length;s++)i=u(o,n[s]),n[s]=i;return n});function U(e,t){return e===t||t===0?1:t>0&&e>t?U(e-1,t-1)+U(e-1,t):0}n(B,"$combination",function n(o){var i,d,u,m,f,p,g,h=n.$$p||t,a=this,c=t;if(n.$$p=null,c=l["$coerce_to!"](o,s("Integer"),"to_int"),h===t)return r(a,"enum_for",["combination",c],function e(){var t=e.$$s==null?this:e.$$s;return U(t.length,c)},{$$s:a});if(c===0)e.yield1(h,[]);else if(c===1)for(u=0,p=a.length;u<p;u++)e.yield1(h,[a[u]]);else if(c===a.length)e.yield1(h,a.slice());else if(c>=0&&c<a.length){d=[];for(u=0;u<=c+1;u++)d.push(0);for(m=[],i=0,f=!1,d[0]=-1;!f;){for(m[i]=a[d[i+1]];i<c-1;)i++,g=d[i+1]=d[i]+1,m[i]=a[g];e.yield1(h,m.slice()),i++;do f=i===0,d[i]++,i--;while(d[i+1]+c===a.length+i+1)}}return a}),n(B,"$repeated_combination",function n(o){var c=n.$$p||t,a=this,i=t;if(n.$$p=null,i=l["$coerce_to!"](o,s("Integer"),"to_int"),c===t)return r(a,"enum_for",["repeated_combination",i],function e(){var t=e.$$s==null?this:e.$$s;return U(t.length+i-1,i)},{$$s:a});function d(t,n,s,o){if(s.length==t){var i,a=s.slice();e.yield1(c,a);return}for(i=n;i<o.length;i++)s.push(o[i]),d(t,i,s,o),s.pop()}return i>=0&&d(i,0,[],a),a}),n(B,"$compact",function(){for(var i,s=this,o=[],n=0,a=s.length;n<a;n++)(i=s[n])!==t&&o.push(i);return o}),n(B,"$compact!",function(){n=this,c(n);for(var n,i=n.length,s=0,o=n.length;s<o;s++)n[s]===t&&(n.splice(s,1),o--,s--);return n.length===i?t:n}),n(B,"$concat",function(){var s=this,a=d(arguments),i=a;return c(s),i=r(i,"map",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),n=V(n),o(n["$equal?"](s))&&(n=n.$dup()),n},{$$s:s}),r(i,"each",[],function e(n){o=e.$$s==null?this:e.$$s,n==null&&(n=t);for(var o,s=0,i=n.length;s<i;s++)o.push(n[s])},{$$s:s}),s},-1),n(B,"$delete",function n(s){var o,a,r,l=n.$$p||t,i=this;n.$$p=null;for(a=i.length,o=0,r=a;o<r;o++)i[o]["$=="](s)&&(c(i),i.splice(o,1),r--,o--);return i.length===a?l!==t?e.yieldX(l,[]):t:s}),n(B,"$delete_at",function(n){var i,o=this;return c(o),n=a(n,s("Integer"),"to_int"),n<0&&(n+=o.length),n<0||n>=o.length?t:(i=o[n],o.splice(n,1),i)}),n(B,"$delete_if",function e(){var s=e.$$p||t,n=this;return e.$$p=null,s!==t?(c(n),G(n,H,s),n):r(n,"enum_for",["delete_if"],function e(){var t=e.$$s==null?this:e.$$s;return t.$size()},{$$s:n})}),n(B,"$difference",function(){var i=this,s=d(arguments),o=s;return r(o,"reduce",[i.$to_a().$dup()],function(n,s){return n==null&&(n=t),s==null&&(s=t),F(n,s)})},-1),n(B,"$dig",function(n){var h=this,c=t,u=d(arguments,1),l=u,c=h["$[]"](n);return c===t||l.length===0?c:(o(c["$respond_to?"]("dig"))||i.$raise(s("TypeError"),""+c.$class()+" does not have #dig method"),r(c,"dig",A(l)))},-2),n(B,"$drop",function(t){var n=this;return t=a(t,s("Integer"),"to_int"),t<0&&i.$raise(s("ArgumentError")),n.slice(t)}),n(B,"$dup",function n(){var o=n.$$p||t,s=this;return n.$$p=null,s.$$class===e.Array&&s.$$class.$allocate.$$pristine&&s.$copy_instance_variables.$$pristine&&s.$initialize_dup.$$pristine?s.slice(0):v(s,b(s,"dup",n,!1,!0),"dup",[],o)}),n(B,"$each",function e(){var s,o=e.$$p||t,n=this;if(e.$$p=null,o===t)return r(n,"enum_for",["each"],function e(){var t=e.$$s==null?this:e.$$s;return t.$size()},{$$s:n});for(s=0;s<n.length;s++)u(o,n[s]);return n}),n(B,"$each_index",function e(){var s,o=e.$$p||t,n=this;if(e.$$p=null,o===t)return r(n,"enum_for",["each_index"],function e(){var t=e.$$s==null?this:e.$$s;return t.$size()},{$$s:n});for(s=0;s<n.length;s++)u(o,s);return n}),n(B,"$empty?",function(){var t=this;return t.length===0}),n(B,"$eql?",function(t){var o=this,n={};function s(e,t){var o,i,a,r;if(!t.$$is_array)return!1;if(t=t.$to_a(),e.length!==t.length)return!1;n[e.$object_id()]=!0;for(i=0,r=e.length;i<r;i++)if(o=e[i],a=t[i],o.$$is_array){{if(a.$$is_array&&a.length!==o.length)return!1;if(!n.hasOwnProperty(o.$object_id())&&!s(o,a))return!1}}else if(!o["$eql?"](a))return!1;return!0}return s(o,t)}),n(B,"$fetch",function e(n,o){var c,l=e.$$p||t,r=this;if(e.$$p=null,c=n,n=a(n,s("Integer"),"to_int"),n<0&&(n+=r.length),n>=0&&n<r.length)return r[n];if(l!==t&&o!=null&&r.$warn("warning: block supersedes default value argument"),l!==t)return l(c);if(o!=null)return o;r.length===0?i.$raise(s("IndexError"),"index "+c+" outside of array bounds: 0...0"):i.$raise(s("IndexError"),"index "+c+" outside of array bounds: -"+r.length+"..."+r.length)},-2),n(B,"$fill",function e(){var u,m,p,v,y,O,x,b=e.$$p||t,f=this,h=t,g=t,j=t,r=t,l=t;if(e.$$p=null,y=d(arguments),m=y,c(f),o(b)?(o(m.length>2)&&i.$raise(s("ArgumentError"),"wrong number of arguments ("+m.$length()+" for 0..2)"),p=m,u=w(p),h=u[0]==null?t:u[0],g=u[1]==null?t:u[1],p):(o(m.length==0)?i.$raise(s("ArgumentError"),"wrong number of arguments (0 for 1..3)"):o(m.length>3)&&i.$raise(s("ArgumentError"),"wrong number of arguments ("+m.$length()+" for 1..3)"),p=m,u=w(p),j=u[0]==null?t:u[0],h=u[1]==null?t:u[1],g=u[2]==null?t:u[2],p),_(s("Range"),h)){if(o(g)&&i.$raise(s("TypeError"),"length invalid with range"),r=h.begin===t?0:a(h.begin,s("Integer"),"to_int"),o(r<0)&&(r+=this.length),o(r<0)&&i.$raise(s("RangeError"),""+h.$inspect()+" out of range"),l=h.end===t?-1:a(h.end,s("Integer"),"to_int"),o(l<0)&&(l+=this.length),o(h["$exclude_end?"]())||(l+=1),o(l<=r))return f}else if(o(h))if(r=a(h,s("Integer"),"to_int"),o(r<0)&&(r+=this.length),o(r<0)&&(r=0),o(g)){if(l=a(g,s("Integer"),"to_int"),o(l==0))return f;l+=r}else l=this.length;else r=0,l=this.length;if(o(r>this.length))for(v=this.length;v<l;v++)f[v]=t;if(o(l>this.length)&&(this.length=l),o(b))for(O=this.length;r<l;r++)x=b(r),f[r]=x;else for(O=this.length;r<l;r++)f[r]=j;return f},-1),n(B,"$first",function(n){var o=this;return n==null?o.length===0?t:o[0]:(n=a(n,s("Integer"),"to_int"),n<0&&i.$raise(s("ArgumentError"),"negative array size"),o.slice(0,n))},-1),n(B,"$flatten",function(n){var r=this;function o(e,n){var c,l,d,u,a=[];e=e.$to_a();for(d=0,u=e.length;d<u;d++){if(l=e[d],!g(l,"$to_ary",!0)){a.push(l);continue}if(c=l.$to_ary(),c===t){a.push(l);continue}switch(c.$$is_array||i.$raise(s("TypeError")),c===r&&i.$raise(s("ArgumentError")),n){case void 0:a=a.concat(o(c));break;case 0:a.push(c);break;default:q(a,o(c,n-1))}}return a}return n!==void 0&&(n=a(n,s("Integer"),"to_int")),o(r,n)},-1),n(B,"$flatten!",function(n){if(s=this,c(s),i=s.$flatten(n),s.length==i.length){for(var s,i,o=0,a=s.length;o<a;o++)if(s[o]!==i[o])break;if(o==a)return t}return s.$replace(i),s},-1),n(B,"$freeze",function(){var t=this;return o(t["$frozen?"]())?t:N(t)}),n(B,"$hash",function(){var s,o,r,n=this,i=$===void 0,t=S(),a=n.$object_id(),t=f(t,10),t=f(t,n.length);if(i)$=Object.create(null);else if($[a])return f(t,16843009);try{for(r in $)if(s=$[r],n["$eql?"](s))return f(t,16843009);$[a]=n;for(o=0;o<n.length;o++)s=n[o],t=f(t,s.$hash());return t}finally{i&&($=void 0)}}),n(B,"$include?",function(t){for(var s=this,n=0,o=s.length;n<o;n++)if(s[n]["$=="](t))return!0;return!1}),n(B,"$index",function e(n){var s,a,r,i=e.$$p||t,o=this;if(e.$$p=null,n!=null&&i!==t&&o.$warn("warning: given block not used"),n!=null){for(s=0,r=o.length;s<r;s++)if(o[s]["$=="](n))return s}else if(i!==t){for(s=0;s<o.length;s++)if(a=i(o[s]),a!==!1&&a!==t)return s}else return o.$enum_for("index");return t},-1),n(B,"$insert",function(n){var l,r=this,h=d(arguments,1),u=h;if(c(r),n=a(n,s("Integer"),"to_int"),u.length>0){if(n<0&&(n+=r.length+1,n<0&&i.$raise(s("IndexError"),""+n+" is out of bounds")),n>r.length)for(l=r.length;l<n;l++)r.push(t);r.splice.apply(r,[n,0].concat(u))}return r},-2),K=[],n(B,"$inspect",function(){var n=this,s=[],o=n.$__id__(),i=!0;return function(){try{if(K.indexOf(o)!==-1)return i=!1,"[...]";K.push(o);for(var a,e=0,r=n.length;e<r;e++)a=n["$[]"](e),s.push(W("Opal").$inspect(a));return"["+s.join(", ")+"]";return t}finally{i&&K.pop()}}()}),n(B,"$intersection",function(){var i=this,a=t,c=t,l=d(arguments),s=l;return s.length===0?i.$to_a().$dup():(s=s.map(V),i.length===0?[]:(s=r(s,"sort_by",[],"length".$to_proc()),o(i.length<s[0].length)?r(s,"reduce",[i],"&".$to_proc()):(a=s.pop(),c=r(s,"reduce",[a],"&".$to_proc()),i["$&"](c))))},-1),n(B,"$intersect?",function(t){var n,o,i,a,s=this,r=new Map;s.length<t.length?(o=s,i=t):(o=t,i=s);for(n=0,a=o.length;n<a;n++)m(r,o[n],!0);for(n=0,a=i.length;n<a;n++)if(p(r,i[n]))return!0;return!1}),n(B,"$join",function(n){var a,r,c,u,h,d=this;if(j[","]==null&&(j[","]=t),n==null&&(n=t),o(d.length===0))return"";o(n===t)&&(n=j[","]),c=[];for(u=0,h=d.length;u<h;u++){if(r=d[u],g(r,"$to_str")&&(a=r.$to_str(),a!==t)){c.push(a.$to_s());continue}if(g(r,"$to_ary")&&(a=r.$to_ary(),a===d&&i.$raise(s("ArgumentError")),a!==t)){c.push(a.$join(n));continue}if(g(r,"$to_s")&&(a=r.$to_s(),a!==t)){c.push(a);continue}i.$raise(s("NoMethodError").$new(""+W("Opal").$inspect(d.$item())+" doesn't respond to #to_str, #to_ary or #to_s","to_str"))}return n===t?c.join(""):c.join(l["$coerce_to!"](n,s("String"),"to_str").$to_s())},-1),n(B,"$keep_if",function e(){var s=e.$$p||t,n=this;return e.$$p=null,s!==t?(c(n),G(n,o,s),n):r(n,"enum_for",["keep_if"],function e(){var t=e.$$s==null?this:e.$$s;return t.$size()},{$$s:n})}),n(B,"$last",function(n){var o=this;return n==null?o.length===0?t:o[o.length-1]:(n=a(n,s("Integer"),"to_int"),n<0&&i.$raise(s("ArgumentError"),"negative array size"),n>o.length&&(n=o.length),o.slice(o.length-n,o.length))},-1),n(B,"$length",function(){var t=this;return t.length}),n(B,"$max",function e(n){var s=e.$$p||t,o=this;return e.$$p=null,r(o.$each(),"max",[n],s.$to_proc())},-1),n(B,"$min",function e(){var n=e.$$p||t,s=this;return e.$$p=null,r(s.$each(),"min",[],n.$to_proc())});function te(e,t){for(var n=t>=0?1:0;t;)n*=e,e--,t--;return n}return n(B,"$permutation",function n(o){var l,d,f,p,c=n.$$p||t,i=this,h=t,m=t;if(n.$$p=null,c===t)return r(i,"enum_for",["permutation",o],function e(){var t=e.$$s==null?this:e.$$s;return te(t.length,o===void 0?t.length:o)},{$$s:i});if(o===void 0?o=i.length:o=a(o,s("Integer"),"to_int"),o<0||i.length<o);else if(o===0)e.yield1(c,[]);else if(o===1)for(d=0;d<i.length;d++)e.yield1(c,[i[d]]);else h=W("Array").$new(o),m=W("Array").$new(i.length,!1),l=function(e,t,n,s,o){i=this;for(var r,a=0;a<i.length;a++)if(s["$[]"](a)["$!"]())if(t[n]=a,n<e-1)s[a]=!0,l.call(i,e,t,n+1,s,o),s[a]=!1;else{f=[];for(r=0;r<t.length;r++)f.push(i[t[r]]);u(o,f)}},c!==t?(p=i.slice(),l.call(p,o,h,0,m,c)):l.call(i,o,h,0,m,c);return i},-1),n(B,"$repeated_permutation",function n(i){var d=n.$$p||t,c=this,a=t;if(n.$$p=null,a=l["$coerce_to!"](i,s("Integer"),"to_int"),d===t)return r(c,"enum_for",["repeated_permutation",a],function e(){var t=e.$$s==null?this:e.$$s;return o(M(a,0))?t.$size()["$**"](a):0},{$$s:c});function u(t,n,s){if(n.length==t){var o,i=n.slice();e.yield1(d,i);return}for(o=0;o<s.length;o++)n.push(s[o]),u(t,n,s),n.pop()}return u(a,[],c.slice()),c}),n(B,"$pop",function(n){var r=this;return c(r),o(n===void 0)?o(r.length===0)?t:r.pop():(n=a(n,s("Integer"),"to_int"),o(n<0)&&i.$raise(s("ArgumentError"),"negative array size"),o(r.length===0)?[]:o(n===1)?[r.pop()]:o(n>r.length)?r.splice(0,r.length):r.splice(r.length-n,r.length))},-1),n(B,"$product",function n(){var v=n.$$p||t,g=this;n.$$p=null;var r,l,f,p,_=d(arguments),j=_,h=v!==t?null:[],c=j.length+1,u=new Array(c),b=new Array(c),m=new Array(c),y=1;m[0]=g;for(r=1;r<c;r++)m[r]=a(j[r-1],s("Array"),"to_ary");for(r=0;r<c;r++){if(p=m[r].length,p===0)return h||g;y*=p,y>2147483647&&i.$raise(s("RangeError"),"too big to product"),b[r]=p,u[r]=0}outer_loop:for(;;){f=[];for(r=0;r<c;r++)f.push(m[r][u[r]]);for(h?h.push(f):e.yield1(v,f),l=c-1,u[l]++;u[l]===b[l];){if(u[l]=0,--l<0)break outer_loop;u[l]++}}return h||g},-1),n(B,"$push",function(){var n=this,s=d(arguments),o=s;return c(n),q(n,o),n},-1),n(B,"$rassoc",function(n){for(var s,i=this,o=0,a=i.length;o<a;o++)if(s=i[o],s.length&&s[1]!==void 0&&s[1]["$=="](n))return s;return t}),n(B,"$reject",function e(){var s,o,i,a=e.$$p||t,n=this;if(e.$$p=null,a===t)return r(n,"enum_for",["reject"],function e(){var t=e.$$s==null?this:e.$$s;return t.$size()},{$$s:n});for(o=[],s=0;s<n.length;s++)i=a(n[s]),(i===!1||i===t)&&o.push(n[s]);return o}),n(B,"$reject!",function e(){var s=e.$$p||t,n=this,o=t;return e.$$p=null,s!==t?(c(n),o=n.$length(),r(n,"delete_if",[],s.$to_proc()),C(n.$length(),o)?t:n):r(n,"enum_for",["reject!"],function e(){var t=e.$$s==null?this:e.$$s;return t.$size()},{$$s:n})}),n(B,"$replace",function(t){var n=this;return c(n),t=V(t),n.length>0&&n.splice(0,n.length),q(n,t),n}),n(B,"$reverse",function(){var t=this;return t.slice(0).reverse()}),n(B,"$reverse!",function(){var t=this;return c(t),t.reverse()}),n(B,"$reverse_each",function e(){var s,o=e.$$p||t,n=this;if(e.$$p=null,o===t)return r(n,"enum_for",["reverse_each"],function e(){var t=e.$$s==null?this:e.$$s;return t.$size()},{$$s:n});for(s=n.length-1;s>=0;s--)u(o,n[s]);return n}),n(B,"$rindex",function e(n){var s,a,i=e.$$p||t,o=this;if(e.$$p=null,n!=null&&i!==t&&o.$warn("warning: given block not used"),n!=null){for(s=o.length-1;s>=0;s--){if(s>=o.length)break;if(o[s]["$=="](n))return s}}else if(i!==t){for(s=o.length-1;s>=0;s--){if(s>=o.length)break;if(a=i(o[s]),a!==!1&&a!==t)return s}}else if(n==null)return o.$enum_for("rindex");return t},-1),n(B,"$rotate",function(t){var o,i,r,c,n=this;return t==null&&(t=1),t=a(t,s("Integer"),"to_int"),n.length===1?n.slice():n.length===0?[]:(o=n.slice(),i=t%o.length,r=o.slice(i),c=o.slice(0,i),r.concat(c))},-1),n(B,"$rotate!",function(n){var o=this,i=t;return n==null&&(n=1),c(o),o.length===0||o.length===1?o:(n=a(n,s("Integer"),"to_int"),i=o.$rotate(n),o.$replace(i))},-1),function(e,r){var c=O(e,r,"SampleRandom"),l=c.$$prototype;return l.rng=t,n(c,"$initialize",k("rng")),n(c,"$rand",function(n){var c=this,r=t,r=a(c.rng.$rand(n),s("Integer"),"to_int");return o(r<0)&&i.$raise(s("RangeError"),"random value must be >= 0"),o(r<n)||i.$raise(s("RangeError"),"random value must be less than Array size"),r})}(B,null),n(B,"$sample",function(n,r){var d,h,m,f,p,g,v,b,y,c=this,j=t,u=t;if(o(n===void 0))return c.$at(i.$rand(c.length));if(o(r===void 0)?o(j=l["$coerce_to?"](n,s("Hash"),"to_hash"))?(r=j,n=t):(r=t,n=a(n,s("Integer"),"to_int")):(n=a(n,s("Integer"),"to_int"),r=a(r,s("Hash"),"to_hash")),o(n)&&o(n<0)&&i.$raise(s("ArgumentError"),"count must be greater than 0"),o(r)&&(u=r["$[]"]("random")),u=o(u)&&o(u["$respond_to?"]("rand"))?W("SampleRandom").$new(u):i,!o(n))return c[u.$rand(c.length)];switch(n>c.length&&(n=c.length),n){case 0:return[];break;case 1:return[c[u.$rand(c.length)]];break;case 2:return h=u.$rand(c.length),m=u.$rand(c.length-1),h<=m&&m++,[c[h],c[m]];break;default:if(c.length/n>3){for(p=!1,v=0,d=W("Array").$new(n),h=1,d[0]=u.$rand(c.length);h<n;){for(g=u.$rand(c.length),m=0;m<h;){for(;g===d[m];){if(v++,v>100){p=!0;break}g=u.$rand(c.length)}if(p)break;m++}if(p)break;d[h]=g,h++}if(!p){for(h=0;h<n;)d[h]=c[d[h]],h++;return d}}d=c.slice();for(f=0;f<n;f++)b=u.$rand(c.length-f)+f,y=d[f],d[f]=d[b],d[b]=y;return n===c.length?d:d["$[]"](0,n)}},-1),n(B,"$select",function e(){var s,i,a,l,c=e.$$p||t,n=this;if(e.$$p=null,c===t)return r(n,"enum_for",["select"],function e(){var t=e.$$s==null?this:e.$$s;return t.$size()},{$$s:n});for(i=[],s=0;s<n.length;s++)a=n[s],l=u(c,a),o(l)&&i.push(a);return i}),n(B,"$select!",function e(){var o,s=e.$$p||t,n=this;return e.$$p=null,s!==t?(c(n),o=n.length,r(n,"keep_if",[],s.$to_proc()),n.length===o?t:n):r(n,"enum_for",["select!"],function e(){var t=e.$$s==null?this:e.$$s;return t.$size()},{$$s:n})}),n(B,"$shift",function(n){var r=this;return c(r),o(n===void 0)?o(r.length===0)?t:X(r):(n=a(n,s("Integer"),"to_int"),o(n<0)&&i.$raise(s("ArgumentError"),"negative array size"),o(r.length===0)?[]:r.splice(0,n))},-1),n(B,"$shuffle",function(t){var n=this;return n.$dup().$to_a()["$shuffle!"](t)},-1),n(B,"$shuffle!",function(n){var a,r,d,u,o=this;for(c(o),r=o.length,n!==void 0&&(n=l["$coerce_to?"](n,s("Hash"),"to_hash"),n!==t&&(n=n["$[]"]("random"),n!==t&&n["$respond_to?"]("rand")&&(d=n)));r;)d?(a=d.$rand(r).$to_int(),a<0&&i.$raise(s("RangeError"),"random number too small "+a),a>=r&&i.$raise(s("RangeError"),"random number too big "+a)):a=o.$rand(r),u=o[--r],o[r]=o[a],o[a]=u;return o},-1),n(B,"$slice!",function(n,i){var f,p,r=this,m=t,u=t,h=t,d=t,l=t;if(c(r),m=t,o(i===void 0))if(_(s("Range"),n))u=n,m=r["$[]"](u),h=u.begin===t?0:a(u.begin,s("Integer"),"to_int"),d=u.end===t?-1:a(u.end,s("Integer"),"to_int"),h<0&&(h+=r.length),d<0?d+=r.length:d>=r.length&&(d=r.length-1,u.excl&&(d+=1)),f=d-h,u.excl&&u.end!==t?d-=1:f+=1,h<r.length&&h>=0&&d<r.length&&d>=0&&f>0&&r.splice(h,f);else{if(l=a(n,s("Integer"),"to_int"),l<0&&(l+=r.length),l<0||l>=r.length)return t;m=r[l],l===0?r.shift():r.splice(l,1)}else{if(l=a(n,s("Integer"),"to_int"),i=a(i,s("Integer"),"to_int"),i<0)return t;p=l+i,m=r["$[]"](l,i),l<0&&(l+=r.length),l+i>r.length&&(i=r.length-l),l<r.length&&l>=0&&r.splice(l,i)}return m},-2),n(B,"$sort",function e(){var n=e.$$p||t,a=this;return e.$$p=null,o(a.length>1)?(n===t&&(n=function(e,t){return e["$<=>"](t)}),a.slice().sort(function(e,o){var a=n(e,o);return a===t&&i.$raise(s("ArgumentError"),"comparison of "+e.$inspect()+" with "+o.$inspect()+" failed"),E(a,0)?1:T(a,0)?-1:0})):a}),n(B,"$sort!",function e(){var s,o,a,i=e.$$p||t,n=this;e.$$p=null,c(n),i!==t?s=r(n.slice(),"sort",[],i.$to_proc()):s=n.slice().$sort(),n.length=0;for(o=0,a=s.length;o<a;o++)n.push(s[o]);return n}),n(B,"$sort_by!",function e(){var s=e.$$p||t,n=this;return e.$$p=null,s!==t?(c(n),n.$replace(r(n,"sort_by",[],s.$to_proc()))):r(n,"enum_for",["sort_by!"],function e(){var t=e.$$s==null?this:e.$$s;return t.$size()},{$$s:n})}),n(B,"$take",function(t){var n=this;return t<0&&i.$raise(s("ArgumentError")),n.slice(0,t)}),n(B,"$take_while",function e(){var n,s,o,i,r=e.$$p||t,a=this;e.$$p=null;for(n=[],s=0;s<a.length;s++){if(o=a[s],i=r(o),i===!1||i===t)return n;n.push(o)}return n}),n(B,"$to_a",function(){var n=this;return n.$$class===e.Array?n:e.Array.$new(n)}),n(B,"$to_ary",z),n(B,"$to_h",function e(){var n,a,c,u,h,f,d=e.$$p||t,p=this,o=t;e.$$p=null,o=p,d!==t&&(o=r(o,"map",[],d.$to_proc())),u=o.length,c=new Map;for(n=0;n<u;n++)a=l["$coerce_to?"](o[n],s("Array"),"to_ary"),a.$$is_array||i.$raise(s("TypeError"),"wrong element type "+o[n].$class()+" at "+n+" (expected array)"),a.length!==2&&i.$raise(s("ArgumentError"),"element has wrong array length at "+n+" (expected 2, was "+a.$length()+")"),h=a[0],f=a[1],m(c,h,f);return c}),n(B,"$transpose",function(){var c=this,a=t,n=t;return o(c["$empty?"]())?[]:(a=[],n=t,r(c,"each",[],function(c){var l=t;return c==null&&(c=t),c=V(c),n=o(l=n)?l:c.length,D(c.length,n)&&i.$raise(s("IndexError"),"element size differs ("+c.length+" should be "+n+")"),r(c.length,"times",[],function(n){var s,i=t;return n==null&&(n=t),i=o(l=a["$[]"](n))?l:(s=[n,[]],r(a,"[]=",s),s[s.length-1]),i["$<<"](c.$at(n))})}),a)}),n(B,"$union",function(){var i=this,s=d(arguments),o=s;return r(o,"reduce",[i.$uniq()],function(n,s){return n==null&&(n=t),s==null&&(s=t),n["$|"](s)})},-1),n(B,"$uniq",function e(){var n,s,o,a,c,r=e.$$p||t,i=this;if(e.$$p=null,o=new Map,r===t)for(n=0,c=i.length;n<c;n++)s=i[n],p(o,s)===void 0&&m(o,s,s);else for(n=0;n<i.length;n++)s=i[n],a=u(r,s),p(o,a)===void 0&&m(o,a,s);return o.$values()}),n(B,"$uniq!",function e(){var n,o,i,a,r,l=e.$$p||t,s=this;e.$$p=null,c(s),a=new Map,o=[];for(n=0;n<s.length;n++)i=s[n],r=l===t?i:u(l,i),p(a,r)===void 0?m(a,r,i):o.push(n);for(n=o.length-1;n>=0;n--)s.splice(o[n],1);return o.length===0?t:s}),n(B,"$unshift",function(){var s,o,i,a,r,u,n=this,h=d(arguments),l=h;if(c(n),r=n.length,s=l.length,s==0)return n;for(u=r-s,a=0;a<s;a++)n.push(n[u+a]);for(o=r-1;o-s>=0;)n[o]=n[o-s],o--;for(i=0;i<s;i++)n[i]=l[i];return n},-1),n(B,"$values_at",function(){var u=this,i=t,c=d(arguments),l=c,i=[];return r(l,"each",[],function e(n){var d=e.$$s==null?this:e.$$s,c=t,l=t,u=t;return n==null&&(n=t),o(n["$is_a?"](s("Range")))?(c=n.$end()===t?-1:a(n.$end(),s("Integer"),"to_int"),l=n.$begin()===t?0:a(n.$begin(),s("Integer"),"to_int"),l<0?(l=l+d.length,t):(c<0&&(c=c+d.length),n["$exclude_end?"]()&&n.$end()!==t&&c--,c<l?t:r(l,"upto",[c],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),i["$<<"](s.$at(n))},{$$s:d}))):(u=a(n,s("Integer"),"to_int"),i["$<<"](d.$at(u)))},{$$s:u}),i},-1),n(B,"$zip",function n(){var a,r,c,u,h,m,f,p,v,g=n.$$p||t,b=this,j=t;n.$$p=null,v=d(arguments),u=v,h=[],m=b.length;for(r=0,f=u.length;r<f;r++){if(a=u[r],a.$$is_array)continue;if(a.$$is_range||a.$$is_enumerator){u[r]=a.$take(m);continue}u[r]=(o(j=l["$coerce_to?"](a,s("Array"),"to_ary"))?j:l["$coerce_to!"](a,s("Enumerator"),"to_enum","each")).$to_a()}for(c=0;c<m;c++){p=[b[c]];for(r=0,f=u.length;r<f;r++)a=u[r][c],a==null&&(a=t),p[r+1]=a;h[c]=p}if(g!==t){for(c=0;c<m;c++)e.yield1(g,h[c]);return t}return h},-1),y(B,"$inherited",function(t){t.$$prototype.$to_a=function(){return this.slice(0,this.length)}}),n(B,"$instance_variables",function e(){var s=e.$$p||t,n=this;return e.$$p=null,r(v(n,b(n,"instance_variables",e,!1,!0),"instance_variables",[],s),"reject",[],function(n){var s=t;return n==null&&(n=t),o(s=/^@\d+$/.test(n))?s:n["$=="]("@length")})}),n(B,"$pack",function(){var n=d(arguments),s=n;return i.$raise("To use Array#pack, you must first require 'corelib/array/pack'.")},-1),h(B,"append","push"),h(B,"filter","select"),h(B,"filter!","select!"),h(B,"map","collect"),h(B,"map!","collect!"),h(B,"prepend","unshift"),h(B,"size","length"),h(B,"slice","[]"),h(B,"to_s","inspect"),l.$pristine(B.$singleton_class(),"allocate"),l.$pristine(B,"copy_instance_variables","initialize_dup")}("::",Array,R)},Opal.modules["corelib/hash"]=function(e){var A=e.yield1,j=e.hash_clone,f=e.hash_delete,s=e.hash_each,u=e.hash_get,r=e.hash_put,a=e.deny_frozen_access,_=e.freeze,k=e.opal32_init,p=e.opal32_add,x=e.klass,m=e.slice,d=e.Opal,h=e.Kernel,b=e.defs,n=e.def,o=e.send,y=e.rb_ge,O=e.rb_gt,l=e.truthy,v=e.to_a,w=e.return_self,g=e.not,c=e.alias,C=e.top,E=[],t=e.nil,i=e.$$$;return e.add_stubs("require,include,coerce_to?,[],merge!,allocate,raise,inspect,coerce_to!,each,fetch,>=,>,==,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?"),C.$require("corelib/enumerable"),function(C,E,S){var F,T,M=x(C,E,"Hash"),D=[M].concat(S),z=e.$r(D);return M.$include(i("Enumerable")),M.$$prototype.$$is_hash=!0,b(M,"$[]",function(){var o,a,r,l=this,u=m(arguments),s=u,c=s.length;if(c===1){if(o=d["$coerce_to?"](s["$[]"](0),i("Hash"),"to_hash"),o!==t)return l.$allocate()["$merge!"](o);s=d["$coerce_to?"](s["$[]"](0),i("Array"),"to_ary"),s===t&&h.$raise(i("ArgumentError"),"odd number of arguments for Hash"),c=s.length,o=l.$allocate();for(r=0;r<c;r++)a=s[r],a.$$is_array||h.$raise(i("ArgumentError"),"invalid element "+a.$inspect()+" for Hash"),a.length===1?o.$store(a[0],t):a.length===2?o.$store(a[0],a[1]):h.$raise(i("ArgumentError"),"invalid number of elements ("+a.length+" for "+a.$inspect()+"), must be 1..2");return o}c%2!==0&&h.$raise(i("ArgumentError"),"odd number of arguments for Hash"),o=l.$allocate();for(r=0;r<c;r+=2)o.$store(s[r],s[r+1]);return o},-1),b(M,"$allocate",function(){var s=this,n=new s.$$constructor;return n.$$none=t,n.$$proc=t,n}),b(M,"$try_convert",function(t){return d["$coerce_to?"](t,i("Hash"),"to_hash")}),n(M,"$initialize",function e(n){var o=e.$$p||t,s=this;return e.$$p=null,a(s),n!==void 0&&o!==t&&h.$raise(i("ArgumentError"),"wrong number of arguments (1 for 0)"),s.$$none=n===void 0?t:n,s.$$proc=o,s},-1),n(M,"$==",function(t){var n=this;return n===t||!!t.$$is_hash&&n.size===t.size&&s(n,!0,function(e,n){var s=u(t,e);return s===void 0||!n["$eql?"](s)?[!0,!1]:[!1,!0]})}),n(M,"$>=",function(n){var a=this,s=t;return n=d["$coerce_to!"](n,i("Hash"),"to_hash"),!(a.size<n.size)&&(s=!0,o(n,"each",[],function e(n,o){var a=e.$$s==null?this:e.$$s,i=t;if(n==null&&(n=t),o==null&&(o=t),i=a.$fetch(n,null),i==null||i!==o){s=!1;return}},{$$s:a}),s)}),n(M,"$>",function(t){var n=this;return t=d["$coerce_to!"](t,i("Hash"),"to_hash"),!(n.size<=t.size)&&y(n,t)}),n(M,"$<",function(t){var n=this;return t=d["$coerce_to!"](t,i("Hash"),"to_hash"),O(t,n)}),n(M,"$<=",function(t){var n=this;return t=d["$coerce_to!"](t,i("Hash"),"to_hash"),y(t,n)}),n(M,"$[]",function(t){var n=this,s=u(n,t);return s!==void 0?s:n.$default(t)}),n(M,"$[]=",function(t,n){var s=this;return a(s),r(s,t,n),n}),n(M,"$assoc",function(n){var o=this;return s(o,t,function(e,s){return e["$=="](n)?[!0,[e,s]]:[!1,t]})}),n(M,"$clear",function(){var t=this;return a(t),t.clear(),t.$$keys&&t.$$keys.clear(),t}),n(M,"$clone",function(){var t=this,n=t.$class().$new();return j(t,n),t["$frozen?"]()?n.$freeze():n}),n(M,"$compact",function(){var o=this,n=new Map;return s(o,n,function(e,s){return s!==t&&r(n,e,s),[!1,n]})}),n(M,"$compact!",function(){var o,n=this;return a(n),o=t,s(n,o,function(e,s){return s===t&&(f(n,e),o=n),[!1,o]})}),n(M,"$compare_by_identity",function(){var n=this;return a(n),n.$$by_identity||(n.$$by_identity=!0,n.size!==0&&e.hash_rehash(n)),n}),n(M,"$compare_by_identity?",function(){var t=this;return t.$$by_identity===!0}),n(M,"$default",function(n){var s=this;return n!==void 0&&s.$$proc!==t&&s.$$proc!==void 0?s.$$proc.$call(s,n):s.$$none===void 0?t:s.$$none},-1),n(M,"$default=",function(n){var s=this;return a(s),s.$$proc=t,s.$$none=n,n}),n(M,"$default_proc",function(){var n=this;return n.$$proc!==void 0?n.$$proc:t}),n(M,"$default_proc=",function(n){var s,o=this;return a(o),s=n,s!==t&&(s=d["$coerce_to!"](s,i("Proc"),"to_proc"),s["$lambda?"]()&&s.$arity().$abs()!==2&&h.$raise(i("TypeError"),"default_proc takes two arguments")),o.$$none=t,o.$$proc=s,n}),n(M,"$delete",function n(s){var o,i=n.$$p||t,r=this;return n.$$p=null,a(r),o=f(r,s),o!==void 0?o:i!==t?e.yield1(i,s):t}),n(M,"$delete_if",function e(){var i=e.$$p||t,n=this;return e.$$p=null,l(i)?(a(n),s(n,n,function(e,s){var o=i(e,s);return o!==!1&&o!==t&&f(n,e),[!1,n]})):o(n,"enum_for",["delete_if"],function e(){var t=e.$$s==null?this:e.$$s;return t.$size()},{$$s:n})}),n(M,"$dig",function(n){var d=this,a=t,c=m(arguments,1),r=c,a=d["$[]"](n);return a===t||r.length===0?a:(l(a["$respond_to?"]("dig"))||h.$raise(i("TypeError"),""+a.$class()+" does not have #dig method"),o(a,"dig",v(r)))},-2),n(M,"$dup",function(){var t=this;return j(t,t.$class().$new())}),n(M,"$each",function e(){var i=e.$$p||t,n=this;return e.$$p=null,l(i)?s(n,n,function(e,t){return A(i,[e,t]),[!1,n]}):o(n,"enum_for",["each"],function e(){var t=e.$$s==null?this:e.$$s;return t.$size()},{$$s:n})}),n(M,"$each_key",function e(){var i=e.$$p||t,n=this;return e.$$p=null,l(i)?s(n,n,function(e){return i(e),[!1,n]}):o(n,"enum_for",["each_key"],function e(){var t=e.$$s==null?this:e.$$s;return t.$size()},{$$s:n})}),n(M,"$each_value",function e(){var i=e.$$p||t,n=this;return e.$$p=null,l(i)?s(n,n,function(e,t){return i(t),[!1,n]}):o(n,"enum_for",["each_value"],function e(){var t=e.$$s==null?this:e.$$s;return t.$size()},{$$s:n})}),n(M,"$empty?",function(){var t=this;return t.size===0}),n(M,"$except",function(){var i=this,n=m(arguments),s=n;return o(i.$dup(),"except!",v(s))},-1),n(M,"$except!",function(){var s=this,i=m(arguments),a=i;return o(a,"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s.$delete(n)},{$$s:s}),s},-1),n(M,"$fetch",function e(n,s){var o,a=e.$$p||t,r=this;return e.$$p=null,o=u(r,n),o!==void 0?o:a!==t?a(n):s!==void 0?s:h.$raise(i("KeyError").$new("key not found: "+n.$inspect(),new Map([["key",n],["receiver",r]])))},-2),n(M,"$fetch_values",function e(){var s,i,a=e.$$p||t,r=this;return e.$$p=null,s=m(arguments),i=s,o(i,"map",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),o(s,"fetch",[n],a.$to_proc())},{$$s:r})},-1),n(M,"$flatten",function(t){var n,o=this;return t==null&&(t=1),t=d["$coerce_to!"](t,i("Integer"),"to_int"),n=[],s(o,n,function(e,s){return n.push(e),s.$$is_array?t===1?(n.push(s),[!1,n]):(n=n.concat(s.$flatten(t-2)),[!1,n]):(n.push(s),[!1,n])})},-1),n(M,"$freeze",function(){var t=this;return l(t["$frozen?"]())?t:_(t)}),n(M,"$has_key?",function(t){var n=this;return u(n,t)!==void 0}),n(M,"$has_value?",function(t){var n=this;return s(n,!1,function(e,n){return n["$=="](t)?[!0,!0]:[!1,!1]})}),n(M,"$hash",function(){var n,c,l,o=this,a=F===void 0,r=o.$object_id(),t=k(),d=o.size,i=new Int32Array(d),t=p(t,4),t=p(t,d);if(a)F=Object.create(null);else if(F[r])return p(t,16843009);try{for(c in F)if(l=F[c],o["$eql?"](l))return p(t,16843009);F[r]=o,n=0,s(o,!1,function(e,t){return i[n]=[1883326802,e,t].$hash(),n++,[!1,!1]}),i=i.sort();for(n=0;n<i.length;n++)t=p(t,i[n]);return t}finally{a&&(F=void 0)}}),n(M,"$index",function(n){var o=this;return s(o,t,function(e,s){return s["$=="](n)?[!0,e]:[!1,t]})}),n(M,"$indexes",function(){for(var o,i,r,c,a=this,c=m(arguments),i=c,n=[],s=0,l=i.length;s<l;s++){if(r=i[s],o=u(a,r),o===void 0){n.push(a.$default());continue}n.push(o)}return n},-1),n(M,"$inspect",function(){var n=this,o=T===void 0,i=n.$object_id(),a=[];return function(){try{return o&&(T={}),T.hasOwnProperty(i)?"{...}":(T[i]=!0,s(n,!1,function(e,t){return t=z("Opal").$inspect(t),e=z("Opal").$inspect(e),a.push(e+"=>"+t),[!1,!1]}),"{"+a.join(", ")+"}");return t}finally{o&&(T=void 0)}}()}),n(M,"$invert",function(){var n=this,t=new Map;return s(n,t,function(e,n){return r(t,n,e),[!1,t]})}),n(M,"$keep_if",function e(){var i=e.$$p||t,n=this;return e.$$p=null,l(i)?(a(n),s(n,n,function(e,s){var o=i(e,s);return(o===!1||o===t)&&f(n,e),[!1,n]})):o(n,"enum_for",["keep_if"],function e(){var t=e.$$s==null?this:e.$$s;return t.$size()},{$$s:n})}),n(M,"$keys",function(){var t=this;return Array.from(t.keys())}),n(M,"$length",function(){var t=this;return t.size}),n(M,"$merge",function e(){var s,i,a=e.$$p||t,r=this;return e.$$p=null,s=m(arguments),i=s,o(r.$dup(),"merge!",v(i),a.$to_proc())},-1),n(M,"$merge!",function e(){var c,l,h,p,g,f=e.$$p||t,o=this;e.$$p=null,p=m(arguments),l=p,a(o);for(c=0;c<l.length;++c)h=d["$coerce_to!"](l[c],i("Hash"),"to_hash"),f===t?s(h,!1,function(e,t){return r(o,e,t),[!1,!1]}):s(h,!1,function(e,t){var n=u(o,e);return n===void 0?(r(o,e,t),[!1,!1]):(r(o,e,f(e,n,t)),[!1,!1])});return o},-1),n(M,"$rassoc",function(n){var o=this;return s(o,t,function(e,s){return s["$=="](n)?[!0,[e,s]]:[!1,t]})}),n(M,"$rehash",function(){var n=this;return a(n),e.hash_rehash(n)}),n(M,"$reject",function e(){var n,a=e.$$p||t,i=this;return e.$$p=null,l(a)?(n=new Map,s(i,n,function(e,s){var o=a(e,s);return(o===!1||o===t)&&r(n,e,s),[!1,n]})):o(i,"enum_for",["reject"],function e(){var t=e.$$s==null?this:e.$$s;return t.$size()},{$$s:i})}),n(M,"$reject!",function e(){var i,r=e.$$p||t,n=this;return e.$$p=null,l(r)?(a(n),i=t,s(n,i,function(e,s){var o=r(e,s);return o!==!1&&o!==t&&(f(n,e),i=n),[!1,i]})):o(n,"enum_for",["reject!"],function e(){var t=e.$$s==null?this:e.$$s;return t.$size()},{$$s:n})}),n(M,"$replace",function(t){var n=this;return a(n),t=d["$coerce_to!"](t,i("Hash"),"to_hash"),n.$clear(),s(t,!1,function(e,t){return r(n,e,t),[!1,!1]}),l(t.$default_proc())?n["$default_proc="](t.$default_proc()):n["$default="](t.$default()),n}),n(M,"$select",function e(){var n,a=e.$$p||t,i=this;return e.$$p=null,l(a)?(n=new Map,s(i,n,function(e,s){var o=a(e,s);return o!==!1&&o!==t&&r(n,e,s),[!1,n]})):o(i,"enum_for",["select"],function e(){var t=e.$$s==null?this:e.$$s;return t.$size()},{$$s:i})}),n(M,"$select!",function e(){var i,r=e.$$p||t,n=this;return e.$$p=null,l(r)?(a(n),i=t,s(n,i,function(e,s){var o=r(e,s);return(o===!1||o===t)&&(f(n,e),i=n),[!1,i]})):o(n,"enum_for",["select!"],function e(){var t=e.$$s==null?this:e.$$s;return t.$size()},{$$s:n})}),n(M,"$shift",function(){var n=this;return a(n),s(n,t,function(e){return[!0,[e,f(n,e)]]})}),n(M,"$slice",function(){for(var s,o,i,c,l=this,c=m(arguments),i=c,a=new Map,n=0,d=i.length;n<d;n++)s=i[n],o=u(l,s),o!==void 0&&r(a,s,o);return a},-1),n(M,"$to_a",function(){var n=this,t=[];return s(n,t,function(e,n){return t.push([e,n]),[!1,t]})}),n(M,"$to_h",function n(){var i,a=n.$$p||t,s=this;return n.$$p=null,a!==t?o(s,"map",[],a.$to_proc()).$to_h():s.$$class===e.Hash?s:(i=new Map,j(s,i),i)}),n(M,"$to_hash",w),n(M,"$to_proc",function(){var t=this;return o(t,"proc",[],function e(t){var n=e.$$s==null?this:e.$$s;return t==null&&h.$raise(i("ArgumentError"),"no key given"),n["$[]"](t)},{$$arity:-1,$$s:t})}),n(M,"$transform_keys",function e(n){var a,i=e.$$p||t,c=this;return e.$$p=null,n==null&&(n=t),g(i)&&g(n)?o(c,"enum_for",["transform_keys"],function e(){var t=e.$$s==null?this:e.$$s;return t.$size()},{$$s:c}):(a=new Map,s(c,a,function(e,s){var o;return n!==t&&(o=u(n,e)),o===void 0&&i&&i!==t&&(o=i(e)),o===void 0&&(o=e),r(a,o,s),[!1,a]}))},-1),n(M,"$transform_keys!",function e(n){var l,c=e.$$p||t,i=this;return e.$$p=null,n==null&&(n=t),g(c)&&g(n)?o(i,"enum_for",["transform_keys!"],function e(){var t=e.$$s==null?this:e.$$s;return t.$size()},{$$s:i}):(a(i),l=new Map,s(i,i,function(e,s){var o;return n!==t&&(o=u(n,e)),o===void 0&&c&&c!==t&&(o=c(e)),o===void 0?[!1,i]:(u(l,e)||f(i,e),r(i,o,s),r(l,o,!0),[!1,i])}))},-1),n(M,"$transform_values",function e(){var n,a=e.$$p||t,i=this;return e.$$p=null,l(a)?(n=new Map,s(i,n,function(e,t){return r(n,e,a(t)),[!1,n]})):o(i,"enum_for",["transform_values"],function e(){var t=e.$$s==null?this:e.$$s;return t.$size()},{$$s:i})}),n(M,"$transform_values!",function e(){var i=e.$$p||t,n=this;return e.$$p=null,l(i)?(a(n),s(n,n,function(e,t){return r(n,e,i(t)),[!1,n]})):o(n,"enum_for",["transform_values!"],function e(){var t=e.$$s==null?this:e.$$s;return t.$size()},{$$s:n})}),n(M,"$values",function(){var t=this;return Array.from(t.values())}),c(M,"each_pair","each"),c(M,"eql?","=="),c(M,"filter","select"),c(M,"filter!","select!"),c(M,"include?","has_key?"),c(M,"indices","indexes"),c(M,"key","index"),c(M,"key?","has_key?"),c(M,"member?","has_key?"),c(M,"size","length"),c(M,"store","[]="),c(M,"to_s","inspect"),c(M,"update","merge!"),c(M,"value?","has_value?"),c(M,"values_at","indexes")}("::",Map,E)},Opal.modules["corelib/number"]=function(e){"use strict";var w=e.klass,r=e.Opal,o=e.Kernel,n=e.def,a=e.eqeqeq,s=e.truthy,p=e.rb_gt,A=e.not,h=e.rb_lt,c=e.alias,m=e.send2,f=e.find_super,b=e.send,v=e.rb_plus,u=e.rb_minus,d=e.eqeq,x=e.return_self,g=e.rb_divide,j=e.to_ary,y=e.rb_times,k=e.rb_le,O=e.rb_ge,C=e.return_val,l=e.const_set,E=e.top,_=[],i=e.nil,t=e.$$$;return e.add_stubs("require,bridge,raise,name,class,Float,respond_to?,coerce_to!,__id__,__coerced__,===,>,!,**,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?"),E.$require("corelib/numeric"),function(l,_,E){var M,F,S=w(l,_,"Number"),L=[S].concat(E);r.$bridge(Number,S),e.prop(S.$$prototype,"$$is_number",!0),S.$$is_number_class=!0,M=new Map,function(s){return n(s,"$allocate",function(){var n=this;return o.$raise(t("TypeError"),"allocator undefined for "+n.$name())}),e.udef(s,"$new"),i}(e.get_singleton_class(S),L),n(S,"$coerce",function(n){var s=this;if(n===i)o.$raise(t("TypeError"),"can't convert "+n.$class()+" into Float");else if(n.$$is_string)return[o.$Float(n),s];else if(n["$respond_to?"]("to_f"))return[r["$coerce_to!"](n,t("Float"),"to_f"),s];else if(n.$$is_number)return[n,s];else o.$raise(t("TypeError"),"can't convert "+n.$class()+" into Float")}),n(S,"$__id__",function(){var s,n=this;return n|0===n?n*2+1:M.has(n)?M.get(n):(s=e.uid(),M.set(n,s),s)}),n(S,"$hash",function(){var t=this;return t|0===t?t.$__id__():t.toString().$hash()}),n(S,"$+",function(t){var n=this;return t.$$is_number?n+t:n.$__coerced__("+",t)}),n(S,"$-",function(t){var n=this;return t.$$is_number?n-t:n.$__coerced__("-",t)}),n(S,"$*",function(t){var n=this;return t.$$is_number?n*t:n.$__coerced__("*",t)}),n(S,"$/",function(t){var n=this;return t.$$is_number?n/t:n.$__coerced__("/",t)}),n(S,"$%",function(n){var s=this;if(n.$$is_number){if(n==-(1/0))return n;if(n==0)o.$raise(t("ZeroDivisionError"),"divided by 0");else return n<0||s<0?(s%n+n)%n:s%n}else return s.$__coerced__("%",n)}),n(S,"$&",function(t){var n=this;return t.$$is_number?n&t:n.$__coerced__("&",t)}),n(S,"$|",function(t){var n=this;return t.$$is_number?n|t:n.$__coerced__("|",t)}),n(S,"$^",function(t){var n=this;return t.$$is_number?n^t:n.$__coerced__("^",t)}),n(S,"$<",function(t){var n=this;return t.$$is_number?n<t:n.$__coerced__("<",t)}),n(S,"$<=",function(t){var n=this;return t.$$is_number?n<=t:n.$__coerced__("<=",t)}),n(S,"$>",function(t){var n=this;return t.$$is_number?n>t:n.$__coerced__(">",t)}),n(S,"$>=",function(t){var n=this;return t.$$is_number?n>=t:n.$__coerced__(">=",t)}),F=function(e,t){return t.$$is_number?isNaN(e)||isNaN(t)?i:e>t?1:e<t?-1:0:e.$__coerced__("<=>",t)},n(S,"$<=>",function(s){var o=this;try{return F(o,s)}catch(n){if(e.rescue(n,[t("ArgumentError")]))try{return i}finally{e.pop_exception(n)}else throw n}}),n(S,"$<<",function(n){var s=this;return n=r["$coerce_to!"](n,t("Integer"),"to_int"),n>0?s<<n:s>>-n}),n(S,"$>>",function(n){var s=this;return n=r["$coerce_to!"](n,t("Integer"),"to_int"),n>0?s>>n:s<<-n}),n(S,"$[]",function(n){var s=this;return n=r["$coerce_to!"](n,t("Integer"),"to_int"),n<0?0:n>=32?s<0?1:0:s>>n&1}),n(S,"$+@",function(){var t=this;return+t}),n(S,"$-@",function(){var t=this;return-t}),n(S,"$~",function(){var t=this;return~t}),n(S,"$**",function(n){var o=this;return a(t("Integer"),n)?A(t("Integer")["$==="](o))||s(p(n,0))?Math.pow(o,n):t("Rational").$new(o,1)["$**"](n):s(h(o,0))&&(a(t("Float"),n)||a(t("Rational"),n))?t("Complex").$new(o,0)["$**"](n.$to_f()):s(n.$$is_number!=null)?Math.pow(o,n):o.$__coerced__("**",n)}),n(S,"$==",function(t){var n=this;return t.$$is_number?n.valueOf()===t.valueOf():!!t["$respond_to?"]("==")&&t["$=="](n)}),c(S,"===","=="),n(S,"$abs",function(){var t=this;return Math.abs(t)}),n(S,"$abs2",function(){var t=this;return Math.abs(t*t)}),n(S,"$allbits?",function(n){var s=this;return n=r["$coerce_to!"](n,t("Integer"),"to_int"),(s&n)==n}),n(S,"$anybits?",function(n){var s=this;return n=r["$coerce_to!"](n,t("Integer"),"to_int"),(s&n)!==0}),n(S,"$angle",function(){var t=this;return s(t["$nan?"]())?t:t==0?1/t>0?0:Math.PI:t<0?Math.PI:0}),n(S,"$bit_length",function(){if(n=this,a(t("Integer"),n)||o.$raise(t("NoMethodError").$new("undefined method `bit_length` for "+n+":Float","bit_length")),n===0||n===-1)return 0;for(var n,s=0,i=n<0?~n:n;i!=0;)s+=1,i>>>=1;return s}),n(S,"$ceil",function(t){if(o=this,t==null&&(t=0),n=o.$to_f(),n%1===0&&t>=0)return n;var n,o,i=Math.pow(10,t),s=Math.ceil(n*i)/i;return n%1===0&&(s=Math.round(s)),s},-1),n(S,"$chr",function(n){var s=this;return e.enc(String.fromCharCode(s),n||"BINARY")},-1),n(S,"$denominator",function e(){var n=e.$$p||i,t=this;return e.$$p=null,s(t["$nan?"]())||s(t["$infinite?"]())?1:m(t,f(t,"denominator",e,!1,!0),"denominator",[],n)}),n(S,"$downto",function e(n){var c,l=e.$$p||i,r=this;if(e.$$p=null,l===i)return b(r,"enum_for",["downto",n],function e(){var i=e.$$s==null?this:e.$$s;return a(t("Numeric"),n)||o.$raise(t("ArgumentError"),"comparison of "+i.$class()+" with "+n.$class()+" failed"),s(p(n,i))?0:v(u(i,n),1)},{$$s:r});n.$$is_number||o.$raise(t("ArgumentError"),"comparison of "+r.$class()+" with "+n.$class()+" failed");for(c=r;c>=n;c--)l(c);return r}),n(S,"$equal?",function(t){var n=this,o=i;return s(o=n["$=="](t))?o:isNaN(n)&&isNaN(t)}),n(S,"$even?",function(){var t=this;return t%2===0}),n(S,"$floor",function(t){if(o=this,t==null&&(t=0),n=o.$to_f(),n%1===0&&t>=0)return n;var n,o,i=Math.pow(10,t),s=Math.floor(n*i)/i;return n%1===0&&(s=Math.round(s)),s},-1),n(S,"$gcd",function(n){r=this,a(t("Integer"),n)||o.$raise(t("TypeError"),"not an integer");for(var r,c,s=Math.abs(r),i=Math.abs(n);s>0;)c=s,s=i%s,i=c;return i}),n(S,"$gcdlcm",function(t){var n=this;return[n.$gcd(t),n.$lcm(t)]}),n(S,"$integer?",function(){var t=this;return t%1===0}),n(S,"$is_a?",function e(n){var o=e.$$p||i,s=this;return e.$$p=null,!!(d(n,t("Integer"))&&a(t("Integer"),s))||!!(d(n,t("Integer"))&&a(t("Integer"),s))||!!(d(n,t("Float"))&&a(t("Float"),s))||m(s,f(s,"is_a?",e,!1,!0),"is_a?",[n],o)}),n(S,"$instance_of?",function e(n){var o=e.$$p||i,s=this;return e.$$p=null,!!(d(n,t("Integer"))&&a(t("Integer"),s))||!!(d(n,t("Integer"))&&a(t("Integer"),s))||!!(d(n,t("Float"))&&a(t("Float"),s))||m(s,f(s,"instance_of?",e,!1,!0),"instance_of?",[n],o)}),n(S,"$lcm",function(n){var s=this;return a(t("Integer"),n)||o.$raise(t("TypeError"),"not an integer"),s==0||n==0?0:Math.abs(s*n/s.$gcd(n))}),n(S,"$next",function(){var t=this;return t+1}),n(S,"$nobits?",function(n){var s=this;return n=r["$coerce_to!"](n,t("Integer"),"to_int"),(s&n)==0}),n(S,"$nonzero?",function(){var t=this;return t==0?i:t}),n(S,"$numerator",function e(){var n=e.$$p||i,t=this;return e.$$p=null,s(t["$nan?"]())||s(t["$infinite?"]())?t:m(t,f(t,"numerator",e,!1,!0),"numerator",[],n)}),n(S,"$odd?",function(){var t=this;return t%2!==0}),n(S,"$ord",x),n(S,"$pow",function(n,s){var i=this;return i==0&&o.$raise(t("ZeroDivisionError"),"divided by 0"),s===void 0?i["$**"](n):(t("Integer")["$==="](n)||o.$raise(t("TypeError"),"Integer#pow() 2nd argument not allowed unless a 1st argument is integer"),n<0&&o.$raise(t("TypeError"),"Integer#pow() 1st argument cannot be negative when 2nd argument specified"),t("Integer")["$==="](s)||o.$raise(t("TypeError"),"Integer#pow() 2nd argument not allowed unless all arguments are integers"),s===0&&o.$raise(t("ZeroDivisionError"),"divided by 0"),i["$**"](n)["$%"](s))},-2),n(S,"$pred",function(){var t=this;return t-1}),n(S,"$quo",function e(n){var o=e.$$p||i,s=this;return e.$$p=null,a(t("Integer"),s)?m(s,f(s,"quo",e,!1,!0),"quo",[n],o):g(s,n)}),n(S,"$rationalize",function(n){var c,h,r=this,d=i,l=i;return arguments.length>1&&o.$raise(t("ArgumentError"),"wrong number of arguments ("+arguments.length+" for 0..1)"),a(t("Integer"),r)?t("Rational").$new(r,1):s(r["$infinite?"]())?o.$raise(t("FloatDomainError"),"Infinity"):s(r["$nan?"]())?o.$raise(t("FloatDomainError"),"NaN"):s(n==null)?(h=t("Math").$frexp(r),c=j(h),d=c[0]==null?i:c[0],l=c[1]==null?i:c[1],h,d=t("Math").$ldexp(d,t(t("Float"),"MANT_DIG")).$to_i(),l=u(l,t(t("Float"),"MANT_DIG")),t("Rational").$new(y(2,d),1["$<<"](u(1,l))).$rationalize(t("Rational").$new(1,1["$<<"](u(1,l))))):r.$to_r().$rationalize(n)},-1),n(S,"$remainder",function(t){var n=this;return u(n,y(t,g(n,t).$truncate()))}),n(S,"$round",function(n){var m,f,b,y,c=this,_=i,l=i;if(a(t("Integer"),c))return s(n==null)?c:(a(t("Float"),n)&&s(n["$infinite?"]())&&o.$raise(t("RangeError"),"Infinity"),n=r["$coerce_to!"](n,t("Integer"),"to_int"),s(h(n,t(t("Integer"),"MIN")))&&o.$raise(t("RangeError"),"out of bounds"),s(n>=0)?c:(n=n["$-@"](),.415241*n-.125>c.$size()?0:(f=Math.pow(10,n),y=Math.floor((Math.abs(c)+f/2)/f)*f,c<0?-y:y)));else{if(s(c["$nan?"]())&&s(n==null)&&o.$raise(t("FloatDomainError"),"NaN"),n=r["$coerce_to!"](n||0,t("Integer"),"to_int"),s(k(n,0)))s(c["$nan?"]())?o.$raise(t("RangeError"),"NaN"):s(c["$infinite?"]())&&o.$raise(t("FloatDomainError"),"Infinity");else if(d(n,0))return Math.round(c);else if(s(c["$nan?"]())||s(c["$infinite?"]()))return c;return b=t("Math").$frexp(c),m=j(b),_=m[0]==null?i:m[0],l=m[1]==null?i:m[1],b,s(O(n,u(v(t(t("Float"),"DIG"),2),s(p(l,0))?g(l,4):u(g(l,3),1))))?c:s(h(n,(s(p(l,0))?v(g(l,3),1):g(l,4))["$-@"]()))?0:Math.round(c*Math.pow(10,n))/Math.pow(10,n)}},-1),n(S,"$times",function e(){var n,o=e.$$p||i,t=this;if(e.$$p=null,!s(o))return b(t,"enum_for",["times"],function e(){var t=e.$$s==null?this:e.$$s;return t},{$$s:t});for(n=0;n<t;n++)o(n);return t}),n(S,"$to_f",x),n(S,"$to_i",function(){var t=this;return t<0?Math.ceil(t):Math.floor(t)}),n(S,"$to_r",function(){var n,r,c=this,s=i,o=i;return a(t("Integer"),c)?t("Rational").$new(c,1):(r=t("Math").$frexp(c),n=j(r),s=n[0]==null?i:n[0],o=n[1]==null?i:n[1],r,s=t("Math").$ldexp(s,t(t("Float"),"MANT_DIG")).$to_i(),o=u(o,t(t("Float"),"MANT_DIG")),y(s,t(t("Float"),"RADIX")["$**"](o)).$to_r())}),n(S,"$to_s",function(n){var i=this;return n==null&&(n=10),n=r["$coerce_to!"](n,t("Integer"),"to_int"),(s(h(n,2))||s(p(n,36)))&&o.$raise(t("ArgumentError"),"invalid radix "+n),d(i,0)&&s(1/i===-(1/0))?"-0.0":i.toString(n)},-1),n(S,"$truncate",function(t){if(o=this,t==null&&(t=0),n=o.$to_f(),n%1===0&&t>=0)return n;var n,o,i=Math.pow(10,t),s=parseInt(n*i,10)/i;return n%1===0&&(s=Math.round(s)),s},-1),n(S,"$digits",function(n){i=this,n==null&&(n=10),s(h(i,0))&&o.$raise(t(t("Math"),"DomainError"),"out of domain"),n=r["$coerce_to!"](n,t("Integer"),"to_int"),s(h(n,2))&&o.$raise(t("ArgumentError"),"invalid radix "+n),i!=parseInt(i)&&o.$raise(t("NoMethodError"),"undefined method `digits' for "+i.$inspect());var i,a=i,c=[];if(i==0)return[0];for(;a!=0;)c.push(a%n),a=parseInt(a/n,10);return c},-1),n(S,"$divmod",function e(n){var r=e.$$p||i,a=this;return e.$$p=null,s(a["$nan?"]())||s(n["$nan?"]())?o.$raise(t("FloatDomainError"),"NaN"):s(a["$infinite?"]())?o.$raise(t("FloatDomainError"),"Infinity"):m(a,f(a,"divmod",e,!1,!0),"divmod",[n],r)}),n(S,"$upto",function e(n){var c,l=e.$$p||i,r=this;if(e.$$p=null,l===i)return b(r,"enum_for",["upto",n],function e(){var i=e.$$s==null?this:e.$$s;return a(t("Numeric"),n)||o.$raise(t("ArgumentError"),"comparison of "+i.$class()+" with "+n.$class()+" failed"),s(h(n,i))?0:v(u(n,i),1)},{$$s:r});n.$$is_number||o.$raise(t("ArgumentError"),"comparison of "+r.$class()+" with "+n.$class()+" failed");for(c=r;c<=n;c++)l(c);return r}),n(S,"$zero?",function(){var t=this;return t==0}),n(S,"$size",C(4)),n(S,"$nan?",function(){var t=this;return isNaN(t)}),n(S,"$finite?",function(){var t=this;return t!=1/0&&t!=-(1/0)&&!isNaN(t)}),n(S,"$infinite?",function(){var t=this;return t==1/0?+1:t==-(1/0)?-1:i}),n(S,"$positive?",function(){var t=this;return t!=0&&(t==1/0||1/t>0)}),n(S,"$negative?",function(){var t=this;return t==-(1/0)||1/t<0});function T(e){var t=new Uint8Array(8);return new DataView(t.buffer).setFloat64(0,e,!0),t}function z(e){return new DataView(e.buffer).getFloat64(0,!0)}function D(e){for(var t=T(e),n=0;n<t.length;n++)if(t[n]===255)t[n]=0;else{t[n]++;break}return z(t)}function N(e){for(var t=T(e),n=0;n<t.length;n++)if(t[n]===0)t[n]=255;else{t[n]--;break}return z(t)}return n(S,"$next_float",function(){var n=this;return d(n,t(t("Float"),"INFINITY"))?t(t("Float"),"INFINITY"):s(n["$nan?"]())?t(t("Float"),"NAN"):s(O(n,0))?D(Math.abs(n)):N(n)}),n(S,"$prev_float",function(){var n=this;return d(n,t(t("Float"),"INFINITY")["$-@"]())?t(t("Float"),"INFINITY")["$-@"]():s(n["$nan?"]())?t(t("Float"),"NAN"):s(p(n,0))?N(n):-D(Math.abs(n))}),c(S,"arg","angle"),c(S,"eql?","=="),c(S,"fdiv","/"),c(S,"inspect","to_s"),c(S,"kind_of?","is_a?"),c(S,"magnitude","abs"),c(S,"modulo","%"),c(S,"object_id","__id__"),c(S,"phase","angle"),c(S,"succ","next"),c(S,"to_int","to_i")}("::",t("Numeric"),_),l("::","Fixnum",t("Number")),function(s,i,a){var c=w(s,i,"Integer"),d=[c].concat(a);return c.$$is_number_class=!0,c.$$is_integer_class=!0,function(s,i){var a=[s].concat(i),c=e.$r(a);return n(s,"$allocate",function(){var n=this;return o.$raise(t("TypeError"),"allocator undefined for "+n.$name())}),e.udef(s,"$new"),n(s,"$sqrt",function(n){return n=r["$coerce_to!"](n,t("Integer"),"to_int"),n<0&&o.$raise(t(t("Math"),"DomainError"),'Numerical argument is out of domain - "isqrt"'),parseInt(Math.sqrt(n),10)}),n(s,"$try_convert",function(t){var n=this;return c("Opal")["$coerce_to?"](t,n,"to_int")})}(e.get_singleton_class(c),d),l(c,"MAX",Math.pow(2,30)-1),l(c,"MIN",-Math.pow(2,30))}("::",t("Numeric"),_),function(s,i,a){var r=w(s,i,"Float"),c=[r].concat(a);return r.$$is_number_class=!0,function(s){return n(s,"$allocate",function(){var n=this;return o.$raise(t("TypeError"),"allocator undefined for "+n.$name())}),e.udef(s,"$new"),n(s,"$===",function(t){return!!t.$$is_number})}(e.get_singleton_class(r),c),l(r,"INFINITY",1/0),l(r,"MAX",Number.MAX_VALUE),l(r,"MIN",Number.MIN_VALUE),l(r,"NAN",NaN),l(r,"DIG",15),l(r,"MANT_DIG",53),l(r,"RADIX",2),l(r,"EPSILON",Number.EPSILON||22204460492503130808472633361816e-47)}("::",t("Numeric"),_)},Opal.modules["corelib/range"]=function(e){var j=e.klass,t=e.truthy,i=e.Kernel,o=e.def,r=e.not,c=e.send2,l=e.find_super,k=e.lambda,a=e.send,m=e.rb_ge,d=e.rb_gt,u=e.eqeq,h=e.rb_le,f=e.rb_lt,E=e.eqeqeq,O=e.return_ivar,y=e.rb_minus,b=e.Opal,v=e.rb_divide,p=e.rb_plus,_=e.rb_times,w=e.thrower,g=e.alias,x=e.top,C=[],n=e.nil,s=e.$$$;return e.add_stubs("require,include,attr_reader,raise,nil?,<=>,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?"),x.$require("corelib/enumerable"),function(x,C,A){var S=j(x,C,"Range"),z=[S].concat(A),M=e.$r(z),F=S.$$prototype;F.begin=F.end=F.excl=n,S.$include(s("Enumerable")),S.$$prototype.$$is_range=!0,S.$attr_reader("begin","end"),o(S,"$initialize",function(n,o,a){var r=this;return a==null&&(a=!1),t(r.begin)&&i.$raise(s("NameError"),"'initialize' called twice"),t(n["$<=>"](o))||t(n["$nil?"]())||t(o["$nil?"]())||i.$raise(s("ArgumentError"),"bad value for range"),r.begin=n,r.end=o,r.excl=a},-3),o(S,"$===",function(n){var s=this;return!t(n.$$is_range)&&s["$cover?"](n)});function T(e){return e.begin===n||e.end===n||e.begin===-(1/0)||e.end===1/0||e.begin===1/0||e.end===-(1/0)}return o(S,"$count",function e(){var i=e.$$p||n,o=this;return e.$$p=null,r(i!==n)&&t(T(o))?s(s("Float"),"INFINITY"):c(o,l(o,"count",e,!1,!0),"count",[],i)}),o(S,"$to_a",function e(){var a=e.$$p||n,o=this;return e.$$p=null,t(T(o))&&i.$raise(s("TypeError"),"cannot convert endless range to an array"),c(o,l(o,"to_a",e,!1,!0),"to_a",[],a)}),o(S,"$cover?",function(s){var o=this,i=n,c=n,l=n,g=n,p=n,v=n,j=n,b=n,i=k(function(s,o){var i=n;return s==null&&(s=n),o==null&&(o=n),t(i=s["$<=>"](o))?i:1});return t(s.$$is_range)?(c=s.$begin(),l=s.$end(),g=s["$exclude_end?"](),!(t(o.begin)&&t(c["$nil?"]())||t(o.end)&&t(l["$nil?"]())||t(c)&&t(l)&&t(a(i.$call(c,l),"then",[],function(s){return s==null&&(s=n),t(g)?m(s,0):d(s,0)}))||t(c)&&r(o["$cover?"](c)))&&(p=i.$call(o.end,l),u(o.excl,g)?m(p,0):t(o.excl)?d(p,0):!!t(m(p,0))||(v=s.$max(),t(j=v["$nil?"]()["$!"]())?h(i.$call(v,o.end),0):j))):!(t(o.begin)&&t(d(i.$call(o.begin,s),0)))&&(!!t(o.end["$nil?"]())||(b=i.$call(s,o.end),t(o.excl)?f(b,0):h(b,0)))}),o(S,"$each",function o(){var h,g,d=o.$$p||n,c=this,l=n,m=n,p=n;if(o.$$p=null,d===n)return a(c,"enum_for",["each"],function e(){var t=e.$$s==null?this:e.$$s;return t.$size()},{$$s:c});if(c.begin.$$is_number&&c.end.$$is_number){(c.begin%1!==0||c.end%1!==0)&&i.$raise(s("TypeError"),"can't iterate from Float");for(h=c.begin,g=c.end+(t(c.excl)?0:1);h<g;h++)d(h);return c}if(c.begin.$$is_string&&c.end.$$is_string)return a(c.begin,"upto",[c.end,c.excl],d.$to_proc()),c;for(l=c.begin,m=c.end,t(l["$respond_to?"]("succ"))||i.$raise(s("TypeError"),"can't iterate from "+l.$class());t(t(p=c.end["$nil?"]())?p:f(l["$<=>"](m),0));)e.yield1(d,l),l=l.$succ();return r(c.excl)&&u(l,m)&&e.yield1(d,l),c}),o(S,"$eql?",function(o){var i=this,a=n,r=n;return!!E(s("Range"),o)&&(t(a=t(r=i.excl["$==="](o["$exclude_end?"]()))?i.begin["$eql?"](o.$begin()):r)?i.end["$eql?"](o.$end()):a)}),o(S,"$exclude_end?",O("excl")),o(S,"$first",function e(o){var r=e.$$p||n,a=this;return e.$$p=null,t(a.begin["$nil?"]())&&i.$raise(s("RangeError"),"cannot get the minimum of beginless range"),t(o==null)?a.begin:c(a,l(a,"first",e,!1,!0),"first",[o],r)},-1),o(S,"$include?",function e(o){var u=e.$$p||n,i=this,r=n,d=n;if(e.$$p=null,t(i.begin.$$is_number||i.end.$$is_number)||t(i.begin["$is_a?"](s("Time")))||t(i.end["$is_a?"](s("Time")))||t(s("Integer").$try_convert(i.begin))||t(s("Integer").$try_convert(i.end)))return i["$cover?"](o);if(t(i.begin.$$is_string||i.end.$$is_string)){if(t(i.begin.$$is_string&&i.end.$$is_string))return a(i.begin.$upto(i.end,i.excl),"any?",[],function(t){return t==null&&(t=n),t["$=="](o)});if(t(i.begin["$nil?"]()))return r=o["$<=>"](i.end),t(d=r["$nil?"]()["$!"]())?t(i.excl)?f(r,0):h(r,0):d;if(t(i.end["$nil?"]()))return r=i.begin["$<=>"](o),t(d=r["$nil?"]()["$!"]())?h(r,0):d}return c(i,l(i,"include?",e,!1,!0),"include?",[o],u)}),o(S,"$last",function(n){var o=this;return t(o.end["$nil?"]())&&i.$raise(s("RangeError"),"cannot get the maximum of endless range"),t(n==null)?o.end:o.$to_a().$last(n)},-1),o(S,"$max",function e(){var a=e.$$p||n,o=this;return e.$$p=null,t(o.end["$nil?"]())?i.$raise(s("RangeError"),"cannot get the maximum of endless range"):a!==n?c(o,l(o,"max",e,!1,!0),"max",[],a):r(o.begin["$nil?"]())&&(t(d(o.begin,o.end))||t(o.excl)&&u(o.begin,o.end))?n:o.excl?o.end-1:o.end}),o(S,"$min",function e(){var a=e.$$p||n,o=this;return e.$$p=null,t(o.begin["$nil?"]())?i.$raise(s("RangeError"),"cannot get the minimum of beginless range"):a!==n?c(o,l(o,"min",e,!1,!0),"min",[],a):r(o.end["$nil?"]())&&(t(d(o.begin,o.end))||t(o.excl)&&u(o.begin,o.end))?n:o.begin}),o(S,"$size",function(){var o,i=this.begin,t=this.end;if(s("Numeric")["$==="](i)){{if(s("Numeric")["$==="](t))return o=y(t,i),o<0?0:(this.excl||(o+=1),s("Float")["$==="](i)||s("Float")["$==="](t)?Math.floor(o):o);if(t===n)return 1/0}}else if(i===n&&s("Numeric")["$==="](t))return 1/0;return n}),o(S,"$step",function o(c){var f=o.$$p||n,l=this,g=n,h=n;o.$$p=null;function j(){c==null?c=1:c.$$is_number||(c=b["$coerce_to!"](c,s("Integer"),"to_int")),c<0?i.$raise(s("ArgumentError"),"step can't be negative"):c===0&&i.$raise(s("ArgumentError"),"step can't be 0")}function y(){if(!l.begin["$respond_to?"]("succ"))return n;if(l.begin.$$is_string&&l.end.$$is_string)return n;if(c%1===0)return v(l.$size(),c).$ceil();var o,e=l.begin,t=l.end,i=Math.abs,r=Math.floor,a=(i(e)+i(t)+i(t-e))/i(c)*s(s("Float"),"EPSILON");return a>.5&&(a=.5),l.excl?(o=r((t-e)/c-a),o*c+e<t&&o++):o=r((t-e)/c+a)+1,o}return f!==n?(j(),t(l.begin.$$is_number&&l.end.$$is_number)?(h=0,function(){try{var s=w("break");return a(l,"loop",[],function o(){var i=o.$$s==null?this:o.$$s,a=n;return i.begin==null&&(i.begin=n),i.excl==null&&(i.excl=n),i.end==null&&(i.end=n),a=p(i.begin,_(h,c)),t(i.excl)?t(m(a,i.end))&&s.$throw(n,o.$$is_lambda):t(d(a,i.end))&&s.$throw(n,o.$$is_lambda),e.yield1(f,a),h=p(h,1)},{$$s:l})}catch(e){if(e===s)return e.$v;throw e}finally{s.is_orphan=!0}}()):(l.begin.$$is_string&&l.end.$$is_string&&c%1!==0&&i.$raise(s("TypeError"),"no implicit conversion to float from string"),a(l,"each_with_index",[],function(s,o){return s==null&&(s=n),o==null&&(o=n),u(o["$%"](c),0)?e.yield1(f,s):n})),l):(t(l.begin["$is_a?"](M("Numeric")))||t(l.begin["$nil?"]()))&&(t(l.end["$is_a?"](M("Numeric")))||t(l.end["$nil?"]()))&&r(t(g=l.begin["$nil?"]())?l.end["$nil?"]():g)?s(s("Enumerator"),"ArithmeticSequence").$new(l,c,"step"):a(l,"enum_for",["step",c],function(){return j(),y()})},-1),o(S,"$%",function(n){var o=this;return t(o.begin["$is_a?"](M("Numeric")))&&t(o.end["$is_a?"](M("Numeric")))?s(s("Enumerator"),"ArithmeticSequence").$new(o,n,"%"):o.$step(n)}),o(S,"$bsearch",function e(){var r=e.$$p||n,o=this;return e.$$p=null,r!==n?(t(T(o)&&(o.begin.$$is_number||o.end.$$is_number))&&i.$raise(s("NotImplementedError"),"Can't #bsearch an infinite range"),t(o.begin.$$is_number&&o.end.$$is_number)||i.$raise(s("TypeError"),"can't do binary search for "+o.begin.$class()),a(o.$to_a(),"bsearch",[],r.$to_proc())):o.$enum_for("bsearch")}),o(S,"$to_s",function(){var o=this,s=n;return""+(t(s=o.begin)?s:"")+(t(o.excl)?"...":"..")+(t(s=o.end)?s:"")}),o(S,"$inspect",function(){var s=this,o=n;return""+(t(o=s.begin)?s.begin.$inspect():o)+(t(s.excl)?"...":"..")+(t(o=s.end)?s.end.$inspect():o)}),o(S,"$marshal_load",function(t){var n=this;return n.begin=t["$[]"]("begin"),n.end=t["$[]"]("end"),n.excl=t["$[]"]("excl")}),o(S,"$hash",function(){var t=this;return[s("Range"),t.begin,t.end,t.excl].$hash()}),g(S,"==","eql?"),g(S,"member?","include?")}("::",null,C)},Opal.modules["corelib/proc"]=function(e){var i=e.slice,g=e.each_ivar,p=e.klass,c=e.truthy,o=e.Kernel,f=e.defs,n=e.def,r=e.send,l=e.to_a,d=e.return_self,u=e.ensure_kwargs,h=e.hash_get,m=e.Opal,a=e.alias,t=e.nil,s=e.$$$;return e.add_stubs("raise,proc,call,to_proc,new,source_location,coerce_to!,dup"),function(v,b){var j=p(v,b,"Proc");e.prop(j.$$prototype,"$$is_proc",!0),e.prop(j.$$prototype,"$$is_lambda",!1),f(j,"$new",function e(){var n=e.$$p||t;return e.$$p=null,c(n)||o.$raise(s("ArgumentError"),"tried to create a Proc object without a block"),n});function y(e,t){if(e.$$ret)try{return e.apply(null,t)}catch(t){if(t===e.$$ret)return t.$v;throw t}else return e.apply(null,t)}function _(t,n){if(t.$$brk)try{return e.yieldX(t,n)}catch(e){if(e===t.$$brk)return e.$v;throw e}else return e.yieldX(t,n)}return n(j,"$call",function e(){var o,r,a=e.$$p||t,s=this;return e.$$p=null,r=i(arguments),o=r,a!==t&&(s.$$p=a),s.$$is_lambda?y(s,o):_(s,o)},-1),n(j,"$>>",function e(n){var a=e.$$p||t,s=this;return e.$$p=null,r(o,"proc",[],function e(){var o,a,d=e.$$p||t,u=e.$$s==null?this:e.$$s,c=t;return e.$$p=null,o=i(arguments),a=o,c=r(u,"call",l(a),d.$to_proc()),n.$call(c)},{$$arity:-1,$$s:s})}),n(j,"$<<",function e(n){var a=e.$$p||t,s=this;return e.$$p=null,r(o,"proc",[],function e(){var o,a,d=e.$$p||t,u=e.$$s==null?this:e.$$s,c=t;return e.$$p=null,o=i(arguments),a=o,c=r(n,"call",l(a),d.$to_proc()),u.$call(c)},{$$arity:-1,$$s:s})}),n(j,"$to_proc",d),n(j,"$lambda?",function(){var t=this;return!!t.$$is_lambda}),n(j,"$arity",function(){var t=this;return t.$$is_curried?-1:t.$$arity!=null?t.$$arity:t.length}),n(j,"$source_location",function(){var n=this,s=t;return n.$$is_curried?t:c(s=n.$$source_location)?s:t}),n(j,"$binding",function(){var i,n=this;return n.$$is_curried&&o.$raise(s("ArgumentError"),"Can't create Binding"),c((i=s("::","Binding","skip_raise"))?"constant":t)?s("Binding").$new(t,[],n.$$s,n.$source_location()):t}),n(j,"$parameters",function(t){var s,o,i,a,r,n=this;if(t=u(t),i=h(t,"lambda"),n.$$is_curried)return[["rest"]];if(n.$$parameters){if(i??n.$$is_lambda)return n.$$parameters;a=[];for(o=0,r=n.$$parameters.length;o<r;o++)s=n.$$parameters[o],s[0]==="req"&&(s=["opt",s[1]]),a.push(s);return a}else return[]},-1),n(j,"$curry",function(t){var n=this;t===void 0?t=n.length:(t=m["$coerce_to!"](t,s("Integer"),"to_int"),n.$$is_lambda&&t!==n.length&&o.$raise(s("ArgumentError"),"wrong number of arguments ("+t+" for "+n.length+")"));function a(){var e,r=i(arguments),c=r.length;return c>t&&n.$$is_lambda&&!n.$$is_curried&&o.$raise(s("ArgumentError"),"wrong number of arguments ("+c+" for "+t+")"),c>=t?n.$call.apply(n,r):(e=function(){return a.apply(null,r.concat(i(arguments)))},e.$$is_lambda=n.$$is_lambda,e.$$is_curried=!0,e)}return a.$$is_lambda=n.$$is_lambda,a.$$is_curried=!0,a},-1),n(j,"$dup",function(){var t=this,s=t.$$original_proc||t,n=function(){return s.apply(this,arguments)};return g(t,function(e){n[e]=t[e]}),n}),a(j,"===","call"),a(j,"clone","dup"),a(j,"yield","call"),a(j,"[]","call")}("::",Function)},Opal.modules["corelib/method"]=function(e){var i=e.klass,t=e.def,s=e.truthy,a=e.slice,r=e.alias,c=e.Kernel,l=e.send,d=e.to_a,n=e.nil,o=e.$$$;return e.add_stubs("attr_reader,arity,curry,>>,<<,new,class,join,source_location,call,raise,bind,to_proc"),function(e,c){var l=i(e,c,"Method"),d=l.$$prototype;return d.method=d.receiver=d.owner=d.name=n,l.$attr_reader("owner","receiver","name"),t(l,"$initialize",function(t,n,s,o){var i=this;return i.receiver=t,i.owner=n,i.name=o,i.method=s}),t(l,"$arity",function(){var t=this;return t.method.$arity()}),t(l,"$parameters",function(){var t=this;return t.method.$$parameters}),t(l,"$source_location",function(){var o=this,t=n;return s(t=o.method.$$source_location)?t:["(eval)",0]}),t(l,"$comments",function(){var o=this,t=n;return s(t=o.method.$$comments)?t:[]}),t(l,"$call",function e(){var o,i,r=e.$$p||n,s=this;return e.$$p=null,o=a(arguments),i=o,s.method.$$p=r,s.method.apply(s.receiver,i)},-1),t(l,"$curry",function(t){var n=this;return n.method.$curry(t)},-1),t(l,"$>>",function(t){var n=this;return n.method["$>>"](t)}),t(l,"$<<",function(t){var n=this;return n.method["$<<"](t)}),t(l,"$unbind",function(){var t=this;return o("UnboundMethod").$new(t.receiver.$class(),t.owner,t.method,t.name)}),t(l,"$to_proc",function(){var t=this,n=t.$call.bind(t);return n.$$unbound=t.method,n.$$is_lambda=!0,n.$$arity=t.method.$$arity==null?t.method.length:t.method.$$arity,n.$$parameters=t.method.$$parameters,n}),t(l,"$inspect",function(){var t=this;return"#<"+t.$class()+": "+t.receiver.$class()+"#"+t.name+" (defined in "+t.owner+" in "+t.$source_location().$join(":")+")>"}),r(l,"[]","call"),r(l,"===","call")}("::",null),function(r,u){var h=i(r,u,"UnboundMethod"),m=h.$$prototype;return m.method=m.owner=m.name=m.source=n,h.$attr_reader("source","owner","name"),t(h,"$initialize",function(t,n,s,o){var i=this;return i.source=t,i.owner=n,i.method=s,i.name=o,i.$$method=s}),t(h,"$arity",function(){var t=this;return t.method.$arity()}),t(h,"$parameters",function(){var t=this;return t.method.$$parameters}),t(h,"$source_location",function(){var o=this,t=n;return s(t=o.method.$$source_location)?t:["(eval)",0]}),t(h,"$comments",function(){var o=this,t=n;return s(t=o.method.$$comments)?t:[]}),t(h,"$bind",function(n){var s=this;if(s.owner.$$is_module||e.is_a(n,s.owner))return o("Method").$new(n,s.owner,s.method,s.name);c.$raise(o("TypeError"),"can't bind singleton method to a different class (expected "+n+".kind_of?("+s.owner+" to be true)")}),t(h,"$bind_call",function e(t){var o,i,r=e.$$p||n,c=this;return e.$$p=null,o=a(arguments,1),i=o,l(c.$bind(t),"call",d(i),r.$to_proc())},-2),t(h,"$inspect",function(){var t=this;return"#<"+t.$class()+": "+t.source+"#"+t.name+" (defined in "+t.owner+" in "+t.$source_location().$join(":")+")>"})}("::",null)},Opal.modules["corelib/variables"]=function(e){var t=e.gvars,n=e.const_set,o=e.Object,s=e.nil;return e.add_stubs("new"),t["&"]=t["~"]=t["`"]=t["'"]=s,t.LOADED_FEATURES=t['"']=e.loaded_features,t.LOAD_PATH=t[":"]=[],t["/"]=`
`,t[","]=s,n("::","ARGV",[]),n("::","ARGF",o.$new()),n("::","ENV",new Map),t.VERBOSE=!1,t.DEBUG=!1,t.SAFE=0},Opal.modules["corelib/io"]=function(e){var f,g,O=e.klass,r=e.const_set,m=e.not,n=e.truthy,s=e.def,x=e.return_ivar,b=e.return_val,u=e.slice,c=e.Kernel,o=e.gvars,d=e.send,h=e.to_a,l=e.rb_plus,p=e.neqeq,w=e.range,i=e.eqeq,_=e.to_ary,y=e.rb_gt,j=e.assign_ivar_val,v=e.alias,t=e.nil,a=e.$$$;return e.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(f,g){var C=O(f,g,"IO"),E=C.$$prototype;return E.read_buffer=E.closed=t,r(C,"SEEK_SET",0),r(C,"SEEK_CUR",1),r(C,"SEEK_END",2),r(C,"SEEK_DATA",3),r(C,"SEEK_HOLE",4),r(C,"READABLE",1),r(C,"WRITABLE",4),C.$attr_reader("eof"),C.$attr_accessor("read_proc","sync","tty","write_proc"),s(C,"$initialize",function(s,o){var i=this;return o==null&&(o="r"),i.fd=s,i.flags=o,i.eof=!1,n(o["$include?"]("r"))&&m(o["$match?"](/[wa+]/))?i.closed="write":n(o["$match?"](/[wa]/))&&m(o["$match?"](/[r+]/))?i.closed="read":t},-2),s(C,"$fileno",x("fd")),s(C,"$tty?",function(){var t=this;return t.tty==!0}),s(C,"$write",function(t){var n=this;return n.write_proc(t),t.$size()}),s(C,"$flush",b(t)),s(C,"$<<",function(t){var n=this;return n.$write(t),n}),s(C,"$print",function(){a=this,o[","]==null&&(o[","]=t);for(var a,r=u(arguments),s=r,i=0,l=s.length;i<l;i++)s[i]=c.$String(s[i]);return a.$write(s.join(o[","])),t},-1),s(C,"$puts",function(){if(a=this,l=u(arguments),s=l,s.length===0)return a.$write(`
`),t;for(var s,i,a,r,l,o=0,m=s.length;o<m;o++)s[o].$$is_array?(r=s[o].$flatten(),r.length>0&&d(a,"puts",h(r))):(s[o].$$is_string?i=s[o].valueOf():i=c.$String(s[o]),i.endsWith(`
`)||(i+=`
`),a.$write(i));return t},-1),s(C,"$getc",function(){var s=this,i=t,o=t,a=t;s.read_buffer=n(i=s.read_buffer)?i:"",o="";do if(s.read_buffer=l(s.read_buffer,o),p(s.read_buffer,""))return a=s.read_buffer["$[]"](0),s.read_buffer=s.read_buffer["$[]"](w(1,-1,!1)),a;while(n(o=s.$sysread_noraise(1)))return t}),s(C,"$getbyte",function(){var n,s=this;return n=s.$getc(),n===t||n==null?t:n.$ord()}),s(C,"$readbyte",function(){var t=this;return t.$readchar().$ord()}),s(C,"$readchar",function(){var o=this,s=t;return n(s=o.$getc())?s:c.$raise(a("EOFError"),"end of file reached")}),s(C,"$readline",function(){var l=this,o=t,i=u(arguments),r=i;return n(o=d(l,"gets",h(r)))?o:c.$raise(a("EOFError"),"end of file reached")},-1),s(C,"$gets",function(a,r,c){var d,v,h=this,g=t,f=t,y=t,b=t,u=t,j=t;o["/"]==null&&(o["/"]=t),a==null&&(a=!1),r==null&&(r=t),c==null&&(c=new Map),n(a.$$is_number)&&m(r)&&(d=[!1,a,r],a=d[0],r=d[1],c=d[2],d),n(a.$$is_hash)&&m(r)&&i(c,new Map)?(d=[!1,t,a],a=d[0],r=d[1],c=d[2],d):n(r.$$is_hash)&&i(c,new Map)&&(d=[a,t,r],a=d[0],r=d[1],c=d[2],d),g=a,i(a,!1)&&(a=o["/"]),i(a,"")&&(a=/\r?\n\r?\n/),a=n(f=a)?f:"",i(g,"")||(a=a.$to_str()),y=i(g,"")?2:a.$length(),i(a," ")&&(a=/ /),h.read_buffer=n(f=h.read_buffer)?f:"",b="",u=t;do if(h.read_buffer=l(h.read_buffer,b),p(a,"")&&n(n(a.$$is_regexp)?h.read_buffer["$match?"](a):h.read_buffer["$include?"](a))){j=h.read_buffer,v=h.read_buffer.$split(a,2),d=_(v),u=d[0]==null?t:d[0],h.read_buffer=d[1]==null?t:d[1],v,p(u,j)&&(u=l(u,j["$[]"](u.$length(),y)));break}while(n(b=h.$sysread_noraise(i(a,"")?65536:1)))return n(u)||(d=[n(f=h.read_buffer)?f:"",""],u=d[0],h.read_buffer=d[1],d,i(u,"")&&(u=t)),n(u)&&(n(r)&&(u=u["$[]"](e.Range.$new(0,r,!0)),h.read_buffer=l(u["$[]"](e.Range.$new(r,-1,!1)),h.read_buffer)),n(c["$[]"]("chomp"))&&(u=u.$sub(/\r?\n$/,"")),i(g,"")&&(u=u.$sub(/^[\r\n]+/,""))),i(g,!1)&&(o._=u),u},-1),s(C,"$sysread",function(s){var o=this,i=t;return n(i=o.read_proc(s))?i:(o.eof=!0,c.$raise(a("EOFError"),"end of file reached"))}),s(C,"$sysread_noraise",function(s){var o=this;try{return o.$sysread(s)}catch(n){if(e.rescue(n,[a("EOFError")]))try{return t}finally{e.pop_exception(n)}else throw n}}),s(C,"$readpartial",function(s){var a,o=this,r=t,d=t,c=t;return o.read_buffer=n(r=o.read_buffer)?r:"",d=o.$sysread(s),a=[l(o.read_buffer,n(r=d)?r:""),""],c=a[0],o.read_buffer=a[1],a,i(c,"")&&(c=t),c}),s(C,"$read",function(o){var a,i=this,c=t,d=t,r=t;o==null&&(o=t),i.read_buffer=n(c=i.read_buffer)?c:"",d="",r=t;do if(i.read_buffer=l(i.read_buffer,d),n(o)&&n(y(i.read_buffer.$length(),o)))return a=[i.read_buffer["$[]"](e.Range.$new(0,o,!0)),i.read_buffer["$[]"](e.Range.$new(o,-1,!1))],r=a[0],i.read_buffer=a[1],a,r;while(n(d=i.$sysread_noraise(n(c=o)?c:65536)))return a=[i.read_buffer,""],r=a[0],i.read_buffer=a[1],a,r},-1),s(C,"$readlines",function(n){var s=this;return o["/"]==null&&(o["/"]=t),n==null&&(n=o["/"]),s.$each_line(n).$to_a()},-1),s(C,"$each",function s(){var r,c,l,f=s.$$p||t,m=this,p=t;if(o["/"]==null&&(o["/"]=t),s.$$p=null,c=u(arguments),c.length>0&&(r=c.shift()),r==null&&(r=o["/"]),l=c,f===t)return d(m,"enum_for",["each",r].concat(h(l)));for(;n(p=d(m,"gets",[r].concat(h(l))));)e.yield1(f,p);return m},-1),s(C,"$each_byte",function s(){var i=s.$$p||t,o=this,a=t;if(s.$$p=null,i===t)return o.$enum_for("each_byte");for(;n(a=o.$getbyte());)e.yield1(i,a);return o}),s(C,"$each_char",function s(){var i=s.$$p||t,o=this,a=t;if(s.$$p=null,i===t)return o.$enum_for("each_char");for(;n(a=o.$getc());)e.yield1(i,a);return o}),s(C,"$close",j("closed","both")),s(C,"$close_read",function(){var t=this;return i(t.closed,"write")?t.closed="both":t.closed="read"}),s(C,"$close_write",function(){var t=this;return i(t.closed,"read")?t.closed="both":t.closed="write"}),s(C,"$closed?",function(){var t=this;return t.closed["$=="]("both")}),s(C,"$closed_read?",function(){var s=this,o=t;return n(o=s.closed["$=="]("read"))?o:s.closed["$=="]("both")}),s(C,"$closed_write?",function(){var s=this,o=t;return n(o=s.closed["$=="]("write"))?o:s.closed["$=="]("both")}),s(C,"$check_writable",function(){var s=this;return n(s["$closed_write?"]())?c.$raise(a("IOError"),"not opened for writing"):t}),s(C,"$check_readable",function(){var s=this;return n(s["$closed_read?"]())?c.$raise(a("IOError"),"not opened for reading"):t}),v(C,"each_line","each"),v(C,"eof?","eof")}("::",null),r("::","STDIN",o.stdin=a("IO").$new(0,"r")),r("::","STDOUT",o.stdout=a("IO").$new(1,"w")),r("::","STDERR",o.stderr=a("IO").$new(2,"w")),g=e.global.console,a("STDOUT")["$write_proc="](typeof process=="object"&&typeof process.stdout=="object"?function(e){process.stdout.write(e)}:function(e){g.log(e)}),a("STDERR")["$write_proc="](typeof process=="object"&&typeof process.stderr=="object"?function(e){process.stderr.write(e)}:function(e){g.warn(e)}),(f=[function(){var n=prompt();return n!==null?n+`
`:t}],d(a("STDIN"),"read_proc=",f),f[f.length-1])},Opal.modules["opal/regexp_anchors"]=function(e){var o=e.module,t=e.const_set,s=[],i=e.nil,n=e.$$$;return e.add_stubs("new"),function(s,i){var a=o(s,"Opal"),c=[a].concat(i),r=e.$r(c);return t(a,"REGEXP_START","^"),t(a,"REGEXP_END","$"),t(a,"FORBIDDEN_STARTING_IDENTIFIER_CHARS","\\u0001-\\u002F\\u003A-\\u0040\\u005B-\\u005E\\u0060\\u007B-\\u007F"),t(a,"FORBIDDEN_ENDING_IDENTIFIER_CHARS",'\\u0001-\\u0020\\u0022-\\u002F\\u003A-\\u003E\\u0040\\u005B-\\u005E\\u0060\\u007B-\\u007F'),t(a,"INLINE_IDENTIFIER_REGEXP",r("Regexp").$new("[^"+n(a,"FORBIDDEN_STARTING_IDENTIFIER_CHARS")+"]*[^"+n(a,"FORBIDDEN_ENDING_IDENTIFIER_CHARS")+"]")),t(a,"FORBIDDEN_CONST_NAME_CHARS","\\u0001-\\u0020\\u0021-\\u002F\\u003B-\\u003F\\u0040\\u005B-\\u005E\\u0060\\u007B-\\u007F"),t(a,"CONST_NAME_REGEXP",r("Regexp").$new(""+n(a,"REGEXP_START")+"(::)?[A-Z][^"+n(a,"FORBIDDEN_CONST_NAME_CHARS")+"]*"+n(a,"REGEXP_END")))}(s[0],s)},Opal.modules["opal/mini"]=function(e){var t=e.Object,n=e.nil;return e.add_stubs("require"),t.$require("opal/base"),t.$require("corelib/nil"),t.$require("corelib/boolean"),t.$require("corelib/string"),t.$require("corelib/comparable"),t.$require("corelib/enumerable"),t.$require("corelib/enumerator"),t.$require("corelib/array"),t.$require("corelib/hash"),t.$require("corelib/number"),t.$require("corelib/range"),t.$require("corelib/proc"),t.$require("corelib/method"),t.$require("corelib/regexp"),t.$require("corelib/variables"),t.$require("corelib/io"),t.$require("opal/regexp_anchors")},Opal.modules["corelib/kernel/format"]=function(e){var a=e.coerce_to,r=e.module,c=e.slice,o=e.truthy,l=e.eqeq,d=e.Opal,t=e.Kernel,s=e.gvars,u=e.def,h=e.alias,i=e.nil,n=e.$$$;return e.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(e){var m=r(e,"Kernel");return u(m,"$format",function(r){H=i,s.DEBUG==null&&(s.DEBUG=i),X=c(arguments,1),x=X,l(x.$length(),1)&&o(x["$[]"](0)["$respond_to?"]("to_ary"))&&(H=d["$coerce_to?"](x["$[]"](0),n("Array"),"to_ary"),o(H["$nil?"]())||(x=H.$to_a()));var h,m,f,p,g,v,y,x,E,k,S,M,T,z,R,H,V,U,X,$="",P=0,L=r.length,N=1,O=0,Z=0,j=1,w=2,b=4,C=8,_=16,I=32,W=64,D=128;function F(){m&I&&t.$raise(n("ArgumentError"),"flag after width"),m&D&&t.$raise(n("ArgumentError"),"flag after precision")}function K(){m&I&&t.$raise(n("ArgumentError"),"width given twice"),m&D&&t.$raise(n("ArgumentError"),"width after precision")}function q(e){return e>=x.length&&t.$raise(n("ArgumentError"),"too few arguments"),x[e]}function Y(){switch(O){case-1:t.$raise(n("ArgumentError"),"unnumbered("+N+") mixed with numbered");case-2:t.$raise(n("ArgumentError"),"unnumbered("+N+") mixed with named")}return O=N++,q(O-1)}function G(e){return O>0&&t.$raise(n("ArgumentError"),"numbered("+e+") after unnumbered("+O+")"),O===-2&&t.$raise(n("ArgumentError"),"numbered("+e+") after named"),e<1&&t.$raise(n("ArgumentError"),"invalid index - "+e+"$"),O=-1,q(e-1)}function A(){return E===void 0?Y():E}function B(e){for(var s,o="";;f++){if(f===L&&t.$raise(n("ArgumentError"),"malformed format string - %*[0-9]"),r.charCodeAt(f)<48||r.charCodeAt(f)>57)return f--,s=parseInt(o,10)||0,s>2147483647&&t.$raise(n("ArgumentError"),""+e+" too big"),s;o+=r.charAt(f)}}function Q(e){var t,n=B(e);return r.charAt(f+1)==="$"?(f++,t=G(n)):t=Y(),t.$to_int()}for(f=r.indexOf("%");f!==-1;f=r.indexOf("%",f)){switch(h=void 0,m=Z,v=-1,g=-1,E=void 0,U=f,f++,r.charAt(f)){case"%":P=f;case"":case`
`:case"\0":f++;continue}format_sequence:for(;f<L;f++)switch(r.charAt(f)){case" ":F(),m|=_;continue format_sequence;case"#":F(),m|=j;continue format_sequence;case"+":F(),m|=b;continue format_sequence;case"-":F(),m|=w;continue format_sequence;case"0":F(),m|=C;continue format_sequence;case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":if(z=B("width"),r.charAt(f+1)==="$"){if(f+2===L){h="%",f++;break format_sequence}E!==void 0&&t.$raise(n("ArgumentError"),"value given twice - %"+z+"$"),E=G(z),f++}else K(),m|=I,v=z;continue format_sequence;case"<":case"{":for(V=r.charAt(f)==="<"?">":"}",T="",f++;;f++){if(f===L&&t.$raise(n("ArgumentError"),"malformed name - unmatched parenthesis"),r.charAt(f)===V){if(O>0&&t.$raise(n("ArgumentError"),"named "+T+" after unnumbered("+O+")"),O===-1&&t.$raise(n("ArgumentError"),"named "+T+" after numbered"),O=-2,(x[0]===void 0||!x[0].$$is_hash)&&t.$raise(n("ArgumentError"),"one hash required"),E=x[0].$fetch(T),V===">")continue format_sequence;if(h=E.toString(),g!==-1&&(h=h.slice(0,g)),m&w)for(;h.length<v;)h=h+" ";else for(;h.length<v;)h=" "+h;break format_sequence}T+=r.charAt(f)}case"*":f++,K(),m|=I,v=Q("width"),v<0&&(m|=w,v=-v);continue format_sequence;case".":if(m&D&&t.$raise(n("ArgumentError"),"precision given twice"),m|=W|D,g=0,f++,r.charAt(f)==="*"){f++,g=Q("precision"),g<0&&(m&=~W);continue format_sequence}g=B("precision");continue format_sequence;case"d":case"i":case"u":if(p=t.$Integer(A()),p>=0){for(h=p.toString();h.length<g;)h="0"+h;if(m&w)for((m&b||m&_)&&(h=(m&b?"+":" ")+h);h.length<v;)h=h+" ";else if(m&C&&g===-1){for(;h.length<v-(m&b||m&_?1:0);)h="0"+h;(m&b||m&_)&&(h=(m&b?"+":" ")+h)}else for((m&b||m&_)&&(h=(m&b?"+":" ")+h);h.length<v;)h=" "+h}else{for(h=(-p).toString();h.length<g;)h="0"+h;if(m&w)for(h="-"+h;h.length<v;)h=h+" ";else if(m&C&&g===-1){for(;h.length<v-1;)h="0"+h;h="-"+h}else for(h="-"+h;h.length<v;)h=" "+h}break format_sequence;case"b":case"B":case"o":case"x":case"X":switch(r.charAt(f)){case"b":case"B":S=2,y="0b",R=/^1+/,M="1";break;case"o":S=8,y="0",R=/^3?7+/,M="7";break;case"x":case"X":S=16,y="0x",R=/^f+/,M="f";break}if(p=t.$Integer(A()),p>=0){for(h=p.toString(S);h.length<g;)h="0"+h;if(m&w)for((m&b||m&_)&&(h=(m&b?"+":" ")+h),m&j&&p!==0&&(h=y+h);h.length<v;)h=h+" ";else if(m&C&&g===-1){for(;h.length<v-(m&b||m&_?1:0)-(m&j&&p!==0?y.length:0);)h="0"+h;m&j&&p!==0&&(h=y+h),(m&b||m&_)&&(h=(m&b?"+":" ")+h)}else for(m&j&&p!==0&&(h=y+h),(m&b||m&_)&&(h=(m&b?"+":" ")+h);h.length<v;)h=" "+h}else if(m&b||m&_){for(h=(-p).toString(S);h.length<g;)h="0"+h;if(m&w)for(m&j&&(h=y+h),h="-"+h;h.length<v;)h=h+" ";else if(m&C&&g===-1){for(;h.length<v-1-(m&j?2:0);)h="0"+h;m&j&&(h=y+h),h="-"+h}else for(m&j&&(h=y+h),h="-"+h;h.length<v;)h=" "+h}else{for(h=(p>>>0).toString(S).replace(R,M);h.length<g-2;)h=M+h;if(m&w)for(h=".."+h,m&j&&(h=y+h);h.length<v;)h=h+" ";else if(m&C&&g===-1){for(;h.length<v-2-(m&j?y.length:0);)h=M+h;h=".."+h,m&j&&(h=y+h)}else for(h=".."+h,m&j&&(h=y+h);h.length<v;)h=" "+h}r.charAt(f)===r.charAt(f).toUpperCase()&&(h=h.toUpperCase());break format_sequence;case"f":case"e":case"E":case"g":case"G":if(p=t.$Float(A()),p>=0||isNaN(p)){if(p===1/0)h="Inf";else switch(r.charAt(f)){case"f":h=p.toFixed(g===-1?6:g);break;case"e":case"E":h=p.toExponential(g===-1?6:g);break;case"g":case"G":h=p.toExponential(),k=parseInt(h.split("e")[1],10),k<-4||k>=(g===-1?6:g)||(h=p.toPrecision(g===-1?m&j?6:void 0:g));break}if(m&w)for((m&b||m&_)&&(h=(m&b?"+":" ")+h);h.length<v;)h=h+" ";else if(m&C&&p!==1/0&&!isNaN(p)){for(;h.length<v-(m&b||m&_?1:0);)h="0"+h;(m&b||m&_)&&(h=(m&b?"+":" ")+h)}else for((m&b||m&_)&&(h=(m&b?"+":" ")+h);h.length<v;)h=" "+h}else{if(p===-(1/0))h="Inf";else switch(r.charAt(f)){case"f":h=(-p).toFixed(g===-1?6:g);break;case"e":case"E":h=(-p).toExponential(g===-1?6:g);break;case"g":case"G":h=(-p).toExponential(),k=parseInt(h.split("e")[1],10),k<-4||k>=(g===-1?6:g)||(h=(-p).toPrecision(g===-1?m&j?6:void 0:g));break}if(m&w)for(h="-"+h;h.length<v;)h=h+" ";else if(m&C&&p!==-(1/0)){for(;h.length<v-1;)h="0"+h;h="-"+h}else for(h="-"+h;h.length<v;)h=" "+h}r.charAt(f)===r.charAt(f).toUpperCase()&&p!==1/0&&p!==-(1/0)&&!isNaN(p)&&(h=h.toUpperCase()),h=h.replace(/([eE][-+]?)([0-9])$/,"$10$2");break format_sequence;case"a":case"A":t.$raise(n("NotImplementedError"),"`A` and `a` format field types are not implemented in Opal yet");case"c":if(p=A(),p["$respond_to?"]("to_ary")&&(p=p.$to_ary()[0]),p["$respond_to?"]("to_str")?h=p.$to_str():h=String.fromCharCode(a(p,n("Integer"),"to_int")),h.length!==1&&t.$raise(n("ArgumentError"),"%c requires a character"),m&w)for(;h.length<v;)h=h+" ";else for(;h.length<v;)h=" "+h;break format_sequence;case"p":if(h=A().$inspect(),g!==-1&&(h=h.slice(0,g)),m&w)for(;h.length<v;)h=h+" ";else for(;h.length<v;)h=" "+h;break format_sequence;case"s":if(h=A().$to_s(),g!==-1&&(h=h.slice(0,g)),m&w)for(;h.length<v;)h=h+" ";else for(;h.length<v;)h=" "+h;break format_sequence;default:t.$raise(n("ArgumentError"),"malformed format string - %"+r.charAt(f))}h===void 0&&t.$raise(n("ArgumentError"),"malformed format string - %"),$+=r.slice(P,U)+h,P=f+1}return s.DEBUG&&O>=0&&N<x.length&&t.$raise(n("ArgumentError"),"too many arguments for format string"),$+r.slice(P)},-2),h(m,"sprintf","format")}("::")},Opal.modules["corelib/string/encoding"]=function(e){var c,r=e.klass,j=e.rb_plus,i=e.truthy,o=e.send,u=e.defs,b=e.eqeq,t=e.def,l=e.return_ivar,d=e.return_val,f=e.slice,m=e.Kernel,h=e.Opal,g=e.rb_lt,a=e.top,p=[],v=e.$r(p),n=e.nil,s=e.$$$;return e.add_stubs("require,+,[],clone,initialize,new,instance_eval,to_proc,each,const_set,tr,==,default_external,attr_accessor,singleton_class,attr_reader,raise,register,length,bytes,force_encoding,dup,bytesize,enum_for,each_byte,to_a,each_char,each_codepoint,coerce_to!,find,<,default_external="),a.$require("corelib/string"),function(a,c,h){var p=r(a,c,"Encoding"),v=[p].concat(h),g=p.$$prototype;return g.name=g.dummy=n,u(p,"$register",function t(s,a){var h=t.$$p||n,m=this,l=n,r=n,d=n,u=n,c=n,f=n;return t.$$p=null,a==null&&(a=new Map),l=j([s],i(r=a["$[]"]("aliases"))?r:[]),d=i(r=a["$[]"]("ascii"))&&r,u=i(r=a["$[]"]("dummy"))&&r,i(a["$[]"]("inherits"))?(c=a["$[]"]("inherits").$clone(),c.$initialize(s,l,d,u)):c=m.$new(s,l,d,u),h!==n&&o(c,"instance_eval",[],h.$to_proc()),f=e.encodings,o(l,"each",[],function e(t){var s=e.$$s==null?this:e.$$s;return t==null&&(t=n),s.$const_set(t.$tr("-","_"),c),f[t]=c},{$$s:m})},-2),u(p,"$find",function(n){var s=this;return b(n,"default_external")?s.$default_external():e.find_encoding(n)}),p.$singleton_class().$attr_accessor("default_external"),p.$attr_reader("name","names"),t(p,"$initialize",function(t,n,s,o){var i=this;return i.name=t,i.names=n,i.ascii=s,i.dummy=o}),t(p,"$ascii_compatible?",l("ascii")),t(p,"$dummy?",l("dummy")),t(p,"$binary?",d(!1)),t(p,"$to_s",l("name")),t(p,"$inspect",function(){var t=this;return"#<Encoding:"+t.name+(i(t.dummy)?" (dummy)":n)+">"}),t(p,"$charsize",function(t){for(var s,o=0,n=0,i=t.length;n<i;n++)s=t.charCodeAt(n),s>=55296&&s<=56319||o++;return o}),t(p,"$each_char",function t(s){r=t.$$p||n,t.$$p=null;for(var o,i,r,c="",a=0,l=s.length;a<l;a++){if(i=s.charCodeAt(a),o=s.charAt(a),i>=56320&&i<=57343){c=o;continue}i>=55296&&i<=56319&&(o=c+o),s.encoding.name!="UTF-8"&&(o=new String(o),o.encoding=s.encoding),e.yield1(r,o)}}),t(p,"$each_byte",function(){var n=f(arguments),o=n;return m.$raise(s("NotImplementedError"))},-1),t(p,"$bytesize",function(){var n=f(arguments),o=n;return m.$raise(s("NotImplementedError"))},-1),r("::",s("StandardError"),"EncodingError"),r("::",s("EncodingError"),"CompatibilityError"),(r(v[0],s("EncodingError"),"UndefinedConversionError"),n)}("::",null,p),o(s("Encoding"),"register",["UTF-8",new Map([["aliases",["CP65001"]],["ascii",!0]])],function s(){var o=s.$$s==null?this:s.$$s;return t(o,"$each_byte",function t(s){var o,a,r,c,l,i=t.$$p||n;t.$$p=null;for(a=1/0,l=s.length,r=null,c=0;c<l;++c){if(o=s.charCodeAt(c),o>55295&&o<57344){if(!r){if(o>56319){(a-=3)>-1&&(e.yield1(i,239),e.yield1(i,191),e.yield1(i,189));continue}if(c+1===l){(a-=3)>-1&&(e.yield1(i,239),e.yield1(i,191),e.yield1(i,189));continue}r=o;continue}if(o<56320){(a-=3)>-1&&(e.yield1(i,239),e.yield1(i,191),e.yield1(i,189)),r=o;continue}o=(r-55296<<10|o-56320)+65536}else r&&(a-=3)>-1&&(e.yield1(i,239),e.yield1(i,191),e.yield1(i,189));if(r=null,o<128){if((a-=1)<0)break;e.yield1(i,o)}else if(o<2048){if((a-=2)<0)break;e.yield1(i,o>>6|192),e.yield1(i,o&63|128)}else if(o<65536){if((a-=3)<0)break;e.yield1(i,o>>12|224),e.yield1(i,o>>6&63|128),e.yield1(i,o&63|128)}else if(o<1114112){if((a-=4)<0)break;e.yield1(i,o>>18|240),e.yield1(i,o>>12&63|128),e.yield1(i,o>>6&63|128),e.yield1(i,o&63|128)}}}),t(o,"$bytesize",function(t){return t.$bytes().$length()})},{$$s:a}),o(s("Encoding"),"register",["UTF-16LE"],function s(){var o=s.$$s==null?this:s.$$s;return t(o,"$each_byte",function t(s){o=t.$$p||n,t.$$p=null;for(var o,a,i=0,r=s.length;i<r;i++)a=s.charCodeAt(i),e.yield1(o,a&255),e.yield1(o,a>>8)}),t(o,"$bytesize",function(t){return t.length*2})},{$$s:a}),o(s("Encoding"),"register",["UTF-16BE",new Map([["inherits",s(s("Encoding"),"UTF_16LE")]])],function s(){var o=s.$$s==null?this:s.$$s;return t(o,"$each_byte",function t(s){o=t.$$p||n,t.$$p=null;for(var o,a,i=0,r=s.length;i<r;i++)a=s.charCodeAt(i),e.yield1(o,a>>8),e.yield1(o,a&255)})},{$$s:a}),o(s("Encoding"),"register",["UTF-32LE"],function s(){var o=s.$$s==null?this:s.$$s;return t(o,"$each_byte",function t(s){o=t.$$p||n,t.$$p=null;for(var o,a,i=0,r=s.length;i<r;i++)a=s.charCodeAt(i),e.yield1(o,a&255),e.yield1(o,a>>8),e.yield1(o,0),e.yield1(o,0)}),t(o,"$bytesize",function(t){return t.length*4})},{$$s:a}),o(s("Encoding"),"register",["UTF-32BE",new Map([["inherits",s(s("Encoding"),"UTF_32LE")]])],function s(){var o=s.$$s==null?this:s.$$s;return t(o,"$each_byte",function t(s){o=t.$$p||n,t.$$p=null;for(var o,a,i=0,r=s.length;i<r;i++)a=s.charCodeAt(i),e.yield1(o,0),e.yield1(o,0),e.yield1(o,a>>8),e.yield1(o,a&255)})},{$$s:a}),o(s("Encoding"),"register",["ASCII-8BIT",new Map([["aliases",["BINARY"]],["ascii",!0]])],function s(){var o=s.$$s==null?this:s.$$s;return t(o,"$each_char",function t(s){a=t.$$p||n,t.$$p=null;for(var i,a,o=0,r=s.length;o<r;o++)i=new String(s.charAt(o)),i.encoding=s.encoding,e.yield1(a,i)}),t(o,"$charsize",function(t){return t.length}),t(o,"$each_byte",function t(s){i=t.$$p||n,t.$$p=null;for(var i,a,o=0,r=s.length;o<r;o++)a=s.charCodeAt(o),e.yield1(i,a&255)}),t(o,"$bytesize",function(t){return t.length}),t(o,"$binary?",d(!0))},{$$s:a}),s("Encoding").$register("ISO-8859-1",new Map([["aliases",["ISO8859-1"]],["ascii",!0],["inherits",s(s("Encoding"),"ASCII_8BIT")]])),s("Encoding").$register("US-ASCII",new Map([["aliases",["ASCII"]],["ascii",!0],["inherits",s(s("Encoding"),"ASCII_8BIT")]])),function(a,c){var l=r(a,c,"String"),u=l.$$prototype;return u.internal_encoding=u.bytes=u.encoding=n,l.$attr_reader("encoding"),l.$attr_reader("internal_encoding"),e.prop(String.prototype,"bytes",n),e.prop(String.prototype,"encoding",s(s("Encoding"),"UTF_8")),e.prop(String.prototype,"internal_encoding",s(s("Encoding"),"UTF_8")),t(l,"$b",function(){var t=this;return t.$dup().$force_encoding("binary")}),t(l,"$bytesize",function(){var t=this;return t.internal_encoding.$bytesize(t)}),t(l,"$each_byte",function e(){var s=e.$$p||n,t=this;return e.$$p=null,s!==n?(o(t.internal_encoding,"each_byte",[t],s.$to_proc()),t):o(t,"enum_for",["each_byte"],function e(){var t=e.$$s==null?this:e.$$s;return t.$bytesize()},{$$s:t})}),t(l,"$bytes",function(){var t=this,s=n;return typeof t=="string"?new String(t).$each_byte().$to_a():(t.bytes=i(s=t.bytes)?s:t.$each_byte().$to_a(),t.bytes.$dup())}),t(l,"$each_char",function e(){var s=e.$$p||n,t=this;return e.$$p=null,s!==n?(o(t.encoding,"each_char",[t],s.$to_proc()),t):o(t,"enum_for",["each_char"],function e(){var t=e.$$s==null?this:e.$$s;return t.$length()},{$$s:t})}),t(l,"$chars",function e(){var t=e.$$p||n,s=this;return e.$$p=null,i(t)?o(s,"each_char",[],t.$to_proc()):s.$each_char().$to_a()}),t(l,"$each_codepoint",function t(){var o,a,i=t.$$p||n,s=this;if(t.$$p=null,i===n)return s.$enum_for("each_codepoint");for(o=0,a=s.length;o<a;o++)e.yield1(i,s.codePointAt(o));return s}),t(l,"$codepoints",function e(){var t=e.$$p||n,s=this;return e.$$p=null,t!==n?o(s,"each_codepoint",[],t.$to_proc()):s.$each_codepoint().$to_a()}),t(l,"$encode",function(n){var s=this;return e.enc(s,n)}),t(l,"$force_encoding",function(n){var i=this,o=i;return n===o.encoding?o:(n=h["$coerce_to!"](n,s("String"),"to_s"),n=s("Encoding").$find(n),n===o.encoding?o:(o=e.set_encoding(o,n),o))}),t(l,"$getbyte",function(t){var a=this,o=n,o=a.$bytes();return t=h["$coerce_to!"](t,s("Integer"),"to_int"),i(g(o.$length(),t))?n:o["$[]"](t)}),t(l,"$initialize_copy",function(){return`
self.encoding = other.encoding;
self.internal_encoding = other.internal_encoding;
`}),t(l,"$valid_encoding?",d(!0))}("::",null),(c=[s(v("Encoding"),"UTF_8")],o(s("Encoding"),"default_external=",c),c[c.length-1])},Opal.modules["corelib/math"]=function(e){var o=e.type_error,g=e.module,r=e.const_set,p=e.Class,u=e.slice,n=e.Kernel,c=e.defs,a=e.truthy,d=e.send,s=e.def,h=e.rb_minus,i=e.eqeqeq,m=e.rb_divide,f=[],l=e.nil,t=e.$$$;return e.add_stubs("new,raise,Float,Integer,module_function,each,define_method,checked,float!,===,gamma,-,integer!,/,infinite?"),function(f,v){var b=g(f,"Math"),y=[b].concat(v),j=e.$r(y);return r(b,"E",Math.E),r(b,"PI",Math.PI),r(b,"DomainError",p.$new(t("StandardError"))),c(b,"$checked",function(t){if(i=u(arguments,1),o=i,isNaN(o[0])||o.length==2&&isNaN(o[1]))return NaN;var o,i,a=Math[t].apply(null,o);return isNaN(a)&&n.$raise(j("DomainError"),'Numerical argument is out of domain - "'+t+'"'),a},-2),c(b,"$float!",function(i){try{return n.$Float(i)}catch(s){if(e.rescue(s,[t("ArgumentError")]))try{return n.$raise(o(i,t("Float")))}finally{e.pop_exception(s)}else throw s}}),c(b,"$integer!",function(i){try{return n.$Integer(i)}catch(s){if(e.rescue(s,[t("ArgumentError")]))try{return n.$raise(o(i,t("Integer")))}finally{e.pop_exception(s)}else throw s}}),b.$module_function(),a(typeof Math.erf!="undefined")||e.prop(Math,"erf",function(e){var t,s,o=.254829592,i=-.284496736,a=1.421413741,r=-1.453152027,c=1.061405429,l=.3275911,n=1;return e<0&&(n=-1),e=Math.abs(e),t=1/(1+l*e),s=1-((((c*t+r)*t+a)*t+i)*t+o)*t*Math.exp(-e*e),n*s}),a(typeof Math.erfc!="undefined")||e.prop(Math,"erfc",function(e){var n=Math.abs(e),t=1/(.5*n+1),m=t*.17087277+-.82215223,r=t*m+1.48851587,i=t*r+-1.13520398,a=t*i+.27886807,o=t*a+-.18628806,c=t*o+.09678418,l=t*c+.37409196,d=t*l+1.00002368,u=t*d,h=-n*n-1.26551223+u,s=t*Math.exp(h);return e<0?2-s:s}),d(["acos","acosh","asin","asinh","atan","atanh","cbrt","cos","cosh","erf","erfc","exp","sin","sinh","sqrt","tanh"],"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=l),d(s,"define_method",[n],function(s){return s==null&&(s=l),t("Math").$checked(n,t("Math")["$float!"](s))})},{$$s:b}),s(b,"$atan2",function(n,s){return t("Math").$checked("atan2",t("Math")["$float!"](n),t("Math")["$float!"](s))}),s(b,"$hypot",function(n,s){return t("Math").$checked("hypot",t("Math")["$float!"](n),t("Math")["$float!"](s))}),s(b,"$frexp",function(t){if(t=j("Math")["$float!"](t),isNaN(t))return[NaN,0];var n=Math.floor(Math.log(Math.abs(t))/Math.log(2))+1,s=t/Math.pow(2,n);return[s,n]}),s(b,"$gamma",function(s){s=j("Math")["$float!"](s);var o,i,a,r,c,l,d,u,m,p=4.7421875,f=[.99999999999999709182,57.156235665862923517,-59.597960355475491248,14.136097974741747174,-.49191381609762019978,.33994649984811888699e-4,.46523628927048575665e-4,-.98374475304879564677e-4,.00015808870322491248884,-.00021026444172410488319,.0002174396181152126432,-.00016431810653676389022,.84418223983852743293e-4,-.2619083840158140867e-4,.36899182659531622704e-5];if(isNaN(s))return NaN;if(s===0&&1/s<0)return-(1/0);if((s===-1||s===-(1/0))&&n.$raise(j("DomainError"),'Numerical argument is out of domain - "gamma"'),j("Integer")["$==="](s)){if(s<=0)return isFinite(s)?1/0:NaN;if(s>171)return 1/0;for(a=s-2,i=s-1;a>1;)i*=a,a--;return i==0&&(i=1),i}if(s<.5)return Math.PI/(Math.sin(Math.PI*s)*t("Math").$gamma(h(1,s)));if(s>=171.35)return 1/0;if(s>85)return l=s*s,d=l*s,u=d*s,m=u*s,Math.sqrt(2*Math.PI/s)*Math.pow(s/Math.E,s)*(1+1/(12*s)+1/(288*l)-139/(51840*d)-571/(2488320*u)+163879/(209018880*m)+5246819/(75246796800*m*s));s-=1,c=f[0];for(o=1;o<f.length;++o)c+=f[o]/(s+o);return r=s+p+.5,Math.sqrt(2*Math.PI)*Math.pow(r,s+.5)*Math.exp(-r)*c}),s(b,"$ldexp",function(s,o){return s=j("Math")["$float!"](s),o=j("Math")["$integer!"](o),isNaN(o)&&n.$raise(t("RangeError"),"float NaN out of range of integer"),s*Math.pow(2,o)}),s(b,"$lgamma",function(n){return n==-1?[1/0,1]:[Math.log(Math.abs(t("Math").$gamma(n))),t("Math").$gamma(n)<0?-1:1]}),s(b,"$log",function(s,r){return i(t("String"),s)&&n.$raise(o(s,t("Float"))),a(r==null)?t("Math").$checked("log",t("Math")["$float!"](s)):(i(t("String"),r)&&n.$raise(o(r,t("Float"))),m(t("Math").$checked("log",t("Math")["$float!"](s)),t("Math").$checked("log",t("Math")["$float!"](r))))},-2),s(b,"$log10",function(s){return i(t("String"),s)&&n.$raise(o(s,t("Float"))),t("Math").$checked("log10",t("Math")["$float!"](s))}),s(b,"$log2",function(s){return i(t("String"),s)&&n.$raise(o(s,t("Float"))),t("Math").$checked("log2",t("Math")["$float!"](s))}),s(b,"$tan",function(n){return n=t("Math")["$float!"](n),a(n["$infinite?"]())?t(t("Float"),"NAN"):t("Math").$checked("tan",t("Math")["$float!"](n))})}("::",f)},Opal.modules["corelib/complex/base"]=function(e){var s=e.module,o=e.truthy,t=e.def,i=e.klass,n=[],a=e.nil;return e.add_stubs("new,from_string"),function(n,i){var r=s(n,"Kernel"),l=[r].concat(i),c=e.$r(l);return t(r,"$Complex",function(t,n){return n==null&&(n=a),o(n)?c("Complex").$new(t,n):c("Complex").$new(t,0)},-2)}("::",n),function(n,s,o){var a=i(n,s,"String"),r=[a].concat(o),c=e.$r(r);return t(a,"$to_c",function(){var t=this;return c("Complex").$from_string(t)})}("::",null,n)},Opal.modules["corelib/complex"]=function(e){var y=e.klass,a=e.truthy,i=e.eqeqeq,s=e.Kernel,f=e.defs,r=e.rb_times,n=e.def,c=e.rb_plus,d=e.rb_minus,h=e.rb_divide,u=e.eqeq,m=e.to_ary,v=e.rb_gt,p=e.neqeq,b=e.return_val,j=e.const_set,l=e.alias,g=e.top,_=[],o=e.nil,t=e.$$$;return e.add_stubs("require,real?,===,raise,new,*,cos,sin,attr_reader,freeze,class,==,real,imag,Complex,-@,+,__coerced__,-,nan?,/,conj,abs2,quo,polar,exp,log,>,!=,divmod,**,hypot,atan2,lcm,denominator,finite?,hash,infinite?,numerator,abs,arg,rationalize,to_f,to_i,to_r,inspect,zero?,positive?,Rational,rect,angle"),g.$require("corelib/numeric"),g.$require("corelib/complex/base"),function(g,_,w){var O=y(g,_,"Complex"),x=[O].concat(w),E=e.$r(x),C=O.$$prototype;return C.real=C.imag=o,f(O,"$rect",function(n,o){var r=this;return o==null&&(o=0),i(t("Numeric"),n)&&a(n["$real?"]())&&i(t("Numeric"),o)&&a(o["$real?"]())||s.$raise(t("TypeError"),"not a real"),r.$new(n,o)},-2),f(O,"$polar",function(n,o){var c=this;return o==null&&(o=0),i(t("Numeric"),n)&&a(n["$real?"]())&&i(t("Numeric"),o)&&a(o["$real?"]())||s.$raise(t("TypeError"),"not a real"),c.$new(r(n,t("Math").$cos(o)),r(n,t("Math").$sin(o)))},-2),O.$attr_reader("real","imag"),n(O,"$initialize",function(t,n){var s=this;return n==null&&(n=0),s.real=t,s.imag=n,s.$freeze()},-2),n(O,"$coerce",function(n){var o=this;return i(t("Complex"),n)?[n,o]:i(t("Numeric"),n)&&a(n["$real?"]())?[t("Complex").$new(n,0),o]:s.$raise(t("TypeError"),""+n.$class()+" can't be coerced into Complex")}),n(O,"$==",function(n){var s=this,r=o;return i(t("Complex"),n)?a(r=s.real["$=="](n.$real()))?s.imag["$=="](n.$imag()):r:i(t("Numeric"),n)&&a(n["$real?"]())?a(r=s.real["$=="](n))?s.imag["$=="](0):r:n["$=="](s)}),n(O,"$-@",function(){var t=this;return s.$Complex(t.real["$-@"](),t.imag["$-@"]())}),n(O,"$+",function(n){var o=this;return i(t("Complex"),n)?s.$Complex(c(o.real,n.$real()),c(o.imag,n.$imag())):i(t("Numeric"),n)&&a(n["$real?"]())?s.$Complex(c(o.real,n),o.imag):o.$__coerced__("+",n)}),n(O,"$-",function(n){var o=this;return i(t("Complex"),n)?s.$Complex(d(o.real,n.$real()),d(o.imag,n.$imag())):i(t("Numeric"),n)&&a(n["$real?"]())?s.$Complex(d(o.real,n),o.imag):o.$__coerced__("-",n)}),n(O,"$*",function(n){var o=this;return i(t("Complex"),n)?s.$Complex(d(r(o.real,n.$real()),r(o.imag,n.$imag())),c(r(o.real,n.$imag()),r(o.imag,n.$real()))):i(t("Numeric"),n)&&a(n["$real?"]())?s.$Complex(r(o.real,n),r(o.imag,n)):o.$__coerced__("*",n)}),n(O,"$/",function(n){var o=this;return i(t("Complex"),n)?i(t("Number"),o.real)&&a(o.real["$nan?"]())||i(t("Number"),o.imag)&&a(o.imag["$nan?"]())||i(t("Number"),n.$real())&&a(n.$real()["$nan?"]())||i(t("Number"),n.$imag())&&a(n.$imag()["$nan?"]())?t("Complex").$new(t(t("Float"),"NAN"),t(t("Float"),"NAN")):h(r(o,n.$conj()),n.$abs2()):i(t("Numeric"),n)&&a(n["$real?"]())?s.$Complex(o.real.$quo(n),o.imag.$quo(n)):o.$__coerced__("/",n)}),n(O,"$**",function(n){var l,f,_=this,j=o,y=o,O=o,x=o,k=o,A=o,g=o,w=o,b=o,C=o,E=o;if(u(n,0))return t("Complex").$new(1,0);if(i(t("Complex"),n))return f=_.$polar(),l=m(f),j=l[0]==null?o:l[0],y=l[1]==null?o:l[1],f,O=n.$real(),x=n.$imag(),k=t("Math").$exp(d(r(O,t("Math").$log(j)),r(x,y))),A=c(r(y,O),r(x,t("Math").$log(j))),t("Complex").$polar(k,A);if(i(t("Integer"),n)){if(a(v(n,0))){for(g=_,w=g,b=d(n,1);p(b,0);){for(f=b.$divmod(2),l=m(f),C=l[0]==null?o:l[0],E=l[1]==null?o:l[1],f;u(E,0);)g=s.$Complex(d(r(g.$real(),g.$real()),r(g.$imag(),g.$imag())),r(r(2,g.$real()),g.$imag())),b=C,f=b.$divmod(2),l=m(f),C=l[0]==null?o:l[0],E=l[1]==null?o:l[1],f;w=r(w,g),b=d(b,1)}return w}return h(t("Rational").$new(1,1),_)["$**"](n["$-@"]())}else return i(t("Float"),n)||i(t("Rational"),n)?(f=_.$polar(),l=m(f),j=l[0]==null?o:l[0],y=l[1]==null?o:l[1],f,t("Complex").$polar(j["$**"](n),r(y,n))):_.$__coerced__("**",n)}),n(O,"$abs",function(){var n=this;return t("Math").$hypot(n.real,n.imag)}),n(O,"$abs2",function(){var t=this;return c(r(t.real,t.real),r(t.imag,t.imag))}),n(O,"$angle",function(){var n=this;return t("Math").$atan2(n.imag,n.real)}),n(O,"$conj",function(){var t=this;return s.$Complex(t.real,t.imag["$-@"]())}),n(O,"$denominator",function(){var t=this;return t.real.$denominator().$lcm(t.imag.$denominator())}),n(O,"$eql?",function(t){var n=this,s=o,i=o;return a(s=a(i=E("Complex")["$==="](t))?n.real.$class()["$=="](n.imag.$class()):i)?n["$=="](t):s}),n(O,"$fdiv",function(n){var o=this;return i(t("Numeric"),n)||s.$raise(t("TypeError"),""+n.$class()+" can't be coerced into Complex"),h(o,n)}),n(O,"$finite?",function(){var t=this,n=o;return a(n=t.real["$finite?"]())?t.imag["$finite?"]():n}),n(O,"$hash",function(){var n=this;return[t("Complex"),n.real,n.imag].$hash()}),n(O,"$infinite?",function(){var t=this,n=o;return a(n=t.real["$infinite?"]())?n:t.imag["$infinite?"]()}),n(O,"$inspect",function(){var t=this;return"("+t+")"}),n(O,"$numerator",function(){var t=this,n=o,n=t.$denominator();return s.$Complex(r(t.real.$numerator(),h(n,t.real.$denominator())),r(t.imag.$numerator(),h(n,t.imag.$denominator())))}),n(O,"$polar",function(){var t=this;return[t.$abs(),t.$arg()]}),n(O,"$rationalize",function(n){var o=this;return arguments.length>1&&s.$raise(t("ArgumentError"),"wrong number of arguments ("+arguments.length+" for 0..1)"),p(o.imag,0)&&s.$raise(t("RangeError"),"can't convert "+o+" into Rational"),o.$real().$rationalize(n)},-1),n(O,"$real?",b(!1)),n(O,"$rect",function(){var t=this;return[t.real,t.imag]}),n(O,"$to_f",function(){var n=this;return u(n.imag,0)||s.$raise(t("RangeError"),"can't convert "+n+" into Float"),n.real.$to_f()}),n(O,"$to_i",function(){var n=this;return u(n.imag,0)||s.$raise(t("RangeError"),"can't convert "+n+" into Integer"),n.real.$to_i()}),n(O,"$to_r",function(){var n=this;return u(n.imag,0)||s.$raise(t("RangeError"),"can't convert "+n+" into Rational"),n.real.$to_r()}),n(O,"$to_s",function(){var n=this,s=o,s=n.real.$inspect(),s=c(s,i(t("Number"),n.imag)&&a(n.imag["$nan?"]())||a(n.imag["$positive?"]())||a(n.imag["$zero?"]())?"+":"-"),s=c(s,n.imag.$abs().$inspect());return i(t("Number"),n.imag)&&(a(n.imag["$nan?"]())||a(n.imag["$infinite?"]()))&&(s=c(s,"*")),c(s,"i")}),j(x[0],"I",O.$new(0,1)),f(O,"$from_string",function(t){var n,i,d,o=/[+-]?[\d_]+(\.[\d_]+)?(e\d+)?/,l=t.match(o);function a(){return o.test(t)}function r(){var n=t.match(o),e=n[0];return t=t.slice(e.length),e.replace(/_/g,"")}function c(){if(a()){var n,e=parseFloat(r());return t[0]==="/"?(t=t.slice(1),a()?(n=parseFloat(r()),s.$Rational(e,n)):(t="/"+t,e)):e}else return null}return n=c(),n?(i=c(),i?s.$Complex(n,i):t[0]==="i"?s.$Complex(0,n):s.$Complex(n,0)):t[0]==="i"?s.$Complex(0,1):t[0]==="-"&&t[1]==="i"?s.$Complex(0,-1):t[0]==="+"&&t[1]==="i"?s.$Complex(0,1):s.$Complex(0,0)}),function(e){return l(e,"rectangular","rect")}(e.get_singleton_class(O),x),l(O,"arg","angle"),l(O,"conjugate","conj"),l(O,"divide","/"),l(O,"imaginary","imag"),l(O,"magnitude","abs"),l(O,"phase","arg"),l(O,"quo","/"),l(O,"rectangular","rect"),e.udef(O,"$negative?"),e.udef(O,"$positive?"),e.udef(O,"$step"),o}("::",t("Numeric"),_)},Opal.modules["corelib/rational/base"]=function(e){var s=e.module,t=e.def,o=e.klass,i=e.nil,n=e.$$$;return e.add_stubs("convert,from_string"),function(e){var o=s(e,"Kernel");return t(o,"$Rational",function(t,s){return s==null&&(s=1),n("Rational").$convert(t,s)},-2)}("::"),function(e,s){var i=o(e,s,"String");return t(i,"$to_r",function(){var t=this;return n("Rational").$from_string(t)})}("::",null)},Opal.modules["corelib/rational"]=function(e){var _=e.klass,c=e.eqeq,s=e.Kernel,r=e.truthy,d=e.rb_lt,l=e.rb_divide,m=e.defs,n=e.eqeqeq,w=e.not,y=e.Opal,i=e.def,p=e.return_ivar,u=e.rb_minus,a=e.rb_times,h=e.rb_plus,v=e.rb_gt,b=e.rb_le,j=e.return_self,f=e.alias,g=e.top,o=e.nil,t=e.$$$;return e.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"),g.$require("corelib/numeric"),g.$require("corelib/rational/base"),function(e,g){var O=_(e,g,"Rational"),x=O.$$prototype;return x.num=x.den=o,m(O,"$reduce",function(n,i){var u=this,a=o;if(n=n.$to_i(),i=i.$to_i(),c(i,0))s.$raise(t("ZeroDivisionError"),"divided by 0");else if(r(d(i,0)))n=n["$-@"](),i=i["$-@"]();else if(c(i,1))return u.$new(n,i);return a=n.$gcd(i),u.$new(l(n,a),l(i,a))}),m(O,"$convert",function(o,i){var a=this;return(r(o["$nil?"]())||r(i["$nil?"]()))&&s.$raise(t("TypeError"),"cannot convert nil into Rational"),n(t("Integer"),o)&&n(t("Integer"),i)?a.$reduce(o,i):((n(t("Float"),o)||n(t("String"),o)||n(t("Complex"),o))&&(o=o.$to_r()),(n(t("Float"),i)||n(t("String"),i)||n(t("Complex"),i))&&(i=i.$to_r()),r(i["$equal?"](1))&&w(t("Integer")["$==="](o))?y["$coerce_to!"](o,t("Rational"),"to_r"):n(t("Numeric"),o)&&n(t("Numeric"),i)?l(o,i):a.$reduce(o,i))}),i(O,"$initialize",function(t,n){var s=this;return s.num=t,s.den=n,s.$freeze()}),i(O,"$numerator",p("num")),i(O,"$denominator",p("den")),i(O,"$coerce",function(s){var i=this,a=o;return n(t("Rational"),a=s)?[s,i]:n(t("Integer"),a)?[s.$to_r(),i]:n(t("Float"),a)?[s,i.$to_f()]:o}),i(O,"$==",function(s){var i=this,c=o,a=o;return n(t("Rational"),c=s)?r(a=i.num["$=="](s.$numerator()))?i.den["$=="](s.$denominator()):a:n(t("Integer"),c)?r(a=i.num["$=="](s))?i.den["$=="](1):a:n(t("Float"),c)?i.$to_f()["$=="](s):s["$=="](i)}),i(O,"$<=>",function(s){var i=this,r=o;return n(t("Rational"),r=s)?u(a(i.num,s.$denominator()),a(i.den,s.$numerator()))["$<=>"](0):n(t("Integer"),r)?u(i.num,a(i.den,s))["$<=>"](0):n(t("Float"),r)?i.$to_f()["$<=>"](s):i.$__coerced__("<=>",s)}),i(O,"$+",function(i){var r=this,c=o,l=o,d=o;return n(t("Rational"),c=i)?(l=h(a(r.num,i.$denominator()),a(r.den,i.$numerator())),d=a(r.den,i.$denominator()),s.$Rational(l,d)):n(t("Integer"),c)?s.$Rational(h(r.num,a(i,r.den)),r.den):n(t("Float"),c)?h(r.$to_f(),i):r.$__coerced__("+",i)}),i(O,"$-",function(i){var r=this,c=o,l=o,d=o;return n(t("Rational"),c=i)?(l=u(a(r.num,i.$denominator()),a(r.den,i.$numerator())),d=a(r.den,i.$denominator()),s.$Rational(l,d)):n(t("Integer"),c)?s.$Rational(u(r.num,a(i,r.den)),r.den):n(t("Float"),c)?u(r.$to_f(),i):r.$__coerced__("-",i)}),i(O,"$*",function(i){var r=this,c=o,l=o,d=o;return n(t("Rational"),c=i)?(l=a(r.num,i.$numerator()),d=a(r.den,i.$denominator()),s.$Rational(l,d)):n(t("Integer"),c)?s.$Rational(a(r.num,i),r.den):n(t("Float"),c)?a(r.$to_f(),i):r.$__coerced__("*",i)}),i(O,"$/",function(i){var r=this,d=o,u=o,h=o;return n(t("Rational"),d=i)?(u=a(r.num,i.$denominator()),h=a(r.den,i.$numerator()),s.$Rational(u,h)):n(t("Integer"),d)?c(i,0)?l(r.$to_f(),0):s.$Rational(r.num,a(r.den,i)):n(t("Float"),d)?l(r.$to_f(),i):r.$__coerced__("/",i)}),i(O,"$**",function(i){var a=this,l=o;return n(t("Integer"),l=i)?c(a,0)&&r(d(i,0))?t(t("Float"),"INFINITY"):r(v(i,0))?s.$Rational(a.num["$**"](i),a.den["$**"](i)):r(d(i,0))?s.$Rational(a.den["$**"](i["$-@"]()),a.num["$**"](i["$-@"]())):s.$Rational(1,1):n(t("Float"),l)?a.$to_f()["$**"](i):n(t("Rational"),l)?c(i,0)?s.$Rational(1,1):c(i.$denominator(),1)?r(d(i,0))?s.$Rational(a.den["$**"](i.$numerator().$abs()),a.num["$**"](i.$numerator().$abs())):s.$Rational(a.num["$**"](i.$numerator()),a.den["$**"](i.$numerator())):c(a,0)&&r(d(i,0))?s.$raise(t("ZeroDivisionError"),"divided by 0"):a.$to_f()["$**"](i):a.$__coerced__("**",i)}),i(O,"$abs",function(){var t=this;return s.$Rational(t.num.$abs(),t.den.$abs())}),i(O,"$ceil",function(t){var n=this;return t==null&&(t=0),c(t,0)?l(n.num["$-@"](),n.den)["$-@"]().$ceil():n.$with_precision("ceil",t)},-1),i(O,"$floor",function(t){var n=this;return t==null&&(t=0),c(t,0)?l(n.num["$-@"](),n.den)["$-@"]().$floor():n.$with_precision("floor",t)},-1),i(O,"$hash",function(){var n=this;return[t("Rational"),n.num,n.den].$hash()}),i(O,"$inspect",function(){var t=this;return"("+t+")"}),i(O,"$rationalize",function(n){if(c=this,arguments.length>1&&s.$raise(t("ArgumentError"),"wrong number of arguments ("+arguments.length+" for 0..1)"),n==null)return c;for(var o,i,c,g,v,y,j=n.$abs(),p=u(c,j),f=h(c,j),m=0,a=1,d=1,r=0;!0;){if(i=p.$ceil(),b(i,f))break;o=i-1,g=o*a+m,v=o*r+d,y=l(1,u(f,o)),f=l(1,u(p,o)),p=y,m=a,d=r,a=g,r=v}return s.$Rational(i*a+m,i*r+d)},-1),i(O,"$round",function(t){var n=this,i=o,u=o,s=o;return t==null&&(t=0),c(t,0)?c(n.num,0)?0:c(n.den,1)?n.num:(i=h(a(n.num.$abs(),2),n.den),u=a(n.den,2),s=l(i,u).$truncate(),r(d(n.num,0))?s["$-@"]():s):n.$with_precision("round",t)},-1),i(O,"$to_f",function(){var t=this;return l(t.num,t.den)}),i(O,"$to_i",function(){var t=this;return t.$truncate()}),i(O,"$to_r",j),i(O,"$to_s",function(){var t=this;return""+t.num+"/"+t.den}),i(O,"$truncate",function(t){var n=this;return t==null&&(t=0),c(t,0)?r(d(n.num,0))?n.$ceil():n.$floor():n.$with_precision("truncate",t)},-1),i(O,"$with_precision",function(i,c){var m=this,u=o,h=o;return n(t("Integer"),c)||s.$raise(t("TypeError"),"not an Integer"),u=10["$**"](c),h=a(m,u),r(d(c,1))?l(h.$send(i),u).$to_i():s.$Rational(h.$send(i),u)}),m(O,"$from_string",function(t){var o,a,n=t.trimLeft(),i=/^[+-]?[\d_]+(\.[\d_]+)?/,l=n.match(i);function r(){return i.test(n)}function c(){var t=n.match(i),e=t[0];return n=n.slice(e.length),e.replace(/_/g,"")}return r()?(o=parseFloat(c()),n[0]==="/"?(n=n.slice(1),r()?(a=parseFloat(c()),s.$Rational(o,a)):s.$Rational(o,1)):s.$Rational(o,1)):s.$Rational(0,1)}),f(O,"divide","/"),f(O,"quo","/")}("::",t("Numeric"))},Opal.modules["corelib/time"]=function(e){var f=e.slice,x=e.deny_frozen_access,O=e.klass,a=e.Kernel,i=e.Opal,c=e.defs,m=e.eqeqeq,s=e.def,r=e.truthy,b=e.rb_gt,y=e.rb_lt,d=e.send,u=e.rb_plus,p=e.rb_divide,l=e.rb_minus,j=e.range,v=e.neqeq,h=e.rb_le,g=e.eqeq,o=e.alias,_=e.top,w=[],t=e.nil,n=e.$$$;return e.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?"),_.$require("corelib/comparable"),function(_,w,C){var E=O(_,w,"Time"),A=[E].concat(C),S=e.$r(A);E.$include(n("Comparable"));var M=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],F=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],T=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],z=["January","February","March","April","May","June","July","August","September","October","November","December"];c(E,"$at",function(t,s){var o;return n("Time")["$==="](t)?(s!==void 0&&a.$raise(n("TypeError"),"can't convert Time into an exact number"),o=new Date(t.getTime()),o.timezone=t.timezone,o):(t.$$is_number||(t=i["$coerce_to!"](t,n("Integer"),"to_int")),s===void 0?new Date(t*1e3):(s.$$is_number||(s=i["$coerce_to!"](s,n("Integer"),"to_int")),new Date(t*1e3+s/1e3)))},-2);function k(e,s,o,r,c,l){if(e.$$is_string?e=parseInt(e,10):e=i["$coerce_to!"](e,n("Integer"),"to_int"),s===t)s=1;else if(!s.$$is_number)if(s["$respond_to?"]("to_str"))switch(s=s.$to_str(),s.toLowerCase()){case"jan":s=1;break;case"feb":s=2;break;case"mar":s=3;break;case"apr":s=4;break;case"may":s=5;break;case"jun":s=6;break;case"jul":s=7;break;case"aug":s=8;break;case"sep":s=9;break;case"oct":s=10;break;case"nov":s=11;break;case"dec":s=12;break;default:s=s.$to_i()}else s=i["$coerce_to!"](s,n("Integer"),"to_int");return(s<1||s>12)&&a.$raise(n("ArgumentError"),"month out of range: "+s),s=s-1,o===t?o=1:o.$$is_string?o=parseInt(o,10):o=i["$coerce_to!"](o,n("Integer"),"to_int"),(o<1||o>31)&&a.$raise(n("ArgumentError"),"day out of range: "+o),r===t?r=0:r.$$is_string?r=parseInt(r,10):r=i["$coerce_to!"](r,n("Integer"),"to_int"),(r<0||r>24)&&a.$raise(n("ArgumentError"),"hour out of range: "+r),c===t?c=0:c.$$is_string?c=parseInt(c,10):c=i["$coerce_to!"](c,n("Integer"),"to_int"),(c<0||c>59)&&a.$raise(n("ArgumentError"),"min out of range: "+c),l===t?l=0:l.$$is_number||(l.$$is_string?l=parseInt(l,10):l=i["$coerce_to!"](l,n("Integer"),"to_int")),(l<0||l>60)&&a.$raise(n("ArgumentError"),"sec out of range: "+l),[e,s,o,r,c,l]}return c(E,"$new",function(n,s,o,i,a,r,c){var l,d,u,h,m=this;return s==null&&(s=t),o==null&&(o=t),i==null&&(i=t),a==null&&(a=t),r==null&&(r=t),c==null&&(c=t),n===void 0?new Date:(l=k(n,s,o,i,a,r),n=l[0],s=l[1],o=l[2],i=l[3],a=l[4],r=l[5],c===t?(d=new Date(n,s,o,i,a,0,r*1e3),n<100&&d.setFullYear(n),d):(u=m.$_parse_offset(c),h=new Date(Date.UTC(n,s,o,i,a,0,r*1e3)),n<100&&h.setUTCFullYear(n),d=new Date(h.getTime()-u*36e5),d.timezone=u,d))},-1),c(E,"$_parse_offset",function(t){var s,o,i,r;return t.$$is_string?t=="UTC"?s=0:/^[+-]\d\d:[0-5]\d$/.test(t)?(o=t[0],i=+(t[1]+t[2]),r=+(t[4]+t[5]),s=(o=="-"?-1:1)*(i+r/60)):a.$raise(n("ArgumentError"),'"+HH:MM", "-HH:MM", "UTC" expected for utc_offset: '+t):t.$$is_number?s=t/3600:a.$raise(n("ArgumentError"),"Opal doesn't support other types for a timezone argument than Integer and String"),s}),c(E,"$local",function(n,s,o,i,a,r,c,l,d,u){s==null&&(s=t),o==null&&(o=t),i==null&&(i=t),a==null&&(a=t),r==null&&(r=t),c==null&&(c=t),l==null&&(l=t),d==null&&(d=t),u==null&&(u=t);var h,m;return arguments.length===10&&(h=f(arguments),n=h[5],s=h[4],o=h[3],i=h[2],a=h[1],r=h[0]),h=k(n,s,o,i,a,r),n=h[0],s=h[1],o=h[2],i=h[3],a=h[4],r=h[5],m=new Date(n,s,o,i,a,0,r*1e3),n<100&&m.setFullYear(n),m},-2),c(E,"$gm",function(n,s,o,i,a,r,c,l,d,u){s==null&&(s=t),o==null&&(o=t),i==null&&(i=t),a==null&&(a=t),r==null&&(r=t),c==null&&(c=t),l==null&&(l=t),d==null&&(d=t),u==null&&(u=t);var h,m;return arguments.length===10&&(h=f(arguments),n=h[5],s=h[4],o=h[3],i=h[2],a=h[1],r=h[0]),h=k(n,s,o,i,a,r),n=h[0],s=h[1],o=h[2],i=h[3],a=h[4],r=h[5],m=new Date(Date.UTC(n,s,o,i,a,0,r*1e3)),n<100&&m.setUTCFullYear(n),m.timezone=0,m},-2),c(E,"$now",function(){var t=this;return t.$new()}),s(E,"$+",function(t){var s,o=this;return m(n("Time"),t)&&a.$raise(n("TypeError"),"time + time?"),t.$$is_number||(t=i["$coerce_to!"](t,n("Integer"),"to_int")),s=new Date(o.getTime()+t*1e3),s.timezone=o.timezone,s}),s(E,"$-",function(t){var o,s=this;return m(n("Time"),t)?(s.getTime()-t.getTime())/1e3:(t.$$is_number||(t=i["$coerce_to!"](t,n("Integer"),"to_int")),o=new Date(s.getTime()-t*1e3),o.timezone=s.timezone,o)}),s(E,"$<=>",function(s){var i=this,o=t;return m(n("Time"),s)?i.$to_f()["$<=>"](s.$to_f()):(o=s["$<=>"](i),r(o["$nil?"]())?t:r(b(o,0))?-1:r(y(o,0))?1:0)}),s(E,"$==",function(s){var i=this,o=t;return r(o=n("Time")["$==="](s))?i.$to_f()===s.$to_f():o}),s(E,"$asctime",function(){var t=this;return t.$strftime("%a %b %e %H:%M:%S %Y")}),d([["year","getFullYear","getUTCFullYear"],["mon","getMonth","getUTCMonth",1],["wday","getDay","getUTCDay"],["day","getDate","getUTCDate"],["hour","getHours","getUTCHours"],["min","getMinutes","getUTCMinutes"],["sec","getSeconds","getUTCSeconds"]],"each",[],function e(n,s,o,i){var a=e.$$s==null?this:e.$$s;return n==null&&(n=t),s==null&&(s=t),o==null&&(o=t),i==null&&(i=0),d(a,"define_method",[n],function e(){var t=e.$$s==null?this:e.$$s;return i+(t.timezone!=null?new Date(t.getTime()+t.timezone*36e5)[o]():t[s]())},{$$s:a})},{$$arity:-4,$$s:E}),s(E,"$yday",function(){var n=this,s=t,o=t,i=t,s=S("Time").$new(n.$year()).$to_i(),o=S("Time").$new(n.$year(),n.$month(),n.$day()).$to_i(),i=86400;return u(p(l(o,s),i).$round(),1)}),s(E,"$isdst",function(){var t=this,n=new Date(t.getFullYear(),0,1),s=new Date(t.getFullYear(),6,1);return t.getTimezoneOffset()<Math.max(n.getTimezoneOffset(),s.getTimezoneOffset())}),s(E,"$dup",function(){var s=this,n=t,n=new Date(s.getTime());return n.$copy_instance_variables(s),n.$initialize_dup(s),n}),s(E,"$eql?",function(s){var i=this,o=t;return r(o=s["$is_a?"](n("Time")))?i["$<=>"](s)["$zero?"]():o}),d([["sunday?",0],["monday?",1],["tuesday?",2],["wednesday?",3],["thursday?",4],["friday?",5],["saturday?",6]],"each",[],function e(n,s){var o=e.$$s==null?this:e.$$s;return n==null&&(n=t),s==null&&(s=t),d(o,"define_method",[n],function e(){var t=e.$$s==null?this:e.$$s;return t.$wday()===s},{$$s:o})},{$$s:E}),s(E,"$hash",function(){var t=this;return[n("Time"),t.getTime()].$hash()}),s(E,"$inspect",function(){var t=this;return r(t["$utc?"]())?t.$strftime("%Y-%m-%d %H:%M:%S UTC"):t.$strftime("%Y-%m-%d %H:%M:%S %z")}),s(E,"$succ",function(){var t=this,n=new Date(t.getTime()+1e3);return n.timezone=t.timezone,n}),s(E,"$usec",function(){var t=this;return t.getMilliseconds()*1e3}),s(E,"$zone",function(){var n,s,o=this;return o.timezone===0?"UTC":o.timezone!=null?t:(n=o.toString(),n.indexOf("(")==-1?s=n.match(/[A-Z]{3,4}/)[0]:s=n.match(/\((.+)\)(?:\s|$)/)[1],s=="GMT"&&/(GMT\W*\d{4})/.test(n)?RegExp.$1:s)}),s(E,"$getgm",function(){var n=this,t=new Date(n.getTime());return t.timezone=0,t}),s(E,"$gmtime",function(){var t=this;return t.timezone!==0&&(x(t),t.timezone=0),t}),s(E,"$gmt?",function(){var t=this;return t.timezone===0}),s(E,"$gmt_offset",function(){var t=this;return t.timezone!=null?t.timezone*60:-t.getTimezoneOffset()*60}),s(E,"$strftime",function(t){var n=this;return t.replace(/%([-_#^0]*:{0,2})(\d+)?([EO]*)(.)/g,function(e,t,s,o,i){var d,u,h,a="",c=t.indexOf("0")!==-1,v=t.indexOf("-")===-1,r=t.indexOf("_")!==-1,b=t.indexOf("^")!==-1,y=t.indexOf("#")!==-1,f=(t.match(":")||[]).length;switch(s=parseInt(s,10),c&&r&&(t.indexOf("0")<t.indexOf("_")?c=!1:r=!1),i){case"Y":a+=n.$year();break;case"C":c=!r,a+=Math.round(n.$year()/100);break;case"y":c=!r,a+=n.$year()%100;break;case"m":c=!r,a+=n.$mon();break;case"B":a+=z[n.$mon()-1];break;case"b":case"h":r=!c,a+=T[n.$mon()-1];break;case"d":c=!r,a+=n.$day();break;case"e":r=!c,a+=n.$day();break;case"j":c=!r,s=isNaN(s)?3:s,a+=n.$yday();break;case"H":c=!r,a+=n.$hour();break;case"k":r=!c,a+=n.$hour();break;case"I":c=!r,a+=n.$hour()%12||12;break;case"l":r=!c,a+=n.$hour()%12||12;break;case"P":a+=n.$hour()>=12?"pm":"am";break;case"p":a+=n.$hour()>=12?"PM":"AM";break;case"M":c=!r,a+=n.$min();break;case"S":c=!r,a+=n.$sec();break;case"L":c=!r,s=isNaN(s)?3:s,a+=n.getMilliseconds();break;case"N":s=isNaN(s)?9:s,a+=n.getMilliseconds().toString().$rjust(3,"0"),a=a.$ljust(s,"0");break;case"z":var m=n.timezone==null?n.getTimezoneOffset():-n.timezone*60,p=Math.floor(Math.abs(m)/60),g=Math.abs(m)%60;a+=m<0?"+":"-",a+=p<10?"0":"",a+=p,f>0&&(a+=":"),a+=g<10?"0":"",a+=g,f>1&&(a+=":00");break;case"Z":a+=n.$zone();break;case"A":a+=M[n.$wday()];break;case"a":a+=F[n.$wday()];break;case"u":a+=n.$wday()+1;break;case"w":a+=n.$wday();break;case"V":a+=n.$cweek_cyear()["$[]"](0).$to_s().$rjust(2,"0");break;case"G":a+=n.$cweek_cyear()["$[]"](1);break;case"g":a+=n.$cweek_cyear()["$[]"](1)["$[]"](j(-2,-1,!1));break;case"s":a+=n.$to_i();break;case"n":a+=`
`;break;case"t":a+=" ";break;case"%":a+="%";break;case"c":a+=n.$strftime("%a %b %e %T %Y");break;case"D":case"x":a+=n.$strftime("%m/%d/%y");break;case"F":a+=n.$strftime("%Y-%m-%d");break;case"v":a+=n.$strftime("%e-%^b-%4Y");break;case"r":a+=n.$strftime("%I:%M:%S %p");break;case"R":a+=n.$strftime("%H:%M");break;case"T":case"X":a+=n.$strftime("%H:%M:%S");break;case"J":if(h=n.$to_date().$jd(),h<2405160){a+=n.$strftime("%Y-%m-%d");break}h<2419614?(u="M",d=1867):h<2424875?(u="T",d=1911):h<2447535?(u="S",d=1925):h<2458605?(u="H",d=1988):(u="R",d=2018),a+=n.$format("%c%02d",u,l(n.$year(),d)),a+=n.$strftime("-%m-%d");break;default:return e}return b&&(a=a.toUpperCase()),y&&(a=a.replace(/[A-Z]/,function(e){e.toLowerCase()}).replace(/[a-z]/,function(e){e.toUpperCase()})),v&&(c||r)&&(a=a.$rjust(isNaN(s)?2:s,r?" ":"0")),a})}),s(E,"$to_a",function(){var t=this;return[t.$sec(),t.$min(),t.$hour(),t.$day(),t.$month(),t.$year(),t.$wday(),t.$yday(),t.$isdst(),t.$zone()]}),s(E,"$to_f",function(){var t=this;return t.getTime()/1e3}),s(E,"$to_i",function(){var t=this;return parseInt(t.getTime()/1e3,10)}),s(E,"$cweek_cyear",function(){var s=this,m=t,o=t,b=t,c=t,i=t,a=t,f=t,d=t,m=n("Time").$new(s.$year(),1,1),o=m.$wday(),b=0,c=s.$year();return r(h(o,4))&&v(o,0)?i=l(o,1):(i=l(l(o,7),1),g(i,-8)&&(i=-1)),a=p(u(s.$yday(),i),7).$ceil(),r(h(a,0))?n("Time").$new(l(s.$year(),1),12,31).$cweek_cyear():(g(a,53)&&(f=n("Time").$new(s.$year(),12,31),d=f.$wday(),r(h(d,3))&&v(d,0)&&(a=1,c=u(c,1))),[a,c])}),function(e){return o(e,"mktime","local"),o(e,"utc","gm")}(e.get_singleton_class(E),A),o(E,"ctime","asctime"),o(E,"dst?","isdst"),o(E,"getutc","getgm"),o(E,"gmtoff","gmt_offset"),o(E,"mday","day"),o(E,"month","mon"),o(E,"to_s","inspect"),o(E,"tv_sec","to_i"),o(E,"tv_usec","usec"),o(E,"utc","gmtime"),o(E,"utc?","gmt?"),o(E,"utc_offset","gmt_offset")}("::",Date,w)},Opal.modules["corelib/struct"]=function(e){var y=e.klass,r=e.slice,E=e.extract_kwargs,C=e.ensure_kwargs,w=e.hash_get,o=e.truthy,_=e.neqeq,m=e.eqeq,u=e.Opal,s=e.send,j=e.Class,f=e.to_a,i=e.def,l=e.defs,a=e.Kernel,g=e.rb_gt,b=e.rb_minus,c=e.eqeqeq,p=e.rb_lt,v=e.rb_ge,d=e.rb_plus,h=e.alias,O=e.top,x=[],t=e.nil,n=e.$$$;return e.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"),O.$require("corelib/enumerable"),function(O,x,k){var S,A=y(O,x,"Struct"),M=[A].concat(k),F=e.$r(M);return A.$include(n("Enumerable")),l(A,"$new",function a(c){var h,g,v,b,y=a.$$p||t,O=this,p=t;if(a.$$p=null,b=r(arguments,1),g=E(b),g=C(g),h=b,v=w(g,"keyword_init"),v==null&&(v=!1),o(c))if(m(c.$class(),n("String"))&&_(c["$[]"](0).$upcase(),c["$[]"](0)))h.$unshift(c),c=t;else try{c=u["$const_name!"](c)}catch(s){if(e.rescue(s,[n("TypeError"),n("NameError")]))try{h.$unshift(c),c=t}finally{e.pop_exception(s)}else throw s}return s(h,"map",[],function(s){return s==null&&(s=t),u["$coerce_to!"](s,n("String"),"to_str")}),p=s(j,"new",[O],function n(){var o=n.$$s==null?this:n.$$s;return s(h,"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s.$define_struct_attribute(n)},{$$s:o}),function(e){return i(e,"$new",function(){var c=this,o=t,i=r(arguments),a=i,o=c.$allocate();return o.$$data={},s(o,"initialize",f(a)),o},-1),e.$alias_method("[]","new")}(e.get_singleton_class(o),M)},{$$s:O}),o(y)&&s(p,"module_eval",[],y.$to_proc()),p.$$keyword_init=v,o(c)&&n("Struct").$const_set(c,p),p},-2),l(A,"$define_struct_attribute",function(o){var i=this;return m(i,n("Struct"))&&a.$raise(n("ArgumentError"),"you cannot define attributes to the Struct class"),i.$members()["$<<"](o),s(i,"define_method",[o],function e(){var t=e.$$s==null?this:e.$$s;return t.$$data[o]},{$$s:i}),s(i,"define_method",[""+o+"="],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s.$$data[o]=n},{$$s:i})}),l(A,"$members",function(){var s=this,i=t;return s.members==null&&(s.members=t),m(s,n("Struct"))&&a.$raise(n("ArgumentError"),"the Struct class has no members"),s.members=o(i=s.members)?i:[]}),l(A,"$inherited",function(n){var o=this,i=t;return o.members==null&&(o.members=t),i=o.members,s(n,"instance_eval",[],function e(){var t=e.$$s==null?this:e.$$s;return t.members=i},{$$s:o})}),i(A,"$initialize",function(){var c=this,d=t,h=t,u=t,m=r(arguments),l=m;return o(c.$class().$$keyword_init)?(d=o(h=l.$last())?h:new Map,(o(g(l.$length(),1))||o(l.length===1&&!d.$$is_hash))&&a.$raise(n("ArgumentError"),"wrong number of arguments (given "+l.$length()+", expected 0)"),u=b(d.$keys(),c.$class().$members()),o(u["$any?"]())&&a.$raise(n("ArgumentError"),"unknown keywords: "+u.$join(", ")),s(c.$class().$members(),"each",[],function e(n){var o,i=e.$$s==null?this:e.$$s;return n==null&&(n=t),(o=[n,d["$[]"](n)],s(i,"[]=",o),o[o.length-1])},{$$s:c})):(o(g(l.$length(),c.$class().$members().$length()))&&a.$raise(n("ArgumentError"),"struct size differs"),s(c.$class().$members(),"each_with_index",[],function e(n,o){var i,a=e.$$s==null?this:e.$$s;return n==null&&(n=t),o==null&&(o=t),(i=[n,l["$[]"](o)],s(a,"[]=",i),i[i.length-1])},{$$s:c}))},-1),i(A,"$initialize_copy",function(t){var n,s,o,a,i=this;i.$$data={},s=Object.keys(t.$$data);for(n=0,a=s.length;n<a;n++)o=s[n],i.$$data[o]=t.$$data[o]}),l(A,"$keyword_init?",function(){var t=this;return t.$$keyword_init}),i(A,"$members",function(){var t=this;return t.$class().$members()}),i(A,"$hash",function(){var t=this;return[t.$class(),t.$to_a()].$hash()}),i(A,"$[]",function(t){var s=this;return c(n("Integer"),t)?(o(p(t,s.$class().$members().$size()["$-@"]()))&&a.$raise(n("IndexError"),"offset "+t+" too small for struct(size:"+s.$class().$members().$size()+")"),o(v(t,s.$class().$members().$size()))&&a.$raise(n("IndexError"),"offset "+t+" too large for struct(size:"+s.$class().$members().$size()+")"),t=s.$class().$members()["$[]"](t)):c(n("String"),t)?s.$$data.hasOwnProperty(t)||a.$raise(n("NameError").$new("no member '"+t+"' in struct",t)):a.$raise(n("TypeError"),"no implicit conversion of "+t.$class()+" into Integer"),t=u["$coerce_to!"](t,n("String"),"to_str"),s.$$data[t]}),i(A,"$[]=",function(t,s){var i=this;return c(n("Integer"),t)?(o(p(t,i.$class().$members().$size()["$-@"]()))&&a.$raise(n("IndexError"),"offset "+t+" too small for struct(size:"+i.$class().$members().$size()+")"),o(v(t,i.$class().$members().$size()))&&a.$raise(n("IndexError"),"offset "+t+" too large for struct(size:"+i.$class().$members().$size()+")"),t=i.$class().$members()["$[]"](t)):c(n("String"),t)?o(i.$class().$members()["$include?"](t.$to_sym()))||a.$raise(n("NameError").$new("no member '"+t+"' in struct",t)):a.$raise(n("TypeError"),"no implicit conversion of "+t.$class()+" into Integer"),t=u["$coerce_to!"](t,n("String"),"to_str"),i.$$data[t]=s}),i(A,"$==",function(t){if(s=this,!o(t["$instance_of?"](s.$class())))return!1;var s,i={},a={};function r(e,t){var s,o,c;i[e.$__id__()]=!0,a[t.$__id__()]=!0;for(c in e.$$data)if(s=e.$$data[c],o=t.$$data[c],n("Struct")["$==="](s)){if((!i.hasOwnProperty(s.$__id__())||!a.hasOwnProperty(o.$__id__()))&&!r(s,o))return!1}else if(!s["$=="](o))return!1;return!0}return r(s,t)}),i(A,"$eql?",function(t){if(s=this,!o(t["$instance_of?"](s.$class())))return!1;var s,i={},a={};function r(e,t){var s,o,c;i[e.$__id__()]=!0,a[t.$__id__()]=!0;for(c in e.$$data)if(s=e.$$data[c],o=t.$$data[c],n("Struct")["$==="](s)){if((!i.hasOwnProperty(s.$__id__())||!a.hasOwnProperty(o.$__id__()))&&!r(s,o))return!1}else if(!s["$eql?"](o))return!1;return!0}return r(s,t)}),i(A,"$each",function n(){var i=n.$$p||t,o=this;return n.$$p=null,i!==t?(s(o.$class().$members(),"each",[],function n(s){var o=n.$$s==null?this:n.$$s;return s==null&&(s=t),e.yield1(i,o["$[]"](s))},{$$s:o}),o):s(o,"enum_for",["each"],function e(){var t=e.$$s==null?this:e.$$s;return t.$size()},{$$s:o})}),i(A,"$each_pair",function n(){var i=n.$$p||t,o=this;return n.$$p=null,i!==t?(s(o.$class().$members(),"each",[],function n(s){var o=n.$$s==null?this:n.$$s;return s==null&&(s=t),e.yield1(i,[s,o["$[]"](s)])},{$$s:o}),o):s(o,"enum_for",["each_pair"],function e(){var t=e.$$s==null?this:e.$$s;return t.$size()},{$$s:o})}),i(A,"$length",function(){var t=this;return t.$class().$members().$length()}),i(A,"$to_a",function(){var n=this;return s(n.$class().$members(),"map",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s["$[]"](n)},{$$s:n})}),S=[],i(A,"$inspect",function(){var a=this,i=t,r=t;return function(){try{return i="#<struct ",o(S["$include?"](a.$__id__()))?d(i,":...>"):(S["$<<"](a.$__id__()),r=!0,c(n("Struct"),a)&&o(a.$class().$name())&&(i=d(i,""+a.$class()+" ")),i=d(i,s(a.$each_pair(),"map",[],function(n,s){return n==null&&(n=t),s==null&&(s=t),""+n+"="+F("Opal").$inspect(s)}).$join(", ")),i=d(i,">"),i)}finally{o(r)?S.pop():t}}()}),i(A,"$to_h",function e(){var a,c,i=e.$$p||t,o=this;return e.$$p=null,a=r(arguments),c=a,i!==t?s(s(o,"map",[],i.$to_proc()),"to_h",f(c)):s(o.$class().$members(),"each_with_object",[new Map],function e(n,o){var i,a=e.$$s==null?this:e.$$s;return n==null&&(n=t),o==null&&(o=t),(i=[n,a["$[]"](n)],s(o,"[]=",i),i[i.length-1])},{$$s:o})},-1),i(A,"$values_at",function(){for(var d,u=this,d=r(arguments),i=d,i=s(i,"map",[],function(n){return n==null&&(n=t),n.$$is_range?n.$to_a():n}).$flatten(),l=[],c=0,h=i.length;c<h;c++)i[c].$$is_number||a.$raise(n("TypeError"),"no implicit conversion of "+i[c].$class()+" into Integer"),l.push(u["$[]"](i[c]));return l},-1),i(A,"$dig",function(i){var u=this,l=t,h=r(arguments,1),d=h,l=o(i.$$is_string&&u.$$data.hasOwnProperty(i))?u.$$data[i]||t:t;return l===t||d.length===0?l:(o(l["$respond_to?"]("dig"))||a.$raise(n("TypeError"),""+l.$class()+" does not have #dig method"),s(l,"dig",f(d)))},-2),h(A,"size","length"),h(A,"to_s","inspect"),h(A,"values","to_a")}("::",null,x)},Opal.modules["corelib/set"]=function(e){var u=e.freeze,g=e.klass,f=e.slice,m=e.defs,o=e.truthy,h=e.eqeqeq,r=e.Kernel,s=e.send,n=e.def,c=e.eqeq,l=e.rb_lt,d=e.rb_le,i=e.alias,p=[],t=e.nil,a=e.$$$;return e.add_stubs("include,new,nil?,===,raise,each,add,merge,class,respond_to?,subtract,dup,join,to_a,equal?,instance_of?,==,instance_variable_get,size,is_a?,all?,include?,[]=,enum_for,[],<<,replace,compare_by_identity,name,compare_by_identity?,delete,select,frozen?,freeze,reject,delete_if,to_proc,keep_if,each_key,empty?,eql?,instance_eval,clear,<,<=,any?,!,intersect?,keys,|,proper_subset?,subset?,proper_superset?,superset?,-,select!,collect!"),function(p,v,b){var j=g(p,v,"Set"),w=[j].concat(b),O=e.$r(w),_=t,x=j.$$prototype;x.hash=t,j.$include(a("Enumerable")),m(j,"$[]",function(){var o=this,n=f(arguments),s=n;return o.$new(s)},-1),n(j,"$initialize",function n(i){var l=n.$$p||t,c=this;return n.$$p=null,i==null&&(i=t),c.hash=new Map,o(i["$nil?"]())?t:(h(a("Enumerable"),i)||r.$raise(a("ArgumentError"),"value must be enumerable"),o(l)?s(i,"each",[],function n(s){var o=n.$$s==null?this:n.$$s;return s==null&&(s=t),o.$add(e.yield1(l,s))},{$$s:c}):c.$merge(i))},-1),n(j,"$dup",function(){var n=this,s=t,s=n.$class().$new();return s.$merge(n)}),n(j,"$-",function(t){var n=this;return o(t["$respond_to?"]("each"))||r.$raise(a("ArgumentError"),"value must be enumerable"),n.$dup().$subtract(t)}),n(j,"$inspect",function(){var t=this;return"#<Set: {"+t.$to_a().$join(",")+"}>"}),n(j,"$==",function(n){var i=this;return!!o(i["$equal?"](n))||(o(n["$instance_of?"](i.$class()))?i.hash["$=="](n.$instance_variable_get("@hash")):!!(o(n["$is_a?"](a("Set")))&&c(i.$size(),n.$size()))&&s(n,"all?",[],function e(n){var s=e.$$s==null?this:e.$$s;return s.hash==null&&(s.hash=t),n==null&&(n=t),s.hash["$include?"](n)},{$$s:i}))}),n(j,"$add",function(t){var n=this;return n.hash["$[]="](t,!0),n}),n(j,"$classify",function n(){var r=n.$$p||t,o=this,i=t;return n.$$p=null,r!==t?(i=s(a("Hash"),"new",[],function e(n,o){var i,a=e.$$s==null?this:e.$$s;return n==null&&(n=t),o==null&&(o=t),(i=[o,a.$class().$new()],s(n,"[]=",i),i[i.length-1])},{$$s:o}),s(o,"each",[],function(s){return s==null&&(s=t),i["$[]"](e.yield1(r,s)).$add(s)}),i):o.$enum_for("classify")}),n(j,"$collect!",function n(){var a=n.$$p||t,o=this,i=t;return n.$$p=null,a!==t?(i=o.$class().$new(),s(o,"each",[],function(s){return s==null&&(s=t),i["$<<"](e.yield1(a,s))}),o.$replace(i)):o.$enum_for("collect!")}),n(j,"$compare_by_identity",function(){var t=this;return o(t.hash["$respond_to?"]("compare_by_identity"))?(t.hash.$compare_by_identity(),t):t.$raise(O("NotImplementedError"),""+t.$class().$name()+"#"+"compare_by_identity"+" is not implemented")}),n(j,"$compare_by_identity?",function(){var n=this,s=t;return o(s=n.hash["$respond_to?"]("compare_by_identity?"))?n.hash["$compare_by_identity?"]():s}),n(j,"$delete",function(t){var n=this;return n.hash.$delete(t),n}),n(j,"$delete?",function(n){var s=this;return o(s["$include?"](n))?(s.$delete(n),s):t}),n(j,"$delete_if",function n(){var i=n.$$p||t,o=this;return n.$$p=null,i!==t?(s(s(o,"select",[],function(s){return s==null&&(s=t),e.yield1(i,s)}),"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return s.hash==null&&(s.hash=t),n==null&&(n=t),s.hash.$delete(n)},{$$s:o}),o):o.$enum_for("delete_if")}),n(j,"$freeze",function(){var t=this;return o(t["$frozen?"]())?t:(t.hash.$freeze(),u(t))}),n(j,"$keep_if",function n(){var i=n.$$p||t,o=this;return n.$$p=null,i!==t?(s(s(o,"reject",[],function(s){return s==null&&(s=t),e.yield1(i,s)}),"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return s.hash==null&&(s.hash=t),n==null&&(n=t),s.hash.$delete(n)},{$$s:o}),o):o.$enum_for("keep_if")}),n(j,"$reject!",function e(){var o=e.$$p||t,n=this,i=t;return e.$$p=null,o!==t?(i=n.$size(),s(n,"delete_if",[],o.$to_proc()),c(n.$size(),i)?t:n):n.$enum_for("reject!")}),n(j,"$select!",function e(){var o=e.$$p||t,n=this,i=t;return e.$$p=null,o!==t?(i=n.$size(),s(n,"keep_if",[],o.$to_proc()),c(n.$size(),i)?t:n):n.$enum_for("select!")}),n(j,"$add?",function(n){var s=this;return o(s["$include?"](n))?t:s.$add(n)}),n(j,"$each",function e(){var o=e.$$p||t,n=this;return e.$$p=null,o!==t?(s(n.hash,"each_key",[],o.$to_proc()),n):n.$enum_for("each")}),n(j,"$empty?",function(){var t=this;return t.hash["$empty?"]()}),n(j,"$eql?",function(n){var o=this;return o.hash["$eql?"](s(n,"instance_eval",[],function e(){var n=e.$$s==null?this:e.$$s;return n.hash==null&&(n.hash=t),n.hash},{$$s:o}))}),n(j,"$clear",function(){var t=this;return t.hash.$clear(),t}),n(j,"$include?",function(t){var n=this;return n.hash["$include?"](t)}),n(j,"$merge",function(n){var o=this;return s(n,"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s.$add(n)},{$$s:o}),o}),n(j,"$replace",function(t){var n=this;return n.$clear(),n.$merge(t),n}),n(j,"$size",function(){var t=this;return t.hash.$size()}),n(j,"$subtract",function(n){var o=this;return s(n,"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s.$delete(n)},{$$s:o}),o}),n(j,"$|",function(t){var n=this;return o(t["$respond_to?"]("each"))||r.$raise(a("ArgumentError"),"value must be enumerable"),n.$dup().$merge(t)});function y(e){o(_=e["$is_a?"](a("Set")))?_:r.$raise(a("ArgumentError"),"value must be a set")}return n(j,"$superset?",function(n){var i=this;return y(n),!o(l(i.$size(),n.$size()))&&s(n,"all?",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s["$include?"](n)},{$$s:i})}),n(j,"$proper_superset?",function(n){var i=this;return y(n),!o(d(i.$size(),n.$size()))&&s(n,"all?",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s["$include?"](n)},{$$s:i})}),n(j,"$subset?",function(n){var i=this;return y(n),!o(l(n.$size(),i.$size()))&&s(i,"all?",[],function(s){return s==null&&(s=t),n["$include?"](s)})}),n(j,"$proper_subset?",function(n){var i=this;return y(n),!o(d(n.$size(),i.$size()))&&s(i,"all?",[],function(s){return s==null&&(s=t),n["$include?"](s)})}),n(j,"$intersect?",function(n){var i=this;return y(n),o(l(i.$size(),n.$size()))?s(i,"any?",[],function(s){return s==null&&(s=t),n["$include?"](s)}):s(n,"any?",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s["$include?"](n)},{$$s:i})}),n(j,"$disjoint?",function(t){var n=this;return n["$intersect?"](t)["$!"]()}),n(j,"$to_a",function(){var t=this;return t.hash.$keys()}),i(j,"+","|"),i(j,"<","proper_subset?"),i(j,"<<","add"),i(j,"<=","subset?"),i(j,">","proper_superset?"),i(j,">=","superset?"),i(j,"difference","-"),i(j,"filter!","select!"),i(j,"length","size"),i(j,"map!","collect!"),i(j,"member?","include?"),i(j,"union","|")}("::",null,p)},Opal.modules["corelib/dir"]=function(e){var s=e.klass,t=e.def,o=e.truthy,i=e.alias,a=[],n=e.nil,r=e.$$$;return e.add_stubs("[],pwd"),function(a,c,l){var d=s(a,c,"Dir"),u=[d].concat(l);return function(s){return t(s,"$chdir",function t(s){var i=t.$$p||n,o=n;return t.$$p=null,function(){try{return o=e.current_dir,e.current_dir=s,e.yieldX(i,[])}finally{e.current_dir=o}}()}),t(s,"$pwd",function(){return e.current_dir||"."}),t(s,"$home",function(){var t=n;return o(t=r("ENV")["$[]"]("HOME"))?t:"."}),i(s,"getwd","pwd")}(e.get_singleton_class(d),u)}("::",null,a)},Opal.modules["corelib/file"]=function(e){var n=e.truthy,b=e.klass,r=e.const_set,u=e.Opal,s=e.regexp,a=e.rb_plus,o=e.def,d=e.Kernel,c=e.eqeq,f=e.rb_lt,h=e.rb_minus,p=e.range,l=e.send,g=e.slice,m=e.alias,v=[],t=e.nil,i=e.$$$;return e.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,j,y){var O=b(v,j,"File"),_=[O].concat(y),w=t;return r(_[0],"Separator",r(_[0],"SEPARATOR","/")),r(_[0],"ALT_SEPARATOR",t),r(_[0],"PATH_SEPARATOR",":"),r(_[0],"FNM_SYSCASE",0),w=/^[a-zA-Z]:(?:\\|\/)/,function(r,v){var _=[r].concat(v),b=e.$r(_);o(r,"$absolute_path",function(o,r){var d,g,x,h=t,l=t,c=t,O=t,_=t,y=t,f=t,v=t,m=t,p=t;r==null&&(r=t),h=b("SEPARATOR"),l=j(),c=[],o=n(o["$respond_to?"]("to_path"))?o.$to_path():o,o=u["$coerce_to!"](o,i("String"),"to_str"),r=n(O=r)?O:i("Dir").$pwd(),_=o.substr(0,h.length)===h||w.test(o),y=r.substr(0,h.length)===h||w.test(r),n(_)?(f=o.$split(s(["[",l,"]"])),v=w.test(o)?"":o.$sub(s(["^([",l,"]+).*$"]),"\\1"),m=!0):(f=a(r.$split(s(["[",l,"]"])),o.$split(s(["[",l,"]"]))),v=w.test(r)?"":r.$sub(s(["^([",l,"]+).*$"]),"\\1"),m=y);for(g=0,x=f.length;g<x;g++){if(d=f[g],d===t||d===""&&(c.length===0||m)||d==="."&&(c.length===0||m))continue;d===".."?c.pop():c.push(d)}return!m&&f[0]!=="."&&c.$unshift("."),p=c.$join(h),n(m)&&(p=a(v,p)),p},-2),o(r,"$expand_path",function(o,r){var f=this,l=t,h=t,c=t,m=t,u=t;return r==null&&(r=t),l=b("SEPARATOR"),h=j(),n(o[0]==="~"||r&&r[0]==="~")&&(c=b("Dir").$home(),n(c)||d.$raise(i("ArgumentError"),"couldn't find HOME environment -- expanding `~'"),m=w.test(c)?"":c.$sub(s(["^([",h,"]+).*$"]),"\\1"),n(c["$start_with?"](m))||d.$raise(i("ArgumentError"),"non-absolute home"),c=a(c,l),u=s(["^\\~(?:",l,"|$)"]),o=o.$sub(u,c),n(r)&&(r=r.$sub(u,c))),f.$absolute_path(o,r)},-2);function y(e){return n(e["$respond_to?"]("to_path"))&&(e=e.$to_path()),e=u["$coerce_to!"](e,i("String"),"to_str"),e}function j(){return b("ALT_SEPARATOR")===t?e.escape_regexp(b("SEPARATOR")):e.escape_regexp(a(b("SEPARATOR"),b("ALT_SEPARATOR")))}return o(r,"$dirname",function(s,o){var r,l,u=this,a=t;return o==null&&(o=1),c(o,0)?s:(n(f(o,0))&&d.$raise(i("ArgumentError"),"level can't be negative"),a=j(),s=y(s),l=s.match(new RegExp("^["+a+"]")),s=s.replace(new RegExp("["+a+"]+$"),""),s=s.replace(new RegExp("[^"+a+"]+$"),""),s=s.replace(new RegExp("["+a+"]+$"),""),s===""?r=l?"/":".":r=s,o==1?r:u.$dirname(r,h(o,1)))},-2),o(r,"$basename",function(s,o){var a=t;return o==null&&(o=t),a=j(),s=y(s),s.length==0?s:(o!==t?o=u["$coerce_to!"](o,i("String"),"to_str"):o=null,s=s.replace(new RegExp("(.)["+a+"]*$"),"$1"),s=s.replace(new RegExp("^(?:.*["+a+"])?([^"+a+"]+)$"),"$1"),o===".*"?s=s.replace(/\.[^.]+$/,""):o!==null&&(o=e.escape_regexp(o),s=s.replace(new RegExp(""+o+"$"),"")),s)},-2),o(r,"$extname",function(o){var l=this,i=t,r=t;return o=y(o),i=l.$basename(o),n(i["$empty?"]())?"":(r=i["$[]"](p(1,-1,!1)).$rindex("."),n(r["$nil?"]())||c(a(r,1),h(i.$length(),1))?"":i["$[]"](e.Range.$new(a(r,1),-1,!1)))}),o(r,"$exist?",function(n){return e.modules[n]!=null}),o(r,"$directory?",function(o){var a,i=t,i=[];for(a in e.modules)i.push(a);return o=o.$gsub(s(["(^.",b("SEPARATOR"),"+|",b("SEPARATOR"),"+$)"])),l(i,"find",[],function(n){return n==null&&(n=t),n["$=~"](s(["^",o]))})}),o(r,"$join",function(){var r=t,d=g(arguments),i=d;return n(i["$empty?"]())?"":(r="",i=l(i.$flatten().$each_with_index(),"map",[],function(s,o){return s==null&&(s=t),o==null&&(o=t),c(o,0)&&n(s["$empty?"]())?b("SEPARATOR"):c(i.$length(),a(o,1))&&n(s["$empty?"]())?b("SEPARATOR"):s}),i=l(i,"reject",[],"empty?".$to_proc()),l(i,"each_with_index",[],function(o,c){var l=t;return o==null&&(o=t),c==null&&(c=t),l=i["$[]"](a(c,1)),n(l["$nil?"]())?r=""+r+o:(n(o["$end_with?"](b("SEPARATOR")))&&n(l["$start_with?"](b("SEPARATOR")))&&(o=o.$sub(s([b("SEPARATOR"),"+$"]),"")),r=n(o["$end_with?"](b("SEPARATOR")))||n(l["$start_with?"](b("SEPARATOR")))?""+r+o:""+r+o+b("SEPARATOR"))}),r)},-1),o(r,"$split",function(t){return t.$split(b("SEPARATOR"))}),m(r,"realpath","expand_path"),m(r,"exists?","exist?")}(e.get_singleton_class(O),_)}("::",i("IO"),v)},Opal.modules["corelib/process/base"]=function(e){var t=e.klass,o=e.slice,n=e.defs,i=e.return_val,s=e.nil;return function(e,i){var a=t(e,i,"Signal");return n(a,"$trap",function(){var n=o(arguments),i=n;return s},-1)}("::",null),function(e,o){var a=t(e,o,"GC");return n(a,"$start",i(s))}("::",null)},Opal.modules["corelib/process"]=function(e){var a=e.module,s=e.defs,o=e.truthy,r=e.return_val,i=e.Kernel,t=e.nil,n=e.$$$;return e.add_stubs("const_set,size,<<,__register_clock__,to_f,now,new,[],raise"),function(c){var u,l=a(c,"Process"),d=t;return l.__clocks__=[],s(l,"$__register_clock__",function(n,s){var o=this;return o.__clocks__==null&&(o.__clocks__=t),o.$const_set(n,o.__clocks__.$size()),o.__clocks__["$<<"](s)}),l.$__register_clock__("CLOCK_REALTIME",function(){return Date.now()}),d=!1,e.global.performance?d=function(){return performance.now()}:e.global.process&&process.hrtime&&(u=process.hrtime(),d=function(){var e=process.hrtime(u),t=e[1]/1e3|0;return e[0]*1e3+t/1e3}),o(d)&&l.$__register_clock__("CLOCK_MONOTONIC",d),s(l,"$pid",r(0)),s(l,"$times",function(){var s=t,s=n("Time").$now().$to_f();return n(n("Benchmark"),"Tms").$new(s,s,s,s,s)}),s(l,"$clock_gettime",function(s,a){var r,c=this,l=t,d=t;switch(c.__clocks__==null&&(c.__clocks__=t),a==null&&(a="float_second"),o(l=d=c.__clocks__["$[]"](s))?l:i.$raise(n(n("Errno"),"EINVAL"),"clock_gettime("+s+") "+c.__clocks__["$[]"](s)),r=d(),a){case"float_second":return r/1e3;case"float_millisecond":return r/1;case"float_microsecond":return r*1e3;case"second":return r/1e3|0;case"millisecond":return r/1|0;case"microsecond":return r*1e3|0;case"nanosecond":return r*1e6|0;default:i.$raise(n("ArgumentError"),"unexpected unit: "+a)}},-2)}("::")},Opal.modules["corelib/random/formatter"]=function(e){var r=e.klass,c=e.module,s=e.def,o=e.range,i=e.send,l=e.rb_divide,a=e.Kernel,d=e.Opal,u=[],t=e.nil,n=e.$$$;return e.add_stubs("_verify_count,bytes,encode,strict_encode64,random_bytes,urlsafe_encode64,split,hex,[]=,[],map,to_proc,join,times,<<,|,ord,/,abs,random_float,raise,coerce_to!,flatten,new,random_number,length,include,extend"),function(u,h,m){var f=r(u,h,"Random"),p=[f].concat(m);return function(r,u){var h=c(r,"Formatter"),m=[h].concat(u),f=e.$r(m);return s(h,"$hex",function(s){var o,i,a,r=this;s==null&&(s=t),s=n("Random").$_verify_count(s);for(a=r.$bytes(s),i="",o=0;o<s;o++)i+=a.charCodeAt(o).toString(16).padStart(2,"0");return i.$encode("US-ASCII")},-1),s(h,"$random_bytes",function(n){var s=this;return n==null&&(n=t),s.$bytes(n)},-1),s(h,"$base64",function(s){var o=this;return s==null&&(s=t),n("Base64").$strict_encode64(o.$random_bytes(s)).$encode("US-ASCII")},-1),s(h,"$urlsafe_base64",function(s,o){var i=this;return s==null&&(s=t),o==null&&(o=!1),n("Base64").$urlsafe_encode64(i.$random_bytes(s),o).$encode("US-ASCII")},-1),s(h,"$uuid",function(){var s=this,n=t,n=s.$hex(16).$split("");return n["$[]="](12,"4"),n["$[]="](16,(parseInt(n["$[]"](16),16)&3|8).toString(16)),n=[n["$[]"](o(0,8,!0)),n["$[]"](o(8,12,!0)),n["$[]"](o(12,16,!0)),n["$[]"](o(16,20,!0)),n["$[]"](o(20,32,!0))],n=i(n,"map",[],"join".$to_proc()),n.$join("-")}),s(h,"$random_float",function(){var o=this,s=t,n=t,s=o.$bytes(4),n=0;return i(4,"times",[],function(o){return o==null&&(o=t),n=n["$<<"](8),n=n["$|"](s["$[]"](o).$ord())}),l(n.$abs(),2147483647)}),s(h,"$random_number",function(s){var r=this;function o(){return r.$random_float()}function i(e){return Math.floor(o()*e)}function c(){var n,e=s.begin,o=s.end;return e===t||o===t?t:(n=o-e,n<0?t:n===0?e:(o%1===0&&e%1===0&&!s.excl&&n++,i(n)+e))}return s==null?o():s.$$is_range?c():s.$$is_number?(s<=0&&a.$raise(n("ArgumentError"),"invalid argument - "+s),s%1===0?i(s):o()*s):(s=d["$coerce_to!"](s,n("Integer"),"to_int"),s<=0&&a.$raise(n("ArgumentError"),"invalid argument - "+s),i(s))},-1),s(h,"$alphanumeric",function(s){var r=this,a=t;return s==null&&(s=t),s=f("Random").$_verify_count(s),a=i([o("0","9",!1),o("a","z",!1),o("A","Z",!1)],"map",[],"to_a".$to_proc()).$flatten(),i(n("Array"),"new",[s],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),a["$[]"](s.$random_number(a.$length()))},{$$s:r}).$join()},-1)}(f,p),f.$include(n(n("Random"),"Formatter")),f.$extend(n(n("Random"),"Formatter"))}("::",null,u)},Opal.modules["corelib/random/mersenne_twister"]=function(e){var n=e.klass,s=e.const_set,o=e.send,i=e.nil,a=e.$$$,t=i;return e.add_stubs("generator="),t=function(){var e=624,t=397,d=2567483615,o=2147483648,a=2147483647,i=function(e,t){return e&o|t&a},n=function(e,t){return i(e,t)>>>1^(t&1?d:0)};function r(t){var n={left:0,next:e,state:new Array(e)};return c(n,t),n}function c(t,n){var s,o;t.state[0]=n>>>0;for(s=1;s<e;s++)t.state[s]=1812433253*(t.state[s-1]^t.state[s-1]>>30>>>0)+s,t.state[s]&=4294967295;t.left=1,t.next=e}function l(s){var a,o=0,i=s.state;s.left=e,s.next=0;for(a=e-t+1;--a;o++)i[o]=i[o+t]^n(i[o+0],i[o+1]);for(a=t;--a;o++)i[o]=i[o+(t-e)]^n(i[o+0],i[o+1]);i[o]=i[o+(t-e)]^n(i[o+0],i[0])}function s(e){var t;return--e.left<=0&&l(e),t=e.state[e.next++],t^=t>>>11,t^=t<<7&2636928640,t^=t<<15&4022730752,t^=t>>>18,t>>>0}function u(e,t){return e>>>=5,t>>>=6,(e*67108864+t)*(1/9007199254740992)}function h(e){var t=s(e),n=s(e);return u(t,n)}return{genrand_real:h,init:r}}(),function(e,i){var r,c=n(e,i,"Random"),l=Number.MAX_SAFE_INTEGER||Math.pow(2,53)-1;return s(c,"MERSENNE_TWISTER_GENERATOR",{new_seed:function(){return Math.round(Math.random()*l)},reseed:function(e){return t.init(e)},rand:function(e){return t.genrand_real(e)}}),(r=[a(c,"MERSENNE_TWISTER_GENERATOR")],o(c,"generator=",r),r[r.length-1])}("::",null)},Opal.modules["corelib/random"]=function(e){var o=e.truthy,c=e.klass,l=e.Kernel,n=e.defs,i=e.Opal,s=e.def,d=e.eqeqeq,u=e.send,a=e.top,r=e.nil,t=e.$$$;return e.add_stubs("require,attr_reader,to_int,raise,new_seed,coerce_to!,reseed,rand,seed,bytes,===,==,state,_verify_count,encode,join,new,chr,random_number,random_float,const_defined?,const_set"),a.$require("corelib/random/formatter"),function(a,h){var m=c(a,h,"Random");return m.$attr_reader("seed","state"),n(m,"$_verify_count",function(n){return o(n)||(n=16),typeof n!="number"&&(n=n.$to_int()),n<0&&l.$raise(t("ArgumentError"),"negative string size (or size too big)"),n=Math.floor(n),n}),s(m,"$initialize",function(n){var s=this;return n==null&&(n=t("Random").$new_seed()),n=i["$coerce_to!"](n,t("Integer"),"to_int"),s.state=n,s.$reseed(n)},-1),s(m,"$reseed",function(n){var s=this;return s.seed=n,s.$rng=e.$$rand.reseed(n)}),n(m,"$new_seed",function(){return e.$$rand.new_seed()}),n(m,"$rand",function(n){var s=this;return t(s,"DEFAULT").$rand(n)},-1),n(m,"$srand",function(n){var s=this,o=r;return n==null&&(n=t("Random").$new_seed()),n=i["$coerce_to!"](n,t("Integer"),"to_int"),o=t(s,"DEFAULT").$seed(),t(s,"DEFAULT").$reseed(n),o},-1),n(m,"$urandom",function(n){return t("SecureRandom").$bytes(n)}),s(m,"$==",function(n){var s=this,i=r;return!!d(t("Random"),n)&&(o(i=s.$seed()["$=="](n.$seed()))?s.$state()["$=="](n.$state()):i)}),s(m,"$bytes",function(n){var s=this;return n=t("Random").$_verify_count(n),u(t("Array"),"new",[n],function e(){var t=e.$$s==null?this:e.$$s;return t.$rand(255).$chr()},{$$s:s}).$join().$encode("ASCII-8BIT")}),n(m,"$bytes",function(n){var s=this;return t(s,"DEFAULT").$bytes(n)}),s(m,"$rand",function(t){var n=this;return n.$random_number(t)},-1),s(m,"$random_float",function(){var n=this;return n.state++,e.$$rand.rand(n.$rng)}),n(m,"$random_float",function(){var n=this;return t(n,"DEFAULT").$random_float()}),n(m,"$generator=",function(s){var i=this;return e.$$rand=s,o(i["$const_defined?"]("DEFAULT"))?t(i,"DEFAULT").$reseed():i.$const_set("DEFAULT",i.$new(i.$new_seed()))})}("::",null),a.$require("corelib/random/mersenne_twister")},Opal.modules["corelib/unsupported"]=function(e){var l,c=e.Kernel,h=e.klass,u=e.send,s=e.slice,i=e.module,n=e.def,f=e.return_val,t=e.alias,m=e.defs,a=e.top,p=[],r=e.nil,o=e.$$$;e.add_stubs("raise,warn,each,define_method,%,public,private_method_defined?,private_class_method,instance_method,instance_methods,method_defined?,private_methods"),l={};function d(t){switch(e.config.unsupported_features_severity){case"error":c.$raise(o("NotImplementedError"),t);break;case"warning":g(t);break;default:}}function g(e){if(l[e])return;l[e]=!0,a.$warn(e)}return function(e,t){var n=h(e,t,"String"),i="String#%s not supported. Mutable String methods are not supported in Opal.";return u(["<<","capitalize!","chomp!","chop!","downcase!","gsub!","lstrip!","next!","reverse!","slice!","squeeze!","strip!","sub!","succ!","swapcase!","tr!","tr_s!","upcase!","prepend","[]=","clear","encode!","unicode_normalize!"],"each",[],function e(t){var n=e.$$s==null?this:e.$$s;return t==null&&(t=r),u(n,"define_method",[t],function(){var a=s(arguments),r=a;return c.$raise(o("NotImplementedError"),i["$%"](t))},-1)},{$$s:n})}("::",null),function(e){var t=i(e,"Kernel"),s="Object tainting is not supported by Opal";return n(t,"$taint",function(){var t=this;return d(s),t}),n(t,"$untaint",function(){var t=this;return d(s),t}),n(t,"$tainted?",function(){return d(s),!1})}("::"),function(e,o){var i=h(e,o,"Module");return n(i,"$public",function(){var i=this,o=s(arguments),n=o;return n.length===0?(i.$$module_function=!1,r):n.length===1?n[0]:n},-1),n(i,"$private_class_method",function(){var o=s(arguments),n=o;return n.length===1?n[0]:n},-1),n(i,"$private_method_defined?",f(!1)),n(i,"$private_constant",function(){var n=s(arguments),o=n;return r},-1),t(i,"nesting","public"),t(i,"private","public"),t(i,"protected","public"),t(i,"protected_method_defined?","private_method_defined?"),t(i,"public_class_method","private_class_method"),t(i,"public_instance_method","instance_method"),t(i,"public_instance_methods","instance_methods"),t(i,"public_method_defined?","method_defined?")}("::",null),function(e){var o=i(e,"Kernel");return n(o,"$private_methods",function(){var n=s(arguments),o=n;return[]},-1),t(o,"protected_methods","private_methods"),t(o,"private_instance_methods","private_methods"),t(o,"protected_instance_methods","private_methods")}("::"),function(t,a){var r=i(t,"Kernel"),l=[r].concat(a),d=e.$r(l);return n(r,"$eval",function(){var n=s(arguments),i=n;return c.$raise(o("NotImplementedError"),"To use Kernel#eval, you must first require 'opal-parser'. "+("See https://github.com/opal/opal/blob/"+d("RUBY_ENGINE_VERSION")+"/docs/opal_parser.md for details."))},-1)}("::",p),m(a,"$public",function(){var o=s(arguments),n=o;return n.length===1?n[0]:n},-1),m(a,"$private",function(){var o=s(arguments),n=o;return n.length===1?n[0]:n},-1)},Opal.modules["corelib/binding"]=function(e){var f=e.klass,i=e.truthy,t=e.def,p=e.slice,r=e.send,h=e.to_a,s=e.Kernel,c=e.return_ivar,l=e.eqeq,g=e.thrower,d=e.module,u=e.const_set,a=e.top,m=[],n=e.nil,o=e.$$$;return e.add_stubs("js_eval,call,raise,inspect,include?,==,receiver,eval,attr_reader,new"),function(a,d){var u=f(a,d,"Binding"),m=u.$$prototype;return m.jseval=m.scope_variables=n,t(u,"$initialize",function(t,s,o,a){var r,c=this;return s==null&&(s=[]),a==null&&(a=n),r=[t,s,o,a],c.jseval=r[0],c.scope_variables=r[1],c.receiver=r[2],c.source_location=r[3],r,i(typeof o!==void 0)?n:o=c.$js_eval("self")},-2),t(u,"$js_eval",function(){var n=this,o=p(arguments),a=o;return i(n.jseval)?r(n.jseval,"call",h(a)):s.$raise("Evaluation on a Proc#binding is not supported")},-1),t(u,"$local_variable_get",function(n){var i=this;try{return i.$js_eval(n)}catch(t){if(e.rescue(t,[o("Exception")]))try{return s.$raise(o("NameError"),"local variable `"+n+"' is not defined for "+i.$inspect())}finally{e.pop_exception(t)}else throw t}}),t(u,"$local_variable_set",function(n,s){var o=this;return e.Binding.tmp_value=s,o.$js_eval(""+n+" = Opal.Binding.tmp_value"),delete e.Binding.tmp_value,s}),t(u,"$local_variables",c("scope_variables")),t(u,"$local_variable_defined?",function(t){var n=this;return n.scope_variables["$include?"](t)}),t(u,"$eval",function(o,i,a){try{var r=this;return i==null&&(i=n),a==null&&(a=n),l(o,"self")?r.$receiver():s.$eval(o,r,i,a)}catch(t){if(t===e.t_eval_return)return t.$v;throw t}},-2),u.$attr_reader("receiver","source_location")}("::",null),function(e){var n=d(e,"Kernel");return t(n,"$binding",function(){return s.$raise("Opal doesn't support dynamic calls to binding")})}("::"),u(m[0],"TOPLEVEL_BINDING",o("Binding").$new(function(e){return new Function("self","return "+e)(a)},[],a,["<main>",0]))},Opal.modules["corelib/irb"]=function(e){var m=e.module,s=e.truthy,v=e.Kernel,c=e.defs,n=e.gvars,g=e.lambda,b=e.hash_rehash,i=e.send,l=e.rb_plus,j=e.const_set,h=e.klass,r=e.def,a=e.Opal,f=e.range,p=e.eqeq,u=e.thrower,d=[],t=e.nil,o=e.$$$;e.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(a,d){var f=m(a,"Opal"),u=[f].concat(d);return function(a,d){var u=m(a,"IRB"),f=[u].concat(d),p=e.$r(f);return c(u,"$ensure_loaded",function(o){var i,c,a=t,r=t;return s(e.loaded_features["$include?"](o))?t:(a=s(p("RUBY_ENGINE_VERSION")["$include?"]("dev"))?"master":p("RUBY_ENGINE_VERSION"),r="https://cdn.opalrb.com/opal/"+a+"/"+o+".js",typeof XMLHttpRequest!="undefined"?(i=new XMLHttpRequest,i.open("GET",r,!1),i.send(""),c=i.responseText):v.$raise("You need to provision "+o+" yourself in this environment"),new Function("Opal",c)(e),e.require(o),s(e.loaded_features["$include?"](o))?t:v.$raise("Could not load "+o+" for some reason"))}),u.$singleton_class().$attr_accessor("output"),c(u,"$prepare_console",function o(){var a,u=o.$$p||t,r=this,c=t,d=t;return n.stdout==null&&(n.stdout=t),n.stderr==null&&(n.stderr=t),n.stdin==null&&(n.stdin=t),o.$$p=null,function(){try{return r["$output="](""),c=b(new Map([[n.stdout,g(function(s){return s==null&&(s=t),n.stdout=s})],[n.stderr,g(function(s){return s==null&&(s=t),n.stderr=s})]])),s(r["$browser?"]())&&(i(c,"each",[],function e(n,o){var r=e.$$s==null?this:e.$$s,a=t;return n==null&&(n=t),o==null&&(o=t),a=n.$dup(),a["$write_proc="](i(r,"proc",[],function e(o){var i=e.$$s==null?this:e.$$s;return o==null&&(o=t),i["$output="](l(i.$output(),o)),i["$output="](i.$output().$split(`
`).$last(30).$join(`
`)),s(o["$end_with?"](`
`))&&i["$output="](l(i.$output(),`
`)),n.$write_proc().$call(o)},{$$s:r})),a["$tty="](!1),o.$call(a)},{$$s:r}),d=n.stdin.$read_proc(),n.stdin["$read_proc="](function(){var n=prompt(r.$output());return n!==null?n+`
`:t})),e.yieldX(u,[])}finally{i(c,"each",[],function(n,s){return n==null&&(n=t),s==null&&(s=t),s.$call(n)}),(a=[d],i(n.stdin,"read_proc=",a),a[a.length-1]),(a=[""],i(r,"output=",a),a[a.length-1])}}()}),c(u,"$browser?",function(){return typeof document!="undefined"&&typeof prompt!="undefined"}),j(f[0],"LINEBREAKS",["unexpected token $end","unterminated string meets end of file"].$freeze()),function(s,i){var a=h(s,i,"Silencer"),c=a.$$prototype;return c.collector=c.stderr=t,r(a,"$initialize",function(){var s=this;return n.stderr==null&&(n.stderr=t),s.stderr=n.stderr}),r(a,"$silence",function s(){var a=s.$$p||t,i=this;return s.$$p=null,function(){try{return i.collector=o("StringIO").$new(),n.stderr=i.collector,e.yieldX(a,[])}finally{n.stderr=i.stderr}}()}),r(a,"$warnings",function(){var t=this;return t.collector.$string()})}(f[0],null)}(u[0],u)}(d[0],d),function(n,c,d){var m=h(n,c,"Binding"),g=[m].concat(d),v=e.$r(g);return r(m,"$irb",function(){try{var r=u("return"),d=this,c=t;return o(a,"IRB").$ensure_loaded("opal-replutils"),c=o(o(a,"IRB"),"Silencer").$new(),i(o(a,"IRB"),"prepare_console",[],function n(){var d=n.$$s==null?this:n.$$s;return function(){try{var n=u("break");return i(d,"loop",[],function d(){var h=d.$$s==null?this:d.$$s,u=t,m=t,g=t,b=t,j=t;h.$print(">> "),u=h.$gets(),s(u)||n.$throw(t,d.$$is_lambda),m="",s(o(a,"IRB")["$browser?"]())&&h.$puts(u),s(u["$start_with?"]("ls "))?(m=u["$[]"](f(3,-1,!1)),g="ls"):p(u,`ls
`)?(m="self",g="ls"):s(u["$start_with?"]("show "))?(m=u["$[]"](f(5,-1,!1)),g="show"):(m=u,g="inspect"),b=t;do{try{i(c,"silence",[],function(){return b=e.compile(m,{irb:!0})})}catch(n){if(e.rescue(n,[v("SyntaxError")])){j=n;try{if(s(o(o(a,"IRB"),"LINEBREAKS")["$include?"](j.$message()))){h.$print(".. "),u=h.$gets(),s(u)||r.$throw(t,d.$$is_lambda),s(o(a,"IRB")["$browser?"]())&&h.$puts(u),m=l(m,u);continue}s(c.$warnings()["$empty?"]())?h.$warn(j.$full_message()):h.$warn(c.$warnings())}finally{e.pop_exception(n)}}else throw n}break}while(1)return p(g,"show")&&(h.$puts(b),r.$throw(t,d.$$is_lambda)),h.$puts(o("REPLUtils").$eval_and_print(b,g,!1,h))},{$$s:d,$$ret:r})}catch(e){if(e===n)return e.$v;throw e}finally{n.is_orphan=!0}}()},{$$s:d})}catch(e){if(e===r)return e.$v;throw e}finally{r.is_orphan=!0}})}("::",null,d),e.irb=function(e){o("Binding").$new(e).$irb()},e.load_parser=function(){e.Opal.IRB.$ensure_loaded("opal-parser")},typeof e.eval=="undefined"&&(e.eval=function(t){return e.load_parser(),e.eval(t)}),typeof e.compile=="undefined"&&(e.compile=function(t,n){return e.load_parser(),e.compile(t,n)})},Opal.modules.opal=function(e){var t=e.Object,n=e.nil;return e.add_stubs("require,autoload"),t.$require("opal/base"),t.$require("opal/mini"),t.$require("corelib/kernel/format"),t.$require("corelib/string/encoding"),t.$autoload("Math","corelib/math"),t.$require("corelib/complex/base"),t.$autoload("Complex","corelib/complex"),t.$require("corelib/rational/base"),t.$autoload("Rational","corelib/rational"),t.$require("corelib/time"),t.$autoload("Struct","corelib/struct"),t.$autoload("Set","corelib/set"),t.$autoload("Dir","corelib/dir"),t.$autoload("File","corelib/file"),t.$require("corelib/process/base"),t.$autoload("Process","corelib/process"),t.$autoload("Random","corelib/random"),t.$require("corelib/unsupported"),t.$require("corelib/binding"),t.$require("corelib/irb")},Opal.load_normalized("opal"),Opal.modules.opal=function(e){var t=e.Object,n=e.nil;return e.add_stubs("require,autoload"),t.$require("opal/base"),t.$require("opal/mini"),t.$require("corelib/kernel/format"),t.$require("corelib/string/encoding"),t.$autoload("Math","corelib/math"),t.$require("corelib/complex/base"),t.$autoload("Complex","corelib/complex"),t.$require("corelib/rational/base"),t.$autoload("Rational","corelib/rational"),t.$require("corelib/time"),t.$autoload("Struct","corelib/struct"),t.$autoload("Set","corelib/set"),t.$autoload("Dir","corelib/dir"),t.$autoload("File","corelib/file"),t.$require("corelib/process/base"),t.$autoload("Process","corelib/process"),t.$autoload("Random","corelib/random"),t.$require("corelib/unsupported"),t.$require("corelib/binding"),t.$require("corelib/irb")},Opal.modules["opal/paths"]=function(e){var i=e.module,n=e.defs,d=e.slice,a=e.rb_plus,s=e.gvars,o=e.send,u=e.to_a,r=e.def,c=e.truthy,l=[],t=e.nil,h=e.$$$;return e.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(l,m){var f=i(l,"Opal"),g=[f].concat(m),p=e.$r(g);return n(f,"$gem_dir",function(){return p("File").$expand_path("../..","opal/paths.rb")}),n(f,"$core_dir",function(){return p("File").$expand_path("../../../opal","opal/paths.rb")}),n(f,"$std_dir",function(){return p("File").$expand_path("../../../stdlib","opal/paths.rb")}),n(f,"$append_path",function(t){var n=this;return n.$append_paths(t)}),n(f,"$append_paths",function(){var o,i,s=this;return s.paths==null&&(s.paths=t),o=d(arguments),i=o,s.paths.$concat(i),t},-1),n(f,"$dependent_files",function(){var o=t,n=t;return s.LOADED_FEATURES==null&&(s.LOADED_FEATURES=t),o=p("File").$expand_path("..",p("Opal").$gem_dir()),n=p("Dir")["$[]"](""+o+"/{Gemfile*,*.gemspec,lib/**/*}"),n=a(n,s.LOADED_FEATURES.$grep(/lib\/(parser|ast)/)),n}),function(n,s){var l=i(n,"UseGem"),m=[l].concat(s),d=e.$r(m);return r(l,"$use_gem",function(t,n){var s=this;return n==null&&(n=!0),o(s,"append_paths",u(s.$require_paths_for_gem(t,n)))},-2),l.$private(),r(l,"$require_paths_for_gem",function(n,s){var l=this,i=t,r=t,u=t,i=[],r=h(d("Gem"),"Specification").$find_by_name(n);return c(r)||l.$raise(d("GemNotFound"),n),c(s)&&o(r.$runtime_dependencies(),"each",[],function e(n){var o=e.$$s==null?this:e.$$s;return n==null&&(n=t),i=a(i,o.$require_paths_for_gem(n.$name(),s))},{$$s:l}),u=r.$gem_dir(),o(r.$require_paths(),"map",[],function(n){return n==null&&(n=t),i["$<<"](d("File").$join(u,n))}),i})}(g[0],g),f.$extend(p("UseGem")),n(f,"$paths",function(){var n=this;return n.paths==null&&(n.paths=t),n.paths.$freeze()}),n(f,"$reset_paths!",function(){var n=this;return n.paths=[n.$core_dir(),n.$std_dir(),n.$gem_dir()],t,t}),f["$reset_paths!"]()}(l[0],l)},Opal.modules.js=function(e){var i=e.module,t=e.def,s=e.truthy,o=e.slice,a=e.alias,r=[],n=e.nil;return e.add_stubs("insert,<<,global,call,extend"),function(r){var c=i(r,"JS");return t(c,"$delete",function(t,n){return delete t[n]}),t(c,"$global",function(){return e.global}),t(c,"$in",function(t,n){return t in n}),t(c,"$instanceof",function(t,n){return t instanceof n}),s(typeof Function.prototype.bind=="function")?t(c,"$new",function e(t){var a,c,r=e.$$p||n;return e.$$p=null,c=o(arguments,1),a=c,a.$insert(0,this),s(r)&&a["$<<"](r),new(t.bind.apply(t,a))},-2):t(c,"$new",function e(t){var a,l,c=e.$$p||n,r=n;return e.$$p=null,l=o(arguments,1),a=l,s(c)&&a["$<<"](c),r=function(){return t.apply(this,a)},r.prototype=t.prototype,new r},-2),t(c,"$typeof",function(t){return typeof t}),t(c,"$void",function(t){}),t(c,"$call",function e(t){var a,l,c=e.$$p||n,d=this,r=n;return e.$$p=null,l=o(arguments,1),a=l,r=d.$global(),s(c)&&a["$<<"](c),r[t].apply(r,a)},-2),t(c,"$[]",function(n){return e.global[n]}),a(c,"method_missing","call"),c.$extend(c)}(r[0])},Opal.modules["bigdecimal/bignumber"]=function(e){var n=e.klass,t=[],s=e.$r(t),o=e.nil;return function(t,s){var i=n(t,s,"BigDecimal"),o=function(t){e.const_set(i,"BigNumber",t())};o.amd=!0,!function(e){"use strict";function p(e){function o(e,n){var s,a,r,c,l,d,i=this;if(!(i instanceof o))return M&&T(26,"constructor call without new",e),new o(e,n);if(n!=null&&A(n,2,64,S,"base")){if(n=0|n,s=e+"",10==n)return i=new o(e instanceof o?e:s),z(i,N+i.e+1,F);if((l="number"==typeof e)&&0*e!=0||!new RegExp("^-?"+(d="["+_.slice(0,n)+"]+")+"(?:\\."+d+")?$",37>n?"i":"").test(s))return w(i,s,l,n);l?(i.s=0>1/e?(s=s.slice(1),-1):1,M&&s.replace(/^0\.0*|\./,"").length>15&&T(S,C,e),l=!1):i.s=45===s.charCodeAt(0)?(s=s.slice(1),-1):1,s=Y(s,10,n,i.s)}else{if(e instanceof o)return i.s=e.s,i.e=e.e,i.c=(e=e.c)&&e.slice(),void(S=0);if((l="number"==typeof e)&&0*e==0){if(i.s=0>1/e?(e=-e,-1):1,e===~~e){for(r=0,a=e;a>=10;a/=10,r++);return i.e=r,i.c=[e],void(S=0)}s=e+""}else{if(!E.test(s=e+""))return w(i,s,l);i.s=45===s.charCodeAt(0)?(s=s.slice(1),-1):1}}for((r=s.indexOf("."))>-1&&(s=s.replace(".","")),(a=s.search(/e/i))>0?(0>r&&(r=a),r+=+s.slice(a+1),s=s.substring(0,a)):0>r&&(r=s.length),a=0;48===s.charCodeAt(a);a++);for(c=s.length;48===s.charCodeAt(--c););if(s=s.slice(a,c+1))if(c=s.length,l&&M&&c>15&&T(S,C,i.s*e),r=r-a-1,r>L)i.c=i.e=null;else if(B>r)i.c=[i.e=0];else{if(i.e=r,i.c=[],a=(r+1)%t,0>r&&(a+=t),c>a){for(a&&i.c.push(+s.slice(0,a)),c-=t;c>a;)i.c.push(+s.slice(a,a+=t));s=s.slice(a),a=t-s.length}else a-=c;for(;a--;s+="0");i.c.push(+s)}else i.c=[i.e=0];S=0}function Y(e,t,n,s){var i,a,c,l,h,m,p,d=e.indexOf("."),g=N,f=F;for(37>n&&(e=e.toLowerCase()),d>=0&&(l=P,P=0,e=e.replace(".",""),p=new o(n),a=p.pow(e.length-d),P=l,p.c=x(u(r(a.c),a.e),10,t),p.e=p.c.length),i=x(e,n,t),m=l=i.length;0==i[--l];i.pop());if(!i[0])return"0";if(0>d?--m:(a.c=i,a.e=m,a.s=s,a=D(a,p,g,f,t),i=a.c,h=a.r,m=a.e),c=m+g+1,d=i[c],l=t/2,h=h||0>c||null!=i[c+1],h=4>f?(d!=null||h)&&(0==f||f==(a.s<0?3:2)):d>l||d==l&&(4==f||h||6==f&&1&i[c-1]||f==(a.s<0?8:7)),1>c||!i[0])e=h?u("1",-g):"0";else{if(i.length=c,h)for(--t;++i[--c]>t;)i[c]=0,c||(++m,i.unshift(1));for(l=i.length;!i[--l];);for(d=0,e="";l>=d;e+=_.charAt(i[d++]));e=u(e,m)}return e}function $(e,t,n,s){if(n=n!=null&&A(n,0,8,s,j)?0|n:F,!e.c)return e.toString();if(d=e.c[0],l=e.e,t==null)i=r(e.c),i=19==s||24==s&&I>=l?f(i,l):u(i,l);else if(e=z(new o(e),t,n),a=e.e,i=r(e.c),c=i.length,19==s||24==s&&(a>=t||I>=a)){for(var i,a,c,l,d;t>c;i+="0",c++);i=f(i,a)}else if(t-=l,i=u(i,a),a+1>c){if(--t>0)for(i+=".";t--;i+="0");}else if(t+=a-c,t>0)for(a+1==c&&(i+=".");t--;i+="0");return e.s<0&&d?"-"+i:i}function q(e,t){var n,s,i=0;for(v(e[0])&&(e=e[0]),n=new o(e[0]);++i<e.length;){if(s=new o(e[i]),!s.s){n=s;break}t.call(n,s)&&(n=s)}return n}function G(e,t,n,s,o){return(t>e||e>n||e!=O(e))&&T(s,(o||"decimal places")+(t>e||e>n?" out of range":" not an integer"),e),!0}function K(e,n,s){for(var i=1,o=n.length;!n[--o];n.pop());for(o=n[0];o>=10;o/=10,i++);return(s=i+s*t-1)>L?e.c=e.e=null:B>s?e.c=[e.e=0]:(e.e=s,e.c=n),e}function T(e,t,n){var s=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"][e]+"() "+t+": "+n);throw s.name="BigNumber Error",S=0,s}function z(e,n,s,o){var a,r,d,u,h,m,p,i=e.c,f=y;if(i){e:{for(h=1,d=i[0];d>=10;d/=10,h++);if(r=n-h,0>r)r+=t,a=n,m=i[u=0],p=m/f[h-a-1]%10|0;else if(u=g((r+1)/t),u>=i.length){if(!o)break e;for(;i.length<=u;i.push(0));m=p=0,h=1,r%=t,a=r-t+1}else{for(m=d=i[u],h=1;d>=10;d/=10,h++);r%=t,a=r-t+h,p=0>a?0:m/f[h-a-1]%10|0}if(o=o||0>n||null!=i[u+1]||(0>a?m:m%f[h-a-1]),o=4>s?(p||o)&&(0==s||s==(e.s<0?3:2)):p>5||5==p&&(4==s||o||6==s&&(r>0?a>0?m/f[h-a]:0:i[u-1])%10&1||s==(e.s<0?8:7)),1>n||!i[0])return i.length=0,o?(n-=e.e+1,i[0]=f[(t-n%t)%t],e.e=-n||0):i[0]=e.e=0,e;if(0==r?(i.length=u,d=1,u--):(i.length=u+1,d=f[t-r],i[u]=a>0?l(m/f[h-a]%f[a])*d:0),o)for(;;){if(0==u){for(r=1,a=i[0];a>=10;a/=10,r++);for(a=i[0]+=d,d=1;a>=10;a/=10,d++);r!=d&&(e.e++,i[0]==c&&(i[0]=1));break}if(i[u]+=d,i[u]!=c)break;i[u--]=0,d=1}for(r=i.length;0===i[--r];i.pop());}e.e>L?e.c=e.e=null:e.e<B&&(e.c=[e.e=0])}return e}var D,S=0,i=o.prototype,H=new o(1),N=20,F=4,I=-7,V=21,B=-1e7,L=1e7,M=!0,A=G,W=!1,U=1,P=100,R={decimalSeparator:".",groupSeparator:",",groupSize:3,secondaryGroupSize:0,fractionGroupSeparator:" ",fractionGroupSize:0};return o.another=p,o.ROUND_UP=0,o.ROUND_DOWN=1,o.ROUND_CEIL=2,o.ROUND_FLOOR=3,o.ROUND_HALF_UP=4,o.ROUND_HALF_DOWN=5,o.ROUND_HALF_EVEN=6,o.ROUND_HALF_CEIL=7,o.ROUND_HALF_FLOOR=8,o.EUCLID=9,o.config=function(){var e,t,c=0,o={},r=arguments,a=r[0],i=a&&"object"==typeof a?function(){return a.hasOwnProperty(t)?null!=(e=a[t]):void 0}:function(){return r.length>c?null!=(e=r[c++]):void 0};return i(t="DECIMAL_PLACES")&&A(e,0,n,2,t)&&(N=0|e),o[t]=N,i(t="ROUNDING_MODE")&&A(e,0,8,2,t)&&(F=0|e),o[t]=F,i(t="EXPONENTIAL_AT")&&(v(e)?A(e[0],-n,0,2,t)&&A(e[1],0,n,2,t)&&(I=0|e[0],V=0|e[1]):A(e,-n,n,2,t)&&(I=-(V=0|(0>e?-e:e)))),o[t]=[I,V],i(t="RANGE")&&(v(e)?A(e[0],-n,-1,2,t)&&A(e[1],1,n,2,t)&&(B=0|e[0],L=0|e[1]):A(e,-n,n,2,t)&&(0|e?B=-(L=0|(0>e?-e:e)):M&&T(2,t+" cannot be zero",e))),o[t]=[B,L],i(t="ERRORS")&&(e===!!e||1===e||0===e?(S=0,A=(M=!!e)?G:k):M&&T(2,t+b,e)),o[t]=M,i(t="CRYPTO")&&(e===!!e||1===e||0===e?(W=!!e&&!!s,e&&!W&&M&&T(2,"crypto unavailable",s)):M&&T(2,t+b,e)),o[t]=W,i(t="MODULO_MODE")&&A(e,0,9,2,t)&&(U=0|e),o[t]=U,i(t="POW_PRECISION")&&A(e,0,n,2,t)&&(P=0|e),o[t]=P,i(t="FORMAT")&&("object"==typeof e?R=e:M&&T(2,t+" not an object",e)),o[t]=R,o},o.max=function(){return q(arguments,i.lt)},o.min=function(){return q(arguments,i.gt)},o.random=function(){var e=9007199254740992,i=Math.random()*e&2097151?function(){return l(Math.random()*e)}:function(){return 8388608*(1073741824*Math.random()|0)+(8388608*Math.random()|0)};return function(e){var r,c,u,h,m,a=0,d=[],f=new o(H);if(e=e!=null&&A(e,0,n,14)?0|e:N,u=g(e/t),W)if(s&&s.getRandomValues){for(c=s.getRandomValues(new Uint32Array(u*=2));u>a;)r=131072*c[a]+(c[a+1]>>>11),r>=9e15?(m=s.getRandomValues(new Uint32Array(2)),c[a]=m[0],c[a+1]=m[1]):(d.push(r%1e14),a+=2);a=u/2}else if(s&&s.randomBytes){for(c=s.randomBytes(u*=7);u>a;)r=281474976710656*(31&c[a])+1099511627776*c[a+1]+4294967296*c[a+2]+16777216*c[a+3]+(c[a+4]<<16)+(c[a+5]<<8)+c[a+6],r>=9e15?s.randomBytes(7).copy(c,a):(d.push(r%1e14),a+=7);a=u/7}else M&&T(14,"crypto unavailable",s);if(!a)for(;u>a;)r=i(),9e15>r&&(d[a++]=r%1e14);for(u=d[--a],e%=t,u&&e&&(r=y[t-e],d[a]=l(u/r)*r);0===d[a];d.pop(),a--);if(0>a)d=[h=0];else{for(h=-1;0===d[0];d.shift(),h-=t);for(a=1,r=d[0];r>=10;r/=10,a++);t>a&&(h-=t-a)}return f.e=h,f.c=d,f}}(),D=function(){function e(e,t,n){var i,a,r,c,s=0,o=e.length,l=t%d,u=t/d|0;for(e=e.slice();o--;)r=e[o]%d,c=e[o]/d|0,i=u*r+c*l,a=l*r+i%d*d+s,s=(a/n|0)+(i/d|0)+u*c,e[o]=a%n;return s&&e.unshift(s),e}function n(e,t,n,s){var o,i;if(n!=s)i=n>s?1:-1;else for(o=i=0;n>o;o++)if(e[o]!=t[o]){i=e[o]>t[o]?1:-1;break}return i}function s(e,t,n,s){for(var o=0;n--;)e[n]-=o,o=e[n]<t[n]?1:0,e[n]=o*s+e[n]-t[n];for(;!e[0]&&e.length>1;e.shift());}return function(i,r,d,u,h){var f,p,g,j,y,_,w,O,x,C,E,k,A,S,M,F,T,b=i.s==r.s?1:-1,v=i.c,m=r.c;if(!(v&&v[0]&&m&&m[0]))return new o(i.s&&r.s&&(v?!m||v[0]!=m[0]:m)?v&&0==v[0]||!m?0*b:b/0:NaN);for(w=new o(b),x=w.c=[],E=i.e-r.e,b=d+E+1,h||(h=c,E=a(i.e/t)-a(r.e/t),b=b/t|0),j=0;m[j]==(v[j]||0);j++);if(m[j]>(v[j]||0)&&E--,0>b)x.push(1),M=!0;else{for(F=v.length,y=m.length,j=0,b+=2,p=l(h/(m[0]+1)),p>1&&(m=e(m,p,h),v=e(v,p,h),y=m.length,F=v.length),A=y,f=v.slice(0,y),g=f.length;y>g;f[g++]=0);S=m.slice(),S.unshift(0),T=m[0],m[1]>=h/2&&T++;do{if(p=0,C=n(m,f,y,g),0>C){{if(k=f[0],y!=g&&(k=k*h+(f[1]||0)),p=l(k/T),p>1)for(p>=h&&(p=h-1),_=e(m,p,h),O=_.length,g=f.length;1==n(_,f,O,g);)p--,s(_,O>y?S:m,O,h),O=_.length,C=1;else 0==p&&(C=p=1),_=m.slice(),O=_.length;if(g>O&&_.unshift(0),s(f,_,g,h),g=f.length,-1==C)for(;n(m,f,y,g)<1;)p++,s(f,g>y?S:m,g,h),g=f.length}}else 0===C&&(p++,f=[0]);x[j++]=p,f[0]?f[g++]=v[A]||0:(f=[v[A]],g=1)}while((A++<F||null!=f[0])&&b--)M=null!=f[0],x[0]||x.shift()}if(h==c){for(j=1,b=x[0];b>=10;b/=10,j++);z(w,d+(w.e=j+E*t-1)+1,u,M)}else w.e=E,w.r=+M;return w}}(),w=function(){var e=/^(-?)0([xbo])(?=\w[\w.]*$)/i,t=/^([^.]+)\.$/,n=/^\.([^.]+)$/,s=/^-?(Infinity|NaN)$/,i=/^\s*\+(?=[\w.])|^\s+|\s+$/g;return function(a,r,c,l){var u,d=c?r:r.replace(i,"");if(s.test(d))a.s=isNaN(d)?null:0>d?-1:1;else{if(!c&&(d=d.replace(e,function(e,t,n){return u="x"==(n=n.toLowerCase())?16:"b"==n?2:8,l&&l!=u?e:t}),l&&(u=l,d=d.replace(t,"$1").replace(n,"0.$1")),r!=d))return new o(d,u);M&&T(S,"not a"+(l?" base "+l:"")+" number",r),a.s=null}a.c=a.e=null,S=0}}(),i.absoluteValue=i.abs=function(){var e=new o(this);return e.s<0&&(e.s=1),e},i.ceil=function(){return z(new o(this),this.e+1,2)},i.comparedTo=i.cmp=function(e,t){return S=1,m(this,new o(e,t))},i.decimalPlaces=i.dp=function(){var e,n,s=this.c;if(!s)return null;if(e=((n=s.length-1)-a(this.e/t))*t,n=s[n])for(;n%10==0;n/=10,e--);return 0>e&&(e=0),e},i.dividedBy=i.div=function(e,t){return S=3,D(this,new o(e,t),N,F)},i.dividedToIntegerBy=i.divToInt=function(e,t){return S=4,D(this,new o(e,t),0,1)},i.equals=i.eq=function(e,t){return S=5,0===m(this,new o(e,t))},i.floor=function(){return z(new o(this),this.e+1,3)},i.greaterThan=i.gt=function(e,t){return S=6,m(this,new o(e,t))>0},i.greaterThanOrEqualTo=i.gte=function(e,t){return S=7,1===(t=m(this,new o(e,t)))||0===t},i.isFinite=function(){return!!this.c},i.isInteger=i.isInt=function(){return!!this.c&&a(this.e/t)>this.c.length-2},i.isNaN=function(){return!this.s},i.isNegative=i.isNeg=function(){return this.s<0},i.isZero=function(){return!!this.c&&0==this.c[0]},i.lessThan=i.lt=function(e,t){return S=8,m(this,new o(e,t))<0},i.lessThanOrEqualTo=i.lte=function(e,t){return S=9,-1===(t=m(this,new o(e,t)))||0===t},i.minus=i.sub=function(e,n){var l,d,u,p,m=this,r=m.s;if(S=10,e=new o(e,n),n=e.s,!r||!n)return new o(NaN);if(r!=n)return e.s=-n,m.plus(e);var f=m.e/t,h=e.e/t,s=m.c,i=e.c;if(!f||!h){if(!s||!i)return s?(e.s=-n,e):new o(i?m:NaN);if(!s[0]||!i[0])return i[0]?(e.s=-n,e):new o(s[0]?m:3==F?-0:0)}if(f=a(f),h=a(h),s=s.slice(),r=f-h){for((p=0>r)?(r=-r,u=s):(h=f,u=i),u.reverse(),n=r;n--;u.push(0));u.reverse()}else for(l=(p=(r=s.length)<(n=i.length))?r:n,r=n=0;l>n;n++)if(s[n]!=i[n]){p=s[n]<i[n];break}if(p&&(u=s,s=i,i=u,e.s=-e.s),n=(l=i.length)-(d=s.length),n>0)for(;n--;s[d++]=0);for(n=c-1;l>r;){if(s[--l]<i[l]){for(d=l;d&&!s[--d];s[d]=n);--s[d],s[l]+=c}s[l]-=i[l]}for(;0==s[0];s.shift(),--h);return s[0]?K(e,s,h):(e.s=3==F?-1:1,e.c=[e.e=0],e)},i.modulo=i.mod=function(e,t){var s,i,n=this;return S=11,e=new o(e,t),!n.c||!e.s||e.c&&!e.c[0]?new o(NaN):!e.c||n.c&&!n.c[0]?new o(n):(9==U?(i=e.s,e.s=1,s=D(n,e,0,3),e.s=i,s.s*=i):s=D(n,e,0,U),n.minus(s.times(e)))},i.negated=i.neg=function(){var e=new o(this);return e.s=-e.s||null,e},i.plus=i.add=function(e,n){var l,u=this,s=u.s;if(S=12,e=new o(e,n),n=e.s,!s||!n)return new o(NaN);if(s!=n)return e.s=-n,u.minus(e);var h=u.e/t,d=e.e/t,i=u.c,r=e.c;if(!h||!d){if(!i||!r)return new o(s/0);if(!i[0]||!r[0])return r[0]?e:new o(i[0]?u:0*s)}if(h=a(h),d=a(d),i=i.slice(),s=h-d){for(s>0?(d=h,l=r):(s=-s,l=i),l.reverse();s--;l.push(0));l.reverse()}for(s=i.length,n=r.length,0>s-n&&(l=r,r=i,i=l,n=s),s=0;n;)s=(i[--n]=i[n]+r[n]+s)/c|0,i[n]%=c;return s&&(i.unshift(s),++d),K(e,i,d)},i.precision=i.sd=function(e){var n,s,i=this,o=i.c;if(e!=null&&e!==!!e&&1!==e&&0!==e&&(M&&T(13,"argument"+b,e),e!=!!e&&(e=null)),!o)return null;if(n=o.length-1,s=n*t+1,n=o[n]){for(;n%10==0;n/=10,s--);for(n=o[0];n>=10;n/=10,s++);}return e&&i.e+1>s&&(s=i.e+1),s},i.round=function(e,t){var s=new o(this);return(e==null||A(e,0,n,15))&&z(s,~~e+this.e+1,t!=null&&A(t,0,8,15,j)?0|t:F),s},i.shift=function(e){var t=this;return A(e,-h,h,16,"argument")?t.times("1e"+O(e)):new o(t.c&&t.c[0]&&(-h>e||e>h)?t.s*(0>e?0:1/0):t)},i.squareRoot=i.sqrt=function(){var t,n,i,d,h,c=this,l=c.c,e=c.s,s=c.e,u=N+4,m=new o("0.5");if(1!==e||!l||!l[0])return new o(!e||0>e&&(!l||l[0])?NaN:l?c:1/0);if(e=Math.sqrt(+c),0==e||e==1/0?(t=r(l),(t.length+s)%2==0&&(t+="0"),e=Math.sqrt(t),s=a((s+1)/2)-(0>s||s%2),e==1/0?t="1e"+s:(t=e.toExponential(),t=t.slice(0,t.indexOf("e")+1)+s),n=new o(t)):n=new o(e+""),n.c[0])for(s=n.e,e=s+u,3>e&&(e=0);;)if(i=n,n=m.times(i.plus(D(c,i,u,1))),r(i.c).slice(0,e)===(t=r(n.c)).slice(0,e)){if(n.e<s&&--e,t=t.slice(e-3,e+1),"9999"!=t&&(d||"4999"!=t)){(!+t||!+t.slice(1)&&"5"==t.charAt(0))&&(z(n,n.e+N+2,1),h=!n.times(n).eq(c));break}if(!d&&(z(i,i.e+N+2,0),i.times(i).eq(c))){n=i;break}u+=4,e+=4,d=1}return z(n,n.e+N+1,F,h)},i.times=i.mul=function(e,n){var r,l,u,h,m,f,p,g,b,j,y,_,w,O,x,v=this,i=v.c,s=(S=17,e=new o(e,n)).c;if(!(i&&s&&i[0]&&s[0]))return!v.s||!e.s||i&&!i[0]&&!s||s&&!s[0]&&!i?e.c=e.e=e.s=null:(e.s*=v.s,i&&s?(e.c=[0],e.e=0):e.c=e.e=null),e;for(x=a(v.e/t)+a(e.e/t),e.s*=v.s,h=i.length,f=s.length,f>h&&(l=i,i=s,s=l,r=h,h=f,f=r),r=h+f,l=[];r--;l.push(0));for(y=c,u=d,r=f;--r>=0;){for(g=0,_=s[r]%u,j=s[r]/u|0,b=h,p=r+b;p>r;)m=i[--b]%u,w=i[b]/u|0,O=j*m+w*_,m=_*m+O%u*u+l[p]+g,g=(m/y|0)+(O/u|0)+j*w,l[p--]=m%y;l[p]=g}return g?++x:l.shift(),K(e,l,x)},i.toDigits=function(e,t){var s=new o(this);return e=e!=null&&A(e,1,n,18,"precision")?0|e:null,t=t!=null&&A(t,0,8,18,j)?0|t:F,e?z(s,e,t):s},i.toExponential=function(e,t){return $(this,e!=null&&A(e,0,n,19)?~~e+1:null,t,19)},i.toFixed=function(e,t){return $(this,e!=null&&A(e,0,n,20)?~~e+this.e+1:null,t,20)},i.toFormat=function(e,t){if(r=$(this,e!=null&&A(e,0,n,21)?~~e+this.e+1:null,t,21),this.c){var s,r,u=r.split("."),i=+R.groupSize,a=+R.secondaryGroupSize,h=R.groupSeparator,o=u[0],d=u[1],m=this.s<0,c=m?o.slice(1):o,l=c.length;if(a&&(s=i,i=a,a=s,l-=s),i>0&&l>0){for(s=l%i||i,o=c.substr(0,s);l>s;s+=i)o+=h+c.substr(s,i);a>0&&(o+=h+c.slice(s)),m&&(o="-"+o)}r=d?o+R.decimalSeparator+((a=+R.fractionGroupSize)?d.replace(new RegExp("\\d{"+a+"}\\B","g"),"$&"+R.fractionGroupSeparator):d):o}return r},i.toFraction=function(e){var n,s,i,a,u,m,p,g,b,f=M,h=this,v=h.c,c=new o(H),d=a=new o(H),l=i=new o(H);if(e!=null&&(M=!1,n=new o(e),M=f,(!(f=n.isInt())||n.lt(H))&&(M&&T(22,"max denominator "+(f?"out of range":"not an integer"),e),e=!f&&n.c&&z(n,n.e+1,1).gte(H)?n:null)),!v)return h.toString();for(g=r(v),u=c.e=g.length-h.e-1,c.c[0]=y[(m=u%t)<0?t+m:m],e=!e||n.cmp(c)>0?u>0?c:d:n,m=L,L=1/0,n=new o(g),i.c[0]=0;p=D(n,c,0,1),s=a.plus(p.times(l)),1!=s.cmp(e);)a=l,l=s,d=i.plus(p.times(s=d)),i=s,c=n.minus(p.times(s=c)),n=s;return s=D(e.minus(a),l,0,1),i=i.plus(s.times(d)),a=a.plus(s.times(l)),i.s=d.s=h.s,u*=2,b=D(d,l,u,F).minus(h).abs().cmp(D(i,a,u,F).minus(h).abs())<1?[d.toString(),l.toString()]:[i.toString(),a.toString()],L=m,b},i.toNumber=function(){return+this},i.toPower=i.pow=function(e){var n,s,a=l(0>e?-e:+e),i=this;if(!A(e,-h,h,23,"exponent")&&(!isFinite(e)||a>h&&(e/=0)||parseFloat(e)!=e&&!(e=NaN)))return new o(Math.pow(+i,e));for(s=P?g(P/t+2):0,n=new o(H);;){if(a%2){if(n=n.times(i),!n.c)break;s&&n.c.length>s&&(n.c.length=s)}if(a=l(a/2),!a)break;i=i.times(i),s&&i.c&&i.c.length>s&&(i.c.length=s)}return 0>e&&(n=H.div(n)),s?z(n,P,F):n},i.toPrecision=function(e,t){return $(this,e!=null&&A(e,1,n,24,"precision")?0|e:null,t,24)},i.toString=function(e){var t,s=this,o=s.s,n=s.e;return null===n?o?(t="Infinity",0>o&&(t="-"+t)):t="NaN":(t=r(s.c),t=e!=null&&A(e,2,64,25,"base")?Y(u(t,n),0|e,10,o):I>=n||n>=V?f(t,n):u(t,n),0>o&&s.c[0]&&(t="-"+t)),t},i.truncated=i.trunc=function(){return z(new o(this),this.e+1,1)},i.valueOf=i.toJSON=function(){var e,n=this,t=n.e;return null===t?n.toString():(e=r(n.c),e=I>=t||t>=V?f(e,t):u(e,t),n.s<0?"-"+e:e)},e!=null&&o.config(e),o}function a(e){var t=0|e;return e>0||e===t?t:t-1}function r(e){for(var n,i,a=1,s=e.length,o=e[0]+"";s>a;){for(n=e[a++]+"",i=t-n.length;i--;n="0"+n);o+=n}for(s=o.length;48===o.charCodeAt(--s););return o.slice(0,s+1||1)}function m(e,t){var s,i,o=e.c,a=t.c,n=e.s,l=t.s,r=e.e,c=t.e;if(!n||!l)return null;if(s=o&&!o[0],i=a&&!a[0],s||i)return s?i?0:-l:n;if(n!=l)return n;if(s=0>n,i=r==c,!o||!a)return i?0:!o^s?1:-1;if(!i)return r>c^s?1:-1;for(l=(r=o.length)<(c=a.length)?r:c,n=0;l>n;n++)if(o[n]!=a[n])return o[n]>a[n]^s?1:-1;return r==c?0:r>c^s?1:-1}function k(e,t,n){return(e=O(e))>=t&&n>=e}function v(e){return"[object Array]"==Object.prototype.toString.call(e)}function x(e,t,n){for(var o,i,s=[0],a=0,r=e.length;r>a;){for(i=s.length;i--;s[i]*=t);for(s[o=0]+=_.indexOf(e.charAt(a++));o<s.length;o++)s[o]>n-1&&(null==s[o+1]&&(s[o+1]=0),s[o+1]+=s[o]/n|0,s[o]%=n)}return s.reverse()}function f(e,t){return(e.length>1?e.charAt(0)+"."+e.slice(1):e)+(0>t?"e":"e+")+t}function u(e,t){var n,s;if(0>t){for(n="0.";++t;n+="0");e=n+e}else if(s=e.length,++t>s){for(n="0",t-=s;--t;n+="0");e+=n}else s>t&&(e=e.slice(0,t)+"."+e.slice(t));return e}function O(e){return e=parseFloat(e),0>e?g(e):l(e)}var s,w,E=/^-?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,g=Math.ceil,l=Math.floor,b=" not a boolean or binary digit",j="rounding mode",C="number type has more than 15 significant digits",_="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$_",c=1e14,t=14,h=9007199254740991,y=[1,10,100,1e3,1e4,1e5,1e6,1e7,1e8,1e9,1e10,1e11,1e12,1e13],d=1e7,n=1e9;if("undefined"!=typeof crypto&&(s=crypto),"function"==typeof o&&o.amd)o(function(){return p()});else if("undefined"!=typeof module&&module.exports){if(module.exports=p(),!s)try{s=require("crypto")}catch{}}else e||(e="undefined"!=typeof i?i:Function("return this")()),e.BigNumber=p()}(this)}(t[0],s("Numeric"))},Opal.modules.bigdecimal=function(e){var m=e.klass,E=e.module,s=e.def,C=e.slice,x=e.extract_kwargs,O=e.ensure_kwargs,p=e.kwrestargs,w=e.send,v=e.to_a,u=e.defs,o=e.const_set,n=e.truthy,i=e.eqeqeq,l=e.send2,d=e.find_super,g=e.rb_lt,c=e.to_ary,b=e.rb_gt,j=e.rb_ge,y=e.eqeq,_=e.rb_divide,r=e.alias,f=e.top,a=[],h=e.$r(a),t=e.nil;return e.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"),m(a[0],h("Numeric"),"BigDecimal"),f.$require("js"),f.$require("bigdecimal/bignumber"),function(n,o){var i=E(n,"Kernel"),a=[i].concat(o),r=e.$r(a);return s(i,"$BigDecimal",function(n,s){var o=t;return s==null&&(s=0),o=r("BigDecimal").$allocate(),o.$initialize(n,s),o},-2)}(a[0],a),u(h("BigDecimal"),"$new",function(){var a=this,i=C(arguments),o=x(i),o=O(o),r=i,c=p(o,{});return a.$warn("BigDecimal.new is deprecated; use BigDecimal() method instead.",new Map([["uplevel",1]])),w(a,"BigDecimal",v(r).concat([e.to_hash(c)]))},-1),function(a,h,f){var p=m(a,h,"BigDecimal"),w=[p].concat(f),v=e.$r(w);return o(w[0],"VERSION","0"),o(w[0],"ROUND_MODE",256),o(w[0],"ROUND_UP",0),o(w[0],"ROUND_DOWN",1),o(w[0],"ROUND_CEILING",2),o(w[0],"ROUND_FLOOR",3),o(w[0],"ROUND_HALF_UP",4),o(w[0],"ROUND_HALF_DOWN",5),o(w[0],"ROUND_HALF_EVEN",6),o(w[0],"SIGN_NaN",0),o(w[0],"SIGN_POSITIVE_ZERO",1),o(w[0],"SIGN_NEGATIVE_ZERO",-1),o(w[0],"SIGN_POSITIVE_FINITE",2),o(w[0],"SIGN_NEGATIVE_FINITE",-2),o(w[0],"SIGN_POSITIVE_INFINITE",3),o(w[0],"SIGN_NEGATIVE_INFINITE",-3),u(p,"$limit",function(s){var o=this;return o.digits==null&&(o.digits=t),s==null&&(s=t),n(s)&&(o.digits=s),o.digits},-1),u(p,"$mode",function(s,o){var a=this,c=t,r=t;return a.round_mode==null&&(a.round_mode=t),o==null&&(o=t),i(v("ROUND_MODE"),c=s)?(n(o)&&(a.round_mode=o),n(r=a.round_mode)?r:v("ROUND_HALF_UP")):t},-2),p.$attr_reader("bignumber"),s(p,"$initialize",function(t,n){var s=this;return n==null&&(n=0),s.bignumber=v("JS").$new(v("BigNumber"),t)},-2),s(p,"$==",function(n){var s=this,o=t;return i(s.$class(),o=n)?s.$bignumber().equals(n.$bignumber()):!!i(v("Number"),o)&&s.$bignumber().equals(n)}),s(p,"$<=>",function(n){var s=this,o=t,a=t,o=i(s.$class(),a=n)?s.$bignumber().comparedTo(n.$bignumber()):i(v("Number"),a)?s.$bignumber().comparedTo(n):t;return o===null?t:o}),s(p,"$<",function e(s){var i=e.$$p||t,o=this;return e.$$p=null,!(n(o["$nan?"]())||n(s)&&n(s["$nan?"]()))&&l(o,d(o,"<",e,!1,!0),"<",[s],i)}),s(p,"$<=",function e(s){var i=e.$$p||t,o=this;return e.$$p=null,!(n(o["$nan?"]())||n(s)&&n(s["$nan?"]()))&&l(o,d(o,"<=",e,!1,!0),"<=",[s],i)}),s(p,"$>",function e(s){var i=e.$$p||t,o=this;return e.$$p=null,!(n(o["$nan?"]())||n(s)&&n(s["$nan?"]()))&&l(o,d(o,">",e,!1,!0),">",[s],i)}),s(p,"$>=",function e(s){var i=e.$$p||t,o=this;return e.$$p=null,!(n(o["$nan?"]())||n(s)&&n(s["$nan?"]()))&&l(o,d(o,">=",e,!1,!0),">=",[s],i)}),s(p,"$abs",function(){var t=this;return t.$class().$new(t.$bignumber().abs())}),s(p,"$add",function(s,o){var a,l,i=this,d=t,r=t;return o==null&&(o=0),n(o["$nil?"]())&&i.$raise(v("TypeError"),"wrong argument type nil (expected Fixnum)"),n(g(o,0))&&i.$raise(v("ArgumentError"),"argument must be positive"),l=i.$coerce(s),a=c(l),s=a[0]==null?t:a[0],d=a[1]==null?t:a[1],l,r=i.$bignumber().plus(s.$bignumber()),n(b(o,0))&&(r=r.toDigits(o,i.$class().$mode(v("ROUND_MODE")))),i.$class().$new(r)},-2),s(p,"$ceil",function(s){var o=this;return s==null&&(s=t),n(o.$bignumber().isFinite())||o.$raise(v("FloatDomainError"),"Computation results to 'Infinity'"),n(s["$nil?"]())?o.$bignumber().round(0,v("ROUND_CEILING")).toNumber():n(j(s,0))?o.$class().$new(o.$bignumber().round(s,v("ROUND_CEILING"))):o.$class().$new(o.$bignumber().round(0,v("ROUND_CEILING")))},-1),s(p,"$coerce",function(n){var s=this,o=t;return i(s.$class(),o=n)?[n,s]:i(v("Number"),o)?[s.$class().$new(n),s]:s.$raise(v("TypeError"),""+n.$class()+" can't be coerced into "+s.$class())}),s(p,"$div",function(s,o){var a,r,i=this,l=t;return o==null&&(o=t),y(o,0)?_(i,s):(r=i.$coerce(s),a=c(r),s=a[0]==null?t:a[0],l=a[1]==null?t:a[1],r,(n(i["$nan?"]())||n(s["$nan?"]()))&&i.$raise(v("FloatDomainError"),"Computation results to 'NaN'(Not a Number)"),n(o["$nil?"]())?(n(s["$zero?"]())&&i.$raise(v("ZeroDivisionError"),"divided by 0"),n(i["$infinite?"]())&&i.$raise(v("FloatDomainError"),"Computation results to 'Infinity'"),i.$class().$new(i.$bignumber().dividedToIntegerBy(s.$bignumber()))):i.$class().$new(i.$bignumber().dividedBy(s.$bignumber()).round(o,i.$class().$mode(v("ROUND_MODE")))))},-2),s(p,"$finite?",function(){var t=this;return t.$bignumber().isFinite()}),s(p,"$infinite?",function(){var s=this;return n(s["$finite?"]())||n(s["$nan?"]())?t:n(s.$bignumber().isNegative())?-1:1}),s(p,"$minus",function(n){var o=this,a=t,i=o.$coerce(n),s=c(i);return n=s[0]==null?t:s[0],a=s[1]==null?t:s[1],i,o.$class().$new(o.$bignumber().minus(n.$bignumber()))}),s(p,"$mult",function(s,o){var a,r,i=this,l=t;return o==null&&(o=t),r=i.$coerce(s),a=c(r),s=a[0]==null?t:a[0],l=a[1]==null?t:a[1],r,n(o["$nil?"]())?i.$class().$new(i.$bignumber().times(s.$bignumber())):i.$class().$new(i.$bignumber().times(s.$bignumber()).round(o,i.$class().$mode(v("ROUND_MODE"))))},-2),s(p,"$nan?",function(){var t=this;return t.$bignumber().isNaN()}),s(p,"$quo",function(n){var o=this,a=t,i=o.$coerce(n),s=c(i);return n=s[0]==null?t:s[0],a=s[1]==null?t:s[1],i,o.$class().$new(o.$bignumber().dividedBy(n.$bignumber()))}),s(p,"$sign",function(){var s=this;return n(s.$bignumber().isNaN())?v("SIGN_NaN"):n(s.$bignumber().isZero())?n(s.$bignumber().isNegative())?v("SIGN_NEGATIVE_ZERO"):v("SIGN_POSITIVE_ZERO"):t}),s(p,"$sub",function(n){var i=this,r=t,a=i.$coerce(n),o=c(a);return n=o[0]==null?t:o[0],r=o[1]==null?t:o[1],a,i.$class().$new(i.$bignumber().minus(n.$bignumber()))}),s(p,"$to_f",function(){var t=this;return t.$bignumber().toNumber()}),s(p,"$to_s",function(t){var n=this;return t==null&&(t=""),n.$bignumber().toString()},-1),s(p,"$zero?",function(){var t=this;return t.$bignumber().isZero()}),r(p,"===","=="),r(p,"+","add"),r(p,"-","minus"),r(p,"*","mult"),r(p,"/","quo"),r(p,"inspect","to_s")}(a[0],h("Numeric"),a)},Opal.modules.native=function(e){var g=e.hash_put,p=e.module,d=e.defs,r=e.slice,s=e.truthy,o=e.send,m=e.Kernel,_=e.extract_kwargs,S=e.ensure_kwargs,A=e.hash_get,k=e.range,l=e.to_a,n=e.def,b=e.return_ivar,u=e.alias,a=e.klass,f=e.rb_minus,E=e.return_val,x=e.send2,O=e.find_super,v=e.eqeqeq,w=e.rb_ge,y=e.return_self,j=e.gvars,C=e.top,i=[],h=e.$r(i),t=e.nil,c=e.$$$;return e.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(i,a){var c=p(i,"Native"),u=[c].concat(a),h=e.$r(u);return d(c,"$is_a?",function(t,n){var s=this;try{return t instanceof s.$try_convert(n)}catch{return!1}}),d(c,"$try_convert",function(n,s){var o=this;return s==null&&(s=t),o["$native?"](n)?n:n["$respond_to?"]("to_n")?n.$to_n():s},-2),d(c,"$convert",function(t){var n=this;if(n["$native?"](t))return t;if(t["$respond_to?"]("to_n"))return t.$to_n();n.$raise(h("ArgumentError"),""+t.$inspect()+" isn't native")}),d(c,"$call",function e(n,s){var i,a,c,l,u,h,f,p,m=e.$$p||t,d=this;if(e.$$p=null,f=r(arguments,2),a=f,c=n[s],c instanceof Function){for(l=new Array(a.length),i=0,p=a.length;i<p;i++)u=a[i],h=d.$try_convert(u),l[i]=h===t?u:h;return m!==t&&l.push(m),d.$Native(c.apply(n,l))}return d.$Native(c)},-3),d(c,"$proc",function n(){var i=n.$$p||t,a=this;return n.$$p=null,s(i)||a.$raise(h("LocalJumpError"),"no block given"),o(m,"proc",[],function n(){var d,c=n.$$s==null?this:n.$$s,l=t,u=r(arguments),a=u;if(o(a,"map!",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s.$Native(n)},{$$s:c}),l=c.$Native(this),this===e.global)return i.apply(c,a);d=i.$$s,i.$$s=null;try{return i.apply(l,a)}finally{i.$$s=d}},{$$arity:-1,$$s:a})}),function(i,a){var c=p(i,"Helpers"),u=[c].concat(a),d=e.$r(u);return n(c,"$alias_native",function e(n){var c,h,m,f,p=e.$$p||t,u=this;return e.$$p=null,m=r(arguments,1),f=_(m),f=S(f),m.length>0&&(c=m.shift()),c==null&&(c=n),h=A(f,"as"),h==null&&(h=t),s(c["$end_with?"]("="))?o(u,"define_method",[n],function e(n){var s=e.$$s==null?this:e.$$s;return s.native==null&&(s.native=t),n==null&&(n=t),s.native[c["$[]"](k(0,-2,!1))]=d("Native").$convert(n),n},{$$s:u}):s(h)?o(u,"define_method",[n],function e(){var u,m,f=e.$$p||t,i=e.$$s==null?this:e.$$s,a=t;return i.native==null&&(i.native=t),e.$$p=null,u=r(arguments),m=u,a=o(d("Native"),"call",[i.native,c].concat(l(m)),f.$to_proc()),s(a)?h.$new(a.$to_n()):t},{$$arity:-1,$$s:u}):o(u,"define_method",[n],function e(){var i,a,u=e.$$p||t,s=e.$$s==null?this:e.$$s;return s.native==null&&(s.native=t),e.$$p=null,i=r(arguments),a=i,o(d("Native"),"call",[s.native,c].concat(l(a)),u.$to_proc())},{$$arity:-1,$$s:u})},-2),n(c,"$native_reader",function(){var a=this,s=r(arguments),i=s;return o(i,"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),o(s,"define_method",[n],function e(){var s=e.$$s==null?this:e.$$s;return s.native==null&&(s.native=t),s.$Native(s.native[n])},{$$s:s})},{$$s:a})},-1),n(c,"$native_writer",function(){var a=this,s=r(arguments),i=s;return o(i,"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),o(s,"define_method",[""+n+"="],function e(s){var o=e.$$s==null?this:e.$$s;return o.native==null&&(o.native=t),s==null&&(s=t),o.$Native(o.native[n]=s)},{$$s:s})},{$$s:a})},-1),n(c,"$native_accessor",function(){var s=this,i=r(arguments),n=i;return o(s,"native_reader",l(n)),o(s,"native_writer",l(n))},-1)}(u[0],u),function(t,o){var i=p(t,"Wrapper"),r=[i].concat(o),a=e.$r(r);return n(i,"$initialize",function(t){var n=this;return s(m["$native?"](t))||m.$raise(a("ArgumentError"),""+t.$inspect()+" isn't native"),n.native=t}),n(i,"$to_n",b("native")),d(i,"$included",function(t){return t.$extend(a("Helpers"))})}(u[0],u),d(c,"$included",function(t){var n=this;return n.$warn("Including ::Native is deprecated. Please include Native::Wrapper instead."),t.$include(h("Wrapper"))})}(i[0],i),function(i,a){var d=p(i,"Kernel"),m=[d].concat(a),h=e.$r(m);return n(d,"$native?",function(t){return t==null||!t.$$class}),n(d,"$Native",function e(n){var a=e.$$p||t,i=this;return e.$$p=null,s(n==null)?t:s(i["$native?"](n))?c(h("Native"),"Object").$new(n):s(n["$is_a?"](h("Array")))?o(n,"map",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s.$Native(n)},{$$s:i}):s(n["$is_a?"](h("Proc")))?o(i,"proc",[],function e(){var i,a,c=e.$$p||t,d=e.$$s==null?this:e.$$s;return e.$$p=null,i=r(arguments),a=i,d.$Native(o(n,"call",l(a),c.$to_proc()))},{$$arity:-1,$$s:i}):n}),u(d,"_Array","Array"),n(d,"$Array",function e(n){var a,d,m=e.$$p||t,u=this;return e.$$p=null,a=r(arguments,1),d=a,s(u["$native?"](n))?o(c(h("Native"),"Array"),"new",[n].concat(l(d)),m.$to_proc()).$to_a():u.$_Array(n)},-2)}(i[0],i),function(i,d){var h=a(i,d,"Object"),p=h.$$prototype;return p.native=t,h.$include(c(c("Native"),"Wrapper")),n(h,"$==",function(t){var n=this;return n.native===c("Native").$try_convert(t)}),n(h,"$has_key?",function(n){var s=this;return e.hasOwnProperty.call(s.native,n)}),n(h,"$each",function n(){var a,c,u,d=n.$$p||t,i=this;if(n.$$p=null,a=r(arguments),c=a,d!==t){for(u in i.native)e.yieldX(d,[u,i.native[u]]);return i}return o(i,"method_missing",["each"].concat(l(c)))},-1),n(h,"$[]",function(t){var n=this,s=n.native[t];return s instanceof Function?s:c("Native").$call(n.native,t)}),n(h,"$[]=",function(n,o){var a=this,i=t,i=c("Native").$try_convert(o);return s(i===t)?a.native[n]=o:a.native[n]=i}),n(h,"$merge!",function(t){var s,n=this;t=c("Native").$convert(t);for(s in t)n.native[s]=t[s];return n}),n(h,"$respond_to?",function(t,n){var s=this;return n==null&&(n=!1),m.$instance_method("respond_to?").$bind(s).$call(t,n)},-2),n(h,"$respond_to_missing?",function(n,s){var o=this;return s==null&&(s=!1),e.hasOwnProperty.call(o.native,n)},-2),n(h,"$method_missing",function e(n){var i,a,d,h=e.$$p||t,u=this;return e.$$p=null,d=r(arguments,1),a=d,n.charAt(n.length-1)==="="?(i=[n.$slice(0,f(n.$length(),1)),a["$[]"](0)],o(u,"[]=",i),i[i.length-1]):o(c("Native"),"call",[u.native,n].concat(l(a)),h.$to_proc())},-2),n(h,"$nil?",E(!1)),n(h,"$is_a?",function(n){var s=this;return e.is_a(s,n)}),n(h,"$instance_of?",function(t){var n=this;return n.$$class===t}),n(h,"$class",function(){var t=this;return t.$$class}),n(h,"$to_a",function e(n){var s=e.$$p||t,i=this;return e.$$p=null,n==null&&(n=new Map),o(c(c("Native"),"Array"),"new",[i.native,n],s.$to_proc()).$to_a()},-1),n(h,"$inspect",function(){var t=this;return"#<Native:"+String(t.native)+">"}),u(h,"include?","has_key?"),u(h,"key?","has_key?"),u(h,"kind_of?","is_a?"),u(h,"member?","has_key?")}(h("Native"),h("BasicObject")),function(o,i,r){var l=a(o,i,"Array"),m=[l].concat(r),d=e.$r(m),h=l.$$prototype;return h.named=h.native=h.get=h.block=h.set=h.length=t,l.$include(c(d("Native"),"Wrapper")),l.$include(d("Enumerable")),n(l,"$initialize",function e(n,o){var r=e.$$p||t,i=this,a=t;return e.$$p=null,o==null&&(o=new Map),x(i,O(i,"initialize",e,!1,!0),"initialize",[n],null),i.get=s(a=o["$[]"]("get"))?a:o["$[]"]("access"),i.named=o["$[]"]("named"),i.set=s(a=o["$[]"]("set"))?a:o["$[]"]("access"),i.length=s(a=o["$[]"]("length"))?a:"length",i.block=r,s(i.$length()==null)?i.$raise(d("ArgumentError"),"no length found on the array-like object"):t},-2),n(l,"$each",function n(){var i,r,a=n.$$p||t,o=this;if(n.$$p=null,!s(a))return o.$enum_for("each");for(i=0,r=o.$length();i<r;i++)e.yield1(a,o["$[]"](i));return o}),n(l,"$[]",function(n){var o=this,i=t,a=t,i=v(d("String"),a=n)||v(d("Symbol"),a)?s(o.named)?o.native[o.named](n):o.native[n]:v(d("Integer"),a)?s(o.get)?o.native[o.get](n):o.native[n]:t;return s(i)?s(o.block)?o.block.$call(i):o.$Native(i):t}),n(l,"$[]=",function(t,n){var o=this;return s(o.set)?o.native[o.set](t,d("Native").$convert(n)):o.native[t]=d("Native").$convert(n)}),n(l,"$last",function(n){var i=this,o=t,a=t;if(n==null&&(n=t),s(n)){for(o=f(i.$length(),1),a=[];s(w(o,0));)a["$<<"](i["$[]"](o)),o=f(o,1);return a}return i["$[]"](f(i.$length(),1))},-1),n(l,"$length",function(){var t=this;return t.native[t.length]}),n(l,"$inspect",function(){var t=this;return t.$to_a().$inspect()}),u(l,"to_ary","to_a")}(h("Native"),null,i),function(e,t){var s=a(e,t,"Numeric");return n(s,"$to_n",function(){var t=this;return t.valueOf()})}(i[0],null),function(e,t){var s=a(e,t,"Proc");return n(s,"$to_n",y)}(i[0],null),function(e,t){var s=a(e,t,"String");return n(s,"$to_n",function(){var t=this;return t.valueOf()})}(i[0],null),function(e,t){var s=a(e,t,"Regexp");return n(s,"$to_n",function(){var t=this;return t.valueOf()})}(i[0],null),function(e,t){var s=a(e,t,"MatchData");return n(s,"$to_n",b("matches"))}(i[0],null),function(s,i,r){var c=a(s,i,"Struct"),l=[c].concat(r),d=e.$r(l);return n(c,"$to_n",function(){var s=this,n=t,n={};return o(s,"each_pair",[],function(s,o){return s==null&&(s=t),o==null&&(o=t),n[s]=d("Native").$try_convert(o,o)}),n})}(i[0],null,i),function(t,s,o){var i=a(t,s,"Array"),r=[i].concat(o),c=e.$r(r);return n(i,"$to_n",function(){for(var n,s=this,o=[],t=0,i=s.length;t<i;t++)n=s[t],o.push(c("Native").$try_convert(n,n));return o})}(i[0],null,i),function(e,t){var s=a(e,t,"Boolean");return n(s,"$to_n",function(){var t=this;return t.valueOf()})}(i[0],null),function(e,t){var s=a(e,t,"Time");return n(s,"$to_n",y)}(i[0],null),function(e,t){var s=a(e,t,"NilClass");return n(s,"$to_n",function(){return null})}(i[0],null),s(h("Hash")["$method_defined?"]("_initialize"))||function(s,i,r){var c=a(s,i,"Hash"),h=[c].concat(r),l=e.$r(h);u(c,"_initialize","initialize");function d(e,t,n){n&&(n.constructor===void 0||n.constructor===Object||n instanceof Map)?g(e,t,l("Hash").$new(n)):n&&n.$$is_array?(n=n.map(function(e){return e&&(e.constructor===void 0||e.constructor===Object||n instanceof Map)?l("Hash").$new(e):c.$Native(e)}),g(e,t,n)):g(e,t,c.$Native(n))}return n(c,"$initialize",function n(s){var a,r,c=n.$$p||t,i=this;if(n.$$p=null,s!=null){if(s.constructor===void 0||s.constructor===Object){for(a in s)r=s[a],d(i,a,r);return i}s instanceof Map&&e.hash_each(s,!1,function(e,t){return d(i,e,t),[!1,!1]})}return o(i,"_initialize",[s],c.$to_proc())},-1),n(c,"$to_n",function(){var s=this,n={};return e.hash_each(s,!1,function(e,t){return n[l("Native").$try_convert(e,e)]=l("Native").$try_convert(t,t),[!1,!1]}),n})}(i[0],null,i),function(t,s){var o=a(t,s,"Module");return n(o,"$native_module",function(){var n=this;return e.global[n.$name()]=n})}(i[0],null),function(t,s,o){var i=a(t,s,"Class"),r=[i].concat(o),c=e.$r(r);return n(i,"$native_alias",function(n,s){var o=this,i=o.prototype[e.jsid(s)];i||o.$raise(c("NameError").$new("undefined method `"+s+"' for class `"+o.$inspect()+"'",s)),o.prototype[n]=i}),n(i,"$native_class",function(){var t=this;return t.$native_module(),t.new=t.$new})}(i[0],null,i),j.$=j.global=C.$Native(e.global)},Opal.modules["buffer/array"]=function(e){var o=e.klass,s=e.gvars,c=e.defs,l=e.eqeq,i=e.send2,a=e.find_super,t=e.def,d=e.truthy,u=e.alias,r=[],n=e.nil,h=e.$$$;return e.add_stubs("include,[],name_for,attr_reader,==,for,to_n,enum_for,length"),function(r,m,f){var g=o(r,m,"Buffer"),p=[g].concat(f);return function(r,m,f){var p=o(r,m,"Array"),v=[p].concat(f),g=e.$r(v),b=p.$$prototype;return b.native=n,p.$include(h(g("Native"),"Wrapper")),c(p,"$for",function(t,o){return s.$==null&&(s.$=n),s.$["$[]"](""+g("Buffer").$name_for(t,o)+"Array")}),p.$include(g("Enumerable")),p.$attr_reader("buffer","type"),t(p,"$initialize",function e(t,s,o){var c,d=e.$$p||n,r=this;return e.$$p=null,s==null&&(s=n),o==null&&(o=n),l(g("Native"),t)?i(r,a(r,"initialize",e,!1,!0),"initialize",[t],null):(c=g("Array").$for(s,o),i(r,a(r,"initialize",e,!1,!0),"initialize",[new c(t.$to_n())],null)),r.buffer=t,r.type=o},-2),t(p,"$bits",function(){var t=this;return t.native.BYTES_PER_ELEMENT*8}),t(p,"$[]",function(t,s){var o=this;return s==null&&(s=n),d(s)?o.native.subarray(t,s):o.native[t]},-2),t(p,"$[]=",function(t,n){var s=this;return s.native[t]=n}),t(p,"$bytesize",function(){var t=this;return t.native.byteLength}),t(p,"$each",function t(){var o,a,i=t.$$p||n,s=this;if(t.$$p=null,i===n)return s.$enum_for("each");for(o=0,a=s.native.length;o<a;o++)e.yield1(i,s.native[o]);return s}),t(p,"$length",function(){var t=this;return t.native.length}),t(p,"$merge!",function(t,n){var s=this;return s.native.set(t.$to_n(),n)},-2),u(p,"size","length")}(p[0],null,p)}(r[0],null,r)},Opal.modules["buffer/view"]=function(e){var c=e.klass,a=e.gvars,d=e.defs,s=e.truthy,o=e.send2,i=e.find_super,t=e.def,r=e.alias,l=[],n=e.nil,u=e.$$$;return e.add_stubs("include,!,nil?,[],attr_reader,native?,to_n,name_for,get,set,length"),function(l,h,m){var p=c(l,h,"Buffer"),f=[p].concat(m);return function(l,h,m){var f=c(l,h,"View"),g=[f].concat(m),p=e.$r(g),v=f.$$prototype;return v.native=n,f.$include(u(p("Native"),"Wrapper")),d(f,"$supported?",function(){return a.$==null&&(a.$=n),a.$["$[]"]("DataView")["$nil?"]()["$!"]()}),f.$attr_reader("buffer","offset"),t(f,"$initialize",function e(t,a,r){var l=e.$$p||n,c=this;return e.$$p=null,a==null&&(a=n),r==null&&(r=n),s(c["$native?"](t))?o(c,i(c,"initialize",e,!1,!0),"initialize",[t],null):s(a)&&s(r)?o(c,i(c,"initialize",e,!1,!0),"initialize",[new DataView(t.$to_n(),a.$to_n(),r.$to_n())],null):s(a)?o(c,i(c,"initialize",e,!1,!0),"initialize",[new DataView(t.$to_n(),a.$to_n())],null):o(c,i(c,"initialize",e,!1,!0),"initialize",[new DataView(t.$to_n())],null),c.buffer=t,c.offset=a},-2),t(f,"$length",function(){var t=this;return t.native.byteLength}),t(f,"$get",function(t,n,s,o){var i=this;return n==null&&(n=8),s==null&&(s="unsigned"),o==null&&(o=!1),i.native["get"+p("Buffer").$name_for(n,s)](t,o)},-2),r(f,"[]","get"),t(f,"$set",function(t,n,s,o,i){var a=this;return s==null&&(s=8),o==null&&(o="unsigned"),i==null&&(i=!1),a.native["set"+p("Buffer").$name_for(s,o)](t,n,i)},-3),r(f,"[]=","set"),t(f,"$get_int8",function(t,n){var s=this;return n==null&&(n=!1),s.native.getInt8(t,n)},-2),t(f,"$set_int8",function(t,n,s){var o=this;return s==null&&(s=!1),o.native.setInt8(t,n,s)},-3),t(f,"$get_uint8",function(t,n){var s=this;return n==null&&(n=!1),s.native.getUint8(t,n)},-2),t(f,"$set_uint8",function(t,n,s){var o=this;return s==null&&(s=!1),o.native.setUint8(t,n,s)},-3),t(f,"$get_int16",function(t,n){var s=this;return n==null&&(n=!1),s.native.getInt16(t,n)},-2),t(f,"$set_int16",function(t,n,s){var o=this;return s==null&&(s=!1),o.native.setInt16(t,n,s)},-3),t(f,"$get_uint16",function(t,n){var s=this;return n==null&&(n=!1),s.native.getUint16(t,n)},-2),t(f,"$set_uint16",function(t,n,s){var o=this;return s==null&&(s=!1),o.native.setUint16(t,n,s)},-3),t(f,"$get_int32",function(t,n){var s=this;return n==null&&(n=!1),s.native.getInt32(t,n)},-2),t(f,"$set_int32",function(t,n,s){var o=this;return s==null&&(s=!1),o.native.setInt32(t,n,s)},-3),t(f,"$get_uint32",function(t,n){var s=this;return n==null&&(n=!1),s.native.getUint32(t,n)},-2),t(f,"$set_uint32",function(t,n,s){var o=this;return s==null&&(s=!1),o.native.setUint32(t,n,s)},-3),t(f,"$get_float32",function(t,n){var s=this;return n==null&&(n=!1),s.native.getFloat32(t,n)},-2),t(f,"$set_float32",function(t,n,s){var o=this;return s==null&&(s=!1),o.native.setFloat32(t,n,s)},-3),t(f,"$get_float64",function(t,n){var s=this;return n==null&&(n=!1),s.native.getFloat64(t,n)},-2),t(f,"$set_float64",function(t,n,s){var o=this;return s==null&&(s=!1),o.native.setFloat64(t,n,s)},-3),r(f,"size","length")}(f[0],null,f)}(l[0],null,l)},Opal.modules.buffer=function(e){var h=e.klass,i=e.gvars,c=e.defs,o=e.eqeqeq,d=e.truthy,a=e.send2,r=e.find_super,n=e.def,u=e.alias,s=e.top,l=[],t=e.nil,m=e.$$$;return e.add_stubs("require,include,!,nil?,[],===,native?,new,pack,to_a,length"),s.$require("native"),s.$require("buffer/array"),s.$require("buffer/view"),function(s,l,f){var p=h(s,l,"Buffer"),v=[p].concat(f),g=e.$r(v),b=p.$$prototype;return b.native=t,p.$include(m(g("Native"),"Wrapper")),c(p,"$supported?",function(){return i.$==null&&(i.$=t),i.$["$[]"]("ArrayBuffer")["$nil?"]()["$!"]()}),c(p,"$name_for",function(n,s){var a=t,i=t,a=o("unsigned",i=s)?"Uint":o("signed",i)?"Int":o("float",i)?"Float":t;return""+a+n}),n(p,"$initialize",function e(n,s){var i=e.$$p||t,o=this;return e.$$p=null,s==null&&(s=8),d(o["$native?"](n))?a(o,r(o,"initialize",e,!1,!0),"initialize",[n],null):a(o,r(o,"initialize",e,!1,!0),"initialize",[new ArrayBuffer(n*(s/8))],null)},-2),n(p,"$length",function(){var t=this;return t.native.byteLength}),n(p,"$to_a",function(t,n){var s=this;return t==null&&(t=8),n==null&&(n="unsigned"),g("Array").$new(s,t,n)},-1),n(p,"$view",function(n,s){var o=this;return n==null&&(n=t),s==null&&(s=t),g("View").$new(o,n,s)},-1),n(p,"$to_s",function(){var t=this;return t.$to_a().$to_a().$pack("c*")}),u(p,"size","length")}(l[0],null,l)},Opal.modules.base64=function(e){var s=e.module,t=e.defs,o=e.ensure_kwargs,i=e.hash_get,a=e.truthy,n=[],r=e.nil;return e.add_stubs("raise,delete"),function(n,c){var l=s(n,"Base64"),f=[l].concat(c),h=e.$r(f),m="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",d=function(e){for(var n,s,o=String(e),t=0,i=m,a="";o.charAt(t|0)||(i="=",t%1);a+=i.charAt(63&n>>8-t%1*8))s=o.charCodeAt(t+=3/4),s>255&&l.$raise(h("ArgumentError"),"invalid character (failed: The string to be encoded contains characters outside of the Latin1 range.)"),n=n<<8|s;return a},u=function(e){n=String(e).replace(/=+$/,""),n.length%4==1&&l.$raise(h("ArgumentError"),"invalid base64 (failed: The string to be decoded is not correctly encoded.)");for(var t,n,o,s=0,a=0,i="";t=n.charAt(a++);~t&&(o=s%4?o*64+t:t,s++%4)?i+=String.fromCharCode(255&o>>(-2*s&6)):0)t=m.indexOf(t);return i};return t(l,"$decode64",function(t){return u(t.replace(/\r?\n/g,""))}),t(l,"$encode64",function(t){return d(t).replace(/(.{60})/g,`$1
`).replace(/([^\n])$/g,`$1
`)}),t(l,"$strict_decode64",function(t){return u(t)}),t(l,"$strict_encode64",function(t){return d(t)}),t(l,"$urlsafe_decode64",function(t){return u(t.replace(/-/g,"+").replace(/_/g,"/"))}),t(l,"$urlsafe_encode64",function(t,n){var s,c=r;return n=o(n),s=i(n,"padding"),s==null&&(s=!0),c=d(t).replace(/\+/g,"-").replace(/\//g,"_"),a(s)||(c=c.$delete("=")),c},-2)}(n[0],n)},Opal.modules.console=function(e){var c=e.klass,t=e.def,s=e.slice,o=e.truthy,i=e.eqeq,a=e.send,l=e.gvars,d=e.top,r=[],u=e.$r(r),n=e.nil,h=e.$$$;return e.add_stubs("require,include,raise,==,arity,instance_exec,to_proc,new"),d.$require("native"),function(r,l,d){var u=c(r,l,"Console"),f=[u].concat(d),m=e.$r(f),p=u.$$prototype;return p.native=n,u.$include(h(m("Native"),"Wrapper")),t(u,"$clear",function(){var t=this;return t.native.clear()}),t(u,"$trace",function(){var t=this;return t.native.trace()}),t(u,"$log",function(){var n=this,o=s(arguments),i=o;return n.native.log.apply(n.native,i)},-1),t(u,"$info",function(){var n=this,o=s(arguments),i=o;return n.native.info.apply(n.native,i)},-1),t(u,"$warn",function(){var n=this,o=s(arguments),i=o;return n.native.warn.apply(n.native,i)},-1),t(u,"$error",function(){var n=this,o=s(arguments),i=o;return n.native.error.apply(n.native,i)},-1),t(u,"$time",function t(s){var c=t.$$p||n,r=this;return t.$$p=null,o(c)||r.$raise(m("ArgumentError"),"no block given"),r.native.time(s),function(){try{return i(c.$arity(),0)?a(r,"instance_exec",[],c.$to_proc()):e.yield1(c,r)}finally{r.native.timeEnd()}}()}),t(u,"$group",function t(){var d,u,l=t.$$p||n,c=this;return t.$$p=null,d=s(arguments),u=d,o(l)||c.$raise(m("ArgumentError"),"no block given"),c.native.group.apply(c.native,u),function(){try{return i(l.$arity(),0)?a(c,"instance_exec",[],l.$to_proc()):e.yield1(l,c)}finally{c.native.groupEnd()}}()},-1),t(u,"$group!",function t(){var l,d,c=t.$$p||n,r=this;return t.$$p=null,l=s(arguments),d=l,c!==n?(r.native.groupCollapsed.apply(r.native,d),function(){try{return i(c.$arity(),0)?a(r,"instance_exec",[],c.$to_proc()):e.yield1(c,r)}finally{r.native.groupEnd()}}()):n},-1)}(r[0],null,r),o(typeof e.global.console!="undefined")?l.console=u("Console").$new(e.global.console):n},Opal.modules.forwardable=function(e){var c=e.module,n=e.send,s=e.truthy,o=e.def,i=e.slice,r=e.to_a,a=e.alias,l=[],t=e.nil;return e.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(e){var l=c(e,"Forwardable");return o(l,"$instance_delegate",function(o){var i=this;return n(o,"each",[],function e(o,i){var a=e.$$s==null?this:e.$$s;return o==null&&(o=t),i==null&&(i=t),s(o["$respond_to?"]("each"))||(o=[o]),n(o,"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s.$def_instance_delegator(i,n)},{$$s:a})},{$$s:i})}),o(l,"$def_instance_delegators",function(o){var l=this,r=i(arguments,1),c=r;return n(c,"each",[],function e(n){var i=e.$$s==null?this:e.$$s;return n==null&&(n=t),s(["__send__","__id__"]["$include?"](n))?t:i.$def_instance_delegator(o,n)},{$$s:l})},-2),o(l,"$def_instance_delegator",function e(o,a,c){var d=e.$$p||t,l=this;return e.$$p=null,c==null&&(c=a),s(o.$to_s()["$start_with?"]("@"))?n(l,"define_method",[c],function e(){var c,l,d=e.$$p||t,u=e.$$s==null?this:e.$$s;return e.$$p=null,c=i(arguments),l=c,n(u.$instance_variable_get(o),"__send__",[a].concat(r(l)),d.$to_proc())},{$$arity:-1,$$s:l}):n(l,"define_method",[c],function e(){var c,l,d=e.$$p||t,u=e.$$s==null?this:e.$$s;return e.$$p=null,c=i(arguments),l=c,n(u.$__send__(o),"__send__",[a].concat(r(l)),d.$to_proc())},{$$arity:-1,$$s:l})},-3),a(l,"delegate","instance_delegate"),a(l,"def_delegators","def_instance_delegators"),a(l,"def_delegator","def_instance_delegator")}(l[0]),function(e){var l=c(e,"SingleForwardable");return o(l,"$single_delegate",function(o){var i=this;return n(o,"each",[],function e(o,i){var a=e.$$s==null?this:e.$$s;return o==null&&(o=t),i==null&&(i=t),s(o["$respond_to?"]("each"))||(o=[o]),n(o,"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s.$def_single_delegator(i,n)},{$$s:a})},{$$s:i})}),o(l,"$def_single_delegators",function(o){var l=this,r=i(arguments,1),c=r;return n(c,"each",[],function e(n){var i=e.$$s==null?this:e.$$s;return n==null&&(n=t),s(["__send__","__id__"]["$include?"](n))?t:i.$def_single_delegator(o,n)},{$$s:l})},-2),o(l,"$def_single_delegator",function e(o,a,c){var d=e.$$p||t,l=this;return e.$$p=null,c==null&&(c=a),s(o.$to_s()["$start_with?"]("@"))?n(l,"define_singleton_method",[c],function e(){var c,l,d=e.$$p||t,u=e.$$s==null?this:e.$$s;return e.$$p=null,c=i(arguments),l=c,n(u.$instance_variable_get(o),"__send__",[a].concat(r(l)),d.$to_proc())},{$$arity:-1,$$s:l}):n(l,"define_singleton_method",[c],function e(){var c,l,d=e.$$p||t,u=e.$$s==null?this:e.$$s;return e.$$p=null,c=i(arguments),l=c,n(u.$__send__(o),"__send__",[a].concat(r(l)),d.$to_proc())},{$$arity:-1,$$s:l})},-3),a(l,"delegate","single_delegate"),a(l,"def_delegators","def_single_delegators"),a(l,"def_delegator","def_single_delegator")}(l[0])},Opal.modules["date/infinity"]=function(e){var r=e.klass,t=e.def,i=e.return_val,s=e.eqeqeq,m=e.to_ary,h=e.send2,c=e.find_super,u=e.eqeq,l=e.truthy,d=e.rb_gt,o=[],n=e.nil,a=e.$$$;return e.add_stubs("include,<=>,attr_reader,nonzero?,d,zero?,new,class,-@,+@,===,coerce,==,>"),function(o,f,p){var v=r(o,f,"Date"),g=[v].concat(p),b=e.$r(g);return function(o,f,p){var g=r(o,f,"Infinity"),b=[g].concat(p),v=e.$r(b),j=g.$$prototype;return j.d=n,g.$include(v("Comparable")),t(g,"$initialize",function(t){var n=this;return t==null&&(t=1),n.d=t["$<=>"](0)},-1),g.$attr_reader("d"),t(g,"$zero?",i(!1)),t(g,"$finite?",i(!1)),t(g,"$infinite?",function(){var t=this;return t.$d()["$nonzero?"]()}),t(g,"$nan?",function(){var t=this;return t.$d()["$zero?"]()}),t(g,"$abs",function(){var t=this;return t.$class().$new()}),t(g,"$-@",function(){var t=this;return t.$class().$new(t.$d()["$-@"]())}),t(g,"$+@",function(){var t=this;return t.$class().$new(t.$d()["$+@"]())}),t(g,"$<=>",function(o){var i,a,r=this,c=n,l=n,d=n;if(s(v("Infinity"),c=o))return r.$d()["$<=>"](o.$d());if(s(v("Numeric"),c))return r.$d();try{return a=o.$coerce(r),i=m(a),l=i[0]==null?n:i[0],d=i[1]==null?n:i[1],a,l["$<=>"](d)}catch(t){if(e.rescue(t,[v("NoMethodError")]))try{return n}finally{e.pop_exception(t)}else throw t}}),t(g,"$coerce",function e(t){var i=e.$$p||n,o=this,a=n;return e.$$p=null,s(v("Numeric"),a=t)?[o.$d()["$-@"](),o.$d()]:h(o,c(o,"coerce",e,!1,!0),"coerce",[t],i)}),t(g,"$to_f",function(){var t=this;return u(t.d,0)?0:l(d(t.d,0))?a(v("Float"),"INFINITY"):a(v("Float"),"INFINITY")["$-@"]()})}(g[0],b("Numeric"),g)}(o[0],null,o)},Opal.modules.time=function(e){var p=e.klass,c=e.defs,g=e.ensure_kwargs,o=e.hash_get,u=e.send,a=e.eqeqeq,n=e.truthy,f=e.rb_gt,r=e.rb_plus,d=e.alias,i=e.def,h=e.return_self,m=e.top,l=[],t=e.nil,s=e.$$$;return e.add_stubs("define_method,===,new_offset,utc,year,month,day,getutc,strftime,>,+,def_formatter,rfc2822,xmlschema,wrap,require"),function(l,m,v){var b=p(l,m,"Time"),y=[b].concat(v),j=e.$r(y);return c(b,"$parse",function(t){var n=Date.parse(t);return n!==n&&(t=t.replace(/^(\d+)([./])(\d+)([\./])?(\d+)?/,function(e,t,n,s,o,i){return n===o&&i?t+"-"+s+"-"+i:s&&!o?t+"-"+s+"-01":e}),n=Date.parse(t)),new Date(n)}),c(b,"$def_formatter",function(i,c,l){var d,h,m,p,v,b=this;return l=g(l),h=o(l,"on_utc"),h==null&&(h=!1),m=o(l,"utc_tz"),m==null&&(m=t),d=o(l,"tz_format"),d==null&&(d=t),p=o(l,"fractions"),p==null&&(p=!1),v=o(l,"on"),v==null&&(v=b),u(v,"define_method",[i],function e(o){var b,j,i=e.$$s==null?this:e.$$s,g=t,v=t,u=t,l=t;return o==null&&(o=0),a(n(g=(b=s("::","DateTime","skip_raise"))?"constant":t)?s("DateTime"):g,v=i)?u=n(h)?i.$new_offset(0):i:a(n(g=(j=s("::","Date","skip_raise"))?"constant":t)?s("Date"):g,v)?u=s("Time").$utc(i.$year(),i.$month(),i.$day()):a(s("Time"),v)?u=n(h)?i.$getutc():i:t,l=u.$strftime(c),n(p)&&n(f(o,0))&&(l=r(l,u.$strftime(".%"+o+"N"))),n(m)?l=r(l,n(i.$utc())?m:u.$strftime(d)):n(d)&&(l=r(l,u.$strftime(d))),l},{$$arity:-1,$$s:b})},-3),b.$def_formatter("rfc2822","%a, %d %b %Y %T ",new Map([["utc_tz","-00:00"],["tz_format","%z"]])),d(b,"rfc822","rfc2822"),b.$def_formatter("httpdate","%a, %d %b %Y %T GMT",new Map([["on_utc",!0]])),b.$def_formatter("xmlschema","%FT%T",new Map([["utc_tz","Z"],["tz_format","%:z"],["fractions",!0]])),d(b,"iso8601","xmlschema"),i(b,"$to_date",function(){var t=this;return j("Date").$wrap(t)}),i(b,"$to_datetime",function(){var t=this;return j("DateTime").$wrap(t)}),i(b,"$to_time",h)}(l[0],null,l),m.$require("date")},Opal.modules["date/date_time"]=function(e){var m=e.klass,t=e.def,o=e.alias,a=e.rb_divide,h=e.rb_times,d=e.rb_plus,r=e.rb_minus,c=e.truthy,l=e.return_self,s=[],u=e.$r(s),i=e.nil,n=e.$$$;return e.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(s,u,f){var p=m(s,u,"DateTime"),v=[p].concat(f),g=e.$r(v),b=p.$$prototype;return b.date=i,function(n,s){var i=[n].concat(s),o=e.$r(i);return t(n,"$now",function(){var t=this;return t.$wrap(o("Time").$now())}),t(n,"$parse",function(t){var n=this;return n.$wrap(o("Time").$parse(t))})}(e.get_singleton_class(p),v),t(p,"$initialize",function(t,n,s,o,i,a,r,c){var l=this;return t==null&&(t=-4712),n==null&&(n=1),s==null&&(s=1),o==null&&(o=0),i==null&&(i=0),a==null&&(a=0),r==null&&(r=0),c==null&&(c=g("ITALY")),t===1582&&n===10&&s>4&&s<15&&(s=4),l.date=g("Time").$new(t,n,s,o,i,a,r),l.start=c},-1),p.$def_delegators("@date","min","hour","sec"),o(p,"minute","min"),o(p,"second","sec"),t(p,"$sec_fraction",function(){var t=this;return a(t.date.$usec(),n("Rational").$new(1e6,1))}),o(p,"second_fraction","sec_fraction"),t(p,"$offset",function(){var t=this;return a(t.date.$gmt_offset(),h(24,n("Rational").$new(3600,1)))}),t(p,"$+",function(t){var s=this;return n("DateTime").$wrap(d(s.date,t))}),t(p,"$-",function(s){var a=this,o=i;return e.is_a(s,n("Date"))&&(s=s.date),o=r(a.date,s),c(o["$is_a?"](n("Time")))?n("DateTime").$wrap(o):o}),t(p,"$new_offset",function(t){var s=this,n=i,n=s.$clone();return t=g("Time").$_parse_offset(t),n.date.timezone=t,n}),t(p,"$to_datetime",l),t(p,"$to_time",function(){var t=this;return t.date.$dup()}),t(p,"$to_date",function(){var t=this;return g("Date").$new(t.$year(),t.$month(),t.$day())})}(s[0],u("Date"),s)},Opal.modules["date/formatters"]=function(e){var s=e.klass,o=e.slice,i=e.extract_kwargs,a=e.ensure_kwargs,r=e.kwrestargs,c=e.send,l=e.to_a,d=e.defs,t=e.alias,n=[],u=e.$r(n),h=e.nil;return e.add_stubs("def_formatter,asctime,iso8601,rfc2822,xmlschema"),function(n,u,h){var m=s(n,u,"Date"),f=[m].concat(h),p=e.$r(f);return d(m,"$def_formatter",function(){var f=this,u=o(arguments),d=i(u),d=a(d),h=u,m=r(d,{});return c(p("Time"),"def_formatter",l(h).concat([e.to_hash(m).$merge(new Map([["on",f]]))]))},-1),m.$def_formatter("asctime","%c"),t(m,"ctime","asctime"),m.$def_formatter("iso8601","%F"),t(m,"xmlschema","iso8601"),m.$def_formatter("rfc3339","%FT%T%:z"),m.$def_formatter("rfc2822","%a, %-d %b %Y %T %z"),t(m,"rfc822","rfc2822"),m.$def_formatter("httpdate","%a, %d %b %Y %T GMT",new Map([["utc",!0]])),m.$def_formatter("jisx0301","%J"),t(m,"to_s","iso8601")}(n[0],null,n),function(e,n){var o=s(e,n,"DateTime");return o.$def_formatter("xmlschema","%FT%T",new Map([["fractions",!0],["tz_format","%:z"]])),t(o,"iso8601","xmlschema"),t(o,"rfc3339","xmlschema"),o.$def_formatter("jisx0301","%JT%T",new Map([["fractions",!0],["tz_format","%:z"]])),t(o,"to_s","xmlschema"),o.$def_formatter("zone","%:z")}(n[0],u("Date"))},Opal.modules.date=function(e){var g=e.klass,o=e.const_set,c=e.rb_plus,t=e.def,i=e.send,r=e.alias,l=e.rb_minus,v=e.return_self,m=e.return_ivar,d=e.truthy,u=e.rb_lt,p=e.rb_times,f=e.defs,a=e.top,h=[],n=e.nil,s=e.$$$;return e.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"),a.$require("forwardable"),a.$require("date/infinity"),a.$require("time"),function(a,h,b){var j=g(a,h,"Date"),y=[j].concat(b),_=e.$r(y),w=j.$$prototype;return w.date=w.start=n,j.$include(_("Comparable")),j.$extend(_("Forwardable")),o(y[0],"JULIAN",_("Infinity").$new()),o(y[0],"GREGORIAN",_("Infinity").$new()["$-@"]()),o(y[0],"ITALY",2299161),o(y[0],"ENGLAND",2361222),o(y[0],"MONTHNAMES",c([n],["January","February","March","April","May","June","July","August","September","October","November","December"])),o(y[0],"ABBR_MONTHNAMES",["jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"]),o(y[0],"DAYNAMES",["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]),o(y[0],"ABBR_DAYNAMES",["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]),function(s,o){var c=[s].concat(o),a=e.$r(c);return t(s,"$wrap",function(t){var o=this,s=n,s=o.$allocate();return s.start=a("ITALY"),s.date=t,s}),t(s,"$parse",function(t,n){w=this,n==null&&(n=!0);var l,d,u,m,f,b,y,_,w,j=new Date,k=j.getDate(),O=j.getMonth(),h=j.getFullYear(),A=j.getDay(),p=a("MONTHNAMES").$compact().$join("|");function o(e){return e[1]}function r(e){return e[2]}function c(e){return e[3]}function x(e){return e[4]}function C(e){return function(t){var n=e(t);return n>=69?n+=1900:n+=2e3,n}}function g(e){return function(t){var n=e(t).toLowerCase();return a("ABBR_MONTHNAMES").indexOf(n)+1}}function s(e){return function(t){var n=e(t);return parseInt(n,10)}}function E(e){return function(t){var s=e(t);return n?s+2e3:s}}function S(e){return function(t){var n=e(t),s=i(a("DAYNAMES"),"map",[],"downcase".$to_proc()).indexOf(n.$downcase());return k-A+s}}function v(e){return function(t){var n=e(t);return i(a("MONTHNAMES").$compact(),"map",[],"downcase".$to_proc()).indexOf(n.$downcase())+1}}_=[{regexp:/^(\d{2})$/,year:h,month:O,day:s(o)},{regexp:/^(\d{3})$/,year:h,month:0,day:s(o)},{regexp:/^(\d{2})(\d{2})$/,year:h,month:s(o),day:s(r)},{regexp:/^(\d{2})(\d{3})$/,year:C(s(o)),month:0,day:s(r)},{regexp:/^(\d{2})(\d{2})(\d{2})$/,year:C(s(o)),month:s(r),day:s(c)},{regexp:/^(\d{4})(\d{3})$/,year:s(o),month:0,day:s(r)},{regexp:/^(\d{4})(\d{2})(\d{2})$/,year:s(o),month:s(r),day:s(c)},{regexp:/^([a-z]{3})[\s./-](\d{3,4})$/,year:s(r),month:g(o),day:1},{regexp:/^(\d{1,2})[\s./-]([a-z]{3})[\s./-](\d{3,4})$/i,year:s(c),month:g(r),day:s(o)},{regexp:/^([a-z]{3})[\s./-](\d{1,2})[\s./-](\d{3,4})$/i,year:s(c),month:g(o),day:s(r)},{regexp:/^(\d{3,4})[\s./-]([a-z]{3})[\s./-](\d{1,2})$/i,year:s(o),month:g(r),day:s(c)},{regexp:/^(-?\d{3,4})[\s./-](\d{1,2})[\s./-](\d{1,2})$/,year:s(o),month:s(r),day:s(c)},{regexp:/^(\d{2})[\s./-](\d{1,2})[\s./-](\d{1,2})$/,year:E(s(o)),month:s(r),day:s(c)},{regexp:/^(\d{1,2})[\s./-](\d{1,2})[\s./-](-?\d{3,4})$/,year:s(c),month:s(r),day:s(o)},{regexp:new RegExp("^("+a("DAYNAMES").$join("|")+")$","i"),year:h,month:O,day:S(o)},{regexp:new RegExp("^("+p+")[\\s\\.\\/\\-](\\d{1,2})(th|nd|rd)[\\s\\.\\/\\-](\\-?\\d{3,4})$","i"),year:s(x),month:v(o),day:s(r)},{regexp:new RegExp("^("+p+")[\\s\\.\\/\\-](\\d{1,2})(th|nd|rd)","i"),year:h,month:v(o),day:s(r)},{regexp:new RegExp("^(\\d{1,2})(th|nd|rd)[\\s\\.\\/\\-]("+p+")[\\s\\.\\/\\-](\\-?\\d{3,4})$","i"),year:s(x),month:v(c),day:s(o)},{regexp:new RegExp("^(\\-?\\d{3,4})[\\s\\.\\/\\-]("+p+")[\\s\\.\\/\\-](\\d{1,2})(th|nd|rd)$","i"),year:s(o),month:v(r),day:s(c)}];for(b=0;b<_.length;b++)if(f=_[b],m=f.regexp.exec(t),m)return l=f.year,typeof l=="function"&&(l=l(m)),u=f.month,typeof u=="function"&&(u=u(m)-1),d=f.day,typeof d=="function"&&(d=d(m)),y=new Date(l,u,d),l>=0&&l<=1970&&y.setFullYear(l),w.$wrap(y);return w.$raise(a("ArgumentError"),"invalid date")},-2),t(s,"$today",function(){var t=this;return t.$wrap(new Date)}),t(s,"$gregorian_leap?",function(t){return new Date(t,1,29).getMonth()-1===0}),r(s,"civil","new")}(e.get_singleton_class(j),y),t(j,"$initialize",function(t,n,s,o){var i=this;return t==null&&(t=-4712),n==null&&(n=1),s==null&&(s=1),o==null&&(o=_("ITALY")),t===1582&&n===10&&s>4&&s<15&&(s=4),i.date=new Date(t,n-1,s),i.start=o},-1),j.$attr_reader("start"),t(j,"$<=>",function(o){if(i=this,o.$$is_number)return i.$jd()["$<=>"](o);if(s("Date")["$==="](o)){var i,a=i.date,r=o.date;return e.is_a(i,s("DateTime"))||a.setHours(0,0,0,0),e.is_a(o,s("DateTime"))||r.setHours(0,0,0,0),a<r?-1:a>r?1:0}else return n}),t(j,"$>>",function(t){var n=this;return t.$$is_number||n.$raise(s("TypeError")),n["$<<"](t["$-@"]())}),t(j,"$<<",function(t){var n=this;return t.$$is_number||n.$raise(s("TypeError")),n.$prev_month(t)}),t(j,"$clone",function(){var s=this,t=n,t=_("Date").$wrap(s.date.$dup());return t.start=s.start,t}),j.$def_delegators("@date","sunday?","monday?","tuesday?","wednesday?","thursday?","friday?","saturday?","day","month","year","wday","yday"),r(j,"mday","day"),r(j,"mon","month"),t(j,"$jd",function(){var t,o,c,l,i=this,n=i.date.getMonth()+1,d=i.date.getDate(),s=i.date.getFullYear(),a=12,u=0,h=0,a=a+u/60+h/3600,r=1;return s<=1585&&(r=0),t=-1*Math.floor(7*(Math.floor((n+9)/12)+s)/4),c=1,n-9<0&&(c=-1),l=Math.abs(n-9),o=Math.floor(s+c*Math.floor(l/7)),o=-1*Math.floor((Math.floor(o/100)+1)*3/4),t=t+Math.floor(275*n/9)+d+r*o,t=t+1721027+2*r+367*s-.5,t=t+a/24,t}),t(j,"$julian?",function(){var t=this;return t.date<new Date(1582,10-1,15,12)}),t(j,"$new_start",function(t){var o=this,s=n,s=o.$clone();return s.start=t,s}),t(j,"$next",function(){var t=this;return c(t,1)}),t(j,"$-",function(t){var n=this;return t.date?Math.round((n.date-t.date)/(1e3*60*60*24)):n.$prev_day(t)}),t(j,"$+",function(t){var n=this;return n.$next_day(t)}),t(j,"$prev_day",function(t){var o,n=this;if(t==null&&(t=1),t.$$is_number)return o=n.$clone(),o.date.setDate(n.date.getDate()-t),o;n.$raise(s("TypeError"))},-1),t(j,"$next_day",function(t){var n=this;return t==null&&(t=1),t.$$is_number||n.$raise(s("TypeError")),n.$prev_day(t["$-@"]())},-1),t(j,"$prev_month",function(t){o=this,t==null&&(t=1),t.$$is_number||o.$raise(s("TypeError"));var o,i=o.$clone(),n=i.date,a=n.getDate();return n.setDate(1),n.setMonth(n.getMonth()-t),n.setDate(Math.min(a,_("Date").$_days_in_month(n.getFullYear(),n.getMonth()))),i},-1),t(j,"$next_month",function(t){var n=this;return t==null&&(t=1),t.$$is_number||n.$raise(s("TypeError")),n.$prev_month(t["$-@"]())},-1),t(j,"$prev_year",function(t){var n=this;return t==null&&(t=1),t.$$is_number||n.$raise(s("TypeError")),n.$class().$new(l(n.$year(),t),n.$month(),n.$day())},-1),t(j,"$next_year",function(t){var n=this;return t==null&&(t=1),t.$$is_number||n.$raise(s("TypeError")),n.$prev_year(t["$-@"]())},-1),t(j,"$strftime",function(t){var n=this;return t==null&&(t=""),t==""?n.$to_s():n.date.$strftime(t)},-1),t(j,"$to_s",function(){var o=this,s=o.date,i=s.getFullYear(),t=s.getMonth()+1,n=s.getDate();return t<10&&(t="0"+t),n<10&&(n="0"+n),i+"-"+t+"-"+n}),t(j,"$to_time",function(){var t=this;return _("Time").$new(t.$year(),t.$month(),t.$day())}),t(j,"$to_date",v),t(j,"$to_datetime",function(){var t=this;return _("DateTime").$new(t.$year(),t.$month(),t.$day())}),t(j,"$to_n",m("date")),t(j,"$step",function t(s,o){var m=t.$$p||n,r=this,a=n,f=n,h=n;return t.$$p=null,o==null&&(o=1),a=l(s,r).$to_i(),f=d(u(p(a,o),0))?[]:d(u(a,0))?i(e.Range.$new(0,a["$-@"](),!1).$step(o.$abs()),"map",[],"-@".$to_proc()).$reverse():e.Range.$new(0,a,!1).$step(o.$abs()),h=i(f,"map",[],function e(t){var s=e.$$s==null?this:e.$$s;return t==null&&(t=n),c(s,t)},{$$s:r}),m!==n?(i(h,"each",[],function(s){return s==null&&(s=n),e.yield1(m,s)}),r):h},-2),t(j,"$upto",function e(t){var s=e.$$p||n,o=this;return e.$$p=null,i(o,"step",[t,1],s.$to_proc())}),t(j,"$downto",function e(t){var s=e.$$p||n,o=this;return e.$$p=null,i(o,"step",[t,-1],s.$to_proc())}),t(j,"$cwday",function(){var t=this;return t.date.getDay()||7}),t(j,"$cweek",function(){var n=this,t=new Date(n.date);return t.setHours(0,0,0),t.setDate(t.getDate()+4-(t.getDay()||7)),Math.ceil(((t-new Date(t.getFullYear(),0,1))/864e5+1)/7)}),f(j,"$_days_in_month",function(t,n){var s=t%4===0&&t%100!==0||t%400===0;return[31,s?29:28,31,30,31,30,31,31,30,31,30,31][n]}),r(j,"eql?","=="),r(j,"succ","next")}(h[0],null,h),a.$require("date/date_time"),a.$require("date/formatters")},Opal.modules.ruby2_keywords=function(e){var a=e.klass,n=e.truthy,r=e.slice,s=e.def,l=e.defs,d=e.return_self,u=e.return_val,o=[],c=e.$r(o),t=e.nil,i=t;return e.add_stubs("private_method_defined?,private,eval,respond_to?,method_defined?,dup"),function(e,o){var i=a(e,o,"Module");return n(i["$private_method_defined?"]("ruby2_keywords"))?t:(i.$private(),s(i,"$ruby2_keywords",function(){var o=r(arguments,1),i=o;return t},-2))}(o[0],null),i=c("TOPLEVEL_BINDING").$eval("self"),n(i["$respond_to?"]("ruby2_keywords",!0))||l(i,"$ruby2_keywords",function(){var o=r(arguments,1),i=o;return t},-2),function(e,o){var i=a(e,o,"Proc");return n(i["$method_defined?"]("ruby2_keywords"))?t:s(i,"$ruby2_keywords",d)}(o[0],null),function(e){return n(e["$method_defined?"]("ruby2_keywords_hash?"))||s(e,"$ruby2_keywords_hash?",u(!1)),n(e["$method_defined?"]("ruby2_keywords_hash"))?t:s(e,"$ruby2_keywords_hash",function(t){return t.$dup()})}(e.get_singleton_class(c("Hash")),o)},Opal.modules.delegate=function(e){var k=e.freeze,S=e.freeze_props,v=e.klass,g=e.const_set,c=e.Kernel,s=e.send,o=e.truthy,A=e.Object,m=e.defs,n=e.def,p=e.slice,l=e.to_a,a=e.send2,u=e.find_super,j=e.not,E=e.eqeqeq,C=e.to_ary,x=e.eqeq,O=e.ensure_kwargs,y=e.hash_get,_=e.return_ivar,w=e.lambda,f=e.rb_minus,d=e.find_block_super,b=e.top,h=[],i=e.$r(h),t=e.nil,r=e.$$$;return e.add_stubs("require,dup,class_eval,alias_method,each,undef_method,private_instance_methods,=~,include,const_get,__setobj__,ruby2_keywords,__getobj__,target_respond_to?,__send__,to_proc,private_method_defined?,method_defined?,bind_call,instance_method,!,warn,private_constant,private,===,respond_to?,|,methods,public_methods,protected_methods,equal?,==,!=,eql?,__raise__,reject,instance_variables,map,instance_variable_get,each_with_index,instance_variable_set,[],clone,freeze,public_instance_methods,new,public_api,protected_instance_methods,-,module_eval,define_method,delegating_block,protected,define_singleton_method,instance_methods,include?,raise,public_instance_method"),b.$require("ruby2_keywords"),function(i,d,h){var f=v(i,d,"Delegator"),b=[f].concat(h),w=e.$r(b),M=t;return g(b[0],"VERSION","0.2.0"),M=c.$dup(),s(M,"class_eval",[],function e(){var n=e.$$s==null?this:e.$$s;return n.$alias_method("__raise__","raise"),s(["to_s","inspect","!~","===","<=>","hash"],"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s.$undef_method(n)},{$$s:n}),s(n.$private_instance_methods(),"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),o(/^block_given\?$|^iterator\?$|^__.*__$/["$=~"](n))?t:s.$undef_method(n)},{$$s:n})},{$$s:f}),f.$include(M),m(f,"$const_missing",function(t){return A.$const_get(t)}),n(f,"$initialize",function(t){var n=this;return n.$__setobj__(t)}),f.$ruby2_keywords(n(f,"$method_missing",function e(n){var d,g,h=e.$$p||t,r=this,m=t,f=t;return e.$$p=null,g=p(arguments,1),d=g,m=!0,f=s(r,"__getobj__",[],function(){return m=!1}),o(m)&&o(r["$target_respond_to?"](f,n,!1))?s(f,"__send__",[n].concat(l(d)),h.$to_proc()):o(c["$method_defined?"](n))||o(c["$private_method_defined?"](n))?s(c.$instance_method(n),"bind_call",[r].concat(l(d)),h.$to_proc()):a(r,u(r,"method_missing",e,!1,!0),"method_missing",[n].concat(l(d)),h.$to_proc())},-2)),n(f,"$respond_to_missing?",function(n,i){var r=this,a=t,c=t,l=t,a=!0,c=s(r,"__getobj__",[],function(){return a=!1}),a=o(l=a)?r["$target_respond_to?"](c,n,i):l;return o(a)&&o(i)&&j(r["$target_respond_to?"](c,n,!1))?(r.$warn("delegator does not forward private method #"+n,new Map([["uplevel",3]])),!1):a}),g(b[0],"KERNEL_RESPOND_TO",c.$instance_method("respond_to?")),f.$private_constant("KERNEL_RESPOND_TO"),f.$private(n(f,"$target_respond_to?",function(n,s,i){var a=t;return E(w("Object"),a=n)?n["$respond_to?"](s,i):o(w("KERNEL_RESPOND_TO").$bind_call(n,"respond_to?"))?n["$respond_to?"](s,i):w("KERNEL_RESPOND_TO").$bind_call(n,s,i)})),n(f,"$methods",function e(n){var o=e.$$p||t,s=this;return e.$$p=null,n==null&&(n=!0),s.$__getobj__().$methods(n)["$|"](a(s,u(s,"methods",e,!1,!0),"methods",[n],o))},-1),n(f,"$public_methods",function e(n){var o=e.$$p||t,s=this;return e.$$p=null,n==null&&(n=!0),s.$__getobj__().$public_methods(n)["$|"](a(s,u(s,"public_methods",e,!1,!0),"public_methods",[n],o))},-1),n(f,"$protected_methods",function e(n){var o=e.$$p||t,s=this;return e.$$p=null,n==null&&(n=!0),s.$__getobj__().$protected_methods(n)["$|"](a(s,u(s,"protected_methods",e,!1,!0),"protected_methods",[n],o))},-1),n(f,"$==",function(t){var n=this;return!!o(t["$equal?"](n))||n.$__getobj__()["$=="](t)}),n(f,"$!=",function(t){var n=this;return!o(t["$equal?"](n))&&n.$__getobj__()["$!="](t)}),n(f,"$eql?",function(t){var n=this;return!!o(t["$equal?"](n))||t["$eql?"](n.$__getobj__())}),n(f,"$!",function(){var t=this;return t.$__getobj__()["$!"]()}),n(f,"$__getobj__",function(){var t=this;return t.$__raise__(r("NotImplementedError"),"need to define `__getobj__'")}),n(f,"$__setobj__",function(){var n=this;return n.$__raise__(r("NotImplementedError"),"need to define `__setobj__'")}),n(f,"$marshal_dump",function(){var n=this,o=t,o=s(n.$instance_variables(),"reject",[],function(n){return n==null&&(n=t),/^@delegate_/["$=~"](n)});return["__v2__",o,s(o,"map",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s.$instance_variable_get(n)},{$$s:n}),n.$__getobj__()]}),n(f,"$marshal_load",function(n){var i=this,r=t,c=t,l=t,d=t,a=n,o=C(a);return r=o[0]==null?t:o[0],c=o[1]==null?t:o[1],l=o[2]==null?t:o[2],d=o[3]==null?t:o[3],a,x(r,"__v2__")?(s(c,"each_with_index",[],function e(n,s){var o=e.$$s==null?this:e.$$s;return n==null&&(n=t),s==null&&(s=t),o.$instance_variable_set(n,l["$[]"](s))},{$$s:i}),i.$__setobj__(d)):i.$__setobj__(n)}),n(f,"$initialize_clone",function(n,s){var o,i=this;return s=O(s),o=y(s,"freeze"),o==null&&(o=t),i.$__setobj__(n.$__getobj__().$clone(new Map([["freeze",o]])))},-2),n(f,"$initialize_dup",function(t){var n=this;return n.$__setobj__(t.$__getobj__().$dup())}),f.$private("initialize_clone","initialize_dup"),n(f,"$freeze",function(){var t=this;return t.$__getobj__().$freeze(),S(t),k(t)}),n(f,"$frozen?",function(){var t=this;return t.$$frozen||!1}),f.delegator_api=f.$public_instance_methods(),m(f,"$public_api",_("delegator_api"))}(h[0],i("BasicObject"),h),function(s,i){var a=v(s,i,"SimpleDelegator"),c=a.$$prototype;return c.delegate_sd_obj=t,n(a,"$__getobj__",function n(){var s,a=n.$$p||t,i=this;if(n.$$p=null,!o((s=i.delegate_sd_obj,s!=null&&s!==t?"instance-variable":t))){if(a!==t)return e.yieldX(a,[]);i.$__raise__(r("ArgumentError"),"not delegated")}return i.delegate_sd_obj}),n(a,"$__setobj__",function(t){var n=this;return o(n["$equal?"](t))&&n.$__raise__(r("ArgumentError"),"cannot delegate to self"),n.delegate_sd_obj=t})}(h[0],i("Delegator")),m(i("Delegator"),"$delegating_block",function e(n){var i=e.$$p||t,o=this;return e.$$p=null,w(function e(){var i,a,c=e.$$p||t,d=e.$$s==null?this:e.$$s,r=t;return e.$$p=null,i=p(arguments),a=i,r=d.$__getobj__(),s(r,"__send__",[n].concat(l(a)),c.$to_proc())},{$$arity:-1,$$s:o}).$ruby2_keywords()}),n(b,"$DelegateClass",function c(u){var b=c.$$p||t,m=this,h=t,v=t,p=t,g=t;return c.$$p=null,h=i("Class").$new(i("Delegator")),v=[].concat(l(r("Delegator").$public_api())).concat(["to_s","inspect","=~","!~","==="]),p=u.$protected_instance_methods(),p=f(p,v),g=u.$public_instance_methods(),g=f(g,v),s(h,"module_eval",[],function a(){var c=a.$$s==null?this:a.$$s;return n(c,"$__getobj__",function n(){var i,a=n.$$p||t,s=this;if(s.delegate_dc_obj==null&&(s.delegate_dc_obj=t),n.$$p=null,!o((i=s.delegate_dc_obj,i!=null&&i!==t?"instance-variable":t))){if(a!==t)return e.yieldX(a,[]);s.$__raise__(r("ArgumentError"),"not delegated")}return s.delegate_dc_obj}),n(c,"$__setobj__",function(t){var n=this;return o(n["$equal?"](t))&&n.$__raise__(r("ArgumentError"),"cannot delegate to self"),n.delegate_dc_obj=t}),s(p,"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s.$define_method(n,i("Delegator").$delegating_block(n)),s.$protected(n)},{$$s:c}),s(g,"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s.$define_method(n,i("Delegator").$delegating_block(n))},{$$s:c})},{$$s:m}),s(h,"define_singleton_method",["public_instance_methods"],function e(t){var n=e.$$s==null?this:e.$$s;return t==null&&(t=!0),a(n,d(n,"DelegateClass",e.$$def||c,!1,!1),"DelegateClass",[t],null)["$|"](u.$public_instance_methods())},{$$arity:-1,$$s:m}),s(h,"define_singleton_method",["protected_instance_methods"],function e(t){var n=e.$$s==null?this:e.$$s;return t==null&&(t=!0),a(n,d(n,"DelegateClass",e.$$def||c,!1,!1),"DelegateClass",[t],null)["$|"](u.$protected_instance_methods())},{$$arity:-1,$$s:m}),s(h,"define_singleton_method",["instance_methods"],function e(t){var n=e.$$s==null?this:e.$$s;return t==null&&(t=!0),a(n,d(n,"DelegateClass",e.$$def||c,!1,!1),"DelegateClass",[t],null)["$|"](u.$instance_methods())},{$$arity:-1,$$s:m}),s(h,"define_singleton_method",["public_instance_method"],function n(s){var r=n.$$s==null?this:n.$$s;s==null&&(s=t);try{return a(r,d(r,"DelegateClass",n.$$def||c,!1,!1),"DelegateClass",[s],null)}catch(t){if(e.rescue(t,[i("NameError")]))try{return o(r.$public_instance_methods()["$include?"](s))||r.$raise(),u.$public_instance_method(s)}finally{e.pop_exception(t)}else throw t}},{$$s:m}),s(h,"define_singleton_method",["instance_method"],function n(s){var r=n.$$s==null?this:n.$$s;s==null&&(s=t);try{return a(r,d(r,"DelegateClass",n.$$def||c,!1,!1),"DelegateClass",[s],null)}catch(t){if(e.rescue(t,[i("NameError")]))try{return o(r.$instance_methods()["$include?"](s))||r.$raise(),u.$instance_method(s)}finally{e.pop_exception(t)}else throw t}},{$$s:m}),o(b)&&s(h,"module_eval",[],b.$to_proc()),h})},Opal.modules.enumerator=Opal.return_val(Opal.nil),Opal.modules.iconv=Opal.return_val(Opal.nil),Opal.modules.json=function(e){var r=e.module,n=e.klass,c=e.send,l=e.Object,d=e.eqeqeq,o=e.defs,a=e.truthy,s=e.def,u=e.return_val,t=[],i=e.nil,h=e.$$$;return e.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(t,s){var f,v,u=r(t,"JSON"),p=[u].concat(s),m=e.$r(p);n(p[0],m("StandardError"),"JSONError"),n(p[0],m("JSONError"),"ParserError"),v=e.hasOwnProperty;function b(e){try{return JSON.parse(e)}catch(e){u.$raise(h(m("JSON"),"ParserError"),e.message)}}function g(t,n){var s,o,a,r,d,u;switch(typeof t){case"string":return t;case"number":return t;case"boolean":return!!t;case"undefined":return i;case"object":if(!t)return i;if(t.$$is_array){r=e.hash_get(n,"array_class").$new();for(o=0,u=t.length;o<u;o++)r.$push(g(t[o],n));return r}s=e.hash_get(n,"object_class").$new();for(a in t)v.call(t,a)&&(f=[a,g(t[a],n)],c(s,"[]=",f),f[f.length-1]);return!e.hash_get(n,"parse")&&(d=s["$[]"](m("JSON").$create_id()))!=i?l.$const_get(d).$json_create(s):s}}return function(e){return e.$attr_accessor("create_id")}(e.get_singleton_class(u),p),u["$create_id="]("json_class"),o(u,"$[]",function(t,n){var s=this;return n==null&&(n=new Map),d(m("String"),t)?s.$parse(t,n):s.$generate(t,n)},-2),o(u,"$parse",function(t,n){var s=this;return n==null&&(n=new Map),s.$from_object(b(t),n.$merge(new Map([["parse",!0]])))},-2),o(u,"$parse!",function(t,n){var s=this;return n==null&&(n=new Map),s.$parse(t,n)},-2),o(u,"$load",function(t,n){var s=this;return n==null&&(n=new Map),s.$from_object(b(t),n)},-2),o(u,"$from_object",function(t,n){var s=i;return n==null&&(n=new Map),a(s=n["$[]"]("object_class"))?s:n["$[]="]("object_class",m("Hash")),a(s=n["$[]"]("array_class"))?s:n["$[]="]("array_class",m("Array")),g(t,n)},-2),o(u,"$generate",function(t,n){return n==null&&(n=new Map),t.$to_json(n)},-2),o(u,"$dump",function(t,n,s){var r=this,o=i;return n==null&&(n=i),s==null&&(s=i),o=r.$generate(t),a(n)?(a(n["$responds_to?"]("to_io"))&&(n=n.$to_io()),n.$write(o),n):o},-2)}(t[0],t),function(e,t){var o=n(e,t,"Object");return s(o,"$to_json",function(){var t=this;return t.$to_s().$to_json()})}(t[0],null),function(e){var t=r(e,"Enumerable");return s(t,"$to_json",function(){var t=this;return t.$to_a().$to_json()})}(t[0]),function(e,t){var o=n(e,t,"Array");return s(o,"$to_json",function(){for(var n=this,s=[],t=0,o=n.length;t<o;t++)s.push(n[t].$to_json());return"["+s.join(",")+"]"})}(t[0],null),function(e,t){var o=n(e,t,"Boolean");return s(o,"$to_json",function(){var t=this;return t==!0?"true":"false"})}(t[0],null),function(t,o){var i=n(t,o,"Hash");return s(i,"$to_json",function(){var s=this,n=[];return e.hash_each(s,!1,function(e,t){return n.push(e.$to_s().$to_json()+":"+t.$to_json()),[!1,!1]}),"{"+n.join(",")+"}"})}(t[0],null),function(e,t){var o=n(e,t,"NilClass");return s(o,"$to_json",u("null"))}(t[0],null),function(e,t){var o=n(e,t,"Numeric");return s(o,"$to_json",function(){var t=this;return t.toString()})}(t[0],null),function(e,t){var o=n(e,t,"String");return s(o,"$to_json",function(){var t=this;return JSON.stringify(t)})}(t[0],null),function(e,t){var o=n(e,t,"Time");return s(o,"$to_json",function(){var t=this;return t.$strftime("%FT%T%z").$to_json()})}(t[0],null),function(e,t){var o=n(e,t,"Date");return s(o,"$to_json",function(){var t=this;return t.$to_s().$to_json()}),s(o,"$as_json",function(){var t=this;return t.$to_s()})}(t[0],null)},Opal.modules.observer=function(e){var a=e.module,n=e.truthy,o=e.send,s=e.def,r=e.slice,c=e.to_a,i=[],t=e.nil;return e.add_stubs("respond_to?,raise,new,to_s,[]=,delete,clear,size,each,send"),function(i,l){var d=a(i,"Observable"),u=[d].concat(l),h=e.$r(u);return s(d,"$add_observer",function(s,i){var r,c,a=this;return a.observer_peers==null&&(a.observer_peers=t),i==null&&(i="update"),n((c=a.observer_peers,c!=null&&c!==t?"instance-variable":t))||(a.observer_peers=new Map),n(s["$respond_to?"](i))||a.$raise(h("NoMethodError").$new("observer does not respond to `"+i.$to_s()+"'",i.$to_s())),(r=[s,i],o(a.observer_peers,"[]=",r),r[r.length-1])},-2),s(d,"$delete_observer",function(s){var i,o=this;return o.observer_peers==null&&(o.observer_peers=t),n((i=o.observer_peers,i!=null&&i!==t?"instance-variable":t))?o.observer_peers.$delete(s):t}),s(d,"$delete_observers",function(){var o,s=this;return s.observer_peers==null&&(s.observer_peers=t),n((o=s.observer_peers,o!=null&&o!==t?"instance-variable":t))?s.observer_peers.$clear():t}),s(d,"$count_observers",function(){var o,s=this;return s.observer_peers==null&&(s.observer_peers=t),n((o=s.observer_peers,o!=null&&o!==t?"instance-variable":t))?s.observer_peers.$size():0}),s(d,"$changed",function(t){var n=this;return t==null&&(t=!0),n.observer_state=t},-1),s(d,"$changed?",function(){var o,s=this;return s.observer_state==null&&(s.observer_state=t),!!(n((o=s.observer_state,o!=null&&o!==t?"instance-variable":t))&&n(s.observer_state))}),s(d,"$notify_observers",function(){var a,l,d,u,i=this;return i.observer_state==null&&(i.observer_state=t),i.observer_peers==null&&(i.observer_peers=t),d=r(arguments),u=d,n((a=i.observer_state,a!=null&&a!==t?"instance-variable":t))&&n(i.observer_state)?(n((l=i.observer_peers,l!=null&&l!==t?"instance-variable":t))&&o(i.observer_peers,"each",[],function(n,s){return n==null&&(n=t),s==null&&(s=t),o(n,"send",[s].concat(c(u)))}),i.observer_state=!1):t},-1)}(i[0],i)},Opal.modules["corelib/pack_unpack/format_string_parser"]=function(e){var s=e.module,t=e.Kernel,o=e.nil,n=e.$$$;return e.add_stubs("raise"),function(e){var o=s(e,"PackUnpack"),i=["C","S","L","Q","J","c","s","l","q","j","n","N","v","V","U","w","D","d","F","f","E","e","G","g","A","a","Z","B","b","H","h","u","M","m","P","p","@","X","x"],a=["!","_",">","<"];o.eachDirectiveAndCount=function(e,s){function u(){o=null,l=0,c=[],d=!1}u();function h(){if(o==null){u();return}var e=/[sSiIlLqQjJ]/.test(o);!e&&c.length>0&&t.$raise(n("ArgumentError"),"'"+c[0]+"' allowed only after types sSiIlLqQjJ"),c.indexOf("<")!==-1&&c.indexOf(">")!==-1&&t.$raise(n("RangeError"),"Can't use both '<' and '>'"),d||(l=1),c.indexOf(">")!==-1&&(o=o+">"),s(o,l),u()}for(var o,r,c,l,d,m=0;m<e.length;m++)r=e[m],i.indexOf(r)!==-1?(h(),o=r):o&&(/\d/.test(r)?(l=l*10+parseInt(r,10),d=!0):r==="*"&&d===!1?(l=1/0,d=!0):a.indexOf(r)!==-1&&d===!1?c.push(r):h());h()}}("::")},Opal.modules["corelib/string/unpack"]=function(e){var u=e.klass,t=e.Kernel,l=e.ensure_kwargs,c=e.hash_get,i=e.truthy,d=e.rb_lt,o=e.Opal,h=e.rb_gt,a=e.def,r=e.top,m=[],s=e.nil,n=e.$$$;return e.add_stubs("require,flatten,decode64,raise,<,delete,gsub,coerce_to!,>,length,inspect,[],unpack"),r.$require("base64"),r.$require("corelib/pack_unpack/format_string_parser"),function(r,m,f){var g,C,E,F,D,S=u(r,m,"String"),P=[S].concat(f),G=e.$r(P),z=s,T=s,X=e.PackUnpack.eachDirectiveAndCount;function Q(e){return function(t){var n=e(t);return n.$flatten()}}function y(e){return function(t){var n=e(t);return n.map(function(e){return e.reverse().reduce(function(e,t){return e*256+t},0)})}}function j(e,t){return function(n){for(var s,o=t(n),i=[],r=o.length/e,a=0;a<r;a++)s=o.splice(0,e),s.length===e&&i.push(s);return i}}function w(e,t){return function(n){var o=t(n),i=e*8,s=Math.pow(2,i);return o.map(function(e){return e>=s/2&&(e-=s),e})}}function x(e){return function(t){var n=e(t);return n.map(function(e){return String.fromCharCode(e)})}}function _(e){return function(t){var n=e(t);return n.join("")}}function k(e){return function(t){var n=e(t);return[n]}}function Y(e){var t=e.map(function(e){return e.charCodeAt(0)});return function(e){return function(n){for(var s=e(n);t.indexOf(s[s.length-1])!==-1;)s=s.slice(0,s.length-1);return s}}}F=Y(["\x00"," "]);function O(e){return function(t){var n=e(t);return n.map(function(e){return e.reverse()})}}function q(e){return function(t){var o,a,r,c,d,u,h,m,s=e(t),f=!1,n=0,l=0,i=[];do if(n<s.length){if(o=s[n]-32&63,++n,s[n]===10)continue;if(o>45)return"";for(l+=o;o>0;)c=s[n],r=s[n+1],a=s[n+2],d=s[n+3],u=(c-32&63)<<2|(r-32&63)>>4,h=(r-32&63)<<4|(a-32&63)>>2,m=(a-32&63)<<6|d-32&63,i.push(u&255),i.push(h&255),i.push(m&255),n+=4,o-=3;++n}else break;while(!0)return i.slice(0,l)}}function Z(e){return function(t){var n=e(t),s=n.map(function(e){return e.toString(2)});return s}}function N(e){return function(t){for(var n,r,c,l,i=e(t),a=[],s="",o=0;o<i.length;o++)r=i[o],n=r.toString(2),n=Array(8-n.length+1).join("0").concat(n),c=n[0],n=n.slice(1,n.length),s=s.concat(n),c==="0"&&(l=parseInt(s,2),a.push(l),s="");return a}}function R(e){return function(t){return G("Base64").$decode64(e(t))}}function W(e){return function(t){var n=e(t);return n.replace(/[\t\x20]$/gm,"").replace(/=(?:\r\n?|\n|$)/g,"").replace(/=([a-fA-F0-9]{2})/g,function(e,t){var n=parseInt(t,16);return String.fromCharCode(n)})}}function p(e){return e}g={C:p,S:y(j(2,p)),L:y(j(4,p)),Q:y(j(8,p)),J:null,"S>":y(O(j(2,p))),"L>":y(O(j(4,p))),"Q>":y(O(j(8,p))),c:w(1,p),s:w(2,y(j(2,p))),l:w(4,y(j(4,p))),q:w(8,y(j(8,p))),j:null,"s>":w(2,y(O(j(2,p)))),"l>":w(4,y(O(j(4,p)))),"q>":w(8,y(O(j(8,p)))),n:null,N:null,v:null,V:null,U:p,w:N(p),D:null,d:null,F:null,f:null,E:null,e:null,G:null,g:null,A:k(_(x(F(p)))),a:k(_(x(p))),Z:_(x(p)),B:_(p),b:_(p),H:_(p),h:_(p),u:_(x(q(p))),M:W(_(x(p))),m:R(_(x(p))),P:null,p:null};function b(e){return function(t){var n=t.slice(0,e);return t=t.slice(e,t.length),{chunk:n,rest:t}}}function H(e){a=0,r=e.length;function c(){var t=e[a++];return r=e.length-a,t}if(s=c(),s>>7==0)return{chunk:[s],rest:e.slice(a)};s>>6==2&&t.$raise(n("ArgumentError"),"malformed UTF-8 character"),s>>5==6?o=1:s>>4==14?o=2:s>>3==30?o=3:s>>2==62?o=4:s>>1==126?o=5:t.$raise("malformed UTF-8 character"),o>r&&(z=o+1,T=r+1,t.$raise(n("ArgumentError"),"malformed UTF-8 character (expected "+z+" bytes, given "+T+" bytes)"));for(var s,o,a,r,d,u,h=(1<<8-o-1)-1,i=s&h,l=0;l<o;l++)s=c(),s>>6!=2&&t.$raise("Invalid multibyte sequence"),i=i<<6|s&63;return i<=65535?{chunk:[i],rest:e.slice(a)}:(i-=65536,d=(i>>10&1023)+55296,u=(i&1023)+56320,{chunk:[d,u],rest:e.slice(a)})}function I(e){var t=e.indexOf(32);return t===-1?{chunk:e,rest:[]}:{chunk:e.slice(0,t),rest:e.slice(t,e.length)}}function B(e,t){for(o="";t>0&&e.length>0;){var n,s,o,i=e[0],a=Math.min(t,8),r=Math.ceil(a/8);if(e=e.slice(1,e.length),i!=null)for(n=i.toString(2),n=Array(8-n.length+1).join("0").concat(n).split("").reverse().join(""),s=0;s<a;s++)o+=n[s]||"0",t--}return{chunk:[o],rest:e}}function V(e,t){for(o="";t>0&&e.length>0;){var n,s,o,i=e[0],a=Math.min(t,8),r=Math.ceil(a/8);if(e=e.slice(1,e.length),i!=null)for(n=i.toString(2),n=Array(8-n.length+1).join("0").concat(n),s=0;s<a;s++)o+=n[s]||"0",t--}return{chunk:[o],rest:e}}function $(e){for(var s,t=[],n=0;n<e.length;n++)if(s=e[n],t.push(s),(s&128)===0)break;return{chunk:t,rest:e.slice(t.length,e.length)}}function L(e,t){for(var o,s=[],n=0;n<t&&n<e.length;n++){if(o=e[n],o===0)break;s.push(o)}return t===1/0&&(t=s.length),e[t]===0&&t++,e=e.slice(t,e.length),{chunk:s,rest:e}}function U(e,t){for(s=[];t>0&&e.length>0;){var s,o=e[0],n=o.toString(16);e=e.slice(1,e.length),n=Array(2-n.length+1).join("0").concat(n),t===1?(s.push(n[0]),t--):(s.push(n[0],n[1]),t-=2)}return{chunk:s,rest:e}}function K(e,t){for(s=[];t>0&&e.length>0;){var s,o=e[0],n=o.toString(16);e=e.slice(1,e.length),n=Array(2-n.length+1).join("0").concat(n),t===1?(s.push(n[1]),t--):(s.push(n[1],n[0]),t-=2)}return{chunk:s,rest:e}}function v(e){return function(t,n){var s,i,o=[];if(n===1/0)for(;t.length>0;)s=e(t),t=s.rest,o=o.concat(s.chunk);else for(i=0;i<n;i++)s=e(t),t=s.rest,o=o.concat(s.chunk);return{chunk:o,rest:t}}}function M(e){return{chunk:e,rest:[]}}C={C:v(b(1)),S:v(b(2)),L:v(b(4)),Q:v(b(8)),J:null,"S>":v(b(2)),"L>":v(b(4)),"Q>":v(b(8)),c:v(b(1)),s:v(b(2)),l:v(b(4)),q:v(b(8)),j:null,"s>":v(b(2)),"l>":v(b(4)),"q>":v(b(8)),n:null,N:null,v:null,V:null,U:v(H),w:v($),D:null,d:null,F:null,f:null,E:null,e:null,G:null,g:null,A:v(b(1)),a:v(b(1)),Z:L,B:V,b:B,H:U,h:K,u:v(I),M,m:M,P:null,p:null},E={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},D={"C*":g.C,"c*":g.c,"A*":g.A,"a*":g.a,"M*":k(g.M),"m*":k(g.m),"S*":g.S,"s*":g.s,"L*":g.L,"l*":g.l,"Q*":g.Q,"q*":g.q,"S>*":g["S>"],"s>*":g["s>"],"L>*":g["L>"],"l>*":g["l>"],"Q>*":g["Q>"],"q>*":g["q>"]};function A(e,t){C[t]=C[e],g[t]=g[e],E[t]=E[e]}return A("S>","n"),A("L>","N"),A("S","v"),A("L","V"),a(S,"$unpack",function(a,r){var u,m,f,v,b,j,y,p=this;if(r=l(r),u=c(r,"offset"),u==null&&(u=0),i(d(u,0))&&t.$raise(n("ArgumentError"),"offset can't be negative"),a=o["$coerce_to!"](a,n("String"),"to_str").$gsub(/\s/,"").$delete("\x00"),m=[],a=="U*"&&p.internal_encoding.name==="UTF-8"&&typeof p.codePointAt=="function"){b=0,m=new Array(p.length);for(v=u;v<p.length;v++)y=m[b++]=p.codePointAt(v),y>65535&&v++;return m.slice(0,b)}if(f=p.$bytes(),i(h(u,f.$length()))?t.$raise(n("ArgumentError"),"offset outside of string"):s,f=f.slice(u),j=D[a],j)return j(f);function _(e,t){for(;e.length<t;)e.push(s);return e}function w(e,n){var s,o,i,a=C[e];return a==null&&t.$raise("Unsupported unpack directive "+e.$inspect()+" (no chunk reader defined)"),s=a(f,n),i=s.chunk,f=s.rest,o=g[e],o==null&&t.$raise("Unsupported unpack directive "+e.$inspect()+" (no handler defined)"),o(i)}return X(a,function(e,n){var s,o=w(e,n);n!==1/0&&(s=E[e],s==null&&t.$raise("Unsupported unpack directive "+e.$inspect()+" (no autocompletion rule defined)"),s&&_(o,n)),m=m.concat(o)}),m},-2),a(S,"$unpack1",function(t,s){var i,a=this;return s=l(s),i=c(s,"offset"),i==null&&(i=0),t=o["$coerce_to!"](t,n("String"),"to_str").$gsub(/\s/,"").$delete("\x00"),a.$unpack(t["$[]"](0),new Map([["offset",i]]))["$[]"](0)},-2)}("::",null,m)},Opal.modules.set=Opal.return_val(Opal.nil),Opal.modules["ast/node"]=function(e){var h=e.module,m=e.klass,i=e.alias,n=e.def,s=e.truthy,a=e.send,r=e.return_self,c=e.eqeq,o=e.rb_plus,l=e.rb_times,d=e.to_a,u=[],t=e.nil;return e.add_stubs("attr_reader,children,to_sym,freeze,to_a,assign_properties,hash,class,eql?,type,each,instance_variable_set,protected,dup,private,nil?,==,original_dup,send,equal?,respond_to?,to_ast,updated,+,concat,append,*,fancy_type,is_a?,to_sexp,inspect,map,to_sexp_array,gsub,to_s"),function(u,f){var g=h(u,"AST"),p=[g].concat(f);return function(u,h,f){var p=m(u,h,"Node"),b=[p].concat(f),g=e.$r(b),v=p.$$prototype;return v.type=v.children=t,p.$attr_reader("type"),p.$attr_reader("children"),i(p,"to_a","children"),p.$attr_reader("hash"),n(p,"$initialize",function(t,n,s){var i,o=this;return n==null&&(n=[]),s==null&&(s=new Map),i=[t.$to_sym(),n.$to_a().$freeze()],o.type=i[0],o.children=i[1],i,o.$assign_properties(s),o.hash=[o.type,o.children,o.$class()].$hash(),o.$freeze()},-2),n(p,"$eql?",function(n){var o=this,i=t,a=t;return s(i=s(a=o.$class()["$eql?"](n.$class()))?o.type["$eql?"](n.$type()):a)?o.children["$eql?"](n.$children()):i}),n(p,"$assign_properties",function(n){var s=this;return a(n,"each",[],function e(n,s){var o=e.$$s==null?this:e.$$s;return n==null&&(n=t),s==null&&(s=t),o.$instance_variable_set("@"+n,s)},{$$s:s}),t}),p.$protected("assign_properties"),i(p,"original_dup","dup"),p.$private("original_dup"),n(p,"$dup",r),i(p,"clone","dup"),n(p,"$updated",function(n,o,i){var a=this,l=t,r=t,d=t,h=t,u=t;return n==null&&(n=t),o==null&&(o=t),i==null&&(i=t),l=s(r=n)?r:a.type,d=s(r=o)?r:a.children,h=s(r=i)?r:new Map,c(a.type,l)&&c(a.children,d)&&s(i["$nil?"]())?a:(u=a.$original_dup(),u.$send("initialize",l,d,h),u)},-1),n(p,"$==",function(n){var o=this,i=t;return!!s(o["$equal?"](n))||!!s(n["$respond_to?"]("to_ast"))&&(n=n.$to_ast(),s(i=n.$type()["$=="](o.$type()))?n.$children()["$=="](o.$children()):i)}),n(p,"$concat",function(n){var s=this;return s.$updated(t,o(s.children,n.$to_a()))}),i(p,"+","concat"),n(p,"$append",function(n){var s=this;return s.$updated(t,o(s.children,[n]))}),i(p,"<<","append"),n(p,"$to_sexp",function(n){var r=this,c=t,i=t;return n==null&&(n=0),c=l(" ",n),i=""+c+"("+r.$fancy_type(),a(r.$children(),"each",[],function(a){return a==null&&(a=t),s(a["$is_a?"](g("Node")))?i=o(i,`
`+a.$to_sexp(o(n,1))):i=o(i," "+a.$inspect())}),i=o(i,")"),i},-1),i(p,"to_s","to_sexp"),n(p,"$inspect",function(n){var r=this,c=t,i=t;return n==null&&(n=0),c=l(" ",n),i=""+c+"s(:"+r.type,a(r.$children(),"each",[],function(a){return a==null&&(a=t),s(a["$is_a?"](g("Node")))?i=o(i,`,
`+a.$inspect(o(n,1))):i=o(i,", "+a.$inspect())}),i=o(i,")"),i},-1),n(p,"$to_ast",r),n(p,"$to_sexp_array",function(){var n=this,o=t,o=a(n.$children(),"map",[],function(n){return n==null&&(n=t),s(n["$is_a?"](g("Node")))?n.$to_sexp_array():n});return[n.$type()].concat(d(o))}),n(p,"$deconstruct",function(){var t=this;return[t.$type()].concat(d(t.$children()))}),p.$protected(),n(p,"$fancy_type",function(){var t=this;return t.type.$to_s().$gsub("_","-")})}(p[0],null,p)}(u[0],u)},Opal.modules["ast/processor/mixin"]=function(e){var o=e.module,a=e.klass,n=e.truthy,s=e.def,r=e.send,c=e.return_val,i=[],t=e.nil;return e.add_stubs("nil?,to_ast,type,respond_to?,send,handler_missing,map,to_a,process"),function(e,i){var d=o(e,"AST"),l=[d].concat(i);return function(e,i,l){var d=a(e,i,"Processor"),u=[d].concat(l);return function(e){var i=o(e,"Mixin");return s(i,"$process",function(s){var i=this,a=t,o=t;return n(s["$nil?"]())?t:(s=s.$to_ast(),a="on_"+s.$type(),n(i["$respond_to?"](a))?o=i.$send(a,s):o=i.$handler_missing(s),n(o)&&(s=o),s)}),s(i,"$process_all",function(n){var s=this;return r(n.$to_a(),"map",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s.$process(n)},{$$s:s})}),s(i,"$handler_missing",c(t))}(u[0])}(l[0],null,l)}(i[0],i)},Opal.modules["ast/processor"]=function(e){var n=e.module,s=e.klass,t=[],o=e.nil;return e.add_stubs("include"),function(t,o){var a=n(t,"AST"),i=[a].concat(o);return function(t,n,o){var i=s(t,n,"Processor"),a=[i].concat(o),r=e.$r(a);return i.$require("ast/processor.rb/../processor/mixin"),i.$include(r("Mixin"))}(i[0],null,i)}(t[0],t)},Opal.modules["ast/sexp"]=function(e){var t=e.module,s=e.slice,o=e.def,n=[],i=e.nil;return e.add_stubs("new"),function(n,i){var r=t(n,"AST"),a=[r].concat(i);return function(n,i){var a=t(n,"Sexp"),r=[a].concat(i),c=e.$r(r);return o(a,"$s",function(t){var o=s(arguments,1),i=o;return c("Node").$new(t,i)},-2)}(a[0],a)}(n[0],n)},Opal.modules.ast=function(e){var t=e.module,n=[],s=e.nil;return function(e){var n=t(e,"AST");return n.$require("./ast.rb/../ast/node"),n.$require("./ast.rb/../ast/processor"),n.$require("./ast.rb/../ast/sexp")}(n[0])},Opal.modules["parser/ast/node"]=function(e){var t=e.module,a=e.klass,r=e.alias,n=e.truthy,c=e.def,s=[],o=e.nil,i=e.$$$;return e.add_stubs("attr_reader,location,[],frozen?,dup,node="),function(e,s){var d=t(e,"Parser"),l=[d].concat(s);return function(e,s){var l=t(e,"AST"),d=[l].concat(s);return function(e,t){var s=a(e,t,"Node");return s.$attr_reader("location"),r(s,"loc","location"),c(s,"$assign_properties",function(t){var i=this,s=o;return n(s=t["$[]"]("location"))?(n(s["$frozen?"]())&&(s=s.$dup()),s["$node="](i),i.location=s):o})}(d[0],i(i("AST"),"Node"))}(l[0],l)}(s[0],s)},Opal.modules["opal/ast/node"]=function(e){var i=e.module,c=e.klass,n=e.truthy,l=e.send2,d=e.find_super,s=e.def,a=e.top,r=[],t=e.nil,o=e.$$$;return e.add_stubs("require,attr_reader,[],frozen?,dup,merge!,loc,line,column"),a.$require("ast"),a.$require("parser/ast/node"),function(e,a){var u=i(e,"Opal"),r=[u].concat(a);return function(e,a){var r=i(e,"AST"),u=[r].concat(a);return function(e,o){var i=c(e,o,"Node"),a=i.$$prototype;return a.meta=t,i.$attr_reader("meta"),s(i,"$assign_properties",function e(s){var r=e.$$p||t,o=this,i=t,a=t;return e.$$p=null,n(i=s["$[]"]("meta"))?(n(i["$frozen?"]())&&(i=i.$dup()),o.meta["$merge!"](i)):o.meta=n(a=o.meta)?a:new Map,l(o,d(o,"assign_properties",e,!1,!0),"assign_properties",[s],r)}),s(i,"$line",function(){var s=this;return n(s.$loc())?s.$loc().$line():t}),s(i,"$column",function(){var s=this;return n(s.$loc())?s.$loc().$column():t})}(u[0],o(o(o("Parser"),"AST"),"Node"))}(r[0],r)}(r[0],r)},Opal.modules["racc/parser"]=function(e){var w,g=e.module,v=e.klass,n=e.truthy,o=e.const_set,x=e.defs,h=e.gvars,m=e.rb_lt,s=e.def,d=e.to_ary,a=e.send,b=e.neqeq,r=e.rb_plus,i=e.eqeq,u=e.rb_ge,f=e.rb_gt,p=e.rb_minus,j=e.rb_le,y=e.rb_times,_=e.assign_ivar_val,l=[],O=e.$r(l),t=e.nil,c=e.$$$;return e.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(n,s){var i=g(n,"Racc"),o=[i].concat(s),a=e.$r(o);return v(o[0],a("StandardError"),"ParseError"),t}(l[0],l),n((w=c("::","ParseError","skip_raise"))?"constant":t)||o(l[0],"ParseError",c(O("Racc"),"ParseError")),function(l,w){var E,C=g(l,"Racc"),O=[C].concat(w),k=e.$r(O);return n((E=k("Racc_No_Extensions","skip_raise"))?"constant":t)||o(O[0],"Racc_No_Extensions",!1),function(l,g,w){var O=v(l,g,"Parser"),C=[O].concat(w),E=e.$r(C),k=O.$$prototype;return k.yydebug=k.racc_debug_out=k.racc_error_status=k.racc_t=k.racc_vstack=k.racc_val=k.racc_state=k.racc_tstack=t,o(C[0],"Racc_Runtime_Version","1.4.6"),o(C[0],"Racc_Runtime_Revision",["originalRevision:","1.8"]["$[]"](1)),o(C[0],"Racc_Runtime_Core_Version_R","1.4.6"),o(C[0],"Racc_Runtime_Core_Revision_R",["originalRevision:","1.8"]["$[]"](1)),o(C[0],"Racc_Main_Parsing_Routine","_racc_do_parse_rb"),o(C[0],"Racc_YY_Parse_Method","_racc_yyparse_rb"),o(C[0],"Racc_Runtime_Core_Version",E("Racc_Runtime_Core_Version_R")),o(C[0],"Racc_Runtime_Core_Revision",E("Racc_Runtime_Core_Revision_R")),o(C[0],"Racc_Runtime_Type","ruby"),x(E("Parser"),"$racc_runtime_type",function(){return E("Racc_Runtime_Type")}),s(O,"$_racc_setup",function(){var i,a,s=this,r=t,o=t;return h.stderr==null&&(h.stderr=t),n(c(s.$class(),"Racc_debug_parser"))||(s.yydebug=!1),n((i=s.yydebug,i!=null&&i!==t?"instance-variable":t))||(s.yydebug=!1),n(s.yydebug)&&(n((a=s.racc_debug_out,a!=null&&a!==t?"instance-variable":t))||(s.racc_debug_out=h.stderr),s.racc_debug_out=n(r=s.racc_debug_out)?r:h.stderr),o=c(s.$class(),"Racc_arg"),n(m(o.$size(),14))&&o["$[]="](13,!0),o}),s(O,"$_racc_init_sysvars",function(){var n=this;return n.racc_state=[0],n.racc_tstack=[],n.racc_vstack=[],n.racc_t=t,n.racc_val=t,n.racc_read_next=!0,n.racc_user_yyerror=!1,n.racc_error_status=0}),s(O,"$do_parse",function(){var t=this;return t.$__send__(E("Racc_Main_Parsing_Routine"),t.$_racc_setup(),!1)}),s(O,"$next_token",function(){var t=this;return t.$raise(E("NotImplementedError"),""+t.$class()+"#next_token is not defined")}),s(O,"$_racc_do_parse_rb",function(s){var p=this,j=t,y=t,g=t,_=t,l=t,w=t,f=t,m=t,h=t,v=s,c=d(v);return j=c[0]==null?t:c[0],y=c[1]==null?t:c[1],g=c[2]==null?t:c[2],_=c[3]==null?t:c[3],l=c[4]==null?t:c[4],l=c[5]==null?t:c[5],l=c[6]==null?t:c[6],l=c[7]==null?t:c[7],l=c[8]==null?t:c[8],l=c[9]==null?t:c[9],w=c[10]==null?t:c[10],l=c[11]==null?t:c[11],l=c[12]==null?t:c[12],l=c[13]==null?t:c[13],v,p.$_racc_init_sysvars(),f=m=h=t,a(p,"catch",["racc_end_parse"],function e(){var a,c,o=e.$$s==null?this:e.$$s,l=t;for(o.racc_state==null&&(o.racc_state=t),o.racc_read_next==null&&(o.racc_read_next=t),o.racc_t==null&&(o.racc_t=t),o.yydebug==null&&(o.yydebug=t),o.racc_val==null&&(o.racc_val=t);n(!0);)for(n(h=_["$[]"](o.racc_state["$[]"](-1)))?(n(o.racc_read_next)&&b(o.racc_t,0)&&(c=o.$next_token(),a=d(c),f=a[0]==null?t:a[0],o.racc_val=a[1]==null?t:a[1],c,n(f)?o.racc_t=n(l=w["$[]"](f))?l:1:o.racc_t=0,n(o.yydebug)&&o.$racc_read_token(o.racc_t,f,o.racc_val),o.racc_read_next=!1),h=r(h,o.racc_t),n(u(h,0))&&n(m=j["$[]"](h))&&i(y["$[]"](h),o.racc_state["$[]"](-1))||(m=g["$[]"](o.racc_state["$[]"](-1)))):m=g["$[]"](o.racc_state["$[]"](-1));n(m=o.$_racc_evalact(m,s)););},{$$s:p})}),s(O,"$yyparse",function(t,n){var s=this;return s.$__send__(E("Racc_YY_Parse_Method"),t,n,s.$_racc_setup(),!0)}),s(O,"$_racc_yyparse_rb",function(s,o,c){var v=this,b=t,j=t,g=t,y=t,p=t,w=t,f=t,m=t,_=c,h=d(_);return b=h[0]==null?t:h[0],j=h[1]==null?t:h[1],g=h[2]==null?t:h[2],y=h[3]==null?t:h[3],p=h[4]==null?t:h[4],p=h[5]==null?t:h[5],p=h[6]==null?t:h[6],p=h[7]==null?t:h[7],p=h[8]==null?t:h[8],p=h[9]==null?t:h[9],w=h[10]==null?t:h[10],p=h[11]==null?t:h[11],p=h[12]==null?t:h[12],p=h[13]==null?t:h[13],_,v.$_racc_init_sysvars(),f=t,m=t,a(v,"catch",["racc_end_parse"],function e(){var l=e.$$s==null?this:e.$$s;for(l.racc_state==null&&(l.racc_state=t);!n(m=y["$[]"](l.racc_state["$[]"](-1)));)for(;n(f=l.$_racc_evalact(g["$[]"](l.racc_state["$[]"](-1)),c)););return a(s,"__send__",[o],function e(s,o){var a=e.$$s==null?this:e.$$s,l=t,d=t;for(a.racc_t==null&&(a.racc_t=t),a.racc_state==null&&(a.racc_state=t),a.racc_read_next==null&&(a.racc_read_next=t),s==null&&(s=t),o==null&&(o=t),n(s)?a.racc_t=n(l=w["$[]"](s))?l:1:a.racc_t=0,a.racc_val=o,a.racc_read_next=!1,m=r(m,a.racc_t),n(u(m,0))&&n(f=b["$[]"](m))&&i(j["$[]"](m),a.racc_state["$[]"](-1))||(f=g["$[]"](a.racc_state["$[]"](-1)));n(f=a.$_racc_evalact(f,c)););for(;n(n(l=n(d=(m=y["$[]"](a.racc_state["$[]"](-1)))["$!"]())?d:a.racc_read_next["$!"]())?l:a.racc_t["$=="](0));)for(n(m)&&n(m=r(m,a.racc_t))&&n(u(m,0))&&n(f=b["$[]"](m))&&i(j["$[]"](m),a.racc_state["$[]"](-1))||(f=g["$[]"](a.racc_state["$[]"](-1)));n(f=a.$_racc_evalact(f,c)););},{$$s:l})},{$$s:v})}),s(O,"$_racc_evalact",function(s,o){var c=this,w=t,O=t,h=t,x=t,v=t,b=t,y=t,g=t,_=o,l=d(_);if(w=l[0]==null?t:l[0],O=l[1]==null?t:l[1],h=l[2]==null?t:l[2],x=l[3]==null?t:l[3],h=l[4]==null?t:l[4],h=l[5]==null?t:l[5],h=l[6]==null?t:l[6],h=l[7]==null?t:l[7],h=l[8]==null?t:l[8],h=l[9]==null?t:l[9],h=l[10]==null?t:l[10],v=l[11]==null?t:l[11],b=l[12]==null?t:l[12],h=l[13]==null?t:l[13],h=l[14]==null?t:l[14],_,n(f(s,0))&&n(m(s,v)))n(f(c.racc_error_status,0))&&(i(c.racc_t,1)||(c.racc_error_status=p(c.racc_error_status,1))),c.racc_vstack.$push(c.racc_val),c.racc_state.$push(s),c.racc_read_next=!0,n(c.yydebug)&&(c.racc_tstack.$push(c.racc_t),c.$racc_shift(c.racc_t,c.racc_tstack,c.racc_vstack));else if(n(m(s,0))&&n(f(s,b["$-@"]()))){if(y=a(c,"catch",["racc_jump"],function e(){var n=e.$$s==null?this:e.$$s;return n.racc_state==null&&(n.racc_state=t),n.racc_state.$push(n.$_racc_do_reduce(o,s)),!1},{$$s:c}),n(y))switch(y.valueOf()){case 1:return c.racc_user_yyerror=!0,b["$-@"]();case 2:return v;default:c.$raise("[Racc Bug] unknown jump code")}}else if(i(s,v))n(c.yydebug)&&c.$racc_accept(),c.$throw("racc_end_parse",c.racc_vstack["$[]"](0));else if(i(s,b["$-@"]())){switch(c.racc_error_status.valueOf()){case 0:n(o["$[]"](21))||c.$on_error(c.racc_t,c.racc_val,c.racc_vstack);break;case 3:i(c.racc_t,0)&&c.$throw("racc_end_parse",t),c.racc_read_next=!0;break;default:t}for(c.racc_user_yyerror=!1,c.racc_error_status=3;n(!0);){if(n(g=x["$[]"](c.racc_state["$[]"](-1)))&&(g=r(g,1),n(u(g,0))&&n(s=w["$[]"](g))&&i(O["$[]"](g),c.racc_state["$[]"](-1))))break;n(j(c.racc_state.$size(),1))&&c.$throw("racc_end_parse",t),c.racc_state.$pop(),c.racc_vstack.$pop(),n(c.yydebug)&&(c.racc_tstack.$pop(),c.$racc_e_pop(c.racc_state,c.racc_tstack,c.racc_vstack))}return s}else c.$raise("[Racc Bug] unknown action "+s.$inspect());return n(c.yydebug)&&c.$racc_next_state(c.racc_state["$[]"](-1),c.racc_state),t}),s(O,"$_racc_do_reduce",function(s,o){var h=this,f=t,F=t,C=t,S=t,A=t,k=t,j=t,E=t,x=t,m=t,g=t,l=t,c=t,b=t,O=t,v=t,M=t,_=t,w=t,z=t,T=s,a=d(T);return f=a[0]==null?t:a[0],f=a[1]==null?t:a[1],f=a[2]==null?t:a[2],f=a[3]==null?t:a[3],F=a[4]==null?t:a[4],C=a[5]==null?t:a[5],S=a[6]==null?t:a[6],A=a[7]==null?t:a[7],k=a[8]==null?t:a[8],j=a[9]==null?t:a[9],f=a[10]==null?t:a[10],f=a[11]==null?t:a[11],f=a[12]==null?t:a[12],E=a[13]==null?t:a[13],T,x=h.racc_state,m=h.racc_vstack,g=h.racc_tstack,l=y(o,-3),c=j["$[]"](l),b=j["$[]"](r(l,1)),O=j["$[]"](r(l,2)),v=[],n(h.yydebug)&&(M=g["$[]"](c["$-@"](),c)),_=m["$[]"](c["$-@"](),c),n(h.yydebug)&&g["$[]="](c["$-@"](),c,v),m["$[]="](c["$-@"](),c,v),x["$[]="](c["$-@"](),c,v),n(E)?m.$push(h.$__send__(O,_,m,_["$[]"](0))):m.$push(h.$__send__(O,_,m)),g.$push(b),n(h.yydebug)&&h.$racc_reduce(M,b,g,m),w=p(b,k),n(l=A["$[]"](w))&&(l=r(l,x["$[]"](-1)),n(u(l,0))&&n(z=F["$[]"](l))&&i(C["$[]"](l),w))?z:S["$[]"](w)}),s(O,"$on_error",function(s,o){var a=this,r=t;return a.$raise(E("ParseError"),a.$sprintf(`
parse error on value %s (%s)`,o.$inspect(),n(r=a.$token_to_str(s))?r:"?"))}),s(O,"$yyerror",function(){var t=this;return t.$throw("racc_jump",1)}),s(O,"$yyaccept",function(){var t=this;return t.$throw("racc_jump",2)}),s(O,"$yyerrok",_("racc_error_status",0)),s(O,"$racc_read_token",function(t,n,s){var o=this;return o.racc_debug_out.$print("read "),o.racc_debug_out.$print(n.$inspect(),"(",o.$racc_token2str(t),") "),o.racc_debug_out.$puts(s.$inspect()),o.racc_debug_out.$puts()}),s(O,"$racc_shift",function(t,n,s){var o=this;return o.racc_debug_out.$puts("shift "+o.$racc_token2str(t)),o.$racc_print_stacks(n,s),o.racc_debug_out.$puts()}),s(O,"$racc_reduce",function(s,o,i,r){var c=this,l=t,l=c.racc_debug_out;return l.$print("reduce "),n(s["$empty?"]())?l.$print(" <none>"):a(s,"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),l.$print(" ",s.$racc_token2str(n))},{$$s:c}),l.$puts(" --> "+c.$racc_token2str(o)),c.$racc_print_stacks(i,r),c.racc_debug_out.$puts()}),s(O,"$racc_accept",function(){var t=this;return t.racc_debug_out.$puts("accept"),t.racc_debug_out.$puts()}),s(O,"$racc_e_pop",function(t,n,s){var o=this;return o.racc_debug_out.$puts("error recovering mode: pop token"),o.$racc_print_states(t),o.$racc_print_stacks(n,s),o.racc_debug_out.$puts()}),s(O,"$racc_next_state",function(t,n){var s=this;return s.racc_debug_out.$puts("goto "+t),s.$racc_print_states(n),s.racc_debug_out.$puts()}),s(O,"$racc_print_stacks",function(n,s){var i=this,o=t,o=i.racc_debug_out;return o.$print(" ["),a(n,"each_index",[],function e(i){var a=e.$$s==null?this:e.$$s;return i==null&&(i=t),o.$print(" (",a.$racc_token2str(n["$[]"](i))," ",s["$[]"](i).$inspect(),")")},{$$s:i}),o.$puts(" ]")}),s(O,"$racc_print_states",function(n){var o=this,s=t,s=o.racc_debug_out;return s.$print(" ["),a(n,"each",[],function(n){return n==null&&(n=t),s.$print(" ",n)}),s.$puts(" ]")}),s(O,"$racc_token2str",function(s){var o=this,i=t;return n(i=c(o.$class(),"Racc_token_to_s_table")["$[]"](s))?i:o.$raise("[Racc Bug] can't convert token "+s+" to string")}),s(O,"$token_to_str",function(t){var n=this;return c(n.$class(),"Racc_token_to_s_table")["$[]"](t)})}(O[0],null,O)}(l[0],l)},Opal.modules["parser/version"]=function(e){var n=e.module,s=e.const_set,t=[],o=e.nil;return function(e,t){var o=n(e,"Parser"),i=[o].concat(t);return s(i[0],"VERSION","3.3.9.0")}(t[0],t)},Opal.modules["racc/parser"]=function(e){var w,g=e.module,v=e.klass,n=e.truthy,o=e.const_set,x=e.defs,h=e.gvars,m=e.rb_lt,s=e.def,d=e.to_ary,a=e.send,b=e.neqeq,r=e.rb_plus,i=e.eqeq,u=e.rb_ge,f=e.rb_gt,p=e.rb_minus,j=e.rb_le,y=e.rb_times,_=e.assign_ivar_val,l=[],O=e.$r(l),t=e.nil,c=e.$$$;return e.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(n,s){var i=g(n,"Racc"),o=[i].concat(s),a=e.$r(o);return v(o[0],a("StandardError"),"ParseError"),t}(l[0],l),n((w=c("::","ParseError","skip_raise"))?"constant":t)||o(l[0],"ParseError",c(O("Racc"),"ParseError")),function(l,w){var E,C=g(l,"Racc"),O=[C].concat(w),k=e.$r(O);return n((E=k("Racc_No_Extensions","skip_raise"))?"constant":t)||o(O[0],"Racc_No_Extensions",!1),function(l,g,w){var O=v(l,g,"Parser"),C=[O].concat(w),E=e.$r(C),k=O.$$prototype;return k.yydebug=k.racc_debug_out=k.racc_error_status=k.racc_t=k.racc_vstack=k.racc_val=k.racc_state=k.racc_tstack=t,o(C[0],"Racc_Runtime_Version","1.4.6"),o(C[0],"Racc_Runtime_Revision",["originalRevision:","1.8"]["$[]"](1)),o(C[0],"Racc_Runtime_Core_Version_R","1.4.6"),o(C[0],"Racc_Runtime_Core_Revision_R",["originalRevision:","1.8"]["$[]"](1)),o(C[0],"Racc_Main_Parsing_Routine","_racc_do_parse_rb"),o(C[0],"Racc_YY_Parse_Method","_racc_yyparse_rb"),o(C[0],"Racc_Runtime_Core_Version",E("Racc_Runtime_Core_Version_R")),o(C[0],"Racc_Runtime_Core_Revision",E("Racc_Runtime_Core_Revision_R")),o(C[0],"Racc_Runtime_Type","ruby"),x(E("Parser"),"$racc_runtime_type",function(){return E("Racc_Runtime_Type")}),s(O,"$_racc_setup",function(){var i,a,s=this,r=t,o=t;return h.stderr==null&&(h.stderr=t),n(c(s.$class(),"Racc_debug_parser"))||(s.yydebug=!1),n((i=s.yydebug,i!=null&&i!==t?"instance-variable":t))||(s.yydebug=!1),n(s.yydebug)&&(n((a=s.racc_debug_out,a!=null&&a!==t?"instance-variable":t))||(s.racc_debug_out=h.stderr),s.racc_debug_out=n(r=s.racc_debug_out)?r:h.stderr),o=c(s.$class(),"Racc_arg"),n(m(o.$size(),14))&&o["$[]="](13,!0),o}),s(O,"$_racc_init_sysvars",function(){var n=this;return n.racc_state=[0],n.racc_tstack=[],n.racc_vstack=[],n.racc_t=t,n.racc_val=t,n.racc_read_next=!0,n.racc_user_yyerror=!1,n.racc_error_status=0}),s(O,"$do_parse",function(){var t=this;return t.$__send__(E("Racc_Main_Parsing_Routine"),t.$_racc_setup(),!1)}),s(O,"$next_token",function(){var t=this;return t.$raise(E("NotImplementedError"),""+t.$class()+"#next_token is not defined")}),s(O,"$_racc_do_parse_rb",function(s){var p=this,j=t,y=t,g=t,_=t,l=t,w=t,f=t,m=t,h=t,v=s,c=d(v);return j=c[0]==null?t:c[0],y=c[1]==null?t:c[1],g=c[2]==null?t:c[2],_=c[3]==null?t:c[3],l=c[4]==null?t:c[4],l=c[5]==null?t:c[5],l=c[6]==null?t:c[6],l=c[7]==null?t:c[7],l=c[8]==null?t:c[8],l=c[9]==null?t:c[9],w=c[10]==null?t:c[10],l=c[11]==null?t:c[11],l=c[12]==null?t:c[12],l=c[13]==null?t:c[13],v,p.$_racc_init_sysvars(),f=m=h=t,a(p,"catch",["racc_end_parse"],function e(){var a,c,o=e.$$s==null?this:e.$$s,l=t;for(o.racc_state==null&&(o.racc_state=t),o.racc_read_next==null&&(o.racc_read_next=t),o.racc_t==null&&(o.racc_t=t),o.yydebug==null&&(o.yydebug=t),o.racc_val==null&&(o.racc_val=t);n(!0);)for(n(h=_["$[]"](o.racc_state["$[]"](-1)))?(n(o.racc_read_next)&&b(o.racc_t,0)&&(c=o.$next_token(),a=d(c),f=a[0]==null?t:a[0],o.racc_val=a[1]==null?t:a[1],c,n(f)?o.racc_t=n(l=w["$[]"](f))?l:1:o.racc_t=0,n(o.yydebug)&&o.$racc_read_token(o.racc_t,f,o.racc_val),o.racc_read_next=!1),h=r(h,o.racc_t),n(u(h,0))&&n(m=j["$[]"](h))&&i(y["$[]"](h),o.racc_state["$[]"](-1))||(m=g["$[]"](o.racc_state["$[]"](-1)))):m=g["$[]"](o.racc_state["$[]"](-1));n(m=o.$_racc_evalact(m,s)););},{$$s:p})}),s(O,"$yyparse",function(t,n){var s=this;return s.$__send__(E("Racc_YY_Parse_Method"),t,n,s.$_racc_setup(),!0)}),s(O,"$_racc_yyparse_rb",function(s,o,c){var v=this,b=t,j=t,g=t,y=t,p=t,w=t,f=t,m=t,_=c,h=d(_);return b=h[0]==null?t:h[0],j=h[1]==null?t:h[1],g=h[2]==null?t:h[2],y=h[3]==null?t:h[3],p=h[4]==null?t:h[4],p=h[5]==null?t:h[5],p=h[6]==null?t:h[6],p=h[7]==null?t:h[7],p=h[8]==null?t:h[8],p=h[9]==null?t:h[9],w=h[10]==null?t:h[10],p=h[11]==null?t:h[11],p=h[12]==null?t:h[12],p=h[13]==null?t:h[13],_,v.$_racc_init_sysvars(),f=t,m=t,a(v,"catch",["racc_end_parse"],function e(){var l=e.$$s==null?this:e.$$s;for(l.racc_state==null&&(l.racc_state=t);!n(m=y["$[]"](l.racc_state["$[]"](-1)));)for(;n(f=l.$_racc_evalact(g["$[]"](l.racc_state["$[]"](-1)),c)););return a(s,"__send__",[o],function e(s,o){var a=e.$$s==null?this:e.$$s,l=t,d=t;for(a.racc_t==null&&(a.racc_t=t),a.racc_state==null&&(a.racc_state=t),a.racc_read_next==null&&(a.racc_read_next=t),s==null&&(s=t),o==null&&(o=t),n(s)?a.racc_t=n(l=w["$[]"](s))?l:1:a.racc_t=0,a.racc_val=o,a.racc_read_next=!1,m=r(m,a.racc_t),n(u(m,0))&&n(f=b["$[]"](m))&&i(j["$[]"](m),a.racc_state["$[]"](-1))||(f=g["$[]"](a.racc_state["$[]"](-1)));n(f=a.$_racc_evalact(f,c)););for(;n(n(l=n(d=(m=y["$[]"](a.racc_state["$[]"](-1)))["$!"]())?d:a.racc_read_next["$!"]())?l:a.racc_t["$=="](0));)for(n(m)&&n(m=r(m,a.racc_t))&&n(u(m,0))&&n(f=b["$[]"](m))&&i(j["$[]"](m),a.racc_state["$[]"](-1))||(f=g["$[]"](a.racc_state["$[]"](-1)));n(f=a.$_racc_evalact(f,c)););},{$$s:l})},{$$s:v})}),s(O,"$_racc_evalact",function(s,o){var c=this,w=t,O=t,h=t,x=t,v=t,b=t,y=t,g=t,_=o,l=d(_);if(w=l[0]==null?t:l[0],O=l[1]==null?t:l[1],h=l[2]==null?t:l[2],x=l[3]==null?t:l[3],h=l[4]==null?t:l[4],h=l[5]==null?t:l[5],h=l[6]==null?t:l[6],h=l[7]==null?t:l[7],h=l[8]==null?t:l[8],h=l[9]==null?t:l[9],h=l[10]==null?t:l[10],v=l[11]==null?t:l[11],b=l[12]==null?t:l[12],h=l[13]==null?t:l[13],h=l[14]==null?t:l[14],_,n(f(s,0))&&n(m(s,v)))n(f(c.racc_error_status,0))&&(i(c.racc_t,1)||(c.racc_error_status=p(c.racc_error_status,1))),c.racc_vstack.$push(c.racc_val),c.racc_state.$push(s),c.racc_read_next=!0,n(c.yydebug)&&(c.racc_tstack.$push(c.racc_t),c.$racc_shift(c.racc_t,c.racc_tstack,c.racc_vstack));else if(n(m(s,0))&&n(f(s,b["$-@"]()))){if(y=a(c,"catch",["racc_jump"],function e(){var n=e.$$s==null?this:e.$$s;return n.racc_state==null&&(n.racc_state=t),n.racc_state.$push(n.$_racc_do_reduce(o,s)),!1},{$$s:c}),n(y))switch(y.valueOf()){case 1:return c.racc_user_yyerror=!0,b["$-@"]();case 2:return v;default:c.$raise("[Racc Bug] unknown jump code")}}else if(i(s,v))n(c.yydebug)&&c.$racc_accept(),c.$throw("racc_end_parse",c.racc_vstack["$[]"](0));else if(i(s,b["$-@"]())){switch(c.racc_error_status.valueOf()){case 0:n(o["$[]"](21))||c.$on_error(c.racc_t,c.racc_val,c.racc_vstack);break;case 3:i(c.racc_t,0)&&c.$throw("racc_end_parse",t),c.racc_read_next=!0;break;default:t}for(c.racc_user_yyerror=!1,c.racc_error_status=3;n(!0);){if(n(g=x["$[]"](c.racc_state["$[]"](-1)))&&(g=r(g,1),n(u(g,0))&&n(s=w["$[]"](g))&&i(O["$[]"](g),c.racc_state["$[]"](-1))))break;n(j(c.racc_state.$size(),1))&&c.$throw("racc_end_parse",t),c.racc_state.$pop(),c.racc_vstack.$pop(),n(c.yydebug)&&(c.racc_tstack.$pop(),c.$racc_e_pop(c.racc_state,c.racc_tstack,c.racc_vstack))}return s}else c.$raise("[Racc Bug] unknown action "+s.$inspect());return n(c.yydebug)&&c.$racc_next_state(c.racc_state["$[]"](-1),c.racc_state),t}),s(O,"$_racc_do_reduce",function(s,o){var h=this,f=t,F=t,C=t,S=t,A=t,k=t,j=t,E=t,x=t,m=t,g=t,l=t,c=t,b=t,O=t,v=t,M=t,_=t,w=t,z=t,T=s,a=d(T);return f=a[0]==null?t:a[0],f=a[1]==null?t:a[1],f=a[2]==null?t:a[2],f=a[3]==null?t:a[3],F=a[4]==null?t:a[4],C=a[5]==null?t:a[5],S=a[6]==null?t:a[6],A=a[7]==null?t:a[7],k=a[8]==null?t:a[8],j=a[9]==null?t:a[9],f=a[10]==null?t:a[10],f=a[11]==null?t:a[11],f=a[12]==null?t:a[12],E=a[13]==null?t:a[13],T,x=h.racc_state,m=h.racc_vstack,g=h.racc_tstack,l=y(o,-3),c=j["$[]"](l),b=j["$[]"](r(l,1)),O=j["$[]"](r(l,2)),v=[],n(h.yydebug)&&(M=g["$[]"](c["$-@"](),c)),_=m["$[]"](c["$-@"](),c),n(h.yydebug)&&g["$[]="](c["$-@"](),c,v),m["$[]="](c["$-@"](),c,v),x["$[]="](c["$-@"](),c,v),n(E)?m.$push(h.$__send__(O,_,m,_["$[]"](0))):m.$push(h.$__send__(O,_,m)),g.$push(b),n(h.yydebug)&&h.$racc_reduce(M,b,g,m),w=p(b,k),n(l=A["$[]"](w))&&(l=r(l,x["$[]"](-1)),n(u(l,0))&&n(z=F["$[]"](l))&&i(C["$[]"](l),w))?z:S["$[]"](w)}),s(O,"$on_error",function(s,o){var a=this,r=t;return a.$raise(E("ParseError"),a.$sprintf(`
parse error on value %s (%s)`,o.$inspect(),n(r=a.$token_to_str(s))?r:"?"))}),s(O,"$yyerror",function(){var t=this;return t.$throw("racc_jump",1)}),s(O,"$yyaccept",function(){var t=this;return t.$throw("racc_jump",2)}),s(O,"$yyerrok",_("racc_error_status",0)),s(O,"$racc_read_token",function(t,n,s){var o=this;return o.racc_debug_out.$print("read "),o.racc_debug_out.$print(n.$inspect(),"(",o.$racc_token2str(t),") "),o.racc_debug_out.$puts(s.$inspect()),o.racc_debug_out.$puts()}),s(O,"$racc_shift",function(t,n,s){var o=this;return o.racc_debug_out.$puts("shift "+o.$racc_token2str(t)),o.$racc_print_stacks(n,s),o.racc_debug_out.$puts()}),s(O,"$racc_reduce",function(s,o,i,r){var c=this,l=t,l=c.racc_debug_out;return l.$print("reduce "),n(s["$empty?"]())?l.$print(" <none>"):a(s,"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),l.$print(" ",s.$racc_token2str(n))},{$$s:c}),l.$puts(" --> "+c.$racc_token2str(o)),c.$racc_print_stacks(i,r),c.racc_debug_out.$puts()}),s(O,"$racc_accept",function(){var t=this;return t.racc_debug_out.$puts("accept"),t.racc_debug_out.$puts()}),s(O,"$racc_e_pop",function(t,n,s){var o=this;return o.racc_debug_out.$puts("error recovering mode: pop token"),o.$racc_print_states(t),o.$racc_print_stacks(n,s),o.racc_debug_out.$puts()}),s(O,"$racc_next_state",function(t,n){var s=this;return s.racc_debug_out.$puts("goto "+t),s.$racc_print_states(n),s.racc_debug_out.$puts()}),s(O,"$racc_print_stacks",function(n,s){var i=this,o=t,o=i.racc_debug_out;return o.$print(" ["),a(n,"each_index",[],function e(i){var a=e.$$s==null?this:e.$$s;return i==null&&(i=t),o.$print(" (",a.$racc_token2str(n["$[]"](i))," ",s["$[]"](i).$inspect(),")")},{$$s:i}),o.$puts(" ]")}),s(O,"$racc_print_states",function(n){var o=this,s=t,s=o.racc_debug_out;return s.$print(" ["),a(n,"each",[],function(n){return n==null&&(n=t),s.$print(" ",n)}),s.$puts(" ]")}),s(O,"$racc_token2str",function(s){var o=this,i=t;return n(i=c(o.$class(),"Racc_token_to_s_table")["$[]"](s))?i:o.$raise("[Racc Bug] can't convert token "+s+" to string")}),s(O,"$token_to_str",function(t){var n=this;return c(n.$class(),"Racc_token_to_s_table")["$[]"](t)})}(O[0],null,O)}(l[0],l)},Opal.modules["parser/messages"]=function(e){var t=e.module,s=e.const_set,o=e.truthy,i=e.eqeqeq,a=e.defs,n=[],r=e.nil;return e.add_stubs("freeze,[],empty?,===,format"),function(n,c){var d=t(n,"Parser"),l=[d].concat(c);return s(l[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 .<digit> 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(n,s){var c=t(n,"Messages"),d=[c].concat(s),l=e.$r(d);return a(c,"$compile",function(t,n){var a=this,s=r,s=l("MESSAGES")["$[]"](t);return i(l("Hash"),n)&&o(n["$empty?"]())?s:a.$format(s,n)})}(l[0],l)}(n[0],n)},Opal.modules["parser/deprecation"]=function(e){var n=e.module,s=e.truthy,i=e.def,o=[],t=e.nil,a=e.$$$;return e.add_stubs("attr_writer,warn"),function(e,o){var r=n(e,"Parser"),c=[r].concat(o);return function(e){var o=n(e,"Deprecation");return o.$attr_writer("warned_of_deprecation"),i(o,"$warn_of_deprecation",function(){var n=this,o=t,i=t;return n.warned_of_deprecation==null&&(n.warned_of_deprecation=t),n.warned_of_deprecation=s(o=n.warned_of_deprecation)?o:!s(i=n.$warn(a(n,"DEPRECATION_WARNING")))||i})}(c[0])}(o[0],o)},Opal.modules["parser/ast/processor"]=function(e){var r=e.module,d=e.klass,s=e.def,t=e.alias,o=e.to_a,i=e.not,c=e.truthy,u=e.slice,l=[],n=e.nil,a=e.$$$;return e.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(l,h){var f=r(l,"Parser"),m=[f].concat(h);return function(l,h){var f=r(l,"AST"),m=[f].concat(h);return function(r,l,h){var m=d(r,l,"Processor"),f=[m].concat(h),p=e.$r(f);return m.$include(a(a(a("AST"),"Processor"),"Mixin")),s(m,"$process_regular_node",function(t){var s=this;return t.$updated(n,s.$process_all(t))}),t(m,"on_dstr","process_regular_node"),t(m,"on_dsym","process_regular_node"),t(m,"on_regexp","process_regular_node"),t(m,"on_xstr","process_regular_node"),t(m,"on_splat","process_regular_node"),t(m,"on_kwsplat","process_regular_node"),t(m,"on_array","process_regular_node"),t(m,"on_pair","process_regular_node"),t(m,"on_hash","process_regular_node"),t(m,"on_kwargs","process_regular_node"),t(m,"on_irange","process_regular_node"),t(m,"on_erange","process_regular_node"),s(m,"$on_var",function(t){return t}),s(m,"$process_variable_node",function(t){var n=this;return n.$on_var(t)}),t(m,"on_lvar","process_variable_node"),t(m,"on_ivar","process_variable_node"),t(m,"on_gvar","process_variable_node"),t(m,"on_cvar","process_variable_node"),t(m,"on_back_ref","process_variable_node"),t(m,"on_nth_ref","process_variable_node"),s(m,"$on_vasgn",function(t){var c=this,r=n,a=n,s=[].concat(o(t));return r=s[0]==null?n:s[0],a=s[1]==null?n:s[1],s,i(a["$nil?"]())?t.$updated(n,[r,c.$process(a)]):t}),s(m,"$process_var_asgn_node",function(t){var n=this;return n.$on_vasgn(t)}),t(m,"on_lvasgn","process_var_asgn_node"),t(m,"on_ivasgn","process_var_asgn_node"),t(m,"on_gvasgn","process_var_asgn_node"),t(m,"on_cvasgn","process_var_asgn_node"),t(m,"on_and_asgn","process_regular_node"),t(m,"on_or_asgn","process_regular_node"),s(m,"$on_op_asgn",function(t){var i=this,a=n,r=n,c=n,s=[].concat(o(t));return a=s[0]==null?n:s[0],r=s[1]==null?n:s[1],c=s[2]==null?n:s[2],s,t.$updated(n,[i.$process(a),r,i.$process(c)])}),t(m,"on_mlhs","process_regular_node"),t(m,"on_masgn","process_regular_node"),s(m,"$on_const",function(t){var r=this,i=n,a=n,s=[].concat(o(t));return i=s[0]==null?n:s[0],a=s[1]==null?n:s[1],s,t.$updated(n,[r.$process(i),a])}),s(m,"$on_casgn",function(t){var a=this,r=n,c=n,l=n,s=[].concat(o(t));return r=s[0]==null?n:s[0],c=s[1]==null?n:s[1],l=s[2]==null?n:s[2],s,i(l["$nil?"]())?t.$updated(n,[a.$process(r),c,a.$process(l)]):t.$updated(n,[a.$process(r),c])}),t(m,"on_args","process_regular_node"),s(m,"$on_argument",function(t){var c=this,r=n,a=n,s=[].concat(o(t));return r=s[0]==null?n:s[0],a=s[1]==null?n:s[1],s,i(a["$nil?"]())?t.$updated(n,[r,c.$process(a)]):t}),s(m,"$process_argument_node",function(t){var n=this;return n.$on_argument(t)}),t(m,"on_arg","process_argument_node"),t(m,"on_optarg","process_argument_node"),t(m,"on_restarg","process_argument_node"),t(m,"on_blockarg","process_argument_node"),t(m,"on_shadowarg","process_argument_node"),t(m,"on_kwarg","process_argument_node"),t(m,"on_kwoptarg","process_argument_node"),t(m,"on_kwrestarg","process_argument_node"),t(m,"on_forward_arg","process_argument_node"),s(m,"$on_procarg0",function(t){var n=this;return c(t.$children()["$[]"](0)["$is_a?"](p("Symbol")))?n.$on_argument(t):n.$process_regular_node(t)}),t(m,"on_arg_expr","process_regular_node"),t(m,"on_restarg_expr","process_regular_node"),t(m,"on_blockarg_expr","process_regular_node"),t(m,"on_block_pass","process_regular_node"),t(m,"on_forwarded_restarg","process_regular_node"),t(m,"on_forwarded_kwrestarg","process_regular_node"),t(m,"on_module","process_regular_node"),t(m,"on_class","process_regular_node"),t(m,"on_sclass","process_regular_node"),s(m,"$on_def",function(t){var i=this,a=n,r=n,c=n,s=[].concat(o(t));return a=s[0]==null?n:s[0],r=s[1]==null?n:s[1],c=s[2]==null?n:s[2],s,t.$updated(n,[a,i.$process(r),i.$process(c)])}),s(m,"$on_defs",function(t){var i=this,a=n,r=n,c=n,l=n,s=[].concat(o(t));return a=s[0]==null?n:s[0],r=s[1]==null?n:s[1],c=s[2]==null?n:s[2],l=s[3]==null?n:s[3],s,t.$updated(n,[i.$process(a),r,i.$process(c),i.$process(l)])}),t(m,"on_undef","process_regular_node"),t(m,"on_alias","process_regular_node"),s(m,"$on_send",function(t){var a=this,i=n,r=n,l=n,s=[].concat(o(t));return i=s[0]==null?n:s[0],r=s[1]==null?n:s[1],l=u(s,2),s,c(i)&&(i=a.$process(i)),t.$updated(n,[i,r].concat(o(a.$process_all(l))))}),t(m,"on_csend","on_send"),t(m,"on_index","process_regular_node"),t(m,"on_indexasgn","process_regular_node"),t(m,"on_block","process_regular_node"),t(m,"on_lambda","process_regular_node"),s(m,"$on_numblock",function(t){var i=this,a=n,r=n,c=n,s=[].concat(o(t));return a=s[0]==null?n:s[0],r=s[1]==null?n:s[1],c=s[2]==null?n:s[2],s,t.$updated(n,[i.$process(a),r,i.$process(c)])}),t(m,"on_while","process_regular_node"),t(m,"on_while_post","process_regular_node"),t(m,"on_until","process_regular_node"),t(m,"on_until_post","process_regular_node"),t(m,"on_for","process_regular_node"),t(m,"on_return","process_regular_node"),t(m,"on_break","process_regular_node"),t(m,"on_next","process_regular_node"),t(m,"on_redo","process_regular_node"),t(m,"on_retry","process_regular_node"),t(m,"on_super","process_regular_node"),t(m,"on_yield","process_regular_node"),t(m,"on_defined?","process_regular_node"),t(m,"on_not","process_regular_node"),t(m,"on_and","process_regular_node"),t(m,"on_or","process_regular_node"),t(m,"on_if","process_regular_node"),t(m,"on_when","process_regular_node"),t(m,"on_case","process_regular_node"),t(m,"on_iflipflop","process_regular_node"),t(m,"on_eflipflop","process_regular_node"),t(m,"on_match_current_line","process_regular_node"),t(m,"on_match_with_lvasgn","process_regular_node"),t(m,"on_resbody","process_regular_node"),t(m,"on_rescue","process_regular_node"),t(m,"on_ensure","process_regular_node"),t(m,"on_begin","process_regular_node"),t(m,"on_kwbegin","process_regular_node"),t(m,"on_preexe","process_regular_node"),t(m,"on_postexe","process_regular_node"),t(m,"on_case_match","process_regular_node"),t(m,"on_in_match","process_regular_node"),t(m,"on_match_pattern","process_regular_node"),t(m,"on_match_pattern_p","process_regular_node"),t(m,"on_in_pattern","process_regular_node"),t(m,"on_if_guard","process_regular_node"),t(m,"on_unless_guard","process_regular_node"),t(m,"on_match_var","process_variable_node"),t(m,"on_match_rest","process_regular_node"),t(m,"on_pin","process_regular_node"),t(m,"on_match_alt","process_regular_node"),t(m,"on_match_as","process_regular_node"),t(m,"on_array_pattern","process_regular_node"),t(m,"on_array_pattern_with_tail","process_regular_node"),t(m,"on_hash_pattern","process_regular_node"),t(m,"on_const_pattern","process_regular_node"),t(m,"on_find_pattern","process_regular_node"),s(m,"$process_variable_node",function(t){var n=this;return n.$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."),n.$on_var(t)}),s(m,"$process_var_asgn_node",function(t){var n=this;return n.$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."),n.$on_vasgn(t)}),s(m,"$process_argument_node",function(t){var n=this;return n.$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."),n.$on_argument(t)}),s(m,"$on_empty_else",function(t){return t})}(m[0],null,m)}(m[0],m)}(l[0],l)},Opal.modules["parser/meta"]=function(e){var t=e.module,n=e.const_set,o=e.rb_plus,s=[],i=e.nil;return e.add_stubs("freeze,private_constant,to_set,+"),function(s,i){var r=t(s,"Parser"),a=[r].concat(i);return function(s,i){var r=t(s,"Meta"),a=[r].concat(i),c=e.$r(a);return n(a[0],"PRISM_TRANSLATION_PARSER_NODE_TYPES",["itarg","itblock"].$freeze()),r.$private_constant("PRISM_TRANSLATION_PARSER_NODE_TYPES"),n(a[0],"NODE_TYPES",o(e.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"),c("PRISM_TRANSLATION_PARSER_NODE_TYPES")).$to_set().$freeze())}(a[0],a)}(s[0],s)},Opal.modules["parser/source/buffer"]=function(e){var f=e.module,E=e.klass,C=e.const_set,_=e.regexp,n=e.enc,s=e.truthy,u=e.gvars,p=e.eqeq,d=e.neqeq,h=e.defs,g=e.slice,b=e.extract_kwargs,x=e.ensure_kwargs,j=e.hash_get,c=e.send,o=e.def,v=e.not,r=e.rb_plus,i=e.rb_minus,y=e.rb_ge,l=e.rb_lt,w=e.send2,O=e.find_super,m=[],t=e.nil,a=e.$$$;return e.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(m,k){var S=f(m,"Parser"),A=[S].concat(k);return function(m,k){var S=f(m,"Source"),A=[S].concat(k);return function(m,f,k){var A=E(m,f,"Buffer"),F=[A].concat(k),S=e.$r(F),M=A.$$prototype;return M.name=M.source=M.slice_source=M.first_line=M.lines=M.source_range=M.line_begins=M.line_index_for_position=M.line_range=t,A.$attr_reader("name","first_line"),C(F[0],"ENCODING_RE",_([n("[\\s#](en)?coding\\s*[:=]\\s*","ASCII-8BIT"),n("(","ASCII-8BIT"),n("","ASCII-8BIT"),n("(utf8-mac)","ASCII-8BIT"),n("|","ASCII-8BIT"),n("","ASCII-8BIT"),n("([A-Za-z0-9_-]+?)(-unix|-dos|-mac)","ASCII-8BIT"),n("|","ASCII-8BIT"),n("([A-Za-z0-9_-]+)","ASCII-8BIT"),n(")","ASCII-8BIT"),n("","ASCII-8BIT")])),h(A,"$recognize_encoding",function(i){var c,l,j=this,h=t,f=t,r=t,m=t,g=t,v=t,b=t;if(s(i["$empty?"]()))return t;if(i["$=~"](/^(.*)\n?(.*\n)?/),c=[(l=u["~"])===t?t:l["$[]"](1),(l=u["~"])===t?t:l["$[]"](2)],h=c[0],f=c[1],c,s(h["$start_with?"](n("\xEF\xBB\xBF","ASCII-8BIT").$freeze())))return a(S("Encoding"),"UTF_8");if(p(h["$[]"](0,2),n("#!","ASCII-8BIT").$freeze())?r=f:r=h,s(r["$nil?"]())||d(r["$[]"](0),n("#","ASCII-8BIT")))return t;if(s(m=S("ENCODING_RE").$match(r)))try{return S("Encoding").$find(s(g=s(v=m["$[]"](3))?v:m["$[]"](4))?g:m["$[]"](6))}catch(t){if(e.rescue(t,[S("ArgumentError")])){b=t;try{return j.$raise(a(S("Parser"),"UnknownEncodingInMagicComment"),b.$message())}finally{e.pop_exception(t)}}else throw t}else return t}),h(A,"$reencode_string",function(n){var r=this,i=t,o=t,i=n.$encoding(),o=r.$recognize_encoding(n.$force_encoding(a(S("Encoding"),"BINARY")));return s(o["$nil?"]())?n.$force_encoding(i):p(o,a(S("Encoding"),"BINARY"))?n:n.$force_encoding(o).$encode(a(S("Encoding"),"UTF_8"))}),o(A,"$initialize",function(n){var r,l,d,a=this,u=g(arguments,1),h=b(u),h=x(h);return u.length>0&&(l=u.shift()),l==null&&(l=1),r=j(h,"source"),r==null&&(r=t),a.name=n.$to_s(),a.source=t,a.first_line=l,a.lines=t,a.line_begins=t,a.slice_source=t,a.line_index_for_position=new Map,s(r)?(d=[r],c(a,"source=",d),d[d.length-1]):t},-2),o(A,"$read",function(){var s=this;return c(S("File"),"open",[s.name,n("rb","ASCII-8BIT")],function e(n){var s,o=e.$$s==null?this:e.$$s;return n==null&&(n=t),(s=[n.$read()],c(o,"source=",s),s[s.length-1])},{$$s:s}),s}),o(A,"$source",function(){var t=this;return s(t.source["$nil?"]())&&t.$raise(S("RuntimeError"),n("Cannot extract source from uninitialized Source::Buffer","ASCII-8BIT")),t.source}),o(A,"$source=",function(t){var o,i=this;return s(t["$frozen?"]())&&(t=t.$dup()),t=i.$class().$reencode_string(t),s(t["$valid_encoding?"]())||i.$raise(S("EncodingError"),n("invalid byte sequence in ","ASCII-8BIT")+t.$encoding().$name()),(o=[t],c(i,"raw_source=",o),o[o.length-1])}),o(A,"$raw_source=",function(o){var i=this;return s(i.source)&&i.$raise(S("ArgumentError"),n("Source::Buffer is immutable","ASCII-8BIT")),i.source=o.$gsub(n(`
`,"ASCII-8BIT").$freeze(),n(`
`,"ASCII-8BIT").$freeze()).$freeze(),v(i.source["$ascii_only?"]())&&d(i.source.$encoding(),a(S("Encoding"),"UTF_32LE"))&&d(i.source.$encoding(),a(S("Encoding"),"BINARY"))?i.slice_source=i.source.$encode(a(S("Encoding"),"UTF_32LE")):t}),o(A,"$slice",function(n,o){var i=this;return o==null&&(o=t),s(o["$nil?"]())&&(s(n["$is_a?"](a("Range")))?(o=n.$size(),n=n.$begin()):o=1),s(i.slice_source["$nil?"]())?i.source["$[]"](n,o):i.slice_source["$[]"](n,o).$encode(i.source.$encoding())},-2),o(A,"$decompose_position",function(n){var s=this,o=t,a=t,o=s.$line_index_for_position(n),a=s.$line_begins()["$[]"](o);return[r(s.first_line,o),i(n,a)]}),o(A,"$line_for_position",function(t){var n=this;return r(n.$line_index_for_position(t),n.first_line)}),o(A,"$column_for_position",function(n){var s=this,o=t,o=s.$line_index_for_position(n);return i(n,s.$line_begins()["$[]"](o))}),o(A,"$source_lines",function(){var o=this,a=t,i=t;return o.lines=s(a=o.lines)?a:(i=o.source.$lines().$to_a(),s(o.source["$end_with?"](n(`
`,"ASCII-8BIT").$freeze()))?i["$<<"](n("","ASCII-8BIT").$dup()):t,c(i,"each",[],function(s){return s==null&&(s=t),s["$chomp!"](n(`
`,"ASCII-8BIT").$freeze()),s.$freeze()}),i.$freeze())}),o(A,"$source_line",function(t){var n=this;return n.$source_lines().$fetch(i(t,n.first_line)).$dup()}),o(A,"$line_range",function(o){var a=this,c=t,c=i(o,a.first_line);return s(l(c,0))||s(y(r(c,1),a.$line_begins().$size()))?a.$raise(S("IndexError"),n("Parser::Source::Buffer: range for line ","ASCII-8BIT")+(""+o+n(" requested, valid line numbers are ","ASCII-8BIT")+a.first_line+n("..","ASCII-8BIT"))+(""+i(r(a.first_line,a.$line_begins().$size()),2))):S("Range").$new(a,a.$line_begins()["$[]"](c),i(a.$line_begins()["$[]"](r(c,1)),1))}),o(A,"$source_range",function(){var n=this,o=t;return n.source_range=s(o=n.source_range)?o:S("Range").$new(n,0,n.$source().$size())}),o(A,"$last_line",function(){var t=this;return i(r(t.$line_begins().$size(),t.first_line),2)}),o(A,"$freeze",function e(){var s=e.$$p||t,n=this;return e.$$p=null,n.$source_lines(),n.$line_begins(),n.$source_range(),w(n,O(n,"freeze",e,!1,!0),"freeze",[],s)}),o(A,"$inspect",function(){var t=this;return n("#<","ASCII-8BIT")+t.$class()+n(" ","ASCII-8BIT")+t.$name()+n(">","ASCII-8BIT")}),A.$private(),o(A,"$line_begins",function(){var i=this,c=t,a=t,o=t;return i.line_begins=s(c=i.line_begins)?c:function(){return a=[0],o=0,function(){for(;s(o=i.source.$index(n(`
`,"ASCII-8BIT").$freeze(),o));)o=r(o,1),a["$<<"](o);return t}(),a["$<<"](r(i.source.$size(),1)),a}()}),o(A,"$line_index_for_position",function(n){var o=this,r=t,a=t;return s(r=o.line_index_for_position["$[]"](n))?r:(a=i(o.$bsearch(o.$line_begins(),n),1),s(o.line_index_for_position["$frozen?"]())||o.line_index_for_position["$[]="](n,a),a)}),s(S("Array")["$method_defined?"]("bsearch_index"))?o(A,"$bsearch",function(n,o){var a=t;return s(a=c(n,"bsearch_index",[],function(n){return n==null&&(n=t),l(o,n)}))?a:i(n.$size(),1)}):o(A,"$bsearch",function(o,a){var d=this,r=t;return d.line_range=s(r=d.line_range)?r:e.Range.$new(0,o.$size(),!0),s(r=c(d.line_range,"bsearch",[],function(n){return n==null&&(n=t),l(a,o["$[]"](n))}))?r:i(o.$size(),1)})}(A[0],null,A)}(A[0],A)}(m[0],m)},Opal.modules["parser/source/range"]=function(e){var u=e.module,b=e.klass,n=e.truthy,m=e.rb_lt,t=e.def,d=e.rb_minus,j=e.alias,v=e.neqeq,h=e.slice,f=e.to_ary,o=e.rb_plus,c=e.ensure_kwargs,i=e.hash_get,r=e.rb_ge,p=e.rb_times,g=e.eqeq,l=[],s=e.nil,a=e.$$$;return e.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(l,y){var w=u(l,"Parser"),_=[w].concat(y);return function(l,y){var w=u(l,"Source"),_=[w].concat(y);return function(l,u,y){var _=b(l,u,"Range"),x=[_].concat(y),w=e.$r(x),O=_.$$prototype;return O.begin_pos=O.end_pos=O.source_buffer=s,_.$include(w("Comparable")),_.$attr_reader("source_buffer"),_.$attr_reader("begin_pos","end_pos"),t(_,"$initialize",function(t,s,o){var a,i=this;return n(m(o,s))&&i.$raise(w("ArgumentError"),"Parser::Source::Range: end_pos must not be less than begin_pos"),n(t["$nil?"]())&&i.$raise(w("ArgumentError"),"Parser::Source::Range: source_buffer must not be nil"),i.source_buffer=t,a=[s,o],i.begin_pos=a[0],i.end_pos=a[1],a,i.$freeze()}),t(_,"$begin",function(){var t=this;return t.$with(new Map([["end_pos",t.begin_pos]]))}),t(_,"$end",function(){var t=this;return t.$with(new Map([["begin_pos",t.end_pos]]))}),t(_,"$size",function(){var t=this;return d(t.end_pos,t.begin_pos)}),j(_,"length","size"),t(_,"$line",function(){var t=this;return t.source_buffer.$line_for_position(t.begin_pos)}),_.$alias_method("first_line","line"),t(_,"$column",function(){var t=this;return t.source_buffer.$column_for_position(t.begin_pos)}),t(_,"$last_line",function(){var t=this;return t.source_buffer.$line_for_position(t.end_pos)}),t(_,"$last_column",function(){var t=this;return t.source_buffer.$column_for_position(t.end_pos)}),t(_,"$column_range",function(){var n=this;return v(n.$line(),n.$last_line())&&n.$raise(w("RangeError"),""+n.$inspect()+" spans more than one line"),e.Range.$new(n.$column(),n.$last_column(),!0)}),t(_,"$source_line",function(){var t=this;return t.source_buffer.$source_line(t.$line())}),t(_,"$source",function(){var t=this;return t.source_buffer.$slice(t.begin_pos,d(t.end_pos,t.begin_pos))}),t(_,"$is?",function(){var o=this,n=h(arguments),s=n;return s["$include?"](o.$source())},-1),t(_,"$to_a",function(){var n=this;return e.Range.$new(n.begin_pos,n.end_pos,!0).$to_a()}),t(_,"$to_range",function(){var n=this;return e.Range.$new(n.$begin_pos(),n.$end_pos(),!0)}),t(_,"$to_s",function(){var n=this,a=s,r=s,i=n.source_buffer.$decompose_position(n.begin_pos),t=f(i);return a=t[0]==null?s:t[0],r=t[1]==null?s:t[1],i,[n.source_buffer.$name(),a,o(r,1)].$join(":")}),t(_,"$with",function(t){var n,s,o=this;return t=c(t),n=i(t,"begin_pos"),n==null&&(n=o.begin_pos),s=i(t,"end_pos"),s==null&&(s=o.end_pos),w("Range").$new(o.source_buffer,n,s)},-1),t(_,"$adjust",function(t){var n,s,a=this;return t=c(t),n=i(t,"begin_pos"),n==null&&(n=0),s=i(t,"end_pos"),s==null&&(s=0),w("Range").$new(a.source_buffer,o(a.begin_pos,n),o(a.end_pos,s))},-1),t(_,"$resize",function(t){var n=this;return n.$with(new Map([["end_pos",o(n.begin_pos,t)]]))}),t(_,"$join",function(t){var n=this;return w("Range").$new(n.source_buffer,[n.begin_pos,t.$begin_pos()].$min(),[n.end_pos,t.$end_pos()].$max())}),t(_,"$intersect",function(t){var o=this;return n(o["$disjoint?"](t))?s:w("Range").$new(o.source_buffer,[o.begin_pos,t.$begin_pos()].$max(),[o.end_pos,t.$end_pos()].$min())}),t(_,"$disjoint?",function(t){var o=this,i=s;return n(o["$empty?"]())&&n(t["$empty?"]())?o.begin_pos["$!="](t.$begin_pos()):n(i=r(o.begin_pos,t.$end_pos()))?i:r(t.$begin_pos(),o.end_pos)}),t(_,"$overlaps?",function(t){var n=this;return n["$disjoint?"](t)["$!"]()}),t(_,"$contains?",function(t){var s=this;return r(o(t.$begin_pos()["$<=>"](s.begin_pos),s.end_pos["$<=>"](t.$end_pos())),n(t["$empty?"]())?2:1)}),t(_,"$contained?",function(t){var n=this;return t["$contains?"](n)}),t(_,"$crossing?",function(t){var s=this;return!!n(s["$overlaps?"](t))&&p(s.begin_pos["$<=>"](t.$begin_pos()),s.end_pos["$<=>"](t.$end_pos()))["$=="](1)}),t(_,"$empty?",function(){var t=this;return t.begin_pos["$=="](t.end_pos)}),t(_,"$<=>",function(t){var o=this,i=s;return n(t["$is_a?"](a(a(a("Parser"),"Source"),"Range")))&&g(o.source_buffer,t.$source_buffer())?n(i=o.begin_pos["$<=>"](t.$begin_pos())["$nonzero?"]())?i:o.end_pos["$<=>"](t.$end_pos()):s}),_.$alias_method("eql?","=="),t(_,"$hash",function(){var t=this;return[t.source_buffer,t.begin_pos,t.end_pos].$hash()}),t(_,"$inspect",function(){var t=this;return"#<Parser::Source::Range "+t.source_buffer.$name()+" "+t.begin_pos+"..."+t.end_pos+">"})}(_[0],null,_)}(_[0],_)}(l[0],l)},Opal.modules["parser/source/comment"]=function(e){var a=e.module,c=e.klass,s=e.defs,t=e.def,o=e.truthy,r=[],n=e.nil,i=e.$$$;return e.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(r,l){var u=a(r,"Parser"),d=[u].concat(l);return function(r,l){var u=a(r,"Source"),d=[u].concat(l);return function(a,r,l){var d=c(a,r,"Comment"),h=[d].concat(l),u=e.$r(h),m=d.$$prototype;return m.location=n,d.$attr_reader("text"),d.$attr_reader("location"),d.$alias_method("loc","location"),s(d,"$associate",function(t,s){var o=n,o=u("Associator").$new(t,s);return o.$associate()}),s(d,"$associate_locations",function(t,s){var o=n,o=u("Associator").$new(t,s);return o.$associate_locations()}),s(d,"$associate_by_identity",function(t,s){var o=n,o=u("Associator").$new(t,s);return o.$associate_by_identity()}),t(d,"$initialize",function(t){var n=this;return n.location=i(i(u("Parser"),"Source"),"Map").$new(t),n.text=t.$source().$freeze(),n.$freeze()}),t(d,"$type",function(){var t=this;return o(t.$text()["$start_with?"]("#".$freeze()))?"inline":o(t.$text()["$start_with?"]("=begin".$freeze()))?"document":n}),t(d,"$inline?",function(){var t=this;return t.$type()["$=="]("inline")}),t(d,"$document?",function(){var t=this;return t.$type()["$=="]("document")}),t(d,"$==",function(t){var a=this,s=n;return o(s=t["$is_a?"](i(u("Source"),"Comment")))?a.location["$=="](t.$location()):s}),t(d,"$inspect",function(){var t=this;return"#<Parser::Source::Comment "+t.location.$expression().$to_s()+" "+t.$text().$inspect()+">"})}(d[0],null,d)}(d[0],d)}(r[0],r)},Opal.modules["parser/source/comment/associator"]=function(e){var d=e.module,m=e.klass,s=e.def,l=e.const_set,n=e.truthy,o=e.send,a=e.eqeq,r=e.rb_le,h=e.rb_plus,i=e.not,u=[],t=e.nil,c=e.$$$;return e.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(u,f){var g=d(u,"Parser"),p=[g].concat(f);return function(u,f){var g=d(u,"Source"),p=[g].concat(f),v=e.$r(p);return function(d,u,f){var p=m(d,u,"Associator"),b=[p].concat(f),g=e.$r(b),v=p.$$prototype;return v.map_using=v.mapping=v.skip_directives=v.ast=v.current_comment=v.comment_num=v.comments=t,p.$attr_accessor("skip_directives"),s(p,"$initialize",function(t,n){var s=this;return s.ast=t,s.comments=n,s.skip_directives=!0}),s(p,"$associate",function(){var t=this;return t.map_using="eql",t.$do_associate()}),s(p,"$associate_locations",function(){var t=this;return t.map_using="location",t.$do_associate()}),s(p,"$associate_by_identity",function(){var t=this;return t.map_using="identity",t.$do_associate()}),p.$private(),l(b[0],"POSTFIX_TYPES",g("Set")["$[]"]("if","while","while_post","until","until_post","masgn").$freeze()),s(p,"$children_in_source_order",function(s){return n(g("POSTFIX_TYPES")["$include?"](s.$type()))?o(s.$children().$compact(),"sort_by",[],function(n){return n==null&&(n=t),n.$loc().$expression().$begin_pos()}):o(s.$children(),"select",[],function(s){var o=t,i=t;return s==null&&(s=t),n(o=n(i=s["$is_a?"](c(g("AST"),"Node")))?s.$loc():i)?s.$loc().$expression():o})}),s(p,"$do_associate",function(){var s=this;return s.mapping=o(g("Hash"),"new",[],function(n,s){var i;return n==null&&(n=t),s==null&&(s=t),(i=[s,[]],o(n,"[]=",i),i[i.length-1])}),a(s.map_using,"identity")&&s.mapping.$compare_by_identity(),s.comment_num=-1,s.$advance_comment(),n(s.skip_directives)&&s.$advance_through_directives(),n(s.ast)&&s.$visit(s.ast),s.mapping}),s(p,"$visit",function(s){var i=this,a=t;return i.$process_leading_comments(s),n(i.current_comment)?(a=s.$location(),n(r(i.current_comment.$location().$line(),a.$last_line()))||n(a["$is_a?"](c(g("Map"),"Heredoc")))?(o(i.$children_in_source_order(s),"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s.$visit(n)},{$$s:i}),i.$process_trailing_comments(s)):t):t}),s(p,"$process_leading_comments",function(s){var o=this;if(a(s.$type(),"begin"))return t;for(;n(o["$current_comment_before?"](s));)o.$associate_and_advance_comment(s)}),s(p,"$process_trailing_comments",function(t){for(var s=this;n(s["$current_comment_before_end?"](t));)s.$associate_and_advance_comment(t);for(;n(s["$current_comment_decorates?"](t));)s.$associate_and_advance_comment(t)}),s(p,"$advance_comment",function(){var t=this;return t.comment_num=h(t.comment_num,1),t.current_comment=t.comments["$[]"](t.comment_num)}),s(p,"$current_comment_before?",function(n){var s=this,o=t,a=t;return!i(s.current_comment)&&(o=s.current_comment.$location().$expression(),a=n.$location().$expression(),r(o.$end_pos(),a.$begin_pos()))}),s(p,"$current_comment_before_end?",function(n){var s=this,o=t,a=t;return!i(s.current_comment)&&(o=s.current_comment.$location().$expression(),a=n.$location().$expression(),r(o.$end_pos(),a.$end_pos()))}),s(p,"$current_comment_decorates?",function(t){var n=this;return!i(n.current_comment)&&n.current_comment.$location().$line()["$=="](t.$location().$last_line())}),s(p,"$associate_and_advance_comment",function(n){var s=this,o=t,o=a(s.map_using,"location")?n.$location():n;return s.mapping["$[]"](o)["$<<"](s.current_comment),s.$advance_comment()}),l(b[0],"MAGIC_COMMENT_RE",/^#\s*(-\*-|)\s*(frozen_string_literal|warn_indent|warn_past_scope):.*\1$/),s(p,"$advance_through_directives",function(){var s=this;return n(s.current_comment)&&n(s.current_comment.$text()["$start_with?"]("#!".$freeze()))&&s.$advance_comment(),n(s.current_comment)&&n(s.current_comment.$text()["$=~"](g("MAGIC_COMMENT_RE")))&&s.$advance_comment(),n(s.current_comment)&&n(s.current_comment.$text()["$=~"](c(g("Buffer"),"ENCODING_RE")))?s.$advance_comment():t})}(v("Comment"),null,p)}(p[0],p)}(u[0],u)},Opal.modules["parser/source/rewriter"]=function(e){var h=e.module,v=e.klass,i=e.send,u=e.gvars,n=e.def,o=e.rb_minus,r=e.rb_plus,s=e.truthy,l=e.not,d=e.neqeq,c=e.rb_le,f=e.rb_ge,p=e.rb_lt,g=e.const_set,m=[],t=e.nil,a=e.$$$;return e.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(m,b){var y=h(m,"Parser"),j=[y].concat(b);return function(m,b){var y=h(m,"Source"),j=[y].concat(b);return function(h,m,b){var j=v(h,m,"Rewriter"),w=[j].concat(b),y=e.$r(w),_=j.$$prototype;return _.diagnostics=_.insert_before_multi_order=_.insert_after_multi_order=_.source_buffer=_.queue=_.clobber=_.insertions=_.pending_queue=_.pending_clobber=_.pending_insertions=t,j.$attr_reader("source_buffer"),j.$attr_reader("diagnostics"),n(j,"$initialize",function(n){var s=this;return s.$class().$warn_of_deprecation(),s.diagnostics=a(y("Diagnostic"),"Engine").$new(),s.diagnostics["$consumer="](i(s,"lambda",[],function(n){return u.stderr==null&&(u.stderr=t),n==null&&(n=t),u.stderr.$puts(n.$render())})),s.source_buffer=n,s.queue=[],s.clobber=0,s.insertions=0,s.insert_before_multi_order=0,s.insert_after_multi_order=0,s.pending_queue=t,s.pending_clobber=t,s.pending_insertions=t}),n(j,"$remove",function(t){var n=this;return n.$append(a(y("Rewriter"),"Action").$new(t,"".$freeze()))}),n(j,"$insert_before",function(t,n){var s=this;return s.$append(a(y("Rewriter"),"Action").$new(t.$begin(),n))}),n(j,"$wrap",function(t,n,s){var o=this;return o.$append(a(y("Rewriter"),"Action").$new(t.$begin(),n)),o.$append(a(y("Rewriter"),"Action").$new(t.$end(),s))}),n(j,"$insert_before_multi",function(t,n){var s=this;return s.insert_before_multi_order=o(s.insert_before_multi_order,1),s.$append(a(y("Rewriter"),"Action").$new(t.$begin(),n,!0,s.insert_before_multi_order))}),n(j,"$insert_after",function(t,n){var s=this;return s.$append(a(y("Rewriter"),"Action").$new(t.$end(),n))}),n(j,"$insert_after_multi",function(t,n){var s=this;return s.insert_after_multi_order=r(s.insert_after_multi_order,1),s.$append(a(y("Rewriter"),"Action").$new(t.$end(),n,!0,s.insert_after_multi_order))}),n(j,"$replace",function(t,n){var s=this;return s.$append(a(y("Rewriter"),"Action").$new(t,n))}),n(j,"$process",function(){var a=this,c=t,l=t;return s(a["$in_transaction?"]())&&a.$raise("Do not call "+a.$class()+"#"+"process"+" inside a transaction"),c=0,l=a.source_buffer.$source().$dup(),i(a.queue.$sort(),"each",[],function(s){var i=t,a=t;return s==null&&(s=t),i=r(s.$range().$begin_pos(),c),a=r(i,s.$range().$length()),l["$[]="](e.Range.$new(i,a,!0),s.$replacement()),c=r(c,o(s.$replacement().$length(),s.$range().$length()))}),l}),n(j,"$transaction",function n(){var i=n.$$p||t,o=this;return n.$$p=null,function(){try{return i!==t||o.$raise(""+o.$class()+"#"+"transaction"+" requires block"),s(o["$in_transaction?"]())&&o.$raise("Nested transaction is not supported"),o.pending_queue=o.queue.$dup(),o.pending_clobber=o.clobber,o.pending_insertions=o.insertions,e.yieldX(i,[]),o.queue=o.pending_queue,o.clobber=o.pending_clobber,o.insertions=o.pending_insertions,o}finally{o.pending_queue=t,o.pending_clobber=t,o.pending_insertions=t}}()}),j.$private(),n(j,"$append",function(n){var o=this,a=t,c=t,r=t,d=t,a=n.$range();if(s(a["$empty?"]())){if(s(n.$replacement()["$empty?"]()))return o;l(n["$allow_multiple_insertions?"]())&&s(c=o["$clobbered_insertion?"](a))&&o.$raise_clobber_error(n,[c]),o.$record_insertion(a),s(r=o["$adjacent_updates?"](a))?(c=i(r,"find",[],function e(o){var r=e.$$s==null?this:e.$$s,i=t;return o==null&&(o=t),s(i=o.$range()["$overlaps?"](a))?r["$replace_compatible_with_insertion?"](o,n)["$!"]():i},{$$s:o}),s(c)&&o.$raise_clobber_error(n,[c]),o["$merge_actions!"](n,r)):o.$active_queue()["$<<"](n)}else s(d=o["$adjacent_insertions?"](a))&&i(d,"each",[],function e(o){var i=e.$$s==null?this:e.$$s;return o==null&&(o=t),s(a["$overlaps?"](o.$range()))&&l(i["$replace_compatible_with_insertion?"](n,o))?i.$raise_clobber_error(n,[o]):(n=i.$merge_actions(n,[o]),i.$active_queue().$delete(o))},{$$s:o}),s(r=o["$adjacent_updates?"](a))?s(o["$can_merge?"](n,r))?(o.$record_replace(a),o["$merge_actions!"](n,r)):o.$raise_clobber_error(n,r):(o.$record_replace(a),o.$active_queue()["$<<"](n));return o}),n(j,"$record_insertion",function(t){var n,s=this;return n=[s.$active_insertions()["$|"](1["$<<"](t.$begin_pos()))],i(s,"active_insertions=",n),n[n.length-1]}),n(j,"$record_replace",function(t){var n,s=this;return n=[s.$active_clobber()["$|"](s.$clobbered_position_mask(t))],i(s,"active_clobber=",n),n[n.length-1]}),n(j,"$clobbered_position_mask",function(t){return o(1["$<<"](t.$size()),1)["$<<"](t.$begin_pos())}),n(j,"$adjacent_position_mask",function(t){return o(1["$<<"](r(t.$size(),2)),1)["$<<"](o(t.$begin_pos(),1))}),n(j,"$adjacent_insertion_mask",function(t){return o(1["$<<"](r(t.$size(),1)),1)["$<<"](t.$begin_pos())}),n(j,"$clobbered_insertion?",function(n){var a=this,o=t,o=n.$begin_pos();return d(a.$active_insertions()["$&"](1["$<<"](o)),0)?i(a.$active_queue(),"find",[],function(n){var i=t;return n==null&&(n=t),s(i=c(n.$range().$begin_pos(),o))?c(o,n.$range().$end_pos()):i}):t}),n(j,"$adjacent_insertions?",function(n){var o=this,a=t;return d(o.$active_insertions()["$&"](o.$adjacent_insertion_mask(n)),0)?(a=i(o.$active_queue(),"select",[],function e(o){var a=e.$$s==null?this:e.$$s,i=t;return o==null&&(o=t),s(i=o.$range()["$empty?"]())?a["$adjacent?"](n,o.$range()):i},{$$s:o}),s(a["$empty?"]())?t:a):t}),n(j,"$adjacent_updates?",function(n){var s=this;return d(s.$active_clobber()["$&"](s.$adjacent_position_mask(n)),0)?i(s.$active_queue(),"select",[],function e(s){var o=e.$$s==null?this:e.$$s;return s==null&&(s=t),o["$adjacent?"](n,s.$range())},{$$s:s}):t}),n(j,"$replace_compatible_with_insertion?",function(n,i){var a=t,r=t,c=t;return s(a=s(r=f(o(n.$replacement().$length(),n.$range().$size()),i.$range().$size()))?c=o(i.$range().$begin_pos(),n.$range().$begin_pos()):r)?n.$replacement()["$[]"](c,i.$replacement().$length())["$=="](i.$replacement()):a}),n(j,"$can_merge?",function(n,a){var r=t,r=n.$range();return i(a,"all?",[],function(i){var a=t,c=t,l=t,u=t,h=t,m=t,d=t,f=t;return i==null&&(i=t),a=r.$intersect(i.$range()),!!s(a["$nil?"]())||(c=o(a.$begin_pos(),r.$begin_pos()),l=o(a.$begin_pos(),i.$range().$begin_pos()),u=[o(i.$range().$length(),l),o(i.$replacement().$length(),l)].$max(),h=[o(r.$length(),c),o(n.$replacement().$length(),c)].$max(),m=s(d=n.$replacement()["$[]"](c,u))?d:"".$freeze(),f=s(d=i.$replacement()["$[]"](l,h))?d:"".$freeze(),m["$=="](f))})}),n(j,"$merge_actions",function(n,s){var c=this,o=t,r=t,o=i(s.$push(n),"sort_by",[],function(n){return n==null&&(n=t),[n.$range().$begin_pos(),n.$range().$end_pos()]}),r=o.$first().$range().$join(i(o,"max_by",[],function(n){return n==null&&(n=t),n.$range().$end_pos()}).$range());return a(y("Rewriter"),"Action").$new(r,c.$merge_replacements(o))}),n(j,"$merge_actions!",function(n,s){var o=this,i=t,i=o.$merge_actions(n,s);return o.$active_queue().$delete(n),o.$replace_actions(s,i)}),n(j,"$merge_replacements",function(a){var d=t,c=t,d="".$dup(),c=t;return i(a,"each",[],function(i){var u=t,a=t;return i==null&&(i=t),l(c)||s(i.$range()["$disjoint?"](c.$range()))?d["$<<"](i.$replacement()):(u=[r(c.$range().$begin_pos(),c.$replacement().$length()),c.$range().$end_pos()].$max(),a=o(u,i.$range().$begin_pos()),s(p(a,i.$replacement().$size()))&&d["$<<"](i.$replacement()["$[]"](e.Range.$new(a,-1,!1)))),c=i}),d}),n(j,"$replace_actions",function(n,s){var o=this;return i(n,"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s.$active_queue().$delete(n)},{$$s:o}),o.$active_queue()["$<<"](s)}),n(j,"$raise_clobber_error",function(n,s){var i=this,o=t,o=y("Diagnostic").$new("error","invalid_action",new Map([["action",n]]),n.$range());return i.diagnostics.$process(o),o=y("Diagnostic").$new("note","clobbered",new Map([["action",s["$[]"](0)]]),s["$[]"](0).$range()),i.diagnostics.$process(o),i.$raise(y("ClobberingError"),"Parser::Source::Rewriter detected clobbering")}),n(j,"$in_transaction?",function(){var t=this;return t.pending_queue["$nil?"]()["$!"]()}),n(j,"$active_queue",function(){var n=this,o=t;return s(o=n.pending_queue)?o:n.queue}),n(j,"$active_clobber",function(){var n=this,o=t;return s(o=n.pending_clobber)?o:n.clobber}),n(j,"$active_insertions",function(){var n=this,o=t;return s(o=n.pending_insertions)?o:n.insertions}),n(j,"$active_clobber=",function(t){var n=this;return s(n.pending_clobber)?n.pending_clobber=t:n.clobber=t}),n(j,"$active_insertions=",function(t){var n=this;return s(n.pending_insertions)?n.pending_insertions=t:n.insertions=t}),n(j,"$adjacent?",function(n,o){var i=t;return s(i=c(n.$begin_pos(),o.$end_pos()))?c(o.$begin_pos(),n.$end_pos()):i}),g(w[0],"DEPRECATION_WARNING",["Parser::Source::Rewriter is deprecated.","Please update your code to use Parser::Source::TreeRewriter instead"].$join(`
`).$freeze()),j.$extend(y("Deprecation"))}(j[0],null,j)}(j[0],j)}(m[0],m)},Opal.modules["parser/source/rewriter/action"]=function(e){var s=e.module,r=e.klass,t=e.def,n=e.truthy,o=e.eqeq,i=[],a=e.nil;return e.add_stubs("include,attr_reader,alias_method,freeze,<=>,begin_pos,range,zero?,order,empty?,==,length,inspect"),function(i,c){var d=s(i,"Parser"),l=[d].concat(c);return function(i,c){var d=s(i,"Source"),l=[d].concat(c),u=e.$r(l);return function(s,i,c){var l=r(s,i,"Action"),u=[l].concat(c),h=e.$r(u),d=l.$$prototype;return d.replacement=d.range=a,l.$include(h("Comparable")),l.$attr_reader("range","replacement","allow_multiple_insertions","order"),l.$alias_method("allow_multiple_insertions?","allow_multiple_insertions"),t(l,"$initialize",function(t,n,s,o){var i=this;return n==null&&(n=""),s==null&&(s=!1),o==null&&(o=0),i.range=t,i.replacement=n,i.allow_multiple_insertions=s,i.order=o,i.$freeze()},-2),t(l,"$<=>",function(t){var o=this,s=a,s=o.$range().$begin_pos()["$<=>"](t.$range().$begin_pos());return n(s["$zero?"]())?o.$order()["$<=>"](t.$order()):s}),t(l,"$to_s",function(){var t=this;return o(t.range.$length(),0)&&n(t.replacement["$empty?"]())?"do nothing":o(t.range.$length(),0)?"insert "+t.replacement.$inspect():n(t.replacement["$empty?"]())?"remove "+t.range.$length()+" character(s)":"replace "+t.range.$length()+" character(s) with "+t.replacement.$inspect()})}(u("Rewriter"),null,l)}(l[0],l)}(i[0],i)},Opal.modules["parser/source/tree_rewriter"]=function(e){var m=e.module,x=e.klass,c=e.ensure_kwargs,i=e.hash_get,O=e.lambda,l=e.gvars,n=e.def,a=e.eqeq,s=e.truthy,u=e.rb_plus,h=e.send,g=e.return_ivar,r=e.const_set,f=e.eqeqeq,w=e.range,d=e.to_ary,v=e.rb_minus,b=e.rb_gt,j=e.rb_lt,y=e.kwrestargs,_=e.slice,p=[],t=e.nil,o=e.$$$;return e.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(p,C){var k=m(p,"Parser"),E=[k].concat(C);return function(p,C){var k=m(p,"Source"),E=[k].concat(C);return function(m,p,C){var E=x(m,p,"TreeRewriter"),S=[E].concat(C),k=e.$r(S),A=E.$$prototype;return A.diagnostics=A.source_buffer=A.enforcer=A.action_root=A.in_transaction=A.policy=t,E.$attr_reader("source_buffer"),E.$attr_reader("diagnostics"),n(E,"$initialize",function(n,s){var r,d,u,a=this,h=t;return s=c(s),r=i(s,"crossing_deletions"),r==null&&(r="accept"),d=i(s,"different_replacements"),d==null&&(d="accept"),u=i(s,"swallowed_insertions"),u==null&&(u="accept"),a.diagnostics=o(k("Diagnostic"),"Engine").$new(),a.diagnostics["$consumer="](O(function(n){return l.stderr==null&&(l.stderr=t),n==null&&(n=t),l.stderr.$puts(n.$render())})),a.source_buffer=n,a.in_transaction=!1,a.policy=new Map([["crossing_deletions",r],["different_replacements",d],["swallowed_insertions",u]]).$freeze(),a.$check_policy_validity(),a.enforcer=a.$method("enforce_policy"),h=a.source_buffer.$source_range().$adjust(new Map([["begin_pos",-1],["end_pos",1]])),a.action_root=o(k("TreeRewriter"),"Action").$new(h,a.enforcer)},-2),n(E,"$empty?",function(){var t=this;return t.action_root["$empty?"]()}),n(E,"$merge!",function(t){var n=this;return a(n.$source_buffer(),t.$source_buffer())||n.$raise("TreeRewriter are not for the same source_buffer"),n.action_root=n.action_root.$combine(t.$action_root()),n}),n(E,"$merge",function(t){var n=this;return n.$dup()["$merge!"](t)}),n(E,"$import!",function(n,a){var l,r=this,d=t,h=t,m=t;return a=c(a),l=i(a,"offset"),l==null&&(l=0),s(n["$empty?"]())?r:(d=n.$action_root().$contract(),h=o(o(o("Parser"),"Source"),"Range").$new(r.source_buffer,u(d.$range().$begin_pos(),l),u(d.$range().$end_pos(),l)),r.$check_range_validity(h),m=d.$moved(r.source_buffer,l),r.action_root=r.action_root.$combine(m),r)},-2),n(E,"$replace",function(t,n){var s=this;return s.$combine(t,new Map([["replacement",n]]))}),n(E,"$wrap",function(t,n,s){var o=this;return o.$combine(t,new Map([["insert_before",n.$to_s()],["insert_after",s.$to_s()]]))}),n(E,"$remove",function(t){var n=this;return n.$replace(t,"".$freeze())}),n(E,"$insert_before",function(n,s){var o=this;return o.$wrap(n,s,t)}),n(E,"$insert_after",function(n,s){var o=this;return o.$wrap(n,t,s)}),n(E,"$process",function(){var a=this,s=t,o=t,i=t,s=a.source_buffer.$source(),o=[],i=0;return h(a.action_root.$ordered_replacements(),"each",[],function(a,r){return a==null&&(a=t),r==null&&(r=t),o["$<<"](s["$[]"](e.Range.$new(i,a.$begin_pos(),!0)))["$<<"](r),i=a.$end_pos()}),o["$<<"](s["$[]"](e.Range.$new(i,s.$length(),!0))),o.$join()}),n(E,"$as_replacements",function(){var t=this;return t.action_root.$ordered_replacements()}),n(E,"$as_nested_actions",function(){var t=this;return t.action_root.$nested_actions()}),n(E,"$transaction",function n(){var a=n.$$p||t,o=this,r=t,i=t;return n.$$p=null,function(){try{return a!==t||o.$raise(""+o.$class()+"#"+"transaction"+" requires block"),r=o.in_transaction,o.in_transaction=!0,i=o.action_root,e.yieldX(a,[]),i=t,o}finally{s(i)?o.action_root=i:t,o.in_transaction=r}}()}),n(E,"$in_transaction?",g("in_transaction")),n(E,"$inspect",function(){var t=this;return"#<"+t.$class()+" "+t.$source_buffer().$name()+": "+t.$action_summary()+">"}),n(E,"$insert_before_multi",function(t,n){var s=this;return s.$class().$warn_of_deprecation(),s.$insert_before(t,n)}),n(E,"$insert_after_multi",function(t,n){var s=this;return s.$class().$warn_of_deprecation(),s.$insert_after(t,n)}),r(S[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(`
`).$freeze()),E.$extend(k("Deprecation")),E.$protected(),E.$attr_reader("action_root"),E.$private(),n(E,"$action_summary",function(){var c=this,n=t,r=t,o=t,i=t,n=c.$as_replacements();return f(0,r=n.$size())?"empty":(f(w(1,3,!1),r)||(n=n.$first(3),o="…"),i=h(n,"map",[],function(n){var o,c,i=t,r=t;return n==null&&(n=t),c=n,o=d(c),i=o[0]==null?t:o[0],r=o[1]==null?t:o[1],c,s(r["$empty?"]())?"-"+i.$to_range():a(i.$size(),0)?"+"+r.$inspect()+"@"+i.$begin_pos():"^"+r.$inspect()+"@"+i.$to_range()},{$$has_top_level_mlhs_arg:!0}),s(o)&&i["$<<"](o),i.$join(", "))}),r(S[0],"ACTIONS",["accept","warn","raise"].$freeze()),n(E,"$check_policy_validity",function(){var o=this,n=t,n=v(o.policy.$values(),k("ACTIONS"));return s(n["$empty?"]())?t:o.$raise(k("ArgumentError"),"Invalid policy: "+n.$join(", "))}),n(E,"$combine",function(s,i){var a=this,r=t;return s=a.$check_range_validity(s),r=o(k("TreeRewriter"),"Action").$new(s,a.enforcer,e.to_hash(i)),a.action_root=a.action_root.$combine(r),a}),n(E,"$check_range_validity",function(t){var n=this;return(s(j(t.$begin_pos(),0))||s(b(t.$end_pos(),n.source_buffer.$source().$size())))&&n.$raise(k("IndexError"),"The range "+t.$to_range()+" is outside the bounds of the source"),t}),n(E,"$enforce_policy",function n(o){var c=n.$$p||t,i=this,r=t;return n.$$p=null,a(i.policy["$[]"](o),"accept")?t:s(r=e.yieldX(c,[]))?i.$trigger_policy(o,e.to_hash(r)):t}),r(S[0],"POLICY_TO_LEVEL",new Map([["warn","warning"],["raise","error"]]).$freeze()),n(E,"$trigger_policy",function(n,r){var l,u,m,g,v,h=this,f=t,b=t,p=t,j=t;return r=c(r),l=i(r,"range"),l==null&&(l=h.$raise()),u=i(r,"conflict"),u==null&&(u=t),g=y(r,{range:!0,conflict:!0}),f=s(b=h.policy["$[]"](n))?b:"raise",p=o(k("Parser"),"Diagnostic").$new(k("POLICY_TO_LEVEL")["$[]"](f),n,g,l),h.diagnostics.$process(p),s(u)&&(v=u,m=d(v),l=m[0]==null?t:m[0],j=_(m,1),v,p=o(k("Parser"),"Diagnostic").$new(k("POLICY_TO_LEVEL")["$[]"](f),""+n+"_conflict",g,l,j),h.diagnostics.$process(p)),a(f,"raise")?h.$raise(o(k("Parser"),"ClobberingError"),"Parser::Source::TreeRewriter detected clobbering"):t},-2)}(E[0],null,E)}(E[0],E)}(p[0],p)},Opal.modules["parser/source/tree_rewriter/action"]=function(e){var m=e.module,y=e.klass,h=e.ensure_kwargs,i=e.hash_get,s=e.def,n=e.truthy,o=e.send,p=e.not,l=e.rb_plus,c=e.eqeq,a=e.to_a,f=e.rb_gt,r=e.rb_minus,g=e.rb_ge,v=e.rb_le,_=e.rb_lt,j=e.slice,b=e.neqeq,u=[],t=e.nil,d=e.$$$;return e.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(u,w){var x=m(u,"Parser"),O=[x].concat(w);return function(u,w){var O=m(u,"Source"),x=[O].concat(w),C=e.$r(x);return function(u,m){var w=y(u,m,"Action"),O=w.$$prototype;return O.insert_before=O.insert_after=O.children=O.replacement=O.range=O.enforcer=t,w.$attr_reader("range","replacement","insert_before","insert_after"),s(w,"$initialize",function(n,s,o){var a,c,l,d,u,r=this;return o=h(o),c=i(o,"insert_before"),c==null&&(c=""),l=i(o,"replacement"),l==null&&(l=t),d=i(o,"insert_after"),d==null&&(d=""),u=i(o,"children"),u==null&&(u=[]),a=[n,s,u.$freeze(),c.$freeze(),l,d.$freeze()],r.range=a[0],r.enforcer=a[1],r.children=a[2],r.insert_before=a[3],r.replacement=a[4],r.insert_after=a[5],a,r.$freeze()},-3),s(w,"$combine",function(t){var s=this;return n(t["$empty?"]())?s:s.$do_combine(t)}),s(w,"$empty?",function(){var s=this,a=t,o=t,i=t;return n(a=n(o=n(i=s.insert_before["$empty?"]())?s.insert_after["$empty?"]():i)?s.children["$empty?"]():o)?n(o=s.replacement["$=="](t))?o:n(i=s.replacement["$empty?"]())?s.range["$empty?"]():i:a}),s(w,"$ordered_replacements",function(){var s=this,i=t,i=[];return n(s.insert_before["$empty?"]())||i["$<<"]([s.range.$begin(),s.insert_before]),n(s.replacement)&&i["$<<"]([s.range,s.replacement]),i.$concat(o(s.children,"flat_map",[],"ordered_replacements".$to_proc())),n(s.insert_after["$empty?"]())||i["$<<"]([s.range.$end(),s.insert_after]),i}),s(w,"$nested_actions",function(){var s=this,i=t,i=[];return(p(s.insert_before["$empty?"]())||p(s.insert_after["$empty?"]()))&&i["$<<"](["wrap",s.range,s.insert_before,s.insert_after]),n(s.replacement)&&i["$<<"](["replace",s.range,s.replacement]),i.$concat(o(s.children,"flat_map",[],"nested_actions".$to_proc()))}),s(w,"$insertion?",function(){var s=this,i=t,o=t;return n(i=n(o=s.$insert_before()["$empty?"]()["$!"]())?o:s.$insert_after()["$empty?"]()["$!"]())?i:n(o=s.$replacement())?s.$replacement()["$empty?"]()["$!"]():o}),s(w,"$contract",function(){var s=this,o=t;return n(s["$empty?"]())&&s.$raise("Empty actions can not be contracted"),n(s["$insertion?"]())?s:(o=s.range.$with(new Map([["begin_pos",s.$children().$first().$range().$begin_pos()],["end_pos",s.$children().$last().$range().$end_pos()]])),s.$with(new Map([["range",o]])))}),s(w,"$moved",function(n,s){var i=this,a=t,a=d(d(d("Parser"),"Source"),"Range").$new(n,l(i.range.$begin_pos(),s),l(i.range.$end_pos(),s));return i.$with(new Map([["range",a],["children",o(i.$children(),"map",[],function(o){return o==null&&(o=t),o.$moved(n,s)})]]))}),w.$protected(),w.$attr_reader("children"),s(w,"$with",function(t){var o,a,r,c,l,d,s=this;return t=h(t),r=i(t,"range"),r==null&&(r=s.range),c=i(t,"enforcer"),c==null&&(c=s.enforcer),o=i(t,"children"),o==null&&(o=s.children),l=i(t,"insert_before"),l==null&&(l=s.insert_before),a=i(t,"replacement"),a==null&&(a=s.replacement),d=i(t,"insert_after"),d==null&&(d=s.insert_after),n(a)&&(o=s.$swallow(o)),s.$class().$new(r,c,new Map([["children",o],["insert_before",l],["replacement",a],["insert_after",d]]))},-1),s(w,"$do_combine",function(t){var n=this;return c(t.$range(),n.range)?n.$merge(t):n.$place_in_hierarchy(t)}),s(w,"$place_in_hierarchy",function(s){var i=this,o=t,r=t,o=i.$analyse_hierarchy(s);return n(o["$[]"]("fusible"))?i.$fuse_deletions(s,o["$[]"]("fusible"),[].concat(a(o["$[]"]("sibbling_left"))).concat(a(o["$[]"]("child"))).concat(a(o["$[]"]("sibbling_right")))):(r=n(o["$[]"]("parent"))?o["$[]"]("parent").$do_combine(s):n(o["$[]"]("child"))?s.$with(new Map([["children",o["$[]"]("child")],["enforcer",i.enforcer]])).$combine_children(s.$children()):s,i.$with(new Map([["children",[].concat(a(o["$[]"]("sibbling_left"))).concat([r]).concat(a(o["$[]"]("sibbling_right")))]])))}),s(w,"$combine_children",function(n){var s=this;return o(n,"inject",[s],function(n,s){return n==null&&(n=t),s==null&&(s=t),n.$place_in_hierarchy(s)})}),s(w,"$fuse_deletions",function(n,s,i){var d=this,r=t,c=t,l=t,r=d.$with(new Map([["children",i]])),c=o([n].concat(a(s)),"map",[],"range".$to_proc()).$inject("join"),l=n.$with(new Map([["range",c]]));return r.$do_combine(l)}),s(w,"$bsearch_child_index",function s(i){var l=s.$$p||t,r=this,a=t,c=t;return s.$$p=null,i==null&&(i=0),a=r.children.$size(),n(c=o(e.Range.$new(i,a,!0),"bsearch",[],function n(s){var o=n.$$s==null?this:n.$$s;return o.children==null&&(o.children=t),s==null&&(s=t),e.yield1(l,o.children["$[]"](s))},{$$s:r}))?c:a},-1),s(w,"$analyse_hierarchy",function(i){var a=this,h=t,d=t,w=t,u=t,p=t,b=t,j=t,y=t,m=t,O=t,h=i.$range(),d=o(a,"bsearch_child_index",[],function(n){return n==null&&(n=t),f(n.$range().$end_pos(),h.$begin_pos())}),w=c(d,0)?0:r(d,1),u=o(a,"bsearch_child_index",[w],function(n){return n==null&&(n=t),g(n.$range().$begin_pos(),h.$end_pos())}),p=r(u,d);switch(p.valueOf()){case 0:break;case-1:d=r(d,1),u=l(u,1),b=a.children["$[]"](d);break;default:j=a.children["$[]"](d).$range().$begin_pos()["$<=>"](h.$begin_pos()),y=a.children["$[]"](r(u,1)).$range().$end_pos()["$<=>"](h.$end_pos()),c(p,1)&&n(v(j,0))&&n(g(y,0))?b=a.children["$[]"](d):(m=a.children["$[]"](e.Range.$new(d,u,!0)),O=a.$check_fusible(i,n(_(j,0))?m.$shift():t,n(f(y,0))?m.$pop():t))}return new Map([["parent",b],["sibbling_left",a.children["$[]"](e.Range.$new(0,d,!0))],["sibbling_right",a.children["$[]"](e.Range.$new(u,a.children.$size(),!0))],["fusible",O],["child",m]])}),s(w,"$check_fusible",function(s){var c=this,r=j(arguments,1),a=r;return a["$compact!"](),n(a["$empty?"]())?t:(o(a,"each",[],function e(i){var a=e.$$s==null?this:e.$$s,r=t;return a.enforcer==null&&(a.enforcer=t),i==null&&(i=t),r=n(s["$insertion?"]())||n(i["$insertion?"]())?"crossing_insertions":"crossing_deletions",o(a.enforcer,"call",[r],function(){return new Map([["range",s.$range()],["conflict",i.$range()]])})},{$$s:c}),a)},-2),s(w,"$merge",function(s){var o=this,i=t;return o.$call_enforcer_for_merge(s),o.$with(new Map([["insert_before",""+s.$insert_before()+o.$insert_before()],["replacement",n(i=s.$replacement())?i:o.replacement],["insert_after",""+o.$insert_after()+s.$insert_after()]])).$combine_children(s.$children())}),s(w,"$call_enforcer_for_merge",function(s){var i=this;return o(i.enforcer,"call",["different_replacements"],function e(){var o=e.$$s==null?this:e.$$s;return o.replacement==null&&(o.replacement=t),o.range==null&&(o.range=t),n(o.replacement)&&n(s.$replacement())&&b(o.replacement,s.$replacement())?new Map([["range",o.range],["replacement",s.$replacement()],["other_replacement",o.replacement]]):t},{$$s:i})}),s(w,"$swallow",function(s){var i=this;return o(i.enforcer,"call",["swallowed_insertions"],function e(){var i=e.$$s==null?this:e.$$s,a=t;return i.range==null&&(i.range=t),a=o(s,"select",[],"insertion?".$to_proc()),n(a["$empty?"]())?t:new Map([["range",i.range],["conflict",o(a,"map",[],"range".$to_proc())]])},{$$s:i}),[]})}(C("TreeRewriter"),null)}(O[0],O)}(u[0],u)},Opal.modules["parser/source/map"]=function(e){var o=e.module,r=e.klass,i=e.assign_ivar,t=e.def,c=e.send2,l=e.find_super,s=e.send,d=e.truthy,u=e.eqeq,h=e.range,a=[],n=e.nil;return e.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(e,a){var f=o(e,"Parser"),m=[f].concat(a);return function(e,a){var m=o(e,"Source"),f=[m].concat(a);return function(e,o){var a=r(e,o,"Map"),m=a.$$prototype;return m.node=m.expression=n,a.$attr_reader("node"),a.$attr_reader("expression"),t(a,"$initialize",i("expression")),t(a,"$initialize_copy",function e(t){var o=e.$$p||n,s=this;return e.$$p=null,c(s,l(s,"initialize_copy",e,!1,!0),"initialize_copy",[t],o),s.node=n}),t(a,"$node=",function(t){var n=this;return n.node=t,n.$freeze(),n.node}),t(a,"$line",function(){var t=this;return t.expression.$line()}),a.$alias_method("first_line","line"),t(a,"$column",function(){var t=this;return t.expression.$column()}),t(a,"$last_line",function(){var t=this;return t.expression.$last_line()}),t(a,"$last_column",function(){var t=this;return t.expression.$last_column()}),t(a,"$with_expression",function(t){var o=this;return s(o,"with",[],function(s){return s==null&&(s=n),s.$update_expression(t)})}),t(a,"$==",function(t){var o=this,i=n;return d(i=t.$class()["$=="](o.$class()))?s(o.$instance_variables(),"map",[],function e(s){var o=e.$$s==null?this:e.$$s;return s==null&&(s=n),o.$instance_variable_get(s)["$=="](t.$send("instance_variable_get",s))},{$$s:o}).$reduce("&"):i}),t(a,"$to_hash",function(){var t=this;return s(t.$instance_variables(),"inject",[new Map],function e(t,s){var o=e.$$s==null?this:e.$$s;return t==null&&(t=n),s==null&&(s=n),u(s.$to_sym(),"@node")?t:(t["$[]="](s["$[]"](h(1,-1,!1)).$to_sym(),o.$instance_variable_get(s)),t)},{$$s:t})}),a.$protected(),t(a,"$with",function e(){var t=e.$$p||n,o=this;return e.$$p=null,s(o.$dup(),"tap",[],t.$to_proc())}),t(a,"$update_expression",i("expression"))}(f[0],null)}(m[0],m)}(a[0],a)},Opal.modules["parser/source/map/operator"]=function(e){var t=e.module,s=e.klass,o=e.send2,i=e.find_super,a=e.def,n=[],r=e.nil;return e.add_stubs("attr_reader"),function(n,c){var d=t(n,"Parser"),l=[d].concat(c);return function(n,c){var d=t(n,"Source"),u=[d].concat(c),l=e.$r(u);return function(e,t){var n=s(e,t,"Operator");return n.$attr_reader("operator"),a(n,"$initialize",function e(t,n){var a=e.$$p||r,s=this;return e.$$p=null,s.operator=t,o(s,i(s,"initialize",e,!1,!0),"initialize",[n],null)})}(l("Map"),l("Map"))}(l[0],l)}(n[0],n)},Opal.modules["parser/source/map/collection"]=function(e){var t=e.module,s=e.klass,o=e.send2,i=e.find_super,a=e.def,n=[],r=e.nil;return e.add_stubs("attr_reader"),function(n,c){var d=t(n,"Parser"),l=[d].concat(c);return function(n,c){var d=t(n,"Source"),u=[d].concat(c),l=e.$r(u);return function(e,t){var n=s(e,t,"Collection");return n.$attr_reader("begin"),n.$attr_reader("end"),a(n,"$initialize",function e(t,n,s){var a,l=e.$$p||r,c=this;return e.$$p=null,a=[t,n],c.begin=a[0],c.end=a[1],a,o(c,i(c,"initialize",e,!1,!0),"initialize",[s],null)})}(l("Map"),l("Map"))}(l[0],l)}(n[0],n)},Opal.modules["parser/source/map/constant"]=function(e){var n=e.module,i=e.klass,a=e.send2,r=e.find_super,t=e.def,c=e.send,l=e.assign_ivar,s=[],o=e.nil;return e.add_stubs("attr_reader,with,update_operator,protected"),function(s,d){var h=n(s,"Parser"),u=[h].concat(d);return function(s,d){var h=n(s,"Source"),m=[h].concat(d),u=e.$r(m);return function(e,n){var s=i(e,n,"Constant");return s.$attr_reader("double_colon"),s.$attr_reader("name"),s.$attr_reader("operator"),t(s,"$initialize",function e(t,n,s){var i,l=e.$$p||o,c=this;return e.$$p=null,i=[t,n],c.double_colon=i[0],c.name=i[1],i,a(c,r(c,"initialize",e,!1,!0),"initialize",[s],null)}),t(s,"$with_operator",function(t){var n=this;return c(n,"with",[],function(n){return n==null&&(n=o),n.$update_operator(t)})}),s.$protected(),t(s,"$update_operator",l("operator"))}(u("Map"),u("Map"))}(u[0],u)}(s[0],s)},Opal.modules["parser/source/map/variable"]=function(e){var n=e.module,i=e.klass,a=e.send2,r=e.find_super,t=e.def,c=e.send,l=e.assign_ivar,s=[],o=e.nil;return e.add_stubs("attr_reader,with,update_operator,protected"),function(s,d){var h=n(s,"Parser"),u=[h].concat(d);return function(s,d){var h=n(s,"Source"),m=[h].concat(d),u=e.$r(m);return function(e,n){var s=i(e,n,"Variable");return s.$attr_reader("name"),s.$attr_reader("operator"),t(s,"$initialize",function e(t,n){var i=e.$$p||o,s=this;return e.$$p=null,n==null&&(n=t),s.name=t,a(s,r(s,"initialize",e,!1,!0),"initialize",[n],null)},-2),t(s,"$with_operator",function(t){var n=this;return c(n,"with",[],function(n){return n==null&&(n=o),n.$update_operator(t)})}),s.$protected(),t(s,"$update_operator",l("operator"))}(u("Map"),u("Map"))}(u[0],u)}(s[0],s)},Opal.modules["parser/source/map/keyword"]=function(e){var t=e.module,s=e.klass,o=e.send2,i=e.find_super,a=e.def,n=[],r=e.nil;return e.add_stubs("attr_reader"),function(n,c){var d=t(n,"Parser"),l=[d].concat(c);return function(n,c){var d=t(n,"Source"),u=[d].concat(c),l=e.$r(u);return function(e,t){var n=s(e,t,"Keyword");return n.$attr_reader("keyword"),n.$attr_reader("begin"),n.$attr_reader("end"),a(n,"$initialize",function e(t,n,s,a){var l,d=e.$$p||r,c=this;return e.$$p=null,c.keyword=t,l=[n,s],c.begin=l[0],c.end=l[1],l,o(c,i(c,"initialize",e,!1,!0),"initialize",[a],null)})}(l("Map"),l("Map"))}(l[0],l)}(n[0],n)},Opal.modules["parser/source/map/definition"]=function(e){var t=e.module,o=e.klass,i=e.send2,a=e.find_super,r=e.def,n=[],s=e.nil;return e.add_stubs("attr_reader,join"),function(n,c){var d=t(n,"Parser"),l=[d].concat(c);return function(n,c){var d=t(n,"Source"),u=[d].concat(c),l=e.$r(u);return function(e,t){var n=o(e,t,"Definition"),c=n.$$prototype;return c.keyword=c.end=s,n.$attr_reader("keyword"),n.$attr_reader("operator"),n.$attr_reader("name"),n.$attr_reader("end"),r(n,"$initialize",function e(t,n,o,r){var l=e.$$p||s,c=this;return e.$$p=null,c.keyword=t,c.operator=n,c.name=o,c.end=r,i(c,a(c,"initialize",e,!1,!0),"initialize",[c.keyword.$join(c.end)],null)})}(l("Map"),l("Map"))}(l[0],l)}(n[0],n)},Opal.modules["parser/source/map/method_definition"]=function(e){var n=e.module,o=e.klass,i=e.send2,a=e.find_super,r=e.truthy,c=e.def,s=[],t=e.nil;return e.add_stubs("attr_reader,join"),function(s,l){var u=n(s,"Parser"),d=[u].concat(l);return function(s,l){var u=n(s,"Source"),h=[u].concat(l),d=e.$r(h);return function(e,n){var s=o(e,n,"MethodDefinition"),l=s.$$prototype;return l.keyword=t,s.$attr_reader("keyword"),s.$attr_reader("operator"),s.$attr_reader("name"),s.$attr_reader("end"),s.$attr_reader("assignment"),c(s,"$initialize",function e(n,s,o,c,l,d){var m=e.$$p||t,u=this,h=t;return e.$$p=null,u.keyword=n,u.operator=s,u.name=o,u.end=c,u.assignment=l,i(u,a(u,"initialize",e,!1,!0),"initialize",[u.keyword.$join(r(h=c)?h:d)],null)})}(d("Map"),d("Map"))}(d[0],d)}(s[0],s)},Opal.modules["parser/source/map/send"]=function(e){var n=e.module,i=e.klass,a=e.send2,r=e.find_super,t=e.def,c=e.send,l=e.assign_ivar,s=[],o=e.nil;return e.add_stubs("attr_reader,with,update_operator,protected"),function(s,d){var h=n(s,"Parser"),u=[h].concat(d);return function(s,d){var h=n(s,"Source"),m=[h].concat(d),u=e.$r(m);return function(e,n){var s=i(e,n,"Send");return s.$attr_reader("dot"),s.$attr_reader("selector"),s.$attr_reader("operator"),s.$attr_reader("begin"),s.$attr_reader("end"),t(s,"$initialize",function e(t,n,s,i,c){var d,u=e.$$p||o,l=this;return e.$$p=null,l.dot=t,l.selector=n,d=[s,i],l.begin=d[0],l.end=d[1],d,a(l,r(l,"initialize",e,!1,!0),"initialize",[c],null)}),t(s,"$with_operator",function(t){var n=this;return c(n,"with",[],function(n){return n==null&&(n=o),n.$update_operator(t)})}),s.$protected(),t(s,"$update_operator",l("operator"))}(u("Map"),u("Map"))}(u[0],u)}(s[0],s)},Opal.modules["parser/source/map/index"]=function(e){var s=e.module,i=e.klass,a=e.send2,r=e.find_super,t=e.def,c=e.send,l=e.assign_ivar,o=[],n=e.nil;return e.add_stubs("attr_reader,with,update_operator,protected"),function(o,d){var h=s(o,"Parser"),u=[h].concat(d);return function(o,d){var h=s(o,"Source"),m=[h].concat(d),u=e.$r(m);return function(e,s){var o=i(e,s,"Index");return o.$attr_reader("begin"),o.$attr_reader("end"),o.$attr_reader("operator"),t(o,"$initialize",function e(t,s,o){var c,l=e.$$p||n,i=this;return e.$$p=null,c=[t,s],i.begin=c[0],i.end=c[1],c,i.operator=n,a(i,r(i,"initialize",e,!1,!0),"initialize",[o],null)}),t(o,"$with_operator",function(t){var s=this;return c(s,"with",[],function(s){return s==null&&(s=n),s.$update_operator(t)})}),o.$protected(),t(o,"$update_operator",l("operator"))}(u("Map"),u("Map"))}(u[0],u)}(o[0],o)},Opal.modules["parser/source/map/condition"]=function(e){var t=e.module,s=e.klass,o=e.send2,i=e.find_super,a=e.def,n=[],r=e.nil;return e.add_stubs("attr_reader"),function(n,c){var d=t(n,"Parser"),l=[d].concat(c);return function(n,c){var d=t(n,"Source"),u=[d].concat(c),l=e.$r(u);return function(e,t){var n=s(e,t,"Condition");return n.$attr_reader("keyword"),n.$attr_reader("begin"),n.$attr_reader("else"),n.$attr_reader("end"),a(n,"$initialize",function e(t,n,s,a,c){var d,u=e.$$p||r,l=this;return e.$$p=null,l.keyword=t,d=[n,s,a],l.begin=d[0],l.else=d[1],l.end=d[2],d,o(l,i(l,"initialize",e,!1,!0),"initialize",[c],null)})}(l("Map"),l("Map"))}(l[0],l)}(n[0],n)},Opal.modules["parser/source/map/ternary"]=function(e){var t=e.module,s=e.klass,o=e.send2,i=e.find_super,a=e.def,n=[],r=e.nil;return e.add_stubs("attr_reader"),function(n,c){var d=t(n,"Parser"),l=[d].concat(c);return function(n,c){var d=t(n,"Source"),u=[d].concat(c),l=e.$r(u);return function(e,t){var n=s(e,t,"Ternary");return n.$attr_reader("question"),n.$attr_reader("colon"),a(n,"$initialize",function e(t,n,s){var a,l=e.$$p||r,c=this;return e.$$p=null,a=[t,n],c.question=a[0],c.colon=a[1],a,o(c,i(c,"initialize",e,!1,!0),"initialize",[s],null)})}(l("Map"),l("Map"))}(l[0],l)}(n[0],n)},Opal.modules["parser/source/map/for"]=function(e){var t=e.module,s=e.klass,o=e.send2,i=e.find_super,a=e.def,n=[],r=e.nil;return e.add_stubs("attr_reader"),function(n,c){var d=t(n,"Parser"),l=[d].concat(c);return function(n,c){var d=t(n,"Source"),u=[d].concat(c),l=e.$r(u);return function(e,t){var n=s(e,t,"For");return n.$attr_reader("keyword","in"),n.$attr_reader("begin","end"),a(n,"$initialize",function e(t,n,s,a,c){var l,u=e.$$p||r,d=this;return e.$$p=null,l=[t,n],d.keyword=l[0],d.in=l[1],l,l=[s,a],d.begin=l[0],d.end=l[1],l,o(d,i(d,"initialize",e,!1,!0),"initialize",[c],null)})}(l("Map"),l("Map"))}(l[0],l)}(n[0],n)},Opal.modules["parser/source/map/rescue_body"]=function(e){var t=e.module,s=e.klass,o=e.send2,i=e.find_super,a=e.def,n=[],r=e.nil;return e.add_stubs("attr_reader"),function(n,c){var d=t(n,"Parser"),l=[d].concat(c);return function(n,c){var d=t(n,"Source"),u=[d].concat(c),l=e.$r(u);return function(e,t){var n=s(e,t,"RescueBody");return n.$attr_reader("keyword"),n.$attr_reader("assoc"),n.$attr_reader("begin"),a(n,"$initialize",function e(t,n,s,a){var l=e.$$p||r,c=this;return e.$$p=null,c.keyword=t,c.assoc=n,c.begin=s,o(c,i(c,"initialize",e,!1,!0),"initialize",[a],null)})}(l("Map"),l("Map"))}(l[0],l)}(n[0],n)},Opal.modules["parser/source/map/heredoc"]=function(e){var t=e.module,s=e.klass,o=e.send2,i=e.find_super,a=e.def,n=[],r=e.nil;return e.add_stubs("attr_reader"),function(n,c){var d=t(n,"Parser"),l=[d].concat(c);return function(n,c){var d=t(n,"Source"),u=[d].concat(c),l=e.$r(u);return function(e,t){var n=s(e,t,"Heredoc");return n.$attr_reader("heredoc_body"),n.$attr_reader("heredoc_end"),a(n,"$initialize",function e(t,n,s){var c=e.$$p||r,a=this;return e.$$p=null,a.heredoc_body=n,a.heredoc_end=s,o(a,i(a,"initialize",e,!1,!0),"initialize",[t],null)})}(l("Map"),l("Map"))}(l[0],l)}(n[0],n)},Opal.modules["parser/source/map/objc_kwarg"]=function(e){var t=e.module,s=e.klass,o=e.send2,i=e.find_super,a=e.def,n=[],r=e.nil;return e.add_stubs("attr_reader"),function(n,c){var d=t(n,"Parser"),l=[d].concat(c);return function(n,c){var d=t(n,"Source"),u=[d].concat(c),l=e.$r(u);return function(e,t){var n=s(e,t,"ObjcKwarg");return n.$attr_reader("keyword"),n.$attr_reader("operator"),n.$attr_reader("argument"),a(n,"$initialize",function e(t,n,s,a){var c,d=e.$$p||r,l=this;return e.$$p=null,c=[t,n,s],l.keyword=c[0],l.operator=c[1],l.argument=c[2],c,o(l,i(l,"initialize",e,!1,!0),"initialize",[a],null)})}(l("Map"),l("Map"))}(l[0],l)}(n[0],n)},Opal.modules["parser/syntax_error"]=function(e){var n=e.module,s=e.klass,o=e.send2,i=e.find_super,a=e.def,t=[],r=e.nil;return e.add_stubs("attr_reader,message"),function(t,c){var d=n(t,"Parser"),l=[d].concat(c),u=e.$r(l);return function(e,t){var n=s(e,t,"SyntaxError");return n.$attr_reader("diagnostic"),a(n,"$initialize",function e(t){var s=e.$$p||r,n=this;return e.$$p=null,n.diagnostic=t,o(n,i(n,"initialize",e,!1,!0),"initialize",[t.$message()],null)})}(l[0],u("StandardError"))}(t[0],t)},Opal.modules["parser/clobbering_error"]=function(e){var n=e.module,s=e.klass,t=[],o=e.nil;return function(t,i){var r=n(t,"Parser"),a=[r].concat(i),c=e.$r(a);return s(a[0],c("RuntimeError"),"ClobberingError"),o}(t[0],t)},Opal.modules["parser/unknown_encoding_in_magic_comment_error"]=function(e){var n=e.module,s=e.klass,t=[],o=e.nil;return function(t,i){var r=n(t,"Parser"),a=[r].concat(i),c=e.$r(a);return s(a[0],c("ArgumentError"),"UnknownEncodingInMagicComment"),o}(t[0],t)},Opal.modules["parser/diagnostic"]=function(e){var h=e.module,v=e.klass,g=e.const_set,n=e.truthy,o=e.def,p=e.eqeq,s=e.rb_plus,l=e.rb_minus,d=e.to_ary,u=e.rb_gt,i=e.rb_times,a=e.send,m=e.rb_ge,f=e.not,c=e.neqeq,r=[],t=e.nil;return e.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(r,b){var y=h(r,"Parser"),j=[y].concat(b);return function(r,h,b){var j=v(r,h,"Diagnostic"),w=[j].concat(b),_=e.$r(w),y=j.$$prototype;return y.reason=y.arguments=y.location=y.level=y.highlights=t,g(w[0],"LEVELS",["note","warning","error","fatal"].$freeze()),j.$attr_reader("level","reason","arguments"),j.$attr_reader("location","highlights"),o(j,"$initialize",function(s,o,i,a,r){var c=this,l=t;return r==null&&(r=[]),n(_("LEVELS")["$include?"](s))||c.$raise(_("ArgumentError"),""+("Diagnostic#level must be one of "+_("LEVELS").$join(", ")+"; ")+(""+s.$inspect()+" provided.")),n(a)||c.$raise("Expected a location"),c.level=s,c.reason=o,c.arguments=(n(l=i)?l:new Map).$dup().$freeze(),c.location=a,c.highlights=r.$dup().$freeze(),c.$freeze()},-5),o(j,"$message",function(){var t=this;return _("Messages").$compile(t.reason,t.arguments)}),o(j,"$render",function(){var i,a,o=this,r=t,c=t,h=t,m=t,f=t,g=t;return p(o.location.$line(),o.location.$last_line())||n(o.location["$is?"](`
`))?s([""+o.location+": "+o.level+": "+o.$message()],o.$render_line(o.location)):(r=o.$first_line_only(o.location),c=o.$last_line_only(o.location),h=s(l(o.location.$last_line(),o.location.$line()),1),m=o.location.$source_buffer(),a=m.$decompose_position(o.location.$end_pos()),i=d(a),f=i[0]==null?t:i[0],g=i[1]==null?t:i[1],a,s(s([""+o.location+"-"+f+":"+g+": "+o.level+": "+o.$message()],o.$render_line(r,u(h,2),!1)),o.$render_line(c,!1,!0)))}),j.$private(),o(j,"$render_line",function(o,r,c){var h=this,u=t,d=t;return r==null&&(r=!1),c==null&&(c=!1),u=o.$source_line(),d=i(" ",u.$length()),a(h.highlights,"each",[],function(s){var r,c=t;return s==null&&(s=t),c=o.$source_buffer().$line_range(o.$line()),n(s=s.$intersect(c))?(r=[s.$column_range(),i("~",s.$size())],a(d,"[]=",r),r[r.length-1]):t}),n(o["$is?"](`
`))?d=s(d,"^"):f(c)&&n(m(o.$size(),1))?d["$[]="](o.$column_range(),s("^",i("~",l(o.$size(),1)))):d["$[]="](o.$column_range(),i("~",o.$size())),n(r)&&(d=s(d,"...")),a([u,d],"map",[],function(n){return n==null&&(n=t),""+o.$source_buffer().$name()+":"+o.$line()+": "+n})},-2),o(j,"$first_line_only",function(t){return c(t.$line(),t.$last_line())?t.$resize(t.$source()["$=~"](/\n/)):t}),o(j,"$last_line_only",function(t){return c(t.$line(),t.$last_line())?t.$adjust(new Map([["begin_pos",t.$source()["$=~"](/[^\n]*$/)]])):t})}(j[0],null,j)}(r[0],r)},Opal.modules["parser/diagnostic/engine"]=function(e){var i=e.module,a=e.klass,s=e.def,t=e.truthy,o=[],n=e.nil,r=e.$$$;return e.add_stubs("attr_accessor,ignore?,call,raise?,raise,protected,==,level"),function(o,c){var d=i(o,"Parser"),l=[d].concat(c),u=e.$r(l);return function(o,i,c){var l=a(o,i,"Engine"),u=[l].concat(c),h=e.$r(u),d=l.$$prototype;return d.consumer=d.ignore_warnings=d.all_errors_are_fatal=n,l.$attr_accessor("consumer"),l.$attr_accessor("all_errors_are_fatal"),l.$attr_accessor("ignore_warnings"),s(l,"$initialize",function(t){var s=this;return t==null&&(t=n),s.consumer=t,s.all_errors_are_fatal=!1,s.ignore_warnings=!1},-1),s(l,"$process",function(n){var s=this;return t(s["$ignore?"](n))||t(s.consumer)&&s.consumer.$call(n),t(s["$raise?"](n))&&s.$raise(r(h("Parser"),"SyntaxError"),n),s}),l.$protected(),s(l,"$ignore?",function(s){var i=this,o=n;return t(o=i.ignore_warnings)?s.$level()["$=="]("warning"):o}),s(l,"$raise?",function(s){var a=this,o=n,i=n;return t(o=t(i=a.all_errors_are_fatal)?s.$level()["$=="]("error"):i)?o:s.$level()["$=="]("fatal")})}(u("Diagnostic"),null,l)}(o[0],o)},Opal.modules["parser/static_environment"]=function(e){var r=e.module,c=e.klass,n=e.const_set,t=e.def,o=e.truthy,i=e.send,a=[],s=e.nil;return e.add_stubs("reset,[],push,dup,delete,add,pop,to_sym,include?,declare,declared?,any?,empty?"),function(a,l){var u=r(a,"Parser"),d=[u].concat(l);return function(a,r,l){var u=c(a,r,"StaticEnvironment"),h=[u].concat(l),d=e.$r(h),m=u.$$prototype;return m.stack=m.variables=s,n(h[0],"FORWARD_ARGS","FORWARD_ARGS"),n(h[0],"ANONYMOUS_RESTARG_IN_CURRENT_SCOPE","ANONYMOUS_RESTARG_IN_CURRENT_SCOPE"),n(h[0],"ANONYMOUS_RESTARG_INHERITED","ANONYMOUS_RESTARG_INHERITED"),n(h[0],"ANONYMOUS_KWRESTARG_IN_CURRENT_SCOPE","ANONYMOUS_KWRESTARG_IN_CURRENT_SCOPE"),n(h[0],"ANONYMOUS_KWRESTARG_INHERITED","ANONYMOUS_KWRESTARG_INHERITED"),n(h[0],"ANONYMOUS_BLOCKARG_IN_CURRENT_SCOPE","ANONYMOUS_BLOCKARG_IN_CURRENT_SCOPE"),n(h[0],"ANONYMOUS_BLOCKARG_INHERITED","ANONYMOUS_BLOCKARG_INHERITED"),t(u,"$initialize",function(){var t=this;return t.$reset()}),t(u,"$reset",function(){var t=this;return t.variables=d("Set")["$[]"](),t.stack=[]}),t(u,"$extend_static",function(){var t=this;return t.stack.$push(t.variables),t.variables=d("Set")["$[]"](),t}),t(u,"$extend_dynamic",function(){var t=this;return t.stack.$push(t.variables),t.variables=t.variables.$dup(),o(t.variables.$delete(d("ANONYMOUS_BLOCKARG_IN_CURRENT_SCOPE")))&&t.variables.$add(d("ANONYMOUS_BLOCKARG_INHERITED")),o(t.variables.$delete(d("ANONYMOUS_RESTARG_IN_CURRENT_SCOPE")))&&t.variables.$add(d("ANONYMOUS_RESTARG_INHERITED")),o(t.variables.$delete(d("ANONYMOUS_KWRESTARG_IN_CURRENT_SCOPE")))&&t.variables.$add(d("ANONYMOUS_KWRESTARG_INHERITED")),t}),t(u,"$unextend",function(){var t=this;return t.variables=t.stack.$pop(),t}),t(u,"$declare",function(t){var n=this;return n.variables.$add(t.$to_sym()),n}),t(u,"$declared?",function(t){var n=this;return n.variables["$include?"](t.$to_sym())}),t(u,"$declare_forward_args",function(){var t=this;return t.$declare(d("FORWARD_ARGS"))}),t(u,"$declared_forward_args?",function(){var t=this;return t["$declared?"](d("FORWARD_ARGS"))}),t(u,"$declare_anonymous_blockarg",function(){var t=this;return t.$declare(d("ANONYMOUS_BLOCKARG_IN_CURRENT_SCOPE"))}),t(u,"$declared_anonymous_blockarg?",function(){var t=this,n=s;return o(n=t["$declared?"](d("ANONYMOUS_BLOCKARG_IN_CURRENT_SCOPE")))?n:t["$declared?"](d("ANONYMOUS_BLOCKARG_INHERITED"))}),t(u,"$declared_anonymous_blockarg_in_current_scpe?",function(){var t=this;return t["$declared?"](d("ANONYMOUS_BLOCKARG_IN_CURRENT_SCOPE"))}),t(u,"$parent_has_anonymous_blockarg?",function(){var t=this;return i(t.stack,"any?",[],function(t){return t==null&&(t=s),t["$include?"](d("ANONYMOUS_BLOCKARG_IN_CURRENT_SCOPE"))})}),t(u,"$declare_anonymous_restarg",function(){var t=this;return t.$declare(d("ANONYMOUS_RESTARG_IN_CURRENT_SCOPE"))}),t(u,"$declared_anonymous_restarg?",function(){var t=this,n=s;return o(n=t["$declared?"](d("ANONYMOUS_RESTARG_IN_CURRENT_SCOPE")))?n:t["$declared?"](d("ANONYMOUS_RESTARG_INHERITED"))}),t(u,"$declared_anonymous_restarg_in_current_scope?",function(){var t=this;return t["$declared?"](d("ANONYMOUS_RESTARG_IN_CURRENT_SCOPE"))}),t(u,"$parent_has_anonymous_restarg?",function(){var t=this;return i(t.stack,"any?",[],function(t){return t==null&&(t=s),t["$include?"](d("ANONYMOUS_RESTARG_IN_CURRENT_SCOPE"))})}),t(u,"$declare_anonymous_kwrestarg",function(){var t=this;return t.$declare(d("ANONYMOUS_KWRESTARG_IN_CURRENT_SCOPE"))}),t(u,"$declared_anonymous_kwrestarg?",function(){var t=this,n=s;return o(n=t["$declared?"](d("ANONYMOUS_KWRESTARG_IN_CURRENT_SCOPE")))?n:t["$declared?"](d("ANONYMOUS_KWRESTARG_INHERITED"))}),t(u,"$declared_anonymous_kwrestarg_in_current_scope?",function(){var t=this;return t["$declared?"](d("ANONYMOUS_KWRESTARG_IN_CURRENT_SCOPE"))}),t(u,"$parent_has_anonymous_kwrestarg?",function(){var t=this;return i(t.stack,"any?",[],function(t){return t==null&&(t=s),t["$include?"](d("ANONYMOUS_KWRESTARG_IN_CURRENT_SCOPE"))})}),t(u,"$empty?",function(){var t=this;return t.stack["$empty?"]()})}(d[0],null,d)}(a[0],a)},Opal.modules["parser/lexer-F0"]=function(e){var O=e.klass,i=e.truthy,l=e.send,t=e.rb_minus,a=e.def,d=e.gvars,r=e.eqeq,g=e.const_set,s=e.rb_plus,b=e.to_ary,f=e.rb_le,u=e.rb_gt,y=e.neqeq,n=e.eqeqeq,v=e.range,c=e.rb_ge,h=e.not,m=e.rb_lt,_=e.slice,j=[],w=e.$r(j),o=e.nil,p=e.$$$;return e.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(j,w,x){var C=O(j,w,"Lexer"),A=[C].concat(x),E=e.$r(A),k=C.$$prototype;return k.version=k.source_buffer=k.source_pts=k.strings=k.cs=k.cmdarg_stack=k.cmdarg=k.cond_stack=k.cond=k.token_queue=k._lex_actions=k.p=k.command_start=k.emit_integer=k.emit_rational=k.emit_imaginary=k.emit_imaginary_rational=k.emit_integer_re=k.emit_integer_if=k.emit_integer_rescue=k.emit_float=k.emit_imaginary_float=k.emit_float_if=k.emit_float_rescue=k.paren_nest=k.ts=k.te=k.stack=k.top=k.act=k.context=k.lambda_stack=k.static_env=k.newline_s=k.num_base=k.num_suffix_s=k.num_xfrm=k.eq_begin_s=k.cs_before_block_comment=k.tokens=k.comments=k.sharp_s=k.diagnostics=k.num_digits_s=o,function(e){return e.$attr_accessor("_lex_actions"),e.$private("_lex_actions","_lex_actions=")}(e.get_singleton_class(C),A),C["$_lex_actions="](e.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(e){return e.$attr_accessor("_lex_trans_keys"),e.$private("_lex_trans_keys","_lex_trans_keys=")}(e.get_singleton_class(C),A),C["$_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(e){return e.$attr_accessor("_lex_key_spans"),e.$private("_lex_key_spans","_lex_key_spans=")}(e.get_singleton_class(C),A),C["$_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(e){return e.$attr_accessor("_lex_index_offsets"),e.$private("_lex_index_offsets","_lex_index_offsets=")}(e.get_singleton_class(C),A),C["$_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(e){return e.$attr_accessor("_lex_indicies"),e.$private("_lex_indicies","_lex_indicies=")}(e.get_singleton_class(C),A),C["$_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(e){return e.$attr_accessor("_lex_trans_targs"),e.$private("_lex_trans_targs","_lex_trans_targs=")}(e.get_singleton_class(C),A),C["$_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(e){return e.$attr_accessor("_lex_trans_actions"),e.$private("_lex_trans_actions","_lex_trans_actions=")}(e.get_singleton_class(C),A),C["$_lex_trans_actions="](e.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(e){return e.$attr_accessor("_lex_to_state_actions"),e.$private("_lex_to_state_actions","_lex_to_state_actions=")}(e.get_singleton_class(C),A),C["$_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,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(e){return e.$attr_accessor("_lex_from_state_actions"),e.$private("_lex_from_state_actions","_lex_from_state_actions=")}(e.get_singleton_class(C),A),C["$_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,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(e){return e.$attr_accessor("_lex_eof_trans"),e.$private("_lex_eof_trans","_lex_eof_trans=")}(e.get_singleton_class(C),A),C["$_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(e){return e.$attr_accessor("lex_start")}(e.get_singleton_class(C),A),C["$lex_start="](128),function(e){return e.$attr_accessor("lex_error")}(e.get_singleton_class(C),A),C["$lex_error="](0),function(e){return e.$attr_accessor("lex_en_expr_variable")}(e.get_singleton_class(C),A),C["$lex_en_expr_variable="](129),function(e){return e.$attr_accessor("lex_en_expr_fname")}(e.get_singleton_class(C),A),C["$lex_en_expr_fname="](134),function(e){return e.$attr_accessor("lex_en_expr_endfn")}(e.get_singleton_class(C),A),C["$lex_en_expr_endfn="](247),function(e){return e.$attr_accessor("lex_en_expr_dot")}(e.get_singleton_class(C),A),C["$lex_en_expr_dot="](255),function(e){return e.$attr_accessor("lex_en_expr_arg")}(e.get_singleton_class(C),A),C["$lex_en_expr_arg="](276),function(e){return e.$attr_accessor("lex_en_expr_cmdarg")}(e.get_singleton_class(C),A),C["$lex_en_expr_cmdarg="](307),function(e){return e.$attr_accessor("lex_en_expr_endarg")}(e.get_singleton_class(C),A),C["$lex_en_expr_endarg="](313),function(e){return e.$attr_accessor("lex_en_expr_mid")}(e.get_singleton_class(C),A),C["$lex_en_expr_mid="](321),function(e){return e.$attr_accessor("lex_en_expr_beg")}(e.get_singleton_class(C),A),C["$lex_en_expr_beg="](345),function(e){return e.$attr_accessor("lex_en_expr_labelarg")}(e.get_singleton_class(C),A),C["$lex_en_expr_labelarg="](501),function(e){return e.$attr_accessor("lex_en_expr_value")}(e.get_singleton_class(C),A),C["$lex_en_expr_value="](508),function(e){return e.$attr_accessor("lex_en_expr_end")}(e.get_singleton_class(C),A),C["$lex_en_expr_end="](516),function(e){return e.$attr_accessor("lex_en_leading_dot")}(e.get_singleton_class(C),A),C["$lex_en_leading_dot="](696),function(e){return e.$attr_accessor("lex_en_line_comment")}(e.get_singleton_class(C),A),C["$lex_en_line_comment="](704),function(e){return e.$attr_accessor("lex_en_line_begin")}(e.get_singleton_class(C),A),C["$lex_en_line_begin="](710),function(e){return e.$attr_accessor("lex_en_inside_string")}(e.get_singleton_class(C),A),C["$lex_en_inside_string="](128),C.$attr_reader("source_buffer"),C.$attr_accessor("diagnostics"),C.$attr_accessor("static_env"),C.$attr_accessor("force_utf32"),C.$attr_accessor("cond","cmdarg","context","command_start"),C.$attr_accessor("tokens","comments"),C.$attr_reader("paren_nest","cmdarg_stack","cond_stack","lambda_stack","version"),a(C,"$initialize",function(n){var s=this;return s.version=n,s.static_env=o,s.context=o,s.tokens=o,s.comments=o,s._lex_actions=i(s.$class()["$respond_to?"]("_lex_actions",!0))?s.$class().$send("_lex_actions"):[],s.emit_integer=l(s,"lambda",[],function e(t,n){var s=e.$$s==null?this:e.$$s;return t==null&&(t=o),n==null&&(n=o),s.$emit("tINTEGER",t),n},{$$s:s}),s.emit_rational=l(s,"lambda",[],function e(t,n){var s=e.$$s==null?this:e.$$s;return t==null&&(t=o),n==null&&(n=o),s.$emit("tRATIONAL",s.$Rational(t)),n},{$$s:s}),s.emit_imaginary=l(s,"lambda",[],function e(t,n){var s=e.$$s==null?this:e.$$s;return t==null&&(t=o),n==null&&(n=o),s.$emit("tIMAGINARY",s.$Complex(0,t)),n},{$$s:s}),s.emit_imaginary_rational=l(s,"lambda",[],function e(t,n){var s=e.$$s==null?this:e.$$s;return t==null&&(t=o),n==null&&(n=o),s.$emit("tIMAGINARY",s.$Complex(0,s.$Rational(t))),n},{$$s:s}),s.emit_integer_re=l(s,"lambda",[],function e(n,s){var i=e.$$s==null?this:e.$$s;return i.ts==null&&(i.ts=o),i.te==null&&(i.te=o),n==null&&(n=o),s==null&&(s=o),i.$emit("tINTEGER",n,i.ts,t(i.te,2)),t(s,2)},{$$s:s}),s.emit_integer_if=l(s,"lambda",[],function e(n,s){var i=e.$$s==null?this:e.$$s;return i.ts==null&&(i.ts=o),i.te==null&&(i.te=o),n==null&&(n=o),s==null&&(s=o),i.$emit("tINTEGER",n,i.ts,t(i.te,2)),t(s,2)},{$$s:s}),s.emit_integer_rescue=l(s,"lambda",[],function e(n,s){var i=e.$$s==null?this:e.$$s;return i.ts==null&&(i.ts=o),i.te==null&&(i.te=o),n==null&&(n=o),s==null&&(s=o),i.$emit("tINTEGER",n,i.ts,t(i.te,6)),t(s,6)},{$$s:s}),s.emit_float=l(s,"lambda",[],function e(t,n){var s=e.$$s==null?this:e.$$s;return t==null&&(t=o),n==null&&(n=o),s.$emit("tFLOAT",s.$construct_float(t)),n},{$$s:s}),s.emit_imaginary_float=l(s,"lambda",[],function e(t,n){var s=e.$$s==null?this:e.$$s;return t==null&&(t=o),n==null&&(n=o),s.$emit("tIMAGINARY",s.$Complex(0,s.$construct_float(t))),n},{$$s:s}),s.emit_float_if=l(s,"lambda",[],function e(n,s){var i=e.$$s==null?this:e.$$s;return i.ts==null&&(i.ts=o),i.te==null&&(i.te=o),n==null&&(n=o),s==null&&(s=o),i.$emit("tFLOAT",i.$construct_float(n),i.ts,t(i.te,2)),t(s,2)},{$$s:s}),s.emit_float_rescue=l(s,"lambda",[],function e(n,s){var i=e.$$s==null?this:e.$$s;return i.ts==null&&(i.ts=o),i.te==null&&(i.te=o),n==null&&(n=o),s==null&&(s=o),i.$emit("tFLOAT",i.$construct_float(n),i.ts,t(i.te,6)),t(s,6)},{$$s:s}),s.$reset()}),a(C,"$construct_float",function(t){var n,i=this,s=o;return d.VERBOSE==null&&(d.VERBOSE=o),function(){try{return n=[d.VERBOSE,o],s=n[0],d.VERBOSE=n[1],n,i.$Float(t)}finally{d.VERBOSE=s}}()}),a(C,"$reset",function(t){var n=this;return t==null&&(t=!0),i(t)&&(n.cs=n.$class().$lex_en_line_begin(),n.cond=E("StackState").$new("cond"),n.cmdarg=E("StackState").$new("cmdarg"),n.cond_stack=[],n.cmdarg_stack=[]),n.force_utf32=!1,n.source_pts=o,n.p=0,n.ts=o,n.te=o,n.act=0,n.stack=[],n.top=0,n.token_queue=[],n.eq_begin_s=o,n.sharp_s=o,n.newline_s=o,n.num_base=o,n.num_digits_s=o,n.num_suffix_s=o,n.num_xfrm=o,n.paren_nest=0,n.lambda_stack=[],n.command_start=!0,n.cs_before_block_comment=n.$class().$lex_en_line_begin(),n.strings=p(E("Parser"),"LexerStrings").$new(n,n.version)},-1),a(C,"$source_buffer=",function(t){var s,n=this,a=o;return n.source_buffer=t,i(n.source_buffer)?(a=n.source_buffer.$source(),r(a.$encoding(),p(E("Encoding"),"UTF_8"))?n.source_pts=a.$unpack("U*"):n.source_pts=a.$unpack("C*"),r(n.source_pts["$[]"](0),65279)&&(n.p=1)):n.source_pts=o,n.strings["$source_buffer="](n.source_buffer),(s=[n.source_pts],l(n.strings,"source_pts=",s),s[s.length-1])}),a(C,"$encoding",function(){var t=this;return t.source_buffer.$source().$encoding()}),g(A[0],"LEX_STATES",new Map([["line_begin",C.$lex_en_line_begin()],["expr_dot",C.$lex_en_expr_dot()],["expr_fname",C.$lex_en_expr_fname()],["expr_value",C.$lex_en_expr_value()],["expr_beg",C.$lex_en_expr_beg()],["expr_mid",C.$lex_en_expr_mid()],["expr_arg",C.$lex_en_expr_arg()],["expr_cmdarg",C.$lex_en_expr_cmdarg()],["expr_end",C.$lex_en_expr_end()],["expr_endarg",C.$lex_en_expr_endarg()],["expr_endfn",C.$lex_en_expr_endfn()],["expr_labelarg",C.$lex_en_expr_labelarg()],["inside_string",C.$lex_en_inside_string()]])),a(C,"$state",function(){var t=this;return E("LEX_STATES").$invert().$fetch(t.cs,t.cs)}),a(C,"$state=",function(t){var n=this;return n.cs=E("LEX_STATES").$fetch(t)}),a(C,"$push_cmdarg",function(){var t=this;return t.cmdarg_stack.$push(t.cmdarg),t.cmdarg=E("StackState").$new("cmdarg."+t.cmdarg_stack.$count())}),a(C,"$pop_cmdarg",function(){var t=this;return t.cmdarg=t.cmdarg_stack.$pop()}),a(C,"$push_cond",function(){var t=this;return t.cond_stack.$push(t.cond),t.cond=E("StackState").$new("cond."+t.cond_stack.$count())}),a(C,"$pop_cond",function(){var t=this;return t.cond=t.cond_stack.$pop()}),a(C,"$dedent_level",function(){var t=this;return t.strings.$dedent_level()}),a(C,"$advance",function(){var O,L,a=this,z=o,Y=o,pe=o,he=o,X=o,de=o,ae=o,re=o,ce=o,ie=o,P=o,I=o,l=o,$=o,M=o,le=o,K=o,H=o,V=o,U=o,k=o,T=o,g=o,G=o,Q=o,w=o,ne=o,_=o,j=o,q=o,p=o,x=o,Z=o,fe=o,ee=o,te=o,ue=o,se=o,F=o,A=o,C=o,D=o,W=o,oe=o,R=o,B=o,N=o,me=o,J=o,S=o;if(!i(a.token_queue["$empty?"]()))return a.token_queue.$shift();for(z=a.$class(),Y=z.$send("_lex_trans_keys"),pe=z.$send("_lex_key_spans"),he=z.$send("_lex_index_offsets"),X=z.$send("_lex_indicies"),de=z.$send("_lex_trans_targs"),ae=z.$send("_lex_trans_actions"),re=z.$send("_lex_to_state_actions"),ce=z.$send("_lex_from_state_actions"),ie=z.$send("_lex_eof_trans"),P=a._lex_actions,I=s(a.source_pts.$size(),2),O=[a.p,I],l=O[0],$=O[1],O,M=a.command_start,a.command_start=!1,le=!1,L=o,O=b(L),K=O[0]==null?o:O[0],H=O[1]==null?o:O[1],V=O[2]==null?o:O[2],U=O[3]==null?o:O[3],k=O[4]==null?o:O[4],T=O[5]==null?o:O[5],L,g=0,G=10,Q=15,w=20,ne=30,_=40;i(!0);){if(j=!1,i(f(g,0))){if(r(l,I)){g=ne;continue}if(r(a.cs,0)){g=_;continue}}if(i(f(g,G))){for(k=ce["$[]"](a.cs),T=P["$[]"](k),k=s(k,1);i(u(T,0));)switch(T=t(T,1),k=s(k,1),P["$[]"](t(k,1)).valueOf()){case 52:a.ts=l;break;default:o}if(i(j))continue;V=a.cs["$<<"](1),U=he["$[]"](a.cs),K=pe["$[]"](a.cs),q=i(p=a.source_pts["$[]"](l))?p:0,H=i(u(K,0))&&i(f(Y["$[]"](V),q))&&i(f(q,Y["$[]"](s(V,1))))?X["$[]"](t(s(U,q),Y["$[]"](V))):X["$[]"](s(U,K))}if(i(f(g,Q))){if(a.cs=de["$[]"](H),y(ae["$[]"](H),0))for(k=ae["$[]"](H),T=P["$[]"](k),k=s(k,1);i(u(T,0));)if(T=t(T,1),k=s(k,1),n(0,p=P["$[]"](t(k,1))))a.newline_s=l;else if(n(1,p))a.num_xfrm=a.emit_integer;else if(n(2,p))a.num_xfrm=a.emit_rational;else if(n(3,p))a.num_xfrm=a.emit_imaginary;else if(n(4,p))a.num_xfrm=a.emit_imaginary_rational;else if(n(5,p))a.num_xfrm=a.emit_integer_re;else if(n(6,p))a.num_xfrm=a.emit_integer_if;else if(n(7,p))a.num_xfrm=a.emit_integer_rescue;else if(n(8,p))a.num_xfrm=a.emit_float;else if(n(9,p))a.num_xfrm=a.emit_imaginary_float;else if(n(10,p))a.num_xfrm=a.emit_float_if;else if(n(11,p))a.num_xfrm=a.emit_rational;else if(n(12,p))a.num_xfrm=a.emit_imaginary_rational;else if(n(13,p))a.num_xfrm=a.emit_float_rescue;else if(n(14,p))a.$e_lbrace();else if(n(15,p)){if(i(a.strings.$close_interp_on_current_literal(l))){l=t(l,1),a.cs=128,l=s(l,1),j=!0,g=_;break}a.paren_nest=t(a.paren_nest,1)}else if(n(16,p))l=a.$on_newline(l);else if(n(17,p))a.sharp_s=t(l,1);else if(n(18,p))a.$emit_comment_from_range(l,I);else if(n(19,p))x=l;else if(n(20,p))x=t(l,2);else if(n(21,p))x=l;else if(n(22,p))x=t(l,2);else if(n(23,p))x=t(l,2);else if(n(24,p))x=t(l,2);else if(n(25,p))x=t(l,3);else if(n(26,p))x=t(l,2);else if(n(27,p))x=t(l,2);else if(n(28,p))a.cond.$push(!1),a.cmdarg.$push(!1),a.paren_nest=s(a.paren_nest,1);else if(n(29,p))a.paren_nest=t(a.paren_nest,1);else if(n(30,p))a.cond.$push(!1),a.cmdarg.$push(!1),a.paren_nest=s(a.paren_nest,1),i(a["$version?"](18))&&(a.command_start=!0);else if(n(31,p))a.paren_nest=t(a.paren_nest,1);else if(n(32,p))x=l;else if(n(33,p))x=l;else if(n(34,p))x=l;else if(n(35,p))Z=l;else if(n(36,p))fe=l;else if(n(37,p))x=t(l,1),ee="ivar_name";else if(n(38,p))x=t(l,2),ee="cvar_name";else if(n(39,p))x=l;else if(n(40,p))te=a.$tok(),ue=a.ts,se=a.te;else if(n(41,p))a.num_base=16,a.num_digits_s=l;else if(n(42,p))a.num_base=10,a.num_digits_s=l;else if(n(43,p))a.num_base=8,a.num_digits_s=l;else if(n(44,p))a.num_base=2,a.num_digits_s=l;else if(n(45,p))a.num_base=10,a.num_digits_s=a.ts;else if(n(46,p))a.num_base=8,a.num_digits_s=a.ts;else if(n(47,p))a.num_suffix_s=l;else if(n(48,p))a.num_suffix_s=l;else if(n(49,p))a.num_suffix_s=l;else if(n(50,p))x=l;else if(n(53,p))a.te=s(l,1);else if(n(54,p)){a.te=s(l,1),a.$emit_global_var(),a.cs=a.$stack_pop(),l=s(l,1),j=!0,g=_;break}else if(n(55,p)){a.te=l,l=t(l,1),a.$emit_global_var(),a.cs=a.$stack_pop(),l=s(l,1),j=!0,g=_;break}else if(n(56,p)){a.te=l,l=t(l,1),a.$emit_class_var(),a.cs=a.$stack_pop(),l=s(l,1),j=!0,g=_;break}else if(n(57,p)){a.te=l,l=t(l,1),a.$emit_instance_var(),a.cs=a.$stack_pop(),l=s(l,1),j=!0,g=_;break}else if(n(58,p))a.act=4;else if(n(59,p))a.act=5;else if(n(60,p))a.act=6;else if(n(61,p)){a.te=s(l,1),a.$emit_table(E("KEYWORDS_BEGIN")),a.cs=247,l=s(l,1),j=!0,g=_;break}else if(n(62,p)){a.te=s(l,1),a.$emit("tIDENTIFIER"),a.cs=247,l=s(l,1),j=!0,g=_;break}else if(n(63,p)){a.te=s(l,1),l=t(a.ts,1),a.cs=516,a.stack["$[]="](a.top,a.cs),a.top=s(a.top,1),a.cs=129,j=!0,g=w;break}else if(n(64,p)){a.te=s(l,1),a.$emit_table(E("PUNCTUATION")),a.cs=247,l=s(l,1),j=!0,g=_;break}else if(n(65,p)){a.te=s(l,1),l=t(l,1),l=t(l,1),a.cs=516,j=!0,g=w;break}else if(n(66,p))if(a.te=s(l,1),i(a["$version?"](23))){O=[a.$tok()["$[]"](v(0,-2,!1)),a.$tok()["$[]"](-1).$chr()],F=O[0],A=O[1],O,a.strings.$push_literal(F,A,a.ts),a.cs=128,j=!0,g=w;break}else{l=t(a.ts,1),a.cs=516,j=!0,g=w;break}else if(n(67,p)){a.te=s(l,1),l=t(l,1),a.cs=516,j=!0,g=w;break}else if(n(68,p)){a.te=s(l,1),l=t(l,1),l=s(l,1),j=!0,g=_;break}else if(n(69,p)){a.te=l,l=t(l,1),a.$emit_table(E("KEYWORDS_BEGIN")),a.cs=247,l=s(l,1),j=!0,g=_;break}else if(n(70,p)){a.te=l,l=t(l,1),a.$emit("tCONSTANT"),a.cs=247,l=s(l,1),j=!0,g=_;break}else if(n(71,p)){a.te=l,l=t(l,1),a.$emit("tIDENTIFIER"),a.cs=247,l=s(l,1),j=!0,g=_;break}else if(n(72,p)){a.te=l,l=t(l,1),l=t(a.ts,1),a.cs=516,a.stack["$[]="](a.top,a.cs),a.top=s(a.top,1),a.cs=129,j=!0,g=w;break}else if(n(73,p)){a.te=l,l=t(l,1),a.$emit_table(E("PUNCTUATION")),a.cs=247,l=s(l,1),j=!0,g=_;break}else if(n(74,p)){a.te=l,l=t(l,1),l=t(l,1),a.cs=345,j=!0,g=w;break}else if(n(75,p))a.te=l,l=t(l,1);else if(n(76,p)){a.te=l,l=t(l,1),l=t(l,1),a.cs=516,j=!0,g=w;break}else if(n(77,p)){l=t(a.te,1),a.$emit_table(E("PUNCTUATION")),a.cs=247,l=s(l,1),j=!0,g=_;break}else if(n(78,p)){l=t(a.te,1),l=t(l,1),a.cs=516,j=!0,g=w;break}else if(n(79,p))if(n(4,C=a.act)){l=t(a.te,1),a.$emit_table(E("KEYWORDS_BEGIN")),a.cs=247,l=s(l,1),j=!0,g=_;break}else if(n(5,C)){l=t(a.te,1),a.$emit("tCONSTANT"),a.cs=247,l=s(l,1),j=!0,g=_;break}else if(n(6,C)){l=t(a.te,1),a.$emit("tIDENTIFIER"),a.cs=247,l=s(l,1),j=!0,g=_;break}else o;else if(n(80,p)){a.te=s(l,1),a.$emit("tLABEL",a.$tok(a.ts,t(a.te,2)),a.ts,t(a.te,1)),l=t(l,1),a.cs=501,l=s(l,1),j=!0,g=_;break}else if(n(81,p))if(a.te=s(l,1),i(c(a.version,31))&&i(a.context.$in_argdef())){a.$emit("tBDOT3","...".$freeze()),a.cs=516,l=s(l,1),j=!0,g=_;break}else{l=t(l,3),a.cs=516,j=!0,g=w;break}else if(n(82,p)){a.te=s(l,1),l=t(l,1),a.cs=516,j=!0,g=w;break}else if(n(83,p)){a.te=s(l,1),l=t(l,1),l=s(l,1),j=!0,g=_;break}else if(n(84,p))a.te=l,l=t(l,1);else if(n(85,p)){a.te=l,l=t(l,1),l=t(l,1),a.cs=516,j=!0,g=w;break}else if(n(86,p)){l=t(a.te,1),l=t(l,1),a.cs=516,j=!0,g=w;break}else if(n(87,p)){a.te=s(l,1),a.$emit_table(E("PUNCTUATION")),a.cs=276,l=s(l,1),j=!0,g=_;break}else if(n(88,p)){a.te=s(l,1),l=t(l,1),a.cs=516,j=!0,g=w;break}else if(n(89,p)){a.te=s(l,1),l=t(l,1),l=s(l,1),j=!0,g=_;break}else if(n(90,p)){a.te=l,l=t(l,1),a.$emit("tCONSTANT"),a.cs=a.$arg_or_cmdarg(M),l=s(l,1),j=!0,g=_;break}else if(n(91,p)){a.te=l,l=t(l,1),a.$emit("tIDENTIFIER"),a.cs=a.$arg_or_cmdarg(M),l=s(l,1),j=!0,g=_;break}else if(n(92,p)){a.te=l,l=t(l,1),a.$emit("tFID",a.$tok(a.ts,x),a.ts,x),a.cs=a.$arg_or_cmdarg(M),l=t(x,1),l=s(l,1),j=!0,g=_;break}else if(n(93,p)){a.te=l,l=t(l,1),a.$emit_table(E("PUNCTUATION")),a.cs=276,l=s(l,1),j=!0,g=_;break}else if(n(94,p))a.te=l,l=t(l,1);else if(n(95,p)){a.te=l,l=t(l,1),l=t(l,1),a.cs=516,j=!0,g=w;break}else if(n(96,p))a.act=33;else if(n(97,p))a.act=34;else if(n(98,p))a.act=39;else if(n(99,p))a.act=40;else if(n(100,p)){a.te=s(l,1),l=t(a.ts,1),a.cs=516,j=!0,g=w;break}else if(n(101,p)){a.te=s(l,1),a.$check_ambiguous_slash(x),l=t(x,1),a.cs=345,j=!0,g=w;break}else if(n(102,p)){a.te=s(l,1),l=t(l,1),l=t(l,1),a.cs=345,j=!0,g=w;break}else if(n(103,p)){a.te=s(l,1),l=t(a.ts,1),a.cs=345,j=!0,g=w;break}else if(n(104,p)){a.te=s(l,1),l=t(x,1),a.cs=516,j=!0,g=w;break}else if(n(105,p)){a.te=s(l,1),l=t(a.ts,1),a.cs=516,j=!0,g=w;break}else if(n(106,p)){a.te=s(l,1),l=t(l,1),a.cs=345,j=!0,g=w;break}else if(n(107,p)){a.te=s(l,1),l=t(l,1),l=s(l,1),j=!0,g=_;break}else if(n(108,p))if(a.te=l,l=t(l,1),i(a["$version?"](18))){a.$emit("tLPAREN2","(".$freeze(),t(a.te,1),a.te),a.cs=508,l=s(l,1),j=!0,g=_;break}else{a.$emit("tLPAREN_ARG","(".$freeze(),t(a.te,1),a.te),a.cs=345,l=s(l,1),j=!0,g=_;break}else if(n(109,p)){a.te=l,l=t(l,1),a.$emit("tLPAREN2","(".$freeze()),a.cs=345,l=s(l,1),j=!0,g=_;break}else if(n(110,p)){a.te=l,l=t(l,1),a.$emit("tLBRACK","[".$freeze(),t(a.te,1),a.te),a.cs=345,l=s(l,1),j=!0,g=_;break}else if(n(111,p)){a.te=l,l=t(l,1),r(a.lambda_stack.$last(),a.paren_nest)?(a.lambda_stack.$pop(),a.$emit("tLAMBEG","{".$freeze(),t(a.te,1),a.te)):a.$emit("tLCURLY","{".$freeze(),t(a.te,1),a.te),a.command_start=!0,a.paren_nest=s(a.paren_nest,1),a.cs=508,l=s(l,1),j=!0,g=_;break}else if(n(112,p)){a.te=l,l=t(l,1),l=t(l,1),a.cs=345,j=!0,g=w;break}else if(n(113,p)){a.te=l,l=t(l,1),a.$diagnostic("warning","ambiguous_prefix",new Map([["prefix",a.$tok(x,a.te)]]),a.$range(x,a.te)),l=t(x,1),a.cs=345,j=!0,g=w;break}else if(n(114,p)){a.te=l,l=t(l,1),l=t(l,1),a.cs=345,j=!0,g=w;break}else if(n(115,p)){a.te=l,l=t(l,1),l=t(a.ts,1),a.cs=516,j=!0,g=w;break}else if(n(116,p))a.te=l,l=t(l,1);else if(n(117,p)){a.te=l,l=t(l,1),a.cs=516,j=!0,g=w;break}else if(n(118,p)){a.te=l,l=t(l,1),l=t(l,1),a.cs=516,j=!0,g=w;break}else if(n(119,p)){a.te=l,l=t(l,1),l=t(l,1),a.cs=345,j=!0,g=w;break}else if(n(120,p))l=t(a.te,1);else if(n(121,p)){l=t(a.te,1),l=t(l,1),a.cs=345,j=!0,g=w;break}else if(n(122,p))if(n(33,C=a.act)){l=t(a.te,1),a.$check_ambiguous_slash(x),l=t(x,1),a.cs=345,j=!0,g=w;break}else if(n(34,C)){l=t(a.te,1),a.$diagnostic("warning","ambiguous_prefix",new Map([["prefix",a.$tok(x,a.te)]]),a.$range(x,a.te)),l=t(x,1),a.cs=345,j=!0,g=w;break}else if(n(39,C)){l=t(a.te,1),l=t(a.ts,1),a.cs=516,j=!0,g=w;break}else l=t(a.te,1);else if(n(123,p))a.act=46;else if(n(124,p))a.act=47;else if(n(125,p)){a.te=s(l,1),l=t(a.ts,1),a.cs=276,j=!0,g=w;break}else if(n(126,p)){a.te=s(l,1),l=t(l,1),l=s(l,1),j=!0,g=_;break}else if(n(127,p))if(a.te=l,l=t(l,1),a.$emit("tLPAREN_ARG","(".$freeze(),t(a.te,1),a.te),i(a["$version?"](18))){a.cs=508,l=s(l,1),j=!0,g=_;break}else{a.cs=345,l=s(l,1),j=!0,g=_;break}else if(n(128,p)){a.te=l,l=t(l,1),l=t(a.ts,1),a.cs=276,j=!0,g=w;break}else if(n(129,p)){l=t(a.te,1),l=t(a.ts,1),a.cs=276,j=!0,g=w;break}else if(n(130,p))if(n(46,C=a.act)){l=t(a.te,1),i(a.cond["$active?"]())?a.$emit("kDO_COND","do".$freeze(),t(a.te,2),a.te):a.$emit("kDO","do".$freeze(),t(a.te,2),a.te),a.cs=508,l=s(l,1),j=!0,g=_;break}else if(n(47,C)){l=t(a.te,1),l=t(a.ts,1),a.cs=276,j=!0,g=w;break}else o;else if(n(131,p)){a.te=s(l,1),a.$emit_do(!0),a.cs=508,l=s(l,1),j=!0,g=_;break}else if(n(132,p)){a.te=s(l,1),l=t(l,1),a.cs=516,j=!0,g=w;break}else if(n(133,p)){a.te=s(l,1),l=t(l,1),l=s(l,1),j=!0,g=_;break}else if(n(134,p)){a.te=l,l=t(l,1),r(a.lambda_stack.$last(),a.paren_nest)?(a.lambda_stack.$pop(),a.$emit("tLAMBEG","{".$freeze())):a.$emit("tLBRACE_ARG","{".$freeze()),a.paren_nest=s(a.paren_nest,1),a.command_start=!0,a.cs=508,l=s(l,1),j=!0,g=_;break}else if(n(135,p))a.te=l,l=t(l,1);else if(n(136,p)){a.te=l,l=t(l,1),l=t(l,1),a.cs=516,j=!0,g=w;break}else if(n(137,p))a.act=54;else if(n(138,p))a.act=55;else if(n(139,p)){a.te=s(l,1),l=t(l,1),a.cs=345,j=!0,g=w;break}else if(n(140,p)){a.te=s(l,1),l=t(l,1),l=s(l,1),j=!0,g=_;break}else if(n(141,p)){a.te=l,l=t(l,1),l=t(a.ts,1),a.cs=345,j=!0,g=w;break}else if(n(142,p))a.te=l,l=t(l,1);else if(n(143,p)){a.te=l,l=t(l,1),l=t(l,1),a.cs=516,j=!0,g=w;break}else if(n(144,p)){a.te=l,l=t(l,1),l=t(l,1),a.cs=345,j=!0,g=w;break}else if(n(145,p))if(n(54,C=a.act)){l=t(a.te,1),a.$emit_table(E("KEYWORDS")),a.cs=345,l=s(l,1),j=!0,g=_;break}else if(n(55,C)){l=t(a.te,1),l=t(a.ts,1),a.cs=345,j=!0,g=w;break}else o;else if(n(146,p))a.act=60;else if(n(147,p))a.act=67;else if(n(148,p))a.act=76;else if(n(149,p))a.act=80;else if(n(150,p))a.act=81;else if(n(151,p))a.act=82;else if(n(152,p))a.act=86;else if(n(153,p))a.act=87;else if(n(154,p))a.act=91;else if(n(155,p)){a.te=s(l,1),a.$emit("tUNARY_NUM",a.$tok(a.ts,s(a.ts,1)),a.ts,s(a.ts,1)),l=t(l,1),a.cs=516,l=s(l,1),j=!0,g=_;break}else if(n(156,p)){a.te=s(l,1),F=A=a.$tok()["$[]"](0).$chr(),a.strings.$push_literal(F,A,a.ts),l=t(l,1),a.cs=128,j=!0,g=w;break}else if(n(157,p)){a.te=s(l,1),O=[a.source_buffer.$slice(a.ts,1).$chr(),a.$tok()["$[]"](-1).$chr()],F=O[0],A=O[1],O,a.strings.$push_literal(F,A,a.ts),a.cs=128,j=!0,g=w;break}else if(n(158,p)){a.te=s(l,1),O=[a.$tok()["$[]"](v(0,-2,!1)),a.$tok()["$[]"](-1).$chr()],F=O[0],A=O[1],O,a.strings.$push_literal(F,A,a.ts),a.cs=128,j=!0,g=w;break}else if(n(159,p)){a.te=s(l,1),l=t(l,1),l=t(l,1),a.$emit("tSYMBEG",a.$tok(a.ts,s(a.ts,1)),a.ts,s(a.ts,1)),a.cs=134,j=!0,g=w;break}else if(n(160,p)){a.te=s(l,1),O=[a.$tok(),a.$tok()["$[]"](-1).$chr()],F=O[0],A=O[1],O,a.strings.$push_literal(F,A,a.ts),a.cs=128,j=!0,g=w;break}else if(n(161,p)){a.te=s(l,1),a.$emit("tSYMBOL",a.$tok(s(a.ts,1),s(a.ts,2))),a.cs=516,l=s(l,1),j=!0,g=_;break}else if(n(162,p)){a.te=s(l,1),D=a.$tok(s(a.ts,1)),i(c(a.version,33))&&i(D["$start_with?"]("$0"))&&i(u(D.$length(),2))&&a.$diagnostic("error","gvar_name",new Map([["name",D]]),a.$range(s(a.ts,1),a.te)),a.$emit("tSYMBOL",D,a.ts),a.cs=516,l=s(l,1),j=!0,g=_;break}else if(n(163,p)){if(a.te=s(l,1),L=a.strings.$read_character_constant(a.ts),O=b(L),l=O[0]==null?o:O[0],W=O[1]==null?o:O[1],L,l=t(l,1),i(a.token_queue["$empty?"]())){a.cs=W,j=!0,g=w;break}a.cs=W,l=s(l,1),j=!0,g=_;break}else if(n(164,p))a.te=s(l,1),a.$diagnostic("fatal","incomplete_escape",o,a.$range(a.ts,s(a.ts,1)));else if(n(165,p)){a.te=s(l,1),a.$emit_table(E("PUNCTUATION_BEGIN")),l=s(l,1),j=!0,g=_;break}else if(n(166,p)){a.te=s(l,1),l=t(l,1),i(a["$version?"](18))?(oe=a.$tok(a.ts,t(a.te,2)),a.$emit(i(a.source_buffer.$slice(a.ts,1)["$=~"](/[A-Z]/))?"tCONSTANT":"tIDENTIFIER",oe,a.ts,t(a.te,2)),l=t(l,1),h(a.static_env["$nil?"]())&&i(a.static_env["$declared?"](oe))?a.cs=516:a.cs=a.$arg_or_cmdarg(M)):(a.$emit("tLABEL",a.$tok(a.ts,t(a.te,2)),a.ts,t(a.te,1)),a.cs=501),l=s(l,1),j=!0,g=_;break}else if(n(167,p)){a.te=s(l,1),R=t(a.te,1)["$=="](a.newline_s),B=!1,N=i(R)?t(a.te,1):a.te,i(c(a.version,30))?i(a.lambda_stack["$any?"]())&&r(s(a.lambda_stack.$last(),1),a.paren_nest)?a.$emit("tDOT3","...".$freeze(),a.ts,N):(a.$emit("tBDOT3","...".$freeze(),a.ts,N),i(c(a.version,31))&&i(R)&&i(a.context.$in_argdef())&&(a.$emit("tNL",t(a.te,1),a.te),B=!0)):i(c(a.version,27))?a.$emit("tBDOT3","...".$freeze(),a.ts,N):a.$emit("tDOT3","...".$freeze(),a.ts,N),i(R)&&h(B)&&(l=t(l,1)),a.cs=345,l=s(l,1),j=!0,g=_;break}else if(n(168,p)){a.te=s(l,1),a.$emit("tIDENTIFIER",te,ue,se),l=t(se,1),h(a.static_env["$nil?"]())&&i(a.static_env["$declared?"](te))&&i(m(a.version,25))?a.cs=247:a.cs=307,l=s(l,1),j=!0,g=_;break}else if(n(169,p)){a.te=s(l,1),l=t(a.ts,1),a.cs_before_block_comment=a.cs,a.cs=710,j=!0,g=w;break}else if(n(170,p)){a.te=s(l,1),l=t(a.ts,1),a.cs=516,j=!0,g=w;break}else if(n(171,p)){a.te=s(l,1),l=t(l,1),l=s(l,1),j=!0,g=_;break}else if(n(172,p)){a.te=l,l=t(l,1),a.$emit("tUNARY_NUM",a.$tok(a.ts,s(a.ts,1)),a.ts,s(a.ts,1)),l=t(l,1),a.cs=516,l=s(l,1),j=!0,g=_;break}else if(n(173,p)){a.te=l,l=t(l,1),a.$emit("tSTAR","*".$freeze()),l=s(l,1),j=!0,g=_;break}else if(n(174,p))a.te=l,l=t(l,1),a.$diagnostic("fatal","string_eof",o,a.$range(a.ts,s(a.ts,1)));else if(n(175,p))if(a.te=l,l=t(l,1),a.$tok(a.ts,Z)["$=~"](/^<<(-?)(~?)(["'`]?)(.*)\3$/m),me=i(C=((O=d["~"])===o?o:O["$[]"](1))["$empty?"]()["$!"]())?C:((O=d["~"])===o?o:O["$[]"](2))["$empty?"]()["$!"](),J=((O=d["~"])===o?o:O["$[]"](2))["$empty?"]()["$!"](),F=i(((O=d["~"])===o?o:O["$[]"](3))["$empty?"]())?'<<"'.$freeze():s("<<".$freeze(),(O=d["~"])===o?o:O["$[]"](3)),A=(O=d["~"])===o?o:O["$[]"](4),i(c(a.version,27))?(i(u(A.$count(`
`),0))||i(u(A.$count(` `),0)))&&a.$diagnostic("error","unterminated_heredoc_id",o,a.$range(a.ts,s(a.ts,1))):i(c(a.version,24))&&i(u(A.$count(`
`),0))&&(i(A["$end_with?"](`
`))?(a.$diagnostic("warning","heredoc_id_ends_with_nl",o,a.$range(a.ts,s(a.ts,1))),A=A.$rstrip()):a.$diagnostic("fatal","heredoc_id_has_newline",o,a.$range(a.ts,s(a.ts,1)))),i(J)&&i(a["$version?"](18,19,20,21,22))){a.$emit("tLSHFT","<<".$freeze(),a.ts,s(a.ts,2)),l=s(a.ts,1),a.cs=345,l=s(l,1),j=!0,g=_;break}else a.strings.$push_literal(F,A,a.ts,Z,me,J),i(C=a.strings.$herebody_s())?C:a.strings["$herebody_s="](fe),l=t(a.strings.$herebody_s(),1),a.cs=128;else if(n(176,p))a.te=l,l=t(l,1),a.$diagnostic("error","unterminated_heredoc_id",o,a.$range(a.ts,s(a.ts,1)));else if(n(177,p)){a.te=l,l=t(l,1),a.$emit("tSYMBOL",a.$tok(s(a.ts,1),x),a.ts,x),l=t(x,1),a.cs=516,l=s(l,1),j=!0,g=_;break}else if(n(178,p)){a.te=l,l=t(l,1),D=a.$tok(s(a.ts,1)),i(c(a.version,33))&&i(D["$start_with?"]("$0"))&&i(u(D.$length(),2))&&a.$diagnostic("error","gvar_name",new Map([["name",D]]),a.$range(s(a.ts,1),a.te)),a.$emit("tSYMBOL",D,a.ts),a.cs=516,l=s(l,1),j=!0,g=_;break}else if(n(179,p)){a.te=l,l=t(l,1),a.$emit_colon_with_digits(l,x,ee),a.cs=516,l=s(l,1),j=!0,g=_;break}else if(n(180,p))a.te=l,l=t(l,1),a.$diagnostic("fatal","incomplete_escape",o,a.$range(a.ts,s(a.ts,1)));else if(n(181,p)){a.te=l,l=t(l,1),r(a.lambda_stack.$last(),a.paren_nest)?(a.lambda_stack.$pop(),a.command_start=!0,a.$emit("tLAMBEG","{".$freeze())):a.$emit("tLBRACE","{".$freeze()),a.paren_nest=s(a.paren_nest,1),l=s(l,1),j=!0,g=_;break}else if(n(182,p)){a.te=l,l=t(l,1),a.$emit("tLBRACK","[".$freeze()),l=s(l,1),j=!0,g=_;break}else if(n(183,p)){a.te=l,l=t(l,1),a.$emit("tLPAREN","(".$freeze()),l=s(l,1),j=!0,g=_;break}else if(n(184,p)){a.te=l,l=t(l,1),a.$emit_table(E("PUNCTUATION_BEGIN")),l=s(l,1),j=!0,g=_;break}else if(n(185,p)){a.te=l,l=t(l,1),a.$emit("kRESCUE","rescue".$freeze(),a.ts,x),l=t(x,1),a.cs=321,l=s(l,1),j=!0,g=_;break}else if(n(186,p)){a.te=l,l=t(l,1),i(c(a.version,27))?a.$emit("tBDOT2"):a.$emit("tDOT2"),a.cs=345,l=s(l,1),j=!0,g=_;break}else if(n(187,p)){a.te=l,l=t(l,1),R=t(a.te,1)["$=="](a.newline_s),B=!1,N=i(R)?t(a.te,1):a.te,i(c(a.version,30))?i(a.lambda_stack["$any?"]())&&r(s(a.lambda_stack.$last(),1),a.paren_nest)?a.$emit("tDOT3","...".$freeze(),a.ts,N):(a.$emit("tBDOT3","...".$freeze(),a.ts,N),i(c(a.version,31))&&i(R)&&i(a.context.$in_argdef())&&(a.$emit("tNL",t(a.te,1),a.te),B=!0)):i(c(a.version,27))?a.$emit("tBDOT3","...".$freeze(),a.ts,N):a.$emit("tDOT3","...".$freeze(),a.ts,N),i(R)&&h(B)&&(l=t(l,1)),a.cs=345,l=s(l,1),j=!0,g=_;break}else if(n(188,p)){a.te=l,l=t(l,1),l=t(a.ts,1),a.cs=516,j=!0,g=w;break}else if(n(189,p))if(a.te=l,l=t(l,1),a.$emit("tIDENTIFIER"),h(a.static_env["$nil?"]())&&i(a.static_env["$declared?"](a.$tok()))){a.cs=247,l=s(l,1),j=!0,g=_;break}else if(i(c(a.version,32))&&i(a.$tok()["$=~"](/^_[1-9]$/))){a.cs=247,l=s(l,1),j=!0,g=_;break}else{a.cs=a.$arg_or_cmdarg(M),l=s(l,1),j=!0,g=_;break}else if(n(190,p))a.te=l,l=t(l,1);else if(n(191,p)){a.te=l,l=t(l,1),l=t(a.ts,1),a.cs_before_block_comment=a.cs,a.cs=710,j=!0,g=w;break}else if(n(192,p)){a.te=l,l=t(l,1),l=t(a.ts,1),a.cs=516,j=!0,g=w;break}else if(n(193,p))l=t(a.te,1),a.$diagnostic("fatal","string_eof",o,a.$range(a.ts,s(a.ts,1)));else if(n(194,p))l=t(a.te,1),a.$diagnostic("error","unterminated_heredoc_id",o,a.$range(a.ts,s(a.ts,1)));else if(n(195,p))if(l=t(a.te,1),a.$emit("tIDENTIFIER"),h(a.static_env["$nil?"]())&&i(a.static_env["$declared?"](a.$tok()))){a.cs=247,l=s(l,1),j=!0,g=_;break}else if(i(c(a.version,32))&&i(a.$tok()["$=~"](/^_[1-9]$/))){a.cs=247,l=s(l,1),j=!0,g=_;break}else{a.cs=a.$arg_or_cmdarg(M),l=s(l,1),j=!0,g=_;break}else if(n(196,p))l=t(a.te,1);else if(n(197,p)){l=t(a.te,1),l=t(a.ts,1),a.cs=516,j=!0,g=w;break}else if(n(198,p))if(n(60,C=a.act)){l=t(a.te,1),a.$emit("tUNARY_NUM",a.$tok(a.ts,s(a.ts,1)),a.ts,s(a.ts,1)),l=t(l,1),a.cs=516,l=s(l,1),j=!0,g=_;break}else if(n(67,C))l=t(a.te,1),a.$diagnostic("error","unterminated_heredoc_id",o,a.$range(a.ts,s(a.ts,1)));else if(n(76,C))if(l=t(a.te,1),i(c(a.version,27))){a.$emit("tPIPE",a.$tok(a.ts,s(a.ts,1)),a.ts,s(a.ts,1)),l=t(l,1),a.cs=345,l=s(l,1),j=!0,g=_;break}else{l=t(l,2),a.cs=516,j=!0,g=w;break}else if(n(80,C)){l=t(a.te,1),a.$emit_table(E("PUNCTUATION_BEGIN")),l=s(l,1),j=!0,g=_;break}else if(n(81,C)){l=t(a.te,1),a.$emit("kRESCUE","rescue".$freeze(),a.ts,x),l=t(x,1),a.cs=321,l=s(l,1),j=!0,g=_;break}else if(n(82,C)){l=t(a.te,1),a.$emit_table(E("KEYWORDS_BEGIN")),a.command_start=!0,a.cs=508,l=s(l,1),j=!0,g=_;break}else if(n(86,C)){l=t(a.te,1),l=t(a.ts,1),a.cs=516,j=!0,g=w;break}else if(n(87,C))if(l=t(a.te,1),a.$emit("tIDENTIFIER"),h(a.static_env["$nil?"]())&&i(a.static_env["$declared?"](a.$tok()))){a.cs=247,l=s(l,1),j=!0,g=_;break}else if(i(c(a.version,32))&&i(a.$tok()["$=~"](/^_[1-9]$/))){a.cs=247,l=s(l,1),j=!0,g=_;break}else{a.cs=a.$arg_or_cmdarg(M),l=s(l,1),j=!0,g=_;break}else if(n(91,C)){l=t(a.te,1),l=t(a.ts,1),a.cs=516,j=!0,g=w;break}else o;else if(n(199,p)){a.te=s(l,1),l=t(l,1),a.cs=345,j=!0,g=w;break}else if(n(200,p)){a.te=s(l,1),l=t(l,1),l=s(l,1),j=!0,g=_;break}else if(n(201,p))a.te=l,l=t(l,1);else if(n(202,p))if(a.te=l,l=t(l,1),i(a.context.$in_kwarg())){l=t(l,1),a.cs=516,j=!0,g=w;break}else{a.cs=710,j=!0,g=w;break}else if(n(203,p)){a.te=l,l=t(l,1),l=t(l,1),a.cs=345,j=!0,g=w;break}else if(n(204,p)){a.te=s(l,1),l=t(a.ts,1),a.cs=516,j=!0,g=w;break}else if(n(205,p)){a.te=s(l,1),a.strings.$push_literal(a.$tok(),a.$tok(),a.ts),a.cs=128,j=!0,g=w;break}else if(n(206,p)){a.te=s(l,1),l=t(l,1),a.cs=345,j=!0,g=w;break}else if(n(207,p)){a.te=s(l,1),l=t(l,1),l=s(l,1),j=!0,g=_;break}else if(n(208,p))a.te=l,l=t(l,1);else if(n(209,p)){a.te=l,l=t(l,1),a.cs=710,j=!0,g=w;break}else if(n(210,p)){a.te=l,l=t(l,1),l=t(l,1),a.cs=345,j=!0,g=w;break}else if(n(211,p)){l=t(a.te,1),l=t(l,1),a.cs=345,j=!0,g=w;break}else if(n(212,p))a.act=104;else if(n(213,p))a.act=105;else if(n(214,p))a.act=106;else if(n(215,p))a.act=107;else if(n(216,p))a.act=108;else if(n(217,p))a.act=109;else if(n(218,p))a.act=110;else if(n(219,p))a.act=111;else if(n(220,p))a.act=112;else if(n(221,p))a.act=113;else if(n(222,p))a.act=115;else if(n(223,p))a.act=116;else if(n(224,p))a.act=117;else if(n(225,p))a.act=119;else if(n(226,p))a.act=123;else if(n(227,p))a.act=124;else if(n(228,p))a.act=126;else if(n(229,p))a.act=127;else if(n(230,p)){a.te=s(l,1),a.$emit("tLAMBDA","->".$freeze(),a.ts,s(a.ts,2)),a.lambda_stack.$push(a.paren_nest),a.cs=247,l=s(l,1),j=!0,g=_;break}else if(n(231,p)){a.te=s(l,1),a.$emit_singleton_class(),a.cs=508,l=s(l,1),j=!0,g=_;break}else if(n(232,p)){a.te=s(l,1),O=[a.$tok(),a.$tok()["$[]"](-1).$chr()],F=O[0],A=O[1],O,a.strings.$push_literal(F,A,a.ts,o,!1,!1,!0),a.cs=128,j=!0,g=w;break}else if(n(233,p)){a.te=s(l,1),l=t(a.ts,1),a.stack["$[]="](a.top,a.cs),a.top=s(a.top,1),a.cs=129,j=!0,g=w;break}else if(n(234,p)){a.te=s(l,1),a.$emit_table(E("PUNCTUATION")),a.cs=255,l=s(l,1),j=!0,g=_;break}else if(n(235,p)){a.te=s(l,1),a.$emit_table(E("PUNCTUATION")),a.cs=508,l=s(l,1),j=!0,g=_;break}else if(n(236,p)){a.te=s(l,1),a.$emit_table(E("PUNCTUATION")),a.cs=508,l=s(l,1),j=!0,g=_;break}else if(n(237,p)){a.te=s(l,1),a.$emit("tOP_ASGN",a.$tok(a.ts,t(a.te,1))),a.cs=345,l=s(l,1),j=!0,g=_;break}else if(n(238,p)){a.te=s(l,1),a.$emit("tEH","?".$freeze()),a.cs=508,l=s(l,1),j=!0,g=_;break}else if(n(239,p)){a.te=s(l,1),r(a.paren_nest,0)&&a.$diagnostic("warning","triple_dot_at_eol",o,a.$range(a.ts,t(a.te,1))),a.$emit("tDOT3","...".$freeze(),a.ts,t(a.te,1)),l=t(l,1),a.cs=345,l=s(l,1),j=!0,g=_;break}else if(n(240,p)){a.te=s(l,1),a.$emit_table(E("PUNCTUATION")),a.cs=345,l=s(l,1),j=!0,g=_;break}else if(n(241,p)){a.te=s(l,1),a.$emit("tSEMI",";".$freeze()),a.command_start=!0,a.cs=508,l=s(l,1),j=!0,g=_;break}else if(n(242,p))a.te=s(l,1),a.$diagnostic("error","bare_backslash",o,a.$range(a.ts,s(a.ts,1))),l=t(l,1);else if(n(243,p))a.te=s(l,1),a.$diagnostic("fatal","unexpected",new Map([["character",a.$tok().$inspect()["$[]"](v(1,-2,!1))]]));else if(n(244,p)){a.te=s(l,1),l=t(l,1),l=s(l,1),j=!0,g=_;break}else if(n(245,p)){a.te=l,l=t(l,1),r(a.lambda_stack.$last(),a.paren_nest)?(a.lambda_stack.$pop(),r(a.$tok(),"{".$freeze())?a.$emit("tLAMBEG","{".$freeze()):a.$emit("kDO_LAMBDA","do".$freeze())):r(a.$tok(),"{".$freeze())?a.$emit("tLCURLY","{".$freeze()):a.$emit_do(),r(a.$tok(),"{".$freeze())&&(a.paren_nest=s(a.paren_nest,1)),a.command_start=!0,a.cs=508,l=s(l,1),j=!0,g=_;break}else if(n(246,p)){a.te=l,l=t(l,1),a.$emit_table(E("KEYWORDS")),a.cs=134,l=s(l,1),j=!0,g=_;break}else if(n(247,p)){a.te=l,l=t(l,1),a.$emit_singleton_class(),a.cs=508,l=s(l,1),j=!0,g=_;break}else if(n(248,p)){a.te=l,l=t(l,1),a.$emit_table(E("KEYWORDS")),a.command_start=!0,a.cs=508,l=s(l,1),j=!0,g=_;break}else if(n(249,p)){a.te=l,l=t(l,1),S=a.$numeric_literal_int(),i(a["$version?"](18,19,20))?(a.$emit("tINTEGER",S.$to_i(a.num_base),a.ts,a.num_suffix_s),l=t(a.num_suffix_s,1)):l=a.num_xfrm.$call(S.$to_i(a.num_base),l),l=s(l,1),j=!0,g=_;break}else if(n(250,p))a.te=l,l=t(l,1),a.$diagnostic("error","no_dot_digit_literal");else if(n(251,p)){a.te=l,l=t(l,1),S=a.$tok(a.ts,a.num_suffix_s),i(a["$version?"](18,19,20))?(a.$emit("tFLOAT",a.$Float(S),a.ts,a.num_suffix_s),l=t(a.num_suffix_s,1)):l=a.num_xfrm.$call(S,l),l=s(l,1),j=!0,g=_;break}else if(n(252,p)){a.te=l,l=t(l,1),a.$emit("tCONSTANT"),a.cs=a.$arg_or_cmdarg(M),l=s(l,1),j=!0,g=_;break}else if(n(253,p)){a.te=l,l=t(l,1),a.$emit("tCONSTANT",a.$tok(a.ts,x),a.ts,x),l=t(x,1),l=s(l,1),j=!0,g=_;break}else if(n(254,p)){a.te=l,l=t(l,1),l=t(a.ts,1),a.stack["$[]="](a.top,a.cs),a.top=s(a.top,1),a.cs=129,j=!0,g=w;break}else if(n(255,p)){a.te=l,l=t(l,1),a.$emit_table(E("PUNCTUATION")),a.cs=255,l=s(l,1),j=!0,g=_;break}else if(n(256,p))if(a.te=l,l=t(l,1),a.$emit("tIDENTIFIER"),h(a.static_env["$nil?"]())&&i(a.static_env["$declared?"](a.$tok()))){a.cs=247,l=s(l,1),j=!0,g=_;break}else if(i(c(a.version,32))&&i(a.$tok()["$=~"](/^_[1-9]$/))){a.cs=247,l=s(l,1),j=!0,g=_;break}else{a.cs=a.$arg_or_cmdarg(M),l=s(l,1),j=!0,g=_;break}else if(n(257,p)){a.te=l,l=t(l,1),r(x,a.te)?a.$emit("tFID"):(a.$emit("tIDENTIFIER",a.$tok(a.ts,x),a.ts,x),l=t(x,1)),a.cs=276,l=s(l,1),j=!0,g=_;break}else if(n(258,p)){a.te=l,l=t(l,1),a.$emit_table(E("PUNCTUATION")),a.cs=508,l=s(l,1),j=!0,g=_;break}else if(n(259,p)){a.te=l,l=t(l,1),a.$emit_table(E("PUNCTUATION")),a.cs=508,l=s(l,1),j=!0,g=_;break}else if(n(260,p)){a.te=l,l=t(l,1),a.$emit_table(E("PUNCTUATION")),a.cs=345,l=s(l,1),j=!0,g=_;break}else if(n(261,p)){a.te=l,l=t(l,1),a.$emit_rbrace_rparen_rbrack(),(r(a.$tok(),"}".$freeze())||r(a.$tok(),"]".$freeze()))&&(i(c(a.version,25))?a.cs=516:a.cs=313),l=s(l,1),j=!0,g=_;break}else if(n(262,p)){a.te=l,l=t(l,1),a.$emit("tLBRACK2","[".$freeze()),a.cs=345,l=s(l,1),j=!0,g=_;break}else if(n(263,p)){a.te=l,l=t(l,1),a.$emit_table(E("PUNCTUATION")),a.cs=345,l=s(l,1),j=!0,g=_;break}else if(n(264,p))a.te=l,l=t(l,1);else if(n(265,p)){a.te=l,l=t(l,1),a.cs=696,j=!0,g=w;break}else if(n(266,p))a.te=l,l=t(l,1),a.$diagnostic("fatal","unexpected",new Map([["character",a.$tok().$inspect()["$[]"](v(1,-2,!1))]]));else if(n(267,p)){l=t(a.te,1),S=a.$numeric_literal_int(),i(a["$version?"](18,19,20))?(a.$emit("tINTEGER",S.$to_i(a.num_base),a.ts,a.num_suffix_s),l=t(a.num_suffix_s,1)):l=a.num_xfrm.$call(S.$to_i(a.num_base),l),l=s(l,1),j=!0,g=_;break}else if(n(268,p))l=t(a.te,1),a.$diagnostic("error","no_dot_digit_literal");else if(n(269,p)){l=t(a.te,1),S=a.$tok(a.ts,a.num_suffix_s),i(a["$version?"](18,19,20))?(a.$emit("tFLOAT",a.$Float(S),a.ts,a.num_suffix_s),l=t(a.num_suffix_s,1)):l=a.num_xfrm.$call(S,l),l=s(l,1),j=!0,g=_;break}else if(n(270,p))l=t(a.te,1),a.$diagnostic("fatal","unexpected",new Map([["character",a.$tok().$inspect()["$[]"](v(1,-2,!1))]]));else if(n(271,p))if(n(104,C=a.act)){l=t(a.te,1),r(a.lambda_stack.$last(),a.paren_nest)?(a.lambda_stack.$pop(),r(a.$tok(),"{".$freeze())?a.$emit("tLAMBEG","{".$freeze()):a.$emit("kDO_LAMBDA","do".$freeze())):r(a.$tok(),"{".$freeze())?a.$emit("tLCURLY","{".$freeze()):a.$emit_do(),r(a.$tok(),"{".$freeze())&&(a.paren_nest=s(a.paren_nest,1)),a.command_start=!0,a.cs=508,l=s(l,1),j=!0,g=_;break}else if(n(105,C)){l=t(a.te,1),a.$emit_table(E("KEYWORDS")),a.cs=134,l=s(l,1),j=!0,g=_;break}else if(n(106,C)){l=t(a.te,1),a.$emit_singleton_class(),a.cs=508,l=s(l,1),j=!0,g=_;break}else if(n(107,C)){l=t(a.te,1),a.$emit_table(E("KEYWORDS")),a.cs=345,l=s(l,1),j=!0,g=_;break}else if(n(108,C)){l=t(a.te,1),a.$emit_table(E("KEYWORDS")),a.command_start=!0,a.cs=508,l=s(l,1),j=!0,g=_;break}else if(n(109,C)){l=t(a.te,1),a.$emit_table(E("KEYWORDS")),a.cs=321,l=s(l,1),j=!0,g=_;break}else if(n(110,C))if(l=t(a.te,1),a.$emit_table(E("KEYWORDS")),i(a["$version?"](18))&&r(a.$tok(),"not".$freeze())){a.cs=345,l=s(l,1),j=!0,g=_;break}else{a.cs=276,l=s(l,1),j=!0,g=_;break}else if(n(111,C)){l=t(a.te,1),i(a["$version?"](18))?(a.$emit("tIDENTIFIER"),h(a.static_env["$nil?"]())&&i(a.static_env["$declared?"](a.$tok()))||(a.cs=a.$arg_or_cmdarg(M))):a.$emit("k__ENCODING__","__ENCODING__".$freeze()),l=s(l,1),j=!0,g=_;break}else if(n(112,C)){l=t(a.te,1),a.$emit_table(E("KEYWORDS")),l=s(l,1),j=!0,g=_;break}else if(n(113,C)){l=t(a.te,1),S=a.$numeric_literal_int(),i(a["$version?"](18,19,20))?(a.$emit("tINTEGER",S.$to_i(a.num_base),a.ts,a.num_suffix_s),l=t(a.num_suffix_s,1)):l=a.num_xfrm.$call(S.$to_i(a.num_base),l),l=s(l,1),j=!0,g=_;break}else if(n(115,C))if(l=t(a.te,1),i(a["$version?"](18,19,20)))a.$diagnostic("error","trailing_in_number",new Map([["character",a.$tok(t(a.te,1),a.te)]]),a.$range(t(a.te,1),a.te));else{a.$emit("tINTEGER",a.$tok(a.ts,t(a.te,1)).$to_i(),a.ts,t(a.te,1)),l=t(l,1),l=s(l,1),j=!0,g=_;break}else if(n(116,C))if(l=t(a.te,1),i(a["$version?"](18,19,20)))a.$diagnostic("error","trailing_in_number",new Map([["character",a.$tok(t(a.te,1),a.te)]]),a.$range(t(a.te,1),a.te));else{a.$emit("tFLOAT",a.$tok(a.ts,t(a.te,1)).$to_f(),a.ts,t(a.te,1)),l=t(l,1),l=s(l,1),j=!0,g=_;break}else if(n(117,C)){l=t(a.te,1),S=a.$tok(a.ts,a.num_suffix_s),i(a["$version?"](18,19,20))?(a.$emit("tFLOAT",a.$Float(S),a.ts,a.num_suffix_s),l=t(a.num_suffix_s,1)):l=a.num_xfrm.$call(S,l),l=s(l,1),j=!0,g=_;break}else if(n(119,C)){l=t(a.te,1),a.$emit("tCONSTANT"),a.cs=a.$arg_or_cmdarg(M),l=s(l,1),j=!0,g=_;break}else if(n(123,C))if(l=t(a.te,1),a.$emit("tIDENTIFIER"),h(a.static_env["$nil?"]())&&i(a.static_env["$declared?"](a.$tok()))){a.cs=247,l=s(l,1),j=!0,g=_;break}else if(i(c(a.version,32))&&i(a.$tok()["$=~"](/^_[1-9]$/))){a.cs=247,l=s(l,1),j=!0,g=_;break}else{a.cs=a.$arg_or_cmdarg(M),l=s(l,1),j=!0,g=_;break}else if(n(124,C)){l=t(a.te,1),r(x,a.te)?a.$emit("tFID"):(a.$emit("tIDENTIFIER",a.$tok(a.ts,x),a.ts,x),l=t(x,1)),a.cs=276,l=s(l,1),j=!0,g=_;break}else if(n(126,C)){l=t(a.te,1),a.$emit_table(E("PUNCTUATION")),a.cs=508,l=s(l,1),j=!0,g=_;break}else if(n(127,C)){l=t(a.te,1),a.$emit_table(E("PUNCTUATION")),a.cs=345,l=s(l,1),j=!0,g=_;break}else o;else if(n(272,p))a.act=140;else if(n(273,p))a.act=144;else if(n(274,p))if(a.te=s(l,1),a.$emit("tNL",o,a.newline_s,s(a.newline_s,1)),i(m(a.version,27))){l=t(l,1),a.cs=710,l=s(l,1),j=!0,g=_;break}else{a.$emit("tBDOT3"),a.cs=345,l=s(l,1),j=!0,g=_;break}else if(n(275,p)){a.te=s(l,1),l=t(x,1),a.cs=516,j=!0,g=w;break}else if(n(276,p)){a.te=s(l,1),a.$emit("tNL",o,a.newline_s,s(a.newline_s,1)),l=t(l,1),a.cs=710,l=s(l,1),j=!0,g=_;break}else if(n(277,p)){if(a.te=l,l=t(l,1),i(m(a.version,27))){a.$emit("tNL",o,a.newline_s,s(a.newline_s,1)),l=t(l,1),a.cs=710,l=s(l,1),j=!0,g=_;break}}else if(n(278,p))if(a.te=l,l=t(l,1),a.$emit("tNL",o,a.newline_s,s(a.newline_s,1)),i(m(a.version,27))){l=t(l,1),a.cs=710,l=s(l,1),j=!0,g=_;break}else{a.$emit("tBDOT2"),a.cs=345,l=s(l,1),j=!0,g=_;break}else if(n(279,p)){a.te=l,l=t(l,1),l=t(x,1),a.cs=516,j=!0,g=w;break}else if(n(280,p)){a.te=l,l=t(l,1),a.$emit("tNL",o,a.newline_s,s(a.newline_s,1)),l=t(l,1),a.cs=710,l=s(l,1),j=!0,g=_;break}else if(n(281,p)){if(l=t(a.te,1),i(m(a.version,27))){a.$emit("tNL",o,a.newline_s,s(a.newline_s,1)),l=t(l,1),a.cs=710,l=s(l,1),j=!0,g=_;break}}else if(n(282,p)){l=t(a.te,1),a.$emit("tNL",o,a.newline_s,s(a.newline_s,1)),l=t(l,1),a.cs=710,l=s(l,1),j=!0,g=_;break}else if(n(283,p))if(n(140,C=a.act)){if(l=t(a.te,1),i(m(a.version,27))){a.$emit("tNL",o,a.newline_s,s(a.newline_s,1)),l=t(l,1),a.cs=710,l=s(l,1),j=!0,g=_;break}}else if(n(144,C)){l=t(a.te,1),a.$emit("tNL",o,a.newline_s,s(a.newline_s,1)),l=t(l,1),a.cs=710,l=s(l,1),j=!0,g=_;break}else o;else if(n(284,p)){a.te=s(l,1),a.$emit_comment(a.eq_begin_s,a.te),a.cs=a.cs_before_block_comment,j=!0,g=w;break}else if(n(285,p))a.te=s(l,1);else if(n(286,p)){a.te=l,l=t(l,1),a.$emit_comment(a.eq_begin_s,a.te),a.cs=a.cs_before_block_comment,j=!0,g=w;break}else if(n(287,p))a.te=l,l=t(l,1),a.$diagnostic("fatal","embedded_document",o,a.$range(a.eq_begin_s,s(a.eq_begin_s,"=begin".$length())));else if(n(288,p)){a.te=s(l,1),a.eq_begin_s=a.ts,a.cs=704,j=!0,g=w;break}else if(n(289,p))a.te=s(l,1),l=t(I,3);else if(n(290,p)){a.te=s(l,1),M=!0,l=t(l,1),a.cs=508,j=!0,g=w;break}else if(n(291,p)){a.te=s(l,1),l=t(l,1),l=s(l,1),j=!0,g=_;break}else if(n(292,p))a.te=l,l=t(l,1);else if(n(293,p)){a.te=l,l=t(l,1),a.eq_begin_s=a.ts,a.cs=704,j=!0,g=w;break}else if(n(294,p)){a.te=l,l=t(l,1),M=!0,l=t(l,1),a.cs=508,j=!0,g=w;break}else if(n(295,p)){l=t(a.te,1),M=!0,l=t(l,1),a.cs=508,j=!0,g=w;break}else if(n(296,p)){a.te=s(l,1),L=a.strings.$advance(l),O=b(L),l=O[0]==null?o:O[0],W=O[1]==null?o:O[1],L,l=t(l,1),a.cs=W,l=s(l,1),j=!0,g=_;break}else o;if(i(j))continue}if(i(f(g,w))){for(k=re["$[]"](a.cs),T=P["$[]"](k),k=s(k,1);i(u(T,0));)switch(T=t(T,1),k=s(k,1),P["$[]"](t(k,1)).valueOf()){case 51:a.ts=o;break;default:o}if(i(j))continue;if(r(a.cs,0)){g=_;continue}if(l=s(l,1),y(l,I)){g=G;continue}}if(i(f(g,ne))&&r(l,$)&&i(u(ie["$[]"](a.cs),0))){H=t(ie["$[]"](a.cs),1),g=Q;continue}if(i(f(g,_)))break}return i(!1)&&le,a.p=l,i(a.token_queue["$any?"]())?a.token_queue.$shift():r(a.cs,z.$lex_error())?[!1,["$error".$freeze(),a.$range(t(l,1),l)]]:($=a.source_pts.$size(),[!1,["$eof".$freeze(),a.$range($,$)]])}),C.$protected(),a(C,"$version?",function(){var o=this,n=_(arguments),s=n;return s["$include?"](o.version)},-1),a(C,"$stack_pop",function(){var n=this;return n.top=t(n.top,1),n.stack["$[]"](n.top)}),a(C,"$tok",function(n,s){var o=this;return n==null&&(n=o.ts),s==null&&(s=o.te),o.source_buffer.$slice(n,t(s,n))},-1),a(C,"$range",function(t,n){var s=this;return t==null&&(t=s.ts),n==null&&(n=s.te),p(p(E("Parser"),"Source"),"Range").$new(s.source_buffer,t,n)},-1),a(C,"$emit",function(t,n,s,a){var r=this,c=o;return n==null&&(n=r.$tok()),s==null&&(s=r.ts),a==null&&(a=r.te),c=[t,[n,r.$range(s,a)]],r.token_queue.$push(c),i(r.tokens)&&r.tokens.$push(c),c},-2),a(C,"$emit_table",function(t,n,s){var i=this,a=o;return n==null&&(n=i.ts),s==null&&(s=i.te),a=i.$tok(n,s),i.$emit(t["$[]"](a),a,n,s)},-2),a(C,"$emit_do",function(t){var n=this;return t==null&&(t=!1),i(n.cond["$active?"]())?n.$emit("kDO_COND","do".$freeze()):i(n.cmdarg["$active?"]())||i(t)?n.$emit("kDO_BLOCK","do".$freeze()):n.$emit("kDO","do".$freeze())},-1),a(C,"$arg_or_cmdarg",function(t){var n=this;return i(t)?n.$class().$lex_en_expr_cmdarg():n.$class().$lex_en_expr_arg()}),a(C,"$emit_comment",function(t,n){var s=this;return t==null&&(t=s.ts),n==null&&(n=s.te),i(s.comments)&&s.comments.$push(p(p(E("Parser"),"Source"),"Comment").$new(s.$range(t,n))),i(s.tokens)&&s.tokens.$push(["tCOMMENT",[s.$tok(t,n),s.$range(t,n)]]),o},-1),a(C,"$emit_comment_from_range",function(n,s){var o=this;return o.$emit_comment(o.sharp_s,r(n,s)?t(n,2):n)}),a(C,"$diagnostic",function(t,n,s,i,a){var r=this;return s==null&&(s=o),i==null&&(i=r.$range()),a==null&&(a=[]),r.diagnostics.$process(p(E("Parser"),"Diagnostic").$new(t,n,s,i,a))},-3),a(C,"$e_lbrace",function(){var t=this,n=o;return t.cond.$push(!1),t.cmdarg.$push(!1),n=t.strings.$literal(),i(n)?n.$start_interp_brace():o}),a(C,"$numeric_literal_int",function(){var n=this,a=o,l=o,c=o,a=n.$tok(n.num_digits_s,n.num_suffix_s);return i(a["$end_with?"]("_".$freeze()))?n.$diagnostic("error","trailing_in_number",new Map([["character","_".$freeze()]]),n.$range(t(n.te,1),n.te)):i(a["$empty?"]())&&r(n.num_base,8)&&i(n["$version?"](18))?a="0".$freeze():i(a["$empty?"]())?n.$diagnostic("error","empty_numeric"):r(n.num_base,8)&&i(l=a.$index(/[89]/))&&(c=s(n.num_digits_s,l),n.$diagnostic("error","invalid_octal",o,n.$range(c,s(c,1)))),a}),a(C,"$on_newline",function(t){var n=this;return n.strings.$on_newline(t)}),a(C,"$check_ambiguous_slash",function(t){var n=this;return r(n.$tok(t,s(t,1)),"/".$freeze())?i(m(n.version,30))?n.$diagnostic("warning","ambiguous_literal",o,n.$range(t,s(t,1))):n.$diagnostic("warning","ambiguous_regexp",o,n.$range(t,s(t,1))):o}),a(C,"$emit_global_var",function(t,n){var o=this;return t==null&&(t=o.ts),n==null&&(n=o.te),i(o.$tok(t,n)["$=~"](/^\$([1-9][0-9]*)$/))?o.$emit("tNTH_REF",o.$tok(s(t,1),n).$to_i(),t,n):i(o.$tok()["$=~"](/^\$([&`'+])$/))?o.$emit("tBACK_REF",o.$tok(t,n),t,n):o.$emit("tGVAR",o.$tok(t,n),t,n)},-1),a(C,"$emit_class_var",function(t,n){var s=this;return t==null&&(t=s.ts),n==null&&(n=s.te),i(s.$tok(t,n)["$=~"](/^@@[0-9]/))&&s.$diagnostic("error","cvar_name",new Map([["name",s.$tok(t,n)]])),s.$emit("tCVAR",s.$tok(t,n),t,n)},-1),a(C,"$emit_instance_var",function(t,n){var s=this;return t==null&&(t=s.ts),n==null&&(n=s.te),i(s.$tok(t,n)["$=~"](/^@[0-9]/))&&s.$diagnostic("error","ivar_name",new Map([["name",s.$tok(t,n)]])),s.$emit("tIVAR",s.$tok(t,n),t,n)},-1),a(C,"$emit_rbrace_rparen_rbrack",function(){var t=this;return t.$emit_table(E("PUNCTUATION")),i(m(t.version,24))?(t.cond.$lexpop(),t.cmdarg.$lexpop()):(t.cond.$pop(),t.cmdarg.$pop())}),a(C,"$emit_colon_with_digits",function(t,n,o){var a=this;return i(c(a.version,27))?a.$diagnostic("error",o,new Map([["name",a.$tok(n,a.te)]]),a.$range(n,a.te)):(a.$emit("tCOLON",a.$tok(a.ts,s(a.ts,1)),a.ts,s(a.ts,1)),t=a.ts),t}),a(C,"$emit_singleton_class",function(){var n=this;return n.$emit("kCLASS","class".$freeze(),n.ts,s(n.ts,5)),n.$emit("tLSHFT","<<".$freeze(),t(n.te,2),n.te)}),g(A[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"]])),g(A[0],"PUNCTUATION_BEGIN",new Map([["&","tAMPER"],["*","tSTAR"],["**","tDSTAR"],["+","tUPLUS"],["-","tUMINUS"],["::","tCOLON3"],["(","tLPAREN"],["{","tLBRACE"],["[","tLBRACK"]])),g(A[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"]])),g(A[0],"KEYWORDS_BEGIN",new Map([["if","kIF"],["unless","kUNLESS"],["while","kWHILE"],["until","kUNTIL"],["rescue","kRESCUE"],["defined?","kDEFINED"],["BEGIN","klBEGIN"],["END","klEND"]])),g(A[0],"ESCAPE_WHITESPACE",new Map([[" ","\\s"],[` `,`\\r`],[`
`,`\\n`],[" ","\\t"],[" ","\\v"],[" ","\\f"]])),l(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(t){var n,s;return t==null&&(t=o),(n=[t,(s=[t,"k"+t.$upcase()],l(E("KEYWORDS"),"[]=",s),s[s.length-1])],l(E("KEYWORDS_BEGIN"),"[]=",n),n[n.length-1])})}(w("Parser"),null,j)},Opal.modules["parser/lexer-F1"]=function(e){var w=e.klass,o=e.truthy,c=e.send,t=e.rb_minus,a=e.def,d=e.gvars,i=e.eqeq,p=e.const_set,n=e.rb_plus,v=e.to_ary,h=e.rb_le,m=e.rb_gt,b=e.neqeq,g=e.range,r=e.rb_ge,l=e.not,u=e.rb_lt,y=e.slice,j=[],_=e.$r(j),s=e.nil,f=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(j,_,O){var x=w(j,_,"Lexer"),k=[x].concat(O),C=e.$r(k),E=x.$$prototype;return E.version=E.source_buffer=E.source_pts=E.strings=E.cs=E.cmdarg_stack=E.cmdarg=E.cond_stack=E.cond=E.token_queue=E._lex_actions=E.p=E.command_start=E.ts=E.te=E.stack=E.top=E.act=E.context=E.static_env=E.newline_s=E.lambda_stack=E.paren_nest=E.num_base=E.num_suffix_s=E.num_xfrm=E.eq_begin_s=E.cs_before_block_comment=E.emit_rational=E.emit_imaginary=E.emit_imaginary_rational=E.emit_integer_re=E.emit_integer_if=E.emit_integer_rescue=E.emit_imaginary_float=E.emit_float_if=E.emit_float_rescue=E.emit_integer=E.emit_float=E.tokens=E.comments=E.sharp_s=E.diagnostics=E.num_digits_s=s,function(e){return e.$attr_accessor("_lex_trans_keys"),e.$private("_lex_trans_keys","_lex_trans_keys=")}(e.get_singleton_class(x),k),x["$_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(e){return e.$attr_accessor("_lex_key_spans"),e.$private("_lex_key_spans","_lex_key_spans=")}(e.get_singleton_class(x),k),x["$_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(e){return e.$attr_accessor("_lex_index_offsets"),e.$private("_lex_index_offsets","_lex_index_offsets=")}(e.get_singleton_class(x),k),x["$_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(e){return e.$attr_accessor("_lex_indicies"),e.$private("_lex_indicies","_lex_indicies=")}(e.get_singleton_class(x),k),x["$_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(e){return e.$attr_accessor("_lex_trans_targs"),e.$private("_lex_trans_targs","_lex_trans_targs=")}(e.get_singleton_class(x),k),x["$_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(e){return e.$attr_accessor("_lex_trans_actions"),e.$private("_lex_trans_actions","_lex_trans_actions=")}(e.get_singleton_class(x),k),x["$_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(e){return e.$attr_accessor("_lex_to_state_actions"),e.$private("_lex_to_state_actions","_lex_to_state_actions=")}(e.get_singleton_class(x),k),x["$_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(e){return e.$attr_accessor("_lex_from_state_actions"),e.$private("_lex_from_state_actions","_lex_from_state_actions=")}(e.get_singleton_class(x),k),x["$_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(e){return e.$attr_accessor("_lex_eof_trans"),e.$private("_lex_eof_trans","_lex_eof_trans=")}(e.get_singleton_class(x),k),x["$_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(e){return e.$attr_accessor("lex_start")}(e.get_singleton_class(x),k),x["$lex_start="](128),function(e){return e.$attr_accessor("lex_error")}(e.get_singleton_class(x),k),x["$lex_error="](0),function(e){return e.$attr_accessor("lex_en_expr_variable")}(e.get_singleton_class(x),k),x["$lex_en_expr_variable="](129),function(e){return e.$attr_accessor("lex_en_expr_fname")}(e.get_singleton_class(x),k),x["$lex_en_expr_fname="](134),function(e){return e.$attr_accessor("lex_en_expr_endfn")}(e.get_singleton_class(x),k),x["$lex_en_expr_endfn="](247),function(e){return e.$attr_accessor("lex_en_expr_dot")}(e.get_singleton_class(x),k),x["$lex_en_expr_dot="](255),function(e){return e.$attr_accessor("lex_en_expr_arg")}(e.get_singleton_class(x),k),x["$lex_en_expr_arg="](276),function(e){return e.$attr_accessor("lex_en_expr_cmdarg")}(e.get_singleton_class(x),k),x["$lex_en_expr_cmdarg="](307),function(e){return e.$attr_accessor("lex_en_expr_endarg")}(e.get_singleton_class(x),k),x["$lex_en_expr_endarg="](313),function(e){return e.$attr_accessor("lex_en_expr_mid")}(e.get_singleton_class(x),k),x["$lex_en_expr_mid="](321),function(e){return e.$attr_accessor("lex_en_expr_beg")}(e.get_singleton_class(x),k),x["$lex_en_expr_beg="](345),function(e){return e.$attr_accessor("lex_en_expr_labelarg")}(e.get_singleton_class(x),k),x["$lex_en_expr_labelarg="](501),function(e){return e.$attr_accessor("lex_en_expr_value")}(e.get_singleton_class(x),k),x["$lex_en_expr_value="](508),function(e){return e.$attr_accessor("lex_en_expr_end")}(e.get_singleton_class(x),k),x["$lex_en_expr_end="](516),function(e){return e.$attr_accessor("lex_en_leading_dot")}(e.get_singleton_class(x),k),x["$lex_en_leading_dot="](696),function(e){return e.$attr_accessor("lex_en_line_comment")}(e.get_singleton_class(x),k),x["$lex_en_line_comment="](704),function(e){return e.$attr_accessor("lex_en_line_begin")}(e.get_singleton_class(x),k),x["$lex_en_line_begin="](710),function(e){return e.$attr_accessor("lex_en_inside_string")}(e.get_singleton_class(x),k),x["$lex_en_inside_string="](128),x.$attr_reader("source_buffer"),x.$attr_accessor("diagnostics"),x.$attr_accessor("static_env"),x.$attr_accessor("force_utf32"),x.$attr_accessor("cond","cmdarg","context","command_start"),x.$attr_accessor("tokens","comments"),x.$attr_reader("paren_nest","cmdarg_stack","cond_stack","lambda_stack","version"),a(x,"$initialize",function(n){var i=this;return i.version=n,i.static_env=s,i.context=s,i.tokens=s,i.comments=s,i._lex_actions=o(i.$class()["$respond_to?"]("_lex_actions",!0))?i.$class().$send("_lex_actions"):[],i.emit_integer=c(i,"lambda",[],function e(t,n){var o=e.$$s==null?this:e.$$s;return t==null&&(t=s),n==null&&(n=s),o.$emit("tINTEGER",t),n},{$$s:i}),i.emit_rational=c(i,"lambda",[],function e(t,n){var o=e.$$s==null?this:e.$$s;return t==null&&(t=s),n==null&&(n=s),o.$emit("tRATIONAL",o.$Rational(t)),n},{$$s:i}),i.emit_imaginary=c(i,"lambda",[],function e(t,n){var o=e.$$s==null?this:e.$$s;return t==null&&(t=s),n==null&&(n=s),o.$emit("tIMAGINARY",o.$Complex(0,t)),n},{$$s:i}),i.emit_imaginary_rational=c(i,"lambda",[],function e(t,n){var o=e.$$s==null?this:e.$$s;return t==null&&(t=s),n==null&&(n=s),o.$emit("tIMAGINARY",o.$Complex(0,o.$Rational(t))),n},{$$s:i}),i.emit_integer_re=c(i,"lambda",[],function e(n,o){var i=e.$$s==null?this:e.$$s;return i.ts==null&&(i.ts=s),i.te==null&&(i.te=s),n==null&&(n=s),o==null&&(o=s),i.$emit("tINTEGER",n,i.ts,t(i.te,2)),t(o,2)},{$$s:i}),i.emit_integer_if=c(i,"lambda",[],function e(n,o){var i=e.$$s==null?this:e.$$s;return i.ts==null&&(i.ts=s),i.te==null&&(i.te=s),n==null&&(n=s),o==null&&(o=s),i.$emit("tINTEGER",n,i.ts,t(i.te,2)),t(o,2)},{$$s:i}),i.emit_integer_rescue=c(i,"lambda",[],function e(n,o){var i=e.$$s==null?this:e.$$s;return i.ts==null&&(i.ts=s),i.te==null&&(i.te=s),n==null&&(n=s),o==null&&(o=s),i.$emit("tINTEGER",n,i.ts,t(i.te,6)),t(o,6)},{$$s:i}),i.emit_float=c(i,"lambda",[],function e(t,n){var o=e.$$s==null?this:e.$$s;return t==null&&(t=s),n==null&&(n=s),o.$emit("tFLOAT",o.$construct_float(t)),n},{$$s:i}),i.emit_imaginary_float=c(i,"lambda",[],function e(t,n){var o=e.$$s==null?this:e.$$s;return t==null&&(t=s),n==null&&(n=s),o.$emit("tIMAGINARY",o.$Complex(0,o.$construct_float(t))),n},{$$s:i}),i.emit_float_if=c(i,"lambda",[],function e(n,o){var i=e.$$s==null?this:e.$$s;return i.ts==null&&(i.ts=s),i.te==null&&(i.te=s),n==null&&(n=s),o==null&&(o=s),i.$emit("tFLOAT",i.$construct_float(n),i.ts,t(i.te,2)),t(o,2)},{$$s:i}),i.emit_float_rescue=c(i,"lambda",[],function e(n,o){var i=e.$$s==null?this:e.$$s;return i.ts==null&&(i.ts=s),i.te==null&&(i.te=s),n==null&&(n=s),o==null&&(o=s),i.$emit("tFLOAT",i.$construct_float(n),i.ts,t(i.te,6)),t(o,6)},{$$s:i}),i.$reset()}),a(x,"$construct_float",function(t){var n,i=this,o=s;return d.VERBOSE==null&&(d.VERBOSE=s),function(){try{return n=[d.VERBOSE,s],o=n[0],d.VERBOSE=n[1],n,i.$Float(t)}finally{d.VERBOSE=o}}()}),a(x,"$reset",function(t){var n=this;return t==null&&(t=!0),o(t)&&(n.cs=n.$class().$lex_en_line_begin(),n.cond=C("StackState").$new("cond"),n.cmdarg=C("StackState").$new("cmdarg"),n.cond_stack=[],n.cmdarg_stack=[]),n.force_utf32=!1,n.source_pts=s,n.p=0,n.ts=s,n.te=s,n.act=0,n.stack=[],n.top=0,n.token_queue=[],n.eq_begin_s=s,n.sharp_s=s,n.newline_s=s,n.num_base=s,n.num_digits_s=s,n.num_suffix_s=s,n.num_xfrm=s,n.paren_nest=0,n.lambda_stack=[],n.command_start=!0,n.cs_before_block_comment=n.$class().$lex_en_line_begin(),n.strings=f(C("Parser"),"LexerStrings").$new(n,n.version)},-1),a(x,"$source_buffer=",function(t){var a,n=this,r=s;return n.source_buffer=t,o(n.source_buffer)?(r=n.source_buffer.$source(),i(r.$encoding(),f(C("Encoding"),"UTF_8"))?n.source_pts=r.$unpack("U*"):n.source_pts=r.$unpack("C*"),i(n.source_pts["$[]"](0),65279)&&(n.p=1)):n.source_pts=s,n.strings["$source_buffer="](n.source_buffer),(a=[n.source_pts],c(n.strings,"source_pts=",a),a[a.length-1])}),a(x,"$encoding",function(){var t=this;return t.source_buffer.$source().$encoding()}),p(k[0],"LEX_STATES",new Map([["line_begin",x.$lex_en_line_begin()],["expr_dot",x.$lex_en_expr_dot()],["expr_fname",x.$lex_en_expr_fname()],["expr_value",x.$lex_en_expr_value()],["expr_beg",x.$lex_en_expr_beg()],["expr_mid",x.$lex_en_expr_mid()],["expr_arg",x.$lex_en_expr_arg()],["expr_cmdarg",x.$lex_en_expr_cmdarg()],["expr_end",x.$lex_en_expr_end()],["expr_endarg",x.$lex_en_expr_endarg()],["expr_endfn",x.$lex_en_expr_endfn()],["expr_labelarg",x.$lex_en_expr_labelarg()],["inside_string",x.$lex_en_inside_string()]])),a(x,"$state",function(){var t=this;return C("LEX_STATES").$invert().$fetch(t.cs,t.cs)}),a(x,"$state=",function(t){var n=this;return n.cs=C("LEX_STATES").$fetch(t)}),a(x,"$push_cmdarg",function(){var t=this;return t.cmdarg_stack.$push(t.cmdarg),t.cmdarg=C("StackState").$new("cmdarg."+t.cmdarg_stack.$count())}),a(x,"$pop_cmdarg",function(){var t=this;return t.cmdarg=t.cmdarg_stack.$pop()}),a(x,"$push_cond",function(){var t=this;return t.cond_stack.$push(t.cond),t.cond=C("StackState").$new("cond."+t.cond_stack.$count())}),a(x,"$pop_cond",function(){var t=this;return t.cond=t.cond_stack.$pop()}),a(x,"$dedent_level",function(){var t=this;return t.strings.$dedent_level()}),a(x,"$advance",function(){var w,F,a=this,A=s,K=s,de=s,re=s,ee=s,ae=s,te=s,ne=s,se=s,q=s,ue=s,O=s,c=s,H=s,x=s,ie=s,B=s,N=s,L=s,V=s,he=s,me=s,f=s,Q=s,X=s,y=s,G=s,p=s,$=s,oe=s,j=s,W=s,z=s,P=s,J=s,R=s,k=s,E=s,M=s,I=s,Y=s,T=s,D=s,S=s,_=s,ce=s,le=s,U=s,Z=s;if(!o(a.token_queue["$empty?"]()))return a.token_queue.$shift();for(A=a.$class(),K=A.$send("_lex_trans_keys"),de=A.$send("_lex_key_spans"),re=A.$send("_lex_index_offsets"),ee=A.$send("_lex_indicies"),ae=A.$send("_lex_trans_targs"),te=A.$send("_lex_trans_actions"),ne=A.$send("_lex_to_state_actions"),se=A.$send("_lex_from_state_actions"),q=A.$send("_lex_eof_trans"),ue=a._lex_actions,O=n(a.source_pts.$size(),2),w=[a.p,O],c=w[0],H=w[1],w,x=a.command_start,a.command_start=!1,ie=!1,F=s,w=v(F),B=w[0]==null?s:w[0],N=w[1]==null?s:w[1],L=w[2]==null?s:w[2],V=w[3]==null?s:w[3],he=w[4]==null?s:w[4],me=w[5]==null?s:w[5],F,f=0,Q=10,X=15,y=20,G=30,p=40;o(!0);){if(o(h(f,0))){if(i(c,O)){f=G;continue}if(i(a.cs,0)){f=p;continue}}if(o(h(f,Q))){switch(se["$[]"](a.cs).valueOf()){case 85:a.ts=c;break;default:s}L=a.cs["$<<"](1),V=re["$[]"](a.cs),B=de["$[]"](a.cs),$=o(oe=a.source_pts["$[]"](c))?oe:0,N=o(m(B,0))&&o(h(K["$[]"](L),$))&&o(h($,K["$[]"](n(L,1))))?ee["$[]"](t(n(V,$),K["$[]"](L))):ee["$[]"](n(V,B))}if(o(h(f,X))&&(a.cs=ae["$[]"](N),b(te["$[]"](N),0)))switch(te["$[]"](N).valueOf()){case 14:a.newline_s=c;break;case 15:c=a.$on_newline(c);break;case 45:a.sharp_s=t(c,1);break;case 49:a.$emit_comment_from_range(c,O);break;case 190:j=c;break;case 22:j=c;break;case 24:j=c;break;case 26:j=c;break;case 56:W=c;break;case 229:j=t(c,1),z="ivar_name";break;case 232:j=t(c,2),z="cvar_name";break;case 244:j=c;break;case 188:P=a.$tok(),J=a.ts,R=a.te;break;case 331:a.num_base=16,a.num_digits_s=c;break;case 325:a.num_base=10,a.num_digits_s=c;break;case 328:a.num_base=8,a.num_digits_s=c;break;case 322:a.num_base=2,a.num_digits_s=c;break;case 337:a.num_base=10,a.num_digits_s=a.ts;break;case 299:a.num_base=8,a.num_digits_s=a.ts;break;case 314:a.num_suffix_s=c;break;case 307:a.num_suffix_s=c;break;case 304:a.num_suffix_s=c;break;case 74:j=c;break;case 65:a.te=n(c,1);break;case 1:a.te=n(c,1),a.$emit_global_var(),a.cs=a.$stack_pop(),c=n(c,1),f=p;continue;break;case 87:a.te=c,c=t(c,1),a.$emit_global_var(),a.cs=a.$stack_pop(),c=n(c,1),f=p;continue;break;case 89:a.te=c,c=t(c,1),a.$emit_class_var(),a.cs=a.$stack_pop(),c=n(c,1),f=p;continue;break;case 88:a.te=c,c=t(c,1),a.$emit_instance_var(),a.cs=a.$stack_pop(),c=n(c,1),f=p;continue;break;case 110:a.te=n(c,1),a.$emit_table(C("KEYWORDS_BEGIN")),a.cs=247,c=n(c,1),f=p;continue;break;case 96:a.te=n(c,1),a.$emit("tIDENTIFIER"),a.cs=247,c=n(c,1),f=p;continue;break;case 3:a.te=n(c,1),c=t(a.ts,1),a.cs=516,a.stack["$[]="](a.top,a.cs),a.top=n(a.top,1),a.cs=129,f=y;continue;break;case 93:a.te=n(c,1),a.$emit_table(C("PUNCTUATION")),a.cs=247,c=n(c,1),f=p;continue;break;case 105:a.te=n(c,1),c=t(c,1),c=t(c,1),a.cs=516,f=y;continue;break;case 5:if(a.te=n(c,1),o(a["$version?"](23))){w=[a.$tok()["$[]"](g(0,-2,!1)),a.$tok()["$[]"](-1).$chr()],k=w[0],E=w[1],w,a.strings.$push_literal(k,E,a.ts),a.cs=128,f=y;continue}else{c=t(a.ts,1),a.cs=516,f=y;continue}break;case 92:a.te=n(c,1),c=t(c,1),a.cs=516,f=y;continue;break;case 91:a.te=n(c,1),c=t(c,1),c=n(c,1),f=p;continue;break;case 109:a.te=c,c=t(c,1),a.$emit_table(C("KEYWORDS_BEGIN")),a.cs=247,c=n(c,1),f=p;continue;break;case 106:a.te=c,c=t(c,1),a.$emit("tCONSTANT"),a.cs=247,c=n(c,1),f=p;continue;break;case 108:a.te=c,c=t(c,1),a.$emit("tIDENTIFIER"),a.cs=247,c=n(c,1),f=p;continue;break;case 103:a.te=c,c=t(c,1),c=t(a.ts,1),a.cs=516,a.stack["$[]="](a.top,a.cs),a.top=n(a.top,1),a.cs=129,f=y;continue;break;case 99:a.te=c,c=t(c,1),a.$emit_table(C("PUNCTUATION")),a.cs=247,c=n(c,1),f=p;continue;break;case 104:a.te=c,c=t(c,1),c=t(c,1),a.cs=345,f=y;continue;break;case 97:a.te=c,c=t(c,1);break;case 102:a.te=c,c=t(c,1),c=t(c,1),a.cs=516,f=y;continue;break;case 4:c=t(a.te,1),a.$emit_table(C("PUNCTUATION")),a.cs=247,c=n(c,1),f=p;continue;break;case 2:c=t(a.te,1),c=t(c,1),a.cs=516,f=y;continue;break;case 95:switch(a.act.valueOf()){case 4:c=t(a.te,1),a.$emit_table(C("KEYWORDS_BEGIN")),a.cs=247,c=n(c,1),f=p;continue;break;case 5:c=t(a.te,1),a.$emit("tCONSTANT"),a.cs=247,c=n(c,1),f=p;continue;break;case 6:c=t(a.te,1),a.$emit("tIDENTIFIER"),a.cs=247,c=n(c,1),f=p;continue;break;default:s}break;case 7:a.te=n(c,1),a.$emit("tLABEL",a.$tok(a.ts,t(a.te,2)),a.ts,t(a.te,1)),c=t(c,1),a.cs=501,c=n(c,1),f=p;continue;break;case 8:if(a.te=n(c,1),o(r(a.version,31))&&o(a.context.$in_argdef())){a.$emit("tBDOT3","...".$freeze()),a.cs=516,c=n(c,1),f=p;continue}else{c=t(c,3),a.cs=516,f=y;continue}break;case 112:a.te=n(c,1),c=t(c,1),a.cs=516,f=y;continue;break;case 111:a.te=n(c,1),c=t(c,1),c=n(c,1),f=p;continue;break;case 114:a.te=c,c=t(c,1);break;case 113:a.te=c,c=t(c,1),c=t(c,1),a.cs=516,f=y;continue;break;case 6:c=t(a.te,1),c=t(c,1),a.cs=516,f=y;continue;break;case 120:a.te=n(c,1),a.$emit_table(C("PUNCTUATION")),a.cs=276,c=n(c,1),f=p;continue;break;case 119:a.te=n(c,1),c=t(c,1),a.cs=516,f=y;continue;break;case 118:a.te=n(c,1),c=t(c,1),c=n(c,1),f=p;continue;break;case 130:a.te=c,c=t(c,1),a.$emit("tCONSTANT"),a.cs=a.$arg_or_cmdarg(x),c=n(c,1),f=p;continue;break;case 121:a.te=c,c=t(c,1),a.$emit("tIDENTIFIER"),a.cs=a.$arg_or_cmdarg(x),c=n(c,1),f=p;continue;break;case 126:a.te=c,c=t(c,1),a.$emit_table(C("PUNCTUATION")),a.cs=276,c=n(c,1),f=p;continue;break;case 124:a.te=c,c=t(c,1);break;case 129:a.te=c,c=t(c,1),c=t(c,1),a.cs=516,f=y;continue;break;case 153:a.te=n(c,1),c=t(a.ts,1),a.cs=516,f=y;continue;break;case 136:a.te=n(c,1),a.$check_ambiguous_slash(j),c=t(j,1),a.cs=345,f=y;continue;break;case 142:a.te=n(c,1),c=t(c,1),c=t(c,1),a.cs=345,f=y;continue;break;case 10:a.te=n(c,1),c=t(a.ts,1),a.cs=345,f=y;continue;break;case 144:a.te=n(c,1),c=t(j,1),a.cs=516,f=y;continue;break;case 25:a.te=n(c,1),c=t(a.ts,1),a.cs=516,f=y;continue;break;case 131:a.te=n(c,1),c=t(c,1),a.cs=345,f=y;continue;break;case 132:a.te=n(c,1),c=t(c,1),c=n(c,1),f=p;continue;break;case 143:a.te=c,c=t(c,1),c=t(c,1),a.cs=345,f=y;continue;break;case 139:a.te=c,c=t(c,1),a.$diagnostic("warning","ambiguous_prefix",new Map([["prefix",a.$tok(j,a.te)]]),a.$range(j,a.te)),c=t(j,1),a.cs=345,f=y;continue;break;case 141:a.te=c,c=t(c,1),c=t(c,1),a.cs=345,f=y;continue;break;case 135:a.te=c,c=t(c,1),c=t(a.ts,1),a.cs=516,f=y;continue;break;case 134:a.te=c,c=t(c,1);break;case 152:a.te=c,c=t(c,1),c=t(c,1),a.cs=345,f=y;continue;break;case 11:c=t(a.te,1);break;case 27:c=t(a.te,1),c=t(c,1),a.cs=345,f=y;continue;break;case 9:switch(a.act.valueOf()){case 33:c=t(a.te,1),a.$check_ambiguous_slash(j),c=t(j,1),a.cs=345,f=y;continue;break;case 34:c=t(a.te,1),a.$diagnostic("warning","ambiguous_prefix",new Map([["prefix",a.$tok(j,a.te)]]),a.$range(j,a.te)),c=t(j,1),a.cs=345,f=y;continue;break;case 39:c=t(a.te,1),c=t(a.ts,1),a.cs=516,f=y;continue;break;default:c=t(a.te,1)}break;case 29:a.te=n(c,1),c=t(a.ts,1),a.cs=276,f=y;continue;break;case 157:a.te=n(c,1),c=t(c,1),c=n(c,1),f=p;continue;break;case 158:a.te=c,c=t(c,1),c=t(a.ts,1),a.cs=276,f=y;continue;break;case 30:c=t(a.te,1),c=t(a.ts,1),a.cs=276,f=y;continue;break;case 28:switch(a.act.valueOf()){case 46:c=t(a.te,1),o(a.cond["$active?"]())?a.$emit("kDO_COND","do".$freeze(),t(a.te,2),a.te):a.$emit("kDO","do".$freeze(),t(a.te,2),a.te),a.cs=508,c=n(c,1),f=p;continue;break;case 47:c=t(a.te,1),c=t(a.ts,1),a.cs=276,f=y;continue;break;default:s}break;case 168:a.te=n(c,1),a.$emit_do(!0),a.cs=508,c=n(c,1),f=p;continue;break;case 161:a.te=n(c,1),c=t(c,1),a.cs=516,f=y;continue;break;case 162:a.te=n(c,1),c=t(c,1),c=n(c,1),f=p;continue;break;case 163:a.te=c,c=t(c,1);break;case 166:a.te=c,c=t(c,1),c=t(c,1),a.cs=516,f=y;continue;break;case 172:a.te=n(c,1),c=t(c,1),a.cs=345,f=y;continue;break;case 171:a.te=n(c,1),c=t(c,1),c=n(c,1),f=p;continue;break;case 180:a.te=c,c=t(c,1),c=t(a.ts,1),a.cs=345,f=y;continue;break;case 174:a.te=c,c=t(c,1);break;case 178:a.te=c,c=t(c,1),c=t(c,1),a.cs=345,f=y;continue;break;case 173:switch(a.act.valueOf()){case 54:c=t(a.te,1),a.$emit_table(C("KEYWORDS")),a.cs=345,c=n(c,1),f=p;continue;break;case 55:c=t(a.te,1),c=t(a.ts,1),a.cs=345,f=y;continue;break;default:s}break;case 42:a.te=n(c,1),a.$emit("tUNARY_NUM",a.$tok(a.ts,n(a.ts,1)),a.ts,n(a.ts,1)),c=t(c,1),a.cs=516,c=n(c,1),f=p;continue;break;case 214:a.te=n(c,1),k=E=a.$tok()["$[]"](0).$chr(),a.strings.$push_literal(k,E,a.ts),c=t(c,1),a.cs=128,f=y;continue;break;case 206:a.te=n(c,1),w=[a.source_buffer.$slice(a.ts,1).$chr(),a.$tok()["$[]"](-1).$chr()],k=w[0],E=w[1],w,a.strings.$push_literal(k,E,a.ts),a.cs=128,f=y;continue;break;case 40:a.te=n(c,1),w=[a.$tok()["$[]"](g(0,-2,!1)),a.$tok()["$[]"](-1).$chr()],k=w[0],E=w[1],w,a.strings.$push_literal(k,E,a.ts),a.cs=128,f=y;continue;break;case 227:a.te=n(c,1),c=t(c,1),c=t(c,1),a.$emit("tSYMBEG",a.$tok(a.ts,n(a.ts,1)),a.ts,n(a.ts,1)),a.cs=134,f=y;continue;break;case 215:a.te=n(c,1),w=[a.$tok(),a.$tok()["$[]"](-1).$chr()],k=w[0],E=w[1],w,a.strings.$push_literal(k,E,a.ts),a.cs=128,f=y;continue;break;case 226:a.te=n(c,1),a.$emit("tSYMBOL",a.$tok(n(a.ts,1),n(a.ts,2))),a.cs=516,c=n(c,1),f=p;continue;break;case 54:a.te=n(c,1),M=a.$tok(n(a.ts,1)),o(r(a.version,33))&&o(M["$start_with?"]("$0"))&&o(m(M.$length(),2))&&a.$diagnostic("error","gvar_name",new Map([["name",M]]),a.$range(n(a.ts,1),a.te)),a.$emit("tSYMBOL",M,a.ts),a.cs=516,c=n(c,1),f=p;continue;break;case 236:if(a.te=n(c,1),F=a.strings.$read_character_constant(a.ts),w=v(F),c=w[0]==null?s:w[0],I=w[1]==null?s:w[1],F,c=t(c,1),o(a.token_queue["$empty?"]())){a.cs=I,f=y;continue}a.cs=I,c=n(c,1),f=p;continue;break;case 237:a.te=n(c,1),a.$diagnostic("fatal","incomplete_escape",s,a.$range(a.ts,n(a.ts,1)));break;case 216:a.te=n(c,1),a.$emit_table(C("PUNCTUATION_BEGIN")),c=n(c,1),f=p;continue;break;case 37:a.te=n(c,1),c=t(c,1),o(a["$version?"](18))?(Y=a.$tok(a.ts,t(a.te,2)),a.$emit(o(a.source_buffer.$slice(a.ts,1)["$=~"](/[A-Z]/))?"tCONSTANT":"tIDENTIFIER",Y,a.ts,t(a.te,2)),c=t(c,1),l(a.static_env["$nil?"]())&&o(a.static_env["$declared?"](Y))?a.cs=516:a.cs=a.$arg_or_cmdarg(x)):(a.$emit("tLABEL",a.$tok(a.ts,t(a.te,2)),a.ts,t(a.te,1)),a.cs=501),c=n(c,1),f=p;continue;break;case 34:a.te=n(c,1),a.$emit("tIDENTIFIER",P,J,R),c=t(R,1),l(a.static_env["$nil?"]())&&o(a.static_env["$declared?"](P))&&o(u(a.version,25))?a.cs=247:a.cs=307,c=n(c,1),f=p;continue;break;case 200:a.te=n(c,1),c=t(a.ts,1),a.cs_before_block_comment=a.cs,a.cs=710,f=y;continue;break;case 41:a.te=n(c,1),c=t(a.ts,1),a.cs=516,f=y;continue;break;case 183:a.te=n(c,1),c=t(c,1),c=n(c,1),f=p;continue;break;case 210:a.te=c,c=t(c,1),a.$emit("tUNARY_NUM",a.$tok(a.ts,n(a.ts,1)),a.ts,n(a.ts,1)),c=t(c,1),a.cs=516,c=n(c,1),f=p;continue;break;case 209:a.te=c,c=t(c,1),a.$emit("tSTAR","*".$freeze()),c=n(c,1),f=p;continue;break;case 205:a.te=c,c=t(c,1),a.$diagnostic("fatal","string_eof",s,a.$range(a.ts,n(a.ts,1)));break;case 234:a.te=c,c=t(c,1),a.$diagnostic("error","unterminated_heredoc_id",s,a.$range(a.ts,n(a.ts,1)));break;case 217:a.te=c,c=t(c,1),M=a.$tok(n(a.ts,1)),o(r(a.version,33))&&o(M["$start_with?"]("$0"))&&o(m(M.$length(),2))&&a.$diagnostic("error","gvar_name",new Map([["name",M]]),a.$range(n(a.ts,1),a.te)),a.$emit("tSYMBOL",M,a.ts),a.cs=516,c=n(c,1),f=p;continue;break;case 230:a.te=c,c=t(c,1),a.$emit_colon_with_digits(c,j,z),a.cs=516,c=n(c,1),f=p;continue;break;case 235:a.te=c,c=t(c,1),a.$diagnostic("fatal","incomplete_escape",s,a.$range(a.ts,n(a.ts,1)));break;case 207:a.te=c,c=t(c,1),a.$emit_table(C("PUNCTUATION_BEGIN")),c=n(c,1),f=p;continue;break;case 211:a.te=c,c=t(c,1),o(r(a.version,27))?a.$emit("tBDOT2"):a.$emit("tDOT2"),a.cs=345,c=n(c,1),f=p;continue;break;case 212:a.te=c,c=t(c,1),T=t(a.te,1)["$=="](a.newline_s),D=!1,S=o(T)?t(a.te,1):a.te,o(r(a.version,30))?o(a.lambda_stack["$any?"]())&&i(n(a.lambda_stack.$last(),1),a.paren_nest)?a.$emit("tDOT3","...".$freeze(),a.ts,S):(a.$emit("tBDOT3","...".$freeze(),a.ts,S),o(r(a.version,31))&&o(T)&&o(a.context.$in_argdef())&&(a.$emit("tNL",t(a.te,1),a.te),D=!0)):o(r(a.version,27))?a.$emit("tBDOT3","...".$freeze(),a.ts,S):a.$emit("tDOT3","...".$freeze(),a.ts,S),o(T)&&l(D)&&(c=t(c,1)),a.cs=345,c=n(c,1),f=p;continue;break;case 187:if(a.te=c,c=t(c,1),a.$emit("tIDENTIFIER"),l(a.static_env["$nil?"]())&&o(a.static_env["$declared?"](a.$tok()))){a.cs=247,c=n(c,1),f=p;continue}else if(o(r(a.version,32))&&o(a.$tok()["$=~"](/^_[1-9]$/))){a.cs=247,c=n(c,1),f=p;continue}else{a.cs=a.$arg_or_cmdarg(x),c=n(c,1),f=p;continue}break;case 197:a.te=c,c=t(c,1);break;case 199:a.te=c,c=t(c,1),c=t(a.ts,1),a.cs_before_block_comment=a.cs,a.cs=710,f=y;continue;break;case 202:a.te=c,c=t(c,1),c=t(a.ts,1),a.cs=516,f=y;continue;break;case 39:c=t(a.te,1),a.$diagnostic("fatal","string_eof",s,a.$range(a.ts,n(a.ts,1)));break;case 58:c=t(a.te,1),a.$diagnostic("error","unterminated_heredoc_id",s,a.$range(a.ts,n(a.ts,1)));break;case 33:if(c=t(a.te,1),a.$emit("tIDENTIFIER"),l(a.static_env["$nil?"]())&&o(a.static_env["$declared?"](a.$tok()))){a.cs=247,c=n(c,1),f=p;continue}else if(o(r(a.version,32))&&o(a.$tok()["$=~"](/^_[1-9]$/))){a.cs=247,c=n(c,1),f=p;continue}else{a.cs=a.$arg_or_cmdarg(x),c=n(c,1),f=p;continue}break;case 38:c=t(a.te,1);break;case 53:c=t(a.te,1),c=t(a.ts,1),a.cs=516,f=y;continue;break;case 36:switch(a.act.valueOf()){case 60:c=t(a.te,1),a.$emit("tUNARY_NUM",a.$tok(a.ts,n(a.ts,1)),a.ts,n(a.ts,1)),c=t(c,1),a.cs=516,c=n(c,1),f=p;continue;break;case 67:c=t(a.te,1),a.$diagnostic("error","unterminated_heredoc_id",s,a.$range(a.ts,n(a.ts,1)));break;case 76:if(c=t(a.te,1),o(r(a.version,27))){a.$emit("tPIPE",a.$tok(a.ts,n(a.ts,1)),a.ts,n(a.ts,1)),c=t(c,1),a.cs=345,c=n(c,1),f=p;continue}else{c=t(c,2),a.cs=516,f=y;continue}break;case 80:c=t(a.te,1),a.$emit_table(C("PUNCTUATION_BEGIN")),c=n(c,1),f=p;continue;break;case 81:c=t(a.te,1),a.$emit("kRESCUE","rescue".$freeze(),a.ts,j),c=t(j,1),a.cs=321,c=n(c,1),f=p;continue;break;case 82:c=t(a.te,1),a.$emit_table(C("KEYWORDS_BEGIN")),a.command_start=!0,a.cs=508,c=n(c,1),f=p;continue;break;case 86:c=t(a.te,1),c=t(a.ts,1),a.cs=516,f=y;continue;break;case 87:if(c=t(a.te,1),a.$emit("tIDENTIFIER"),l(a.static_env["$nil?"]())&&o(a.static_env["$declared?"](a.$tok()))){a.cs=247,c=n(c,1),f=p;continue}else if(o(r(a.version,32))&&o(a.$tok()["$=~"](/^_[1-9]$/))){a.cs=247,c=n(c,1),f=p;continue}else{a.cs=a.$arg_or_cmdarg(x),c=n(c,1),f=p;continue}break;case 91:c=t(a.te,1),c=t(a.ts,1),a.cs=516,f=y;continue;break;default:s}break;case 247:a.te=n(c,1),c=t(c,1),a.cs=345,f=y;continue;break;case 248:a.te=n(c,1),c=t(c,1),c=n(c,1),f=p;continue;break;case 249:a.te=c,c=t(c,1);break;case 253:a.te=c,c=t(c,1),c=t(c,1),a.cs=345,f=y;continue;break;case 61:a.te=n(c,1),c=t(a.ts,1),a.cs=516,f=y;continue;break;case 257:a.te=n(c,1),a.strings.$push_literal(a.$tok(),a.$tok(),a.ts),a.cs=128,f=y;continue;break;case 256:a.te=n(c,1),c=t(c,1),a.cs=345,f=y;continue;break;case 255:a.te=n(c,1),c=t(c,1),c=n(c,1),f=p;continue;break;case 259:a.te=c,c=t(c,1);break;case 258:a.te=c,c=t(c,1),c=t(c,1),a.cs=345,f=y;continue;break;case 60:c=t(a.te,1),c=t(c,1),a.cs=345,f=y;continue;break;case 292:a.te=n(c,1),a.$emit("tLAMBDA","->".$freeze(),a.ts,n(a.ts,2)),a.lambda_stack.$push(a.paren_nest),a.cs=247,c=n(c,1),f=p;continue;break;case 71:a.te=n(c,1),a.$emit_singleton_class(),a.cs=508,c=n(c,1),f=p;continue;break;case 267:a.te=n(c,1),w=[a.$tok(),a.$tok()["$[]"](-1).$chr()],k=w[0],E=w[1],w,a.strings.$push_literal(k,E,a.ts,s,!1,!1,!0),a.cs=128,f=y;continue;break;case 63:a.te=n(c,1),c=t(a.ts,1),a.stack["$[]="](a.top,a.cs),a.top=n(a.top,1),a.cs=129,f=y;continue;break;case 288:a.te=n(c,1),a.$emit_table(C("PUNCTUATION")),a.cs=255,c=n(c,1),f=p;continue;break;case 341:a.te=n(c,1),a.$emit_table(C("PUNCTUATION")),a.cs=508,c=n(c,1),f=p;continue;break;case 281:a.te=n(c,1),a.$emit_table(C("PUNCTUATION")),a.cs=508,c=n(c,1),f=p;continue;break;case 286:a.te=n(c,1),a.$emit("tOP_ASGN",a.$tok(a.ts,t(a.te,1))),a.cs=345,c=n(c,1),f=p;continue;break;case 272:a.te=n(c,1),a.$emit("tEH","?".$freeze()),a.cs=508,c=n(c,1),f=p;continue;break;case 269:a.te=n(c,1),a.$emit_table(C("PUNCTUATION")),a.cs=345,c=n(c,1),f=p;continue;break;case 271:a.te=n(c,1),a.$emit("tSEMI",";".$freeze()),a.command_start=!0,a.cs=508,c=n(c,1),f=p;continue;break;case 346:a.te=n(c,1),a.$diagnostic("error","bare_backslash",s,a.$range(a.ts,n(a.ts,1))),c=t(c,1);break;case 266:a.te=n(c,1),a.$diagnostic("fatal","unexpected",new Map([["character",a.$tok().$inspect()["$[]"](g(1,-2,!1))]]));break;case 265:a.te=n(c,1),c=t(c,1),c=n(c,1),f=p;continue;break;case 357:a.te=c,c=t(c,1),a.$emit_table(C("KEYWORDS")),a.cs=134,c=n(c,1),f=p;continue;break;case 355:a.te=c,c=t(c,1),a.$emit_singleton_class(),a.cs=508,c=n(c,1),f=p;continue;break;case 354:a.te=c,c=t(c,1),a.$emit_table(C("KEYWORDS")),a.command_start=!0,a.cs=508,c=n(c,1),f=p;continue;break;case 296:a.te=c,c=t(c,1),a.$diagnostic("error","no_dot_digit_literal");break;case 343:a.te=c,c=t(c,1),a.$emit("tCONSTANT"),a.cs=a.$arg_or_cmdarg(x),c=n(c,1),f=p;continue;break;case 285:a.te=c,c=t(c,1),c=t(a.ts,1),a.stack["$[]="](a.top,a.cs),a.top=n(a.top,1),a.cs=129,f=y;continue;break;case 293:a.te=c,c=t(c,1),a.$emit_table(C("PUNCTUATION")),a.cs=255,c=n(c,1),f=p;continue;break;case 349:if(a.te=c,c=t(c,1),a.$emit("tIDENTIFIER"),l(a.static_env["$nil?"]())&&o(a.static_env["$declared?"](a.$tok()))){a.cs=247,c=n(c,1),f=p;continue}else if(o(r(a.version,32))&&o(a.$tok()["$=~"](/^_[1-9]$/))){a.cs=247,c=n(c,1),f=p;continue}else{a.cs=a.$arg_or_cmdarg(x),c=n(c,1),f=p;continue}break;case 291:a.te=c,c=t(c,1),a.$emit_table(C("PUNCTUATION")),a.cs=508,c=n(c,1),f=p;continue;break;case 287:a.te=c,c=t(c,1),a.$emit_table(C("PUNCTUATION")),a.cs=508,c=n(c,1),f=p;continue;break;case 280:a.te=c,c=t(c,1),a.$emit_table(C("PUNCTUATION")),a.cs=345,c=n(c,1),f=p;continue;break;case 294:a.te=c,c=t(c,1),a.$emit_table(C("PUNCTUATION")),a.cs=345,c=n(c,1),f=p;continue;break;case 278:a.te=c,c=t(c,1);break;case 284:a.te=c,c=t(c,1),a.$diagnostic("fatal","unexpected",new Map([["character",a.$tok().$inspect()["$[]"](g(1,-2,!1))]]));break;case 69:c=t(a.te,1),_=a.$numeric_literal_int(),o(a["$version?"](18,19,20))?(a.$emit("tINTEGER",_.$to_i(a.num_base),a.ts,a.num_suffix_s),c=t(a.num_suffix_s,1)):c=a.num_xfrm.$call(_.$to_i(a.num_base),c),c=n(c,1),f=p;continue;break;case 64:c=t(a.te,1),a.$diagnostic("error","no_dot_digit_literal");break;case 68:c=t(a.te,1),_=a.$tok(a.ts,a.num_suffix_s),o(a["$version?"](18,19,20))?(a.$emit("tFLOAT",a.$Float(_),a.ts,a.num_suffix_s),c=t(a.num_suffix_s,1)):c=a.num_xfrm.$call(_,c),c=n(c,1),f=p;continue;break;case 62:c=t(a.te,1),a.$diagnostic("fatal","unexpected",new Map([["character",a.$tok().$inspect()["$[]"](g(1,-2,!1))]]));break;case 66:switch(a.act.valueOf()){case 104:c=t(a.te,1),i(a.lambda_stack.$last(),a.paren_nest)?(a.lambda_stack.$pop(),i(a.$tok(),"{".$freeze())?a.$emit("tLAMBEG","{".$freeze()):a.$emit("kDO_LAMBDA","do".$freeze())):i(a.$tok(),"{".$freeze())?a.$emit("tLCURLY","{".$freeze()):a.$emit_do(),i(a.$tok(),"{".$freeze())&&(a.paren_nest=n(a.paren_nest,1)),a.command_start=!0,a.cs=508,c=n(c,1),f=p;continue;break;case 105:c=t(a.te,1),a.$emit_table(C("KEYWORDS")),a.cs=134,c=n(c,1),f=p;continue;break;case 106:c=t(a.te,1),a.$emit_singleton_class(),a.cs=508,c=n(c,1),f=p;continue;break;case 107:c=t(a.te,1),a.$emit_table(C("KEYWORDS")),a.cs=345,c=n(c,1),f=p;continue;break;case 108:c=t(a.te,1),a.$emit_table(C("KEYWORDS")),a.command_start=!0,a.cs=508,c=n(c,1),f=p;continue;break;case 109:c=t(a.te,1),a.$emit_table(C("KEYWORDS")),a.cs=321,c=n(c,1),f=p;continue;break;case 110:if(c=t(a.te,1),a.$emit_table(C("KEYWORDS")),o(a["$version?"](18))&&i(a.$tok(),"not".$freeze())){a.cs=345,c=n(c,1),f=p;continue}else{a.cs=276,c=n(c,1),f=p;continue}break;case 111:c=t(a.te,1),o(a["$version?"](18))?(a.$emit("tIDENTIFIER"),l(a.static_env["$nil?"]())&&o(a.static_env["$declared?"](a.$tok()))||(a.cs=a.$arg_or_cmdarg(x))):a.$emit("k__ENCODING__","__ENCODING__".$freeze()),c=n(c,1),f=p;continue;break;case 112:c=t(a.te,1),a.$emit_table(C("KEYWORDS")),c=n(c,1),f=p;continue;break;case 113:c=t(a.te,1),_=a.$numeric_literal_int(),o(a["$version?"](18,19,20))?(a.$emit("tINTEGER",_.$to_i(a.num_base),a.ts,a.num_suffix_s),c=t(a.num_suffix_s,1)):c=a.num_xfrm.$call(_.$to_i(a.num_base),c),c=n(c,1),f=p;continue;break;case 115:if(c=t(a.te,1),o(a["$version?"](18,19,20)))a.$diagnostic("error","trailing_in_number",new Map([["character",a.$tok(t(a.te,1),a.te)]]),a.$range(t(a.te,1),a.te));else{a.$emit("tINTEGER",a.$tok(a.ts,t(a.te,1)).$to_i(),a.ts,t(a.te,1)),c=t(c,1),c=n(c,1),f=p;continue}break;case 116:if(c=t(a.te,1),o(a["$version?"](18,19,20)))a.$diagnostic("error","trailing_in_number",new Map([["character",a.$tok(t(a.te,1),a.te)]]),a.$range(t(a.te,1),a.te));else{a.$emit("tFLOAT",a.$tok(a.ts,t(a.te,1)).$to_f(),a.ts,t(a.te,1)),c=t(c,1),c=n(c,1),f=p;continue}break;case 117:c=t(a.te,1),_=a.$tok(a.ts,a.num_suffix_s),o(a["$version?"](18,19,20))?(a.$emit("tFLOAT",a.$Float(_),a.ts,a.num_suffix_s),c=t(a.num_suffix_s,1)):c=a.num_xfrm.$call(_,c),c=n(c,1),f=p;continue;break;case 119:c=t(a.te,1),a.$emit("tCONSTANT"),a.cs=a.$arg_or_cmdarg(x),c=n(c,1),f=p;continue;break;case 123:if(c=t(a.te,1),a.$emit("tIDENTIFIER"),l(a.static_env["$nil?"]())&&o(a.static_env["$declared?"](a.$tok()))){a.cs=247,c=n(c,1),f=p;continue}else if(o(r(a.version,32))&&o(a.$tok()["$=~"](/^_[1-9]$/))){a.cs=247,c=n(c,1),f=p;continue}else{a.cs=a.$arg_or_cmdarg(x),c=n(c,1),f=p;continue}break;case 124:c=t(a.te,1),i(j,a.te)?a.$emit("tFID"):(a.$emit("tIDENTIFIER",a.$tok(a.ts,j),a.ts,j),c=t(j,1)),a.cs=276,c=n(c,1),f=p;continue;break;case 126:c=t(a.te,1),a.$emit_table(C("PUNCTUATION")),a.cs=508,c=n(c,1),f=p;continue;break;case 127:c=t(a.te,1),a.$emit_table(C("PUNCTUATION")),a.cs=345,c=n(c,1),f=p;continue;break;default:s}break;case 368:if(a.te=n(c,1),a.$emit("tNL",s,a.newline_s,n(a.newline_s,1)),o(u(a.version,27))){c=t(c,1),a.cs=710,c=n(c,1),f=p;continue}else{a.$emit("tBDOT3"),a.cs=345,c=n(c,1),f=p;continue}break;case 80:a.te=n(c,1),c=t(j,1),a.cs=516,f=y;continue;break;case 362:a.te=n(c,1),a.$emit("tNL",s,a.newline_s,n(a.newline_s,1)),c=t(c,1),a.cs=710,c=n(c,1),f=p;continue;break;case 365:if(a.te=c,c=t(c,1),o(u(a.version,27))){a.$emit("tNL",s,a.newline_s,n(a.newline_s,1)),c=t(c,1),a.cs=710,c=n(c,1),f=p;continue}break;case 367:if(a.te=c,c=t(c,1),a.$emit("tNL",s,a.newline_s,n(a.newline_s,1)),o(u(a.version,27))){c=t(c,1),a.cs=710,c=n(c,1),f=p;continue}else{a.$emit("tBDOT2"),a.cs=345,c=n(c,1),f=p;continue}break;case 366:a.te=c,c=t(c,1),c=t(j,1),a.cs=516,f=y;continue;break;case 364:a.te=c,c=t(c,1),a.$emit("tNL",s,a.newline_s,n(a.newline_s,1)),c=t(c,1),a.cs=710,c=n(c,1),f=p;continue;break;case 75:if(c=t(a.te,1),o(u(a.version,27))){a.$emit("tNL",s,a.newline_s,n(a.newline_s,1)),c=t(c,1),a.cs=710,c=n(c,1),f=p;continue}break;case 72:c=t(a.te,1),a.$emit("tNL",s,a.newline_s,n(a.newline_s,1)),c=t(c,1),a.cs=710,c=n(c,1),f=p;continue;break;case 76:switch(a.act.valueOf()){case 140:if(c=t(a.te,1),o(u(a.version,27))){a.$emit("tNL",s,a.newline_s,n(a.newline_s,1)),c=t(c,1),a.cs=710,c=n(c,1),f=p;continue}break;case 144:c=t(a.te,1),a.$emit("tNL",s,a.newline_s,n(a.newline_s,1)),c=t(c,1),a.cs=710,c=n(c,1),f=p;continue;break;default:s}break;case 371:a.te=c,c=t(c,1),a.$emit_comment(a.eq_begin_s,a.te),a.cs=a.cs_before_block_comment,f=y;continue;break;case 370:a.te=c,c=t(c,1),a.$diagnostic("fatal","embedded_document",s,a.$range(a.eq_begin_s,n(a.eq_begin_s,"=begin".$length())));break;case 381:a.te=n(c,1),a.eq_begin_s=a.ts,a.cs=704,f=y;continue;break;case 82:a.te=n(c,1),c=t(O,3);break;case 373:a.te=n(c,1),x=!0,c=t(c,1),a.cs=508,f=y;continue;break;case 374:a.te=n(c,1),c=t(c,1),c=n(c,1),f=p;continue;break;case 375:a.te=c,c=t(c,1);break;case 380:a.te=c,c=t(c,1),a.eq_begin_s=a.ts,a.cs=704,f=y;continue;break;case 379:a.te=c,c=t(c,1),x=!0,c=t(c,1),a.cs=508,f=y;continue;break;case 81:c=t(a.te,1),x=!0,c=t(c,1),a.cs=508,f=y;continue;break;case 86:a.te=n(c,1),F=a.strings.$advance(c),w=v(F),c=w[0]==null?s:w[0],I=w[1]==null?s:w[1],F,c=t(c,1),a.cs=I,c=n(c,1),f=p;continue;break;case 52:a.newline_s=c,a.$emit_comment_from_range(c,O);break;case 154:a.newline_s=c,a.te=n(c,1),c=t(a.ts,1),a.cs=516,f=y;continue;break;case 145:a.newline_s=c,a.te=n(c,1),c=t(j,1),a.cs=516,f=y;continue;break;case 137:a.newline_s=c,a.te=n(c,1),c=t(a.ts,1),a.cs=516,f=y;continue;break;case 213:a.newline_s=c,a.te=n(c,1),T=t(a.te,1)["$=="](a.newline_s),D=!1,S=o(T)?t(a.te,1):a.te,o(r(a.version,30))?o(a.lambda_stack["$any?"]())&&i(n(a.lambda_stack.$last(),1),a.paren_nest)?a.$emit("tDOT3","...".$freeze(),a.ts,S):(a.$emit("tBDOT3","...".$freeze(),a.ts,S),o(r(a.version,31))&&o(T)&&o(a.context.$in_argdef())&&(a.$emit("tNL",t(a.te,1),a.te),D=!0)):o(r(a.version,27))?a.$emit("tBDOT3","...".$freeze(),a.ts,S):a.$emit("tDOT3","...".$freeze(),a.ts,S),o(T)&&l(D)&&(c=t(c,1)),a.cs=345,c=n(c,1),f=p;continue;break;case 201:a.newline_s=c,a.te=n(c,1),c=t(a.ts,1),a.cs_before_block_comment=a.cs,a.cs=710,f=y;continue;break;case 295:a.newline_s=c,a.te=n(c,1),i(a.paren_nest,0)&&a.$diagnostic("warning","triple_dot_at_eol",s,a.$range(a.ts,t(a.te,1))),a.$emit("tDOT3","...".$freeze(),a.ts,t(a.te,1)),c=t(c,1),a.cs=345,c=n(c,1),f=p;continue;break;case 372:a.newline_s=c,a.te=n(c,1),a.$emit_comment(a.eq_begin_s,a.te),a.cs=a.cs_before_block_comment,f=y;continue;break;case 369:a.newline_s=c,a.te=n(c,1);break;case 382:a.newline_s=c,a.te=n(c,1),a.eq_begin_s=a.ts,a.cs=704,f=y;continue;break;case 83:a.newline_s=c,a.te=n(c,1),c=t(O,3);break;case 317:a.num_xfrm=a.emit_rational,a.te=c,c=t(c,1),_=a.$numeric_literal_int(),o(a["$version?"](18,19,20))?(a.$emit("tINTEGER",_.$to_i(a.num_base),a.ts,a.num_suffix_s),c=t(a.num_suffix_s,1)):c=a.num_xfrm.$call(_.$to_i(a.num_base),c),c=n(c,1),f=p;continue;break;case 315:a.num_xfrm=a.emit_imaginary,a.te=c,c=t(c,1),_=a.$numeric_literal_int(),o(a["$version?"](18,19,20))?(a.$emit("tINTEGER",_.$to_i(a.num_base),a.ts,a.num_suffix_s),c=t(a.num_suffix_s,1)):c=a.num_xfrm.$call(_.$to_i(a.num_base),c),c=n(c,1),f=p;continue;break;case 320:a.num_xfrm=a.emit_imaginary_rational,a.te=c,c=t(c,1),_=a.$numeric_literal_int(),o(a["$version?"](18,19,20))?(a.$emit("tINTEGER",_.$to_i(a.num_base),a.ts,a.num_suffix_s),c=t(a.num_suffix_s,1)):c=a.num_xfrm.$call(_.$to_i(a.num_base),c),c=n(c,1),f=p;continue;break;case 318:a.num_xfrm=a.emit_integer_re,a.te=c,c=t(c,1),_=a.$numeric_literal_int(),o(a["$version?"](18,19,20))?(a.$emit("tINTEGER",_.$to_i(a.num_base),a.ts,a.num_suffix_s),c=t(a.num_suffix_s,1)):c=a.num_xfrm.$call(_.$to_i(a.num_base),c),c=n(c,1),f=p;continue;break;case 316:a.num_xfrm=a.emit_integer_if,a.te=c,c=t(c,1),_=a.$numeric_literal_int(),o(a["$version?"](18,19,20))?(a.$emit("tINTEGER",_.$to_i(a.num_base),a.ts,a.num_suffix_s),c=t(a.num_suffix_s,1)):c=a.num_xfrm.$call(_.$to_i(a.num_base),c),c=n(c,1),f=p;continue;break;case 319:a.num_xfrm=a.emit_integer_rescue,a.te=c,c=t(c,1),_=a.$numeric_literal_int(),o(a["$version?"](18,19,20))?(a.$emit("tINTEGER",_.$to_i(a.num_base),a.ts,a.num_suffix_s),c=t(a.num_suffix_s,1)):c=a.num_xfrm.$call(_.$to_i(a.num_base),c),c=n(c,1),f=p;continue;break;case 308:a.num_xfrm=a.emit_imaginary_float,a.te=c,c=t(c,1),_=a.$tok(a.ts,a.num_suffix_s),o(a["$version?"](18,19,20))?(a.$emit("tFLOAT",a.$Float(_),a.ts,a.num_suffix_s),c=t(a.num_suffix_s,1)):c=a.num_xfrm.$call(_,c),c=n(c,1),f=p;continue;break;case 309:a.num_xfrm=a.emit_float_if,a.te=c,c=t(c,1),_=a.$tok(a.ts,a.num_suffix_s),o(a["$version?"](18,19,20))?(a.$emit("tFLOAT",a.$Float(_),a.ts,a.num_suffix_s),c=t(a.num_suffix_s,1)):c=a.num_xfrm.$call(_,c),c=n(c,1),f=p;continue;break;case 310:a.num_xfrm=a.emit_rational,a.te=c,c=t(c,1),_=a.$tok(a.ts,a.num_suffix_s),o(a["$version?"](18,19,20))?(a.$emit("tFLOAT",a.$Float(_),a.ts,a.num_suffix_s),c=t(a.num_suffix_s,1)):c=a.num_xfrm.$call(_,c),c=n(c,1),f=p;continue;break;case 312:a.num_xfrm=a.emit_imaginary_rational,a.te=c,c=t(c,1),_=a.$tok(a.ts,a.num_suffix_s),o(a["$version?"](18,19,20))?(a.$emit("tFLOAT",a.$Float(_),a.ts,a.num_suffix_s),c=t(a.num_suffix_s,1)):c=a.num_xfrm.$call(_,c),c=n(c,1),f=p;continue;break;case 311:a.num_xfrm=a.emit_float_rescue,a.te=c,c=t(c,1),_=a.$tok(a.ts,a.num_suffix_s),o(a["$version?"](18,19,20))?(a.$emit("tFLOAT",a.$Float(_),a.ts,a.num_suffix_s),c=t(a.num_suffix_s,1)):c=a.num_xfrm.$call(_,c),c=n(c,1),f=p;continue;break;case 147:a.$e_lbrace(),a.te=c,c=t(c,1),i(a.lambda_stack.$last(),a.paren_nest)?(a.lambda_stack.$pop(),a.$emit("tLAMBEG","{".$freeze(),t(a.te,1),a.te)):a.$emit("tLCURLY","{".$freeze(),t(a.te,1),a.te),a.command_start=!0,a.paren_nest=n(a.paren_nest,1),a.cs=508,c=n(c,1),f=p;continue;break;case 169:a.$e_lbrace(),a.te=c,c=t(c,1),i(a.lambda_stack.$last(),a.paren_nest)?(a.lambda_stack.$pop(),a.$emit("tLAMBEG","{".$freeze())):a.$emit("tLBRACE_ARG","{".$freeze()),a.paren_nest=n(a.paren_nest,1),a.command_start=!0,a.cs=508,c=n(c,1),f=p;continue;break;case 245:a.$e_lbrace(),a.te=c,c=t(c,1),i(a.lambda_stack.$last(),a.paren_nest)?(a.lambda_stack.$pop(),a.command_start=!0,a.$emit("tLAMBEG","{".$freeze())):a.$emit("tLBRACE","{".$freeze()),a.paren_nest=n(a.paren_nest,1),c=n(c,1),f=p;continue;break;case 360:a.$e_lbrace(),a.te=c,c=t(c,1),i(a.lambda_stack.$last(),a.paren_nest)?(a.lambda_stack.$pop(),i(a.$tok(),"{".$freeze())?a.$emit("tLAMBEG","{".$freeze()):a.$emit("kDO_LAMBDA","do".$freeze())):i(a.$tok(),"{".$freeze())?a.$emit("tLCURLY","{".$freeze()):a.$emit_do(),i(a.$tok(),"{".$freeze())&&(a.paren_nest=n(a.paren_nest,1)),a.command_start=!0,a.cs=508,c=n(c,1),f=p;continue;break;case 361:if(o(a.strings.$close_interp_on_current_literal(c))){c=t(c,1),a.cs=128,c=n(c,1),f=p;continue}a.paren_nest=t(a.paren_nest,1),a.te=c,c=t(c,1),a.$emit_rbrace_rparen_rbrack(),(i(a.$tok(),"}".$freeze())||i(a.$tok(),"]".$freeze()))&&(o(r(a.version,25))?a.cs=516:a.cs=313),c=n(c,1),f=p;continue;break;case 43:c=a.$on_newline(c),a.newline_s=c;break;case 16:c=a.$on_newline(c),j=c;break;case 18:c=a.$on_newline(c),j=c;break;case 20:c=a.$on_newline(c),j=c;break;case 98:c=a.$on_newline(c),a.te=c,c=t(c,1);break;case 117:c=a.$on_newline(c),a.te=c,c=t(c,1);break;case 125:c=a.$on_newline(c),a.te=c,c=t(c,1);break;case 19:c=a.$on_newline(c),a.te=n(c,1),c=t(a.ts,1),a.cs=516,f=y;continue;break;case 156:c=a.$on_newline(c),a.te=c,c=t(c,1);break;case 148:c=a.$on_newline(c),a.te=c,c=t(c,1),c=t(c,1),a.cs=516,f=y;continue;break;case 167:c=a.$on_newline(c),a.te=c,c=t(c,1);break;case 179:c=a.$on_newline(c),a.te=c,c=t(c,1);break;case 175:c=a.$on_newline(c),a.te=c,c=t(c,1),c=t(c,1),a.cs=516,f=y;continue;break;case 44:c=a.$on_newline(c),a.te=n(c,1),a.$emit("tUNARY_NUM",a.$tok(a.ts,n(a.ts,1)),a.ts,n(a.ts,1)),c=t(c,1),a.cs=516,c=n(c,1),f=p;continue;break;case 35:c=a.$on_newline(c),a.te=n(c,1),a.$emit("tIDENTIFIER",P,J,R),c=t(R,1),l(a.static_env["$nil?"]())&&o(a.static_env["$declared?"](P))&&o(u(a.version,25))?a.cs=247:a.cs=307,c=n(c,1),f=p;continue;break;case 198:c=a.$on_newline(c),a.te=c,c=t(c,1);break;case 254:c=a.$on_newline(c),a.te=c,c=t(c,1);break;case 250:if(c=a.$on_newline(c),a.te=c,c=t(c,1),o(a.context.$in_kwarg())){c=t(c,1),a.cs=516,f=y;continue}else{a.cs=710,f=y;continue}break;case 263:c=a.$on_newline(c),a.te=c,c=t(c,1);break;case 260:c=a.$on_newline(c),a.te=c,c=t(c,1),a.cs=710,f=y;continue;break;case 347:c=a.$on_newline(c),a.te=c,c=t(c,1);break;case 279:c=a.$on_newline(c),a.te=c,c=t(c,1),a.cs=696,f=y;continue;break;case 376:c=a.$on_newline(c),a.te=c,c=t(c,1);break;case 46:a.sharp_s=t(c,1),a.$emit_comment_from_range(c,O);break;case 50:a.$emit_comment_from_range(c,O),a.newline_s=c;break;case 101:a.$emit_comment_from_range(c,O),a.te=c,c=t(c,1);break;case 116:a.$emit_comment_from_range(c,O),a.te=c,c=t(c,1);break;case 128:a.$emit_comment_from_range(c,O),a.te=c,c=t(c,1);break;case 150:a.$emit_comment_from_range(c,O),a.te=c,c=t(c,1),a.cs=516,f=y;continue;break;case 165:a.$emit_comment_from_range(c,O),a.te=c,c=t(c,1);break;case 177:a.$emit_comment_from_range(c,O),a.te=c,c=t(c,1);break;case 204:a.$emit_comment_from_range(c,O),a.te=c,c=t(c,1);break;case 252:a.$emit_comment_from_range(c,O),a.te=c,c=t(c,1);break;case 262:a.$emit_comment_from_range(c,O),a.te=c,c=t(c,1);break;case 283:a.$emit_comment_from_range(c,O),a.te=c,c=t(c,1);break;case 378:a.$emit_comment_from_range(c,O),a.te=c,c=t(c,1);break;case 122:j=c,a.te=c,c=t(c,1),a.$emit("tFID",a.$tok(a.ts,j),a.ts,j),a.cs=a.$arg_or_cmdarg(x),c=t(j,1),c=n(c,1),f=p;continue;break;case 218:j=c,a.te=c,c=t(c,1),a.$emit("tSYMBOL",a.$tok(n(a.ts,1),j),a.ts,j),c=t(j,1),a.cs=516,c=n(c,1),f=p;continue;break;case 189:j=c,a.te=c,c=t(c,1),c=t(a.ts,1),a.cs=516,f=y;continue;break;case 276:switch(j=c,a.act.valueOf()){case 104:c=t(a.te,1),i(a.lambda_stack.$last(),a.paren_nest)?(a.lambda_stack.$pop(),i(a.$tok(),"{".$freeze())?a.$emit("tLAMBEG","{".$freeze()):a.$emit("kDO_LAMBDA","do".$freeze())):i(a.$tok(),"{".$freeze())?a.$emit("tLCURLY","{".$freeze()):a.$emit_do(),i(a.$tok(),"{".$freeze())&&(a.paren_nest=n(a.paren_nest,1)),a.command_start=!0,a.cs=508,c=n(c,1),f=p;continue;break;case 105:c=t(a.te,1),a.$emit_table(C("KEYWORDS")),a.cs=134,c=n(c,1),f=p;continue;break;case 106:c=t(a.te,1),a.$emit_singleton_class(),a.cs=508,c=n(c,1),f=p;continue;break;case 107:c=t(a.te,1),a.$emit_table(C("KEYWORDS")),a.cs=345,c=n(c,1),f=p;continue;break;case 108:c=t(a.te,1),a.$emit_table(C("KEYWORDS")),a.command_start=!0,a.cs=508,c=n(c,1),f=p;continue;break;case 109:c=t(a.te,1),a.$emit_table(C("KEYWORDS")),a.cs=321,c=n(c,1),f=p;continue;break;case 110:if(c=t(a.te,1),a.$emit_table(C("KEYWORDS")),o(a["$version?"](18))&&i(a.$tok(),"not".$freeze())){a.cs=345,c=n(c,1),f=p;continue}else{a.cs=276,c=n(c,1),f=p;continue}break;case 111:c=t(a.te,1),o(a["$version?"](18))?(a.$emit("tIDENTIFIER"),l(a.static_env["$nil?"]())&&o(a.static_env["$declared?"](a.$tok()))||(a.cs=a.$arg_or_cmdarg(x))):a.$emit("k__ENCODING__","__ENCODING__".$freeze()),c=n(c,1),f=p;continue;break;case 112:c=t(a.te,1),a.$emit_table(C("KEYWORDS")),c=n(c,1),f=p;continue;break;case 113:c=t(a.te,1),_=a.$numeric_literal_int(),o(a["$version?"](18,19,20))?(a.$emit("tINTEGER",_.$to_i(a.num_base),a.ts,a.num_suffix_s),c=t(a.num_suffix_s,1)):c=a.num_xfrm.$call(_.$to_i(a.num_base),c),c=n(c,1),f=p;continue;break;case 115:if(c=t(a.te,1),o(a["$version?"](18,19,20)))a.$diagnostic("error","trailing_in_number",new Map([["character",a.$tok(t(a.te,1),a.te)]]),a.$range(t(a.te,1),a.te));else{a.$emit("tINTEGER",a.$tok(a.ts,t(a.te,1)).$to_i(),a.ts,t(a.te,1)),c=t(c,1),c=n(c,1),f=p;continue}break;case 116:if(c=t(a.te,1),o(a["$version?"](18,19,20)))a.$diagnostic("error","trailing_in_number",new Map([["character",a.$tok(t(a.te,1),a.te)]]),a.$range(t(a.te,1),a.te));else{a.$emit("tFLOAT",a.$tok(a.ts,t(a.te,1)).$to_f(),a.ts,t(a.te,1)),c=t(c,1),c=n(c,1),f=p;continue}break;case 117:c=t(a.te,1),_=a.$tok(a.ts,a.num_suffix_s),o(a["$version?"](18,19,20))?(a.$emit("tFLOAT",a.$Float(_),a.ts,a.num_suffix_s),c=t(a.num_suffix_s,1)):c=a.num_xfrm.$call(_,c),c=n(c,1),f=p;continue;break;case 119:c=t(a.te,1),a.$emit("tCONSTANT"),a.cs=a.$arg_or_cmdarg(x),c=n(c,1),f=p;continue;break;case 123:if(c=t(a.te,1),a.$emit("tIDENTIFIER"),l(a.static_env["$nil?"]())&&o(a.static_env["$declared?"](a.$tok()))){a.cs=247,c=n(c,1),f=p;continue}else if(o(r(a.version,32))&&o(a.$tok()["$=~"](/^_[1-9]$/))){a.cs=247,c=n(c,1),f=p;continue}else{a.cs=a.$arg_or_cmdarg(x),c=n(c,1),f=p;continue}break;case 124:c=t(a.te,1),i(j,a.te)?a.$emit("tFID"):(a.$emit("tIDENTIFIER",a.$tok(a.ts,j),a.ts,j),c=t(j,1)),a.cs=276,c=n(c,1),f=p;continue;break;case 126:c=t(a.te,1),a.$emit_table(C("PUNCTUATION")),a.cs=508,c=n(c,1),f=p;continue;break;case 127:c=t(a.te,1),a.$emit_table(C("PUNCTUATION")),a.cs=345,c=n(c,1),f=p;continue;break;default:s}break;case 123:j=t(c,2),a.te=c,c=t(c,1),a.$emit("tFID",a.$tok(a.ts,j),a.ts,j),a.cs=a.$arg_or_cmdarg(x),c=t(j,1),c=n(c,1),f=p;continue;break;case 219:j=t(c,2),a.te=c,c=t(c,1),a.$emit("tSYMBOL",a.$tok(n(a.ts,1),j),a.ts,j),c=t(j,1),a.cs=516,c=n(c,1),f=p;continue;break;case 191:j=t(c,2),a.te=c,c=t(c,1),c=t(a.ts,1),a.cs=516,f=y;continue;break;case 277:j=t(c,2),a.te=c,c=t(c,1),i(j,a.te)?a.$emit("tFID"):(a.$emit("tIDENTIFIER",a.$tok(a.ts,j),a.ts,j),c=t(j,1)),a.cs=276,c=n(c,1),f=p;continue;break;case 220:j=c,a.te=c,c=t(c,1),a.$emit("tSYMBOL",a.$tok(n(a.ts,1),j),a.ts,j),c=t(j,1),a.cs=516,c=n(c,1),f=p;continue;break;case 192:j=c,a.te=c,c=t(c,1),c=t(a.ts,1),a.cs=516,f=y;continue;break;case 221:j=t(c,2),a.te=c,c=t(c,1),a.$emit("tSYMBOL",a.$tok(n(a.ts,1),j),a.ts,j),c=t(j,1),a.cs=516,c=n(c,1),f=p;continue;break;case 193:j=t(c,2),a.te=c,c=t(c,1),c=t(a.ts,1),a.cs=516,f=y;continue;break;case 225:j=t(c,2),a.te=c,c=t(c,1),a.$emit("tSYMBOL",a.$tok(n(a.ts,1),j),a.ts,j),c=t(j,1),a.cs=516,c=n(c,1),f=p;continue;break;case 196:j=t(c,2),a.te=c,c=t(c,1),c=t(a.ts,1),a.cs=516,f=y;continue;break;case 224:j=t(c,2),a.te=c,c=t(c,1),a.$emit("tSYMBOL",a.$tok(n(a.ts,1),j),a.ts,j),c=t(j,1),a.cs=516,c=n(c,1),f=p;continue;break;case 195:switch(j=t(c,2),a.act.valueOf()){case 60:c=t(a.te,1),a.$emit("tUNARY_NUM",a.$tok(a.ts,n(a.ts,1)),a.ts,n(a.ts,1)),c=t(c,1),a.cs=516,c=n(c,1),f=p;continue;break;case 67:c=t(a.te,1),a.$diagnostic("error","unterminated_heredoc_id",s,a.$range(a.ts,n(a.ts,1)));break;case 76:if(c=t(a.te,1),o(r(a.version,27))){a.$emit("tPIPE",a.$tok(a.ts,n(a.ts,1)),a.ts,n(a.ts,1)),c=t(c,1),a.cs=345,c=n(c,1),f=p;continue}else{c=t(c,2),a.cs=516,f=y;continue}break;case 80:c=t(a.te,1),a.$emit_table(C("PUNCTUATION_BEGIN")),c=n(c,1),f=p;continue;break;case 81:c=t(a.te,1),a.$emit("kRESCUE","rescue".$freeze(),a.ts,j),c=t(j,1),a.cs=321,c=n(c,1),f=p;continue;break;case 82:c=t(a.te,1),a.$emit_table(C("KEYWORDS_BEGIN")),a.command_start=!0,a.cs=508,c=n(c,1),f=p;continue;break;case 86:c=t(a.te,1),c=t(a.ts,1),a.cs=516,f=y;continue;break;case 87:if(c=t(a.te,1),a.$emit("tIDENTIFIER"),l(a.static_env["$nil?"]())&&o(a.static_env["$declared?"](a.$tok()))){a.cs=247,c=n(c,1),f=p;continue}else if(o(r(a.version,32))&&o(a.$tok()["$=~"](/^_[1-9]$/))){a.cs=247,c=n(c,1),f=p;continue}else{a.cs=a.$arg_or_cmdarg(x),c=n(c,1),f=p;continue}break;case 91:c=t(a.te,1),c=t(a.ts,1),a.cs=516,f=y;continue;break;default:s}break;case 222:j=t(c,3),a.te=c,c=t(c,1),a.$emit("tSYMBOL",a.$tok(n(a.ts,1),j),a.ts,j),c=t(j,1),a.cs=516,c=n(c,1),f=p;continue;break;case 194:j=t(c,3),a.te=c,c=t(c,1),c=t(a.ts,1),a.cs=516,f=y;continue;break;case 223:j=t(c,2),a.te=c,c=t(c,1),a.$emit("tSYMBOL",a.$tok(n(a.ts,1),j),a.ts,j),c=t(j,1),a.cs=516,c=n(c,1),f=p;continue;break;case 342:j=t(c,2),a.te=c,c=t(c,1),a.$emit("tCONSTANT",a.$tok(a.ts,j),a.ts,j),c=t(j,1),c=n(c,1),f=p;continue;break;case 146:a.cond.$push(!1),a.cmdarg.$push(!1),a.paren_nest=n(a.paren_nest,1),a.te=c,c=t(c,1),a.$emit("tLBRACK","[".$freeze(),t(a.te,1),a.te),a.cs=345,c=n(c,1),f=p;continue;break;case 238:a.cond.$push(!1),a.cmdarg.$push(!1),a.paren_nest=n(a.paren_nest,1),a.te=c,c=t(c,1),a.$emit("tLBRACK","[".$freeze()),c=n(c,1),f=p;continue;break;case 345:a.cond.$push(!1),a.cmdarg.$push(!1),a.paren_nest=n(a.paren_nest,1),a.te=c,c=t(c,1),a.$emit("tLBRACK2","[".$freeze()),a.cs=345,c=n(c,1),f=p;continue;break;case 348:a.paren_nest=t(a.paren_nest,1),a.te=c,c=t(c,1),a.$emit_rbrace_rparen_rbrack(),(i(a.$tok(),"}".$freeze())||i(a.$tok(),"]".$freeze()))&&(o(r(a.version,25))?a.cs=516:a.cs=313),c=n(c,1),f=p;continue;break;case 138:if(a.cond.$push(!1),a.cmdarg.$push(!1),a.paren_nest=n(a.paren_nest,1),o(a["$version?"](18))&&(a.command_start=!0),a.te=c,c=t(c,1),o(a["$version?"](18))){a.$emit("tLPAREN2","(".$freeze(),t(a.te,1),a.te),a.cs=508,c=n(c,1),f=p;continue}else{a.$emit("tLPAREN_ARG","(".$freeze(),t(a.te,1),a.te),a.cs=345,c=n(c,1),f=p;continue}break;case 151:a.cond.$push(!1),a.cmdarg.$push(!1),a.paren_nest=n(a.paren_nest,1),o(a["$version?"](18))&&(a.command_start=!0),a.te=c,c=t(c,1),a.$emit("tLPAREN2","(".$freeze()),a.cs=345,c=n(c,1),f=p;continue;break;case 159:if(a.cond.$push(!1),a.cmdarg.$push(!1),a.paren_nest=n(a.paren_nest,1),o(a["$version?"](18))&&(a.command_start=!0),a.te=c,c=t(c,1),a.$emit("tLPAREN_ARG","(".$freeze(),t(a.te,1),a.te),o(a["$version?"](18))){a.cs=508,c=n(c,1),f=p;continue}else{a.cs=345,c=n(c,1),f=p;continue}break;case 208:a.cond.$push(!1),a.cmdarg.$push(!1),a.paren_nest=n(a.paren_nest,1),o(a["$version?"](18))&&(a.command_start=!0),a.te=c,c=t(c,1),a.$emit("tLPAREN","(".$freeze()),c=n(c,1),f=p;continue;break;case 289:a.cond.$push(!1),a.cmdarg.$push(!1),a.paren_nest=n(a.paren_nest,1),o(a["$version?"](18))&&(a.command_start=!0),a.te=c,c=t(c,1),a.$emit_table(C("PUNCTUATION")),a.cs=345,c=n(c,1),f=p;continue;break;case 290:a.paren_nest=t(a.paren_nest,1),a.te=c,c=t(c,1),a.$emit_rbrace_rparen_rbrack(),(i(a.$tok(),"}".$freeze())||i(a.$tok(),"]".$freeze()))&&(o(r(a.version,25))?a.cs=516:a.cs=313),c=n(c,1),f=p;continue;break;case 57:W=c,a.newline_s=c;break;case 233:if(ce=c,a.te=c,c=t(c,1),a.$tok(a.ts,W)["$=~"](/^<<(-?)(~?)(["'`]?)(.*)\3$/m),le=o(U=((w=d["~"])===s?s:w["$[]"](1))["$empty?"]()["$!"]())?U:((w=d["~"])===s?s:w["$[]"](2))["$empty?"]()["$!"](),Z=((w=d["~"])===s?s:w["$[]"](2))["$empty?"]()["$!"](),k=o(((w=d["~"])===s?s:w["$[]"](3))["$empty?"]())?'<<"'.$freeze():n("<<".$freeze(),(w=d["~"])===s?s:w["$[]"](3)),E=(w=d["~"])===s?s:w["$[]"](4),o(r(a.version,27))?(o(m(E.$count(`
`),0))||o(m(E.$count(` `),0)))&&a.$diagnostic("error","unterminated_heredoc_id",s,a.$range(a.ts,n(a.ts,1))):o(r(a.version,24))&&o(m(E.$count(`
`),0))&&(o(E["$end_with?"](`
`))?(a.$diagnostic("warning","heredoc_id_ends_with_nl",s,a.$range(a.ts,n(a.ts,1))),E=E.$rstrip()):a.$diagnostic("fatal","heredoc_id_has_newline",s,a.$range(a.ts,n(a.ts,1)))),o(Z)&&o(a["$version?"](18,19,20,21,22))){a.$emit("tLSHFT","<<".$freeze(),a.ts,n(a.ts,2)),c=n(a.ts,1),a.cs=345,c=n(c,1),f=p;continue}else a.strings.$push_literal(k,E,a.ts,W,le,Z),o(U=a.strings.$herebody_s())?U:a.strings["$herebody_s="](ce),c=t(a.strings.$herebody_s(),1),a.cs=128;break;case 228:j=t(c,1),z="ivar_name",a.te=c,c=t(c,1),a.$emit_colon_with_digits(c,j,z),a.cs=516,c=n(c,1),f=p;continue;break;case 231:j=t(c,2),z="cvar_name",a.te=c,c=t(c,1),a.$emit_colon_with_digits(c,j,z),a.cs=516,c=n(c,1),f=p;continue;break;case 241:j=c,a.te=c,c=t(c,1),a.$emit("kRESCUE","rescue".$freeze(),a.ts,j),c=t(j,1),a.cs=321,c=n(c,1),f=p;continue;break;case 332:a.num_base=16,a.num_digits_s=c,a.num_suffix_s=c;break;case 326:a.num_base=10,a.num_digits_s=c,a.num_suffix_s=c;break;case 329:a.num_base=8,a.num_digits_s=c,a.num_suffix_s=c;break;case 323:a.num_base=2,a.num_digits_s=c,a.num_suffix_s=c;break;case 338:a.num_base=10,a.num_digits_s=a.ts,a.num_suffix_s=c;break;case 301:a.num_base=8,a.num_digits_s=a.ts,a.num_suffix_s=c;break;case 339:a.num_suffix_s=c,a.num_xfrm=a.emit_integer;break;case 184:a.te=n(c,1),a.newline_s=c;break;case 305:a.te=n(c,1),a.num_suffix_s=c;break;case 107:a.te=n(c,1),a.act=4;break;case 94:a.te=n(c,1),a.act=5;break;case 90:a.te=n(c,1),a.act=6;break;case 12:a.te=n(c,1),a.act=33;break;case 140:a.te=n(c,1),a.act=34;break;case 13:a.te=n(c,1),a.act=39;break;case 133:a.te=n(c,1),a.act=40;break;case 160:a.te=n(c,1),a.act=46;break;case 31:a.te=n(c,1),a.act=47;break;case 181:a.te=n(c,1),a.act=54;break;case 170:a.te=n(c,1),a.act=55;break;case 55:a.te=n(c,1),a.act=67;break;case 246:a.te=n(c,1),a.act=76;break;case 185:a.te=n(c,1),a.act=80;break;case 240:a.te=n(c,1),a.act=81;break;case 239:a.te=n(c,1),a.act=82;break;case 59:a.te=n(c,1),a.act=86;break;case 182:a.te=n(c,1),a.act=87;break;case 186:a.te=n(c,1),a.act=91;break;case 356:a.te=n(c,1),a.act=104;break;case 351:a.te=n(c,1),a.act=105;break;case 359:a.te=n(c,1),a.act=107;break;case 352:a.te=n(c,1),a.act=108;break;case 353:a.te=n(c,1),a.act=109;break;case 358:a.te=n(c,1),a.act=110;break;case 350:a.te=n(c,1),a.act=111;break;case 344:a.te=n(c,1),a.act=112;break;case 270:a.te=n(c,1),a.act=113;break;case 303:a.te=n(c,1),a.act=116;break;case 67:a.te=n(c,1),a.act=117;break;case 273:a.te=n(c,1),a.act=119;break;case 264:a.te=n(c,1),a.act=123;break;case 275:a.te=n(c,1),a.act=124;break;case 268:a.te=n(c,1),a.act=126;break;case 274:a.te=n(c,1),a.act=127;break;case 73:a.te=n(c,1),a.act=140;break;case 363:a.te=n(c,1),a.act=144;break;case 47:a.sharp_s=t(c,1),a.$emit_comment_from_range(c,O),a.newline_s=c;break;case 100:a.sharp_s=t(c,1),a.$emit_comment_from_range(c,O),a.te=c,c=t(c,1);break;case 115:a.sharp_s=t(c,1),a.$emit_comment_from_range(c,O),a.te=c,c=t(c,1);break;case 127:a.sharp_s=t(c,1),a.$emit_comment_from_range(c,O),a.te=c,c=t(c,1);break;case 149:a.sharp_s=t(c,1),a.$emit_comment_from_range(c,O),a.te=c,c=t(c,1),a.cs=516,f=y;continue;break;case 164:a.sharp_s=t(c,1),a.$emit_comment_from_range(c,O),a.te=c,c=t(c,1);break;case 176:a.sharp_s=t(c,1),a.$emit_comment_from_range(c,O),a.te=c,c=t(c,1);break;case 203:a.sharp_s=t(c,1),a.$emit_comment_from_range(c,O),a.te=c,c=t(c,1);break;case 251:a.sharp_s=t(c,1),a.$emit_comment_from_range(c,O),a.te=c,c=t(c,1);break;case 261:a.sharp_s=t(c,1),a.$emit_comment_from_range(c,O),a.te=c,c=t(c,1);break;case 282:a.sharp_s=t(c,1),a.$emit_comment_from_range(c,O),a.te=c,c=t(c,1);break;case 377:a.sharp_s=t(c,1),a.$emit_comment_from_range(c,O),a.te=c,c=t(c,1);break;case 334:a.num_base=10,a.num_digits_s=a.ts,a.num_suffix_s=c,a.num_xfrm=a.emit_integer;break;case 298:a.num_base=8,a.num_digits_s=a.ts,a.num_suffix_s=c,a.num_xfrm=a.emit_integer;break;case 313:a.num_suffix_s=c,a.num_xfrm=a.emit_integer,a.te=c,c=t(c,1),_=a.$numeric_literal_int(),o(a["$version?"](18,19,20))?(a.$emit("tINTEGER",_.$to_i(a.num_base),a.ts,a.num_suffix_s),c=t(a.num_suffix_s,1)):c=a.num_xfrm.$call(_.$to_i(a.num_base),c),c=n(c,1),f=p;continue;break;case 306:a.num_suffix_s=c,a.num_xfrm=a.emit_float,a.te=c,c=t(c,1),_=a.$tok(a.ts,a.num_suffix_s),o(a["$version?"](18,19,20))?(a.$emit("tFLOAT",a.$Float(_),a.ts,a.num_suffix_s),c=t(a.num_suffix_s,1)):c=a.num_xfrm.$call(_,c),c=n(c,1),f=p;continue;break;case 302:a.num_suffix_s=c,a.num_xfrm=a.emit_float,a.te=c,c=t(c,1),_=a.$tok(a.ts,a.num_suffix_s),o(a["$version?"](18,19,20))?(a.$emit("tFLOAT",a.$Float(_),a.ts,a.num_suffix_s),c=t(a.num_suffix_s,1)):c=a.num_xfrm.$call(_,c),c=n(c,1),f=p;continue;break;case 155:a.te=n(c,1),a.newline_s=c,a.act=40;break;case 21:a.te=n(c,1),c=a.$on_newline(c),a.act=39;break;case 32:a.te=n(c,1),c=a.$on_newline(c),a.act=47;break;case 79:a.te=n(c,1),c=a.$on_newline(c),a.act=140;break;case 51:a.te=n(c,1),a.$emit_comment_from_range(c,O),a.act=60;break;case 70:a.te=n(c,1),a.$emit_comment_from_range(c,O),a.act=106;break;case 78:a.te=n(c,1),a.$emit_comment_from_range(c,O),a.act=140;break;case 23:a.te=n(c,1),j=c,a.act=34;break;case 243:a.te=n(c,1),j=c,a.act=86;break;case 242:a.te=n(c,1),j=c,a.act=87;break;case 335:a.te=n(c,1),a.num_base=10,a.num_digits_s=a.ts,a.act=113;break;case 330:a.num_base=16,a.num_digits_s=c,a.num_suffix_s=c,a.num_xfrm=a.emit_integer,a.te=c,c=t(c,1),_=a.$numeric_literal_int(),o(a["$version?"](18,19,20))?(a.$emit("tINTEGER",_.$to_i(a.num_base),a.ts,a.num_suffix_s),c=t(a.num_suffix_s,1)):c=a.num_xfrm.$call(_.$to_i(a.num_base),c),c=n(c,1),f=p;continue;break;case 324:a.num_base=10,a.num_digits_s=c,a.num_suffix_s=c,a.num_xfrm=a.emit_integer,a.te=c,c=t(c,1),_=a.$numeric_literal_int(),o(a["$version?"](18,19,20))?(a.$emit("tINTEGER",_.$to_i(a.num_base),a.ts,a.num_suffix_s),c=t(a.num_suffix_s,1)):c=a.num_xfrm.$call(_.$to_i(a.num_base),c),c=n(c,1),f=p;continue;break;case 327:a.num_base=8,a.num_digits_s=c,a.num_suffix_s=c,a.num_xfrm=a.emit_integer,a.te=c,c=t(c,1),_=a.$numeric_literal_int(),o(a["$version?"](18,19,20))?(a.$emit("tINTEGER",_.$to_i(a.num_base),a.ts,a.num_suffix_s),c=t(a.num_suffix_s,1)):c=a.num_xfrm.$call(_.$to_i(a.num_base),c),c=n(c,1),f=p;continue;break;case 321:a.num_base=2,a.num_digits_s=c,a.num_suffix_s=c,a.num_xfrm=a.emit_integer,a.te=c,c=t(c,1),_=a.$numeric_literal_int(),o(a["$version?"](18,19,20))?(a.$emit("tINTEGER",_.$to_i(a.num_base),a.ts,a.num_suffix_s),c=t(a.num_suffix_s,1)):c=a.num_xfrm.$call(_.$to_i(a.num_base),c),c=n(c,1),f=p;continue;break;case 333:a.num_base=10,a.num_digits_s=a.ts,a.num_suffix_s=c,a.num_xfrm=a.emit_integer,a.te=c,c=t(c,1),_=a.$numeric_literal_int(),o(a["$version?"](18,19,20))?(a.$emit("tINTEGER",_.$to_i(a.num_base),a.ts,a.num_suffix_s),c=t(a.num_suffix_s,1)):c=a.num_xfrm.$call(_.$to_i(a.num_base),c),c=n(c,1),f=p;continue;break;case 297:a.num_base=8,a.num_digits_s=a.ts,a.num_suffix_s=c,a.num_xfrm=a.emit_integer,a.te=c,c=t(c,1),_=a.$numeric_literal_int(),o(a["$version?"](18,19,20))?(a.$emit("tINTEGER",_.$to_i(a.num_base),a.ts,a.num_suffix_s),c=t(a.num_suffix_s,1)):c=a.num_xfrm.$call(_.$to_i(a.num_base),c),c=n(c,1),f=p;continue;break;case 17:a.te=n(c,1),c=a.$on_newline(c),j=c,a.act=34;break;case 48:a.te=n(c,1),a.sharp_s=t(c,1),a.$emit_comment_from_range(c,O),a.act=60;break;case 77:a.te=n(c,1),a.sharp_s=t(c,1),a.$emit_comment_from_range(c,O),a.act=140;break;case 340:a.te=n(c,1),a.num_suffix_s=c,a.num_xfrm=a.emit_integer,a.act=115;break;case 336:a.te=n(c,1),a.num_base=10,a.num_digits_s=a.ts,a.num_suffix_s=c,a.num_xfrm=a.emit_integer,a.act=115;break;case 300:a.te=n(c,1),a.num_base=8,a.num_digits_s=a.ts,a.num_suffix_s=c,a.num_xfrm=a.emit_integer,a.act=115;break;default:s}if(o(h(f,y))){switch(ne["$[]"](a.cs).valueOf()){case 84:a.ts=s;break;default:s}if(i(a.cs,0)){f=p;continue}if(c=n(c,1),b(c,O)){f=Q;continue}}if(o(h(f,G))&&i(c,H)&&o(m(q["$[]"](a.cs),0))){N=t(q["$[]"](a.cs),1),f=X;continue}if(o(h(f,p)))break}return o(!1)&&ie,a.p=c,o(a.token_queue["$any?"]())?a.token_queue.$shift():i(a.cs,A.$lex_error())?[!1,["$error".$freeze(),a.$range(t(c,1),c)]]:(H=a.source_pts.$size(),[!1,["$eof".$freeze(),a.$range(H,H)]])}),x.$protected(),a(x,"$version?",function(){var o=this,n=y(arguments),s=n;return s["$include?"](o.version)},-1),a(x,"$stack_pop",function(){var n=this;return n.top=t(n.top,1),n.stack["$[]"](n.top)}),a(x,"$tok",function(n,s){var o=this;return n==null&&(n=o.ts),s==null&&(s=o.te),o.source_buffer.$slice(n,t(s,n))},-1),a(x,"$range",function(t,n){var s=this;return t==null&&(t=s.ts),n==null&&(n=s.te),f(f(C("Parser"),"Source"),"Range").$new(s.source_buffer,t,n)},-1),a(x,"$emit",function(t,n,i,a){var r=this,c=s;return n==null&&(n=r.$tok()),i==null&&(i=r.ts),a==null&&(a=r.te),c=[t,[n,r.$range(i,a)]],r.token_queue.$push(c),o(r.tokens)&&r.tokens.$push(c),c},-2),a(x,"$emit_table",function(t,n,o){var i=this,a=s;return n==null&&(n=i.ts),o==null&&(o=i.te),a=i.$tok(n,o),i.$emit(t["$[]"](a),a,n,o)},-2),a(x,"$emit_do",function(t){var n=this;return t==null&&(t=!1),o(n.cond["$active?"]())?n.$emit("kDO_COND","do".$freeze()):o(n.cmdarg["$active?"]())||o(t)?n.$emit("kDO_BLOCK","do".$freeze()):n.$emit("kDO","do".$freeze())},-1),a(x,"$arg_or_cmdarg",function(t){var n=this;return o(t)?n.$class().$lex_en_expr_cmdarg():n.$class().$lex_en_expr_arg()}),a(x,"$emit_comment",function(t,n){var i=this;return t==null&&(t=i.ts),n==null&&(n=i.te),o(i.comments)&&i.comments.$push(f(f(C("Parser"),"Source"),"Comment").$new(i.$range(t,n))),o(i.tokens)&&i.tokens.$push(["tCOMMENT",[i.$tok(t,n),i.$range(t,n)]]),s},-1),a(x,"$emit_comment_from_range",function(n,s){var o=this;return o.$emit_comment(o.sharp_s,i(n,s)?t(n,2):n)}),a(x,"$diagnostic",function(t,n,o,i,a){var r=this;return o==null&&(o=s),i==null&&(i=r.$range()),a==null&&(a=[]),r.diagnostics.$process(f(C("Parser"),"Diagnostic").$new(t,n,o,i,a))},-3),a(x,"$e_lbrace",function(){var t=this,n=s;return t.cond.$push(!1),t.cmdarg.$push(!1),n=t.strings.$literal(),o(n)?n.$start_interp_brace():s}),a(x,"$numeric_literal_int",function(){var a=this,r=s,l=s,c=s,r=a.$tok(a.num_digits_s,a.num_suffix_s);return o(r["$end_with?"]("_".$freeze()))?a.$diagnostic("error","trailing_in_number",new Map([["character","_".$freeze()]]),a.$range(t(a.te,1),a.te)):o(r["$empty?"]())&&i(a.num_base,8)&&o(a["$version?"](18))?r="0".$freeze():o(r["$empty?"]())?a.$diagnostic("error","empty_numeric"):i(a.num_base,8)&&o(l=r.$index(/[89]/))&&(c=n(a.num_digits_s,l),a.$diagnostic("error","invalid_octal",s,a.$range(c,n(c,1)))),r}),a(x,"$on_newline",function(t){var n=this;return n.strings.$on_newline(t)}),a(x,"$check_ambiguous_slash",function(t){var a=this;return i(a.$tok(t,n(t,1)),"/".$freeze())?o(u(a.version,30))?a.$diagnostic("warning","ambiguous_literal",s,a.$range(t,n(t,1))):a.$diagnostic("warning","ambiguous_regexp",s,a.$range(t,n(t,1))):s}),a(x,"$emit_global_var",function(t,s){var i=this;return t==null&&(t=i.ts),s==null&&(s=i.te),o(i.$tok(t,s)["$=~"](/^\$([1-9][0-9]*)$/))?i.$emit("tNTH_REF",i.$tok(n(t,1),s).$to_i(),t,s):o(i.$tok()["$=~"](/^\$([&`'+])$/))?i.$emit("tBACK_REF",i.$tok(t,s),t,s):i.$emit("tGVAR",i.$tok(t,s),t,s)},-1),a(x,"$emit_class_var",function(t,n){var s=this;return t==null&&(t=s.ts),n==null&&(n=s.te),o(s.$tok(t,n)["$=~"](/^@@[0-9]/))&&s.$diagnostic("error","cvar_name",new Map([["name",s.$tok(t,n)]])),s.$emit("tCVAR",s.$tok(t,n),t,n)},-1),a(x,"$emit_instance_var",function(t,n){var s=this;return t==null&&(t=s.ts),n==null&&(n=s.te),o(s.$tok(t,n)["$=~"](/^@[0-9]/))&&s.$diagnostic("error","ivar_name",new Map([["name",s.$tok(t,n)]])),s.$emit("tIVAR",s.$tok(t,n),t,n)},-1),a(x,"$emit_rbrace_rparen_rbrack",function(){var t=this;return t.$emit_table(C("PUNCTUATION")),o(u(t.version,24))?(t.cond.$lexpop(),t.cmdarg.$lexpop()):(t.cond.$pop(),t.cmdarg.$pop())}),a(x,"$emit_colon_with_digits",function(t,s,i){var a=this;return o(r(a.version,27))?a.$diagnostic("error",i,new Map([["name",a.$tok(s,a.te)]]),a.$range(s,a.te)):(a.$emit("tCOLON",a.$tok(a.ts,n(a.ts,1)),a.ts,n(a.ts,1)),t=a.ts),t}),a(x,"$emit_singleton_class",function(){var s=this;return s.$emit("kCLASS","class".$freeze(),s.ts,n(s.ts,5)),s.$emit("tLSHFT","<<".$freeze(),t(s.te,2),s.te)}),p(k[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(k[0],"PUNCTUATION_BEGIN",new Map([["&","tAMPER"],["*","tSTAR"],["**","tDSTAR"],["+","tUPLUS"],["-","tUMINUS"],["::","tCOLON3"],["(","tLPAREN"],["{","tLBRACE"],["[","tLBRACK"]])),p(k[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(k[0],"KEYWORDS_BEGIN",new Map([["if","kIF"],["unless","kUNLESS"],["while","kWHILE"],["until","kUNTIL"],["rescue","kRESCUE"],["defined?","kDEFINED"],["BEGIN","klBEGIN"],["END","klEND"]])),p(k[0],"ESCAPE_WHITESPACE",new Map([[" ","\\s"],[` `,`\\r`],[`
`,`\\n`],[" ","\\t"],[" ","\\v"],[" ","\\f"]])),c(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(t){var n,o;return t==null&&(t=s),(n=[t,(o=[t,"k"+t.$upcase()],c(C("KEYWORDS"),"[]=",o),o[o.length-1])],c(C("KEYWORDS_BEGIN"),"[]=",n),n[n.length-1])})}(_("Parser"),null,j)},Opal.modules["parser/lexer-strings"]=function(e){var w=e.klass,f=e.const_set,C=e.hash_rehash,m=e.send,b=e.to_a,t=e.truthy,a=e.def,n=e.rb_plus,v=e.to_ary,l=e.rb_le,r=e.eqeq,h=e.rb_gt,i=e.rb_minus,_=e.neqeq,o=e.eqeqeq,c=e.not,g=e.slice,p=e.rb_lt,d=e.rb_ge,O=e.thrower,j=e.range,y=[],x=e.$r(y),s=e.nil,u=e.$$$;return e.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(y,x,E){var k=w(y,x,"LexerStrings"),A=[k].concat(E),M=e.$r(A),S=k.$$prototype;return S._lex_actions=S.cs=S.escape_s=S.lexer=S.herebody_s=S.ts=S.te=S.root_lexer_state=S.literal_stack=S.dedent_level=S.version=S.source_buffer=S.escape=s,function(e){return e.$attr_accessor("_lex_actions"),e.$private("_lex_actions","_lex_actions=")}(e.get_singleton_class(k),A),k["$_lex_actions="](e.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(e){return e.$attr_accessor("_lex_trans_keys"),e.$private("_lex_trans_keys","_lex_trans_keys=")}(e.get_singleton_class(k),A),k["$_lex_trans_keys="](e.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(e){return e.$attr_accessor("_lex_key_spans"),e.$private("_lex_key_spans","_lex_key_spans=")}(e.get_singleton_class(k),A),k["$_lex_key_spans="](e.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(e){return e.$attr_accessor("_lex_index_offsets"),e.$private("_lex_index_offsets","_lex_index_offsets=")}(e.get_singleton_class(k),A),k["$_lex_index_offsets="](e.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(e){return e.$attr_accessor("_lex_indicies"),e.$private("_lex_indicies","_lex_indicies=")}(e.get_singleton_class(k),A),k["$_lex_indicies="](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,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(e){return e.$attr_accessor("_lex_trans_targs"),e.$private("_lex_trans_targs","_lex_trans_targs=")}(e.get_singleton_class(k),A),k["$_lex_trans_targs="](e.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(e){return e.$attr_accessor("_lex_trans_actions"),e.$private("_lex_trans_actions","_lex_trans_actions=")}(e.get_singleton_class(k),A),k["$_lex_trans_actions="](e.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(e){return e.$attr_accessor("_lex_to_state_actions"),e.$private("_lex_to_state_actions","_lex_to_state_actions=")}(e.get_singleton_class(k),A),k["$_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,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(e){return e.$attr_accessor("_lex_from_state_actions"),e.$private("_lex_from_state_actions","_lex_from_state_actions=")}(e.get_singleton_class(k),A),k["$_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,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(e){return e.$attr_accessor("_lex_eof_trans"),e.$private("_lex_eof_trans","_lex_eof_trans=")}(e.get_singleton_class(k),A),k["$_lex_eof_trans="](e.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(e){return e.$attr_accessor("lex_start")}(e.get_singleton_class(k),A),k["$lex_start="](60),function(e){return e.$attr_accessor("lex_error")}(e.get_singleton_class(k),A),k["$lex_error="](0),function(e){return e.$attr_accessor("lex_en_interp_words")}(e.get_singleton_class(k),A),k["$lex_en_interp_words="](61),function(e){return e.$attr_accessor("lex_en_interp_string")}(e.get_singleton_class(k),A),k["$lex_en_interp_string="](131),function(e){return e.$attr_accessor("lex_en_plain_words")}(e.get_singleton_class(k),A),k["$lex_en_plain_words="](200),function(e){return e.$attr_accessor("lex_en_plain_string")}(e.get_singleton_class(k),A),k["$lex_en_plain_string="](203),function(e){return e.$attr_accessor("lex_en_interp_backslash_delimited")}(e.get_singleton_class(k),A),k["$lex_en_interp_backslash_delimited="](205),function(e){return e.$attr_accessor("lex_en_plain_backslash_delimited")}(e.get_singleton_class(k),A),k["$lex_en_plain_backslash_delimited="](214),function(e){return e.$attr_accessor("lex_en_interp_backslash_delimited_words")}(e.get_singleton_class(k),A),k["$lex_en_interp_backslash_delimited_words="](215),function(e){return e.$attr_accessor("lex_en_plain_backslash_delimited_words")}(e.get_singleton_class(k),A),k["$lex_en_plain_backslash_delimited_words="](225),function(e){return e.$attr_accessor("lex_en_regexp_modifiers")}(e.get_singleton_class(k),A),k["$lex_en_regexp_modifiers="](227),function(e){return e.$attr_accessor("lex_en_character")}(e.get_singleton_class(k),A),k["$lex_en_character="](229),function(e){return e.$attr_accessor("lex_en_unknown")}(e.get_singleton_class(k),A),k["$lex_en_unknown="](60),f(A[0],"ESCAPES",C(new Map([["a".$ord(),""],["b".$ord(),""],["e".$ord(),""],["f".$ord()," "],["n".$ord(),`
`],["r".$ord(),` `],["s".$ord()," "],["t".$ord()," "],["v".$ord()," "],["\\".$ord(),"\\"]])).$freeze()),f(A[0],"REGEXP_META_CHARACTERS",m(M("Regexp"),"union",b("\\$()*+.<>?[]^{|}".$chars())).$freeze()),k.$attr_accessor("herebody_s"),k.$attr_accessor("source_buffer","source_pts"),a(k,"$initialize",function(n,s){var o=this;return o.lexer=n,o.version=s,o._lex_actions=t(o.$class()["$respond_to?"]("_lex_actions",!0))?o.$class().$send("_lex_actions"):[],o.$reset()}),a(k,"$reset",function(){var t=this;return t.cs=t.$class().$lex_en_unknown(),t.literal_stack=[],t.escape_s=s,t.escape=s,t.herebody_s=s,t.dedent_level=s}),f(A[0],"LEX_STATES",new Map([["interp_string",k.$lex_en_interp_string()],["interp_words",k.$lex_en_interp_words()],["plain_string",k.$lex_en_plain_string()],["plain_words",k.$lex_en_plain_string()]])),a(k,"$advance",function(a){var d=this,S=s,P=s,Q=s,X=s,$=s,Y=s,U=s,K=s,q=s,W=s,F=s,E=s,G=s,ee=s,R=s,z=s,D=s,L=s,C=s,k=s,p=s,I=s,B=s,Z=s,V=s,y=s,j=s,N=s,f=s,T=s,m=s,x=s,b=s,g=s,w=s,O=s,H=s,te=s,S=d.$class(),P=S.$send("_lex_trans_keys"),Q=S.$send("_lex_key_spans"),X=S.$send("_lex_index_offsets"),$=S.$send("_lex_indicies"),Y=S.$send("_lex_trans_targs"),U=S.$send("_lex_trans_actions"),K=S.$send("_lex_to_state_actions"),q=S.$send("_lex_from_state_actions"),W=S.$send("_lex_eof_trans"),F=d._lex_actions,E=n(d.$source_pts().$size(),2),G=E,ee=!1,J=s,A=v(J);for(R=A[0]==null?s:A[0],z=A[1]==null?s:A[1],D=A[2]==null?s:A[2],L=A[3]==null?s:A[3],C=A[4]==null?s:A[4],k=A[5]==null?s:A[5],J,p=0,I=10,B=15,Z=20,V=30,y=40;t(!0);){if(j=!1,t(l(p,0))){if(r(a,E)){p=V;continue}if(r(d.cs,0)){p=y;continue}}if(t(l(p,I))){for(C=q["$[]"](d.cs),k=F["$[]"](C),C=n(C,1);t(h(k,0));)switch(k=i(k,1),C=n(C,1),F["$[]"](i(C,1)).valueOf()){case 24:d.ts=a;break;default:s}if(t(j))continue;D=d.cs["$<<"](1),L=X["$[]"](d.cs),R=Q["$[]"](d.cs),N=t(f=d.$source_pts()["$[]"](a))?f:0,z=t(h(R,0))&&t(l(P["$[]"](D),N))&&t(l(N,P["$[]"](n(D,1))))?$["$[]"](i(n(L,N),P["$[]"](D))):$["$[]"](n(L,R))}if(t(l(p,B))){if(d.cs=Y["$[]"](z),_(U["$[]"](z),0))for(C=U["$[]"](z),k=F["$[]"](C),C=n(C,1);t(h(k,0));)if(k=i(k,1),C=n(C,1),o(0,f=F["$[]"](i(C,1))))d.newline_s=a;else if(o(1,f))d.$unicode_points(a);else if(o(2,f))d.$unescape_char(a);else if(o(3,f))d.$diagnostic("fatal","invalid_escape");else if(o(4,f))d.$read_post_meta_or_ctrl_char(a);else if(o(5,f))d.$slash_c_char();else if(o(6,f))d.$slash_m_char();else if(o(7,f))d.$encode_escaped_char(a);else if(o(8,f))d.escape="";else if(o(9,f))d.$encode_escaped_char(a);else if(o(10,f))d.escape=d.$encode_escape(d.$tok(d.escape_s,a).$to_i(8)["$%"](256));else if(o(11,f))d.escape=d.$encode_escape(d.$tok(n(d.escape_s,1),a).$to_i(16));else if(o(12,f))d.$diagnostic("fatal","invalid_hex_escape",s,d.$range(i(d.escape_s,1),n(a,2)));else if(o(13,f))d.escape=d.$tok(n(d.escape_s,1),a).$to_i(16).$chr(u(M("Encoding"),"UTF_8"));else if(o(14,f))d.$check_invalid_escapes(a);else if(o(15,f))d.$check_invalid_escapes(a);else if(o(16,f))d.$diagnostic("fatal","unterminated_unicode",s,d.$range(i(a,1),a));else if(o(17,f))d.$diagnostic("fatal","escape_eof",s,d.$range(i(a,1),a));else if(o(18,f))d.escape_s=a,d.escape=s;else if(o(19,f))T="gvar";else if(o(20,f))T="cvar";else if(o(21,f))T="ivar";else if(o(22,f))d.escape=s;else if(o(25,f))d.te=n(a,1);else if(o(26,f)){d.te=n(a,1),m=d.$literal(),d.$extend_interp_code(m),d.root_lexer_state=d.lexer.$class().$lex_en_expr_value(),a=n(a,1),j=!0,p=y;break}else if(o(27,f)){if(d.te=n(a,1),m=d.$literal(),d.$extend_string_eol_check_eof(m,E),t(m["$heredoc?"]()))if(x=d.$extend_string_eol_heredoc_line(),t(m.$nest_and_try_closing(x,d.herebody_s,d.ts))){d.herebody_s=d.te,a=i(m.$heredoc_e(),1),d.cs=d.$pop_literal(),a=n(a,1),j=!0,p=y;break}else m.$infer_indent_level(x),d.herebody_s=d.te;else{if(t(m.$nest_and_try_closing(d.$tok(),d.ts,d.te))){d.cs=d.$pop_literal(),a=n(a,1),j=!0,p=y;break}a=d.$extend_string_eol_heredoc_intertwined(a)}d.$extend_string_eol_words(m,a)}else if(o(28,f))if(d.te=n(a,1),b=d.$tok(),g=d.$extend_string_slice_end(g),m=d.$literal(),c(m["$heredoc?"]())&&t(w=m.$nest_and_try_closing(b,d.ts,d.te,g))){r(w["$[]"](0),"tLABEL_END")?(a=n(a,1),d.$pop_literal(),d.root_lexer_state=d.lexer.$class().$lex_en_expr_labelarg()):t(O=d.$pop_literal())&&(d.cs=O),a=n(a,1),j=!0,p=y;break}else d.$extend_string_for_token_range(m,b);else if(o(29,f))d.te=a,a=i(a,1),d.$extend_interp_digit_var();else if(o(30,f))d.te=a,a=i(a,1),m=d.$literal(),d.$extend_interp_var(m),d.$emit_interp_var(T);else if(o(31,f))d.te=a,a=i(a,1),d.$extend_string_escaped();else if(o(32,f))d.te=a,a=i(a,1),d.$literal().$extend_space(d.ts,d.te);else if(o(33,f))if(d.te=a,a=i(a,1),b=d.$tok(),g=d.$extend_string_slice_end(g),m=d.$literal(),c(m["$heredoc?"]())&&t(w=m.$nest_and_try_closing(b,d.ts,d.te,g))){r(w["$[]"](0),"tLABEL_END")?(a=n(a,1),d.$pop_literal(),d.root_lexer_state=d.lexer.$class().$lex_en_expr_labelarg()):t(O=d.$pop_literal())&&(d.cs=O),a=n(a,1),j=!0,p=y;break}else d.$extend_string_for_token_range(m,b);else if(o(34,f))a=i(d.te,1),d.$extend_string_escaped();else if(o(35,f))if(a=i(d.te,1),b=d.$tok(),g=d.$extend_string_slice_end(g),m=d.$literal(),c(m["$heredoc?"]())&&t(w=m.$nest_and_try_closing(b,d.ts,d.te,g))){r(w["$[]"](0),"tLABEL_END")?(a=n(a,1),d.$pop_literal(),d.root_lexer_state=d.lexer.$class().$lex_en_expr_labelarg()):t(O=d.$pop_literal())&&(d.cs=O),a=n(a,1),j=!0,p=y;break}else d.$extend_string_for_token_range(m,b);else if(o(36,f)){d.te=n(a,1),m=d.$literal(),d.$extend_interp_code(m),d.root_lexer_state=d.lexer.$class().$lex_en_expr_value(),a=n(a,1),j=!0,p=y;break}else if(o(37,f)){if(d.te=n(a,1),m=d.$literal(),d.$extend_string_eol_check_eof(m,E),t(m["$heredoc?"]()))if(x=d.$extend_string_eol_heredoc_line(),t(m.$nest_and_try_closing(x,d.herebody_s,d.ts))){d.herebody_s=d.te,a=i(m.$heredoc_e(),1),d.cs=d.$pop_literal(),a=n(a,1),j=!0,p=y;break}else m.$infer_indent_level(x),d.herebody_s=d.te;else{if(t(m.$nest_and_try_closing(d.$tok(),d.ts,d.te))){d.cs=d.$pop_literal(),a=n(a,1),j=!0,p=y;break}a=d.$extend_string_eol_heredoc_intertwined(a)}d.$extend_string_eol_words(m,a)}else if(o(38,f))if(d.te=n(a,1),b=d.$tok(),g=d.$extend_string_slice_end(g),m=d.$literal(),c(m["$heredoc?"]())&&t(w=m.$nest_and_try_closing(b,d.ts,d.te,g))){r(w["$[]"](0),"tLABEL_END")?(a=n(a,1),d.$pop_literal(),d.root_lexer_state=d.lexer.$class().$lex_en_expr_labelarg()):t(O=d.$pop_literal())&&(d.cs=O),a=n(a,1),j=!0,p=y;break}else d.$extend_string_for_token_range(m,b);else if(o(39,f))d.te=a,a=i(a,1),d.$extend_interp_digit_var();else if(o(40,f))d.te=a,a=i(a,1),m=d.$literal(),d.$extend_interp_var(m),d.$emit_interp_var(T);else if(o(41,f))d.te=a,a=i(a,1),d.$extend_string_escaped();else if(o(42,f))if(d.te=a,a=i(a,1),b=d.$tok(),g=d.$extend_string_slice_end(g),m=d.$literal(),c(m["$heredoc?"]())&&t(w=m.$nest_and_try_closing(b,d.ts,d.te,g))){r(w["$[]"](0),"tLABEL_END")?(a=n(a,1),d.$pop_literal(),d.root_lexer_state=d.lexer.$class().$lex_en_expr_labelarg()):t(O=d.$pop_literal())&&(d.cs=O),a=n(a,1),j=!0,p=y;break}else d.$extend_string_for_token_range(m,b);else if(o(43,f))a=i(d.te,1),d.$extend_string_escaped();else if(o(44,f))if(a=i(d.te,1),b=d.$tok(),g=d.$extend_string_slice_end(g),m=d.$literal(),c(m["$heredoc?"]())&&t(w=m.$nest_and_try_closing(b,d.ts,d.te,g))){r(w["$[]"](0),"tLABEL_END")?(a=n(a,1),d.$pop_literal(),d.root_lexer_state=d.lexer.$class().$lex_en_expr_labelarg()):t(O=d.$pop_literal())&&(d.cs=O),a=n(a,1),j=!0,p=y;break}else d.$extend_string_for_token_range(m,b);else if(o(45,f))d.te=n(a,1),d.$extend_string_escaped();else if(o(46,f)){if(d.te=n(a,1),m=d.$literal(),d.$extend_string_eol_check_eof(m,E),t(m["$heredoc?"]()))if(x=d.$extend_string_eol_heredoc_line(),t(m.$nest_and_try_closing(x,d.herebody_s,d.ts))){d.herebody_s=d.te,a=i(m.$heredoc_e(),1),d.cs=d.$pop_literal(),a=n(a,1),j=!0,p=y;break}else m.$infer_indent_level(x),d.herebody_s=d.te;else{if(t(m.$nest_and_try_closing(d.$tok(),d.ts,d.te))){d.cs=d.$pop_literal(),a=n(a,1),j=!0,p=y;break}a=d.$extend_string_eol_heredoc_intertwined(a)}d.$extend_string_eol_words(m,a)}else if(o(47,f))if(d.te=n(a,1),b=d.$tok(),g=d.$extend_string_slice_end(g),m=d.$literal(),c(m["$heredoc?"]())&&t(w=m.$nest_and_try_closing(b,d.ts,d.te,g))){r(w["$[]"](0),"tLABEL_END")?(a=n(a,1),d.$pop_literal(),d.root_lexer_state=d.lexer.$class().$lex_en_expr_labelarg()):t(O=d.$pop_literal())&&(d.cs=O),a=n(a,1),j=!0,p=y;break}else d.$extend_string_for_token_range(m,b);else if(o(48,f))d.te=a,a=i(a,1),d.$literal().$extend_space(d.ts,d.te);else if(o(49,f))if(d.te=a,a=i(a,1),b=d.$tok(),g=d.$extend_string_slice_end(g),m=d.$literal(),c(m["$heredoc?"]())&&t(w=m.$nest_and_try_closing(b,d.ts,d.te,g))){r(w["$[]"](0),"tLABEL_END")?(a=n(a,1),d.$pop_literal(),d.root_lexer_state=d.lexer.$class().$lex_en_expr_labelarg()):t(O=d.$pop_literal())&&(d.cs=O),a=n(a,1),j=!0,p=y;break}else d.$extend_string_for_token_range(m,b);else if(o(50,f)){if(d.te=n(a,1),m=d.$literal(),d.$extend_string_eol_check_eof(m,E),t(m["$heredoc?"]()))if(x=d.$extend_string_eol_heredoc_line(),t(m.$nest_and_try_closing(x,d.herebody_s,d.ts))){d.herebody_s=d.te,a=i(m.$heredoc_e(),1),d.cs=d.$pop_literal(),a=n(a,1),j=!0,p=y;break}else m.$infer_indent_level(x),d.herebody_s=d.te;else{if(t(m.$nest_and_try_closing(d.$tok(),d.ts,d.te))){d.cs=d.$pop_literal(),a=n(a,1),j=!0,p=y;break}a=d.$extend_string_eol_heredoc_intertwined(a)}d.$extend_string_eol_words(m,a)}else if(o(51,f))d.te=n(a,1),d.$extend_string_escaped();else if(o(52,f)){if(d.te=n(a,1),m=d.$literal(),d.$extend_string_eol_check_eof(m,E),t(m["$heredoc?"]()))if(x=d.$extend_string_eol_heredoc_line(),t(m.$nest_and_try_closing(x,d.herebody_s,d.ts))){d.herebody_s=d.te,a=i(m.$heredoc_e(),1),d.cs=d.$pop_literal(),a=n(a,1),j=!0,p=y;break}else m.$infer_indent_level(x),d.herebody_s=d.te;else{if(t(m.$nest_and_try_closing(d.$tok(),d.ts,d.te))){d.cs=d.$pop_literal(),a=n(a,1),j=!0,p=y;break}a=d.$extend_string_eol_heredoc_intertwined(a)}d.$extend_string_eol_words(m,a)}else if(o(53,f))if(d.te=n(a,1),b=d.$tok(),g=d.$extend_string_slice_end(g),m=d.$literal(),c(m["$heredoc?"]())&&t(w=m.$nest_and_try_closing(b,d.ts,d.te,g))){r(w["$[]"](0),"tLABEL_END")?(a=n(a,1),d.$pop_literal(),d.root_lexer_state=d.lexer.$class().$lex_en_expr_labelarg()):t(O=d.$pop_literal())&&(d.cs=O),a=n(a,1),j=!0,p=y;break}else d.$extend_string_for_token_range(m,b);else if(o(54,f))if(d.te=a,a=i(a,1),b=d.$tok(),g=d.$extend_string_slice_end(g),m=d.$literal(),c(m["$heredoc?"]())&&t(w=m.$nest_and_try_closing(b,d.ts,d.te,g))){r(w["$[]"](0),"tLABEL_END")?(a=n(a,1),d.$pop_literal(),d.root_lexer_state=d.lexer.$class().$lex_en_expr_labelarg()):t(O=d.$pop_literal())&&(d.cs=O),a=n(a,1),j=!0,p=y;break}else d.$extend_string_for_token_range(m,b);else if(o(55,f)){d.te=n(a,1),m=d.$literal(),d.$extend_interp_code(m),d.root_lexer_state=d.lexer.$class().$lex_en_expr_value(),a=n(a,1),j=!0,p=y;break}else if(o(56,f)){if(d.te=n(a,1),m=d.$literal(),d.$extend_string_eol_check_eof(m,E),t(m["$heredoc?"]()))if(x=d.$extend_string_eol_heredoc_line(),t(m.$nest_and_try_closing(x,d.herebody_s,d.ts))){d.herebody_s=d.te,a=i(m.$heredoc_e(),1),d.cs=d.$pop_literal(),a=n(a,1),j=!0,p=y;break}else m.$infer_indent_level(x),d.herebody_s=d.te;else{if(t(m.$nest_and_try_closing(d.$tok(),d.ts,d.te))){d.cs=d.$pop_literal(),a=n(a,1),j=!0,p=y;break}a=d.$extend_string_eol_heredoc_intertwined(a)}d.$extend_string_eol_words(m,a)}else if(o(57,f))if(d.te=n(a,1),b=d.$tok(),g=d.$extend_string_slice_end(g),m=d.$literal(),c(m["$heredoc?"]())&&t(w=m.$nest_and_try_closing(b,d.ts,d.te,g))){r(w["$[]"](0),"tLABEL_END")?(a=n(a,1),d.$pop_literal(),d.root_lexer_state=d.lexer.$class().$lex_en_expr_labelarg()):t(O=d.$pop_literal())&&(d.cs=O),a=n(a,1),j=!0,p=y;break}else d.$extend_string_for_token_range(m,b);else if(o(58,f))d.te=a,a=i(a,1),d.$extend_interp_digit_var();else if(o(59,f))d.te=a,a=i(a,1),m=d.$literal(),d.$extend_interp_var(m),d.$emit_interp_var(T);else if(o(60,f))if(d.te=a,a=i(a,1),b=d.$tok(),g=d.$extend_string_slice_end(g),m=d.$literal(),c(m["$heredoc?"]())&&t(w=m.$nest_and_try_closing(b,d.ts,d.te,g))){r(w["$[]"](0),"tLABEL_END")?(a=n(a,1),d.$pop_literal(),d.root_lexer_state=d.lexer.$class().$lex_en_expr_labelarg()):t(O=d.$pop_literal())&&(d.cs=O),a=n(a,1),j=!0,p=y;break}else d.$extend_string_for_token_range(m,b);else if(o(61,f))if(a=i(d.te,1),b=d.$tok(),g=d.$extend_string_slice_end(g),m=d.$literal(),c(m["$heredoc?"]())&&t(w=m.$nest_and_try_closing(b,d.ts,d.te,g))){r(w["$[]"](0),"tLABEL_END")?(a=n(a,1),d.$pop_literal(),d.root_lexer_state=d.lexer.$class().$lex_en_expr_labelarg()):t(O=d.$pop_literal())&&(d.cs=O),a=n(a,1),j=!0,p=y;break}else d.$extend_string_for_token_range(m,b);else if(o(62,f)){if(d.te=n(a,1),m=d.$literal(),d.$extend_string_eol_check_eof(m,E),t(m["$heredoc?"]()))if(x=d.$extend_string_eol_heredoc_line(),t(m.$nest_and_try_closing(x,d.herebody_s,d.ts))){d.herebody_s=d.te,a=i(m.$heredoc_e(),1),d.cs=d.$pop_literal(),a=n(a,1),j=!0,p=y;break}else m.$infer_indent_level(x),d.herebody_s=d.te;else{if(t(m.$nest_and_try_closing(d.$tok(),d.ts,d.te))){d.cs=d.$pop_literal(),a=n(a,1),j=!0,p=y;break}a=d.$extend_string_eol_heredoc_intertwined(a)}d.$extend_string_eol_words(m,a)}else if(o(63,f))if(d.te=n(a,1),b=d.$tok(),g=d.$extend_string_slice_end(g),m=d.$literal(),c(m["$heredoc?"]())&&t(w=m.$nest_and_try_closing(b,d.ts,d.te,g))){r(w["$[]"](0),"tLABEL_END")?(a=n(a,1),d.$pop_literal(),d.root_lexer_state=d.lexer.$class().$lex_en_expr_labelarg()):t(O=d.$pop_literal())&&(d.cs=O),a=n(a,1),j=!0,p=y;break}else d.$extend_string_for_token_range(m,b);else if(o(64,f)){d.te=n(a,1),m=d.$literal(),d.$extend_interp_code(m),d.root_lexer_state=d.lexer.$class().$lex_en_expr_value(),a=n(a,1),j=!0,p=y;break}else if(o(65,f)){if(d.te=n(a,1),m=d.$literal(),d.$extend_string_eol_check_eof(m,E),t(m["$heredoc?"]()))if(x=d.$extend_string_eol_heredoc_line(),t(m.$nest_and_try_closing(x,d.herebody_s,d.ts))){d.herebody_s=d.te,a=i(m.$heredoc_e(),1),d.cs=d.$pop_literal(),a=n(a,1),j=!0,p=y;break}else m.$infer_indent_level(x),d.herebody_s=d.te;else{if(t(m.$nest_and_try_closing(d.$tok(),d.ts,d.te))){d.cs=d.$pop_literal(),a=n(a,1),j=!0,p=y;break}a=d.$extend_string_eol_heredoc_intertwined(a)}d.$extend_string_eol_words(m,a)}else if(o(66,f))if(d.te=n(a,1),b=d.$tok(),g=d.$extend_string_slice_end(g),m=d.$literal(),c(m["$heredoc?"]())&&t(w=m.$nest_and_try_closing(b,d.ts,d.te,g))){r(w["$[]"](0),"tLABEL_END")?(a=n(a,1),d.$pop_literal(),d.root_lexer_state=d.lexer.$class().$lex_en_expr_labelarg()):t(O=d.$pop_literal())&&(d.cs=O),a=n(a,1),j=!0,p=y;break}else d.$extend_string_for_token_range(m,b);else if(o(67,f))d.te=a,a=i(a,1),d.$extend_interp_digit_var();else if(o(68,f))d.te=a,a=i(a,1),m=d.$literal(),d.$extend_interp_var(m),d.$emit_interp_var(T);else if(o(69,f))d.te=a,a=i(a,1),d.$literal().$extend_space(d.ts,d.te);else if(o(70,f))if(d.te=a,a=i(a,1),b=d.$tok(),g=d.$extend_string_slice_end(g),m=d.$literal(),c(m["$heredoc?"]())&&t(w=m.$nest_and_try_closing(b,d.ts,d.te,g))){r(w["$[]"](0),"tLABEL_END")?(a=n(a,1),d.$pop_literal(),d.root_lexer_state=d.lexer.$class().$lex_en_expr_labelarg()):t(O=d.$pop_literal())&&(d.cs=O),a=n(a,1),j=!0,p=y;break}else d.$extend_string_for_token_range(m,b);else if(o(71,f))if(a=i(d.te,1),b=d.$tok(),g=d.$extend_string_slice_end(g),m=d.$literal(),c(m["$heredoc?"]())&&t(w=m.$nest_and_try_closing(b,d.ts,d.te,g))){r(w["$[]"](0),"tLABEL_END")?(a=n(a,1),d.$pop_literal(),d.root_lexer_state=d.lexer.$class().$lex_en_expr_labelarg()):t(O=d.$pop_literal())&&(d.cs=O),a=n(a,1),j=!0,p=y;break}else d.$extend_string_for_token_range(m,b);else if(o(72,f)){if(d.te=n(a,1),m=d.$literal(),d.$extend_string_eol_check_eof(m,E),t(m["$heredoc?"]()))if(x=d.$extend_string_eol_heredoc_line(),t(m.$nest_and_try_closing(x,d.herebody_s,d.ts))){d.herebody_s=d.te,a=i(m.$heredoc_e(),1),d.cs=d.$pop_literal(),a=n(a,1),j=!0,p=y;break}else m.$infer_indent_level(x),d.herebody_s=d.te;else{if(t(m.$nest_and_try_closing(d.$tok(),d.ts,d.te))){d.cs=d.$pop_literal(),a=n(a,1),j=!0,p=y;break}a=d.$extend_string_eol_heredoc_intertwined(a)}d.$extend_string_eol_words(m,a)}else if(o(73,f))if(d.te=n(a,1),b=d.$tok(),g=d.$extend_string_slice_end(g),m=d.$literal(),c(m["$heredoc?"]())&&t(w=m.$nest_and_try_closing(b,d.ts,d.te,g))){r(w["$[]"](0),"tLABEL_END")?(a=n(a,1),d.$pop_literal(),d.root_lexer_state=d.lexer.$class().$lex_en_expr_labelarg()):t(O=d.$pop_literal())&&(d.cs=O),a=n(a,1),j=!0,p=y;break}else d.$extend_string_for_token_range(m,b);else if(o(74,f))d.te=a,a=i(a,1),d.$literal().$extend_space(d.ts,d.te);else if(o(75,f)){d.te=n(a,1),d.$emit("tREGEXP_OPT",d.$tok(d.ts,i(d.te,1)),d.ts,i(d.te,1)),a=i(a,1),d.root_lexer_state=d.lexer.$class().$lex_en_expr_end(),a=n(a,1),j=!0,p=y;break}else if(o(76,f)){d.te=a,a=i(a,1),H=d.$tok().$scan(/[^imxouesn]/),t(H["$any?"]())&&d.$diagnostic("error","regexp_options",new Map([["options",H.$join()]])),d.$emit("tREGEXP_OPT"),d.root_lexer_state=d.lexer.$class().$lex_en_expr_end(),a=n(a,1),j=!0,p=y;break}else if(o(77,f)){d.te=n(a,1),te=M("ESCAPE_WHITESPACE")["$[]"](d.$source_buffer().$slice(n(d.ts,1),1)),d.$diagnostic("warning","invalid_escape_use",new Map([["escape",te]]),d.$range()),a=i(d.ts,1),d.root_lexer_state=d.lexer.$class().$lex_en_expr_end(),a=n(a,1),j=!0,p=y;break}else if(o(78,f)){d.te=a,a=i(a,1),d.$emit_character_constant(),d.root_lexer_state=d.lexer.$class().$lex_en_expr_end(),a=n(a,1),j=!0,p=y;break}else if(o(79,f)){d.te=a,a=i(a,1),a=i(d.ts,1),d.root_lexer_state=d.lexer.$class().$lex_en_expr_end(),a=n(a,1),j=!0,p=y;break}else if(o(80,f)){a=i(d.te,1),d.$emit_character_constant(),d.root_lexer_state=d.lexer.$class().$lex_en_expr_end(),a=n(a,1),j=!0,p=y;break}else o(81,f)?(d.te=n(a,1),d.$raise("bug")):s;if(t(j))continue}if(t(l(p,Z))){for(C=K["$[]"](d.cs),k=F["$[]"](C),C=n(C,1);t(h(k,0));)switch(k=i(k,1),C=n(C,1),F["$[]"](i(C,1)).valueOf()){case 23:d.ts=s;break;default:s}if(t(j))continue;if(r(d.cs,0)){p=y;continue}if(a=n(a,1),_(a,E)){p=I;continue}}if(t(l(p,V))&&r(a,G)&&t(h(W["$[]"](d.cs),0))){z=i(W["$[]"](d.cs),1),p=B;continue}if(t(l(p,y)))break}return t(!1)&&ee,[a,d.root_lexer_state]}),a(k,"$read_character_constant",function(t){var n=this;return n.cs=n.$class().$lex_en_character(),n.$advance(t)}),a(k,"$push_literal",function(){var n=this,o=s,i=g(arguments),a=i,o=m(u(u(M("Parser"),"Lexer"),"Literal"),"new",[n].concat(b(a)));return n.literal_stack.$push(o),n.cs=n.$next_state_for_literal(o)},-1),a(k,"$next_state_for_literal",function(n){var s=this;return t(n["$words?"]())&&t(n["$backslash_delimited?"]())?t(n["$interpolate?"]())?s.$class().$lex_en_interp_backslash_delimited_words():s.$class().$lex_en_plain_backslash_delimited_words():t(n["$words?"]())&&c(n["$backslash_delimited?"]())?t(n["$interpolate?"]())?s.$class().$lex_en_interp_words():s.$class().$lex_en_plain_words():c(n["$words?"]())&&t(n["$backslash_delimited?"]())?t(n["$interpolate?"]())?s.$class().$lex_en_interp_backslash_delimited():s.$class().$lex_en_plain_backslash_delimited():t(n["$interpolate?"]())?s.$class().$lex_en_interp_string():s.$class().$lex_en_plain_string()}),a(k,"$continue_lexing",function(t){var n=this;return n.cs=n.$next_state_for_literal(t)}),a(k,"$literal",function(){var t=this;return t.literal_stack.$last()}),a(k,"$pop_literal",function(){var t=this,n=s,n=t.literal_stack.$pop();return t.dedent_level=n.$dedent_level(),r(n.$type(),"tREGEXP_BEG")?(t.root_lexer_state=t.lexer.$class().$lex_en_inside_string(),t.$class().$lex_en_regexp_modifiers()):(t.root_lexer_state=t.lexer.$class().$lex_en_expr_end(),s)}),a(k,"$close_interp_on_current_literal",function(n){var o=this,a=s,a=o.$literal();return t(a)&&t(a.$end_interp_brace_and_try_closing())?(t(o["$version?"](18,19))?(o.$emit("tRCURLY","}".$freeze(),i(n,1),n),o.lexer.$cond().$lexpop(),o.lexer.$cmdarg().$lexpop()):o.$emit("tSTRING_DEND","}".$freeze(),i(n,1),n),t(a.$saved_herebody_s())&&(o.herebody_s=a.$saved_herebody_s()),o.$continue_lexing(a),!0):s}),a(k,"$dedent_level",function(){var n=this,o=s,t=[n.dedent_level,s];return o=t[0],n.dedent_level=t[1],t,o}),a(k,"$on_newline",function(n){var o=this;return t(o.herebody_s)&&(n=o.herebody_s,o.herebody_s=s),n}),k.$protected(),a(k,"$eof_codepoint?",function(t){return[4,26,0]["$include?"](t)}),a(k,"$version?",function(){var o=this,n=g(arguments),s=n;return s["$include?"](o.version)},-1),a(k,"$tok",function(t,n){var s=this;return t==null&&(t=s.ts),n==null&&(n=s.te),s.source_buffer.$slice(t,i(n,t))},-1),a(k,"$range",function(t,n){var s=this;return t==null&&(t=s.ts),n==null&&(n=s.te),u(u(M("Parser"),"Source"),"Range").$new(s.source_buffer,t,n)},-1),a(k,"$emit",function(t,n,s,o){var i=this;return n==null&&(n=i.$tok()),s==null&&(s=i.ts),o==null&&(o=i.te),i.lexer.$send("emit",t,n,s,o)},-2),a(k,"$diagnostic",function(t,n,o,i,a){var r=this;return o==null&&(o=s),i==null&&(i=r.$range()),a==null&&(a=[]),r.lexer.$send("diagnostic",t,n,o,i,a)},-3),a(k,"$cond",function(){var t=this;return t.lexer.$cond()}),a(k,"$emit_invalid_escapes?",function(){var n=this;return!!t(p(n.version,32))||!!t(n.$literal()["$nil?"]())||n.$literal()["$regexp?"]()["$!"]()}),a(k,"$extend_string_escaped",function(){var n=this,o=s,i=s,a=s,o=n.$literal(),i=n.$source_buffer().$slice(n.escape_s,1).$chr();return t(o["$munge_escape?"](i))?t(o["$regexp?"]())&&t(M("REGEXP_META_CHARACTERS").$match(i))?o.$extend_string(n.$tok(),n.ts,n.te):o.$extend_string(i,n.ts,n.te):t(o["$squiggly_heredoc?"]())&&r(i,`
`.$freeze())?o.$extend_string(n.$tok(),n.ts,n.te):t(o["$supports_line_continuation_via_slash?"]())&&r(i,`
`.$freeze())?o.$extend_string(n.$tok().$gsub(`\\
`.$freeze(),"".$freeze()),n.ts,n.te):t(o["$regexp?"]())&&t(d(n.version,31))&&t(["c","C","m","M"]["$include?"](i))?o.$extend_string(n.escape,n.ts,n.te):t(o["$regexp?"]())?o.$extend_string(n.$tok().$gsub(`\\
`.$freeze(),"".$freeze()),n.ts,n.te):o.$extend_string(t(a=n.escape)?a:n.$tok(),n.ts,n.te)}),a(k,"$extend_interp_code",function(n){var o,i=this;return n.$flush_string(),n.$extend_content(),i.$emit("tSTRING_DBEG","#{".$freeze()),t(n["$heredoc?"]())&&(n["$saved_herebody_s="](i.herebody_s),i.herebody_s=s),n.$start_interp_brace(),(o=[!0],m(i.lexer,"command_start=",o),o[o.length-1])}),a(k,"$extend_interp_digit_var",function(){var o=this,i=s;return t(d(o.version,27))?o.$literal().$extend_string(o.$tok(),o.ts,o.te):(i=t(o.$tok()["$start_with?"]("#@@"))?"cvar_name":"ivar_name",o.$diagnostic("error",i,new Map([["name",o.$tok(n(o.ts,1),o.te)]]),o.$range(n(o.ts,1),o.te)))}),a(k,"$extend_string_eol_check_eof",function(t,o){var i=this;return r(i.te,o)?i.$diagnostic("fatal","string_eof",s,i.$range(t.$str_s(),n(t.$str_s(),1))):s}),a(k,"$extend_string_eol_heredoc_line",function(){var n=this,o=s,o=n.$tok(n.herebody_s,n.ts).$gsub(/\r+$/,"".$freeze());return t(n["$version?"](18,19,20))&&(o=o.$gsub(/\r.*$/,"".$freeze())),o}),a(k,"$extend_string_eol_heredoc_intertwined",function(n){var o=this;return t(o.herebody_s)&&(n=i(o.herebody_s,1),o.herebody_s=s),n}),a(k,"$extend_string_eol_words",function(n,s){var o=this;return t(n["$words?"]())&&c(o["$eof_codepoint?"](o.$source_pts()["$[]"](s)))?n.$extend_space(o.ts,o.te):(n.$extend_string(o.$tok(),o.ts,o.te),n.$flush_string())}),a(k,"$extend_string_slice_end",function(n){var s=this;return t(d(s.version,22))&&c(s.$cond()["$active?"]())&&(n=s.$source_buffer().$slice(s.te,2)),n}),a(k,"$extend_string_for_token_range",function(t,n){var s=this;return t.$extend_string(n,s.ts,s.te)}),a(k,"$encode_escape",function(t){var n=this;return t.$chr().$force_encoding(n.$source_buffer().$source().$encoding())}),a(k,"$unescape_char",function(n){var o=this,a=s,a=o.$source_pts()["$[]"](i(n,1));return t(d(o.version,30))&&(r(a,117)||r(a,85))&&o.$diagnostic("fatal","invalid_escape"),t((o.escape=M("ESCAPES")["$[]"](a))["$nil?"]())?o.escape=o.$encode_escape(o.$source_buffer().$slice(i(n,1),1)):s}),a(k,"$unicode_points",function(o){var a=this,l=s,c=s,h=s;return a.escape="",l=a.$tok(n(a.escape_s,2),i(o,1)),c=n(a.escape_s,2),t(p(a.version,24))&&((t(l["$start_with?"](" "))||t(l["$start_with?"](" ")))&&a.$diagnostic("fatal","invalid_unicode_escape",s,a.$range(n(a.escape_s,2),n(a.escape_s,3))),t(h=l.$index(/[ \t]{2}/))&&a.$diagnostic("fatal","invalid_unicode_escape",s,a.$range(n(n(c,h),1),n(n(c,h),2))),(t(l["$end_with?"](" "))||t(l["$end_with?"](" ")))&&a.$diagnostic("fatal","invalid_unicode_escape",s,a.$range(i(o,1),o))),function(){try{var e=O("break");return m(l.$scan(/([0-9a-fA-F]+)|([ \t]+)/),"each",[],function o(i){var l,f,a=o.$$s==null?this:o.$$s,h=s,p=s,m=s;return a.escape==null&&(a.escape=s),i==null&&(i=s),f=i,l=v(f),h=l[0]==null?s:l[0],p=l[1]==null?s:l[1],f,t(p)?c=n(c,p.$length()):(m=h.$to_i(16),t(d(m,1114112))&&(a.$diagnostic("error","unicode_point_too_large",s,a.$range(c,n(c,h.$length()))),e.$throw(s,o.$$is_lambda)),r(m["$&"](4294965248),55296)&&(a.$diagnostic("error","invalid_unicode_escape",s,a.$range(c,n(c,h.$length()))),e.$throw(s,o.$$is_lambda)),a.escape=n(a.escape,m.$chr(u(M("Encoding"),"UTF_8"))),c=n(c,h.$length()))},{$$s:a,$$has_top_level_mlhs_arg:!0})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}()}),a(k,"$read_post_meta_or_ctrl_char",function(n){var o=this;return o.escape=o.$source_buffer().$slice(i(n,1),1).$chr(),t(d(o.version,27))&&(t(j(0,8,!1)["$include?"](o.escape.$ord()))||t(j(14,31,!1)["$include?"](o.escape.$ord())))?o.$diagnostic("fatal","invalid_escape"):s}),a(k,"$extend_interp_var",function(t){var o=this;return t.$flush_string(),t.$extend_content(),o.$emit("tSTRING_DVAR",s,o.ts,n(o.ts,1)),o.ts}),a(k,"$emit_interp_var",function(t){var o=this;switch(t.valueOf()){case"cvar":return o.lexer.$send("emit_class_var",n(o.ts,1),o.te);case"ivar":return o.lexer.$send("emit_instance_var",n(o.ts,1),o.te);case"gvar":return o.lexer.$send("emit_global_var",n(o.ts,1),o.te);default:return s}}),a(k,"$encode_escaped_char",function(t){var n=this;return n.escape=n.$encode_escape(n.$tok(i(t,2),t).$to_i(16))}),a(k,"$slash_c_char",function(){var t=this;return t.escape=t.$encode_escape(t.escape["$[]"](0).$ord()["$&"](159))}),a(k,"$slash_m_char",function(){var t=this;return t.escape=t.$encode_escape(t.escape["$[]"](0).$ord()["$|"](128))}),a(k,"$emit_character_constant",function(){var o=this,i=s,a=s,i=t(a=o.escape)?a:o.$tok(n(o.ts,1));return t(o["$version?"](18))?o.$emit("tINTEGER",i.$getbyte(0)):o.$emit("tCHARACTER",i)}),a(k,"$check_ambiguous_slash",function(o){var i=this;return r(i.$tok(o,n(o,1)),"/".$freeze())?t(p(i.version,30))?i.$diagnostic("warning","ambiguous_literal",s,i.$range(o,n(o,1))):i.$diagnostic("warning","ambiguous_regexp",s,i.$range(o,n(o,1))):s}),a(k,"$check_invalid_escapes",function(n){var o=this;return t(o["$emit_invalid_escapes?"]())?o.$diagnostic("fatal","invalid_unicode_escape",s,o.$range(i(o.escape_s,1),n)):s}),f(A[0],"ESCAPE_WHITESPACE",new Map([[" ","\\s"],[` `,`\\r`],[`
`,`\\n`],[" ","\\t"],[" ","\\v"],[" ","\\f"]]))}(x("Parser"),null,y)},Opal.modules["parser/lexer/literal"]=function(e){var p=e.module,_=e.klass,a=e.const_set,o=e.enc,n=e.truthy,i=e.rb_plus,y=e.to_ary,s=e.def,h=e.return_ivar,r=e.eqeq,c=e.rb_minus,m=e.neqeq,f=e.not,l=e.send,u=e.eqeqeq,g=e.rb_gt,v=e.thrower,b=e.assign_ivar_val,j=e.regexp,d=[],t=e.nil;return e.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(d,w){var x=p(d,"Parser"),O=[x].concat(w),C=e.$r(O);return function(d,p,w){var O=_(d,p,"Literal"),E=[O].concat(w),C=e.$r(E),x=O.$$prototype;return x.lexer=x.start_tok=x.str_type=x.monolithic=x.heredoc_e=x.dedent_body=x.end_delim=x.start_delim=x.nesting=x.label_allowed=x.buffer=x.str_s=x.interp_braces=x.buffer_s=x.buffer_e=x.space_emitted=x.interpolate=x.indent=t,a(E[0],"DELIMITERS",new Map([["(",o(")","ASCII-8BIT")],["[",o("]","ASCII-8BIT")],["{",o("}","ASCII-8BIT")],["<",o(">","ASCII-8BIT")]])),a(E[0],"SPACE",o(" ","ASCII-8BIT").$ord()),a(E[0],"TAB",o(" ","ASCII-8BIT").$ord()),a(E[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]]])),O.$attr_reader("heredoc_e","str_s","dedent_level"),O.$attr_accessor("saved_herebody_s"),s(O,"$initialize",function(s,a,r,c,l,d,u,h){var f,p,m=this,g=t,v=t;return l==null&&(l=t),d==null&&(d=!1),u==null&&(u=!1),h==null&&(h=!1),m.lexer=s,m.nesting=1,a=m.$coerce_encoding(a),r=m.$coerce_encoding(r),n(C("TYPES")["$include?"](a))||s.$send("diagnostic","error","unexpected_percent_str",new Map([["type",a]]),m.lexer.$send("range",c,i(c,2))),m.str_type=a,m.str_s=c,p=C("TYPES")["$[]"](a),f=y(p),m.start_tok=f[0]==null?t:f[0],m.interpolate=f[1]==null?t:f[1],p,m.start_delim=n(C("DELIMITERS")["$include?"](r))?r:t,m.end_delim=C("DELIMITERS").$fetch(r,r),m.heredoc_e=l,m.indent=d,m.label_allowed=h,m.dedent_body=u,m.dedent_level=t,m.interp_braces=0,m.space_emitted=!0,m.monolithic=n(g=n(v=m.start_tok["$=="]("tSTRING_BEG"))?[o("'","ASCII-8BIT"),o('"',"ASCII-8BIT")]["$include?"](a):v)?m["$heredoc?"]()["$!"]():g,n(m.str_type["$start_with?"](o("%","ASCII-8BIT").$freeze()))&&(m.str_type=i(m.str_type,r)),m.$clear_buffer(),n(m.monolithic)?t:m.$emit_start_tok()},-5),s(O,"$interpolate?",h("interpolate")),s(O,"$words?",function(){var s=this,o=t,i=t,a=t;return n(o=n(i=n(a=s.$type()["$=="]("tWORDS_BEG"))?a:s.$type()["$=="]("tQWORDS_BEG"))?i:s.$type()["$=="]("tSYMBOLS_BEG"))?o:s.$type()["$=="]("tQSYMBOLS_BEG")}),s(O,"$regexp?",function(){var t=this;return t.$type()["$=="]("tREGEXP_BEG")}),s(O,"$heredoc?",function(){var t=this;return t.heredoc_e["$!"]()["$!"]()}),s(O,"$plain_heredoc?",function(){var s=this,o=t;return n(o=s["$heredoc?"]())?s.dedent_body["$!"]():o}),s(O,"$squiggly_heredoc?",function(){var s=this,o=t;return n(o=s["$heredoc?"]())?s.dedent_body:o}),s(O,"$backslash_delimited?",function(){var t=this;return t.end_delim["$=="](o("\\","ASCII-8BIT").$freeze())}),s(O,"$type",h("start_tok")),s(O,"$munge_escape?",function(t){var s=this;return t=s.$coerce_encoding(t),!!(n(s["$words?"]())&&n(t["$=~"](/[ \t\v\r\f\n]/)))||[o("\\","ASCII-8BIT").$freeze(),s.start_delim,s.end_delim]["$include?"](t)}),s(O,"$nest_and_try_closing",function(s,a,l,d){var u=this;return d==null&&(d=t),s=u.$coerce_encoding(s),n(u.start_delim)&&r(u.start_delim,s)?u.nesting=i(u.nesting,1):n(u["$delimiter?"](s))&&(u.nesting=c(u.nesting,1)),r(u.nesting,0)?(n(u["$words?"]())&&u.$extend_space(a,a),n(d)&&n(u.label_allowed)&&r(d["$[]"](0),o(":","ASCII-8BIT"))&&m(d["$[]"](1),o(":","ASCII-8BIT"))&&r(u.start_tok,"tSTRING_BEG")?(u.$flush_string(),u.$emit("tLABEL_END",u.end_delim,a,i(l,1))):n(u.monolithic)?u.$emit("tSTRING",u.buffer,u.str_s,l):(n(u["$heredoc?"]())||u.$flush_string(),u.$emit("tSTRING_END",u.end_delim,a,l))):t},-4),s(O,"$infer_indent_level",function(s){var a=this,o=t;return f(a.dedent_body)?t:(o=0,function(){try{var e=v("break");return l(s,"each_char",[],function s(a){var r=s.$$s==null?this:s.$$s,l=t;if(r.dedent_level==null&&(r.dedent_level=t),a==null&&(a=t),u(" ",l=a))return o=i(o,1);if(u(" ",l))return o=i(o,c(8,o["$%"](8)));(n(r.dedent_level["$nil?"]())||n(g(r.dedent_level,o)))&&(r.dedent_level=o),e.$throw(t,s.$$is_lambda)},{$$s:a})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}())}),s(O,"$start_interp_brace",function(){var t=this;return t.interp_braces=i(t.interp_braces,1)}),s(O,"$end_interp_brace_and_try_closing",function(){var t=this;return t.interp_braces=c(t.interp_braces,1),t.interp_braces["$=="](0)}),s(O,"$extend_string",function(s,o,i){var a=this,r=t;return a.buffer_s=n(r=a.buffer_s)?r:o,a.buffer_e=i,a.buffer["$<<"](s)}),s(O,"$flush_string",function(){var s=this;return n(s.monolithic)&&(s.$emit_start_tok(),s.monolithic=!1),n(s.buffer["$empty?"]())?t:(s.$emit("tSTRING_CONTENT",s.buffer,s.buffer_s,s.buffer_e),s.$clear_buffer(),s.$extend_content())}),s(O,"$extend_content",b("space_emitted",!1)),s(O,"$extend_space",function(s,o){var i=this;return i.$flush_string(),n(i.space_emitted)?t:(i.$emit("tSPACE",t,s,o),i.space_emitted=!0)}),s(O,"$supports_line_continuation_via_slash?",function(){var s=this,o=t;return n(o=s["$words?"]()["$!"]())?s.interpolate:o}),O.$protected(),s(O,"$delimiter?",function(s){var i=this,a=t;return n(i["$heredoc?"]())?n(a=s["$end_with?"](i.end_delim))?l(s.$sub(j([C("Regexp").$escape(i.end_delim),o("\\z","ASCII-8BIT")]),o("","ASCII-8BIT")).$bytes(),"all?",[],function(s){var o=t;return s==null&&(s=t),n(o=s["$=="](C("SPACE")))?o:s["$=="](C("TAB"))}):a:n(i.indent)?i.end_delim["$=="](s.$lstrip()):i.end_delim["$=="](s)}),s(O,"$coerce_encoding",function(t){return t.$b()}),s(O,"$clear_buffer",function(){var n=this;return n.buffer=o("","ASCII-8BIT").$dup(),n.buffer.$force_encoding(n.lexer.$source_buffer().$source().$encoding()),n.buffer_s=t,n.buffer_e=t}),s(O,"$emit_start_tok",function(){var s=this,o=t,a=t,o=n(a=s.heredoc_e)?a:i(s.str_s,s.str_type.$length());return s.$emit(s.start_tok,s.str_type,s.str_s,o)}),s(O,"$emit",function(t,n,s,o){var i=this;return i.lexer.$send("emit",t,n,s,o)})}(C("Lexer"),null,O)}(d[0],d)},Opal.modules["parser/lexer/stack_state"]=function(e){var o=e.module,i=e.klass,t=e.def,a=e.assign_ivar_val,r=e.truthy,c=e.alias,s=[],n=e.nil;return e.add_stubs("freeze,clear,|,<<,&,>>,==,[],to_s"),function(s,l){var d=o(s,"Parser"),u=[d].concat(l),h=e.$r(u);return function(e,s){var o=i(e,s,"StackState"),l=o.$$prototype;return l.stack=l.name=n,t(o,"$initialize",function(t){var n=this;return n.name=t.$freeze(),n.$clear()}),t(o,"$clear",a("stack",0)),t(o,"$push",function(t){var s=this,o=n,o=r(t)?1:0;return s.stack=s.stack["$<<"](1)["$|"](o),t}),t(o,"$pop",function(){var t=this,s=n,s=t.stack["$&"](1);return t.stack=t.stack["$>>"](1),s["$=="](1)}),t(o,"$lexpop",function(){var t=this;return t.stack=t.stack["$>>"](1)["$|"](t.stack["$&"](1)),t.stack["$[]"](0)["$=="](1)}),t(o,"$active?",function(){var t=this;return t.stack["$[]"](0)["$=="](1)}),t(o,"$empty?",function(){var t=this;return t.stack["$=="](0)}),t(o,"$to_s",function(){var t=this;return"["+t.stack.$to_s(2)+" <= "+t.name+"]"}),c(o,"inspect","to_s")}(h("Lexer"),null)}(s[0],s)},Opal.modules["parser/lexer/dedenter"]=function(e){var u=e.module,y=e.klass,h=e.const_set,o=e.def,d=e.eqeq,n=e.send,i=e.truthy,j=e.to_ary,m=e.slice,l=e.rb_le,a=e.eqeqeq,s=e.rb_plus,r=e.rb_minus,f=e.rb_gt,p=e.rb_times,g=e.rb_divide,v=e.thrower,b=e.assign_ivar_val,c=[],t=e.nil,_=e.$$$;return e.add_stubs("encoding,split,force_encoding,==,length,map!,each,each_char,<=,===,+,-,>,*,/,slice!,replace,join,end_with?"),function(c,w){var x=u(c,"Parser"),O=[x].concat(w),C=e.$r(O);return function(c,u,w){var O=y(c,u,"Dedenter"),C=[O].concat(w),x=e.$r(C),E=O.$$prototype;return E.at_line_begin=t,h(C[0],"TAB_WIDTH",8),o(O,"$initialize",function(t){var n=this;return n.dedent_level=t,n.at_line_begin=!0,n.indent_level=0}),o(O,"$dedent",function(o){var u,h,b=this,y=t,c=t,w=t,O=t,y=o.$encoding(),c=o.$force_encoding(_(x("Encoding"),"BINARY")).$split(`\\
`);return d(c.$length(),1)?c=[o.$force_encoding(y)]:n(c,"map!",[],function(n){return n==null&&(n=t),n.$force_encoding(y)}),i(b.at_line_begin)?w=c:(h=c,u=j(h),O=u[0]==null?t:u[0],w=m(u,1),h),n(w,"each",[],function e(o){var u=e.$$s==null?this:e.$$s,d=t,c=t;return u.dedent_level==null&&(u.dedent_level=t),o==null&&(o=t),d=u.dedent_level,c=0,function(){try{var e=v("break");return n(o,"each_char",[],function n(o){var u=n.$$s==null?this:n.$$s,h=t;if(u.dedent_level==null&&(u.dedent_level=t),o==null&&(o=t),i(l(d,0))&&e.$throw(t,n.$$is_lambda),a(" ",h=o))return c=s(c,1),d=r(d,1);if(a(" ",h))return i(f(p(x("TAB_WIDTH"),s(g(c,x("TAB_WIDTH")),1)),u.dedent_level))&&e.$throw(t,n.$$is_lambda),c=s(c,1),d=r(d,x("TAB_WIDTH"));e.$throw(t,n.$$is_lambda)},{$$s:u})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}(),o["$slice!"](0,c)},{$$s:b}),o.$replace(c.$join()),b.at_line_begin=o["$end_with?"](`
`)}),o(O,"$interrupt",b("at_line_begin",!1))}(C("Lexer"),null,O)}(c[0],c)},Opal.modules["parser/builders/default"]=function(e){var O=e.module,C=e.klass,n=e.def,x=e.assign_ivar_val,a=e.to_a,s=e.truthy,i=e.eqeq,c=e.not,r=e.send,p=e.neqeq,m=e.to_ary,g=e.rb_ge,u=e.rb_gt,f=e.range,l=e.rb_minus,b=e.slice,d=e.rb_plus,_=e.rb_le,j=e.eqeqeq,y=e.rb_lt,w=e.thrower,h=e.gvars,v=[],t=e.nil,o=e.$$$;return e.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(v,E){var A=O(v,"Parser"),k=[A].concat(E),S=e.$r(k);return function(v,O,E){var k=C(v,O,"Default"),S=[k].concat(E),A=e.$r(S),M=k.$$prototype;return M.parser=M.emit_file_line_as_literals=t,function(e){return e.$attr_accessor("emit_lambda")}(e.get_singleton_class(k),S),k.emit_lambda=!1,function(e){return e.$attr_accessor("emit_procarg0")}(e.get_singleton_class(k),S),k.emit_procarg0=!1,function(e){return e.$attr_accessor("emit_encoding")}(e.get_singleton_class(k),S),k.emit_encoding=!1,function(e){return e.$attr_accessor("emit_index")}(e.get_singleton_class(k),S),k.emit_index=!1,function(e){return e.$attr_accessor("emit_arg_inside_procarg0")}(e.get_singleton_class(k),S),k.emit_arg_inside_procarg0=!1,function(e){return e.$attr_accessor("emit_forward_arg")}(e.get_singleton_class(k),S),k.emit_forward_arg=!1,function(e){return e.$attr_accessor("emit_kwargs")}(e.get_singleton_class(k),S),k.emit_kwargs=!1,function(e){return e.$attr_accessor("emit_match_pattern")}(e.get_singleton_class(k),S),k.emit_match_pattern=!1,function(e){return n(e,"$modernize",function(){var t=this;return t.emit_lambda=!0,t.emit_procarg0=!0,t.emit_encoding=!0,t.emit_index=!0,t.emit_arg_inside_procarg0=!0,t.emit_forward_arg=!0,t.emit_kwargs=!0,t.emit_match_pattern=!0})}(e.get_singleton_class(k),S),k.$attr_accessor("parser"),k.$attr_accessor("emit_file_line_as_literals"),n(k,"$initialize",x("emit_file_line_as_literals",!0)),n(k,"$nil",function(t){var n=this;return n.$n0("nil",n.$token_map(t))}),n(k,"$true",function(t){var n=this;return n.$n0("true",n.$token_map(t))}),n(k,"$false",function(t){var n=this;return n.$n0("false",n.$token_map(t))}),n(k,"$integer",function(t){var n=this;return n.$numeric("int",t)}),n(k,"$float",function(t){var n=this;return n.$numeric("float",t)}),n(k,"$rational",function(t){var n=this;return n.$numeric("rational",t)}),n(k,"$complex",function(t){var n=this;return n.$numeric("complex",t)}),n(k,"$numeric",function(n,s){var i=this;return i.$n(n,[i.$value(s)],o(o(A("Source"),"Map"),"Operator").$new(t,i.$loc(s)))}),k.$private("numeric"),n(k,"$unary_num",function(n,s){var l=this,i=t,c=t,r=[].concat(a(s));switch(i=r[0]==null?t:r[0],r,c=l.$loc(n),l.$value(n).valueOf()){case"+":i=i["$+@"]();break;case"-":i=i["$-@"]();break;default:t}return s.$updated(t,[i],new Map([["location",o(o(A("Source"),"Map"),"Operator").$new(c,c.$join(s.$loc().$expression()))]]))}),n(k,"$__LINE__",function(t){var n=this;return n.$n0("__LINE__",n.$token_map(t))}),n(k,"$string",function(t){var n=this;return n.$n("str",[n.$string_value(t)],n.$delimited_string_map(t))}),n(k,"$string_internal",function(t){var n=this;return n.$n("str",[n.$string_value(t)],n.$unquoted_map(t))}),n(k,"$string_compose",function(t,n,o){var i=this;return s(i["$collapse_string_parts?"](n))?s(t["$nil?"]())&&s(o["$nil?"]())?n.$first():i.$n("str",n.$first().$children(),i.$string_map(t,n,o)):i.$n("dstr",[].concat(a(n)),i.$string_map(t,n,o))}),n(k,"$character",function(t){var n=this;return n.$n("str",[n.$string_value(t)],n.$prefix_string_map(t))}),n(k,"$__FILE__",function(t){var n=this;return n.$n0("__FILE__",n.$token_map(t))}),n(k,"$symbol",function(t){var n=this;return n.$n("sym",[n.$string_value(t).$to_sym()],n.$prefix_string_map(t))}),n(k,"$symbol_internal",function(t){var n=this;return n.$n("sym",[n.$string_value(t).$to_sym()],n.$unquoted_map(t))}),n(k,"$symbol_compose",function(n,o,r){var c=this,l=t;return s(c["$collapse_string_parts?"](o))?(l=o.$first(),c.$n("sym",[l.$children().$first().$to_sym()],c.$collection_map(n,l.$loc().$expression(),r))):i(c.parser.$version(),18)&&s(o["$empty?"]())?c.$diagnostic("error","empty_symbol",t,c.$loc(n).$join(c.$loc(r))):c.$n("dsym",[].concat(a(o)),c.$collection_map(n,o,r))}),n(k,"$xstring_compose",function(t,n,s){var o=this;return o.$n("xstr",[].concat(a(n)),o.$string_map(t,n,s))}),n(k,"$dedent_string",function(n,a){var d=t,l=t,u=t;if(c(a["$nil?"]()))switch(d=o(A("Lexer"),"Dedenter").$new(a),n.$type().valueOf()){case"str":l=n.$children().$first(),d.$dedent(l);break;case"dstr":case"xstr":u=r(n.$children(),"map",[],function(n){if(n==null&&(n=t),i(n.$type(),"str")){if(l=n.$children().$first(),d.$dedent(l),s(l["$empty?"]()))return t}else d.$interrupt();return n}),n=n.$updated(t,u.$compact());break;default:t}return n}),n(k,"$regexp_options",function(n){var s=this,o=t,o=r(s.$value(n).$each_char().$sort().$uniq(),"map",[],"to_sym".$to_proc());return s.$n("regopt",o,s.$token_map(n))}),n(k,"$regexp_compose",function(s,i,a,r){var c=this,l=t;try{c.$static_regexp(i,r)}catch(t){if(e.rescue(t,[A("RegexpError"),o(A("Encoding"),"UndefinedConversionError")])){l=t;try{c.$diagnostic("error","invalid_regexp",new Map([["message",l.$message()]]),c.$loc(s).$join(c.$loc(a)))}finally{e.pop_exception(t)}}else throw t}return c.$n("regexp",i["$<<"](r),c.$regexp_map(s,a,r))}),n(k,"$array",function(t,n,s){var o=this;return o.$n("array",n,o.$collection_map(t,n,s))}),n(k,"$splat",function(n,o){var i=this;return o==null&&(o=t),s(o["$nil?"]())?i.$n0("splat",i.$unary_op_map(n)):i.$n("splat",[o],i.$unary_op_map(n,o))},-2),n(k,"$word",function(n){var o=this;return s(o["$collapse_string_parts?"](n))?n.$first():o.$n("dstr",[].concat(a(n)),o.$collection_map(t,n,t))}),n(k,"$words_compose",function(t,n,s){var o=this;return o.$n("array",[].concat(a(n)),o.$collection_map(t,n,s))}),n(k,"$symbols_compose",function(n,s,o){var i=this;return s=r(s,"map",[],function(n){var s,o=t;switch(n==null&&(n=t),n.$type().valueOf()){case"str":return s=[].concat(a(n)),o=s[0]==null?t:s[0],s,n.$updated("sym",[o.$to_sym()]);case"dstr":return n.$updated("dsym");default:return n}}),i.$n("array",[].concat(a(s)),i.$collection_map(n,s,o))}),n(k,"$pair",function(t,n,s){var o=this;return o.$n("pair",[t,s],o.$binary_op_map(t,n,s))}),n(k,"$pair_list_18",function(n){var s=this;return p(n.$size()["$%"](2),0)?s.$diagnostic("error","odd_hash",t,n.$last().$loc().$expression()):r(n.$each_slice(2),"map",[],function e(n,s){var o=e.$$s==null?this:e.$$s;return n==null&&(n=t),s==null&&(s=t),o.$n("pair",[n,s],o.$binary_op_map(n,t,s))},{$$s:s})}),n(k,"$pair_keyword",function(n,s){var i=this,r=t,c=t,l=t,a=i.$pair_keyword_map(n,s),o=m(a);return r=o[0]==null?t:o[0],c=o[1]==null?t:o[1],a,l=i.$n("sym",[i.$value(n).$to_sym()],r),i.$n("pair",[l,s],c)}),n(k,"$pair_quoted",function(n,s,o,i){var r=this,l=t,d=t,c=r.$pair_quoted_map(n,o,i),a=m(c);return o=a[0]==null?t:a[0],l=a[1]==null?t:a[1],c,d=r.$symbol_compose(n,s,o),r.$n("pair",[d,i],l)}),n(k,"$pair_label",function(n){var i=this,c=t,a=t,r=t,l=t,c=i.$loc(n),a=c.$adjust(new Map([["end_pos",-1]])),r=i.$value(n),l=s(r["$=~"](/^[[:upper:]]/))?i.$n("const",[t,r.$to_sym()],o(o(A("Source"),"Map"),"Constant").$new(t,a,a)):i.$n("ident",[r.$to_sym()],o(o(A("Source"),"Map"),"Variable").$new(a));return i.$pair_keyword(n,i.$accessible(l))}),n(k,"$kwsplat",function(t,n){var s=this;return s.$n("kwsplat",[n],s.$unary_op_map(t,n))}),n(k,"$associate",function(n,o,i){var c=this,l=t,l=A("Set").$new();return r(o,"each",[],function e(n){var o,i=e.$$s==null?this:e.$$s,r=t;if(i.parser==null&&(i.parser=t),n==null&&(n=t),!s(n.$type()["$eql?"]("pair")))return t;switch(o=[].concat(a(n)),r=o[0]==null?t:o[0],o,r.$type().valueOf()){case"sym":case"str":case"int":case"float":break;case"rational":case"complex":case"regexp":if(!s(g(i.parser.$version(),31)))return t;break;default:return t}return s(l["$add?"](r))?t:i.$diagnostic("warning","duplicate_hash_key",t,r.$loc().$expression())},{$$s:c}),c.$n("hash",[].concat(a(o)),c.$collection_map(n,o,i))}),n(k,"$range_inclusive",function(t,n,s){var o=this;return o.$n("irange",[t,s],o.$range_map(t,n,s))}),n(k,"$range_exclusive",function(t,n,s){var o=this;return o.$n("erange",[t,s],o.$range_map(t,n,s))}),n(k,"$self",function(t){var n=this;return n.$n0("self",n.$token_map(t))}),n(k,"$ident",function(t){var n=this;return n.$n("ident",[n.$value(t).$to_sym()],n.$variable_map(t))}),n(k,"$ivar",function(t){var n=this;return n.$n("ivar",[n.$value(t).$to_sym()],n.$variable_map(t))}),n(k,"$gvar",function(n){var o=this,i=t,i=o.$value(n);return s(i["$start_with?"]("$0"))&&s(u(i.$length(),2))&&o.$diagnostic("error","gvar_name",new Map([["name",i]]),o.$loc(n)),o.$n("gvar",[i.$to_sym()],o.$variable_map(n))}),n(k,"$cvar",function(t){var n=this;return n.$n("cvar",[n.$value(t).$to_sym()],n.$variable_map(t))}),n(k,"$back_ref",function(t){var n=this;return n.$n("back_ref",[n.$value(t).$to_sym()],n.$token_map(t))}),n(k,"$nth_ref",function(t){var n=this;return n.$n("nth_ref",[n.$value(t)],n.$token_map(t))}),n(k,"$accessible",function(n){var d,o=this,l=t;switch(n.$type().valueOf()){case"__FILE__":return s(o.emit_file_line_as_literals)?o.$n("str",[n.$loc().$expression().$source_buffer().$name()],n.$loc().$dup()):n;break;case"__LINE__":return s(o.emit_file_line_as_literals)?o.$n("int",[n.$loc().$expression().$line()],n.$loc().$dup()):n;break;case"__ENCODING__":return c(o.$class().$emit_encoding())?o.$n("const",[o.$n("const",[t,"Encoding"],t),"UTF_8"],n.$loc().$dup()):n;break;case"ident":return d=[].concat(a(n)),l=d[0]==null?t:d[0],d,s(r(["?","!"],"any?",[],function(n){return n==null&&(n=t),l.$to_s()["$end_with?"](n)}))&&o.$diagnostic("error","invalid_id_to_get",new Map([["identifier",l.$to_s()]]),n.$loc().$expression()),s(g(o.parser.$version(),27))&&s(o.parser.$try_declare_numparam(n))?n.$updated("lvar"):s(o.parser.$static_env()["$declared?"](l))?(i(l.$to_s(),o.$parser().$current_arg_stack().$top())&&o.$diagnostic("error","circular_argument_reference",new Map([["var_name",l.$to_s()]]),n.$loc().$expression()),n.$updated("lvar")):(i(o.parser.$version(),33)&&i(l,"it")&&s(o.parser.$context().$in_block())&&c(o.parser.$max_numparam_stack()["$has_ordinary_params?"]())&&o.$diagnostic("warning","ambiguous_it_call",t,n.$loc().$expression()),o.$n("send",[t,l],o.$var_send_map(n)));default:return n}}),n(k,"$const",function(n){var s=this;return s.$n("const",[t,s.$value(n).$to_sym()],s.$constant_map(t,t,n))}),n(k,"$const_global",function(n,s){var o=this,i=t,i=o.$n0("cbase",o.$token_map(n));return o.$n("const",[i,o.$value(s).$to_sym()],o.$constant_map(i,n,s))}),n(k,"$const_fetch",function(t,n,s){var o=this;return o.$n("const",[t,o.$value(s).$to_sym()],o.$constant_map(t,n,s))}),n(k,"$__ENCODING__",function(t){var n=this;return n.$n0("__ENCODING__",n.$token_map(t))}),n(k,"$assignable",function(n){var i,o=this,l=t,r=t,c=t;switch(n.$type().valueOf()){case"cvar":return n.$updated("cvasgn");case"ivar":return n.$updated("ivasgn");case"gvar":return n.$updated("gvasgn");case"const":return s(o.parser.$context().$in_def())&&o.$diagnostic("error","dynamic_const",t,n.$loc().$expression()),n.$updated("casgn");case"ident":return i=[].concat(a(n)),l=i[0]==null?t:i[0],i,r=n.$children()["$[]"](0).$to_s(),c=n.$loc().$expression(),o.$check_assignment_to_numparam(r,c),o.$check_reserved_for_numparam(r,c),o.parser.$static_env().$declare(l),n.$updated("lvasgn");case"match_var":return i=[].concat(a(n)),l=i[0]==null?t:i[0],i,r=n.$children()["$[]"](0).$to_s(),c=n.$loc().$expression(),o.$check_assignment_to_numparam(r,c),o.$check_reserved_for_numparam(r,c),n;case"nil":case"self":case"true":case"false":case"__FILE__":case"__LINE__":case"__ENCODING__":return o.$diagnostic("error","invalid_assignment",t,n.$loc().$expression());case"back_ref":case"nth_ref":return o.$diagnostic("error","backref_assignment",t,n.$loc().$expression());default:return t}}),n(k,"$const_op_assignable",function(t){return t.$updated("casgn")}),n(k,"$assign",function(n,s,o){var i=this;return n["$<<"](o).$updated(t,t,new Map([["location",n.$loc().$with_operator(i.$loc(s)).$with_expression(i.$join_exprs(n,o))]]))}),n(k,"$op_assign",function(n,s,o){var a=this,c=t,r=t;switch(n.$type().valueOf()){case"gvasgn":case"ivasgn":case"lvasgn":case"cvasgn":case"casgn":case"send":case"csend":case"index":switch(c=a.$value(s)["$[]"](f(0,-1,!1)).$to_sym(),r=n.$loc().$with_operator(a.$loc(s)).$with_expression(a.$join_exprs(n,o)),i(n.$type(),"index")&&(n=n.$updated("indexasgn")),c.valueOf()){case"&&":return a.$n("and_asgn",[n,o],r);case"||":return a.$n("or_asgn",[n,o],r);default:return a.$n("op_asgn",[n,c,o],r)}break;case"back_ref":case"nth_ref":return a.$diagnostic("error","backref_assignment",t,n.$loc().$expression());default:return t}}),n(k,"$multi_lhs",function(t,n,s){var o=this;return o.$n("mlhs",[].concat(a(n)),o.$collection_map(t,n,s))}),n(k,"$multi_assign",function(t,n,s){var o=this;return o.$n("masgn",[t,s],o.$binary_op_map(t,n,s))}),n(k,"$def_class",function(t,n,s,o,i,a){var r=this;return r.$n("class",[n,o,i],r.$module_definition_map(t,n,s,a))}),n(k,"$def_sclass",function(n,s,o,i,a){var r=this;return r.$n("sclass",[o,i],r.$module_definition_map(n,t,s,a))}),n(k,"$def_module",function(n,s,o,i){var a=this;return a.$n("module",[s,o],a.$module_definition_map(n,s,t,i))}),n(k,"$def_method",function(n,s,o,i,a){var r=this;return r.$check_reserved_for_numparam(r.$value(s),r.$loc(s)),r.$n("def",[r.$value(s).$to_sym(),o,i],r.$definition_map(n,t,s,a))}),n(k,"$def_endless_method",function(n,s,o,i,a){var r=this;return r.$check_reserved_for_numparam(r.$value(s),r.$loc(s)),r.$n("def",[r.$value(s).$to_sym(),o,a],r.$endless_definition_map(n,t,s,i,a))}),n(k,"$def_singleton",function(t,n,s,o,i,a,r){var c=this;return c.$validate_definee(n),c.$check_reserved_for_numparam(c.$value(o),c.$loc(o)),c.$n("defs",[n,c.$value(o).$to_sym(),i,a],c.$definition_map(t,s,o,r))}),n(k,"$def_endless_singleton",function(t,n,s,o,i,a,r){var c=this;return c.$validate_definee(n),c.$check_reserved_for_numparam(c.$value(o),c.$loc(o)),c.$n("defs",[n,c.$value(o).$to_sym(),i,r],c.$endless_definition_map(t,s,o,a,r))}),n(k,"$undef_method",function(n,s){var o=this;return o.$n("undef",[].concat(a(s)),o.$keyword_map(n,t,s,t))}),n(k,"$alias",function(n,s,o){var i=this;return i.$n("alias",[s,o],i.$keyword_map(n,t,[s,o],t))}),n(k,"$args",function(n,o,a,r){var l=this,d=t;return r==null&&(r=!0),s(r)&&(o=l.$check_duplicate_args(o)),l.$validate_no_forward_arg_after_restarg(o),d=l.$collection_map(n,o,a),c(l.$class().$emit_forward_arg())&&i(o.$length(),1)&&i(o["$[]"](0).$type(),"forward_arg")?l.$n("forward_args",[],d):l.$n("args",o,d)},-4),n(k,"$numargs",function(n){var s=this;return s.$n("numargs",[n],t)}),n(k,"$forward_only_args",function(n,o,i){var a=this,r=t;return s(a.$class().$emit_forward_arg())?(r=a.$forward_arg(o),a.$n("args",[r],a.$collection_map(n,[r],i))):a.$n("forward_args",[],a.$collection_map(n,a.$token_map(o),i))}),n(k,"$forward_arg",function(t){var n=this;return n.$n("forward_arg",[],n.$token_map(t))}),n(k,"$arg",function(t){var n=this;return n.$check_reserved_for_numparam(n.$value(t),n.$loc(t)),n.$n("arg",[n.$value(t).$to_sym()],n.$variable_map(t))}),n(k,"$optarg",function(t,n,s){var o=this;return o.$check_reserved_for_numparam(o.$value(t),o.$loc(t)),o.$n("optarg",[o.$value(t).$to_sym(),s],o.$variable_map(t).$with_operator(o.$loc(n)).$with_expression(o.$loc(t).$join(s.$loc().$expression())))}),n(k,"$restarg",function(n,o){var i=this;return o==null&&(o=t),s(o)?(i.$check_reserved_for_numparam(i.$value(o),i.$loc(o)),i.$n("restarg",[i.$value(o).$to_sym()],i.$arg_prefix_map(n,o))):i.$n0("restarg",i.$arg_prefix_map(n))},-2),n(k,"$kwarg",function(t){var n=this;return n.$check_reserved_for_numparam(n.$value(t),n.$loc(t)),n.$n("kwarg",[n.$value(t).$to_sym()],n.$kwarg_map(t))}),n(k,"$kwoptarg",function(t,n){var s=this;return s.$check_reserved_for_numparam(s.$value(t),s.$loc(t)),s.$n("kwoptarg",[s.$value(t).$to_sym(),n],s.$kwarg_map(t,n))}),n(k,"$kwrestarg",function(n,o){var i=this;return o==null&&(o=t),s(o)?(i.$check_reserved_for_numparam(i.$value(o),i.$loc(o)),i.$n("kwrestarg",[i.$value(o).$to_sym()],i.$arg_prefix_map(n,o))):i.$n0("kwrestarg",i.$arg_prefix_map(n))},-2),n(k,"$kwnilarg",function(t,n){var s=this;return s.$n0("kwnilarg",s.$arg_prefix_map(t,n))}),n(k,"$shadowarg",function(t){var n=this;return n.$check_reserved_for_numparam(n.$value(t),n.$loc(t)),n.$n("shadowarg",[n.$value(t).$to_sym()],n.$variable_map(t))}),n(k,"$blockarg",function(n,o){var i=this,a=t;return c(o["$nil?"]())&&i.$check_reserved_for_numparam(i.$value(o),i.$loc(o)),a=s(o)?i.$value(o).$to_sym():t,i.$n("blockarg",[a],i.$arg_prefix_map(n,o))}),n(k,"$procarg0",function(n){var a=this;return s(a.$class().$emit_procarg0())?i(n.$type(),"arg")&&s(a.$class().$emit_arg_inside_procarg0())?a.$n("procarg0",[n],o(o(A("Source"),"Map"),"Collection").$new(t,t,n.$location().$expression())):n.$updated("procarg0"):n}),n(k,"$arg_expr",function(t){var n=this;return i(t.$type(),"lvasgn")?t.$updated("arg"):n.$n("arg_expr",[t],t.$loc().$dup())}),n(k,"$restarg_expr",function(n,o){var a=this;return o==null&&(o=t),s(o["$nil?"]())?a.$n0("restarg",a.$token_map(n)):i(o.$type(),"lvasgn")?o.$updated("restarg"):a.$n("restarg_expr",[o],o.$loc().$dup())},-2),n(k,"$blockarg_expr",function(t,n){var s=this;return i(n.$type(),"lvasgn")?n.$updated("blockarg"):s.$n("blockarg_expr",[n],n.$loc().$dup())}),n(k,"$objc_kwarg",function(n,i,a){var r=this,c=t,d=t,c=r.$loc(n);return s(i["$nil?"]())?(c=c.$resize(l(c.$size(),1)),d=c.$end().$resize(1)):d=r.$loc(i),r.$n("objc_kwarg",[r.$value(n).$to_sym(),r.$value(a).$to_sym()],o(o(A("Source"),"Map"),"ObjcKwarg").$new(c,d,r.$loc(a),c.$join(r.$loc(a))))}),n(k,"$objc_restarg",function(n,o){var a=this;return o==null&&(o=t),s(o["$nil?"]())?a.$n0("restarg",a.$arg_prefix_map(n)):i(o.$type(),"arg")?o.$updated("restarg",t,new Map([["location",o.$loc().$with_operator(a.$loc(n))]])):a.$n("objc_restarg",[o],a.$unary_op_map(n,o))},-2),n(k,"$call_type_for_dot",function(t){var n=this;return c(t["$nil?"]())&&i(n.$value(t),"anddot")?"csend":"send"}),n(k,"$forwarded_args",function(t){var n=this;return n.$n("forwarded_args",[],n.$token_map(t))}),n(k,"$forwarded_restarg",function(t){var n=this;return n.$n("forwarded_restarg",[],n.$token_map(t))}),n(k,"$forwarded_kwrestarg",function(t){var n=this;return n.$n("forwarded_kwrestarg",[],n.$token_map(t))}),n(k,"$call_method",function(n,o,i,r,c,l){var d=this,u=t;return r==null&&(r=t),c==null&&(c=[]),l==null&&(l=t),u=d.$call_type_for_dot(o),s(d.$class().$emit_kwargs())&&d.$rewrite_hash_args_to_kwargs(c),s(i["$nil?"]())?d.$n(u,[n,"call"].concat(a(c)),d.$send_map(n,o,t,r,c,l)):d.$n(u,[n,d.$value(i).$to_sym()].concat(a(c)),d.$send_map(n,o,i,r,c,l))},-4),n(k,"$call_lambda",function(n){var o=this;return s(o.$class().$emit_lambda())?o.$n0("lambda",o.$expr_map(o.$loc(n))):o.$n("send",[t,"lambda"],o.$send_map(t,t,n))}),n(k,"$block",function(n,o,r,c,l){var d,u,h=this,j=t,m=t,y=t,_=t,f=t,g=t,v=t;return i(n.$type(),"yield")&&h.$diagnostic("error","block_given_to_yield",t,n.$loc().$keyword(),[h.$loc(o)]),i(n.$type(),"super")?(d=[].concat(a(n)),u=d.length-1,u=u<0?0:u,j=b(d,0,u),m=d[u]==null?t:d[u],d):(d=[].concat(a(n)),y=d[0]==null?t:d[0],_=d[1]==null?t:d[1],u=d.length-1,u=u<2?2:u,j=b(d,2,u),m=d[u]==null?t:d[u],d),s(m)&&(i(m.$type(),"block_pass")||i(m.$type(),"forwarded_args"))&&(i(h.parser.$version(),33)&&p(n.$type(),"super")||p(h.parser.$version(),33))&&h.$diagnostic("error","block_and_blockarg",t,m.$loc().$expression(),[h.$loc(o)]),i(r.$type(),"numargs")?(f="numblock",r=r.$children()["$[]"](0)):f="block",s(["send","csend","index","super","zsuper","lambda"]["$include?"](n.$type()))?h.$n(f,[n,r,c],h.$block_map(n.$loc().$expression(),o,l)):(d=[].concat(a(n)),g=d[0]==null?t:d[0],d,v=h.$n(f,[g,r,c],h.$block_map(g.$loc().$expression(),o,l)),h.$n(n.$type(),[v],n.$loc().$with_expression(h.$join_exprs(n,v))))}),n(k,"$block_pass",function(t,n){var s=this;return s.$n("block_pass",[n],s.$unary_op_map(t,n))}),n(k,"$objc_varargs",function(n,s){var l=this,r=t,c=t,i=t,o=[].concat(a(n));return r=o[0]==null?t:o[0],c=o[1]==null?t:o[1],o,i=l.$array(t,[c].concat(a(s)),t).$updated("objc_varargs"),n.$updated(t,[r,i],new Map([["location",n.$loc().$with_expression(n.$loc().$expression().$join(i.$loc().$expression()))]]))}),n(k,"$attr_asgn",function(n,s,o){var i=this,a=t,r=t,a=d(i.$value(o),"=").$to_sym(),r=i.$call_type_for_dot(s);return i.$n(r,[n,a],i.$send_map(n,s,o))}),n(k,"$index",function(t,n,o,i){var r=this;return s(r.$class().$emit_kwargs())&&r.$rewrite_hash_args_to_kwargs(o),s(r.$class().$emit_index())?r.$n("index",[t].concat(a(o)),r.$index_map(t,n,i)):r.$n("send",[t,"[]"].concat(a(o)),r.$send_index_map(t,n,i))}),n(k,"$index_asgn",function(t,n,o,i){var r=this;return s(r.$class().$emit_kwargs())&&r.$rewrite_hash_args_to_kwargs(o),s(r.$class().$emit_index())?r.$n("indexasgn",[t].concat(a(o)),r.$index_map(t,n,i)):r.$n("send",[t,"[]="].concat(a(o)),r.$send_index_map(t,n,i))}),n(k,"$binary_op",function(n,o,a){var r=this,c=t,l=t,d=t,c=r.$send_binary_op_map(n,o,a);return i(r.parser.$version(),18)&&(l=r.$value(o),i(l,"!=")?d=r.$n("send",[n,"==",a],c):i(l,"!~")&&(d=r.$n("send",[n,"=~",a],c)),s(["!=","!~"]["$include?"](l)))?r.$n("not",[d],r.$expr_map(c.$expression())):r.$n("send",[n,r.$value(o).$to_sym(),a],c)}),n(k,"$match_op",function(n,o,i){var a=this,c=t,l=t,c=a.$send_binary_op_map(n,o,i);return s(l=a.$static_regexp_node(n))?(r(l.$names(),"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return s.parser==null&&(s.parser=t),n==null&&(n=t),s.parser.$static_env().$declare(n)},{$$s:a}),a.$n("match_with_lvasgn",[n,i],c)):a.$n("send",[n,"=~",i],c)}),n(k,"$unary_op",function(n,s){var o=this,i=t;switch(o.$value(n).valueOf()){case"+":case"-":i=d(o.$value(n),"@");break;default:i=o.$value(n)}return o.$n("send",[s,i.$to_sym()],o.$send_unary_op_map(n,s))}),n(k,"$not_op",function(n,o,a,r){var c=this,l=t;return o==null&&(o=t),a==null&&(a=t),r==null&&(r=t),i(c.parser.$version(),18)?c.$n("not",[c.$check_condition(a)],c.$unary_op_map(n,a)):s(a["$nil?"]())?(l=c.$n0("begin",c.$collection_map(o,t,r)),c.$n("send",[l,"!"],c.$send_unary_op_map(n,l))):c.$n("send",[c.$check_condition(a),"!"],c.$send_map(t,t,n,o,[a],r))},-2),n(k,"$logical_op",function(t,n,s,o){var i=this;return i.$n(t,[n,o],i.$binary_op_map(n,s,o))}),n(k,"$condition",function(t,n,s,o,i,a,r){var c=this;return c.$n("if",[c.$check_condition(n),o,a],c.$condition_map(t,n,s,o,i,a,r))}),n(k,"$condition_mod",function(n,o,i,a){var r=this,c=t;return r.$n("if",[r.$check_condition(a),n,o],r.$keyword_mod_map(s(c=n)?c:o,i,a))}),n(k,"$ternary",function(t,n,s,o,i){var a=this;return a.$n("if",[a.$check_condition(t),s,i],a.$ternary_map(t,n,s,o,i))}),n(k,"$when",function(n,s,o,i){var r=this,a=t,a=s["$<<"](i);return r.$n("when",a,r.$keyword_map(n,o,a,t))}),n(k,"$case",function(n,s,o,i,r,c){var l=this;return l.$n("case",[s].concat(a(o["$<<"](r))),l.$condition_map(n,s,t,t,i,r,c))}),n(k,"$loop",function(n,s,o,i,a,r){var c=this;return c.$n(n,[c.$check_condition(o),a],c.$keyword_map(s,i,t,r))}),n(k,"$loop_mod",function(t,n,s,o){var a=this;return i(n.$type(),"kwbegin")&&(t=""+t+"_post"),a.$n(t,[a.$check_condition(o),n],a.$keyword_mod_map(n,s,o))}),n(k,"$for",function(t,n,s,o,i,a,r){var c=this;return c.$n("for",[n,o,a],c.$for_map(t,s,i,r))}),n(k,"$keyword_cmd",function(n,o,a,r,c){var l=this,d=t;return a==null&&(a=t),r==null&&(r=[]),c==null&&(c=t),i(n,"yield")&&s(u(r.$count(),0))&&(d=r.$last(),i(d.$type(),"block_pass")&&l.$diagnostic("error","block_given_to_yield",t,l.$loc(o),[d.$loc().$expression()])),s(["yield","super"]["$include?"](n))&&s(l.$class().$emit_kwargs())&&l.$rewrite_hash_args_to_kwargs(r),l.$n(n,r,l.$keyword_map(o,a,r,c))},-3),n(k,"$preexe",function(t,n,s,o){var i=this;return i.$n("preexe",[s],i.$keyword_map(t,n,[],o))}),n(k,"$postexe",function(t,n,s,o){var i=this;return i.$n("postexe",[s],i.$keyword_map(t,n,[],o))}),n(k,"$rescue_body",function(t,n,s,o,i,a){var r=this;return r.$n("resbody",[n,o,a],r.$rescue_body_map(t,n,s,o,i,a))}),n(k,"$begin_body",function(n,o,r,l,u,h){var m=this,f=t;return o==null&&(o=[]),r==null&&(r=t),l==null&&(l=t),u==null&&(u=t),h==null&&(h=t),s(o["$any?"]())?s(r)?n=m.$n("rescue",[n].concat(a(d(o,[l]))),m.$eh_keyword_map(n,t,o,r,l)):n=m.$n("rescue",[n].concat(a(d(o,[t]))),m.$eh_keyword_map(n,t,o,t,t)):s(r)&&(f=[],c(n["$nil?"]())&&(i(n.$type(),"begin")?f=d(f,n.$children()):f.$push(n)),f.$push(m.$n("begin",[l],m.$collection_map(r,[l],t))),n=m.$n("begin",f,m.$collection_map(t,f,t))),s(u)&&(n=m.$n("ensure",[n,h],m.$eh_keyword_map(n,u,[h],t,t))),n},-2),n(k,"$compstmt",function(n){var o=this;return s(n["$none?"]())?t:s(n["$one?"]())?n.$first():o.$n("begin",n,o.$collection_map(t,n,t))}),n(k,"$begin",function(n,o,a){var r=this;return s(o["$nil?"]())?r.$n0("begin",r.$collection_map(n,t,a)):i(o.$type(),"mlhs")||i(o.$type(),"begin")&&s(o.$loc().$begin()["$nil?"]())&&s(o.$loc().$end()["$nil?"]())?r.$n(o.$type(),o.$children(),r.$collection_map(n,o.$children(),a)):r.$n("begin",[o],r.$collection_map(n,[o],a))}),n(k,"$begin_keyword",function(n,o,a){var r=this;return s(o["$nil?"]())?r.$n0("kwbegin",r.$collection_map(n,t,a)):i(o.$type(),"begin")&&s(o.$loc().$begin()["$nil?"]())&&s(o.$loc().$end()["$nil?"]())?r.$n("kwbegin",o.$children(),r.$collection_map(n,o.$children(),a)):r.$n("kwbegin",[o],r.$collection_map(n,[o],a))}),n(k,"$case_match",function(n,o,i,r,l,d){var u=this;return s(r)&&c(l)&&(l=u.$n("empty_else",t,u.$token_map(r))),u.$n("case_match",[o].concat(a(i["$<<"](l))),u.$condition_map(n,o,t,t,r,l,d))}),n(k,"$in_match",function(t,n,s){var o=this;return o.$n("in_match",[t,s],o.$binary_op_map(t,n,s))}),n(k,"$match_pattern",function(t,n,s){var o=this;return o.$n("match_pattern",[t,s],o.$binary_op_map(t,n,s))}),n(k,"$match_pattern_p",function(t,n,s){var o=this;return o.$n("match_pattern_p",[t,s],o.$binary_op_map(t,n,s))}),n(k,"$in_pattern",function(n,s,o,i,a){var c=this,r=t,r=[s,o,a];return c.$n("in_pattern",r,c.$keyword_map(n,i,r.$compact(),t))}),n(k,"$if_guard",function(t,n){var s=this;return s.$n("if_guard",[n],s.$guard_map(t,n))}),n(k,"$unless_guard",function(t,n){var s=this;return s.$n("unless_guard",[n],s.$guard_map(t,n))}),n(k,"$match_var",function(n){var s=this,o=t,i=t,o=s.$value(n).$to_sym(),i=s.$loc(n);return s.$check_lvar_name(o,i),s.$check_duplicate_pattern_variable(o,i),s.parser.$static_env().$declare(o),s.$n("match_var",[o],s.$variable_map(n))}),n(k,"$match_hash_var",function(n){var s=this,i=t,r=t,a=t,i=s.$value(n).$to_sym(),r=s.$loc(n),a=r.$adjust(new Map([["end_pos",-1]]));return s.$check_lvar_name(i,a),s.$check_duplicate_pattern_variable(i,a),s.parser.$static_env().$declare(i),s.$n("match_var",[i],o(o(A("Source"),"Map"),"Variable").$new(a,r))}),n(k,"$match_hash_var_from_str",function(n,i,r){var m,c=this,l=t,h=t,d=t,f=t,p=t,g=t;switch(s(u(i.$length(),1))&&c.$diagnostic("error","pm_interp_in_var_name",t,c.$loc(n).$join(c.$loc(r))),l=i["$[]"](0),l.$type().valueOf()){case"str":return m=[].concat(a(l)),h=m[0]==null?t:m[0],m,d=l.$loc().$expression(),c.$check_lvar_name(h,d),c.$check_duplicate_pattern_variable(h,d),c.parser.$static_env().$declare(h),s(f=l.$loc().$begin())&&(d=d.$adjust(new Map([["begin_pos",f.$length()]]))),s(p=l.$loc().$end())&&(d=d.$adjust(new Map([["end_pos",p.$length()["$-@"]()]]))),g=c.$loc(n).$join(l.$loc().$expression()).$join(c.$loc(r)),c.$n("match_var",[h.$to_sym()],o(o(A("Source"),"Map"),"Variable").$new(d,g));case"begin":return c.$match_hash_var_from_str(n,l.$children(),r);default:return c.$diagnostic("error","pm_interp_in_var_name",t,c.$loc(n).$join(c.$loc(r)))}}),n(k,"$match_rest",function(n,o){var i=this,a=t;return o==null&&(o=t),s(o["$nil?"]())?i.$n0("match_rest",i.$unary_op_map(n)):(a=i.$match_var(o),i.$n("match_rest",[a],i.$unary_op_map(n,a)))},-2),n(k,"$hash_pattern",function(n,s,o){var i=this,a=t,a=i.$check_duplicate_args(s);return i.$n("hash_pattern",a,i.$collection_map(n,a,o))}),n(k,"$array_pattern",function(n,o,a){var c=this,l=t,d=t,u=t;return s(o["$nil?"]())?c.$n("array_pattern",t,c.$collection_map(n,[],a)):(l=!1,d=r(o,"map",[],function(n){return n==null&&(n=t),i(n.$type(),"match_with_trailing_comma")?(l=!0,n.$children().$first()):(l=!1,n)}),u=s(l)?"array_pattern_with_tail":"array_pattern",c.$n(u,d,c.$collection_map(n,o,a)))}),n(k,"$find_pattern",function(t,n,s){var o=this;return o.$n("find_pattern",n,o.$collection_map(t,n,s))}),n(k,"$match_with_trailing_comma",function(t,n){var s=this;return s.$n("match_with_trailing_comma",[t],s.$expr_map(t.$loc().$expression().$join(s.$loc(n))))}),n(k,"$const_pattern",function(t,n,s,i){var a=this;return a.$n("const_pattern",[t,s],o(o(A("Source"),"Map"),"Collection").$new(a.$loc(n),a.$loc(i),t.$loc().$expression().$join(a.$loc(i))))}),n(k,"$pin",function(t,n){var s=this;return s.$n("pin",[n],s.$send_unary_op_map(t,n))}),n(k,"$match_alt",function(n,s,o){var i=this,a=t,a=i.$binary_op_map(n,s,o);return i.$n("match_alt",[n,o],a)}),n(k,"$match_as",function(n,s,o){var i=this,a=t,a=i.$binary_op_map(n,s,o);return i.$n("match_as",[n,o],a)}),n(k,"$match_nil_pattern",function(t,n){var s=this;return s.$n0("match_nil_pattern",s.$arg_prefix_map(t,n))}),n(k,"$match_pair",function(n,o,a){var c,l,r=this,d=t,u=t,h=t,f=t,p=t;return i(n,"label")?(r.$check_duplicate_pattern_key(o["$[]"](0),o["$[]"](1)),r.$pair_keyword(o,a)):(l=o,c=m(l),d=c[0]==null?t:c[0],u=c[1]==null?t:c[1],h=c[2]==null?t:c[2],l,f=r.$loc(d).$join(r.$loc(h)),s(p=r.$static_string(u))?r.$check_duplicate_pattern_key(p,f):r.$diagnostic("error","pm_interp_in_var_name",t,f),r.$pair_quoted(d,u,h,a))}),n(k,"$match_label",function(n,s){var o,a,r=this,c=t,l=t,d=t;return i(n,"label")?r.$match_hash_var(s):(a=s,o=m(a),c=o[0]==null?t:o[0],l=o[1]==null?t:o[1],d=o[2]==null?t:o[2],a,r.$match_hash_var_from_str(c,l,d))}),k.$private(),n(k,"$check_condition",function(n){var o,r=this,c=t,l=t,d=t,u=t,h=t,m=t;switch(n.$type().valueOf()){case"masgn":return s(_(r.parser.$version(),23))?r.$diagnostic("error","masgn_as_condition",t,n.$loc().$expression()):n;break;case"begin":return i(n.$children().$count(),1)?n.$updated(t,[r.$check_condition(n.$children().$last())]):n;break;case"and":case"or":return o=[].concat(a(n)),c=o[0]==null?t:o[0],l=o[1]==null?t:o[1],o,i(r.parser.$version(),18)?n:n.$updated(n.$type(),[r.$check_condition(c),r.$check_condition(l)]);break;case"irange":case"erange":return o=[].concat(a(n)),c=o[0]==null?t:o[0],l=o[1]==null?t:o[1],o,d=j("irange",u=n.$type())?"iflipflop":j("erange",u)?"eflipflop":t,s(c["$nil?"]())||(h=r.$check_condition(c)),s(l["$nil?"]())||(m=r.$check_condition(l)),n.$updated(d,[h,m]);case"regexp":return r.$n("match_current_line",[n],r.$expr_map(n.$loc().$expression()));default:return n}}),n(k,"$check_duplicate_args",function(n,o){var i=this;return o==null&&(o=new Map),r(n,"each",[],function e(n){var i=e.$$s==null?this:e.$$s;switch(n==null&&(n=t),n.$type().valueOf()){case"arg":case"optarg":case"restarg":case"blockarg":case"kwarg":case"kwoptarg":case"kwrestarg":case"shadowarg":return i.$check_duplicate_arg(n,o);case"procarg0":return s(n.$children()["$[]"](0)["$is_a?"](A("Symbol")))?i.$check_duplicate_arg(n,o):i.$check_duplicate_args(n.$children(),o);break;case"mlhs":return i.$check_duplicate_args(n.$children(),o);default:return t}},{$$s:i})},-2),n(k,"$check_duplicate_arg",function(n,o){var i,d=this,c=t,l=t,u=t;return o==null&&(o=new Map),i=[].concat(a(n)),c=i[0]==null?t:i[0],i,l=o["$[]"](c),i=[].concat(a(l)),u=i[0]==null?t:i[0],i,s(l["$nil?"]())?(i=[c,n],r(o,"[]=",i),i[i.length-1]):s(d["$arg_name_collides?"](c,u))?d.$diagnostic("error","duplicate_argument",t,n.$loc().$name(),[l.$loc().$name()]):t},-2),n(k,"$validate_no_forward_arg_after_restarg",function(n){var i=this,s=t,o=t,s=t,o=t;return r(n,"each",[],function(n){switch(n==null&&(n=t),n.$type().valueOf()){case"restarg":return s=n;case"forward_arg":return o=n;default:return t}}),c(o["$nil?"]())&&c(s["$nil?"]())?i.$diagnostic("error","forward_arg_after_restarg",t,o.$loc().$expression(),[s.$loc().$expression()]):t}),n(k,"$check_assignment_to_numparam",function(n,o){var i=this,a=t,r=t,c=t;return s(y(i.parser.$version(),27))?t:(a=s(r=s(c=i.parser.$context()["$in_dynamic_block?"]())?n["$=~"](/^_([1-9])$/):c)?i.parser.$max_numparam_stack()["$has_numparams?"]():r,s(a)?i.$diagnostic("error","cant_assign_to_numparam",new Map([["name",n]]),o):t)}),n(k,"$check_reserved_for_numparam",function(n,o){var i=this;return s(y(i.parser.$version(),30))?t:s(n["$=~"](/^_([1-9])$/))?i.$diagnostic("error","reserved_for_numparam",new Map([["name",n]]),o):t}),n(k,"$arg_name_collides?",function(n,o){var r=this,i=t,a=t;switch(r.parser.$version().valueOf()){case 18:return n["$=="](o);case 19:return s(i=n["$!="]("_"))?n["$=="](o):i;break;default:return s(i=s(a=n)?n["$[]"](0)["$!="]("_"):a)?n["$=="](o):i}}),n(k,"$check_lvar_name",function(n,o){var i=this;return s(n["$=~"](/^[[[:lower:]]_][[[:alnum:]]_]*$/))?t:i.$diagnostic("error","lvar_name",new Map([["name",n]]),o)}),n(k,"$check_duplicate_pattern_variable",function(n,o){var i=this;return s(n.$to_s()["$start_with?"]("_"))?t:(s(i.parser.$pattern_variables()["$declared?"](n))&&i.$diagnostic("error","duplicate_variable_name",new Map([["name",n.$to_s()]]),o),i.parser.$pattern_variables().$declare(n))}),n(k,"$check_duplicate_pattern_key",function(t,n){var o=this;return s(o.parser.$pattern_hash_keys()["$declared?"](t))&&o.$diagnostic("error","duplicate_pattern_key",new Map([["name",t.$to_s()]]),n),o.parser.$pattern_hash_keys().$declare(t)}),n(k,"$n",function(t,n,s){return o(A("AST"),"Node").$new(t,n,new Map([["location",s]]))}),n(k,"$n0",function(t,n){var s=this;return s.$n(t,[],n)}),n(k,"$join_exprs",function(t,n){return t.$loc().$expression().$join(n.$loc().$expression())}),n(k,"$token_map",function(t){var n=this;return o(A("Source"),"Map").$new(n.$loc(t))}),n(k,"$delimited_string_map",function(n){var i=this,s=t,a=t,r=t,s=i.$loc(n),a=s.$with(new Map([["end_pos",d(s.$begin_pos(),1)]])),r=s.$with(new Map([["begin_pos",l(s.$end_pos(),1)]]));return o(o(A("Source"),"Map"),"Collection").$new(a,r,i.$loc(n))}),n(k,"$prefix_string_map",function(n){var i=this,s=t,a=t,s=i.$loc(n),a=s.$with(new Map([["end_pos",d(s.$begin_pos(),1)]]));return o(o(A("Source"),"Map"),"Collection").$new(a,t,i.$loc(n))}),n(k,"$unquoted_map",function(n){var s=this;return o(o(A("Source"),"Map"),"Collection").$new(t,t,s.$loc(n))}),n(k,"$pair_keyword_map",function(n,s){var c=this,i=t,a=t,r=t,i=c.$loc(n),a=i.$adjust(new Map([["end_pos",-1]])),r=i.$with(new Map([["begin_pos",l(i.$end_pos(),1)]]));return[o(o(A("Source"),"Map"),"Collection").$new(t,t,a),o(o(A("Source"),"Map"),"Operator").$new(r,i.$join(s.$loc().$expression()))]}),n(k,"$pair_quoted_map",function(n,s,i){var r=this,a=t,c=t,d=t,a=r.$loc(s),c=a.$with(new Map([["begin_pos",l(a.$end_pos(),2)],["end_pos",l(a.$end_pos(),1)]])),d=a.$with(new Map([["begin_pos",l(a.$end_pos(),1)]]));return[[r.$value(s),c],o(o(A("Source"),"Map"),"Operator").$new(d,r.$loc(n).$join(i.$loc().$expression()))]}),n(k,"$expr_map",function(t){return o(A("Source"),"Map").$new(t)}),n(k,"$collection_map",function(n,i,a){var r=this,l=t;return s(n["$nil?"]())||s(a["$nil?"]())?s(i["$any?"]())?l=r.$join_exprs(i.$first(),i.$last()):c(n["$nil?"]())?l=r.$loc(n):c(a["$nil?"]())&&(l=r.$loc(a)):l=r.$loc(n).$join(r.$loc(a)),o(o(A("Source"),"Map"),"Collection").$new(r.$loc(n),r.$loc(a),l)}),n(k,"$string_map",function(n,i,a){var r=this,c=t;return s(n)&&s(r.$value(n)["$start_with?"]("<<"))?(s(i["$any?"]())?c=r.$join_exprs(i.$first(),i.$last()):c=r.$loc(a).$begin(),o(o(A("Source"),"Map"),"Heredoc").$new(r.$loc(n),c,r.$loc(a))):r.$collection_map(n,i,a)}),n(k,"$regexp_map",function(t,n,s){var i=this;return o(o(A("Source"),"Map"),"Collection").$new(i.$loc(t),i.$loc(n),i.$loc(t).$join(s.$loc().$expression()))}),n(k,"$constant_map",function(n,i,a){var r=this,c=t;return s(n["$nil?"]())?c=r.$loc(a):c=n.$loc().$expression().$join(r.$loc(a)),o(o(A("Source"),"Map"),"Constant").$new(r.$loc(i),r.$loc(a),c)}),n(k,"$variable_map",function(t){var n=this;return o(o(A("Source"),"Map"),"Variable").$new(n.$loc(t))}),n(k,"$binary_op_map",function(t,n,s){var i=this;return o(o(A("Source"),"Map"),"Operator").$new(i.$loc(n),i.$join_exprs(t,s))}),n(k,"$unary_op_map",function(n,i){var a=this,r=t;return i==null&&(i=t),s(i["$nil?"]())?r=a.$loc(n):r=a.$loc(n).$join(i.$loc().$expression()),o(o(A("Source"),"Map"),"Operator").$new(a.$loc(n),r)},-2),n(k,"$range_map",function(n,i,a){var r=this,c=t;return s(n)&&s(a)?c=r.$join_exprs(n,a):s(n)?c=n.$loc().$expression().$join(r.$loc(i)):s(a)&&(c=r.$loc(i).$join(a.$loc().$expression())),o(o(A("Source"),"Map"),"Operator").$new(r.$loc(i),c)}),n(k,"$arg_prefix_map",function(n,i){var a=this,r=t;return i==null&&(i=t),s(i["$nil?"]())?r=a.$loc(n):r=a.$loc(n).$join(a.$loc(i)),o(o(A("Source"),"Map"),"Variable").$new(a.$loc(i),r)},-2),n(k,"$kwarg_map",function(n,i){var a=this,c=t,l=t,r=t;return i==null&&(i=t),c=a.$loc(n),l=c.$adjust(new Map([["end_pos",-1]])),s(i)?r=a.$loc(n).$join(i.$loc().$expression()):r=a.$loc(n),o(o(A("Source"),"Map"),"Variable").$new(l,r)},-2),n(k,"$module_definition_map",function(n,i,a,r){var c=this,l=t;return s(i)&&(l=i.$loc().$expression()),o(o(A("Source"),"Map"),"Definition").$new(c.$loc(n),c.$loc(a),l,c.$loc(r))}),n(k,"$definition_map",function(n,s,i,a){var r=this;return o(o(A("Source"),"Map"),"MethodDefinition").$new(r.$loc(n),r.$loc(s),r.$loc(i),r.$loc(a),t,t)}),n(k,"$endless_definition_map",function(n,s,i,a,r){var c=this,l=t,l=r.$loc().$expression();return o(o(A("Source"),"Map"),"MethodDefinition").$new(c.$loc(n),c.$loc(s),c.$loc(i),t,c.$loc(a),l)}),n(k,"$send_map",function(n,i,a,r,c,l){var d=this,h=t,u=t;return r==null&&(r=t),c==null&&(c=[]),l==null&&(l=t),s(n)?h=n.$loc().$expression():s(a)&&(h=d.$loc(a)),s(l)?u=d.$loc(l):s(c["$any?"]())?u=c.$last().$loc().$expression():s(a)&&(u=d.$loc(a)),o(o(A("Source"),"Map"),"Send").$new(d.$loc(i),d.$loc(a),d.$loc(r),d.$loc(l),h.$join(u))},-4),n(k,"$var_send_map",function(n){return o(o(A("Source"),"Map"),"Send").$new(t,n.$loc().$expression(),t,t,n.$loc().$expression())}),n(k,"$send_binary_op_map",function(n,s,i){var a=this;return o(o(A("Source"),"Map"),"Send").$new(t,a.$loc(s),t,t,a.$join_exprs(n,i))}),n(k,"$send_unary_op_map",function(n,i){var a=this,r=t;return s(i["$nil?"]())?r=a.$loc(n):r=a.$loc(n).$join(i.$loc().$expression()),o(o(A("Source"),"Map"),"Send").$new(t,a.$loc(n),t,t,r)}),n(k,"$index_map",function(t,n,s){var i=this;return o(o(A("Source"),"Map"),"Index").$new(i.$loc(n),i.$loc(s),t.$loc().$expression().$join(i.$loc(s)))}),n(k,"$send_index_map",function(n,s,i){var a=this;return o(o(A("Source"),"Map"),"Send").$new(t,a.$loc(s).$join(a.$loc(i)),t,t,n.$loc().$expression().$join(a.$loc(i)))}),n(k,"$block_map",function(t,n,s){var i=this;return o(o(A("Source"),"Map"),"Collection").$new(i.$loc(n),i.$loc(s),t.$join(i.$loc(s)))}),n(k,"$keyword_map",function(n,i,a,r){var l=this,h=t,d=t;return a=s(h=a)?h:[],s(r)?d=l.$loc(r):s(a["$any?"]())&&c(a.$last()["$nil?"]())?d=a.$last().$loc().$expression():s(a["$any?"]())&&s(u(a.$count(),1))?d=a["$[]"](-2).$loc().$expression():d=l.$loc(n),o(o(A("Source"),"Map"),"Keyword").$new(l.$loc(n),l.$loc(i),l.$loc(r),l.$loc(n).$join(d))}),n(k,"$keyword_mod_map",function(n,s,i){var a=this;return o(o(A("Source"),"Map"),"Keyword").$new(a.$loc(s),t,t,a.$join_exprs(n,i))}),n(k,"$condition_map",function(n,i,a,r,c,l,d){var u=this,h=t;return s(d)?h=u.$loc(d):s(l)&&s(l.$loc().$expression())?h=l.$loc().$expression():s(u.$loc(c))?h=u.$loc(c):s(r)&&s(r.$loc().$expression())?h=r.$loc().$expression():s(u.$loc(a))?h=u.$loc(a):h=i.$loc().$expression(),o(o(A("Source"),"Map"),"Condition").$new(u.$loc(n),u.$loc(a),u.$loc(c),u.$loc(d),u.$loc(n).$join(h))}),n(k,"$ternary_map",function(t,n,s,i,a){var r=this;return o(o(A("Source"),"Map"),"Ternary").$new(r.$loc(n),r.$loc(i),r.$join_exprs(t,a))}),n(k,"$for_map",function(t,n,s,i){var a=this;return o(o(A("Source"),"Map"),"For").$new(a.$loc(t),a.$loc(n),a.$loc(s),a.$loc(i),a.$loc(t).$join(a.$loc(i)))}),n(k,"$rescue_body_map",function(n,i,a,r,c,l){var u=this,d=t;return s(l)&&(d=l.$loc().$expression()),s(d["$nil?"]())&&s(c)&&(d=u.$loc(c)),s(d["$nil?"]())&&s(r)&&(d=r.$loc().$expression()),s(d["$nil?"]())&&s(i)&&(d=i.$loc().$expression()),s(d["$nil?"]())&&(d=u.$loc(n)),o(o(A("Source"),"Map"),"RescueBody").$new(u.$loc(n),u.$loc(a),u.$loc(c),u.$loc(n).$join(d))}),n(k,"$eh_keyword_map",function(n,i,a,r,l){var d=this,h=t,u=t;return s(n["$nil?"]())?s(i["$nil?"]())?h=a.$first().$loc().$expression():h=d.$loc(i):h=n.$loc().$expression(),s(r)?s(l["$nil?"]())?u=d.$loc(r):u=l.$loc().$expression():c(a.$last()["$nil?"]())?u=a.$last().$loc().$expression():u=d.$loc(i),o(o(A("Source"),"Map"),"Condition").$new(d.$loc(i),t,d.$loc(r),t,h.$join(u))}),n(k,"$guard_map",function(n,s){var r=this,i=t,a=t,i=r.$loc(n),a=s.$loc().$expression();return o(o(A("Source"),"Map"),"Keyword").$new(i,t,t,i.$join(a))}),n(k,"$static_string",function(n){try{var o=w("return"),i=this;return r(n,"map",[],function e(n){var a=e.$$s==null?this:e.$$s,i=t;switch(n==null&&(n=t),n.$type().valueOf()){case"str":return n.$children()["$[]"](0);case"begin":if(s(i=a.$static_string(n.$children())))return i;o.$throw(t,e.$$is_lambda);break;default:o.$throw(t,e.$$is_lambda)}},{$$s:i,$$ret:o}).$join()}catch(e){if(e===o)return e.$v;throw e}finally{o.is_orphan=!0}}),n(k,"$static_regexp",function(n,i){var r,l=this,a=t,c=t;return h.VERBOSE==null&&(h.VERBOSE=t),a=l.$static_string(n),s(a["$nil?"]())?t:(a=s(i.$children()["$include?"]("u"))?a.$encode(o(A("Encoding"),"UTF_8")):s(i.$children()["$include?"]("e"))?a.$encode(o(A("Encoding"),"EUC_JP")):s(i.$children()["$include?"]("s"))?a.$encode(o(A("Encoding"),"WINDOWS_31J")):s(i.$children()["$include?"]("n"))?a.$encode(o(A("Encoding"),"BINARY")):a,function(){try{return r=[h.VERBOSE,t],c=r[0],h.VERBOSE=r[1],r,A("Regexp").$new(a,s(i.$children()["$include?"]("x"))?o(A("Regexp"),"EXTENDED"):t)}finally{h.VERBOSE=c}}())}),n(k,"$static_regexp_node",function(n){var o,a=this,c=t,l=t;return i(n.$type(),"regexp")?s(g(a.parser.$version(),33))&&s(r(n.$children()["$[]"](f(0,-2,!1)),"any?",[],function(n){return n==null&&(n=t),n.$type()["$!="]("str")}))?t:(o=[n.$children()["$[]"](f(0,-2,!1)),n.$children()["$[]"](-1)],c=o[0],l=o[1],o,a.$static_regexp(c,l)):t}),n(k,"$collapse_string_parts?",function(n){var o=t;return s(o=n["$one?"]())?["str","dstr"]["$include?"](n.$first().$type()):o}),n(k,"$value",function(t){return t["$[]"](0)}),n(k,"$string_value",function(n){var o=this;return s(n["$[]"](0)["$valid_encoding?"]())||o.$diagnostic("error","invalid_encoding",t,n["$[]"](1)),n["$[]"](0)}),n(k,"$loc",function(n){return s(n)&&s(n["$[]"](0))?n["$[]"](1):t}),n(k,"$diagnostic",function(n,s,o,a,r){var c=this;return r==null&&(r=[]),c.parser.$diagnostics().$process(A("Diagnostic").$new(n,s,o,a,r)),i(n,"error")?c.parser.$send("yyerror"):t},-5),n(k,"$validate_definee",function(n){var s=this;switch(n.$type().valueOf()){case"int":case"str":case"dstr":case"sym":case"dsym":case"regexp":case"array":case"hash":return s.$diagnostic("error","singleton_literal",t,n.$loc().$expression()),!1;default:return!0}}),n(k,"$rewrite_hash_args_to_kwargs",function(n){var o,a=this;return s(n["$any?"]())&&s(a["$kwargs?"](n.$last()))?(o=[l(n.$length(),1),n["$[]"](l(n.$length(),1)).$updated("kwargs")],r(n,"[]=",o),o[o.length-1]):s(u(n.$length(),1))&&i(n.$last().$type(),"block_pass")&&s(a["$kwargs?"](n["$[]"](l(n.$length(),2))))?(o=[l(n.$length(),2),n["$[]"](l(n.$length(),2)).$updated("kwargs")],r(n,"[]=",o),o[o.length-1]):t}),n(k,"$kwargs?",function(n){var o=t,i=t;return s(o=s(i=n.$type()["$=="]("hash"))?n.$loc().$begin()["$nil?"]():i)?n.$loc().$end()["$nil?"]():o})}(S("Builders"),null,k)}(v[0],v)},Opal.modules["parser/context"]=function(e){var s=e.module,o=e.klass,i=e.const_set,t=e.def,a=e.send,r=e.to_a,c=e.truthy,n=[],l=e.nil;return e.add_stubs("reset,attr_accessor,in_block,in_lambda"),function(n,d){var h=s(n,"Parser"),u=[h].concat(d);return function(n,s,d){var u=o(n,s,"Context"),h=[u].concat(d),m=e.$r(h);return i(h[0],"FLAGS",["in_defined","in_kwarg","in_argdef","in_def","in_class","in_block","in_lambda","cant_return"]),t(u,"$initialize",function(){var t=this;return t.$reset()}),t(u,"$reset",function(){var t=this;return t.in_defined=!1,t.in_kwarg=!1,t.in_argdef=!1,t.in_def=!1,t.in_class=!1,t.in_block=!1,t.in_lambda=!1,t.cant_return=!1}),a(u,"attr_accessor",r(m("FLAGS"))),t(u,"$in_dynamic_block?",function(){var t=this,n=l;return c(n=t.$in_block())?n:t.$in_lambda()})}(u[0],null,u)}(n[0],n)},Opal.modules["parser/max_numparam_stack"]=function(e){var o=e.module,i=e.klass,a=e.const_set,t=e.def,r=e.truthy,c=e.rb_gt,l=e.ensure_kwargs,d=e.get_kwarg,u=e.send,n=[],s=e.nil;return e.add_stubs("attr_reader,==,size,set,top,>,max,[],last,push,pop,private,[]="),function(n,h){var f=o(n,"Parser"),m=[f].concat(h);return function(n,o,h){var m=i(n,o,"MaxNumparamStack"),f=[m].concat(h),p=e.$r(f),g=m.$$prototype;return g.stack=s,m.$attr_reader("stack"),a(f[0],"ORDINARY_PARAMS",-1),t(m,"$initialize",function(){var t=this;return t.stack=[]}),t(m,"$empty?",function(){var t=this;return t.stack.$size()["$=="](0)}),t(m,"$has_ordinary_params!",function(){var t=this;return t.$set(p("ORDINARY_PARAMS"))}),t(m,"$has_ordinary_params?",function(){var t=this;return t.$top()["$=="](p("ORDINARY_PARAMS"))}),t(m,"$has_numparams?",function(){var t=this,n=s;return r(n=t.$top())?c(t.$top(),0):n}),t(m,"$register",function(t){var n=this;return n.$set([n.$top(),t].$max())}),t(m,"$top",function(){var t=this;return t.stack.$last()["$[]"]("value")}),t(m,"$push",function(t){var n,s=this;return t=l(t),n=d(t,"static"),s.stack.$push(new Map([["value",0],["static",n]]))}),t(m,"$pop",function(){var t=this;return t.stack.$pop()["$[]"]("value")}),m.$private(),t(m,"$set",function(t){var n,s=this;return n=["value",t],u(s.stack.$last(),"[]=",n),n[n.length-1]})}(m[0],null,m)}(n[0],n)},Opal.modules["parser/current_arg_stack"]=function(e){var s=e.module,o=e.klass,t=e.def,i=e.rb_minus,a=e.send,n=[],r=e.nil;return e.add_stubs("attr_reader,freeze,==,size,<<,[]=,-,length,pop,clear,last"),function(e,n){var c=s(e,"Parser"),l=[c].concat(n);return function(e,n){var s=o(e,n,"CurrentArgStack"),c=s.$$prototype;return c.stack=r,s.$attr_reader("stack"),t(s,"$initialize",function(){var t=this;return t.stack=[],t.$freeze()}),t(s,"$empty?",function(){var t=this;return t.stack.$size()["$=="](0)}),t(s,"$push",function(t){var n=this;return n.stack["$<<"](t)}),t(s,"$set",function(t){var n,s=this;return n=[i(s.stack.$length(),1),t],a(s.stack,"[]=",n),n[n.length-1]}),t(s,"$pop",function(){var t=this;return t.stack.$pop()}),t(s,"$reset",function(){var t=this;return t.stack.$clear()}),t(s,"$top",function(){var t=this;return t.stack.$last()})}(l[0],null)}(n[0],n)},Opal.modules["parser/variables_stack"]=function(e){var s=e.module,o=e.klass,t=e.def,n=[],i=e.nil;return e.add_stubs("push,empty?,<<,new,pop,clear,last,to_sym,include?"),function(n,a){var c=s(n,"Parser"),r=[c].concat(a);return function(n,s,a){var r=o(n,s,"VariablesStack"),c=[r].concat(a),l=e.$r(c),d=r.$$prototype;return d.stack=i,t(r,"$initialize",function(){var t=this;return t.stack=[],t.$push()}),t(r,"$empty?",function(){var t=this;return t.stack["$empty?"]()}),t(r,"$push",function(){var t=this;return t.stack["$<<"](l("Set").$new())}),t(r,"$pop",function(){var t=this;return t.stack.$pop()}),t(r,"$reset",function(){var t=this;return t.stack.$clear()}),t(r,"$declare",function(t){var n=this;return n.stack.$last()["$<<"](t.$to_sym())}),t(r,"$declared?",function(t){var n=this;return n.stack.$last()["$include?"](t.$to_sym())})}(r[0],null,r)}(n[0],n)},Opal.modules["parser/base"]=function(e){var h=e.module,f=e.klass,o=e.defs,i=e.send,c=e.gvars,l=e.eqeq,a=e.truthy,n=e.def,m=e.not,d=e.eqeqeq,r=e.to_ary,u=[],t=e.nil,s=e.$$$;return e.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(u,p){var v=h(u,"Parser"),g=[v].concat(p),b=e.$r(g);return function(u,h,p){var g=f(u,h,"Base"),j=[g].concat(p),v=e.$r(j),b=g.$$prototype;return b.lexer=b.diagnostics=b.static_env=b.context=b.builder=b.current_arg_stack=b.pattern_variables=b.pattern_hash_keys=t,o(g,"$parse",function(n,s,o){var a=this,i=t,r=t;return s==null&&(s="(string)"),o==null&&(o=1),i=a.$default_parser(),r=a.$setup_source_buffer(s,o,n,i.$default_encoding()),i.$parse(r)},-2),o(g,"$parse_with_comments",function(n,s,o){var a=this,i=t,r=t;return s==null&&(s="(string)"),o==null&&(o=1),i=a.$default_parser(),r=a.$setup_source_buffer(s,o,n,i.$default_encoding()),i.$parse_with_comments(r)},-2),o(g,"$parse_file",function(t){var n=this;return n.$parse(v("File").$read(t),t)}),o(g,"$parse_file_with_comments",function(t){var n=this;return n.$parse_with_comments(v("File").$read(t),t)}),o(g,"$default_parser",function(){var s=this,n=t,n=s.$new();return n.$diagnostics()["$all_errors_are_fatal="](!0),n.$diagnostics()["$ignore_warnings="](!0),n.$diagnostics()["$consumer="](i(s,"lambda",[],function(n){return c.stderr==null&&(c.stderr=t),n==null&&(n=t),c.stderr.$puts(n.$render())})),n}),o(g,"$setup_source_buffer",function(n,o,i,a){var c=this,r=t;return i=i.$dup().$force_encoding(a),r=s(v("Source"),"Buffer").$new(n,o),l(c.$name(),"Parser::Ruby18")?r["$raw_source="](i):r["$source="](i),r}),g.$private_class_method("setup_source_buffer"),g.$attr_reader("lexer"),g.$attr_reader("diagnostics"),g.$attr_reader("builder"),g.$attr_reader("static_env"),g.$attr_reader("source_buffer"),g.$attr_reader("context"),g.$attr_reader("max_numparam_stack"),g.$attr_reader("current_arg_stack"),g.$attr_reader("pattern_variables"),g.$attr_reader("pattern_hash_keys"),n(g,"$initialize",function(n){var o=this;return n==null&&(n=s(s(v("Parser"),"Builders"),"Default").$new()),o.diagnostics=s(v("Diagnostic"),"Engine").$new(),o.static_env=v("StaticEnvironment").$new(),o.context=v("Context").$new(),o.max_numparam_stack=v("MaxNumparamStack").$new(),o.current_arg_stack=v("CurrentArgStack").$new(),o.pattern_variables=v("VariablesStack").$new(),o.pattern_hash_keys=v("VariablesStack").$new(),o.lexer=v("Lexer").$new(o.$version()),o.lexer["$diagnostics="](o.diagnostics),o.lexer["$static_env="](o.static_env),o.lexer["$context="](o.context),o.builder=n,o.builder["$parser="](o),o.last_token=t,a(s(o.$class(),"Racc_debug_parser"))&&a(v("ENV")["$[]"]("RACC_DEBUG"))&&(o.yydebug=!0),o.$reset()},-1),n(g,"$reset",function(){var n=this;return n.source_buffer=t,n.lexer.$reset(),n.static_env.$reset(),n.context.$reset(),n.current_arg_stack.$reset(),n.pattern_variables.$reset(),n.pattern_hash_keys.$reset(),n}),n(g,"$parse",function(n){var o,s=this,r=t;return function(){try{return s.lexer["$source_buffer="](n),s.source_buffer=n,a(r=s.$do_parse())?r:t}finally{s.source_buffer=t,(o=[t],i(s.lexer,"source_buffer=",o),o[o.length-1])}}()}),n(g,"$parse_with_comments",function(n){var s,o=this;return function(){try{return o.lexer["$comments="]([]),[o.$parse(n),o.lexer.$comments()]}finally{s=[t],i(o.lexer,"comments=",s),s[s.length-1]}}()}),n(g,"$tokenize",function(o,a){var r,c=this,l=t;return a==null&&(a=!1),function(){try{c.lexer["$tokens="]([]),c.lexer["$comments="]([]);try{l=c.$parse(o)}catch(t){if(e.rescue(t,[s(v("Parser"),"SyntaxError")]))try{m(a)&&c.$raise()}finally{e.pop_exception(t)}else throw t}return[l,c.lexer.$comments(),c.lexer.$tokens()]}finally{(r=[t],i(c.lexer,"tokens=",r),r[r.length-1]),(r=[t],i(c.lexer,"comments=",r),r[r.length-1])}}()},-2),g.$private(),n(g,"$next_token",function(){var s=this,n=t,n=s.lexer.$advance();return s.last_token=n,n}),n(g,"$check_kwarg_name",function(n){var o=this,s=t;return d(/^[a-z_]/,s=n["$[]"](0))?t:d(/^[A-Z]/,s)?o.$diagnostic("error","argument_const",t,n):t}),n(g,"$diagnostic",function(n,s,o,a,c){var d,u,h=this,m=t,f=t,p=t;return c==null&&(c=[]),u=a,d=r(u),m=d[0]==null?t:d[0],f=d[1]==null?t:d[1],u,p=i(c,"map",[],function(n){var s,o,i=t;return n==null&&(n=t),o=n,s=r(o),m=s[0]==null?t:s[0],i=s[1]==null?t:s[1],o,i}),h.diagnostics.$process(v("Diagnostic").$new(n,s,o,f,p)),l(n,"error")?h.$yyerror():t},-5),n(g,"$on_error",function(n,s){var c=this,l=t,u=t,d=t,l=c.$token_to_str(n),a=s,i=r(a);return u=i[0]==null?t:i[0],d=i[1]==null?t:i[1],a,c.diagnostics.$process(v("Diagnostic").$new("error","unexpected_token",new Map([["token",l]]),d))})}(g[0],s(b("Racc"),"Parser"),g)}(u[0],u)},Opal.modules["parser/rewriter"]=function(e){var i=e.module,a=e.klass,t=e.def,r=e.const_set,c=e.slice,l=e.send2,d=e.find_super,u=e.to_a,s=[],o=e.nil,n=e.$$$;return e.add_stubs("new,process,include?,type,remove,wrap,insert_before,insert_after,replace,freeze,join,extend,warn_of_deprecation,class,warned_of_deprecation="),function(s,h){var f=i(s,"Parser"),m=[f].concat(h),p=e.$r(m);return function(s,i,h){var m=a(s,i,"Rewriter"),p=[m].concat(h),f=e.$r(p),g=m.$$prototype;return g.source_rewriter=o,t(m,"$rewrite",function(t,s){var o=this;return o.source_rewriter=n(f("Source"),"Rewriter").$new(t),o.$process(s),o.source_rewriter.$process()}),t(m,"$assignment?",function(t){return["lvasgn","ivasgn","gvasgn","cvasgn","casgn"]["$include?"](t.$type())}),t(m,"$remove",function(t){var n=this;return n.source_rewriter.$remove(t)}),t(m,"$wrap",function(t,n,s){var o=this;return o.source_rewriter.$wrap(t,n,s)}),t(m,"$insert_before",function(t,n){var s=this;return s.source_rewriter.$insert_before(t,n)}),t(m,"$insert_after",function(t,n){var s=this;return s.source_rewriter.$insert_after(t,n)}),t(m,"$replace",function(t,n){var s=this;return s.source_rewriter.$replace(t,n)}),r(p[0],"DEPRECATION_WARNING",["Parser::Rewriter is deprecated.","Please update your code to use Parser::TreeRewriter instead"].$join(`
`).$freeze()),m.$extend(f("Deprecation")),t(m,"$initialize",function e(){var i,a,r=e.$$p||o,s=this;return e.$$p=null,i=c(arguments),a=i,s.$class().$warn_of_deprecation(),n(f("Source"),"Rewriter")["$warned_of_deprecation="](!0),l(s,d(s,"initialize",e,!1,!0),"initialize",u(a),r)},-1)}(m[0],n(n(p("Parser"),"AST"),"Processor"),m)}(s[0],s)},Opal.modules["parser/tree_rewriter"]=function(e){var o=e.module,i=e.klass,a=e.ensure_kwargs,r=e.kwrestargs,t=e.def,s=[],c=e.nil,n=e.$$$;return e.add_stubs("new,process,include?,type,remove,wrap,insert_before,insert_after,replace"),function(s,l){var u=o(s,"Parser"),d=[u].concat(l),h=e.$r(d);return function(s,o,l){var d=i(s,o,"TreeRewriter"),u=[d].concat(l),h=e.$r(u),m=d.$$prototype;return m.source_rewriter=c,t(d,"$rewrite",function(s,o,i){var l,c=this;return i=a(i),l=r(i,{}),c.source_rewriter=n(n(h("Parser"),"Source"),"TreeRewriter").$new(s,e.to_hash(l)),c.$process(o),c.source_rewriter.$process()},-3),t(d,"$assignment?",function(t){return["lvasgn","ivasgn","gvasgn","cvasgn","casgn"]["$include?"](t.$type())}),t(d,"$remove",function(t){var n=this;return n.source_rewriter.$remove(t)}),t(d,"$wrap",function(t,n,s){var o=this;return o.source_rewriter.$wrap(t,n,s)}),t(d,"$insert_before",function(t,n){var s=this;return s.source_rewriter.$insert_before(t,n)}),t(d,"$insert_after",function(t,n){var s=this;return s.source_rewriter.$insert_after(t,n)}),t(d,"$replace",function(t,n){var s=this;return s.source_rewriter.$replace(t,n)})}(d[0],n(n(h("Parser"),"AST"),"Processor"),d)}(s[0],s)},Opal.modules.parser=function(e){var i=e.truthy,n=e.module,a=e.eqeq,t=e.top,o=[],s=e.$r(o),c=e.nil,r=e.$$$;return e.add_stubs("=~,raise,require,=="),i(s("RUBY_VERSION")["$=~"](/^1\.[89]\./))&&(t.$require("./parser.rb/../parser/version"),t.$raise(s("LoadError"),"parser v"+r(s("Parser"),"VERSION")+" cannot run on Ruby "+s("RUBY_VERSION")+`.
Please upgrade to Ruby 2.0.0 or higher, or use an older version of the parser gem.
`)),t.$require("set"),t.$require("racc/parser"),t.$require("ast"),function(t,s){var o=n(t,"Parser"),i=[o].concat(s),r=e.$r(i);return o.$require("./parser.rb/../parser/version"),o.$require("./parser.rb/../parser/messages"),o.$require("./parser.rb/../parser/deprecation"),function(e){var t=n(e,"AST");return t.$require("./parser.rb/../parser/ast/node"),t.$require("./parser.rb/../parser/ast/processor"),t.$require("./parser.rb/../parser/meta")}(i[0]),function(e){var t=n(e,"Source");return t.$require("./parser.rb/../parser/source/buffer"),t.$require("./parser.rb/../parser/source/range"),t.$require("./parser.rb/../parser/source/comment"),t.$require("./parser.rb/../parser/source/comment/associator"),t.$require("./parser.rb/../parser/source/rewriter"),t.$require("./parser.rb/../parser/source/rewriter/action"),t.$require("./parser.rb/../parser/source/tree_rewriter"),t.$require("./parser.rb/../parser/source/tree_rewriter/action"),t.$require("./parser.rb/../parser/source/map"),t.$require("./parser.rb/../parser/source/map/operator"),t.$require("./parser.rb/../parser/source/map/collection"),t.$require("./parser.rb/../parser/source/map/constant"),t.$require("./parser.rb/../parser/source/map/variable"),t.$require("./parser.rb/../parser/source/map/keyword"),t.$require("./parser.rb/../parser/source/map/definition"),t.$require("./parser.rb/../parser/source/map/method_definition"),t.$require("./parser.rb/../parser/source/map/send"),t.$require("./parser.rb/../parser/source/map/index"),t.$require("./parser.rb/../parser/source/map/condition"),t.$require("./parser.rb/../parser/source/map/ternary"),t.$require("./parser.rb/../parser/source/map/for"),t.$require("./parser.rb/../parser/source/map/rescue_body"),t.$require("./parser.rb/../parser/source/map/heredoc"),t.$require("./parser.rb/../parser/source/map/objc_kwarg")}(i[0]),o.$require("./parser.rb/../parser/syntax_error"),o.$require("./parser.rb/../parser/clobbering_error"),o.$require("./parser.rb/../parser/unknown_encoding_in_magic_comment_error"),o.$require("./parser.rb/../parser/diagnostic"),o.$require("./parser.rb/../parser/diagnostic/engine"),o.$require("./parser.rb/../parser/static_environment"),a(r("RUBY_ENGINE"),"truffleruby")?o.$require("./parser.rb/../parser/lexer-F0"):o.$require("./parser.rb/../parser/lexer-F1"),o.$require("./parser.rb/../parser/lexer-strings"),o.$require("./parser.rb/../parser/lexer/literal"),o.$require("./parser.rb/../parser/lexer/stack_state"),o.$require("./parser.rb/../parser/lexer/dedenter"),function(e){var t=n(e,"Builders");return t.$require("./parser.rb/../parser/builders/default")}(i[0]),o.$require("./parser.rb/../parser/context"),o.$require("./parser.rb/../parser/max_numparam_stack"),o.$require("./parser.rb/../parser/current_arg_stack"),o.$require("./parser.rb/../parser/variables_stack"),o.$require("./parser.rb/../parser/base"),o.$require("./parser.rb/../parser/rewriter"),o.$require("./parser.rb/../parser/tree_rewriter")}(o[0],o)},Opal.modules["parser/ruby32"]=function(e){var g=e.module,b=e.klass,d=e.return_val,t=e.def,i=e.truthy,a=e.not,r=e.send,j=e.rb_gt,p=e.thrower,v=e.hash_rehash,l=e.const_set,o=e.to_a,s=e.to_ary,u=e.eqeq,c=e.slice,f=e.top,m=[],n=e.nil,h=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"),f.$require("racc/parser.rb"),f.$require("parser/ruby32.rb/../../parser"),function(m,f){var _=g(m,"Parser"),y=[_].concat(f),w=e.$r(y);return function(m,f,g){var P,H,y=b(m,f,"Ruby32"),O=[y].concat(g),w=e.$r(O),F=n,E=n,k=n,A=n,S=n,x=n,C=n,T=n,z=n,D=n,N=n,L=n,R=n,M=n,_=y.$$prototype;return _.static_env=_.lexer=_.max_numparam_stack=_.context=_.current_arg_stack=_.builder=_.pattern_variables=_.pattern_hash_keys=_.last_token=n,t(y,"$version",d(32)),t(y,"$default_encoding",function(){return h(w("Encoding"),"UTF_8")}),t(y,"$endless_method_name",function(t){var s=this;return a(["===","==","!=","<=",">="]["$include?"](t["$[]"](0)))&&i(t["$[]"](0)["$end_with?"]("="))?s.$diagnostic("error","endless_setter",n,t):n}),t(y,"$local_push",function(){var t=this;return t.static_env.$extend_static(),t.lexer.$cmdarg().$push(!1),t.lexer.$cond().$push(!1),t.max_numparam_stack.$push(new Map([["static",!0]]))}),t(y,"$local_pop",function(){var t=this;return t.static_env.$unextend(),t.lexer.$cmdarg().$pop(),t.lexer.$cond().$pop(),t.max_numparam_stack.$pop()}),t(y,"$try_declare_numparam",function(t){var s=this,o=n,c=n,l=n,o=t.$children()["$[]"](0);return!!(i(o["$=~"](/^_[1-9]$/))&&a(s.$static_env()["$declared?"](o))&&i(s.context["$in_dynamic_block?"]()))&&(c=t.$loc().$expression(),i(s.$max_numparam_stack()["$has_ordinary_params?"]())&&s.$diagnostic("error","ordinary_param_defined",n,[n,c]),l=s.$max_numparam_stack().$stack().$dup(),l.$pop(),function(){try{var e=p("break");return r(l,"reverse_each",[],function t(s){var a=t.$$s==null?this:t.$$s,o=n;if(s==null&&(s=n),i(s["$[]"]("static")))e.$throw(n,t.$$is_lambda);else return o=j(s["$[]"]("value"),0),i(o)?a.$diagnostic("error","numparam_used_in_outer_scope",n,[n,c]):n},{$$s:s})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}(),s.$static_env().$declare(o),s.$max_numparam_stack().$register(o["$[]"](1).$to_i()),!0)}),F=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"),E=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"),k=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,"),A=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"),S=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"),x=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"),C=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"),T=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"),z=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"),D=741,N=1234,L=v(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]])),R=147,M=!0,l(O[0],"Racc_arg",[F,E,A,k,S,x,T,C,R,z,L,N,D,M]),i((H=w("Ractor","skip_raise"))?"constant":n)&&w("Ractor").$make_shareable(w("Racc_arg")),l(O[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")),i((P=w("Ractor","skip_raise"))?"constant":n)&&w("Ractor").$make_shareable(w("Racc_token_to_s_table")),l(O[0],"Racc_debug_parser",!1),t(y,"$_reduce_1",function(t,s,o){var i=this;return i.current_arg_stack.$push(n),i.max_numparam_stack.$push(new Map([["static",!0]])),o}),t(y,"$_reduce_2",function(t,n,s){var o=this;return s=t["$[]"](1),o.current_arg_stack.$pop(),o.max_numparam_stack.$pop(),s}),t(y,"$_reduce_3",function(t){var o=this;return o.builder.$compstmt(t["$[]"](0))}),t(y,"$_reduce_4",function(){return[]}),t(y,"$_reduce_5",function(t){return[t["$[]"](0)]}),t(y,"$_reduce_6",function(t){return t["$[]"](0)["$<<"](t["$[]"](2))}),t(y,"$_reduce_7",function(t){return[t["$[]"](1)]}),t(y,"$_reduce_9",function(t){var i=this;return r(i.builder,"preexe",[t["$[]"](0)].concat(o(t["$[]"](1))))}),t(y,"$_reduce_10",function(t){return t}),t(y,"$_reduce_11",function(t){var h=this,u=n,d=n,m=n,f=n,p=n,u=t["$[]"](1),l=t["$[]"](2),c=s(l);return d=c[0]==null?n:c[0],m=c[1]==null?n:c[1],l,l=t["$[]"](3),c=s(l),f=c[0]==null?n:c[0],p=c[1]==null?n:c[1],l,i(u["$empty?"]())&&a(d["$nil?"]())&&h.$diagnostic("error","useless_else",n,d),h.builder.$begin_body(t["$[]"](0),u,d,m,f,p)}),t(y,"$_reduce_12",function(t){var o=this;return o.builder.$compstmt(t["$[]"](0))}),t(y,"$_reduce_13",function(){return[]}),t(y,"$_reduce_14",function(t){return[t["$[]"](0)]}),t(y,"$_reduce_15",function(t){return t["$[]"](0)["$<<"](t["$[]"](2))}),t(y,"$_reduce_16",function(t){return[t["$[]"](1)]}),t(y,"$_reduce_18",function(t,s,o){var i=this;return i.$diagnostic("error","begin_in_method",n,t["$[]"](0)),o}),t(y,"$_reduce_19",function(t,n,s){var o=this;return o.lexer["$state="]("expr_fname"),s}),t(y,"$_reduce_20",function(t){var o=this;return o.builder.$alias(t["$[]"](0),t["$[]"](1),t["$[]"](3))}),t(y,"$_reduce_21",function(t){var o=this;return o.builder.$alias(t["$[]"](0),o.builder.$gvar(t["$[]"](1)),o.builder.$gvar(t["$[]"](2)))}),t(y,"$_reduce_22",function(t){var o=this;return o.builder.$alias(t["$[]"](0),o.builder.$gvar(t["$[]"](1)),o.builder.$back_ref(t["$[]"](2)))}),t(y,"$_reduce_23",function(t,s,o){var i=this;return i.$diagnostic("error","nth_ref_alias",n,t["$[]"](2)),o}),t(y,"$_reduce_24",function(t){var o=this;return o.builder.$undef_method(t["$[]"](0),t["$[]"](1))}),t(y,"$_reduce_25",function(t){var i=this;return i.builder.$condition_mod(t["$[]"](0),n,t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_26",function(t){var i=this;return i.builder.$condition_mod(n,t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_27",function(t){var o=this;return o.builder.$loop_mod("while",t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_28",function(t){var o=this;return o.builder.$loop_mod("until",t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_29",function(t){var i=this,a=n,a=i.builder.$rescue_body(t["$[]"](1),n,n,n,n,t["$[]"](2));return i.builder.$begin_body(t["$[]"](0),[a])}),t(y,"$_reduce_30",function(t){var o=this;return o.builder.$postexe(t["$[]"](0),t["$[]"](1),t["$[]"](2),t["$[]"](3))}),t(y,"$_reduce_32",function(t){var o=this;return o.builder.$multi_assign(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_33",function(t){var i=this;return i.builder.$assign(t["$[]"](0),t["$[]"](1),i.builder.$array(n,t["$[]"](2),n))}),t(y,"$_reduce_34",function(t){var i=this,a=n,r=n,a=i.builder.$rescue_body(t["$[]"](3),n,n,n,n,t["$[]"](4)),r=i.builder.$begin_body(t["$[]"](2),[a]);return i.builder.$multi_assign(t["$[]"](0),t["$[]"](1),r)}),t(y,"$_reduce_35",function(t){var o=this;return o.builder.$multi_assign(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_37",function(t){var o=this;return o.builder.$assign(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_38",function(t){var o=this;return o.builder.$op_assign(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_39",function(t){var o=this;return o.builder.$op_assign(o.builder.$index(t["$[]"](0),t["$[]"](1),t["$[]"](2),t["$[]"](3)),t["$[]"](4),t["$[]"](5))}),t(y,"$_reduce_40",function(t){var o=this;return o.builder.$op_assign(o.builder.$call_method(t["$[]"](0),t["$[]"](1),t["$[]"](2)),t["$[]"](3),t["$[]"](4))}),t(y,"$_reduce_41",function(t){var o=this;return o.builder.$op_assign(o.builder.$call_method(t["$[]"](0),t["$[]"](1),t["$[]"](2)),t["$[]"](3),t["$[]"](4))}),t(y,"$_reduce_42",function(t){var i=this,a=n,a=i.builder.$const_op_assignable(i.builder.$const_fetch(t["$[]"](0),t["$[]"](1),t["$[]"](2)));return i.builder.$op_assign(a,t["$[]"](3),t["$[]"](4))}),t(y,"$_reduce_43",function(t){var o=this;return o.builder.$op_assign(o.builder.$call_method(t["$[]"](0),t["$[]"](1),t["$[]"](2)),t["$[]"](3),t["$[]"](4))}),t(y,"$_reduce_44",function(t,o,i){var a,r=this,u=n,l=n,h=n,d=t["$[]"](0),c=s(d);return u=c[0]==null?n:c[0],(a=s(c[1]==null?n:c[1]),l=a[0]==null?n:a[0],h=a[1]==null?n:a[1]),d,r.$endless_method_name(l),i=r.builder.$def_endless_method(u,l,t["$[]"](1),t["$[]"](2),t["$[]"](3)),r.$local_pop(),r.current_arg_stack.$pop(),r.context["$in_def="](h.$in_def()),i}),t(y,"$_reduce_45",function(t,o,i){var r,a=this,u=n,l=n,h=n,m=n,f=n,d=t["$[]"](0),c=s(d);return u=c[0]==null?n:c[0],(r=s(c[1]==null?n:c[1]),l=r[0]==null?n:r[0],h=r[1]==null?n:r[1]),d,a.$endless_method_name(l),m=a.builder.$rescue_body(t["$[]"](4),n,n,n,n,t["$[]"](5)),f=a.builder.$begin_body(t["$[]"](3),[m]),i=a.builder.$def_endless_method(u,l,t["$[]"](1),t["$[]"](2),f),a.$local_pop(),a.current_arg_stack.$pop(),a.context["$in_def="](h.$in_def()),i}),t(y,"$_reduce_46",function(t,o,i){var r,c=this,u=n,h=n,m=n,l=n,f=n,d=t["$[]"](0),a=s(d);return u=a[0]==null?n:a[0],h=a[1]==null?n:a[1],m=a[2]==null?n:a[2],(r=s(a[3]==null?n:a[3]),l=r[0]==null?n:r[0],f=r[1]==null?n:r[1]),d,c.$endless_method_name(l),i=c.builder.$def_endless_singleton(u,h,m,l,t["$[]"](1),t["$[]"](2),t["$[]"](3)),c.$local_pop(),c.current_arg_stack.$pop(),c.context["$in_def="](f.$in_def()),i}),t(y,"$_reduce_47",function(t,o,i){var c,r=this,u=n,h=n,m=n,l=n,f=n,p=n,g=n,d=t["$[]"](0),a=s(d);return u=a[0]==null?n:a[0],h=a[1]==null?n:a[1],m=a[2]==null?n:a[2],(c=s(a[3]==null?n:a[3]),l=c[0]==null?n:c[0],f=c[1]==null?n:c[1]),d,r.$endless_method_name(l),p=r.builder.$rescue_body(t["$[]"](4),n,n,n,n,t["$[]"](5)),g=r.builder.$begin_body(t["$[]"](3),[p]),i=r.builder.$def_endless_singleton(u,h,m,l,t["$[]"](1),t["$[]"](2),g),r.$local_pop(),r.current_arg_stack.$pop(),r.context["$in_def="](f.$in_def()),i}),t(y,"$_reduce_48",function(t,n,s){var o=this;return o.builder.$op_assign(t["$[]"](0),t["$[]"](1),t["$[]"](2)),s}),t(y,"$_reduce_50",function(t){var i=this,a=n,a=i.builder.$rescue_body(t["$[]"](1),n,n,n,n,t["$[]"](2));return i.builder.$begin_body(t["$[]"](0),[a])}),t(y,"$_reduce_53",function(t){var o=this;return o.builder.$logical_op("and",t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_54",function(t){var o=this;return o.builder.$logical_op("or",t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_55",function(t){var i=this;return i.builder.$not_op(t["$[]"](0),n,t["$[]"](2),n)}),t(y,"$_reduce_56",function(t){var i=this;return i.builder.$not_op(t["$[]"](0),n,t["$[]"](1),n)}),t(y,"$_reduce_57",function(t,n,s){var o=this;return o.lexer["$state="]("expr_beg"),o.lexer["$command_start="](!1),o.pattern_variables.$push(),o.pattern_hash_keys.$push(),s=o.context.$in_kwarg(),o.context["$in_kwarg="](!0),s}),t(y,"$_reduce_58",function(t){var o=this;return o.pattern_variables.$pop(),o.pattern_hash_keys.$pop(),o.context["$in_kwarg="](t["$[]"](2)),o.builder.$match_pattern(t["$[]"](0),t["$[]"](1),t["$[]"](3))}),t(y,"$_reduce_59",function(t,n,s){var o=this;return o.lexer["$state="]("expr_beg"),o.lexer["$command_start="](!1),o.pattern_variables.$push(),o.pattern_hash_keys.$push(),s=o.context.$in_kwarg(),o.context["$in_kwarg="](!0),s}),t(y,"$_reduce_60",function(t){var o=this;return o.pattern_variables.$pop(),o.pattern_hash_keys.$pop(),o.context["$in_kwarg="](t["$[]"](2)),o.builder.$match_pattern_p(t["$[]"](0),t["$[]"](1),t["$[]"](3))}),t(y,"$_reduce_63",function(t,n,s){var o=this;return o.lexer.$cond().$push(!0),s}),t(y,"$_reduce_64",function(t){var o=this;return o.lexer.$cond().$pop(),[t["$[]"](1),t["$[]"](2)]}),t(y,"$_reduce_65",function(t,s,o){var i=this;return i.$local_push(),i.current_arg_stack.$push(n),o=[t["$[]"](0),i.context.$dup()],i.context["$in_def="](!0),o}),t(y,"$_reduce_66",function(t){return[t["$[]"](0),t["$[]"](1)]}),t(y,"$_reduce_67",function(t,n,s){var o=this;return o.lexer["$state="]("expr_fname"),o.context["$in_argdef="](!0),s}),t(y,"$_reduce_68",function(t){return[t["$[]"](0),t["$[]"](1),t["$[]"](2),t["$[]"](4)]}),t(y,"$_reduce_72",function(t){var i=this;return i.builder.$call_method(t["$[]"](0),t["$[]"](1),t["$[]"](2),n,t["$[]"](3),n)}),t(y,"$_reduce_73",function(t,n,s){var o=this;return s=o.context.$dup(),o.context["$in_block="](!0),s}),t(y,"$_reduce_74",function(t){var i=this;return i.context["$in_block="](t["$[]"](1).$in_block()),[t["$[]"](0)].concat(o(t["$[]"](2))).concat([t["$[]"](3)])}),t(y,"$_reduce_76",function(t){var i=this;return i.builder.$call_method(n,n,t["$[]"](0),n,t["$[]"](1),n)}),t(y,"$_reduce_77",function(t){var c=this,l=n,d=n,u=n,h=n,m=n,l=c.builder.$call_method(n,n,t["$[]"](0),n,t["$[]"](1),n),r=t["$[]"](2),a=s(r);return d=a[0]==null?n:a[0],u=a[1]==null?n:a[1],h=a[2]==null?n:a[2],m=a[3]==null?n:a[3],r,c.builder.$block(l,d,u,h,m)}),t(y,"$_reduce_78",function(t){var i=this;return i.builder.$call_method(t["$[]"](0),t["$[]"](1),t["$[]"](2),n,t["$[]"](3),n)}),t(y,"$_reduce_79",function(t){var c=this,l=n,d=n,u=n,h=n,m=n,l=c.builder.$call_method(t["$[]"](0),t["$[]"](1),t["$[]"](2),n,t["$[]"](3),n),r=t["$[]"](4),a=s(r);return d=a[0]==null?n:a[0],u=a[1]==null?n:a[1],h=a[2]==null?n:a[2],m=a[3]==null?n:a[3],r,c.builder.$block(l,d,u,h,m)}),t(y,"$_reduce_80",function(t){var i=this;return i.builder.$call_method(t["$[]"](0),t["$[]"](1),t["$[]"](2),n,t["$[]"](3),n)}),t(y,"$_reduce_81",function(t){var c=this,l=n,d=n,u=n,h=n,m=n,l=c.builder.$call_method(t["$[]"](0),t["$[]"](1),t["$[]"](2),n,t["$[]"](3),n),r=t["$[]"](4),a=s(r);return d=a[0]==null?n:a[0],u=a[1]==null?n:a[1],h=a[2]==null?n:a[2],m=a[3]==null?n:a[3],r,c.builder.$block(l,d,u,h,m)}),t(y,"$_reduce_82",function(t){var i=this;return i.builder.$keyword_cmd("super",t["$[]"](0),n,t["$[]"](1),n)}),t(y,"$_reduce_83",function(t){var i=this;return i.builder.$keyword_cmd("yield",t["$[]"](0),n,t["$[]"](1),n)}),t(y,"$_reduce_84",function(t){var i=this;return i.builder.$keyword_cmd("return",t["$[]"](0),n,t["$[]"](1),n)}),t(y,"$_reduce_85",function(t){var i=this;return i.builder.$keyword_cmd("break",t["$[]"](0),n,t["$[]"](1),n)}),t(y,"$_reduce_86",function(t){var i=this;return i.builder.$keyword_cmd("next",t["$[]"](0),n,t["$[]"](1),n)}),t(y,"$_reduce_87",function(t){var i=this;return i.builder.$multi_lhs(n,t["$[]"](0),n)}),t(y,"$_reduce_88",function(t){var o=this;return o.builder.$begin(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_89",function(t){var i=this;return i.builder.$multi_lhs(n,t["$[]"](0),n)}),t(y,"$_reduce_90",function(t){var o=this;return o.builder.$multi_lhs(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_92",function(t){return t["$[]"](0).$push(t["$[]"](1))}),t(y,"$_reduce_93",function(t){var o=this;return t["$[]"](0).$push(o.builder.$splat(t["$[]"](1),t["$[]"](2)))}),t(y,"$_reduce_94",function(t){var o=this;return t["$[]"](0).$push(o.builder.$splat(t["$[]"](1),t["$[]"](2))).$concat(t["$[]"](4))}),t(y,"$_reduce_95",function(t){var o=this;return t["$[]"](0).$push(o.builder.$splat(t["$[]"](1)))}),t(y,"$_reduce_96",function(t){var o=this;return t["$[]"](0).$push(o.builder.$splat(t["$[]"](1))).$concat(t["$[]"](3))}),t(y,"$_reduce_97",function(t){var o=this;return[o.builder.$splat(t["$[]"](0),t["$[]"](1))]}),t(y,"$_reduce_98",function(t){var i=this;return[i.builder.$splat(t["$[]"](0),t["$[]"](1))].concat(o(t["$[]"](3)))}),t(y,"$_reduce_99",function(t){var o=this;return[o.builder.$splat(t["$[]"](0))]}),t(y,"$_reduce_100",function(t){var i=this;return[i.builder.$splat(t["$[]"](0))].concat(o(t["$[]"](2)))}),t(y,"$_reduce_102",function(t){var o=this;return o.builder.$begin(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_103",function(t){return[t["$[]"](0)]}),t(y,"$_reduce_104",function(t){return t["$[]"](0)["$<<"](t["$[]"](1))}),t(y,"$_reduce_105",function(t){return[t["$[]"](0)]}),t(y,"$_reduce_106",function(t){return t["$[]"](0)["$<<"](t["$[]"](2))}),t(y,"$_reduce_107",function(t){var o=this;return o.builder.$assignable(t["$[]"](0))}),t(y,"$_reduce_108",function(t){var o=this;return o.builder.$assignable(t["$[]"](0))}),t(y,"$_reduce_109",function(t){var o=this;return o.builder.$index_asgn(t["$[]"](0),t["$[]"](1),t["$[]"](2),t["$[]"](3))}),t(y,"$_reduce_110",function(t){var i=this;return u(t["$[]"](1)["$[]"](0),"anddot")&&i.$diagnostic("error","csend_in_lhs_of_masgn",n,t["$[]"](1)),i.builder.$attr_asgn(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_111",function(t){var o=this;return o.builder.$attr_asgn(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_112",function(t){var i=this;return u(t["$[]"](1)["$[]"](0),"anddot")&&i.$diagnostic("error","csend_in_lhs_of_masgn",n,t["$[]"](1)),i.builder.$attr_asgn(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_113",function(t){var o=this;return o.builder.$assignable(o.builder.$const_fetch(t["$[]"](0),t["$[]"](1),t["$[]"](2)))}),t(y,"$_reduce_114",function(t){var o=this;return o.builder.$assignable(o.builder.$const_global(t["$[]"](0),t["$[]"](1)))}),t(y,"$_reduce_115",function(t){var o=this;return o.builder.$assignable(t["$[]"](0))}),t(y,"$_reduce_116",function(t){var o=this;return o.builder.$assignable(t["$[]"](0))}),t(y,"$_reduce_117",function(t){var o=this;return o.builder.$assignable(t["$[]"](0))}),t(y,"$_reduce_118",function(t){var o=this;return o.builder.$index_asgn(t["$[]"](0),t["$[]"](1),t["$[]"](2),t["$[]"](3))}),t(y,"$_reduce_119",function(t){var o=this;return o.builder.$attr_asgn(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_120",function(t){var o=this;return o.builder.$attr_asgn(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_121",function(t){var o=this;return o.builder.$attr_asgn(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_122",function(t){var o=this;return o.builder.$assignable(o.builder.$const_fetch(t["$[]"](0),t["$[]"](1),t["$[]"](2)))}),t(y,"$_reduce_123",function(t){var o=this;return o.builder.$assignable(o.builder.$const_global(t["$[]"](0),t["$[]"](1)))}),t(y,"$_reduce_124",function(t){var o=this;return o.builder.$assignable(t["$[]"](0))}),t(y,"$_reduce_125",function(t,s,o){var i=this;return i.$diagnostic("error","module_name_const",n,t["$[]"](0)),o}),t(y,"$_reduce_127",function(t){var o=this;return o.builder.$const_global(t["$[]"](0),t["$[]"](1))}),t(y,"$_reduce_128",function(t){var o=this;return o.builder.$const(t["$[]"](0))}),t(y,"$_reduce_129",function(t){var o=this;return o.builder.$const_fetch(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_135",function(t){var o=this;return o.builder.$symbol_internal(t["$[]"](0))}),t(y,"$_reduce_137",function(t){return[t["$[]"](0)]}),t(y,"$_reduce_138",function(t,n,s){var o=this;return o.lexer["$state="]("expr_fname"),s}),t(y,"$_reduce_139",function(t){return t["$[]"](0)["$<<"](t["$[]"](3))}),t(y,"$_reduce_211",function(t){var o=this;return o.builder.$assign(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_212",function(t){var o=this;return o.builder.$op_assign(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_213",function(t){var o=this;return o.builder.$op_assign(o.builder.$index(t["$[]"](0),t["$[]"](1),t["$[]"](2),t["$[]"](3)),t["$[]"](4),t["$[]"](5))}),t(y,"$_reduce_214",function(t){var o=this;return o.builder.$op_assign(o.builder.$call_method(t["$[]"](0),t["$[]"](1),t["$[]"](2)),t["$[]"](3),t["$[]"](4))}),t(y,"$_reduce_215",function(t){var o=this;return o.builder.$op_assign(o.builder.$call_method(t["$[]"](0),t["$[]"](1),t["$[]"](2)),t["$[]"](3),t["$[]"](4))}),t(y,"$_reduce_216",function(t){var o=this;return o.builder.$op_assign(o.builder.$call_method(t["$[]"](0),t["$[]"](1),t["$[]"](2)),t["$[]"](3),t["$[]"](4))}),t(y,"$_reduce_217",function(t){var i=this,a=n,a=i.builder.$const_op_assignable(i.builder.$const_fetch(t["$[]"](0),t["$[]"](1),t["$[]"](2)));return i.builder.$op_assign(a,t["$[]"](3),t["$[]"](4))}),t(y,"$_reduce_218",function(t){var i=this,a=n,a=i.builder.$const_op_assignable(i.builder.$const_global(t["$[]"](0),t["$[]"](1)));return i.builder.$op_assign(a,t["$[]"](2),t["$[]"](3))}),t(y,"$_reduce_219",function(t){var o=this;return o.builder.$op_assign(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_220",function(t){var o=this;return o.builder.$range_inclusive(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_221",function(t){var o=this;return o.builder.$range_exclusive(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_222",function(t){var i=this;return i.builder.$range_inclusive(t["$[]"](0),t["$[]"](1),n)}),t(y,"$_reduce_223",function(t){var i=this;return i.builder.$range_exclusive(t["$[]"](0),t["$[]"](1),n)}),t(y,"$_reduce_224",function(t){var i=this;return i.builder.$range_inclusive(n,t["$[]"](0),t["$[]"](1))}),t(y,"$_reduce_225",function(t){var i=this;return i.builder.$range_exclusive(n,t["$[]"](0),t["$[]"](1))}),t(y,"$_reduce_226",function(t){var o=this;return o.builder.$binary_op(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_227",function(t){var o=this;return o.builder.$binary_op(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_228",function(t){var o=this;return o.builder.$binary_op(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_229",function(t){var o=this;return o.builder.$binary_op(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_230",function(t){var o=this;return o.builder.$binary_op(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_231",function(t){var o=this;return o.builder.$binary_op(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_232",function(t){var o=this;return o.builder.$unary_op(t["$[]"](0),o.builder.$binary_op(t["$[]"](1),t["$[]"](2),t["$[]"](3)))}),t(y,"$_reduce_233",function(t){var o=this;return o.builder.$unary_op(t["$[]"](0),t["$[]"](1))}),t(y,"$_reduce_234",function(t){var o=this;return o.builder.$unary_op(t["$[]"](0),t["$[]"](1))}),t(y,"$_reduce_235",function(t){var o=this;return o.builder.$binary_op(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_236",function(t){var o=this;return o.builder.$binary_op(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_237",function(t){var o=this;return o.builder.$binary_op(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_238",function(t){var o=this;return o.builder.$binary_op(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_240",function(t){var o=this;return o.builder.$binary_op(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_241",function(t){var o=this;return o.builder.$binary_op(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_242",function(t){var o=this;return o.builder.$binary_op(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_243",function(t){var o=this;return o.builder.$match_op(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_244",function(t){var o=this;return o.builder.$binary_op(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_245",function(t){var i=this;return i.builder.$not_op(t["$[]"](0),n,t["$[]"](1),n)}),t(y,"$_reduce_246",function(t){var o=this;return o.builder.$unary_op(t["$[]"](0),t["$[]"](1))}),t(y,"$_reduce_247",function(t){var o=this;return o.builder.$binary_op(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_248",function(t){var o=this;return o.builder.$binary_op(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_249",function(t){var o=this;return o.builder.$logical_op("and",t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_250",function(t){var o=this;return o.builder.$logical_op("or",t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_251",function(t,n,s){var o=this;return o.context["$in_defined="](!0),s}),t(y,"$_reduce_252",function(t){var i=this;return i.context["$in_defined="](!1),i.builder.$keyword_cmd("defined?",t["$[]"](0),n,[t["$[]"](3)],n)}),t(y,"$_reduce_253",function(t){var o=this;return o.builder.$ternary(t["$[]"](0),t["$[]"](1),t["$[]"](2),t["$[]"](4),t["$[]"](5))}),t(y,"$_reduce_254",function(t,o,i){var a,r=this,u=n,l=n,h=n,d=t["$[]"](0),c=s(d);return u=c[0]==null?n:c[0],(a=s(c[1]==null?n:c[1]),l=a[0]==null?n:a[0],h=a[1]==null?n:a[1]),d,r.$endless_method_name(l),i=r.builder.$def_endless_method(u,l,t["$[]"](1),t["$[]"](2),t["$[]"](3)),r.$local_pop(),r.current_arg_stack.$pop(),r.context["$in_def="](h.$in_def()),i}),t(y,"$_reduce_255",function(t,o,i){var r,a=this,u=n,l=n,h=n,m=n,f=n,d=t["$[]"](0),c=s(d);return u=c[0]==null?n:c[0],(r=s(c[1]==null?n:c[1]),l=r[0]==null?n:r[0],h=r[1]==null?n:r[1]),d,a.$endless_method_name(l),m=a.builder.$rescue_body(t["$[]"](4),n,n,n,n,t["$[]"](5)),f=a.builder.$begin_body(t["$[]"](3),[m]),i=a.builder.$def_endless_method(u,l,t["$[]"](1),t["$[]"](2),f),a.$local_pop(),a.current_arg_stack.$pop(),a.context["$in_def="](h.$in_def()),i}),t(y,"$_reduce_256",function(t,o,i){var r,c=this,u=n,h=n,m=n,l=n,f=n,d=t["$[]"](0),a=s(d);return u=a[0]==null?n:a[0],h=a[1]==null?n:a[1],m=a[2]==null?n:a[2],(r=s(a[3]==null?n:a[3]),l=r[0]==null?n:r[0],f=r[1]==null?n:r[1]),d,c.$endless_method_name(l),i=c.builder.$def_endless_singleton(u,h,m,l,t["$[]"](1),t["$[]"](2),t["$[]"](3)),c.$local_pop(),c.current_arg_stack.$pop(),c.context["$in_def="](f.$in_def()),i}),t(y,"$_reduce_257",function(t,o,i){var c,r=this,u=n,h=n,m=n,l=n,f=n,p=n,g=n,d=t["$[]"](0),a=s(d);return u=a[0]==null?n:a[0],h=a[1]==null?n:a[1],m=a[2]==null?n:a[2],(c=s(a[3]==null?n:a[3]),l=c[0]==null?n:c[0],f=c[1]==null?n:c[1]),d,r.$endless_method_name(l),p=r.builder.$rescue_body(t["$[]"](4),n,n,n,n,t["$[]"](5)),g=r.builder.$begin_body(t["$[]"](3),[p]),i=r.builder.$def_endless_singleton(u,h,m,l,t["$[]"](1),t["$[]"](2),g),r.$local_pop(),r.current_arg_stack.$pop(),r.context["$in_def="](f.$in_def()),i}),t(y,"$_reduce_263",function(t){var o=this;return o.builder.$binary_op(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_264",function(t){var o=this;return o.builder.$binary_op(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_268",function(t){var i=this;return t["$[]"](0)["$<<"](i.builder.$associate(n,t["$[]"](2),n))}),t(y,"$_reduce_269",function(t){var i=this;return[i.builder.$associate(n,t["$[]"](0),n)]}),t(y,"$_reduce_271",function(t){var i=this,a=n,a=i.builder.$rescue_body(t["$[]"](1),n,n,n,n,t["$[]"](2));return i.builder.$begin_body(t["$[]"](0),[a])}),t(y,"$_reduce_272",function(t){return t}),t(y,"$_reduce_273",function(t){var a=this;return i(a.static_env["$declared_forward_args?"]())||a.$diagnostic("error","unexpected_token",new Map([["token","tBDOT3"]]),t["$[]"](3)),[t["$[]"](0),[].concat(o(t["$[]"](1))).concat([a.builder.$forwarded_args(t["$[]"](3))]),t["$[]"](4)]}),t(y,"$_reduce_274",function(t){var o=this;return i(o.static_env["$declared_forward_args?"]())||o.$diagnostic("error","unexpected_token",new Map([["token","tBDOT3"]]),t["$[]"](1)),[t["$[]"](0),[o.builder.$forwarded_args(t["$[]"](1))],t["$[]"](2)]}),t(y,"$_reduce_275",function(){return[n,[],n]}),t(y,"$_reduce_277",function(){return[]}),t(y,"$_reduce_280",function(t){var i=this;return t["$[]"](0)["$<<"](i.builder.$associate(n,t["$[]"](2),n))}),t(y,"$_reduce_281",function(t){var i=this;return[i.builder.$associate(n,t["$[]"](0),n)]}),t(y,"$_reduce_282",function(t){return[t["$[]"](0)]}),t(y,"$_reduce_283",function(t){return t["$[]"](0).$concat(t["$[]"](1))}),t(y,"$_reduce_284",function(t,s,o){var i=this;return o=[i.builder.$associate(n,t["$[]"](0),n)],o.$concat(t["$[]"](1)),o}),t(y,"$_reduce_285",function(t,s,o){var a=this,i=n,i=a.builder.$associate(n,t["$[]"](2),n);return o=t["$[]"](0)["$<<"](i),o.$concat(t["$[]"](3)),o}),t(y,"$_reduce_286",function(t){return[t["$[]"](0)]}),t(y,"$_reduce_287",function(t,s,o){var a=this,r=n,c=n,l=n,d=n,r=a.last_token["$[]"](0),c=i(l=r["$=="]("tLBRACK"))?l:r["$=="]("tLPAREN_ARG");return i(c)?(d=a.lexer.$cmdarg().$pop(),a.lexer.$cmdarg().$push(!0),a.lexer.$cmdarg().$push(d)):a.lexer.$cmdarg().$push(!0),o}),t(y,"$_reduce_288",function(t){var a=this,r=n,c=n,l=n,r=a.last_token["$[]"](0),c=r["$=="]("tLBRACE_ARG");return i(c)?(l=a.lexer.$cmdarg().$pop(),a.lexer.$cmdarg().$pop(),a.lexer.$cmdarg().$push(l)):a.lexer.$cmdarg().$pop(),t["$[]"](1)}),t(y,"$_reduce_289",function(t){var o=this;return o.builder.$block_pass(t["$[]"](0),t["$[]"](1))}),t(y,"$_reduce_290",function(t){var i=this;return a(i.static_env["$declared_anonymous_blockarg?"]())&&i.$diagnostic("error","no_anonymous_blockarg",n,t["$[]"](0)),i.builder.$block_pass(t["$[]"](0),n)}),t(y,"$_reduce_291",function(t){return[t["$[]"](1)]}),t(y,"$_reduce_292",function(){return[]}),t(y,"$_reduce_293",function(t){return[t["$[]"](0)]}),t(y,"$_reduce_294",function(t){var o=this;return[o.builder.$splat(t["$[]"](0),t["$[]"](1))]}),t(y,"$_reduce_295",function(t){var i=this;return a(i.static_env["$declared_anonymous_restarg?"]())&&i.$diagnostic("error","no_anonymous_restarg",n,t["$[]"](0)),[i.builder.$forwarded_restarg(t["$[]"](0))]}),t(y,"$_reduce_296",function(t){return t["$[]"](0)["$<<"](t["$[]"](2))}),t(y,"$_reduce_297",function(t){var o=this;return t["$[]"](0)["$<<"](o.builder.$splat(t["$[]"](2),t["$[]"](3)))}),t(y,"$_reduce_298",function(t){var i=this;return a(i.static_env["$declared_anonymous_restarg?"]())&&i.$diagnostic("error","no_anonymous_restarg",n,t["$[]"](2)),t["$[]"](0)["$<<"](i.builder.$forwarded_restarg(t["$[]"](2)))}),t(y,"$_reduce_299",function(t){var i=this;return i.builder.$array(n,t["$[]"](0),n)}),t(y,"$_reduce_301",function(t){return t["$[]"](0)["$<<"](t["$[]"](2))}),t(y,"$_reduce_302",function(t){var o=this;return t["$[]"](0)["$<<"](o.builder.$splat(t["$[]"](2),t["$[]"](3)))}),t(y,"$_reduce_303",function(t){var o=this;return[o.builder.$splat(t["$[]"](0),t["$[]"](1))]}),t(y,"$_reduce_314",function(t){var i=this;return i.builder.$call_method(n,n,t["$[]"](0))}),t(y,"$_reduce_315",function(t,n,s){var o=this;return o.lexer.$cmdarg().$push(!1),s}),t(y,"$_reduce_316",function(t){var o=this;return o.lexer.$cmdarg().$pop(),o.builder.$begin_keyword(t["$[]"](0),t["$[]"](2),t["$[]"](3))}),t(y,"$_reduce_317",function(t,n,s){var o=this;return o.lexer["$state="]("expr_endarg"),s}),t(y,"$_reduce_318",function(t){var o=this;return o.builder.$begin(t["$[]"](0),t["$[]"](1),t["$[]"](3))}),t(y,"$_reduce_319",function(t,n,s){var o=this;return o.lexer["$state="]("expr_endarg"),s}),t(y,"$_reduce_320",function(t){var i=this;return i.builder.$begin(t["$[]"](0),n,t["$[]"](3))}),t(y,"$_reduce_321",function(t){var o=this;return o.builder.$begin(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_322",function(t){var o=this;return o.builder.$const_fetch(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_323",function(t){var o=this;return o.builder.$const_global(t["$[]"](0),t["$[]"](1))}),t(y,"$_reduce_324",function(t){var o=this;return o.builder.$array(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_325",function(t){var o=this;return o.builder.$associate(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_326",function(t){var o=this;return o.builder.$keyword_cmd("return",t["$[]"](0))}),t(y,"$_reduce_327",function(t){var o=this;return o.builder.$keyword_cmd("yield",t["$[]"](0),t["$[]"](1),t["$[]"](2),t["$[]"](3))}),t(y,"$_reduce_328",function(t){var o=this;return o.builder.$keyword_cmd("yield",t["$[]"](0),t["$[]"](1),[],t["$[]"](2))}),t(y,"$_reduce_329",function(t){var o=this;return o.builder.$keyword_cmd("yield",t["$[]"](0))}),t(y,"$_reduce_330",function(t,n,s){var o=this;return o.context["$in_defined="](!0),s}),t(y,"$_reduce_331",function(t){var o=this;return o.context["$in_defined="](!1),o.builder.$keyword_cmd("defined?",t["$[]"](0),t["$[]"](2),[t["$[]"](4)],t["$[]"](5))}),t(y,"$_reduce_332",function(t){var o=this;return o.builder.$not_op(t["$[]"](0),t["$[]"](1),t["$[]"](2),t["$[]"](3))}),t(y,"$_reduce_333",function(t){var i=this;return i.builder.$not_op(t["$[]"](0),t["$[]"](1),n,t["$[]"](2))}),t(y,"$_reduce_334",function(t){var c=this,l=n,d=n,u=n,h=n,m=n,l=c.builder.$call_method(n,n,t["$[]"](0)),r=t["$[]"](1),a=s(r);return d=a[0]==null?n:a[0],u=a[1]==null?n:a[1],h=a[2]==null?n:a[2],m=a[3]==null?n:a[3],r,c.builder.$block(l,d,u,h,m)}),t(y,"$_reduce_336",function(t){var h=this,c=n,l=n,d=n,u=n,r=t["$[]"](1),a=s(r);return c=a[0]==null?n:a[0],l=a[1]==null?n:a[1],d=a[2]==null?n:a[2],u=a[3]==null?n:a[3],r,h.builder.$block(t["$[]"](0),c,l,d,u)}),t(y,"$_reduce_338",function(t){var d=this,c=n,l=n,r=t["$[]"](4),a=s(r);return c=a[0]==null?n:a[0],l=a[1]==null?n:a[1],r,d.builder.$condition(t["$[]"](0),t["$[]"](1),t["$[]"](2),t["$[]"](3),c,l,t["$[]"](5))}),t(y,"$_reduce_339",function(t){var d=this,c=n,l=n,r=t["$[]"](4),a=s(r);return c=a[0]==null?n:a[0],l=a[1]==null?n:a[1],r,d.builder.$condition(t["$[]"](0),t["$[]"](1),t["$[]"](2),l,c,t["$[]"](3),t["$[]"](5))}),t(y,"$_reduce_340",function(t){var i=this;return r(i.builder,"loop",["while",t["$[]"](0)].concat(o(t["$[]"](1))).concat([t["$[]"](2),t["$[]"](3)]))}),t(y,"$_reduce_341",function(t){var i=this;return r(i.builder,"loop",["until",t["$[]"](0)].concat(o(t["$[]"](1))).concat([t["$[]"](2),t["$[]"](3)]))}),t(y,"$_reduce_342",function(t){var d,f=this,u=n,h=n,m=n,l=[].concat(o(t["$[]"](3))),r=l.length-1,r=r<0?0:r;return u=c(l,0,r),(d=s(l[r]==null?n:l[r]),h=d[0]==null?n:d[0],m=d[1]==null?n:d[1]),l,f.builder.$case(t["$[]"](0),t["$[]"](1),u,h,m,t["$[]"](4))}),t(y,"$_reduce_343",function(t){var d,f=this,u=n,h=n,m=n,l=[].concat(o(t["$[]"](2))),r=l.length-1,r=r<0?0:r;return u=c(l,0,r),(d=s(l[r]==null?n:l[r]),h=d[0]==null?n:d[0],m=d[1]==null?n:d[1]),l,f.builder.$case(t["$[]"](0),n,u,h,m,t["$[]"](3))}),t(y,"$_reduce_344",function(t){var d,f=this,u=n,h=n,m=n,l=[].concat(o(t["$[]"](3))),r=l.length-1,r=r<0?0:r;return u=c(l,0,r),(d=s(l[r]==null?n:l[r]),h=d[0]==null?n:d[0],m=d[1]==null?n:d[1]),l,f.builder.$case_match(t["$[]"](0),t["$[]"](1),u,h,m,t["$[]"](4))}),t(y,"$_reduce_345",function(t){var i=this;return r(i.builder,"for",[t["$[]"](0),t["$[]"](1),t["$[]"](2)].concat(o(t["$[]"](3))).concat([t["$[]"](4),t["$[]"](5)]))}),t(y,"$_reduce_346",function(t,n,s){var o=this;return o.context["$in_class="](!0),o.$local_push(),s}),t(y,"$_reduce_347",function(t,o,a){var l=this,d=n,u=n,h=n,m=n,c=t["$[]"](0),r=s(c);return d=r[0]==null?n:r[0],u=r[1]==null?n:r[1],c,i(l.context.$in_def())&&l.$diagnostic("error","class_in_def",n,d),c=t["$[]"](2),r=s(c),h=r[0]==null?n:r[0],m=r[1]==null?n:r[1],c,a=l.builder.$def_class(d,t["$[]"](1),h,m,t["$[]"](4),t["$[]"](5)),l.$local_pop(),l.context["$in_class="](u.$in_class()),a}),t(y,"$_reduce_348",function(t,n,s){var o=this;return o.context["$in_def="](!1),o.context["$in_class="](!1),o.$local_push(),s}),t(y,"$_reduce_349",function(t,o,i){var r=this,d=n,c=n,l=t["$[]"](0),a=s(l);return d=a[0]==null?n:a[0],c=a[1]==null?n:a[1],l,i=r.builder.$def_sclass(d,t["$[]"](1),t["$[]"](2),t["$[]"](5),t["$[]"](6)),r.$local_pop(),r.context["$in_def="](c.$in_def()),r.context["$in_class="](c.$in_class()),i}),t(y,"$_reduce_350",function(t,n,s){var o=this;return o.context["$in_class="](!0),o.$local_push(),s}),t(y,"$_reduce_351",function(t,o,a){var r=this,l=n,u=n,d=t["$[]"](0),c=s(d);return l=c[0]==null?n:c[0],u=c[1]==null?n:c[1],d,i(r.context.$in_def())&&r.$diagnostic("error","module_in_def",n,l),a=r.builder.$def_module(l,t["$[]"](1),t["$[]"](3),t["$[]"](4)),r.$local_pop(),r.context["$in_class="](u.$in_class()),a}),t(y,"$_reduce_352",function(t,o,i){var a,c=this,d=n,u=n,h=n,l=t["$[]"](0),r=s(l);return d=r[0]==null?n:r[0],(a=s(r[1]==null?n:r[1]),u=a[0]==null?n:a[0],h=a[1]==null?n:a[1]),l,i=c.builder.$def_method(d,u,t["$[]"](1),t["$[]"](2),t["$[]"](3)),c.$local_pop(),c.current_arg_stack.$pop(),c.context["$in_def="](h.$in_def()),i}),t(y,"$_reduce_353",function(t,o,i){var r,c=this,d=n,u=n,h=n,m=n,f=n,l=t["$[]"](0),a=s(l);return d=a[0]==null?n:a[0],u=a[1]==null?n:a[1],h=a[2]==null?n:a[2],(r=s(a[3]==null?n:a[3]),m=r[0]==null?n:r[0],f=r[1]==null?n:r[1]),l,i=c.builder.$def_singleton(d,u,h,m,t["$[]"](1),t["$[]"](2),t["$[]"](3)),c.$local_pop(),c.current_arg_stack.$pop(),c.context["$in_def="](f.$in_def()),i}),t(y,"$_reduce_354",function(t){var o=this;return o.builder.$keyword_cmd("break",t["$[]"](0))}),t(y,"$_reduce_355",function(t){var o=this;return o.builder.$keyword_cmd("next",t["$[]"](0))}),t(y,"$_reduce_356",function(t){var o=this;return o.builder.$keyword_cmd("redo",t["$[]"](0))}),t(y,"$_reduce_357",function(t){var o=this;return o.builder.$keyword_cmd("retry",t["$[]"](0))}),t(y,"$_reduce_359",function(t){var o=this;return[t["$[]"](0),o.context.$dup()]}),t(y,"$_reduce_360",function(t){var o=this;return[t["$[]"](0),o.context.$dup()]}),t(y,"$_reduce_361",function(t,n,s){var o=this;return s=t["$[]"](0),o.context["$in_argdef="](!0),s}),t(y,"$_reduce_362",function(t,s,o){var r=this,c=n;return i(r.context.$in_class())&&a(r.context.$in_def())&&a(i(c=r.$context().$in_block())?c:r.$context().$in_lambda())&&r.$diagnostic("error","invalid_return",n,t["$[]"](0)),o}),t(y,"$_reduce_365",function(t){return t["$[]"](1)}),t(y,"$_reduce_369",function(t){var d=this,c=n,l=n,r=t["$[]"](4),a=s(r);return c=a[0]==null?n:a[0],l=a[1]==null?n:a[1],r,[t["$[]"](0),d.builder.$condition(t["$[]"](0),t["$[]"](1),t["$[]"](2),t["$[]"](3),c,l,n)]}),t(y,"$_reduce_371",function(t){return t}),t(y,"$_reduce_374",function(t){var o=this;return o.builder.$arg(t["$[]"](0))}),t(y,"$_reduce_375",function(t){var o=this;return o.builder.$multi_lhs(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_376",function(t){return[t["$[]"](0)]}),t(y,"$_reduce_377",function(t){return t["$[]"](0)["$<<"](t["$[]"](2))}),t(y,"$_reduce_379",function(t){return t["$[]"](0).$push(t["$[]"](2))}),t(y,"$_reduce_380",function(t){return t["$[]"](0).$push(t["$[]"](2)).$concat(t["$[]"](4))}),t(y,"$_reduce_381",function(t){return[t["$[]"](0)]}),t(y,"$_reduce_382",function(t){return[t["$[]"](0)].concat(o(t["$[]"](2)))}),t(y,"$_reduce_383",function(t){var o=this;return o.builder.$restarg(t["$[]"](0),t["$[]"](1))}),t(y,"$_reduce_384",function(t){var o=this;return o.builder.$restarg(t["$[]"](0))}),t(y,"$_reduce_387",function(t,n,s){var o=this;return o.context["$in_argdef="](!1),s}),t(y,"$_reduce_388",function(t){return t["$[]"](1)}),t(y,"$_reduce_389",function(t){return t["$[]"](0).$concat(t["$[]"](2)).$concat(t["$[]"](3))}),t(y,"$_reduce_390",function(t){return t["$[]"](0).$concat(t["$[]"](1))}),t(y,"$_reduce_391",function(t){return t["$[]"](0).$concat(t["$[]"](1))}),t(y,"$_reduce_392",function(t){return[t["$[]"](0)]}),t(y,"$_reduce_393",function(t){return t["$[]"](1)}),t(y,"$_reduce_394",function(){return[]}),t(y,"$_reduce_396",function(t){return t["$[]"](0).$concat(t["$[]"](2)).$concat(t["$[]"](4)).$concat(t["$[]"](5))}),t(y,"$_reduce_397",function(t){return t["$[]"](0).$concat(t["$[]"](2)).$concat(t["$[]"](4)).$concat(t["$[]"](6)).$concat(t["$[]"](7))}),t(y,"$_reduce_398",function(t){return t["$[]"](0).$concat(t["$[]"](2)).$concat(t["$[]"](3))}),t(y,"$_reduce_399",function(t){return t["$[]"](0).$concat(t["$[]"](2)).$concat(t["$[]"](4)).$concat(t["$[]"](5))}),t(y,"$_reduce_400",function(t){return t["$[]"](0).$concat(t["$[]"](2)).$concat(t["$[]"](3))}),t(y,"$_reduce_402",function(t){return t["$[]"](0).$concat(t["$[]"](2)).$concat(t["$[]"](4)).$concat(t["$[]"](5))}),t(y,"$_reduce_403",function(t,n,s){var o=this;return i(t["$[]"](1)["$empty?"]())&&u(t["$[]"](0).$size(),1)?s=[o.builder.$procarg0(t["$[]"](0)["$[]"](0))]:s=t["$[]"](0).$concat(t["$[]"](1)),s}),t(y,"$_reduce_404",function(t){return t["$[]"](0).$concat(t["$[]"](2)).$concat(t["$[]"](3))}),t(y,"$_reduce_405",function(t){return t["$[]"](0).$concat(t["$[]"](2)).$concat(t["$[]"](4)).$concat(t["$[]"](5))}),t(y,"$_reduce_406",function(t){return t["$[]"](0).$concat(t["$[]"](1))}),t(y,"$_reduce_407",function(t){return t["$[]"](0).$concat(t["$[]"](2)).$concat(t["$[]"](3))}),t(y,"$_reduce_408",function(t){return t["$[]"](0).$concat(t["$[]"](1))}),t(y,"$_reduce_409",function(t){return t["$[]"](0).$concat(t["$[]"](2)).$concat(t["$[]"](3))}),t(y,"$_reduce_411",function(){var i=this;return i.builder.$args(n,[],n)}),t(y,"$_reduce_412",function(t,n,s){var o=this;return o.lexer["$state="]("expr_value"),s}),t(y,"$_reduce_413",function(t){var i=this;return i.max_numparam_stack["$has_ordinary_params!"](),i.current_arg_stack.$set(n),i.context["$in_argdef="](!1),i.builder.$args(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_414",function(t){var i=this;return i.max_numparam_stack["$has_ordinary_params!"](),i.current_arg_stack.$set(n),i.context["$in_argdef="](!1),i.builder.$args(t["$[]"](0),t["$[]"](1).$concat(t["$[]"](2)),t["$[]"](3))}),t(y,"$_reduce_415",function(){return[]}),t(y,"$_reduce_416",function(t){return t["$[]"](2)}),t(y,"$_reduce_417",function(t){return[t["$[]"](0)]}),t(y,"$_reduce_418",function(t){return t["$[]"](0)["$<<"](t["$[]"](2))}),t(y,"$_reduce_419",function(t){var o=this;return o.static_env.$declare(t["$[]"](0)["$[]"](0)),o.builder.$shadowarg(t["$[]"](0))}),t(y,"$_reduce_421",function(t,n,s){var o=this;return o.static_env.$extend_dynamic(),o.max_numparam_stack.$push(new Map([["static",!1]])),s=o.context.$dup(),o.context["$in_lambda="](!0),s}),t(y,"$_reduce_422",function(t,n,s){var o=this;return o.lexer.$cmdarg().$push(!1),s}),t(y,"$_reduce_423",function(t){var r=this,d=n,u=n,h=n,m=n,f=n,d=r.builder.$call_lambda(t["$[]"](0)),u=i(r.max_numparam_stack["$has_numparams?"]())?r.builder.$numargs(r.max_numparam_stack.$top()):t["$[]"](2),l=t["$[]"](4),c=s(l);return h=c[0]==null?n:c[0],m=c[1]==null?n:c[1],f=c[2]==null?n:c[2],l,r.max_numparam_stack.$pop(),r.static_env.$unextend(),r.lexer.$cmdarg().$pop(),r.context["$in_lambda="](t["$[]"](1).$in_lambda()),r.builder.$block(d,h,u,m,f)}),t(y,"$_reduce_424",function(t){var o=this;return o.context["$in_argdef="](!1),o.max_numparam_stack["$has_ordinary_params!"](),o.builder.$args(t["$[]"](0),t["$[]"](1).$concat(t["$[]"](2)),t["$[]"](3))}),t(y,"$_reduce_425",function(t){var a=this;return a.context["$in_argdef="](!1),i(t["$[]"](0)["$any?"]())&&a.max_numparam_stack["$has_ordinary_params!"](),a.builder.$args(n,t["$[]"](0),n)}),t(y,"$_reduce_426",function(t,n,s){var o=this;return s=o.context.$dup(),o.context["$in_lambda="](!0),s}),t(y,"$_reduce_427",function(t){var o=this;return o.context["$in_lambda="](t["$[]"](1).$in_lambda()),[t["$[]"](0),t["$[]"](2),t["$[]"](3)]}),t(y,"$_reduce_428",function(t,n,s){var o=this;return s=o.context.$dup(),o.context["$in_lambda="](!0),s}),t(y,"$_reduce_429",function(t){var o=this;return o.context["$in_lambda="](t["$[]"](1).$in_lambda()),[t["$[]"](0),t["$[]"](2),t["$[]"](3)]}),t(y,"$_reduce_430",function(t,n,s){var o=this;return s=o.context.$dup(),o.context["$in_block="](!0),s}),t(y,"$_reduce_431",function(t){var i=this;return i.context["$in_block="](t["$[]"](1).$in_block()),[t["$[]"](0)].concat(o(t["$[]"](2))).concat([t["$[]"](3)])}),t(y,"$_reduce_432",function(t){var h=this,c=n,l=n,d=n,u=n,r=t["$[]"](1),a=s(r);return c=a[0]==null?n:a[0],l=a[1]==null?n:a[1],d=a[2]==null?n:a[2],u=a[3]==null?n:a[3],r,h.builder.$block(t["$[]"](0),c,l,d,u)}),t(y,"$_reduce_433",function(t){var u=this,c=n,l=n,d=n,r=t["$[]"](3),a=s(r);return c=a[0]==null?n:a[0],l=a[1]==null?n:a[1],d=a[2]==null?n:a[2],r,u.builder.$call_method(t["$[]"](0),t["$[]"](1),t["$[]"](2),c,l,d)}),t(y,"$_reduce_434",function(t){var l=this,d=n,c=n,u=n,h=n,m=n,f=n,p=n,r=t["$[]"](3),a=s(r);return d=a[0]==null?n:a[0],c=a[1]==null?n:a[1],u=a[2]==null?n:a[2],r,h=l.builder.$call_method(t["$[]"](0),t["$[]"](1),t["$[]"](2),d,c,u),r=t["$[]"](4),a=s(r),m=a[0]==null?n:a[0],c=a[1]==null?n:a[1],f=a[2]==null?n:a[2],p=a[3]==null?n:a[3],r,l.builder.$block(h,m,c,f,p)}),t(y,"$_reduce_435",function(t){var c=this,l=n,d=n,u=n,h=n,m=n,l=c.builder.$call_method(t["$[]"](0),t["$[]"](1),t["$[]"](2),n,t["$[]"](3),n),r=t["$[]"](4),a=s(r);return d=a[0]==null?n:a[0],u=a[1]==null?n:a[1],h=a[2]==null?n:a[2],m=a[3]==null?n:a[3],r,c.builder.$block(l,d,u,h,m)}),t(y,"$_reduce_436",function(t){var u=this,c=n,l=n,d=n,r=t["$[]"](1),a=s(r);return c=a[0]==null?n:a[0],l=a[1]==null?n:a[1],d=a[2]==null?n:a[2],r,u.builder.$call_method(n,n,t["$[]"](0),c,l,d)}),t(y,"$_reduce_437",function(t){var u=this,c=n,l=n,d=n,r=t["$[]"](3),a=s(r);return c=a[0]==null?n:a[0],l=a[1]==null?n:a[1],d=a[2]==null?n:a[2],r,u.builder.$call_method(t["$[]"](0),t["$[]"](1),t["$[]"](2),c,l,d)}),t(y,"$_reduce_438",function(t){var u=this,c=n,l=n,d=n,r=t["$[]"](3),a=s(r);return c=a[0]==null?n:a[0],l=a[1]==null?n:a[1],d=a[2]==null?n:a[2],r,u.builder.$call_method(t["$[]"](0),t["$[]"](1),t["$[]"](2),c,l,d)}),t(y,"$_reduce_439",function(t){var o=this;return o.builder.$call_method(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_440",function(t){var u=this,c=n,l=n,d=n,r=t["$[]"](2),a=s(r);return c=a[0]==null?n:a[0],l=a[1]==null?n:a[1],d=a[2]==null?n:a[2],r,u.builder.$call_method(t["$[]"](0),t["$[]"](1),n,c,l,d)}),t(y,"$_reduce_441",function(t){var u=this,c=n,l=n,d=n,r=t["$[]"](2),a=s(r);return c=a[0]==null?n:a[0],l=a[1]==null?n:a[1],d=a[2]==null?n:a[2],r,u.builder.$call_method(t["$[]"](0),t["$[]"](1),n,c,l,d)}),t(y,"$_reduce_442",function(t){var u=this,c=n,l=n,d=n,r=t["$[]"](1),a=s(r);return c=a[0]==null?n:a[0],l=a[1]==null?n:a[1],d=a[2]==null?n:a[2],r,u.builder.$keyword_cmd("super",t["$[]"](0),c,l,d)}),t(y,"$_reduce_443",function(t){var o=this;return o.builder.$keyword_cmd("zsuper",t["$[]"](0))}),t(y,"$_reduce_444",function(t){var o=this;return o.builder.$index(t["$[]"](0),t["$[]"](1),t["$[]"](2),t["$[]"](3))}),t(y,"$_reduce_445",function(t,n,s){var o=this;return s=o.context.$dup(),o.context["$in_block="](!0),s}),t(y,"$_reduce_446",function(t){var i=this;return i.context["$in_block="](t["$[]"](1).$in_block()),[t["$[]"](0)].concat(o(t["$[]"](2))).concat([t["$[]"](3)])}),t(y,"$_reduce_447",function(t,n,s){var o=this;return s=o.context.$dup(),o.context["$in_block="](!0),s}),t(y,"$_reduce_448",function(t){var i=this;return i.context["$in_block="](t["$[]"](1).$in_block()),[t["$[]"](0)].concat(o(t["$[]"](2))).concat([t["$[]"](3)])}),t(y,"$_reduce_449",function(t,n,s){var o=this;return o.static_env.$extend_dynamic(),o.max_numparam_stack.$push(new Map([["static",!1]])),s}),t(y,"$_reduce_450",function(t,s,o){var a=this,r=n,r=i(a.max_numparam_stack["$has_numparams?"]())?a.builder.$numargs(a.max_numparam_stack.$top()):t["$[]"](1);return o=[r,t["$[]"](2)],a.max_numparam_stack.$pop(),a.static_env.$unextend(),o}),t(y,"$_reduce_451",function(t,n,s){var o=this;return o.static_env.$extend_dynamic(),o.max_numparam_stack.$push(new Map([["static",!1]])),s}),t(y,"$_reduce_452",function(t,n,s){var o=this;return o.lexer.$cmdarg().$push(!1),s}),t(y,"$_reduce_453",function(t,s,o){var a=this,r=n,r=i(a.max_numparam_stack["$has_numparams?"]())?a.builder.$numargs(a.max_numparam_stack.$top()):t["$[]"](2);return o=[r,t["$[]"](3)],a.max_numparam_stack.$pop(),a.static_env.$unextend(),a.lexer.$cmdarg().$pop(),o}),t(y,"$_reduce_454",function(t){var i=this;return[i.builder.$when(t["$[]"](0),t["$[]"](1),t["$[]"](2),t["$[]"](3))].concat(o(t["$[]"](4)))}),t(y,"$_reduce_455",function(t){return[t["$[]"](0)]}),t(y,"$_reduce_457",function(t,n,s){var o=this;return o.lexer["$state="]("expr_beg"),o.lexer["$command_start="](!1),o.pattern_variables.$push(),o.pattern_hash_keys.$push(),s=o.context.$in_kwarg(),o.context["$in_kwarg="](!0),s}),t(y,"$_reduce_458",function(t,n,s){var o=this;return o.pattern_variables.$pop(),o.pattern_hash_keys.$pop(),o.context["$in_kwarg="](t["$[]"](1)),s}),t(y,"$_reduce_459",function(t){var i=this;return[r(i.builder,"in_pattern",[t["$[]"](0)].concat(o(t["$[]"](2))).concat([t["$[]"](3),t["$[]"](5)]))].concat(o(t["$[]"](6)))}),t(y,"$_reduce_460",function(t){return[t["$[]"](0)]}),t(y,"$_reduce_462",function(t){return[t["$[]"](0),n]}),t(y,"$_reduce_463",function(t){var o=this;return[t["$[]"](0),o.builder.$if_guard(t["$[]"](1),t["$[]"](2))]}),t(y,"$_reduce_464",function(t){var o=this;return[t["$[]"](0),o.builder.$unless_guard(t["$[]"](1),t["$[]"](2))]}),t(y,"$_reduce_466",function(t){var i=this,a=n,a=i.builder.$match_with_trailing_comma(t["$[]"](0),t["$[]"](1));return i.builder.$array_pattern(n,[a],n)}),t(y,"$_reduce_467",function(t){var i=this;return i.builder.$array_pattern(n,[t["$[]"](0)].$concat(t["$[]"](2)),n)}),t(y,"$_reduce_468",function(t){var i=this;return i.builder.$find_pattern(n,t["$[]"](0),n)}),t(y,"$_reduce_469",function(t){var i=this;return i.builder.$array_pattern(n,t["$[]"](0),n)}),t(y,"$_reduce_470",function(t){var i=this;return i.builder.$hash_pattern(n,t["$[]"](0),n)}),t(y,"$_reduce_472",function(t){var o=this;return o.builder.$match_as(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_474",function(t){var o=this;return o.builder.$match_alt(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_476",function(t,n,s){var o=this;return s=t["$[]"](0),o.pattern_hash_keys.$push(),s}),t(y,"$_reduce_477",function(t,n,s){var o=this;return s=t["$[]"](0),o.pattern_hash_keys.$push(),s}),t(y,"$_reduce_480",function(t){var i=this,a=n;return i.pattern_hash_keys.$pop(),a=i.builder.$array_pattern(n,t["$[]"](2),n),i.builder.$const_pattern(t["$[]"](0),t["$[]"](1),a,t["$[]"](3))}),t(y,"$_reduce_481",function(t){var i=this,a=n;return i.pattern_hash_keys.$pop(),a=i.builder.$find_pattern(n,t["$[]"](2),n),i.builder.$const_pattern(t["$[]"](0),t["$[]"](1),a,t["$[]"](3))}),t(y,"$_reduce_482",function(t){var i=this,a=n;return i.pattern_hash_keys.$pop(),a=i.builder.$hash_pattern(n,t["$[]"](2),n),i.builder.$const_pattern(t["$[]"](0),t["$[]"](1),a,t["$[]"](3))}),t(y,"$_reduce_483",function(t){var i=this,a=n,a=i.builder.$array_pattern(t["$[]"](1),n,t["$[]"](2));return i.builder.$const_pattern(t["$[]"](0),t["$[]"](1),a,t["$[]"](2))}),t(y,"$_reduce_484",function(t){var i=this,a=n;return i.pattern_hash_keys.$pop(),a=i.builder.$array_pattern(n,t["$[]"](2),n),i.builder.$const_pattern(t["$[]"](0),t["$[]"](1),a,t["$[]"](3))}),t(y,"$_reduce_485",function(t){var i=this,a=n;return i.pattern_hash_keys.$pop(),a=i.builder.$find_pattern(n,t["$[]"](2),n),i.builder.$const_pattern(t["$[]"](0),t["$[]"](1),a,t["$[]"](3))}),t(y,"$_reduce_486",function(t){var i=this,a=n;return i.pattern_hash_keys.$pop(),a=i.builder.$hash_pattern(n,t["$[]"](2),n),i.builder.$const_pattern(t["$[]"](0),t["$[]"](1),a,t["$[]"](3))}),t(y,"$_reduce_487",function(t){var i=this,a=n,a=i.builder.$array_pattern(t["$[]"](1),n,t["$[]"](2));return i.builder.$const_pattern(t["$[]"](0),t["$[]"](1),a,t["$[]"](2))}),t(y,"$_reduce_488",function(t){var o=this;return o.builder.$array_pattern(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_489",function(t){var o=this;return o.builder.$find_pattern(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_490",function(t){var o=this;return o.builder.$array_pattern(t["$[]"](0),[],t["$[]"](1))}),t(y,"$_reduce_491",function(t,n,s){var o=this;return o.pattern_hash_keys.$push(),s=o.context.$in_kwarg(),o.context["$in_kwarg="](!1),s}),t(y,"$_reduce_492",function(t){var o=this;return o.pattern_hash_keys.$pop(),o.context["$in_kwarg="](t["$[]"](1)),o.builder.$hash_pattern(t["$[]"](0),t["$[]"](2),t["$[]"](3))}),t(y,"$_reduce_493",function(t){var o=this;return o.builder.$hash_pattern(t["$[]"](0),[],t["$[]"](1))}),t(y,"$_reduce_494",function(t,n,s){var o=this;return o.pattern_hash_keys.$push(),s}),t(y,"$_reduce_495",function(t){var o=this;return o.pattern_hash_keys.$pop(),o.builder.$begin(t["$[]"](0),t["$[]"](2),t["$[]"](3))}),t(y,"$_reduce_496",function(t){return[t["$[]"](0)]}),t(y,"$_reduce_497",function(t){return t["$[]"](0)}),t(y,"$_reduce_498",function(t){return[].concat(o(t["$[]"](0))).concat([t["$[]"](1)])}),t(y,"$_reduce_499",function(t){return[].concat(o(t["$[]"](0))).concat([t["$[]"](1)])}),t(y,"$_reduce_500",function(t){return[].concat(o(t["$[]"](0))).concat([t["$[]"](1)]).concat(o(t["$[]"](3)))}),t(y,"$_reduce_502",function(t){var a=this,i=n,i=a.builder.$match_with_trailing_comma(t["$[]"](0),t["$[]"](1));return[i]}),t(y,"$_reduce_503",function(t){var r=this,a=n,a=r.builder.$match_with_trailing_comma(t["$[]"](1),t["$[]"](2));return[].concat(o(t["$[]"](0))).concat([a])}),t(y,"$_reduce_504",function(t){return[t["$[]"](0)]}),t(y,"$_reduce_505",function(t){return[t["$[]"](0)].concat(o(t["$[]"](2)))}),t(y,"$_reduce_506",function(t){return[t["$[]"](0)].concat(o(t["$[]"](2))).concat([t["$[]"](4)])}),t(y,"$_reduce_507",function(t){var o=this;return o.builder.$match_rest(t["$[]"](0),t["$[]"](1))}),t(y,"$_reduce_508",function(t){var o=this;return o.builder.$match_rest(t["$[]"](0))}),t(y,"$_reduce_509",function(t){return[t["$[]"](0)]}),t(y,"$_reduce_510",function(t){return[].concat(o(t["$[]"](0))).concat([t["$[]"](2)])}),t(y,"$_reduce_512",function(t){return[].concat(o(t["$[]"](0))).concat(o(t["$[]"](2)))}),t(y,"$_reduce_513",function(t){return t["$[]"](0)}),t(y,"$_reduce_514",function(t){return t["$[]"](0)}),t(y,"$_reduce_515",function(t){return t["$[]"](0)}),t(y,"$_reduce_516",function(t){return[t["$[]"](0)]}),t(y,"$_reduce_517",function(t){return[].concat(o(t["$[]"](0))).concat([t["$[]"](2)])}),t(y,"$_reduce_518",function(t){var i=this;return r(i.builder,"match_pair",o(t["$[]"](0)).concat([t["$[]"](1)]))}),t(y,"$_reduce_519",function(t){var i=this;return r(i.builder,"match_label",o(t["$[]"](0)))}),t(y,"$_reduce_520",function(t){return["label",t["$[]"](0)]}),t(y,"$_reduce_521",function(t){return["quoted",[t["$[]"](0),t["$[]"](1),t["$[]"](2)]]}),t(y,"$_reduce_522",function(t){var o=this;return[o.builder.$match_rest(t["$[]"](0),t["$[]"](1))]}),t(y,"$_reduce_523",function(t){var i=this;return[i.builder.$match_rest(t["$[]"](0),n)]}),t(y,"$_reduce_524",function(t){return t}),t(y,"$_reduce_526",function(t){var o=this;return[o.builder.$match_nil_pattern(t["$[]"](0)["$[]"](0),t["$[]"](0)["$[]"](1))]}),t(y,"$_reduce_528",function(t){var o=this;return o.builder.$range_inclusive(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_529",function(t){var o=this;return o.builder.$range_exclusive(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_530",function(t){var i=this;return i.builder.$range_inclusive(t["$[]"](0),t["$[]"](1),n)}),t(y,"$_reduce_531",function(t){var i=this;return i.builder.$range_exclusive(t["$[]"](0),t["$[]"](1),n)}),t(y,"$_reduce_535",function(t){var i=this;return i.builder.$range_inclusive(n,t["$[]"](0),t["$[]"](1))}),t(y,"$_reduce_536",function(t){var i=this;return i.builder.$range_exclusive(n,t["$[]"](0),t["$[]"](1))}),t(y,"$_reduce_545",function(t){var o=this;return o.builder.$accessible(t["$[]"](0))}),t(y,"$_reduce_547",function(t){var o=this;return o.builder.$assignable(o.builder.$match_var(t["$[]"](0)))}),t(y,"$_reduce_548",function(t){var a=this,r=n,c=n,r=t["$[]"](1)["$[]"](0),c=a.builder.$accessible(a.builder.$ident(t["$[]"](1)));return i(a.$static_env()["$declared?"](r))||a.$diagnostic("error","undefined_lvar",new Map([["name",r]]),t["$[]"](1)),a.builder.$pin(t["$[]"](0),c)}),t(y,"$_reduce_549",function(t){var i=this,a=n,a=i.builder.$accessible(t["$[]"](1));return i.builder.$pin(t["$[]"](0),a)}),t(y,"$_reduce_550",function(t){var i=this,a=n,a=i.builder.$begin(t["$[]"](1),t["$[]"](2),t["$[]"](3));return i.builder.$pin(t["$[]"](0),a)}),t(y,"$_reduce_551",function(t){var o=this;return o.builder.$const_global(t["$[]"](0),t["$[]"](1))}),t(y,"$_reduce_552",function(t){var o=this;return o.builder.$const_fetch(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_553",function(t){var o=this;return o.builder.$const(t["$[]"](0))}),t(y,"$_reduce_554",function(t){var d=this,u=n,h=n,m=n,l=t["$[]"](2),c=s(l);return u=c[0]==null?n:c[0],h=c[1]==null?n:c[1],l,i(t["$[]"](1))&&(m=d.builder.$array(n,t["$[]"](1),n)),[d.builder.$rescue_body(t["$[]"](0),m,u,h,t["$[]"](3),t["$[]"](4))].concat(o(t["$[]"](5)))}),t(y,"$_reduce_555",function(){return[]}),t(y,"$_reduce_556",function(t){return[t["$[]"](0)]}),t(y,"$_reduce_559",function(t){return[t["$[]"](0),t["$[]"](1)]}),t(y,"$_reduce_561",function(t){return[t["$[]"](0),t["$[]"](1)]}),t(y,"$_reduce_565",function(t){var i=this;return i.builder.$string_compose(n,t["$[]"](0),n)}),t(y,"$_reduce_566",function(t){return[t["$[]"](0)]}),t(y,"$_reduce_567",function(t){return t["$[]"](0)["$<<"](t["$[]"](1))}),t(y,"$_reduce_568",function(t){var i=this,a=n,a=i.builder.$string_compose(t["$[]"](0),t["$[]"](1),t["$[]"](2));return i.builder.$dedent_string(a,i.lexer.$dedent_level())}),t(y,"$_reduce_569",function(t){var i=this,a=n,a=i.builder.$string(t["$[]"](0));return i.builder.$dedent_string(a,i.lexer.$dedent_level())}),t(y,"$_reduce_570",function(t){var o=this;return o.builder.$character(t["$[]"](0))}),t(y,"$_reduce_571",function(t){var i=this,a=n,a=i.builder.$xstring_compose(t["$[]"](0),t["$[]"](1),t["$[]"](2));return i.builder.$dedent_string(a,i.lexer.$dedent_level())}),t(y,"$_reduce_572",function(t){var i=this,a=n,a=i.builder.$regexp_options(t["$[]"](3));return i.builder.$regexp_compose(t["$[]"](0),t["$[]"](1),t["$[]"](2),a)}),t(y,"$_reduce_573",function(t){var o=this;return o.builder.$words_compose(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_574",function(){return[]}),t(y,"$_reduce_575",function(t){var o=this;return t["$[]"](0)["$<<"](o.builder.$word(t["$[]"](1)))}),t(y,"$_reduce_576",function(t){return[t["$[]"](0)]}),t(y,"$_reduce_577",function(t){return t["$[]"](0)["$<<"](t["$[]"](1))}),t(y,"$_reduce_578",function(t){var o=this;return o.builder.$symbols_compose(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_579",function(){return[]}),t(y,"$_reduce_580",function(t){var o=this;return t["$[]"](0)["$<<"](o.builder.$word(t["$[]"](1)))}),t(y,"$_reduce_581",function(t){var o=this;return o.builder.$words_compose(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_582",function(t){var o=this;return o.builder.$symbols_compose(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_583",function(){return[]}),t(y,"$_reduce_584",function(t){var o=this;return t["$[]"](0)["$<<"](o.builder.$string_internal(t["$[]"](1)))}),t(y,"$_reduce_585",function(){return[]}),t(y,"$_reduce_586",function(t){var o=this;return t["$[]"](0)["$<<"](o.builder.$symbol_internal(t["$[]"](1)))}),t(y,"$_reduce_587",function(){return[]}),t(y,"$_reduce_588",function(t){return t["$[]"](0)["$<<"](t["$[]"](1))}),t(y,"$_reduce_589",function(){return[]}),t(y,"$_reduce_590",function(t){return t["$[]"](0)["$<<"](t["$[]"](1))}),t(y,"$_reduce_591",function(){return[]}),t(y,"$_reduce_592",function(t){return t["$[]"](0)["$<<"](t["$[]"](1))}),t(y,"$_reduce_593",function(t){var o=this;return o.builder.$string_internal(t["$[]"](0))}),t(y,"$_reduce_594",function(t){return t["$[]"](1)}),t(y,"$_reduce_595",function(t,n,s){var o=this;return o.lexer.$cmdarg().$push(!1),o.lexer.$cond().$push(!1),s}),t(y,"$_reduce_596",function(t){var o=this;return o.lexer.$cmdarg().$pop(),o.lexer.$cond().$pop(),o.builder.$begin(t["$[]"](0),t["$[]"](2),t["$[]"](3))}),t(y,"$_reduce_597",function(t){var o=this;return o.builder.$gvar(t["$[]"](0))}),t(y,"$_reduce_598",function(t){var o=this;return o.builder.$ivar(t["$[]"](0))}),t(y,"$_reduce_599",function(t){var o=this;return o.builder.$cvar(t["$[]"](0))}),t(y,"$_reduce_603",function(t){var o=this;return o.lexer["$state="]("expr_end"),o.builder.$symbol(t["$[]"](0))}),t(y,"$_reduce_604",function(t){var o=this;return o.lexer["$state="]("expr_end"),o.builder.$symbol_compose(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_605",function(t){return t["$[]"](0)}),t(y,"$_reduce_606",function(t,n,s){var o=this;return i(o.builder["$respond_to?"]("negate"))?s=o.builder.$negate(t["$[]"](0),t["$[]"](1)):s=o.builder.$unary_num(t["$[]"](0),t["$[]"](1)),s}),t(y,"$_reduce_607",function(t){var o=this;return o.lexer["$state="]("expr_end"),o.builder.$integer(t["$[]"](0))}),t(y,"$_reduce_608",function(t){var o=this;return o.lexer["$state="]("expr_end"),o.builder.$float(t["$[]"](0))}),t(y,"$_reduce_609",function(t){var o=this;return o.lexer["$state="]("expr_end"),o.builder.$rational(t["$[]"](0))}),t(y,"$_reduce_610",function(t){var o=this;return o.lexer["$state="]("expr_end"),o.builder.$complex(t["$[]"](0))}),t(y,"$_reduce_611",function(t){var o=this;return o.builder.$ivar(t["$[]"](0))}),t(y,"$_reduce_612",function(t){var o=this;return o.builder.$gvar(t["$[]"](0))}),t(y,"$_reduce_613",function(t){var o=this;return o.builder.$cvar(t["$[]"](0))}),t(y,"$_reduce_614",function(t){var o=this;return o.builder.$ident(t["$[]"](0))}),t(y,"$_reduce_615",function(t){var o=this;return o.builder.$const(t["$[]"](0))}),t(y,"$_reduce_617",function(t){var o=this;return o.builder.$nil(t["$[]"](0))}),t(y,"$_reduce_618",function(t){var o=this;return o.builder.$self(t["$[]"](0))}),t(y,"$_reduce_619",function(t){var o=this;return o.builder.$true(t["$[]"](0))}),t(y,"$_reduce_620",function(t){var o=this;return o.builder.$false(t["$[]"](0))}),t(y,"$_reduce_621",function(t){var o=this;return o.builder.$__FILE__(t["$[]"](0))}),t(y,"$_reduce_622",function(t){var o=this;return o.builder.$__LINE__(t["$[]"](0))}),t(y,"$_reduce_623",function(t){var o=this;return o.builder.$__ENCODING__(t["$[]"](0))}),t(y,"$_reduce_624",function(t){var o=this;return o.builder.$accessible(t["$[]"](0))}),t(y,"$_reduce_625",function(t){var o=this;return o.builder.$accessible(t["$[]"](0))}),t(y,"$_reduce_626",function(t){var o=this;return o.builder.$assignable(t["$[]"](0))}),t(y,"$_reduce_627",function(t){var o=this;return o.builder.$assignable(t["$[]"](0))}),t(y,"$_reduce_628",function(t){var o=this;return o.builder.$nth_ref(t["$[]"](0))}),t(y,"$_reduce_629",function(t){var o=this;return o.builder.$back_ref(t["$[]"](0))}),t(y,"$_reduce_630",function(t,n,s){var o=this;return o.lexer["$state="]("expr_value"),s}),t(y,"$_reduce_631",function(t){return[t["$[]"](0),t["$[]"](2)]}),t(y,"$_reduce_632",d(n)),t(y,"$_reduce_634",function(){var i=this;return i.context["$in_argdef="](!1),i.builder.$args(n,[],n)}),t(y,"$_reduce_635",function(t,n,s){var o=this;return s=o.builder.$args(t["$[]"](0),t["$[]"](1),t["$[]"](2)),o.lexer["$state="]("expr_value"),o.context["$in_argdef="](!1),s}),t(y,"$_reduce_637",function(t,n,s){var o=this;return s=o.context.$dup(),o.context["$in_kwarg="](!0),o.context["$in_argdef="](!0),s}),t(y,"$_reduce_638",function(t){var i=this;return i.context["$in_kwarg="](t["$[]"](0).$in_kwarg()),i.context["$in_argdef="](!1),i.builder.$args(n,t["$[]"](1),n)}),t(y,"$_reduce_639",function(t){return t["$[]"](0).$concat(t["$[]"](2)).$concat(t["$[]"](3))}),t(y,"$_reduce_640",function(t){return t["$[]"](0).$concat(t["$[]"](1))}),t(y,"$_reduce_641",function(t){return t["$[]"](0).$concat(t["$[]"](1))}),t(y,"$_reduce_642",function(t){return[t["$[]"](0)]}),t(y,"$_reduce_643",function(t){var o=this;return o.static_env.$declare_forward_args(),[o.builder.$forward_arg(t["$[]"](0))]}),t(y,"$_reduce_644",function(t){return t["$[]"](1)}),t(y,"$_reduce_645",function(){return[]}),t(y,"$_reduce_646",function(t){return t["$[]"](0).$concat(t["$[]"](2)).$concat(t["$[]"](4)).$concat(t["$[]"](5))}),t(y,"$_reduce_647",function(t){return t["$[]"](0).$concat(t["$[]"](2)).$concat(t["$[]"](4)).$concat(t["$[]"](6)).$concat(t["$[]"](7))}),t(y,"$_reduce_648",function(t){return t["$[]"](0).$concat(t["$[]"](2)).$concat(t["$[]"](3))}),t(y,"$_reduce_649",function(t){return t["$[]"](0).$concat(t["$[]"](2)).$concat(t["$[]"](4)).$concat(t["$[]"](5))}),t(y,"$_reduce_650",function(t){return t["$[]"](0).$concat(t["$[]"](2)).$concat(t["$[]"](3))}),t(y,"$_reduce_651",function(t){return t["$[]"](0).$concat(t["$[]"](2)).$concat(t["$[]"](4)).$concat(t["$[]"](5))}),t(y,"$_reduce_652",function(t){return t["$[]"](0).$concat(t["$[]"](1))}),t(y,"$_reduce_653",function(t){return t["$[]"](0).$concat(t["$[]"](2)).$concat(t["$[]"](3))}),t(y,"$_reduce_654",function(t){return t["$[]"](0).$concat(t["$[]"](2)).$concat(t["$[]"](4)).$concat(t["$[]"](5))}),t(y,"$_reduce_655",function(t){return t["$[]"](0).$concat(t["$[]"](1))}),t(y,"$_reduce_656",function(t){return t["$[]"](0).$concat(t["$[]"](2)).$concat(t["$[]"](3))}),t(y,"$_reduce_657",function(t){return t["$[]"](0).$concat(t["$[]"](1))}),t(y,"$_reduce_658",function(t){return t["$[]"](0).$concat(t["$[]"](2)).$concat(t["$[]"](3))}),t(y,"$_reduce_659",function(t){return t["$[]"](0)}),t(y,"$_reduce_660",function(){return[]}),t(y,"$_reduce_661",function(t){return t["$[]"](0)}),t(y,"$_reduce_662",function(t,s,o){var i=this;return i.$diagnostic("error","argument_const",n,t["$[]"](0)),o}),t(y,"$_reduce_663",function(t,s,o){var i=this;return i.$diagnostic("error","argument_ivar",n,t["$[]"](0)),o}),t(y,"$_reduce_664",function(t,s,o){var i=this;return i.$diagnostic("error","argument_gvar",n,t["$[]"](0)),o}),t(y,"$_reduce_665",function(t,s,o){var i=this;return i.$diagnostic("error","argument_cvar",n,t["$[]"](0)),o}),t(y,"$_reduce_667",function(t){var o=this;return o.static_env.$declare(t["$[]"](0)["$[]"](0)),o.max_numparam_stack["$has_ordinary_params!"](),t["$[]"](0)}),t(y,"$_reduce_668",function(t){var o=this;return o.current_arg_stack.$set(t["$[]"](0)["$[]"](0)),t["$[]"](0)}),t(y,"$_reduce_669",function(t){var o=this;return o.current_arg_stack.$set(0),o.builder.$arg(t["$[]"](0))}),t(y,"$_reduce_670",function(t){var o=this;return o.builder.$multi_lhs(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_671",function(t){return[t["$[]"](0)]}),t(y,"$_reduce_672",function(t){return t["$[]"](0)["$<<"](t["$[]"](2))}),t(y,"$_reduce_673",function(t){var o=this;return o.$check_kwarg_name(t["$[]"](0)),o.static_env.$declare(t["$[]"](0)["$[]"](0)),o.max_numparam_stack["$has_ordinary_params!"](),o.current_arg_stack.$set(t["$[]"](0)["$[]"](0)),o.context["$in_argdef="](!1),t["$[]"](0)}),t(y,"$_reduce_674",function(t){var i=this;return i.current_arg_stack.$set(n),i.context["$in_argdef="](!0),i.builder.$kwoptarg(t["$[]"](0),t["$[]"](1))}),t(y,"$_reduce_675",function(t){var i=this;return i.current_arg_stack.$set(n),i.context["$in_argdef="](!0),i.builder.$kwarg(t["$[]"](0))}),t(y,"$_reduce_676",function(t){var o=this;return o.context["$in_argdef="](!0),o.builder.$kwoptarg(t["$[]"](0),t["$[]"](1))}),t(y,"$_reduce_677",function(t){var o=this;return o.context["$in_argdef="](!0),o.builder.$kwarg(t["$[]"](0))}),t(y,"$_reduce_678",function(t){return[t["$[]"](0)]}),t(y,"$_reduce_679",function(t){return t["$[]"](0)["$<<"](t["$[]"](2))}),t(y,"$_reduce_680",function(t){return[t["$[]"](0)]}),t(y,"$_reduce_681",function(t){return t["$[]"](0)["$<<"](t["$[]"](2))}),t(y,"$_reduce_684",function(t){var o=this;return[o.builder.$kwnilarg(t["$[]"](0)["$[]"](0),t["$[]"](0)["$[]"](1))]}),t(y,"$_reduce_685",function(t){var o=this;return o.static_env.$declare(t["$[]"](1)["$[]"](0)),[o.builder.$kwrestarg(t["$[]"](0),t["$[]"](1))]}),t(y,"$_reduce_686",function(t){var o=this;return o.static_env.$declare_anonymous_kwrestarg(),[o.builder.$kwrestarg(t["$[]"](0))]}),t(y,"$_reduce_687",function(t){var o=this;return o.current_arg_stack.$set(0),o.context["$in_argdef="](!0),o.builder.$optarg(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_688",function(t){var o=this;return o.current_arg_stack.$set(0),o.context["$in_argdef="](!0),o.builder.$optarg(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_689",function(t){return[t["$[]"](0)]}),t(y,"$_reduce_690",function(t){return t["$[]"](0)["$<<"](t["$[]"](2))}),t(y,"$_reduce_691",function(t){return[t["$[]"](0)]}),t(y,"$_reduce_692",function(t){return t["$[]"](0)["$<<"](t["$[]"](2))}),t(y,"$_reduce_695",function(t){var o=this;return o.static_env.$declare(t["$[]"](1)["$[]"](0)),[o.builder.$restarg(t["$[]"](0),t["$[]"](1))]}),t(y,"$_reduce_696",function(t){var o=this;return o.static_env.$declare_anonymous_restarg(),[o.builder.$restarg(t["$[]"](0))]}),t(y,"$_reduce_699",function(t){var o=this;return o.static_env.$declare(t["$[]"](1)["$[]"](0)),o.builder.$blockarg(t["$[]"](0),t["$[]"](1))}),t(y,"$_reduce_700",function(t){var i=this;return i.static_env.$declare_anonymous_blockarg(),i.builder.$blockarg(t["$[]"](0),n)}),t(y,"$_reduce_701",function(t){return[t["$[]"](1)]}),t(y,"$_reduce_702",function(){return[]}),t(y,"$_reduce_704",function(t){return t["$[]"](1)}),t(y,"$_reduce_705",function(){return[]}),t(y,"$_reduce_707",function(t){return[t["$[]"](0)]}),t(y,"$_reduce_708",function(t){return t["$[]"](0)["$<<"](t["$[]"](2))}),t(y,"$_reduce_709",function(t){var o=this;return o.builder.$pair(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),t(y,"$_reduce_710",function(t){var o=this;return o.builder.$pair_keyword(t["$[]"](0),t["$[]"](1))}),t(y,"$_reduce_711",function(t){var o=this;return o.builder.$pair_label(t["$[]"](0))}),t(y,"$_reduce_712",function(t){var o=this;return o.builder.$pair_quoted(t["$[]"](0),t["$[]"](1),t["$[]"](2),t["$[]"](3))}),t(y,"$_reduce_713",function(t){var o=this;return o.builder.$kwsplat(t["$[]"](0),t["$[]"](1))}),t(y,"$_reduce_714",function(t){var i=this;return a(i.static_env["$declared_anonymous_kwrestarg?"]())&&i.$diagnostic("error","no_anonymous_kwrestarg",n,t["$[]"](0)),i.builder.$forwarded_kwrestarg(t["$[]"](0))}),t(y,"$_reduce_725",function(t){return["dot",t["$[]"](0)["$[]"](1)]}),t(y,"$_reduce_726",function(t){return["anddot",t["$[]"](0)["$[]"](1)]}),t(y,"$_reduce_731",function(t){return t["$[]"](1)}),t(y,"$_reduce_732",function(t){return t["$[]"](1)}),t(y,"$_reduce_733",function(t){return t["$[]"](1)}),t(y,"$_reduce_736",function(t,n,s){var o=this;return o.$yyerrok(),s}),t(y,"$_reduce_740",d(n)),t(y,"$_reduce_none",function(t){return t["$[]"](0)})}(y[0],h(w("Parser"),"Base"),y)}(m[0],m)},Opal.modules["opal/ast/builder"]=function(e){var n=e.module,i=e.klass,a=e.Opal,r=e.def,s=e.top,o=[],c=e.nil,t=e.$$$;return e.add_stubs("require,emit_lambda=,new"),s.$require("opal/ast/node"),s.$require("parser/ruby32"),function(e,s){var c=n(e,"Opal"),o=[c].concat(s);return function(e,s){var o=n(e,"AST"),c=[o].concat(s);return function(e,n){var s=i(e,n,"Builder");return s["$emit_lambda="](!0),r(s,"$n",function(n,s,o){return t(t(a,"AST"),"Node").$new(n,s,new Map([["location",o]]))})}(c[0],t(t(t("Parser"),"Builders"),"Default"))}(o[0],o)}(o[0],o)},Opal.modules["opal/rewriters/base"]=function(e){var u=e.module,d=e.klass,c=e.slice,t=e.def,y=e.return_self,i=e.return_val,_=e.const_set,a=e.truthy,r=e.Opal,p=e.defs,o=e.alias,h=e.rb_plus,m=e.send,j=e.to_a,b=e.send2,g=e.find_super,v=e.assign_ivar_val,l=e.top,f=[],s=e.nil,n=e.$$$;return e.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"),l.$require("parser"),l.$require("opal/ast/node"),function(l,f){var O=u(l,"Opal"),w=[O].concat(f);return function(l,f){var O=u(l,"Rewriters"),w=[O].concat(f);return function(l,u,f){var w=d(l,u,"Base"),O=[w].concat(f),x=e.$r(O),C=w.$$prototype;return C.dynamic_cache_result=s,function(o,a,r){var l=d(o,a,"DummyLocation"),u=[l].concat(r),h=e.$r(u);return t(l,"$node=",function(){var n=c(arguments),o=n;return s},-1),t(l,"$expression",y),t(l,"$begin_pos",i(0)),t(l,"$end_pos",i(0)),t(l,"$source",i("")),t(l,"$line",i(0)),t(l,"$column",i(0)),t(l,"$last_line",function(){return n(h("Float"),"INFINITY")})}(O[0],null,O),_(O[0],"DUMMY_LOCATION",x("DummyLocation").$new()),t(w,"$s",function(t){var i=this,l=s,d=c(arguments,1),u=d,l=a(i.$current_node())?i.$current_node().$loc():x("DUMMY_LOCATION");return n(n(r,"AST"),"Node").$new(t,u,new Map([["location",l]]))},-2),p(w,"$s",function(t){var o=c(arguments,1),i=o;return n(n(r,"AST"),"Node").$new(t,i,new Map([["location",x("DUMMY_LOCATION")]]))},-2),o(w,"on_iter","process_regular_node"),o(w,"on_zsuper","process_regular_node"),o(w,"on_jscall","on_send"),o(w,"on_jsattr","process_regular_node"),o(w,"on_jsattrasgn","process_regular_node"),o(w,"on_kwsplat","process_regular_node"),t(w,"$prepend_to_body",function(t,n){var o=this,i=s,i=h(o.$stmts_of(n),o.$stmts_of(t));return o.$begin_with_stmts(i)}),t(w,"$append_to_body",function(t,n){var o=this,i=s,i=h(o.$stmts_of(t),o.$stmts_of(n));return o.$begin_with_stmts(i)}),t(w,"$stmts_of",function(t){return a(t["$nil?"]())?[]:a(["begin","kwbegin"]["$include?"](t.$type()))?t.$children():[t]}),t(w,"$begin_with_stmts",function(t){var n=this;switch(t.$length().valueOf()){case 0:return s;case 1:return t["$[]"](0);default:return m(n,"s",["begin"].concat(j(t)))}}),w.$attr_accessor("current_node"),t(w,"$process",function e(t){var n,i=e.$$p||s,o=this;return e.$$p=null,function(){try{return o["$current_node="](t),b(o,g(o,"process",e,!1,!0),"process",[t],i)}finally{n=[s],m(o,"current_node=",n),n[n.length-1]}}()}),t(w,"$error",function(t){var o=this,i=s,i=n(r,"RewritingError").$new(t);return a(o.$current_node())&&i["$location="](o.$current_node().$loc()),o.$raise(i)}),t(w,"$on_top",function(t){var n=this;return t=n.$process_regular_node(t),a(n.dynamic_cache_result)&&t.$meta()["$[]="]("dynamic_cache_result",!0),t}),t(w,"$dynamic!",v("dynamic_cache_result",!0))}(w[0],n(n(n("Parser"),"AST"),"Processor"),w)}(w[0],w)}(f[0],f)},Opal.modules["opal/rewriters/opal_engine_check"]=function(e){var i=e.module,r=e.klass,c=e.to_a,n=e.truthy,l=e.send2,d=e.find_super,o=e.def,s=e.const_set,u=e.top,a=[],t=e.nil;return e.add_stubs("require,children,skip_check_present?,process,s,skip_check_present_not?,=="),u.$require("opal/rewriters/base"),function(a,u){var m=i(a,"Opal"),h=[m].concat(u);return function(a,u){var m=i(a,"Rewriters"),h=[m].concat(u),f=e.$r(h);return function(i,a,u){var h=r(i,a,"OpalEngineCheck"),m=[h].concat(u),f=e.$r(m);return o(h,"$on_if",function e(s){var o,m=e.$$p||t,i=this,r=t,u=t,h=t,a=t;return e.$$p=null,o=[].concat(c(s.$children())),r=o[0]==null?t:o[0],u=o[1]==null?t:o[1],h=o[2]==null?t:o[2],o,n(i["$skip_check_present?"](r))?i.$process(n(a=u)?a:i.$s("nil")):n(i["$skip_check_present_not?"](r))?i.$process(n(a=h)?a:i.$s("nil")):l(i,d(i,"on_if",e,!1,!0),"on_if",[s],m)}),o(h,"$skip_check_present?",function(s){var o=t;return n(o=s["$=="](f("RUBY_ENGINE_CHECK")))?o:s["$=="](f("RUBY_PLATFORM_CHECK"))}),o(h,"$skip_check_present_not?",function(s){var o=t;return n(o=s["$=="](f("RUBY_ENGINE_CHECK_NOT")))?o:s["$=="](f("RUBY_PLATFORM_CHECK_NOT"))}),s(m[0],"RUBY_ENGINE_CHECK",h.$s("send",h.$s("const",t,"RUBY_ENGINE"),"==",h.$s("str","opal"))),s(m[0],"RUBY_ENGINE_CHECK_NOT",h.$s("send",h.$s("const",t,"RUBY_ENGINE"),"!=",h.$s("str","opal"))),s(m[0],"RUBY_PLATFORM_CHECK",h.$s("send",h.$s("const",t,"RUBY_PLATFORM"),"==",h.$s("str","opal"))),s(m[0],"RUBY_PLATFORM_CHECK_NOT",h.$s("send",h.$s("const",t,"RUBY_PLATFORM"),"!=",h.$s("str","opal")))}(h[0],f("Base"),h)}(h[0],h)}(a[0],a)},Opal.modules["opal/rewriters/targeted_patches"]=function(e){var l=e.module,v=e.klass,m=e.to_a,n=e.truthy,h=e.rb_ge,s=e.eqeq,u=e.to_ary,r=e.range,i=e.send2,o=e.find_super,c=e.def,f=e.rb_gt,a=e.send,p=e.not,g=e.top,d=[],t=e.nil;return e.add_stubs("require,>=,length,children,==,type,last,first,updated,[],<<,>,all?,include?,=~,to_s,!,cover?,join,map,s"),g.$require("opal/rewriters/base"),function(d,g){var j=l(d,"Opal"),b=[j].concat(g);return function(d,g){var j=l(d,"Rewriters"),b=[j].concat(g),y=e.$r(b);return function(e,l){var d=v(e,l,"TargetedPatches");return c(d,"$on_def",function e(a){var c,g,y=e.$$p||t,p=this,v=t,b=t,l=t,d=t,f=t,j=t;return e.$$p=null,c=[].concat(m(a)),v=c[0]==null?t:c[0],b=c[1]==null?t:c[1],l=c[2]==null?t:c[2],c,n(l)&&s(l.$type(),"begin")&&n(h(l.$children().$length(),2))?(d=l.$children(),g=d.$last(2),c=u(g),f=c[0]==null?t:c[0],j=c[1]==null?t:c[1],g,s(f.$type(),"lvasgn")&&s(j.$type(),"lvar")&&s(f.$children().$first(),j.$children().$first())?s(d.$length(),2)?a.$updated(t,[v,b,f.$children()["$[]"](1)]):(d=d["$[]"](r(0,-3,!1))["$<<"](f.$children()["$[]"](1)),a.$updated(t,[v,b,l.$updated(t,d)])):i(p,o(p,"on_def",e,!1,!0),"on_def",[a],y)):i(p,o(p,"on_def",e,!1,!0),"on_def",[a],y)}),c(d,"$on_array",function e(c){var u=e.$$p||t,l=this,d=t,h=t,m=t;return e.$$p=null,d=c.$children(),n(f(d.$length(),32))?(h=a(d,"all?",[],function(o){return o==null&&(o=t),!!n(["str","sym","int","nil"]["$include?"](o.$type()))&&!(n(["str","sym"]["$include?"](o.$type()))&&n(o.$children().$first().$to_s()["$=~"](/^[0-9-]|^$|,/)))&&(!s(o.$type(),"int")||!p(r(-1e6,1e6,!1)["$cover?"](o.$children().$first())))}),n(h)?(m=a(d,"map",[],function(n){return n==null&&(n=t),n.$children().$first().$to_s()}).$join(","),c.$updated("jscall",[l.$s("js_tmp","Opal"),"large_array_unpack",l.$s("sym",m)])):i(l,o(l,"on_array",e,!1,!0),"on_array",[c],u)):i(l,o(l,"on_array",e,!1,!0),"on_array",[c],u)})}(b[0],y("Base"))}(b[0],b)}(d[0],d)},Opal.modules["opal/rewriters/for_rewriter"]=function(e){var a=e.module,c=e.klass,d=e.assign_ivar_val,o=e.defs,l=e.truthy,i=e.rb_plus,s=e.to_a,n=e.def,u=e.send,h=e.send2,m=e.find_super,f=e.top,r=[],t=e.nil;return e.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"),f.$require("opal/rewriters/base"),function(r,f){var g=a(r,"Opal"),p=[g].concat(f);return function(r,f){var g=a(r,"Rewriters"),p=[g].concat(f),v=e.$r(p);return function(a,r,f){var p=c(a,r,"ForRewriter"),g=[p].concat(f),v=e.$r(g);return o(p,"$reset_tmp_counter!",d("counter",0)),o(p,"$next_tmp",function(){var n=this,s=t;return n.counter==null&&(n.counter=t),n.counter=l(s=n.counter)?s:0,n.counter=i(n.counter,1),"$for_tmp"+n.counter}),n(p,"$on_for",function(n){var i=this,r=t,l=t,a=t,d=t,c=t,u=t,o=[].concat(s(n));return r=o[0]==null?t:o[0],l=o[1]==null?t:o[1],a=o[2]==null?t:o[2],o,d=i.$generate_outer_assignments(r,a),c=i.$class().$next_tmp(),u=i.$s("js_tmp",c),a=i.$prepend_to_body(a,i.$assign_loop_variable(r,u)),n=i.$transform_for_to_each_loop(n,l,c,a),n.$updated("begin",[].concat(s(d)).concat([n]))}),p.$private(),n(p,"$generate_outer_assignments",function(n,s){var r=this,o=t,a=t,o=v("LocalVariableAssigns").$find(n),a=v("LocalVariableAssigns").$find(s);return u(i(o,a),"map",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s.$s("lvdeclare",n)},{$$s:r})}),n(p,"$assign_loop_variable",function(t,n){switch(t.$type().valueOf()){case"mlhs":return t.$updated("masgn",[t,n]);default:return t["$<<"](n)}}),n(p,"$transform_for_to_each_loop",function(t,n,s,o){var i=this;return t.$updated("send",[n,"each",t.$updated("iter",[i.$s("args",i.$s("arg",s)),i.$process(o)])])}),function(i,a,r){var l=c(i,a,"LocalVariableAssigns"),d=[l].concat(r),u=e.$r(d);return l.$attr_reader("result"),o(l,"$find",function(n){var o=this,s=t,s=o.$new();return s.$process(n),s.$result().$to_a()}),n(l,"$initialize",function(){var t=this;return t.result=u("Set").$new()}),n(l,"$on_lvasgn",function e(n){var o,r=e.$$p||t,i=this,a=t,c=t;return e.$$p=null,o=[].concat(s(n)),a=o[0]==null?t:o[0],c=o[1]==null?t:o[1],o,i.$result()["$<<"](a),h(i,m(i,"on_lvasgn",e,!1,!0),"on_lvasgn",[n],r)})}(g[0],v("Base"),g)}(p[0],v("Base"),p)}(p[0],p)}(r[0],r)},Opal.modules["opal/rewriters/js_reserved_words"]=function(e){var l=e.module,p=e.klass,i=e.const_set,o=e.regexp,n=e.truthy,d=e.defs,s=e.def,m=e.range,a=e.to_a,r=e.send2,c=e.find_super,f=e.alias,u=e.top,h=[],t=e.nil;return e.add_stubs("require,freeze,=~,!,valid_name?,class,to_sym,valid_ivar_name?,[],to_s,updated,fix_var_name,fix_ivar_name,on_restarg"),u.$require("opal/rewriters/base"),u.$require("opal/regexp_anchors"),function(u,h){var v=l(u,"Opal"),g=[v].concat(h);return function(u,h){var v=l(u,"Rewriters"),g=[v].concat(h),b=e.$r(g);return function(l,u,h){var v=p(l,u,"JsReservedWords"),b=[v].concat(h),g=e.$r(b);return i(b[0],"ES51_RESERVED_WORD",o([g("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)",g("REGEXP_END")]).$freeze()),i(b[0],"ES3_RESERVED_WORD_EXCLUSIVE",o([g("REGEXP_START"),"(?:int|byte|char|goto|long|final|float|short|double|native|throws|boolean|abstract|volatile|transient|synchronized)",g("REGEXP_END")]).$freeze()),i(b[0],"PROTO_SPECIAL_PROPS",o([g("REGEXP_START"),"(?:constructor|displayName|__proto__|__parent__|__noSuchMethod__|__count__)",g("REGEXP_END")]).$freeze()),i(b[0],"PROTO_SPECIAL_METHODS",o([g("REGEXP_START"),"(?:hasOwnProperty|valueOf)",g("REGEXP_END")]).$freeze()),i(b[0],"IMMUTABLE_PROPS",o([g("REGEXP_START"),"(?:NaN|Infinity|undefined)",g("REGEXP_END")]).$freeze()),i(b[0],"BASIC_IDENTIFIER_RULES",o([g("REGEXP_START"),"[$_a-z][$_a-z\\d]*",g("REGEXP_END")],"i").$freeze()),i(b[0],"RESERVED_FUNCTION_NAMES",o([g("REGEXP_START"),"(?:Array)",g("REGEXP_END")]).$freeze()),d(v,"$valid_name?",function(s){var o=t,i=t,a=t;return n(o=g("BASIC_IDENTIFIER_RULES")["$=~"](s))?(n(i=n(a=g("ES51_RESERVED_WORD")["$=~"](s))?a:g("ES3_RESERVED_WORD_EXCLUSIVE")["$=~"](s))?i:g("IMMUTABLE_PROPS")["$=~"](s))["$!"]():o}),d(v,"$valid_ivar_name?",function(s){var o=t;return(n(o=g("PROTO_SPECIAL_PROPS")["$=~"](s))?o:g("PROTO_SPECIAL_METHODS")["$=~"](s))["$!"]()}),s(v,"$fix_var_name",function(t){var s=this;return n(s.$class()["$valid_name?"](t))?t:(""+t+"$").$to_sym()}),s(v,"$fix_ivar_name",function(t){var s=this;return n(s.$class()["$valid_ivar_name?"](t.$to_s()["$[]"](m(1,-1,!1))))?t:(""+t+"$").$to_sym()}),s(v,"$on_lvar",function e(n){var s,d=e.$$p||t,o=this,i=t,l=t;return e.$$p=null,s=[].concat(a(n)),i=s[0]==null?t:s[0],l=s[1]==null?t:s[1],s,n=n.$updated(t,[o.$fix_var_name(i)]),r(o,c(o,"on_lvar",e,!1,!0),"on_lvar",[n],null)}),s(v,"$on_lvasgn",function e(s){var o,u=e.$$p||t,i=this,l=t,d=t;return e.$$p=null,o=[].concat(a(s)),l=o[0]==null?t:o[0],d=o[1]==null?t:o[1],o,s=n(d)?s.$updated(t,[i.$fix_var_name(l),d]):s.$updated(t,[i.$fix_var_name(l)]),r(i,c(i,"on_lvasgn",e,!1,!0),"on_lvasgn",[s],null)}),s(v,"$on_ivar",function e(n){var s,d=e.$$p||t,o=this,i=t,l=t;return e.$$p=null,s=[].concat(a(n)),i=s[0]==null?t:s[0],l=s[1]==null?t:s[1],s,n=n.$updated(t,[o.$fix_ivar_name(i)]),r(o,c(o,"on_ivar",e,!1,!0),"on_ivar",[n],null)}),s(v,"$on_ivasgn",function e(s){var o,u=e.$$p||t,i=this,l=t,d=t;return e.$$p=null,o=[].concat(a(s)),l=o[0]==null?t:o[0],d=o[1]==null?t:o[1],o,s=n(d)?s.$updated(t,[i.$fix_ivar_name(l),d]):s.$updated(t,[i.$fix_ivar_name(l)]),r(i,c(i,"on_ivasgn",e,!1,!0),"on_ivasgn",[s],null)}),s(v,"$on_restarg",function(s){var r=this,i=t,c=t,o=[].concat(a(s));return i=o[0]==null?t:o[0],c=o[1]==null?t:o[1],o,n(i)&&(s=s.$updated(t,[r.$fix_var_name(i)],new Map([["meta",new Map([["arg_name",i]])]]))),s}),f(v,"on_kwrestarg","on_restarg"),s(v,"$on_argument",function e(s){var o,m=e.$$p||t,i=this,l=t,d=t,u=t,h=t;return e.$$p=null,s=r(i,c(i,"on_argument",e,!1,!0),"on_argument",[s],null),o=[].concat(a(s)),l=o[0]==null?t:o[0],d=o[1]==null?t:o[1],o,u=i.$fix_var_name(l),h=n(d)?[u,d]:[u],s.$updated(t,h,new Map([["meta",new Map([["arg_name",l]])]]))})}(g[0],b("Base"),g)}(g[0],g)}(h[0],h)},Opal.modules["opal/rewriters/block_to_iter"]=function(e){var n=e.module,o=e.klass,i=e.to_a,a=e.rb_plus,r=e.def,c=e.top,s=[],t=e.nil;return e.add_stubs("require,s,process,updated,+,children"),c.$require("opal/rewriters/base"),function(s,c){var d=n(s,"Opal"),l=[d].concat(c);return function(s,c){var d=n(s,"Rewriters"),l=[d].concat(c),u=e.$r(l);return function(e,n){var s=o(e,n,"BlockToIter");return r(s,"$on_block",function(n){var r=this,o=t,c=t,l=t,d=t,s=[].concat(i(n));return o=s[0]==null?t:s[0],c=s[1]==null?t:s[1],l=s[2]==null?t:s[2],s,d=r.$s("iter",c,l),r.$process(o.$updated(t,a(o.$children(),[d])))})}(l[0],u("Base"))}(l[0],l)}(s[0],s)},Opal.modules["opal/rewriters/dot_js_syntax"]=function(e){var r=e.module,f=e.klass,n=e.to_a,u=e.slice,c=e.eqeq,d=e.truthy,a=e.neqeq,o=e.send2,i=e.find_super,s=e.def,h=e.send,m=e.top,l=[],t=e.nil;return e.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(l,m){var g=r(l,"Opal"),p=[g].concat(m);return function(l,m){var g=r(l,"Rewriters"),p=[g].concat(m),v=e.$r(p);return function(e,r){var l=f(e,r,"DotJsSyntax");return s(l,"$on_send",function e(s){var r,v=e.$$p||t,l=this,m=t,g=t,h=t,f=t,b=t,y=t,p=t,j=t;if(e.$$p=null,r=[].concat(n(s)),m=r[0]==null?t:r[0],g=r[1]==null?t:r[1],h=u(r,2),r,d(m)&&c(m.$type(),"send")){if(r=[].concat(n(m)),f=r[0]==null?t:r[0],b=r[1]==null?t:r[1],y=r[2]==null?t:r[2],r,c(b,"JS")){switch(g.valueOf()){case"[]":a(h.$size(),1)&&l.$error(".JS[:property] syntax supports only one argument"),p=h.$first(),s=l.$to_js_attr_call(f,p);break;case"[]=":a(h.$size(),2)&&l.$error(".JS[:property]= syntax supports only two arguments"),r=[].concat(n(h)),p=r[0]==null?t:r[0],j=r[1]==null?t:r[1],r,s=l.$to_js_attr_assign_call(f,p,j);break;default:s=l.$to_native_js_call(f,g,h)}return o(l,i(l,"on_send",e,!1,!0),"on_send",[s],null)}return o(l,i(l,"on_send",e,!1,!0),"on_send",[s],v)}else return o(l,i(l,"on_send",e,!1,!0),"on_send",[s],v)}),s(l,"$to_native_js_call",function(t,s,o){var i=this;return h(i,"s",["jscall",t,s].concat(n(o)))}),s(l,"$to_js_attr_call",function(t,n){var s=this;return s.$s("jsattr",t,n)}),s(l,"$to_js_attr_assign_call",function(t,n,s){var o=this;return o.$s("jsattrasgn",t,n,s)})}(p[0],v("Base"))}(p[0],p)}(l[0],l)},Opal.modules["opal/rewriters/pattern_matching"]=function(e){var m=e.module,u=e.klass,p=e.send2,_=e.find_super,n=e.def,s=e.to_a,l=e.rb_plus,c=e.slice,a=e.truthy,i=e.send,y=e.not,j=e.neqeq,g=e.eqeq,f=e.return_ivar,o=e.alias,r=e.eqeqeq,v=e.Opal,b=e.top,h=[],t=e.nil,d=e.$$$;return e.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,[],==="),b.$require("opal/rewriters/base"),function(h,b){var O=m(h,"Opal"),w=[O].concat(b);return function(h,b){var O=m(h,"Rewriters"),w=[O].concat(b),x=e.$r(w);return function(h,m,b){var w=u(h,m,"PatternMatching"),O=[w].concat(b),x=e.$r(O),C=w.$$prototype;return C.depth=t,n(w,"$initialize",function e(){var s=e.$$p||t,n=this;return e.$$p=null,n.depth=0,p(n,_(n,"initialize",e,!1,!0),"initialize",[],s)}),n(w,"$on_match_pattern",function(n){var i=this,a=t,r=t,o=[].concat(s(n));return a=o[0]==null?t:o[0],r=o[1]==null?t:o[1],o,i.$s("begin",i.$s("lvasgn","$pmvar",a),i.$s("if",i.$convert_full_pattern(a,r),t,i.$raise_no_matching_pattern_error("$pmvar")))}),n(w,"$on_match_pattern_p",function(n){var i=this,a=t,r=t,o=[].concat(s(n));return a=o[0]==null?t:o[0],r=o[1]==null?t:o[1],o,i.$s("if",i.$convert_full_pattern(a,r),i.$s("true"),i.$s("false"))}),n(w,"$on_case_match",function(n){var o,d,r=this,h=t,m=t,f=t,u=t;return r.depth=l(r.depth,1),h="$cmvar"+r.depth,o=[].concat(s(n)),m=o[0]==null?t:o[0],d=o.length-1,d=d<1?1:d,f=c(o,1,d),u=o[d]==null?t:o[d],o,a(u)?r.$process(u):u=r.$raise_no_matching_pattern_error(h),r.$s("begin",r.$s("lvasgn",h,m),i(r,"single_case_match",[h].concat(s(f)).concat([u])))}),w.$private(),n(w,"$raise_no_matching_pattern_error",function(n){var s=this;return s.$s("send",t,"raise",s.$s("const",s.$s("cbase"),"NoMatchingPatternError"),s.$s("lvar",n))}),n(w,"$single_case_match",function(n){var l,d=this,v=t,u=t,m=t,b=t,g=t,f=c(arguments,1),p=f.splice(0,f.length-1),h=f.shift();if(h==null&&(h=t),v=p.$shift(),l=[].concat(s(v)),u=l[0]==null?t:l[0],m=l[1]==null?t:l[1],b=l[2]==null?t:l[2],l,u=d.$convert_full_pattern(n,u),a(m))switch(l=[].concat(s(m)),g=l[0]==null?t:l[0],l,m.$type().valueOf()){case"if_guard":u=d.$s("and",u,g);break;case"unless_guard":u=d.$s("and",u,d.$s("send",g,"!"));break;default:t}return d.$s("if",u,d.$process(b),y(p["$empty?"]())?i(d,"single_case_match",[n].concat(s(p)).concat([h])):j(h,d.$s("empty_else"))?h:t)},-3),n(w,"$convert_full_pattern",function(n,o){var a=this,r=t;return g(n.$class(),x("Symbol"))&&(n=a.$s("lvar",n)),r=x("PatternConverter").$new(o),r["$run!"](),a.$s("masgn",i(a,"s",["mlhs"].concat(s(r.$variables()))),a.$s("send",a.$s("const",a.$s("cbase"),"PatternMatching"),"call",n,r.$pattern()))}),function(d,h,m){var p=u(d,h,"PatternConverter"),b=[p].concat(m),g=e.$r(b),v=p.$$prototype;return v.pat=v.variables=t,n(p,"$initialize",function(t){var n=this;return n.pat=t,n.variables=[]}),n(p,"$run!",function(){var t=this;return t.outpat=t.$process(t.pat)}),n(p,"$pattern",f("outpat")),n(p,"$variables",function(){var n=this;return i(n.variables,"map",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s.$s("lvasgn",n)},{$$s:n})}),n(p,"$on_match_var",function(n){var i=this,a=t,o=[].concat(s(n));return a=o[0]==null?t:o[0],o,i.variables["$<<"](a),i.$s("sym","var")}),n(p,"$on_match_as",function(n){var i=this,a=t,r=t,o=[].concat(s(n));return a=o[0]==null?t:o[0],r=o[1]==null?t:o[1],o,i.$process(r),i.$array(i.$s("sym","save"),i.$process(a))}),n(p,"$on_literal",function(t){var n=this;return n.$array(n.$s("sym","lit"),t)}),o(p,"on_int","on_literal"),o(p,"on_float","on_literal"),o(p,"on_complex","on_literal"),o(p,"on_rational","on_literal"),o(p,"on_array","on_literal"),o(p,"on_str","on_literal"),o(p,"on_dstr","on_literal"),o(p,"on_xstr","on_literal"),o(p,"on_sym","on_literal"),o(p,"on_irange","on_literal"),o(p,"on_erange","on_literal"),o(p,"on_const","on_literal"),o(p,"on_regexp","on_literal"),o(p,"on_lambda","on_literal"),o(p,"on_begin","on_literal"),n(p,"$on_pin",function(t){var n=this;return n.$on_literal(t.$children().$first())}),n(p,"$on_match_rest",function(t){var n=this;return a(t.$children()["$empty?"]())?n.$array(n.$s("sym","rest")):n.$array(n.$s("sym","rest"),n.$process(t.$children().$first()))}),n(p,"$on_match_alt",function(t){var n=this;return i(n,"array",[n.$s("sym","any")].concat(s(i(t.$children(),"map",[],n.$method("process").$to_proc()))))}),n(p,"$on_const_pattern",function(t){var n=this;return i(n,"array",[n.$s("sym","all")].concat(s(i(t.$children(),"map",[],n.$method("process").$to_proc()))))}),n(p,"$on_array_pattern",function(n,o){var r=this,c=t,u=t,d=t;return o==null&&(o=!1),c=[].concat(s(n)),a(o)&&c["$<<"](r.$s("match_rest")),u=!0,d=0,c=i(c,"each",[],function(n){switch(n==null&&(n=t),n.$type().valueOf()){case"match_rest":return u=!1;default:return d=l(d,1)}}),r.$array(r.$s("sym","array"),r.$to_ast(u),r.$to_ast(d),r.$to_ast(i(c,"map",[],r.$method("process").$to_proc())))},-2),n(p,"$on_array_pattern_with_tail",function(t){var n=this;return n.$on_array_pattern(t,!0)}),n(p,"$on_hash_pattern",function(n){var o=this,r=t,c=t,r=[].concat(s(n)),c=a(r["$empty?"]())?o.$to_ast(!1):o.$to_ast(!0),r=i(r,"map",[],function e(n){var s=e.$$s==null?this:e.$$s;switch(n==null&&(n=t),n.$type().valueOf()){case"pair":return s.$array(n.$children()["$[]"](0),s.$process(n.$children()["$[]"](1)));case"match_var":return s.$array(s.$s("sym",n.$children()["$[]"](0)),s.$process(n));case"match_nil_pattern":return c=s.$to_ast(!1),t;case"match_rest":return a(n.$children().$first())?c=s.$process(n.$children().$first()):c=s.$to_ast(!0),t;default:return t}},{$$s:o}).$compact();return o.$array(o.$s("sym","hash"),c,i(o,"array",s(r)))}),n(p,"$on_find_pattern",function(n){var o=this,a=t,a=[].concat(s(n)),a=i(a,"map",[],o.$method("process").$to_proc());return o.$array(o.$s("sym","find"),i(o,"array",s(a)))}),p.$private(),n(p,"$array",function(){var o=this,n=c(arguments),s=n;return o.$to_ast(s)},-1),n(p,"$to_ast",function(n){var o=this,a=t;return r(g("Array"),a=n)?i(o,"s",["array"].concat(s(n))):r(g("Integer"),a)?o.$s("int",n):r(!0,a)?o.$s("true"):r(!1,a)?o.$s("false"):r(t,a)?o.$s("nil"):t})}(O[0],d(d(v,"Rewriters"),"Base"),O)}(w[0],x("Base"),w)}(w[0],w)}(h[0],h)},Opal.modules["opal/rewriters/logical_operator_assignment"]=function(e){var f=e.module,a=e.klass,r=e.class_variable_set,i=e.defs,o=e.truthy,c=e.class_variable_get,j=e.rb_plus,s=e.const_set,d=e.lambda,u=e.eqeq,n=e.to_a,h=e.slice,m=e.send,l=e.def,g=e.send2,v=e.find_super,b=e.top,p=[],t=e.nil;return e.add_stubs("require,+,updated,s,==,include?,[],type,new_temp,freeze,call,fetch,error,process"),b.$require("opal/rewriters/base"),function(p,b){var _=f(p,"Opal"),y=[_].concat(b);return function(p,b){var _=f(p,"Rewriters"),y=[_].concat(b),w=e.$r(y);return function(f,p,b){var w=a(f,p,"LogicalOperatorAssignment"),y=[w].concat(b),_=e.$r(y);return i(w,"$reset_tmp_counter!",function(){return r(y[0],"@@counter",0)}),i(w,"$new_temp",function(){var n,s=t;return r(y[0],"@@counter",o((n=y[0].$$cvars["@@counter"],n!=null?"class variable":t))?o(s=c(y[0],"@@counter",!1))?s:0:0),r(y[0],"@@counter",j(c(y[0],"@@counter",!1),1)),"$logical_op_recvr_tmp_"+c(y[0],"@@counter",!1)}),s(y[0],"GET_SET",d(function e(s,i){var a=e.$$s==null?this:e.$$s;return s==null&&(s=t),i==null&&(i=t),d(function e(a,r,c){var l=e.$$s==null?this:e.$$s,h=t,d=t,m=t;return a==null&&(a=t),r==null&&(r=t),c==null&&(c=t),h=a.$updated(s),d=l.$s(c,h,r),o(["const","cvar"]["$include?"](s))&&u(c,"or")&&(m=l.$s("defined?",h),d=l.$s("if",m,l.$s("begin",d),r)),a.$updated(i,[].concat(n(a)).concat([d]))},{$$s:a})},{$$s:w})),s(y[0],"LocalVariableHandler",_("GET_SET")["$[]"]("lvar","lvasgn")),s(y[0],"InstanceVariableHandler",_("GET_SET")["$[]"]("ivar","ivasgn")),s(y[0],"ConstantHandler",_("GET_SET")["$[]"]("const","casgn")),s(y[0],"GlobalVariableHandler",_("GET_SET")["$[]"]("gvar","gvasgn")),s(y[0],"ClassVariableHandler",_("GET_SET")["$[]"]("cvar","cvasgn")),function(e,s){var r=a(e,s,"SendHandler");return i(r,"$call",function(s,i,a){var l=this,r=t,d=t,m=t,f=t,p=t,v=t,b=t,j=t,g=t,c=[].concat(n(s));return r=c[0]==null?t:c[0],d=c[1]==null?t:c[1],m=h(c,2),c,o(r)&&u(r.$type(),"send")&&(f=l.$new_temp(),p=l.$s("lvasgn",f,r),r=l.$s("js_tmp",f)),v=""+d+"=",b=s.$updated("send",[r,d].concat(n(m))),j=s.$updated("send",[r,v].concat(n(m)).concat([i])),g=l.$s(a,b,j),o(p)?l.$s("begin",p,g):g})}(y[0],w),function(e,s){var o=a(e,s,"ConditionalSendHandler");return i(o,"$call",function(s,o,i){var r,a=this,c=t,d=t,u=t,l=t,m=t,f=t,p=t,g=t;return i=""+i+"_asgn",r=[].concat(n(s)),c=r[0]==null?t:r[0],d=r[1]==null?t:r[1],u=h(r,2),r,l=a.$new_temp(),m=a.$s("lvasgn",l,c),c=a.$s("js_tmp",l),f=a.$s("send",c,"nil?"),p=s.$updated("send",[c,d].concat(n(u))),g=a.$s(i,p,o),a.$s("begin",m,a.$s("if",f,a.$s("nil"),g))})}(y[0],w),s(y[0],"HANDLERS",new Map([["lvasgn",_("LocalVariableHandler")],["ivasgn",_("InstanceVariableHandler")],["casgn",_("ConstantHandler")],["gvasgn",_("GlobalVariableHandler")],["cvasgn",_("ClassVariableHandler")],["send",_("SendHandler")],["csend",_("ConditionalSendHandler")]]).$freeze()),l(w,"$on_or_asgn",function(s){var a=this,i=t,r=t,c=t,o=[].concat(n(s));return i=o[0]==null?t:o[0],r=o[1]==null?t:o[1],o,c=m(_("HANDLERS"),"fetch",[i.$type()],function e(){var t=e.$$s==null?this:e.$$s;return t.$error("cannot handle LHS type: "+i.$type())},{$$s:a}).$call(i,r,"or"),a.$process(c)}),l(w,"$on_and_asgn",function(s){var a=this,i=t,r=t,c=t,o=[].concat(n(s));return i=o[0]==null?t:o[0],r=o[1]==null?t:o[1],o,c=m(_("HANDLERS"),"fetch",[i.$type()],function e(){var t=e.$$s==null?this:e.$$s;return t.$error("cannot handle LHS type: "+i.$type())},{$$s:a}).$call(i,r,"and"),a.$process(c)}),s(y[0],"ASSIGNMENT_STRING_NODE",w.$s("str","assignment")),l(w,"$on_defined?",function e(s){var i,l=e.$$p||t,a=this,r=t,c=t;return e.$$p=null,i=[].concat(n(s)),r=i[0]==null?t:i[0],c=i[1]==null?t:i[1],i,o(["or_asgn","and_asgn"]["$include?"](r.$type()))?_("ASSIGNMENT_STRING_NODE"):g(a,v(a,"on_defined?",e,!1,!0),"on_defined?",[s],null)})}(y[0],w("Base"),y)}(y[0],y)}(p[0],p)},Opal.modules["opal/rewriters/binary_operator_assignment"]=function(e){var d=e.module,a=e.klass,r=e.class_variable_set,o=e.defs,i=e.truthy,c=e.class_variable_get,j=e.rb_plus,s=e.const_set,l=e.lambda,n=e.to_a,u=e.slice,h=e.eqeq,p=e.send,m=e.def,g=e.send2,v=e.find_super,b=e.top,f=[],t=e.nil;return e.add_stubs("require,+,updated,[],==,type,new_temp,s,freeze,call,fetch,error,process"),b.$require("opal/rewriters/base"),function(f,b){var _=d(f,"Opal"),y=[_].concat(b);return function(f,b){var _=d(f,"Rewriters"),y=[_].concat(b),w=e.$r(y);return function(d,f,b){var w=a(d,f,"BinaryOperatorAssignment"),y=[w].concat(b),_=e.$r(y);return o(w,"$reset_tmp_counter!",function(){return r(y[0],"@@counter",0)}),o(w,"$new_temp",function(){var n,s=t;return r(y[0],"@@counter",i((n=y[0].$$cvars["@@counter"],n!=null?"class variable":t))?i(s=c(y[0],"@@counter",!1))?s:0:0),r(y[0],"@@counter",j(c(y[0],"@@counter",!1),1)),"$binary_op_recvr_tmp_"+c(y[0],"@@counter",!1)}),s(y[0],"GET_SET",l(function(s,o){return s==null&&(s=t),o==null&&(o=t),l(function(i,a,r,c){var l=t,d=t;return i==null&&(i=t),a==null&&(a=t),r==null&&(r=t),c==null&&(c=t),l=a.$updated(s),d=i.$updated("send",[l,r,c]),a.$updated(o,[].concat(n(a)).concat([d]))})})),s(y[0],"LocalVariableHandler",_("GET_SET")["$[]"]("lvar","lvasgn")),s(y[0],"InstanceVariableHandler",_("GET_SET")["$[]"]("ivar","ivasgn")),s(y[0],"ConstantHandler",_("GET_SET")["$[]"]("const","casgn")),s(y[0],"GlobalVariableHandler",_("GET_SET")["$[]"]("gvar","gvasgn")),s(y[0],"ClassVariableHandler",_("GET_SET")["$[]"]("cvar","cvasgn")),function(e,s){var r=a(e,s,"SendHandler");return o(r,"$call",function(s,o,a,r){var d=this,c=t,m=t,f=t,p=t,g=t,b=t,j=t,y=t,v=t,l=[].concat(n(o));return c=l[0]==null?t:l[0],m=l[1]==null?t:l[1],f=u(l,2),l,i(c)&&h(c.$type(),"send")&&(p=d.$new_temp(),g=d.$s("lvasgn",p,c),c=d.$s("js_tmp",p)),b=""+m+"=",j=o.$updated("send",[c,m].concat(n(f))),y=s.$updated("send",[j,a,r]),v=o.$updated("send",[c,b].concat(n(f)).concat([y])),i(g)?s.$updated("begin",[g,v]):v})}(y[0],w),function(e,s){var i=a(e,s,"ConditionalSendHandler");return o(i,"$call",function(s,o,i,a){var r=this,l=t,h=t,m=t,d=t,f=t,p=t,g=t,v=t,c=[].concat(n(o));return l=c[0]==null?t:c[0],h=c[1]==null?t:c[1],m=u(c,2),c,d=r.$new_temp(),f=r.$s("lvasgn",d,l),l=r.$s("js_tmp",d),p=r.$s("send",l,"nil?"),g=o.$updated("send",[l,h].concat(n(m))),v=s.$updated("op_asgn",[g,i,a]),r.$s("begin",f,r.$s("if",p,r.$s("nil"),v))})}(y[0],w),s(y[0],"HANDLERS",new Map([["lvasgn",_("LocalVariableHandler")],["ivasgn",_("InstanceVariableHandler")],["casgn",_("ConstantHandler")],["gvasgn",_("GlobalVariableHandler")],["cvasgn",_("ClassVariableHandler")],["send",_("SendHandler")],["csend",_("ConditionalSendHandler")]]).$freeze()),m(w,"$on_op_asgn",function(s){var a=this,i=t,r=t,c=t,l=t,o=[].concat(n(s));return i=o[0]==null?t:o[0],r=o[1]==null?t:o[1],c=o[2]==null?t:o[2],o,l=p(_("HANDLERS"),"fetch",[i.$type()],function e(){var t=e.$$s==null?this:e.$$s;return t.$error("cannot handle LHS type: "+i.$type())},{$$s:a}).$call(s,i,r,c),a.$process(l)}),s(y[0],"ASSIGNMENT_STRING_NODE",w.$s("str","assignment")),m(w,"$on_defined?",function e(s){var o,c=e.$$p||t,i=this,a=t,r=t;return e.$$p=null,o=[].concat(n(s)),a=o[0]==null?t:o[0],r=o[1]==null?t:o[1],o,h(a.$type(),"op_asgn")?_("ASSIGNMENT_STRING_NODE"):g(i,v(i,"on_defined?",e,!1,!0),"on_defined?",[s],null)})}(y[0],w("Base"),y)}(y[0],y)}(f[0],f)},Opal.modules["opal/rewriters/hashes/key_duplicates_rewriter"]=function(e){var o=e.module,u=e.klass,n=e.def,r=e.send2,a=e.find_super,s=e.to_a,i=e.truthy,c=e.eqeq,m=e.Opal,l=e.top,d=[],t=e.nil,h=e.$$$;return e.add_stubs("require,new,include?,type,<<,==,process_regular_node,updated,inspect,warn"),l.$require("opal/rewriters/base"),l.$require("set"),function(l,d){var p=o(l,"Opal"),f=[p].concat(d);return function(l,d){var p=o(l,"Rewriters"),f=[p].concat(d);return function(l,d){var p=o(l,"Hashes"),f=[p].concat(d);return function(o,l,d){var h=u(o,l,"KeyDuplicatesRewriter"),m=[h].concat(d),f=e.$r(m),p=h.$$prototype;return p.keys=t,n(h,"$initialize",function(){var t=this;return t.keys=f("UniqKeysSet").$new()}),n(h,"$on_hash",function e(n){var o,c=e.$$p||t,s=this,i=t;return e.$$p=null,function(){try{return o=[s.keys,f("UniqKeysSet").$new()],i=o[0],s.keys=o[1],o,r(s,a(s,"on_hash",e,!1,!0),"on_hash",[n],null)}finally{s.keys=i}}()}),n(h,"$on_pair",function e(n){var o,u=e.$$p||t,c=this,l=t,d=t;return e.$$p=null,o=[].concat(s(n)),l=o[0]==null?t:o[0],d=o[1]==null?t:o[1],o,i(["str","sym"]["$include?"](l.$type()))&&c.keys["$<<"](l),r(c,a(c,"on_pair",e,!1,!0),"on_pair",[n],null)}),n(h,"$on_kwsplat",function(n){var a=this,i=t,r=t,o=[].concat(s(n));return i=o[0]==null?t:o[0],r=o[1]==null?t:o[1],o,c(i.$type(),"hash")&&(i=a.$process_regular_node(i)),n.$updated(t,[i])}),function(o,a,r){var l=u(o,a,"UniqKeysSet"),h=[l].concat(r),d=e.$r(h),m=l.$$prototype;return m.set=t,n(l,"$initialize",function(){var t=this;return t.set=d("Set").$new()}),n(l,"$<<",function(n){var o,r=this,a=t,l=t;return i(r.set["$include?"](n))?(o=[].concat(s(n)),a=o[0]==null?t:o[0],l=o[1]==null?t:o[1],o,a=c(n.$type(),"str")?a.$inspect():":"+a,d("Kernel").$warn("warning: key "+a+" is duplicated and overwritten")):r.set["$<<"](n)})}(m[0],null,m)}(f[0],h(h(m,"Rewriters"),"Base"),f)}(f[0],f)}(f[0],f)}(d[0],d)},Opal.modules["opal/rewriters/dump_args"]=function(e){var a=e.module,c=e.klass,n=e.send2,s=e.find_super,o=e.to_a,i=e.def,l=e.top,r=[],t=e.nil;return e.add_stubs("require,updated"),l.$require("opal/rewriters/base"),function(r,l){var u=a(r,"Opal"),d=[u].concat(l);return function(r,l){var u=a(r,"Rewriters"),d=[u].concat(l),h=e.$r(d);return function(e,a){var r=c(e,a,"DumpArgs");return i(r,"$on_def",function e(i){var a,u=e.$$p||t,r=this,l=t,c=t,d=t;return e.$$p=null,i=n(r,s(r,"on_def",e,!1,!0),"on_def",[i],null),a=[].concat(o(i)),l=a[0]==null?t:a[0],c=a[1]==null?t:a[1],d=a[2]==null?t:a[2],a,i.$updated(t,t,new Map([["meta",new Map([["original_args",c]])]]))}),i(r,"$on_defs",function e(i){var a,h=e.$$p||t,r=this,l=t,d=t,c=t,u=t;return e.$$p=null,i=n(r,s(r,"on_defs",e,!1,!0),"on_defs",[i],null),a=[].concat(o(i)),l=a[0]==null?t:a[0],d=a[1]==null?t:a[1],c=a[2]==null?t:a[2],u=a[3]==null?t:a[3],a,i.$updated(t,t,new Map([["meta",new Map([["original_args",c]])]]))}),i(r,"$on_iter",function e(i){var a,d=e.$$p||t,r=this,c=t,l=t;return e.$$p=null,i=n(r,s(r,"on_iter",e,!1,!0),"on_iter",[i],null),a=[].concat(o(i)),c=a[0]==null?t:a[0],l=a[1]==null?t:a[1],a,i.$updated(t,t,new Map([["meta",new Map([["original_args",c]])]]))})}(d[0],h("Base"))}(d[0],d)}(r[0],r)},Opal.modules["opal/rewriters/deduplicate_arg_name"]=function(e){var o=e.module,r=e.klass,n=e.send,c=e.send2,l=e.find_super,s=e.def,i=e.truthy,d=e.to_ary,u=e.rb_plus,h=e.rb_gt,a=[],t=e.nil;return e.add_stubs("new,map,children,rename_arg,updated,type,[],unique_name,[]=,+,>"),function(a,m){var p=o(a,"Opal"),f=[p].concat(m);return function(a,m){var p=o(a,"Rewriters"),f=[p].concat(m),g=e.$r(f);return function(o,a,m){var f=r(o,a,"DeduplicateArgName"),p=[f].concat(m),g=e.$r(p),v=f.$$prototype;return v.arg_name_count=t,s(f,"$on_args",function e(s){var a=e.$$p||t,o=this,i=t;return e.$$p=null,o.arg_name_count=g("Hash").$new(0),i=n(s.$children(),"map",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s.$rename_arg(n)},{$$s:o}),c(o,l(o,"on_args",e,!1,!0),"on_args",[s.$updated(t,i)],null)}),s(f,"$rename_arg",function(s){var o,r,c=this,a=t,l=t,u=t;switch(s.$type().valueOf()){case"arg":case"restarg":case"kwarg":case"kwrestarg":case"blockarg":return a=s.$children()["$[]"](0),i(a)?s.$updated(t,[c.$unique_name(a)]):s;break;case"optarg":case"kwoptarg":return r=s.$children(),o=d(r),a=o[0]==null?t:o[0],l=o[1]==null?t:o[1],r,s.$updated(t,[c.$unique_name(a),l]);case"mlhs":return u=n(s.$children(),"map",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s.$rename_arg(n)},{$$s:c}),s.$updated(t,u);default:return s}}),s(f,"$unique_name",function(s){var o,r=this,a=t,a=(o=[s,u(r.arg_name_count["$[]"](s),1)],n(r.arg_name_count,"[]=",o),o[o.length-1]);return i(h(a,1))?""+s+"_$"+a:s})}(f[0],g("Base"),f)}(f[0],f)}(a[0],a)},Opal.modules["opal/rewriters/mlhs_args"]=function(e){var c=e.module,r=e.klass,a=e.send2,i=e.find_super,o=e.to_a,s=e.truthy,n=e.def,h=e.assign_ivar_val,m=e.rb_plus,l=e.send,d=e.eqeq,f=e.top,u=[],t=e.nil;return e.add_stubs("require,new,updated,rewritten,initialization,s,prepend_to_body,attr_reader,split!,+,each,children,==,type,new_mlhs_tmp,process,<<,length,[],empty?"),f.$require("opal/rewriters/base"),function(u,f){var g=c(u,"Opal"),p=[g].concat(f);return function(u,f){var g=c(u,"Rewriters"),p=[g].concat(f),v=e.$r(p);return function(c,u,f){var g=r(c,u,"MlhsArgs"),v=[g].concat(f),p=e.$r(v);return n(g,"$on_def",function e(n){var r,f=e.$$p||t,d=this,h=t,l=t,c=t,u=t,m=t;return e.$$p=null,n=a(d,i(d,"on_def",e,!1,!0),"on_def",[n],null),r=[].concat(o(n)),h=r[0]==null?t:r[0],l=r[1]==null?t:r[1],c=r[2]==null?t:r[2],r,u=p("Arguments").$new(l),l=l.$updated(t,u.$rewritten()),s(u.$initialization())&&(c=s(m=c)?m:d.$s("nil"),c=d.$prepend_to_body(c,u.$initialization())),n.$updated(t,[h,l,c])}),n(g,"$on_defs",function e(n){var r,g=e.$$p||t,d=this,h=t,m=t,l=t,c=t,u=t,f=t;return e.$$p=null,n=a(d,i(d,"on_defs",e,!1,!0),"on_defs",[n],null),r=[].concat(o(n)),h=r[0]==null?t:r[0],m=r[1]==null?t:r[1],l=r[2]==null?t:r[2],c=r[3]==null?t:r[3],r,u=p("Arguments").$new(l),l=l.$updated(t,u.$rewritten()),s(u.$initialization())&&(c=s(f=c)?f:d.$s("nil"),c=d.$prepend_to_body(c,u.$initialization())),n.$updated(t,[h,m,l,c])}),n(g,"$on_iter",function e(n){var r,m=e.$$p||t,d=this,l=t,c=t,u=t,h=t;return e.$$p=null,n=a(d,i(d,"on_iter",e,!1,!0),"on_iter",[n],null),r=[].concat(o(n)),l=r[0]==null?t:r[0],c=r[1]==null?t:r[1],r,u=p("Arguments").$new(l),l=l.$updated(t,u.$rewritten()),s(u.$initialization())&&(c=s(h=c)?h:d.$s("nil"),c=d.$prepend_to_body(c,u.$initialization())),n.$updated(t,[l,c])}),function(i,a,c){var u=r(i,a,"Arguments"),p=[u].concat(c),g=e.$r(p),f=u.$$prototype;return f.counter=f.args=f.initialization=t,u.$attr_reader("rewritten","initialization"),n(u,"$initialize",function(t){var n=this;return n.args=t,n.rewritten=[],n.initialization=[],n.rewriter=g("MlhsRewriter").$new(),n["$split!"]()}),n(u,"$reset_tmp_counter!",h("counter",0)),n(u,"$new_mlhs_tmp",function(){var n=this,o=t;return n.counter=s(o=n.counter)?o:0,n.counter=m(n.counter,1),"$mlhs_tmp"+n.counter}),n(u,"$split!",function(){var n=this;return l(n.args.$children(),"each",[],function e(n){var s=e.$$s==null?this:e.$$s,o=t,i=t,a=t;return s.rewriter==null&&(s.rewriter=t),s.initialization==null&&(s.initialization=t),s.rewritten==null&&(s.rewritten=t),n==null&&(n=t),d(n.$type(),"mlhs")?(o=s.$new_mlhs_tmp(),i=s.$s("lvar",o),a=s.rewriter.$process(n),s.initialization["$<<"](s.$s("masgn",a,i)),s.rewritten["$<<"](s.$s("arg",o).$updated(t,t,new Map([["meta",new Map([["arg_name",o]])]])))):s.rewritten["$<<"](n)},{$$s:n}),d(n.initialization.$length(),1)?n.initialization=n.initialization["$[]"](0):s(n.initialization["$empty?"]())?n.initialization=t:n.initialization=l(n,"s",["begin"].concat(o(n.initialization)))})}(v[0],p("Base"),v),function(e,o){var i=r(e,o,"MlhsRewriter");return n(i,"$on_arg",function(t){return t.$updated("lvasgn")}),n(i,"$on_restarg",function(n){var o=this,i=t,i=n.$children()["$[]"](0);return s(i)?o.$s("splat",n.$updated("lvasgn")):o.$s("splat")})}(v[0],p("Base"))}(p[0],v("Base"),p)}(p[0],p)}(u[0],u)},Opal.modules["opal/rewriters/arguments"]=function(e){var o=e.module,a=e.klass,r=e.send,n=e.truthy,s=e.def,i=[],t=e.nil;return e.add_stubs("attr_reader,each,type,<<,any?,raise,!,nil?,has_any_kwargs?,can_inline_kwargs?,empty?"),function(e,i){var l=o(e,"Opal"),c=[l].concat(i);return function(e,i){var c=o(e,"Rewriters"),l=[c].concat(i);return function(e,o){var i=a(e,o,"Arguments"),c=i.$$prototype;return c.restarg=c.postargs=c.kwargs=c.kwoptargs=c.kwrestarg=c.optargs=t,i.$attr_reader("args","optargs","restarg","postargs","kwargs","kwoptargs","kwrestarg","kwnilarg","shadowargs","blockarg"),s(i,"$initialize",function(s){var o=this;return o.args=[],o.optargs=[],o.restarg=t,o.postargs=[],o.kwargs=[],o.kwoptargs=[],o.kwrestarg=t,o.kwnilarg=!1,o.shadowargs=[],o.blockarg=t,r(s,"each",[],function e(s){var o=e.$$s==null?this:e.$$s;switch(o.optargs==null&&(o.optargs=t),o.restarg==null&&(o.restarg=t),o.postargs==null&&(o.postargs=t),o.args==null&&(o.args=t),o.kwargs==null&&(o.kwargs=t),o.kwoptargs==null&&(o.kwoptargs=t),o.shadowargs==null&&(o.shadowargs=t),s==null&&(s=t),s.$type().valueOf()){case"arg":case"mlhs":return(n(o.restarg)||n(o.optargs["$any?"]())?o.postargs:o.args)["$<<"](s);case"optarg":return o.optargs["$<<"](s);case"restarg":return o.restarg=s;case"kwarg":return o.kwargs["$<<"](s);case"kwoptarg":return o.kwoptargs["$<<"](s);case"kwnilarg":return o.kwnilarg=!0;case"kwrestarg":return o.kwrestarg=s;case"shadowarg":return o.shadowargs["$<<"](s);case"blockarg":return o.blockarg=s;default:return o.$raise("Unsupported arg type "+s.$type())}},{$$s:o})}),s(i,"$has_post_args?",function(){var s=this,i=t,o=t;return n(i=n(o=s.restarg["$nil?"]()["$!"]())?o:s.postargs["$any?"]())?i:n(o=s["$has_any_kwargs?"]())?s["$can_inline_kwargs?"]()["$!"]():o}),s(i,"$has_any_kwargs?",function(){var s=this,o=t,i=t;return n(o=n(i=s.kwargs["$any?"]())?i:s.kwoptargs["$any?"]())?o:s.kwrestarg["$nil?"]()["$!"]()}),s(i,"$can_inline_kwargs?",function(){var s=this,o=t,i=t;return n(o=n(i=s.optargs["$empty?"]())?s.restarg["$nil?"]():i)?s.postargs["$empty?"]():o})}(l[0],null)}(c[0],c)}(i[0],i)},Opal.modules["opal/rewriters/inline_args"]=function(e){var u=e.module,l=e.klass,a=e.send2,r=e.find_super,i=e.to_a,s=e.truthy,n=e.def,v=e.const_set,m=e.ensure_kwargs,g=e.get_kwarg,o=e.send,p=e.eqeq,f=e.Opal,c=e.top,h=[],t=e.nil,d=e.$$$;return e.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,[]"),c.$require("opal/rewriters/base"),c.$require("opal/rewriters/arguments"),function(c,h){var j=u(c,"Opal"),b=[j].concat(h);return function(c,h){var j=u(c,"Rewriters"),b=[j].concat(h),y=e.$r(b);return function(c,u,h){var b=l(c,u,"InlineArgs"),j=[b].concat(h),y=e.$r(j);return n(b,"$on_def",function e(n){var o,p=e.$$p||t,l=this,h=t,d=t,c=t,m=t,u=t,f=t;return e.$$p=null,n=a(l,r(l,"on_def",e,!1,!0),"on_def",[n],null),o=[].concat(i(n)),h=o[0]==null?t:o[0],d=o[1]==null?t:o[1],c=o[2]==null?t:o[2],o,c=s(m=c)?m:l.$s("nil"),u=y("Initializer").$new(d,new Map([["type","def"]])),f=d.$updated(t,u.$inline()),c=l.$prepend_to_body(c,u.$initialization()),n.$updated(t,[h,f,c])}),n(b,"$on_defs",function e(n){var o,g=e.$$p||t,l=this,h=t,m=t,d=t,c=t,f=t,u=t,p=t;return e.$$p=null,n=a(l,r(l,"on_defs",e,!1,!0),"on_defs",[n],null),o=[].concat(i(n)),h=o[0]==null?t:o[0],m=o[1]==null?t:o[1],d=o[2]==null?t:o[2],c=o[3]==null?t:o[3],o,c=s(f=c)?f:l.$s("nil"),u=y("Initializer").$new(d,new Map([["type","defs"]])),p=d.$updated(t,u.$inline()),c=l.$prepend_to_body(c,u.$initialization()),n.$updated(t,[h,m,p,c])}),n(b,"$on_iter",function e(n){var o,f=e.$$p||t,l=this,d=t,c=t,h=t,u=t,m=t;return e.$$p=null,n=a(l,r(l,"on_iter",e,!1,!0),"on_iter",[n],null),o=[].concat(i(n)),d=o[0]==null?t:o[0],c=o[1]==null?t:o[1],o,c=s(h=c)?h:l.$s("nil"),u=y("Initializer").$new(d,new Map([["type","iter"]])),m=d.$updated(t,u.$inline()),c=l.$prepend_to_body(c,u.$initialization()),n.$updated(t,[m,c])}),function(a,r,c){var d=l(a,r,"Initializer"),h=[d].concat(c),f=e.$r(h),u=d.$$prototype;return u.initialization=u.args=u.inline=t,d.$attr_reader("inline","initialization"),v(h[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()),n(d,"$initialize",function(n,a){var c,r=this;return a=m(a),c=g(a,"type"),r.args=f("Arguments").$new(n.$children()),r.inline=[],r.initialization=[],r.type=c,o(f("STEPS"),"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s.$send(n)},{$$s:r}),s(r.initialization["$any?"]())?r.initialization=o(r,"s",["begin"].concat(i(r.initialization))):r.initialization=t}),n(d,"$extract_blockarg",function(){var n=this,o=t;return s(o=n.args.$blockarg())?n.initialization["$<<"](o.$updated("extract_blockarg")):t}),n(d,"$initialize_shadowargs",function(){var n=this;return o(n.args.$shadowargs(),"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return s.initialization==null&&(s.initialization=t),n==null&&(n=t),s.initialization["$<<"](n.$updated("initialize_shadowarg"))},{$$s:n})}),n(d,"$extract_args",function(){var n=this;return o(n.args.$args(),"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return s.type==null&&(s.type=t),s.initialization==null&&(s.initialization=t),s.inline==null&&(s.inline=t),n==null&&(n=t),p(s.type,"iter")&&s.initialization["$<<"](n.$updated("initialize_iter_arg")),s.inline["$<<"](n)},{$$s:n})}),n(d,"$prepare_post_args",function(){var n=this;return s(n.args["$has_post_args?"]())?n.initialization["$<<"](n.$s("prepare_post_args",n.args.$args().$length())):t}),n(d,"$prepare_kwargs",function(){var n=this;return s(n.args["$has_any_kwargs?"]())?(s(n.args["$can_inline_kwargs?"]())?n.inline["$<<"](n.$s("arg","$kwargs")):(n.initialization["$<<"](n.$s("extract_kwargs")),n.inline["$<<"](n.$s("fake_arg"))),n.initialization["$<<"](n.$s("ensure_kwargs_are_kwargs"))):t}),n(d,"$extract_kwargs",function(){var n=this;return o(n.args.$kwargs(),"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return s.initialization==null&&(s.initialization=t),n==null&&(n=t),s.initialization["$<<"](n.$updated("extract_kwarg"))},{$$s:n})}),n(d,"$extract_kwoptargs",function(){var n=this;return o(n.args.$kwoptargs(),"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return s.initialization==null&&(s.initialization=t),n==null&&(n=t),s.initialization["$<<"](n.$updated("extract_kwoptarg"))},{$$s:n})}),n(d,"$extract_kwrestarg",function(){var n=this,o=t;return s(o=n.args.$kwrestarg())?n.initialization["$<<"](o.$updated("extract_kwrestarg")):t}),n(d,"$extract_post_args",function(){var n=this;return o(n.args.$postargs(),"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return s.initialization==null&&(s.initialization=t),s.inline==null&&(s.inline=t),n==null&&(n=t),s.initialization["$<<"](n.$updated("extract_post_arg")),s.inline["$<<"](s.$s("fake_arg"))},{$$s:n})}),n(d,"$extract_optargs",function(){var n=this,a=t,a=n.args["$has_post_args?"]();return o(n.args.$optargs(),"each",[],function e(n){var r,o=e.$$s==null?this:e.$$s,c=t,l=t;return o.initialization==null&&(o.initialization=t),o.inline==null&&(o.inline=t),n==null&&(n=t),s(a)?(r=[].concat(i(n)),c=r[0]==null?t:r[0],l=r[1]==null?t:r[1],r,o.initialization["$<<"](n.$updated("extract_post_optarg",[c,l,o.$args_to_keep()])),o.inline["$<<"](o.$s("fake_arg"))):(o.inline["$<<"](n.$updated("arg")),o.initialization["$<<"](n.$updated("extract_optarg")))},{$$s:n})}),n(d,"$extract_restarg",function(){var n=this,o=t,i=t;return s(o=n.args.$restarg())?(i=o.$children()["$[]"](0),n.initialization["$<<"](o.$updated("extract_restarg",[i,n.$args_to_keep()])),n.inline["$<<"](n.$s("fake_arg"))):t}),n(d,"$args_to_keep",function(){var t=this;return t.args.$postargs().$length()})}(j[0],d(d(f,"Rewriters"),"Base"),j)}(b[0],y("Base"),b)}(b[0],b)}(h[0],h)},Opal.modules["opal/rewriters/numblocks"]=function(e){var n=e.module,a=e.klass,r=e.to_ary,s=e.send,c=e.to_a,o=e.def,l=e.top,i=[],t=e.nil;return e.add_stubs("require,children,s,gen_args,map"),l.$require("opal/rewriters/base"),function(i,l){var u=n(i,"Opal"),d=[u].concat(l);return function(i,l){var u=n(i,"Rewriters"),d=[u].concat(l),h=e.$r(d);return function(n,i){var l=a(n,i,"Numblocks");return o(l,"$on_numblock",function(n){var i=this,l=t,d=t,u=t,a=n.$children(),o=r(a);return l=o[0]==null?t:o[0],d=o[1]==null?t:o[1],u=o[2]==null?t:o[2],a,i.$s("block",l,s(i,"s",["args"].concat(c(i.$gen_args(d)))),u)}),o(l,"$gen_args",function(o){var i=this;return s(e.Range.$new(1,o,!1),"map",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s.$s("arg","_"+n)},{$$s:i})})}(d[0],h("Base"))}(d[0],d)}(i[0],i)},Opal.modules["opal/rewriters/returnable_logic"]=function(e){var r=e.module,g=e.klass,n=e.truthy,f=e.rb_plus,s=e.def,m=e.rb_minus,h=e.assign_ivar_val,o=e.to_a,a=e.send2,c=e.find_super,i=e.slice,l=e.send,d=e.eqeq,p=e.top,u=[],t=e.nil;return e.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?"),p.$require("opal/rewriters/base"),function(u,p){var b=r(u,"Opal"),v=[b].concat(p);return function(u,p){var b=r(u,"Rewriters"),v=[b].concat(p),j=e.$r(v);return function(e,r){var u=g(e,r,"ReturnableLogic"),p=u.$$prototype;return p.counter=t,s(u,"$next_tmp",function(){var s=this,o=t;return s.counter=n(o=s.counter)?o:0,s.counter=f(s.counter,1),"$ret_or_"+s.counter}),s(u,"$free_tmp",function(){var t=this;return t.counter=m(t.counter,1)}),s(u,"$reset_tmp_counter!",h("counter",t)),s(u,"$on_if",function e(s){var i,d=e.$$p||t,l=this,r=t;return e.$$p=null,i=[].concat(o(s.$children())),r=i[0]==null?t:i[0],i,l["$check_control_flow!"](r),n(r)&&r.$meta()["$[]="]("if_test",!0),a(l,c(l,"on_if",e,!1,!0),"on_if",[s],d)}),s(u,"$on_case",function(s){var r,c=this,l=t,u=t,d=t,h=t,m=t,f=t,a=[].concat(o(s.$children()));return l=a[0]==null?t:a[0],r=a.length-1,r=r<1?1:r,u=i(a,1,r),d=a[r]==null?t:a[r],a,d=n(h=d)?h:c.$s("nil"),n(l)&&(m=c.$next_tmp()),f=c.$build_if_from_when(s,l,m,u,d),n(l)&&c.$free_tmp(),f}),s(u,"$on_or",function(s){var a=this,r=t,c=t,d=t,u=t,i=[].concat(o(s.$children()));return r=i[0]==null?t:i[0],c=i[1]==null?t:i[1],i,a["$check_control_flow!"](r),n(s.$meta()["$[]"]("if_test"))?(r.$meta()["$[]="]("if_test",(i=["if_test",!0],l(c.$meta(),"[]=",i),i[i.length-1])),d=a.$process(s.$updated("if",[r,a.$s("true"),c]))):(u=a.$next_tmp(),d=a.$process(s.$updated("if",[a.$s("lvasgn",u,r),a.$s("js_tmp",u),c])),a.$free_tmp()),d}),s(u,"$on_and",function(s){var a=this,r=t,c=t,d=t,u=t,i=[].concat(o(s.$children()));return r=i[0]==null?t:i[0],c=i[1]==null?t:i[1],i,a["$check_control_flow!"](r),n(s.$meta()["$[]"]("if_test"))?(r.$meta()["$[]="]("if_test",(i=["if_test",!0],l(c.$meta(),"[]=",i),i[i.length-1])),d=a.$process(s.$updated("if",[r,c,a.$s("false")]))):(u=a.$next_tmp(),d=a.$process(s.$updated("if",[a.$s("lvasgn",u,r),c,a.$s("js_tmp",u)])),a.$free_tmp()),d}),s(u,"$on_begin",function e(s){var i=e.$$p||t,o=this;return e.$$p=null,n(s.$meta()["$[]"]("if_test"))&&d(s.$children().$count(),1)&&s.$children().$first().$meta()["$[]="]("if_test",!0),s.$meta().$delete("if_test"),a(o,c(o,"on_begin",e,!1,!0),"on_begin",[s],i)}),u.$private(),s(u,"$check_control_flow!",function(n){var s=this;switch(n.$type().valueOf()){case"break":case"next":case"redo":case"retry":case"return":return s.$error("void value expression");default:return t}}),s(u,"$build_if_from_when",function(s,a,r,c,l){var u,h=this,m=t,f=t,p=t,g=t,v=t,d=[].concat(o(c));return m=d[0]==null?t:d[0],f=i(d,1),d,d=[].concat(o(m.$children())),u=d.length-1,u=u<0?0:u,p=i(d,0,u),g=d[u]==null?t:d[u],d,v=h.$build_rule_from_parts(s,a,r,p),m.$updated("if",[v,h.$process(g),n(f["$empty?"]())?h.$process(l):h.$build_if_from_when(t,t,r,f,l)])}),s(u,"$build_rule_from_parts",function(s,a,r,c){var u,l=this,h=t,m=t,f=t,v=t,p=t,g=t;return a=n(s)&&n(r)?s.$updated("lvasgn",[r,l.$process(a)]):l.$s("js_tmp",r),u=[].concat(o(c)),h=u[0]==null?t:u[0],m=i(u,1),u,f=d(h.$type(),"splat")?(v=h.$children().$first(),p=l.$next_tmp(),g=l.$s("send",l.$process(v),"any?",l.$s("iter",l.$s("args",l.$s("arg",p)),l.$build_rule_from_parts(t,t,r,[l.$s("lvar",p)]))),n(s)&&n(r)?l.$s("begin",a,g):g):n(r)?l.$s("send",l.$process(h),"===",a):l.$process(h),n(m["$empty?"]())?f:l.$s("if",f,l.$s("true"),l.$build_rule_from_parts(t,t,r,m))})}(v[0],j("Base"))}(v[0],v)}(u[0],u)},Opal.modules["opal/rewriters/forward_args"]=function(e){var r=e.module,f=e.klass,n=e.def,i=e.not,o=e.send2,s=e.find_super,a=e.eqeq,c=e.truthy,l=e.range,d=e.to_a,h=e.neqeq,m=e.top,u=[],t=e.nil;return e.add_stubs("require,process,s,!,first,children,updated,==,type,last,[],!=,class"),m.$require("opal/rewriters/base"),function(u,m){var g=r(u,"Opal"),p=[g].concat(m);return function(u,m){var g=r(u,"Rewriters"),p=[g].concat(m),v=e.$r(p);return function(r,u,m){var p=f(r,u,"ForwardArgs"),g=[p].concat(m),v=e.$r(g);return n(p,"$on_forward_args",function(){var n=this;return n.$process(n.$s("args",n.$s("forward_arg","$")))}),n(p,"$on_forwarded_restarg",function(){var n=this;return n.$process(n.$s("splat",n.$s("lvar","$fwd_rest")))}),n(p,"$on_forwarded_kwrestarg",function(){var n=this;return n.$process(n.$s("kwsplat",n.$s("lvar","$fwd_kwrest")))}),n(p,"$on_block_pass",function e(n){var r=e.$$p||t,a=this;return e.$$p=null,i(n.$children().$first())?a.$process(n.$updated(t,[a.$s("lvar","$fwd_block")])):o(a,s(a,"on_block_pass",e,!1,!0),"on_block_pass",[n],r)}),n(p,"$on_args",function e(n){var u=e.$$p||t,i=this,r=t;return e.$$p=null,c(n.$children().$last())&&a(n.$children().$last().$type(),"forward_arg")?(r=n.$children()["$[]"](l(0,-2,!1)),o(i,s(i,"on_args",e,!1,!0),"on_args",[n.$updated(t,[].concat(d(r)).concat([i.$s("restarg","$fwd_rest"),i.$s("blockarg","$fwd_block")]))],null)):o(i,s(i,"on_args",e,!1,!0),"on_args",[n],u)}),n(p,"$on_restarg",function e(n){var r=e.$$p||t,a=this;return e.$$p=null,i(n.$children().$first())?n.$updated(t,["$fwd_rest"]):o(a,s(a,"on_restarg",e,!1,!0),"on_restarg",[n],r)}),n(p,"$on_kwrestarg",function e(n){var r=e.$$p||t,a=this;return e.$$p=null,i(n.$children().$first())?n.$updated(t,["$fwd_kwrest"]):o(a,s(a,"on_kwrestarg",e,!1,!0),"on_kwrestarg",[n],r)}),n(p,"$on_blockarg",function e(n){var r=e.$$p||t,a=this;return e.$$p=null,i(n.$children().$first())?n.$updated(t,["$fwd_block"]):o(a,s(a,"on_blockarg",e,!1,!0),"on_blockarg",[n],r)}),n(p,"$on_send",function e(n){var u=e.$$p||t,i=this,r=t;return e.$$p=null,c(n.$children().$last())&&h(n.$children().$last().$class(),v("Symbol"))&&a(n.$children().$last().$type(),"forwarded_args")?(r=n.$children()["$[]"](l(0,-2,!1)),o(i,s(i,"on_send",e,!1,!0),"on_send",[n.$updated(t,[].concat(d(r)).concat([i.$s("splat",i.$s("lvar","$fwd_rest")),i.$s("block_pass",i.$s("lvar","$fwd_block"))]))],null)):o(i,s(i,"on_send",e,!1,!0),"on_send",[n],u)})}(p[0],v("Base"),p)}(p[0],p)}(u[0],u)},Opal.modules["opal/rewriters/thrower_finder"]=function(e){var c=e.module,m=e.klass,n=e.def,o=e.send2,a=e.find_super,s=e.send,i=e.find_block_super,r=e.truthy,u=e.range,h=e.slice,l=[],t=e.nil,d=e.$$$;return e.add_stubs("tracking,pushing,to_proc,on_loop,detect,[],children,!=,type,private,each,push,map,last,[]=,meta"),function(l,f){var g=c(l,"Opal"),p=[g].concat(f);return function(l,f){var g=c(l,"Rewriters"),p=[g].concat(f),v=e.$r(p);return function(c,l){var d=m(c,l,"ThrowerFinder"),f=d.$$prototype;return f.break_stack=f.redo_stack=f.retry_stack=f.rescue_else_stack=t,n(d,"$initialize",function(){var t=this;return t.break_stack=[],t.redo_stack=[],t.retry_stack=[],t.rescue_else_stack=[]}),n(d,"$on_break",function e(n){var i=e.$$p||t,s=this;return e.$$p=null,s.$tracking("break",s.break_stack),o(s,a(s,"on_break",e,!1,!0),"on_break",[n],i)}),n(d,"$on_redo",function e(n){var i=e.$$p||t,s=this;return e.$$p=null,s.$tracking("redo",s.redo_stack),o(s,a(s,"on_redo",e,!1,!0),"on_redo",[n],i)}),n(d,"$on_retry",function e(n){var i=e.$$p||t,s=this;return e.$$p=null,s.$tracking("retry",s.retry_stack),o(s,a(s,"on_retry",e,!1,!0),"on_retry",[n],i)}),n(d,"$on_iter",function e(n){var r=e.$$p||t,a=this;return e.$$p=null,s(a,"pushing",[[a.break_stack,n]],function t(){var s=t.$$s==null?this:t.$$s;return o(s,i(s,"on_iter",t.$$def||e,!1,!0),"on_iter",[n],r)},{$$s:a})}),n(d,"$on_loop",function e(n){var i=e.$$p||t,o=this;return e.$$p=null,s(o,"pushing",[[o.redo_stack,n],[o.break_stack,t]],i.$to_proc())}),n(d,"$on_for",function e(n){var r=e.$$p||t,a=this;return e.$$p=null,s(a,"on_loop",[n],function t(){var s=t.$$s==null?this:t.$$s;return o(s,i(s,"on_for",t.$$def||e,!1,!0),"on_for",[n],r)},{$$s:a})}),n(d,"$on_while",function e(n){var r=e.$$p||t,a=this;return e.$$p=null,s(a,"on_loop",[n],function t(){var s=t.$$s==null?this:t.$$s;return o(s,i(s,"on_while",t.$$def||e,!1,!0),"on_while",[n],r)},{$$s:a})}),n(d,"$on_while_post",function e(n){var r=e.$$p||t,a=this;return e.$$p=null,s(a,"on_loop",[n],function t(){var s=t.$$s==null?this:t.$$s;return o(s,i(s,"on_while_post",t.$$def||e,!1,!0),"on_while_post",[n],r)},{$$s:a})}),n(d,"$on_until",function e(n){var r=e.$$p||t,a=this;return e.$$p=null,s(a,"on_loop",[n],function t(){var s=t.$$s==null?this:t.$$s;return o(s,i(s,"on_until",t.$$def||e,!1,!0),"on_until",[n],r)},{$$s:a})}),n(d,"$on_until_post",function e(n){var r=e.$$p||t,a=this;return e.$$p=null,s(a,"on_loop",[n],function t(){var s=t.$$s==null?this:t.$$s;return o(s,i(s,"on_until_post",t.$$def||e,!1,!0),"on_until_post",[n],r)},{$$s:a})}),n(d,"$on_defined",function e(n){var r=e.$$p||t,a=this;return e.$$p=null,s(a,"pushing",[[a.redo_stack,t],[a.break_stack,t],[a.retry_stack,t]],function t(){var s=t.$$s==null?this:t.$$s;return o(s,i(s,"on_defined",t.$$def||e,!1,!0),"on_defined",[n],r)},{$$s:a})}),n(d,"$on_ensure",function e(n){var r=e.$$p||t,a=this;return e.$$p=null,s(a,"pushing",[[a.rescue_else_stack,n]],function t(){var s=t.$$s==null?this:t.$$s;return o(s,i(s,"on_ensure",t.$$def||e,!1,!0),"on_ensure",[n],r)},{$$s:a})}),n(d,"$on_rescue",function e(n){var c=e.$$p||t,a=this;return e.$$p=null,r(s(n.$children()["$[]"](u(1,-1,!1)),"detect",[],function(n){var s=t;return n==null&&(n=t),r(s=n)?n.$type()["$!="]("resbody"):s}))&&a.$tracking("rescue_else",a.rescue_else_stack),s(a,"pushing",[[a.rescue_else_stack,t],[a.retry_stack,n]],function t(){var s=t.$$s==null?this:t.$$s;return o(s,i(s,"on_rescue",t.$$def||e,!1,!0),"on_rescue",[n],c)},{$$s:a})}),d.$private(),n(d,"$pushing",function n(){var i,a,c=n.$$p||t,r=t;return n.$$p=null,a=h(arguments),i=a,s(i,"each",[],function(n,s){return n==null&&(n=t),s==null&&(s=t),n.$push(s)}),r=e.yieldX(c,[]),s(s(i,"map",[],"first".$to_proc()),"each",[],"pop".$to_proc()),r},-1),n(d,"$tracking",function(n,o){var i;return r(o.$last())?(i=["has_"+n,!0],s(o.$last().$meta(),"[]=",i),i[i.length-1]):t})}(p[0],d(d(v("Opal"),"Rewriters"),"Base"))}(p[0],p)}(l[0],l)},Opal.modules["opal/rewriter"]=function(e){var h=e.module,m=e.klass,i=e.truthy,o=e.def,r=e.ensure_kwargs,c=e.hash_get,l=e.eqeq,d=e.assign_ivar,u=e.send,n=e.top,a=[],s=e.nil,t=e.$$$;return e.add_stubs("require,<<,list,delete,==,!=,use,disabled?,class,each,rewritter_disabled?,new,process"),n.$require("opal/rewriters/opal_engine_check"),n.$require("opal/rewriters/targeted_patches"),n.$require("opal/rewriters/for_rewriter"),n.$require("opal/rewriters/js_reserved_words"),n.$require("opal/rewriters/block_to_iter"),n.$require("opal/rewriters/dot_js_syntax"),n.$require("opal/rewriters/pattern_matching"),n.$require("opal/rewriters/logical_operator_assignment"),n.$require("opal/rewriters/binary_operator_assignment"),n.$require("opal/rewriters/hashes/key_duplicates_rewriter"),n.$require("opal/rewriters/dump_args"),n.$require("opal/rewriters/deduplicate_arg_name"),n.$require("opal/rewriters/mlhs_args"),n.$require("opal/rewriters/inline_args"),n.$require("opal/rewriters/numblocks"),n.$require("opal/rewriters/returnable_logic"),n.$require("opal/rewriters/forward_args"),n.$require("opal/rewriters/thrower_finder"),function(n,a){var p=h(n,"Opal"),f=[p].concat(a);return function(n,a,h){var f=m(n,a,"Rewriter"),g=[f].concat(h),p=e.$r(g),v=f.$$prototype;return v.sexp=s,f.disabled=!1,function(t){return o(t,"$list",function(){var t=this,n=s;return t.list==null&&(t.list=s),t.list=i(n=t.list)?n:[]}),o(t,"$use",function(t){var n=this;return n.$list()["$<<"](t)}),o(t,"$delete",function(t){var n=this;return n.$list().$delete(t)}),o(t,"$disable",function t(n){var a,u=t.$$p||s,o=this,l=s,d=s;return o.disabled==null&&(o.disabled=s),t.$$p=null,n=r(n),a=c(n,"except"),a==null&&(a=s),function(){try{return l=o.disabled,o.disabled=!i(d=a)||d,e.yieldX(u,[])}finally{o.disabled=l}}()},-1),o(t,"$disabled?",function(){var t=this;return t.disabled==null&&(t.disabled=s),t.disabled["$=="](!0)}),o(t,"$rewritter_disabled?",function(t){var n=this;return n.disabled==null&&(n.disabled=s),!l(n.disabled,!1)&&n.disabled["$!="](t)})}(e.get_singleton_class(f),g),f.$use(t(p("Rewriters"),"OpalEngineCheck")),f.$use(t(p("Rewriters"),"ForRewriter")),f.$use(t(p("Rewriters"),"Numblocks")),f.$use(t(p("Rewriters"),"ForwardArgs")),f.$use(t(p("Rewriters"),"BlockToIter")),f.$use(t(p("Rewriters"),"TargetedPatches")),f.$use(t(p("Rewriters"),"DotJsSyntax")),f.$use(t(p("Rewriters"),"PatternMatching")),f.$use(t(p("Rewriters"),"JsReservedWords")),f.$use(t(p("Rewriters"),"LogicalOperatorAssignment")),f.$use(t(p("Rewriters"),"BinaryOperatorAssignment")),f.$use(t(t(p("Rewriters"),"Hashes"),"KeyDuplicatesRewriter")),f.$use(t(p("Rewriters"),"ReturnableLogic")),f.$use(t(p("Rewriters"),"DeduplicateArgName")),f.$use(t(p("Rewriters"),"DumpArgs")),f.$use(t(p("Rewriters"),"MlhsArgs")),f.$use(t(p("Rewriters"),"InlineArgs")),f.$use(t(p("Rewriters"),"ThrowerFinder")),o(f,"$initialize",d("sexp")),o(f,"$process",function(){var t=this;return i(t.$class()["$disabled?"]())?t.sexp:(u(t.$class().$list(),"each",[],function e(t){var n=e.$$s==null?this:e.$$s,o=s;return n.sexp==null&&(n.sexp=s),t==null&&(t=s),i(n.$class()["$rewritter_disabled?"](t))?s:(o=t.$new(),n.sexp=o.$process(n.sexp))},{$$s:t}),t.sexp)})}(f[0],null,f)}(a[0],a)},Opal.modules["opal/parser/source_buffer"]=function(e){var n=e.module,i=e.klass,a=e.truthy,r=e.send2,c=e.find_super,l=e.defs,s=[],o=e.nil,t=e.$$$;return function(s,d){var h=n(s,"Opal"),u=[h].concat(d);return function(s,d){var h=n(s,"Parser"),u=[h].concat(d);return function(n,s,d){var u=i(n,s,"SourceBuffer"),h=[u].concat(d),m=e.$r(h);return l(u,"$recognize_encoding",function e(n){var l=e.$$p||o,s=this,i=o;return e.$$p=null,a(i=r(s,c(s,"recognize_encoding",e,!1,!0),"recognize_encoding",[n],l))?i:t(m("Encoding"),"UTF_8")})}(u[0],t(t(t("Parser"),"Source"),"Buffer"),u)}(u[0],u)}(s[0],s)},Opal.modules["opal/parser/default_config"]=function(e){var o=e.module,i=e.send2,a=e.find_super,s=e.def,m=e.lambda,h=e.send,u=e.defs,l=e.slice,d=e.truthy,r=e.Opal,c=[],t=e.nil,n=e.$$$;return e.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(c,f){var g=o(c,"Opal"),p=[g].concat(f);return function(c,f){var g=o(c,"Parser"),p=[g].concat(f);return function(c,f){var p=o(c,"DefaultConfig"),v=[p].concat(f),g=e.$r(v);return function(e){var n=o(e,"ClassMethods");return n.$attr_accessor("diagnostics_consumer"),s(n,"$default_parser",function e(){var o=e.$$p||t,s=this,n=t;return e.$$p=null,n=i(s,a(s,"default_parser",e,!1,!0),"default_parser",[],o),n.$diagnostics()["$all_errors_are_fatal="](!0),n.$diagnostics()["$ignore_warnings="](!1),n.$diagnostics()["$consumer="](s.$diagnostics_consumer()),n})}(v[0]),u(p,"$included",function(n){var s;return n.$extend(g("ClassMethods")),(s=[m(function(n){return n==null&&(n=t),t})],h(n,"diagnostics_consumer=",s),s[s.length-1])}),s(p,"$initialize",function e(){var o,c,d=e.$$p||t,r=this;return e.$$p=null,o=l(arguments),c=o,i(r,a(r,"initialize",e,!1,!0),"initialize",[n(n(g("Opal"),"AST"),"Builder").$new()],null)},-1),s(p,"$parse",function e(s){var h=e.$$p||t,o=this,c=t,l=t,u=t;return e.$$p=null,c=d(l=i(o,a(o,"parse",e,!1,!0),"parse",[s],h))?l:n(n(r,"AST"),"Node").$new("nil"),u=n(n(r,"AST"),"Node").$new("top",[c]),o.$rewrite(u)}),s(p,"$rewrite",function(t){return n(g("Opal"),"Rewriter").$new(t).$process()})}(p[0],p),function(e){return e.$attr_accessor("default_parser_class"),s(e,"$default_parser",function(){var t=this;return t.$default_parser_class().$default_parser()})}(e.get_singleton_class(g),p)}(p[0],p)}(c[0],c)},Opal.modules["opal/parser/with_ruby_lexer"]=function(e){var o=e.klass,i=e.send,n=[],s=e.$r(n),a=e.nil,t=e.$$$;return e.add_stubs("include,default_parser_class="),function(n,s,a){var r,c=o(n,s,"WithRubyLexer"),d=[c].concat(a),l=e.$r(d);return c.$include(t(t(l("Opal"),"Parser"),"DefaultConfig")),(r=[c],i(t(l("Opal"),"Parser"),"default_parser_class=",r),r[r.length-1])}(t(s("Opal"),"Parser"),t(s("Parser"),"Ruby32"),n)},Opal.modules["opal/parser/patch"]=function(e){var r=e.klass,n=e.truthy,o=e.send,i=e.def,c=e.rb_plus,l=e.eqeq,j=e.not,b=e.rb_le,d=e.eqeqeq,h=e.rb_minus,m=e.rb_gt,f=e.rb_times,p=e.rb_divide,g=e.thrower,v=e.module,u=[],a=e.$r(u),t=e.nil,s=e.$$$;return e.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(e,s){var c=r(e,s,"Lexer"),a=c.$$prototype;return a.source_buffer=a.strings=a.source_pts=t,i(c,"$source_buffer=",function(s){var a,i=this,r=t;return i.source_buffer=s,n(i.source_buffer)?(r=i.source_buffer.$source(),i.source_pts=r.$unpack("U*")):i.source_pts=t,n(i.strings)?(i.strings["$source_buffer="](i.source_buffer),(a=[i.source_pts],o(i.strings,"source_pts=",a),a[a.length-1])):t})}(a("Parser"),null),function(s,o){var a=r(s,o,"Literal"),l=a.$$prototype;return l.buffer_s=l.buffer=t,e.udef(a,"$extend_string"),i(a,"$extend_string",function(s,o,i){var a=this,r=t;return a.buffer_s=n(r=a.buffer_s)?r:o,a.buffer_e=i,a.buffer=c(a.buffer,s)})}(s(a("Parser"),"Lexer"),null),function(e,s){var a=r(e,s,"Buffer"),c=a.$$prototype;return c.lines=c.source=t,i(a,"$source_lines",function(){var s=this,a=t,i=t;return s.lines=n(a=s.lines)?a:(i=s.source.$lines().$to_a(),n(s.source["$end_with?"](`
`))?i["$<<"](""):t,o(i,"map",[],function(n){return n==null&&(n=t),n.$chomp(`
`)}))})}(s(a("Parser"),"Source"),null),function(e,a){var c=r(e,a,"Default");return i(c,"$check_lvar_name",function(s,o){var i=this;return n(s["$=~"](new RegExp("^[\\p{Ll}|_][\\p{L}\\p{Nl}\\p{Nd}_]*$","u")))?t:i.$diagnostic("error","lvar_name",new Map([["name",s]]),o)}),i(c,"$dedent_string",function(i,a){var r=t,c=t;if(!n(a["$nil?"]()))switch(r=s(s(s("Parser"),"Lexer"),"Dedenter").$new(a),i.$type().valueOf()){case"str":i=i.$updated(t,[r.$dedent(i.$children().$first())]);break;case"dstr":case"xstr":c=o(i.$children(),"map",[],function(s){if(s==null&&(s=t),l(s.$type(),"str")){if(s=s.$updated(t,[r.$dedent(s.$children().$first())]),n(s.$children().$first()["$empty?"]()))return t}else r.$interrupt();return s}),i=i.$updated(t,c.$compact());break;default:t}return i})}(s(a("Parser"),"Builders"),null),function(a,u,v){var _=r(a,u,"Dedenter"),w=[_].concat(v),y=e.$r(w);return i(_,"$dedent",function(a){var v=this,u=t,r=t,u=a.$encoding(),r=a.$force_encoding(s(y("Encoding"),"BINARY")).$split(`\\
`);return l(r.$length(),1)?r=[a.$force_encoding(u)]:o(r,"map!",[],function(n){return n==null&&(n=t),n.$force_encoding(u)}),o(r,"each_with_index",[],function s(i,a){var w,u=s.$$s==null?this:s.$$s,_=t,v=t;return u.at_line_begin==null&&(u.at_line_begin=t),u.dedent_level==null&&(u.dedent_level=t),i==null&&(i=t),a==null&&(a=t),l(a,0)&&j(u.at_line_begin)?t:(_=u.dedent_level,v=0,function(){try{var e=g("break");return o(i,"each_char",[],function s(o){var i=s.$$s==null?this:s.$$s,a=t;if(i.dedent_level==null&&(i.dedent_level=t),o==null&&(o=t),n(b(_,0))&&e.$throw(t,s.$$is_lambda),d(" ",a=o))return v=c(v,1),_=h(_,1);if(d(" ",a))return n(m(f(y("TAB_WIDTH"),c(p(v,y("TAB_WIDTH")),1)),i.dedent_level))&&e.$throw(t,s.$$is_lambda),v=c(v,1),_=h(_,y("TAB_WIDTH"));e.$throw(t,s.$$is_lambda)},{$$s:u})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}(),(w=[a,i["$[]"](e.Range.$new(v,-1,!1))],o(r,"[]=",w),w[w.length-1]))},{$$s:v}),a=r.$join(),v.at_line_begin=a["$end_with?"](`
`),a})}(s(a("Parser"),"Lexer"),null,u),function(s){var a=v(s,"Mixin");return e.udef(a,"$process"),i(a,"$process",function(s){var r,i=this,a=t,c=t,d=t,l=t;return i._on_handler_cache==null&&(i._on_handler_cache=t),n(s["$nil?"]())?t:(i._on_handler_cache=n(a=i._on_handler_cache)?a:new Map,c=s.$type(),d=n(a=i._on_handler_cache["$[]"](c))?a:(r=[c,(l="on_"+c,n(i["$respond_to?"](l))?t:l="handler_missing",l)],o(i._on_handler_cache,"[]=",r),r[r.length-1]),n(a=i.$send(d,s))?a:s)})}(s(a("AST"),"Processor")),function(t,n){var s=r(t,n,"Default");return e.udef(s,"$string_value"),i(s,"$string_value",function(t){var n=this;return n.$value(t)})}(s(a("Parser"),"Builders"),null)},Opal.modules["opal/parser"]=function(e){var t=e.top,n=e.nil;return e.add_stubs("require"),t.$require("opal/ast/builder"),t.$require("opal/rewriter"),t.$require("opal/parser/source_buffer"),t.$require("opal/parser/default_config"),t.$require("opal/parser/with_ruby_lexer"),t.$require("opal/parser/patch")},Opal.modules["opal/fragment"]=function(e){var c=e.module,l=e.klass,n=e.def,s=e.truthy,o=e.eqeq,d=e.rb_plus,u=e.rb_gt,i=e.to_a,a=e.not,r=[],t=e.nil,h=e.$$$;return e.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(r,m){var p=c(r,"Opal"),f=[p].concat(m);return function(r,c,m){var f=l(r,c,"Fragment"),g=[f].concat(m),v=e.$r(g),p=f.$$prototype;return p.code=p.scope=p.sexp=t,f.$attr_reader("code"),n(f,"$initialize",function(n,s,o){var i=this;return o==null&&(o=t),i.code=n.$to_s(),i.sexp=o,i.scope=s},-3),n(f,"$inspect",function(){var t=this;return"f("+t.code.$inspect()+")"}),n(f,"$source_map_name_for",function(n){var r,c=this,l=t,m=t,g=t,f=t,p=t;switch(n.$type().valueOf()){case"top":switch(n.$meta()["$[]"]("kind").valueOf()){case"require":return"<top (required)>";case"eval":return"(eval)";case"main":return"<main>";default:return t}break;case"begin":case"newline":case"js_return":return s(c.scope)?c.$source_map_name_for(c.scope.$sexp()):t;break;case"iter":for(l=c.scope,m=1;s(l);)if(o(l.$class(),h(v("Nodes"),"IterNode")))m=d(m,1),l=l.$parent();else break;return s(u(m,1))&&(g=" ("+m+" levels)"),"block"+g+" in "+c.$source_map_name_for(l.$sexp());case"self":return"self";case"module":return r=[].concat(i(n)),f=r[0]==null?t:r[0],r,"<module:"+c.$source_map_name_for(f)+">";case"class":return r=[].concat(i(n)),f=r[0]==null?t:r[0],r,"<class:"+c.$source_map_name_for(f)+">";case"const":return r=[].concat(i(n)),l=r[0]==null?t:r[0],p=r[1]==null?t:r[1],r,a(l)||o(l.$type(),"cbase")?p.$to_s():""+c.$source_map_name_for(l)+"::"+p;break;case"int":return n.$children().$first();case"def":return n.$children().$first();case"defs":return n.$children()["$[]"](1);case"send":return n.$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 n.$children().$first();case"str":case"xstr":return c.$source_map_name_for(c.scope.$sexp());default:return t}}),n(f,"$source_map_name",function(){var n=this;return s(n.sexp)?n.$source_map_name_for(n.sexp):t}),n(f,"$location",function(){var n=this,i=t,r=t;return a(n.sexp)?t:o(n.sexp.$type(),"send")?(i=n.sexp.$loc(),s(i["$respond_to?"]("dot"))?s(r=i.$dot())?r:i.$selector():s(i["$respond_to?"]("operator"))?i.$operator():n.sexp):o(n.sexp.$type(),"iter")?s(i["$respond_to?"]("begin"))?n.sexp.$loc().$begin():n.sexp:n.sexp}),n(f,"$line",function(){var n,s=this;return n=s.$location(),n===t||n==null?t:n.$line()}),n(f,"$column",function(){var n,s=this;return n=s.$location(),n===t||n==null?t:n.$column()}),n(f,"$skip_source_map?",function(){var t=this;return t.sexp["$=="](!1)})}(f[0],null,f)}(r[0],r)},Opal.modules["opal/nodes/closure"]=function(e){var r=e.module,b=e.klass,c=e.const_set,o=e.send,l=e.defs,s=e.def,n=e.truthy,i=e.eqeq,u=e.slice,v=e.extract_kwargs,p=e.ensure_kwargs,h=e.hash_get,m=e.neqeq,f=e.thrower,a=e.not,g=e.to_a,d=[],t=e.nil;return e.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(d,j){var _=r(d,"Opal"),y=[_].concat(j);return function(d,j){var _=r(d,"Nodes"),y=[_].concat(j);return function(d,j,y){var _=b(d,j,"Closure"),w=[_].concat(y),x=e.$r(w),O=_.$$prototype;return O.catchers=O.throwers=O.type=O.node=t,c(w[0],"NONE",0),_.types=new Map,l(_,"$add_type",function(n,s){var i,a=this;return a.types==null&&(a.types=t),a.$const_set(n,s),(i=[n,s],o(a.types,"[]=",i),i[i.length-1])}),l(_,"$type_inspect",function(n){var s=this;return s.types==null&&(s.types=t),o(o(s.types,"reject",[],function(s,o){return s==null&&(s=t),o==null&&(o=t),n["$&"](o)["$=="](0)}),"map",[],"first".$to_proc()).$join("|")}),_.$add_type("JS_FUNCTION",1["$<<"](0)),_.$add_type("JS_LOOP",1["$<<"](1)),_.$add_type("JS_LOOP_INSIDE",1["$<<"](2)),_.$add_type("DEF",1["$<<"](3)),_.$add_type("LAMBDA",1["$<<"](4)),_.$add_type("ITER",1["$<<"](5)),_.$add_type("MODULE",1["$<<"](6)),_.$add_type("LOOP",1["$<<"](7)),_.$add_type("LOOP_INSIDE",1["$<<"](8)),_.$add_type("SEND",1["$<<"](9)),_.$add_type("TOP",1["$<<"](10)),_.$add_type("RESCUE_RETRIER",1["$<<"](11)),c(w[0],"ANY",4294967295),s(_,"$initialize",function(t,n,s){var o=this,i=[t,n,s];return o.node=i[0],o.type=i[1],o.parent=i[2],i,o.catchers=[],o.throwers=new Map}),s(_,"$register_catcher",function(t){var s=this;return t==null&&(t="return"),n(s.catchers["$include?"](t))||s.catchers["$<<"](t),"$t_"+t},-1),s(_,"$register_thrower",function(t,n){var s,i=this;return s=[t,n],o(i.throwers,"[]=",s),s[s.length-1]}),s(_,"$is?",function(t){var n=this;return n.type["$&"](t)["$!="](0)}),s(_,"$inspect",function(){var t=this;return"#<Closure "+x("Closure").$type_inspect(t.$type())+" "+t.node.$class()+">"}),_.$attr_accessor("node","type","parent","catchers","throwers"),function(c,l){var b=r(c,"NodeSupport"),j=[b].concat(l),d=e.$r(j);return s(b,"$push_closure",function(n){var s=this,o=t;return s.compiler==null&&(s.compiler=t),n==null&&(n=d("JS_FUNCTION")),o=d("Closure").$new(s,n,s.$select_closure()),s.compiler.$closure_stack()["$<<"](o),s.closure=o},-1),b.$attr_accessor("closure"),s(b,"$pop_closure",function(){var s,n=this,o=t;return n.compiler==null&&(n.compiler=t),n.$compile_catcher(),n.compiler.$closure_stack().$pop(),o=n.compiler.$closure_stack().$last(),i((s=o,s===t||s==null?t:s.$node()),n)?n.closure=o:t}),s(b,"$in_closure",function n(s){var r=n.$$p||t,o=this,i=t,a=t;return n.$$p=null,s==null&&(s=d("JS_FUNCTION")),i=o.$push_closure(s),a=e.yield1(r,i),o.$pop_closure(),a},-1),s(b,"$select_closure",function(){var i,a,r,c,l=this;return l.compiler==null&&(l.compiler=t),i=u(arguments),a=v(i),a=p(a),i.length>0&&(r=i.shift()),r==null&&(r=d("ANY")),c=h(a,"break_after"),c==null&&(c=d("NONE")),function(){try{var e=f("break");return o(l.compiler.$closure_stack().$reverse(),"find",[],function n(s){return s==null&&(s=t),m(s.$type()["$&"](c),0)&&e.$throw(t,n.$$is_lambda),s.$type()["$&"](r)["$!="](0)})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}()},-1),s(b,"$generate_thrower",function(n,s,o){var a=this,i=t,i=s.$register_catcher(n);return s.$register_thrower(n,i),a.$push(i,".$throw(",a.$expr_or_nil(o),", ",a.$scope()["$identify!"](),".$$is_lambda)"),i}),s(b,"$generate_thrower_without_catcher",function(s,o,i){var c,a=this,r=t,l=t,d=t;return a.$helper("thrower"),n(o.$throwers()["$key?"](s))?r=o.$throwers()["$[]"](s):(r=a.$compiler().$unique_temp("t_"),l=n(d=(c=o.$node().$scope(),c===t||c==null?t:c.$parent()))?d:a.$top_scope(),l.$add_scope_temp(""+r+" = $thrower('"+s+"')"),o.$register_thrower(s,r)),a.$push(r,".$throw(",a.$expr_or_nil(i),", ",a.$scope()["$identify!"](),".$$is_lambda)"),r}),s(b,"$thrower",function(s,o){var r=this,c=t,u=t,l=t,h=t;switch(o==null&&(o=t),s.valueOf()){case"return":return c=r.$select_closure(d("DEF"),new Map([["break_after",d("MODULE")["$|"](d("TOP"))]])),u=r.$select_closure(d("JS_FUNCTION")),a(c)?(l=r.$select_closure(d("ITER"),new Map([["break_after",d("DEF")["$|"](d("MODULE"))["$|"](d("TOP"))]])),n(l)?r.$generate_thrower_without_catcher("return",l,o):n(r.$compiler()["$eval?"]())?r.$push("Opal.t_eval_return.$throw(",r.$expr_or_nil(o),", false)"):r.$error("Invalid return")):i(c,u)?r.$push("return ",r.$expr_or_nil(o)):(h=r.$generate_thrower("return",c,o),l=r.$select_closure(d("ITER"),new Map([["break_after",d("DEF")["$|"](d("MODULE"))["$|"](d("TOP"))]])),n(l)?l.$register_thrower("return",h):t);break;case"eval_return":return c=r.$select_closure(d("DEF")["$|"](d("LAMBDA")),new Map([["break_after",d("MODULE")["$|"](d("TOP"))]])),n(c)?c.$register_catcher("eval_return"):t;break;case"next":case"redo":return c=r.$select_closure(d("ITER")["$|"](d("LOOP_INSIDE")),new Map([["break_after",d("DEF")["$|"](d("MODULE"))["$|"](d("TOP"))]])),u=r.$select_closure(d("JS_FUNCTION")["$|"](d("JS_LOOP_INSIDE"))),a(c)?r.$error("Invalid next"):i(c,u)?n(c["$is?"](d("LOOP_INSIDE")))?r.$push("continue"):n(c["$is?"](d("ITER")["$|"](d("LAMBDA"))))?r.$push("return ",r.$expr_or_nil(o)):t:r.$generate_thrower("next",c,o);break;case"break":return c=r.$select_closure(d("SEND")["$|"](d("LAMBDA"))["$|"](d("LOOP")),new Map([["break_after",d("DEF")["$|"](d("MODULE"))["$|"](d("TOP"))]])),u=r.$select_closure(d("JS_FUNCTION")["$|"](d("JS_LOOP"))),a(c)?(l=r.$select_closure(d("ITER"),new Map([["break_after",d("DEF")["$|"](d("MODULE"))["$|"](d("TOP"))]])),n(l)?r.$generate_thrower_without_catcher("break",l,o):r.$error("Invalid break")):i(c,u)?n(c["$is?"](d("JS_FUNCTION")["$|"](d("LAMBDA"))))?r.$push("return ",r.$expr_or_nil(o)):n(c["$is?"](d("LOOP")))?r.$push("break"):t:r.$generate_thrower("break",c,o);break;case"retry":return c=r.$select_closure(d("RESCUE_RETRIER"),new Map([["break_after",d("DEF")["$|"](d("MODULE"))["$|"](d("TOP"))]])),u=r.$select_closure(d("JS_LOOP_INSIDE")),a(c)?r.$error("Invalid retry"):i(c,u)?r.$push("continue"):r.$generate_thrower("retry",c,o);break;default:return t}},-2),s(b,"$closure_is?",function(n){var s=this;return s.closure==null&&(s.closure=t),s.closure["$is?"](n)}),s(b,"$compile_catcher",function(){var s=this,a=t,i=t;return s.closure==null&&(s.closure=t),a=s.closure.$catchers(),n(a["$empty?"]())?t:(s.$helper("thrower"),i=a.$grep_v("eval_return"),s.$push("} catch($e) {"),o(s,"indent",[],function e(){var n=e.$$s==null?this:e.$$s;return o(a,"each",[],function e(n){var s=e.$$s==null?this:e.$$s;switch(n==null&&(n=t),n.valueOf()){case"eval_return":return s.$line("if ($e === Opal.t_eval_return) return $e.$v;");default:return s.$line("if ($e === $t_"+n+") return $e.$v;")}},{$$s:n}),n.$line("throw $e;")},{$$s:s}),s.$line("}"),n(i["$empty?"]())||o(s,"push",[" finally {"].concat(g(o(i,"map",[],function(n){return n==null&&(n=t),"$t_"+n+".is_orphan = true;"}))).concat(["}"])),n(s["$closure_is?"](d("SEND")))&&s.$unshift("return "),n(i["$empty?"]())||s.$unshift("var ",o(i,"map",[],function(n){return n==null&&(n=t),"$t_"+n+" = $thrower('"+n+"')"}).$join(", "),"; "),s.$unshift("try { "),n(s["$closure_is?"](d("JS_FUNCTION")))?t:n(s.$scope().$await_encountered())?s.$wrap("(await (async function(){","})())"):s.$wrap("(function(){","})()"))})}(w[0],w),function(e){var o=r(e,"CompilerSupport");return s(o,"$closure_stack",function(){var s=this,o=t;return s.closure_stack==null&&(s.closure_stack=t),s.closure_stack=n(o=s.closure_stack)?o:[]})}(w[0])}(y[0],null,y)}(y[0],y)}(d[0],d)},Opal.modules["opal/nodes/helpers"]=function(e){var i=e.module,s=e.truthy,n=e.def,u=e.rb_plus,c=e.send,l=e.slice,a=e.to_a,o=e.eqeq,h=e.top,d=[],t=e.nil,r=e.$$$;return e.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"),h.$require("opal/regexp_anchors"),function(d,h){var f=i(d,"Opal"),m=[f].concat(h);return function(d,h){var f=i(d,"Nodes"),m=[f].concat(h);return function(d,h){var m=i(d,"Helpers"),p=[m].concat(h),f=e.$r(p);return n(m,"$property",function(t){var n=this;return s(n["$valid_name?"](t))?"."+t:"["+t.$inspect()+"]"}),n(m,"$valid_name?",function(t){return r(r(f("Opal"),"Rewriters"),"JsReservedWords")["$valid_name?"](t)}),n(m,"$mid_to_jsid",function(t){return s(/=|\+|-|\*|\/|!|\?|<|>|&|\||\^|%|~|\[|`/["$=~"](t.$to_s()))?"['$"+t+"']":u(".$",t)}),n(m,"$indent",function e(){var n=e.$$p||t,s=this;return e.$$p=null,c(s.$compiler(),"indent",[],n.$to_proc())}),n(m,"$current_indent",function(){var t=this;return t.$compiler().$parser_indent()}),n(m,"$line",function(){var n=this,s=l(arguments),o=s;return n.$push(n.$fragment(`
`+n.$current_indent(),new Map([["loc",!1]]))),c(n,"push",a(o))},-1),n(m,"$empty_line",function(){var t=this;return t.$push(t.$fragment(`
`,new Map([["loc",!1]])))}),n(m,"$js_truthy",function(n){var o=this,i=t;return s(i=o.$js_truthy_optimize(n))?i:(o.$helper("truthy"),[o.$fragment("$truthy("),o.$expr(n),o.$fragment(")")])}),n(m,"$js_truthy_optimize",function(n){var c,i=this,u=t,d=t,h=t,p=t,m=t,g=t,v=t,y=t,b=t,j=t;switch(n.$type().valueOf()){case"send":if(c=[].concat(a(n)),u=c[0]==null?t:c[0],d=c[1]==null?t:c[1],h=l(c,2),c,p=s(m=u)?i.$compiler().$handlers()["$[]"](u.$type()):m,g=s(m=s(v=r(f("Compiler"),"COMPARE")["$include?"](d.$to_s()))?p:v)?p["$truthy_optimize?"]():m,s(g)||o(d,"block_given?"))return i.$expr(n);if(o(h.$count(),1))switch(d.valueOf()){case"==":return i.$helper("eqeq"),i.$compiler().$record_method_call(d),[i.$fragment("$eqeq("),i.$expr(u),i.$fragment(", "),i.$expr(h.$first()),i.$fragment(")")];case"===":return i.$helper("eqeqeq"),i.$compiler().$record_method_call(d),[i.$fragment("$eqeqeq("),i.$expr(u),i.$fragment(", "),i.$expr(h.$first()),i.$fragment(")")];case"!=":return i.$helper("neqeq"),i.$compiler().$record_method_call(d),[i.$fragment("$neqeq("),i.$expr(u),i.$fragment(", "),i.$expr(h.$first()),i.$fragment(")")];default:return t}else if(o(h.$count(),0))switch(d.valueOf()){case"!":return i.$helper("not"),i.$compiler().$record_method_call(d),[i.$fragment("$not("),i.$expr(u),i.$fragment(")")];default:return t}else return t;break;case"begin":return o(n.$children().$count(),1)?i.$js_truthy_optimize(n.$children().$first()):t;break;case"if":return c=[].concat(a(n)),y=c[0]==null?t:c[0],b=c[1]==null?t:c[1],j=c[2]==null?t:c[2],c,o(b,i.$s("true"))?(n.$meta()["$[]="]("do_js_truthy_on_false_body",!0),i.$expr(n)):o(j,i.$s("false"))?(n.$meta()["$[]="]("do_js_truthy_on_true_body",!0),i.$expr(n)):t;break;default:return t}})}(m[0],m)}(m[0],m)}(d[0],d)},Opal.modules["opal/nodes/base"]=function(e){var l=e.module,v=e.klass,s=e.truthy,r=e.defs,i=e.slice,o=e.send,g=e.return_val,t=e.def,u=e.ensure_kwargs,p=e.hash_get,f=e.Opal,h=e.neqeq,m=e.rb_plus,c=e.top,d=[],n=e.nil,a=e.$$$;return e.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"),c.$require("opal/nodes/helpers"),c.$require("opal/nodes/closure"),function(c,d){var j=l(c,"Opal"),b=[j].concat(d);return function(c,d){var j=l(c,"Nodes"),b=[j].concat(d);return function(c,l,d){var b=v(c,l,"Base"),_=[b].concat(d),j=e.$r(_),y=b.$$prototype;return y.compiler=y.sexp=y.fragments=y.level=n,b.$include(j("Helpers")),b.$include(a(j("Closure"),"NodeSupport")),r(b,"$handlers",function(){var t=this,o=n;return t.handlers==null&&(t.handlers=n),t.handlers=s(o=t.handlers)?o:new Map}),r(b,"$handle",function(){var r=this,s=i(arguments),a=s;return o(a,"each",[],function e(t){var s,i=e.$$s==null?this:e.$$s;return t==null&&(t=n),(s=[t,i],o(j("Base").$handlers(),"[]=",s),s[s.length-1])},{$$s:r})},-1),r(b,"$children",function(){var r=this,s=i(arguments),a=s;return o(a,"each_with_index",[],function e(t,s){var i=e.$$s==null?this:e.$$s;return t==null&&(t=n),s==null&&(s=n),o(i,"define_method",[t],function e(){var t=e.$$s==null?this:e.$$s;return t.sexp==null&&(t.sexp=n),t.sexp.$children()["$[]"](s)},{$$s:i})},{$$s:r})},-1),r(b,"$truthy_optimize?",g(!1)),b.$attr_reader("compiler","type","sexp"),t(b,"$initialize",function(t,i,a){var c,r=this,l=n;return r.sexp=t,r.type=t.$type(),r.level=i,r.compiler=a,s(l=r.compiler.$top_scope())?l:(c=[r],o(r.compiler,"top_scope=",c),c[c.length-1])}),t(b,"$children",function(){var t=this;return t.sexp.$children()}),t(b,"$compile_to_fragments",function(){var o,t=this;return s((o=t.fragments,o!=null&&o!==n?"instance-variable":n))?t.fragments:(t.fragments=[],t.$compile(),t.fragments)}),t(b,"$compile",function(){var t=this;return t.$raise("Not Implemented")}),t(b,"$push",function(){var c=this,a=i(arguments),r=a;return o(r,"each",[],function e(t){var o=e.$$s==null?this:e.$$s;return o.fragments==null&&(o.fragments=n),t==null&&(t=n),s(t["$is_a?"](j("String")))&&(t=o.$fragment(t)),o.fragments["$<<"](t)},{$$s:c})},-1),t(b,"$unshift",function(){var c=this,a=i(arguments),r=a;return o(r,"reverse_each",[],function e(t){var o=e.$$s==null?this:e.$$s;return o.fragments==null&&(o.fragments=n),t==null&&(t=n),s(t["$is_a?"](j("String")))&&(t=o.$fragment(t)),o.fragments.$unshift(t)},{$$s:c})},-1),t(b,"$wrap",function(t,n){var s=this;return s.$unshift(t),s.$push(n)}),t(b,"$fragment",function(t,o){var i,r=this,c=n;return o=u(o),i=p(o,"loc"),i==null&&(i=!0),a(j("Opal"),"Fragment").$new(t,r.$scope(),s(c=i)?r.sexp:c)},-2),t(b,"$error",function(t){var n=this;return n.compiler.$error(t)}),t(b,"$scope",function(){var t=this;return t.compiler.$scope()}),t(b,"$top_scope",function(){var t=this;return t.compiler.$top_scope()}),t(b,"$s",function(t){var r=this,s=i(arguments,1),o=s;return a(a(f,"AST"),"Node").$new(t,o,new Map([["location",r.sexp.$loc()]]))},-2),t(b,"$expr?",function(){var t=this;return t.level["$=="]("expr")}),t(b,"$recv?",function(){var t=this;return t.level["$=="]("recv")}),t(b,"$stmt?",function(){var t=this;return t.level["$=="]("stmt")}),t(b,"$process",function(t,n){var s=this;return n==null&&(n="expr"),s.compiler.$process(t,n)},-2),t(b,"$expr",function(t){var n=this;return n.compiler.$process(t,"expr")}),t(b,"$recv",function(t){var n=this;return n.compiler.$process(t,"recv")}),t(b,"$stmt",function(t){var n=this;return n.compiler.$process(t,"stmt")}),t(b,"$expr_or_nil",function(t){var n=this;return s(t)?n.$expr(t):"nil"}),t(b,"$expr_or_empty",function(t){var n=this;return s(t)&&h(t.$type(),"nil")?n.$expr(t):""}),t(b,"$add_local",function(t){var n=this;return n.$scope().$add_scope_local(t.$to_sym())}),t(b,"$add_ivar",function(t){var n=this;return n.$scope().$add_scope_ivar(t)}),t(b,"$add_gvar",function(t){var n=this;return n.$scope().$add_scope_gvar(t)}),t(b,"$add_temp",function(t){var n=this;return n.$scope().$add_scope_temp(t)}),t(b,"$helper",function(t){var n=this;return n.compiler.$helper(t)}),t(b,"$with_temp",function e(){var t=e.$$p||n,s=this;return e.$$p=null,o(s.compiler,"with_temp",[],t.$to_proc())}),t(b,"$in_while?",function(){var t=this;return t.compiler["$in_while?"]()}),t(b,"$while_loop",function(){var t=this;return t.compiler.$instance_variable_get("@while_loop")}),t(b,"$has_rescue_else?",function(){var t=this;return t.$scope()["$has_rescue_else?"]()}),t(b,"$in_ensure",function e(){var t=e.$$p||n,s=this;return e.$$p=null,o(s.$scope(),"in_ensure",[],t.$to_proc())}),t(b,"$in_ensure?",function(){var t=this;return t.$scope()["$in_ensure?"]()}),t(b,"$in_resbody",function e(){var t=e.$$p||n,s=this;return e.$$p=null,o(s.$scope(),"in_resbody",[],t.$to_proc())}),t(b,"$in_resbody?",function(){var t=this;return t.$scope()["$in_resbody?"]()}),t(b,"$in_rescue",function e(t){var s=e.$$p||n,i=this;return e.$$p=null,o(i.$scope(),"in_rescue",[t],s.$to_proc())}),t(b,"$class_variable_owner_nesting_level",function(){for(var a=this,t=n,o=n,i=n,t=a.$scope(),o=0;s(s(i=t)?t["$class_scope?"]()["$!"]():i);)s(t["$sclass?"]())&&(o=m(o,1)),t=t.$parent();return o}),t(b,"$class_variable_owner",function(){var t=this;return s(t.$scope())?""+t.$scope().$nesting()+"["+t.$class_variable_owner_nesting_level()+"]":"Opal.Object"}),t(b,"$comments",function(){var t=this;return t.$compiler().$comments()["$[]"](t.sexp.$loc())}),t(b,"$source_location",function(){var i=this,o=n,t=n,a=n,o=i.sexp.$loc().$expression();return s(o["$respond_to?"]("source_buffer"))?(t=o.$source_buffer().$name(),s(t["$start_with?"]("corelib/"))&&(t="<internal:"+t+">"),s(t["$end_with?"](".js"))&&(t="<js:"+t+">")):t="(eval)",a=i.sexp.$loc().$line(),"['"+t+"', "+a+"]"})}(b[0],null,b)}(b[0],b)}(d[0],d)},Opal.modules["opal/nodes/literal"]=function(e){var v=e.module,o=e.klass,n=e.def,m=e.return_val,b=e.defs,s=e.truthy,c=e.const_set,u=e.regexp,i=e.send,a=e.rb_plus,j=e.lambda,C=e.rb_le,x=e.rb_minus,f=e.slice,O=e.send2,_=e.find_super,l=e.to_a,r=e.eqeq,d=e.eqeqeq,y=e.Opal,g=e.rb_gt,w=e.top,p=[],t=e.nil,h=e.$$$;return e.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(p,w){var k=v(p,"Opal"),E=[k].concat(w);return function(p,w){var A=v(p,"Nodes"),E=[A].concat(w),k=e.$r(E);return function(e,t){var s=o(e,t,"ValueNode");return s.$handle("true","false","nil"),n(s,"$compile",function(){var t=this;return t.$push(t.$type().$to_s())}),b(s,"$truthy_optimize?",m(!0))}(E[0],k("Base")),function(e,t){var s=o(e,t,"SelfNode");return s.$handle("self"),n(s,"$compile",function(){var t=this;return t.$push(t.$scope().$self())})}(E[0],k("Base")),function(e,i){var a=o(e,i,"NumericNode");return a.$handle("int","float"),a.$children("value"),n(a,"$compile",function(){var n=this;return n.$push(n.$value().$to_s()),s(n["$recv?"]())?n.$wrap("(",")"):t}),b(a,"$truthy_optimize?",m(!0))}(E[0],k("Base")),function(r,l,d){var m=o(r,l,"StringNode"),f=[m].concat(d),h=e.$r(f);return m.$handle("str"),m.$children("value"),c(f[0],"ESCAPE_CHARS",new Map([["a","\\u0007"],["e","\\u001b"]]).$freeze()),c(f[0],"ESCAPE_REGEX",u(["(\\\\+)([",h("ESCAPE_CHARS").$keys().$join(""),"])"]).$freeze()),n(m,"$translate_escape_chars",function(n){return i(n,"gsub",[h("ESCAPE_REGEX")],function(n){return n==null&&(n=t),s(h("Regexp").$last_match(1).$length()["$even?"]())?n:a(h("Regexp").$last_match(1).$chop(),h("ESCAPE_CHARS")["$[]"](h("Regexp").$last_match(2)))})}),n(m,"$compile",function(){var n=this,o=t,a=t,o=n.$value(),a=i(o.$inspect(),"gsub",[/\\u\{([0-9a-f]+)\}/],function e(){var s=e.$$s==null?this:e.$$s,n=t,n=h("Regexp").$last_match(1).$to_i(16);return s.$to_utf16(n)},{$$s:n});return n.$push(n.$translate_escape_chars(a)),t,s(n.$value()["$valid_encoding?"]())?t:(n.$helper("binary"),n.$wrap("$binary(",")"))}),n(m,"$to_utf16",function(n){var i=t,o=t,r=t,c=t,i=1023,o=j(function(n){return n==null&&(n=t),a("\\u",n.$to_s(16).$upcase())});return s(C(n,65535))?o.$call(n):(n=x(n,65536),r=a(55296,n["$>>"](10)),c=a(56320,n["$&"](i)),a(o.$call(r),o.$call(c)))})}(E[0],k("Base"),E),function(e,t){var s=o(e,t,"SymbolNode");return s.$handle("sym"),s.$children("value"),n(s,"$compile",function(){var t=this;return t.$push(t.$value().$to_s().$inspect())})}(E[0],k("Base")),function(a,m,p){var v=o(a,m,"RegexpNode"),b=[v].concat(p),j=e.$r(b),w=v.$$prototype;return w.sexp=t,v.$handle("regexp"),v.$attr_accessor("value","flags"),c(b[0],"SUPPORTED_FLAGS",/[gimuy]/.$freeze()),n(v,"$initialize",function e(){var o,i,a=e.$$p||t,s=this;return e.$$p=null,o=f(arguments),i=o,O(s,_(s,"initialize",e,!1,!0),"initialize",l(i),a),s.$extract_flags_and_value()},-1),n(v,"$compile",function(){var n=this;return i(n.$flags(),"select!",[],function e(n){var o=e.$$s==null?this:e.$$s;return n==null&&(n=t),!!s(j("SUPPORTED_FLAGS")["$=~"](n))||(o.$compiler().$warning("Skipping the '"+n+"' Regexp flag as it's not widely supported by JavaScript vendors."),!1)},{$$s:n}),r(n.$value().$type(),"str")?n.$compile_static_regexp():n.$compile_dynamic_regexp()}),n(v,"$compile_dynamic_regexp",function(){var n=this;return n.$helper("regexp"),n.$push("$regexp(["),i(n.$value().$children(),"each_with_index",[],function e(n,o){var i=e.$$s==null?this:e.$$s;return n==null&&(n=t),o==null&&(o=t),s(o["$zero?"]())||i.$push(", "),i.$push(i.$expr(n))},{$$s:n}),n.$push("]"),s(n.$flags()["$any?"]())&&n.$push(", '"+n.$flags().$join()+"'"),n.$push(")")}),n(v,"$compile_static_regexp",function(){var n=this,s=t,o=t,s=n.$value().$children()["$[]"](0);return d("",o=s)?n.$push("/(?:)/"):d(u(["\\(\\?[(<>#]|[*+?]\\+"]),o)?n.$static_as_dynamic(s):n.$push(""+j("Regexp").$new(s).$inspect()+n.$flags().$join())}),n(v,"$static_as_dynamic",function(t){var n=this;return n.$helper("regexp"),n.$push('$regexp(["'),n.$push(t.$gsub("\\","\\\\\\\\")),n.$push('"]'),s(n.$flags()["$any?"]())&&n.$push(", '"+n.$flags().$join()+"'"),n.$push(")")}),n(v,"$extract_flags_and_value",function(){var n=this,c=t,d=t,u=t,o=[].concat(l(n.$children())),a=o.length-1,a=a<0?0:a;return c=f(o,0,a),d=o[a]==null?t:o[a],o,n["$flags="](i(d.$children(),"map",[],"to_s".$to_proc())),n["$value="](s(c["$empty?"]())?n.$s("str",""):s(n["$single_line?"](c))?c["$[]"](0):i(n,"s",["dstr"].concat(l(c)))),s(n.$flags()["$include?"]("x"))&&(u=i(n.$value().$children(),"map",[],function e(n){var i=e.$$s==null?this:e.$$s,o=t;return n==null&&(n=t),s(n["$is_a?"](h(h(y,"AST"),"Node")))&&r(n.$type(),"str")?(o=n.$children()["$[]"](0).$gsub(/^\s*#.*/,"").$gsub(/\s/,""),i.$s("str",o)):n},{$$s:n}),n["$value="](n.$value().$updated(t,u)),n.$flags().$delete("x")),r(n.$value().$type(),"str")?(o=[n.$s("str",n.$value().$children()["$[]"](0).$gsub("\\A","^").$gsub("\\z","$"))],i(n,"value=",o),o[o.length-1]):t}),n(v,"$raw_value",function(){var t,n=this;return t=[n.sexp.$loc().$expression().$source()],i(n,"value=",t),t[t.length-1]}),v.$private(),n(v,"$single_line?",function(n){var o=t,i=t;return!s(g(n.$length(),1))&&(o=n["$[]"](0),s(i=o.$type()["$!="]("str"))?i:o.$children()["$[]"](0)["$include?"](`
`)["$!"]())})}(E[0],k("Base"),E),function(e,s){var i=o(e,s,"MatchCurrentLineNode");return i.$handle("match_current_line"),i.$children("regexp"),n(i,"$compile",function(){var n=this,s=t,o=t,s=n.$s("gvar","$_"),o=n.$s("send",s,"=~",n.$regexp());return n.$push(n.$expr(o))})}(E[0],k("Base")),function(e,a){var c=o(e,a,"DynamicStringNode");return c.$handle("dstr"),n(c,"$compile",function(){var n=this,o=t;return s(g(n.$children().$length(),1))&&r(n.$children().$first().$type(),"str")?o=!0:n.$push('""'),i(n.$children(),"each",[],function e(n){var i=e.$$s==null?this:e.$$s;return n==null&&(n=t),s(o)?o=!1:i.$push(" + "),r(n.$type(),"str")?i.$push(i.$expr(n)):i.$push("(",i.$expr(n),")"),s(i["$recv?"]())?i.$wrap("(",")"):t},{$$s:n})})}(E[0],k("Base")),function(e,t){var n=o(e,t,"DynamicSymbolNode");return n.$handle("dsym")}(E[0],k("DynamicStringNode")),function(i,a,r){var l=o(i,a,"RangeNode"),u=[l].concat(r),d=e.$r(u);return l.$children("start","finish"),c(u[0],"SIMPLE_CHILDREN_TYPES",["int","float","str","sym"].$freeze()),n(l,"$compile",function(){var t=this;return s(t["$compile_inline?"]())?(t.$helper("range"),t.$compile_inline()):t.$compile_range_initialize()}),n(l,"$compile_inline?",function(){var n=this,a=t,o=t,i=t;return s(a=s(o=n.$start()["$!"]())?o:s(i=n.$start().$type())?d("SIMPLE_CHILDREN_TYPES")["$include?"](n.$start().$type()):i)?s(o=n.$finish()["$!"]())?o:s(i=n.$finish().$type())?d("SIMPLE_CHILDREN_TYPES")["$include?"](n.$finish().$type()):i:a}),n(l,"$compile_inline",function(){var t=this;return t.$raise(d("NotImplementedError"))}),n(l,"$compile_range_initialize",function(){var t=this;return t.$raise(d("NotImplementedError"))})}(E[0],k("Base"),E),function(e,t){var s=o(e,t,"InclusiveRangeNode");return s.$handle("irange"),n(s,"$compile_inline",function(){var t=this;return t.$push("$range(",t.$expr_or_nil(t.$start()),", ",t.$expr_or_nil(t.$finish()),", false)")}),n(s,"$compile_range_initialize",function(){var t=this;return t.$push("Opal.Range.$new(",t.$expr_or_nil(t.$start()),", ",t.$expr_or_nil(t.$finish()),", false)")})}(E[0],k("RangeNode")),function(e,t){var s=o(e,t,"ExclusiveRangeNode");return s.$handle("erange"),n(s,"$compile_inline",function(){var t=this;return t.$push("$range(",t.$expr_or_nil(t.$start()),", ",t.$expr_or_nil(t.$finish()),", true)")}),n(s,"$compile_range_initialize",function(){var t=this;return t.$push("Opal.Range.$new(",t.$expr_or_nil(t.$start()),",",t.$expr_or_nil(t.$finish()),", true)")})}(E[0],k("RangeNode")),function(e,t){var s=o(e,t,"RationalNode");return s.$handle("rational"),s.$children("value"),n(s,"$compile",function(){var t=this;return t.$push(""+t.$top_scope().$absolute_const()+"('Rational').$new("+t.$value().$numerator()+", "+t.$value().$denominator()+")")})}(E[0],k("Base")),function(e,t){var s=o(e,t,"ComplexNode");return s.$handle("complex"),s.$children("value"),n(s,"$compile",function(){var t=this;return t.$push(""+t.$top_scope().$absolute_const()+"('Complex').$new("+t.$value().$real()+", "+t.$value().$imag()+")")})}(E[0],k("Base"))}(E[0],E)}(p[0],p)},Opal.modules["opal/nodes/variables"]=function(e){var r=e.module,o=e.klass,s=e.truthy,t=e.def,i=e.send,a=e.range,l=e.send2,d=e.find_super,u=e.top,c=[],n=e.nil;return e.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"),u.$require("opal/nodes/base"),function(c,u){var m=r(c,"Opal"),h=[m].concat(u);return function(c,u){var f=r(c,"Nodes"),h=[f].concat(u),m=e.$r(h);return function(e,a){var r=o(e,a,"LocalVariableNode");return r.$handle("lvar"),r.$children("var_name"),t(r,"$using_irb?",function(){var t=this,o=n;return s(o=t.$compiler()["$irb?"]())?t.$scope()["$top?"]():o}),t(r,"$compile",function(){var t=this;return s(t["$using_irb?"]())?i(t,"with_temp",[],function e(t){var s=e.$$s==null?this:e.$$s;return t==null&&(t=n),s.$push(s.$property(s.$var_name().$to_s())),s.$wrap("(("+t+" = Opal.irb_vars",") == null ? nil : "+t+")")},{$$s:t}):t.$push(t.$var_name().$to_s())})}(h[0],m("Base")),function(e,i){var a=o(e,i,"LocalAssignNode");return a.$handle("lvasgn"),a.$children("var_name","value"),t(a,"$using_irb?",function(){var t=this,o=n;return s(o=t.$compiler()["$irb?"]())?t.$scope()["$top?"]():o}),t(a,"$compile",function(){var t=this;return s(t["$using_irb?"]())?t.$push("Opal.irb_vars"+t.$property(t.$var_name().$to_s())+" = "):(t.$add_local(t.$var_name().$to_s()),t.$push(""+t.$var_name()+" = ")),t.$push(t.$expr(t.$value())),(s(t["$recv?"]())||s(t["$expr?"]()))&&s(t.$value())?t.$wrap("(",")"):n})}(h[0],m("Base")),function(e,s){var i=o(e,s,"LocalDeclareNode");return i.$handle("lvdeclare"),i.$children("var_name"),t(i,"$compile",function(){var t=this;return t.$add_local(t.$var_name().$to_s()),n})}(h[0],m("Base")),function(e,s){var i=o(e,s,"InstanceVariableNode");return i.$handle("ivar"),i.$children("name"),t(i,"$var_name",function(){var t=this;return t.$name().$to_s()["$[]"](a(1,-1,!1))}),t(i,"$compile",function(){var t=this,s=n,s=t.$property(t.$var_name());return t.$add_ivar(s),t.$push(""+t.$scope().$self()+s)})}(h[0],m("Base")),function(e,i){var r=o(e,i,"InstanceAssignNode");return r.$handle("ivasgn"),r.$children("name","value"),t(r,"$var_name",function(){var t=this;return t.$name().$to_s()["$[]"](a(1,-1,!1))}),t(r,"$compile",function(){var t=this,o=n,o=t.$property(t.$var_name());return t.$push(""+t.$scope().$self()+o+" = "),t.$push(t.$expr(t.$value())),(s(t["$recv?"]())||s(t["$expr?"]()))&&s(t.$value())?t.$wrap("(",")"):n})}(h[0],m("Base")),function(e,s){var i=o(e,s,"GlobalVariableNode");return i.$handle("gvar"),i.$children("name"),t(i,"$var_name",function(){var t=this;return t.$name().$to_s()["$[]"](a(1,-1,!1))}),t(i,"$compile",function(){var t=this,s=n;return t.$helper("gvars"),s=t.$property(t.$var_name()),t.$add_gvar(s),t.$push("$gvars"+s)})}(h[0],m("Base")),function(s,a,r){var c=o(s,a,"BackRefNode"),u=[c].concat(r),h=e.$r(u);return c.$handle("back_ref"),t(c,"$compile",function e(){var s=e.$$p||n,t=this;switch(e.$$p=null,t.$helper("gvars"),t.$var_name().valueOf()){case"&":return t.$handle_global_match();case"'":return t.$handle_post_match();case"`":return t.$handle_pre_match();case"+":return l(t,d(t,"compile",e,!1,!0),"compile",[],s);default:return t.$raise(h("NotImplementedError"))}}),t(c,"$handle_global_match",function(){var t=this;return i(t,"with_temp",[],function e(t){var s=e.$$s==null?this:e.$$s;return t==null&&(t=n),s.$push("(("+t+" = $gvars['~']) === nil ? nil : "+t+"['$[]'](0))")},{$$s:t})}),t(c,"$handle_pre_match",function(){var t=this;return i(t,"with_temp",[],function e(t){var s=e.$$s==null?this:e.$$s;return t==null&&(t=n),s.$push("(("+t+" = $gvars['~']) === nil ? nil : "+t+".$pre_match())")},{$$s:t})}),t(c,"$handle_post_match",function(){var t=this;return i(t,"with_temp",[],function e(t){var s=e.$$s==null?this:e.$$s;return t==null&&(t=n),s.$push("(("+t+" = $gvars['~']) === nil ? nil : "+t+".$post_match())")},{$$s:t})})}(h[0],m("GlobalVariableNode"),h),function(e,i){var r=o(e,i,"GlobalAssignNode");return r.$handle("gvasgn"),r.$children("name","value"),t(r,"$var_name",function(){var t=this;return t.$name().$to_s()["$[]"](a(1,-1,!1))}),t(r,"$compile",function(){var t=this,o=n;return t.$helper("gvars"),o=t.$property(t.$var_name()),t.$push("$gvars"+o+" = "),t.$push(t.$expr(t.$value())),(s(t["$recv?"]())||s(t["$expr?"]()))&&s(t.$value())?t.$wrap("(",")"):n})}(h[0],m("Base")),function(e,s){var a=o(e,s,"NthrefNode");return a.$handle("nth_ref"),a.$children("index"),t(a,"$compile",function(){var t=this;return t.$helper("gvars"),i(t,"with_temp",[],function e(t){var s=e.$$s==null?this:e.$$s;return t==null&&(t=n),s.$push("(("+t+" = $gvars['~']) === nil ? nil : "+t+"['$[]']("+s.$index()+"))")},{$$s:t})})}(h[0],m("Base")),function(e,i){var a=o(e,i,"ClassVariableNode");return a.$handle("cvar"),a.$children("name"),t(a,"$compile",function(){var t=this,o=n;return t.$helper("class_variable_get"),o=!1,s(t["$stmt?"]())&&(o=!0),t.$push("$class_variable_get("+t.$class_variable_owner()+", '"+t.$name()+"', "+o.$inspect()+")")})}(h[0],m("Base")),function(e,n){var s=o(e,n,"ClassVarAssignNode");return s.$handle("cvasgn"),s.$children("name","value"),t(s,"$compile",function(){var t=this;return t.$helper("class_variable_set"),t.$push("$class_variable_set("+t.$class_variable_owner()+", '"+t.$name()+"', ",t.$expr(t.$value()),")")})}(h[0],m("Base"))}(h[0],h)}(c[0],c)},Opal.modules["opal/nodes/constants"]=function(e){var i=e.module,s=e.klass,t=e.truthy,r=e.eqeq,n=e.def,c=e.const_set,l=e.top,a=[],o=e.nil;return e.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"),l.$require("opal/nodes/base"),function(a,l){var u=i(a,"Opal"),d=[u].concat(l);return function(a,l){var h=i(a,"Nodes"),d=[h].concat(l),u=e.$r(d);return function(i,a,l){var d=s(i,a,"ConstNode"),u=[d].concat(l),h=e.$r(u);return d.$handle("const"),d.$children("const_scope","name"),n(d,"$compile",function(){var n=this;return t(n["$magical_data_const?"]())?n.$push("$__END__"):t(n["$optimized_access?"]())?(n.$helper(""+n.$name()),n.$push("$"+n.$name())):r(n.$const_scope(),n.$s("cbase"))?n.$push(""+n.$top_scope().$absolute_const()+"('"+n.$name()+"')"):t(n.$const_scope())?n.$push(""+n.$top_scope().$absolute_const()+"(",n.$recv(n.$const_scope()),", '"+n.$name()+"')"):t(n.$compiler()["$eval?"]())?n.$push(""+n.$scope().$relative_access()+"('"+n.$name()+"')"):n.$push(""+n.$scope().$relative_access()+"('"+n.$name()+"')")}),n(d,"$magical_data_const?",function(){var n=this,s=o,i=o;return t(s=t(i=n.$const_scope()["$nil?"]())?n.$name()["$=="]("DATA"):i)?n.$compiler().$eof_content():s}),c(u[0],"OPTIMIZED_ACCESS_CONSTS",["BasicObject","Object","Module","Class","Opal","Kernel","NilClass"].$freeze()),n(d,"$optimized_access?",function(){var n=this,s=o;return t(s=n.$const_scope()["$=="](n.$s("cbase")))?h("OPTIMIZED_ACCESS_CONSTS")["$include?"](n.$name()):s})}(d[0],u("Base"),d),function(e,t){var o=s(e,t,"CbaseNode");return o.$handle("cbase"),n(o,"$compile",function(){var t=this;return t.$push("'::'")})}(d[0],u("Base")),function(e,o){var i=s(e,o,"ConstAssignNode");return i.$handle("casgn"),i.$children("base","name","value"),n(i,"$compile",function(){var n=this;return n.$helper("const_set"),t(n.$base())?n.$push("$const_set(",n.$expr(n.$base()),", '"+n.$name()+"', ",n.$expr(n.$value()),")"):n.$push("$const_set("+n.$scope().$nesting()+"[0], '"+n.$name()+"', ",n.$expr(n.$value()),")")})}(d[0],u("Base"))}(d[0],d)}(a[0],a)},Opal.modules.pathname=function(e){var O=e.klass,v=e.const_set,f=e.regexp,d=e.eqeqeq,n=e.truthy,r=e.eqeq,s=e.def,j=e.defs,a=e.to_ary,g=e.slice,o=e.send,p=e.to_a,b=e.return_ivar,c=e.neqeq,i=e.rb_plus,m=e.not,y=e.thrower,u=e.alias,_=e.module,w=e.top,l=[],t=e.nil,h=e.$$$;return e.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"),w.$require("corelib/comparable"),function(l,_,w){var C=O(l,_,"Pathname"),E=[C].concat(w),x=e.$r(E),k=C.$$prototype;return k.path=t,C.$include(x("Comparable")),v(E[0],"SEPARATOR_PAT",f([x("Regexp").$quote(h(x("File"),"SEPARATOR"))])),s(C,"$initialize",function(s){var o=this;return d(x("Pathname"),s)?o.path=s.$path().$to_s():n(s["$respond_to?"]("to_path"))?o.path=s.$to_path():n(s["$is_a?"](x("String")))?o.path=s:n(s["$nil?"]())?o.$raise(x("TypeError"),"no implicit conversion of nil into String"):o.$raise(x("TypeError"),"no implicit conversion of "+s.$class()+" into String"),r(o.path,"\x00")?o.$raise(x("ArgumentError")):t}),j(C,"$pwd",function(){var t=this;return t.$new(x("Dir").$pwd())}),C.$attr_reader("path"),s(C,"$==",function(t){var n=this;return t.$path()["$=="](n.path)}),s(C,"$absolute?",function(){var t=this;return t["$relative?"]()["$!"]()}),s(C,"$relative?",function(){for(var o,i,r=this,s=t,c=t,s=r.path;n(c=r.$chop_basename(s));)i=c,o=a(i),s=o[0]==null?t:o[0],i;return s["$=="]("")}),s(C,"$chop_basename",function(s){var o=t,o=x("File").$basename(s);return n(x("Regexp").$new("^"+h(x("Pathname"),"SEPARATOR_PAT").$source()+"?$")["$=~"](o))?t:[s["$[]"](0,s.$rindex(o)),o]}),s(C,"$root?",function(){var t=this;return t.path["$=="]("/")}),s(C,"$parent",function(){var o=this,s=t,s=o.path.$sub(/\/([^/]+\/?$)/,"");return r(s,"")&&(s=n(o["$absolute?"]())?"/":"."),x("Pathname").$new(s)}),s(C,"$sub",function(){var i=this,n=g(arguments),s=n;return x("Pathname").$new(o(i.path,"sub",p(s)))},-1),s(C,"$cleanpath",function(){var n=this;return e.normalize(n.path)}),s(C,"$to_path",b("path")),s(C,"$hash",function(){var t=this;return t.path.$hash()}),s(C,"$expand_path",function(){var t=this;return x("Pathname").$new(x("File").$expand_path(t.path))}),s(C,"$+",function(t){var n=this;return d(x("Pathname"),t)||(t=x("Pathname").$new(t)),x("Pathname").$new(n.$plus(n.path,t.$to_s()))}),s(C,"$plus",function(o,l){for(var h,p,_=this,b=t,v=t,d=t,C=t,O=t,u=t,j=t,g=t,y=t,w=t,b=l,v=[],d=[];n(C=_.$chop_basename(b));)p=C,h=a(p),b=h[0]==null?t:h[0],O=h[1]==null?t:h[1],p,v.$unshift(b.$length()),d.$unshift(O);if(c(b,""))return l;for(u=o;n(!0);){for(;n(n(j=d["$empty?"]()["$!"]())?d.$first()["$=="]("."):j);)v.$shift(),d.$shift();if(!n(g=_.$chop_basename(u)))break;if(p=g,h=a(p),u=h[0]==null?t:h[0],y=h[1]==null?t:h[1],p,r(y,"."))continue;if(r(y,"..")||n(d["$empty?"]())||c(d.$first(),"..")){u=i(u,y);break}v.$shift(),d.$shift()}if(g=_.$chop_basename(u),m(g)&&n(f([x("SEPARATOR_PAT")])["$=~"](x("File").$basename(u))))for(;n(n(j=d["$empty?"]()["$!"]())?d.$first()["$=="](".."):j);)v.$shift(),d.$shift();return m(d["$empty?"]())?(w=l["$[]"](e.Range.$new(v.$first(),-1,!1)),n(g)?x("File").$join(u,w):i(u,w)):n(g)?u:x("File").$dirname(u)}),s(C,"$join",function(){try{var r=y("return"),u=this,a=t,l=g(arguments),c=l;return n(c["$empty?"]())?u:(a=c.$pop(),d(x("Pathname"),a)||(a=x("Pathname").$new(a)),n(a["$absolute?"]())?a:(o(c,"reverse_each",[],function e(s){if(s==null&&(s=t),d(x("Pathname"),s)||(s=x("Pathname").$new(s)),a=i(s,a),n(a["$absolute?"]()))r.$throw(a,e.$$is_lambda);else return t},{$$ret:r}),i(u,a)))}catch(e){if(e===r)return e.$v;throw e}finally{r.is_orphan=!0}},-1),s(C,"$split",function(){var t=this;return[t.$dirname(),t.$basename()]}),s(C,"$dirname",function(){var t=this;return x("Pathname").$new(x("File").$dirname(t.path))}),s(C,"$basename",function(){var t=this;return x("Pathname").$new(x("File").$basename(t.path))}),s(C,"$directory?",function(){var t=this;return x("File")["$directory?"](t.path)}),s(C,"$extname",function(){var t=this;return x("File").$extname(t.path)}),s(C,"$<=>",function(t){var n=this;return n.$path()["$<=>"](t.$path())}),v(E[0],"SAME_PATHS",n(h(x("File"),"FNM_SYSCASE")["$nonzero?"]())?o(C,"proc",[],function(n,s){return n==null&&(n=t),s==null&&(s=t),n.$casecmp(s)["$=="](0)}):o(C,"proc",[],function(n,s){return n==null&&(n=t),s==null&&(s=t),n["$=="](s)})),s(C,"$relative_path_from",function(s){var r,u,m=this,j=t,f=t,h=t,g=t,d=t,v=t,l=t,y=t,_=t,b=t,j=m.$cleanpath().$to_s();for(s=s.$cleanpath().$to_s(),f=j,h=[];n(g=m.$chop_basename(f));)u=g,r=a(u),f=r[0]==null?t:r[0],d=r[1]==null?t:r[1],u,c(d,".")&&h.$unshift(d);for(v=s,l=[];n(g=m.$chop_basename(v));)u=g,r=a(u),v=r[0]==null?t:r[0],d=r[1]==null?t:r[1],u,c(d,".")&&l.$unshift(d);for(n(x("SAME_PATHS")["$[]"](f,v))||m.$raise(x("ArgumentError"),"different prefix: "+f.$inspect()+" and "+s.$inspect());n(n(y=n(_=h["$empty?"]()["$!"]())?l["$empty?"]()["$!"]():_)?x("SAME_PATHS")["$[]"](h.$first(),l.$first()):y);)h.$shift(),l.$shift();return n(l["$include?"](".."))&&m.$raise(x("ArgumentError"),"base_directory has ..: "+s.$inspect()),l.$fill(".."),b=i(l,h),n(b["$empty?"]())?x("Pathname").$new("."):x("Pathname").$new(o(x("File"),"join",p(b)))}),s(C,"$entries",function(){var n=this;return o(x("Dir").$entries(n.path),"map",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s.$class().$new(n)},{$$s:n})}),u(C,"===","=="),u(C,"eql?","=="),u(C,"to_s","to_path"),u(C,"to_str","to_path")}(l[0],null,l),function(t,n){var o=_(t,"Kernel"),i=[o].concat(n),a=e.$r(i);return s(o,"$Pathname",function(t){return a("Pathname").$new(t)})}(l[0],l)},Opal.modules["opal/nodes/call"]=function(e){var d=e.module,u=e.klass,h=e.const_set,s=e.send,p=e.defs,r=e.slice,w=e.send2,_=e.find_super,a=e.to_a,n=e.truthy,o=e.def,i=e.eqeq,y=e.rb_plus,f=e.not,j=e.neqeq,g=e.to_ary,v=e.Opal,b=e.range,l=e.top,m=[],t=e.nil,c=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"),l.$require("set"),l.$require("pathname"),l.$require("opal/nodes/base"),function(l,m){var x=d(l,"Opal"),O=[x].concat(m);return function(l,m){var x=d(l,"Nodes"),O=[x].concat(m),C=e.$r(O);return function(l,d,m){var O=u(l,d,"CallNode"),C=[O].concat(m),x=e.$r(C),E=O.$$prototype;return E.sexp=E.conditional_recvr=E.with_writer_temp=E.compiler=t,O.$handle("send","csend"),O.$attr_reader("recvr","meth","arglist","iter"),h(C[0],"SPECIALS",new Map),h(C[0],"OPERATORS",new Map([["+","plus"],["-","minus"],["*","times"],["/","divide"],["<","lt"],["<=","le"],[">","gt"],[">=","ge"]]).$freeze()),p(O,"$add_special",function e(n,o){var i=e.$$p||t,a=this;return e.$$p=null,o==null&&(o=new Map),x("SPECIALS")["$[]="](n,o),s(a,"define_method",["handle_"+n],i.$to_proc())},-2),o(O,"$initialize",function e(){var i,l,h,m,p=e.$$p||t,c=this,d=t,f=t,u=t;return e.$$p=null,h=r(arguments),m=h,w(c,_(c,"initialize",e,!1,!0),"initialize",a(m),p),i=[].concat(a(c.sexp)),c.recvr=i[0]==null?t:i[0],c.meth=i[1]==null?t:i[1],d=r(i,2),i,i=[].concat(a(d)),l=i.length-1,l=l<0?0:l,f=r(i,0,l),u=i[l]==null?t:i[l],i,n(u)&&n(["iter","block_pass"]["$include?"](u.$type()))?(c.iter=u,d=f):c.iter=t,c.arglist=s(c,"s",["arglist"].concat(a(d)))},-1),o(O,"$compile",function(){var t=this;return s(t,"handle_special",[],function e(){var t=e.$$s==null?this:e.$$s;return t.$compiler().$record_method_call(t.$meth()),s(t,"with_wrapper",[],function e(){var t=e.$$s==null?this:e.$$s;return n(t["$using_eval?"]())?t.$compile_eval_var():n(t["$using_irb?"]())?t.$compile_irb_var():t.$default_compile()},{$$s:t})},{$$s:t})}),O.$private(),o(O,"$iter_has_break?",function(){var t=this;return!!n(t.$iter())&&t.$iter().$meta()["$[]"]("has_break")}),o(O,"$invoke_using_send?",function(){var s=this,o=t,i=t;return n(o=n(i=s.$iter())?i:s["$splat?"]())?o:s["$call_is_writer_that_needs_handling?"]()}),o(O,"$invoke_using_refinement?",function(){var t=this;return t.$scope().$scope().$collect_refinements_temps()["$empty?"]()["$!"]()}),o(O,"$csend?",function(){var t=this;return t.sexp.$type()["$=="]("csend")}),o(O,"$default_compile",function(){var s=this;return n(s["$auto_await?"]())&&(s.$push("(await "),s.$scope()["$await_encountered="](!0)),n(s["$iter_has_break?"]())&&s.$push_closure(c(x("Closure"),"SEND")),n(s["$invoke_using_refinement?"]())?s.$compile_using_refined_send():n(s["$invoke_using_send?"]())?s.$compile_using_send():s.$compile_simple_call_chain(),n(s["$iter_has_break?"]())&&s.$pop_closure(),n(s["$auto_await?"]())?s.$push(")"):t}),o(O,"$compile_using_send",function(){var t=this;return t.$helper("send"),t.$push("$send("),t.$compile_receiver(),t.$compile_method_name(),t.$compile_arguments(),t.$compile_block_pass(),t.$push(")")}),o(O,"$compile_using_refined_send",function(){var t=this;return t.$helper("refined_send"),t.$push("$refined_send("),t.$compile_refinements(),t.$compile_receiver(),t.$compile_method_name(),t.$compile_arguments(),t.$compile_block_pass(),t.$push(")")}),o(O,"$compile_receiver",function(){var s=this,o=t;return s.$push(n(o=s.conditional_recvr)?o:s.$recv(s.$receiver_sexp()))}),o(O,"$compile_method_name",function(){var t=this;return t.$push(", '"+t.$meth()+"'")}),o(O,"$compile_arguments",function(t){var s=this;return t==null&&(t=!1),n(t)||s.$push(", "),n(s.with_writer_temp)?s.$push(s.with_writer_temp):n(s["$splat?"]())?s.$push(s.$expr(s.$arglist())):n(s.$arglist().$children()["$empty?"]())?s.$push("[]"):s.$push("[",s.$expr(s.$arglist()),"]")},-1),o(O,"$compile_block_pass",function(){var s=this;return n(s.$iter())?s.$push(", ",s.$expr(s.$iter())):t}),o(O,"$compile_refinements",function(){var n=this,o=t,o=s(n.$scope().$collect_refinements_temps(),"map",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s.$s("js_tmp",n)},{$$s:n});return n.$push(n.$expr(s(n,"s",["array"].concat(a(o)))),", ")}),o(O,"$compile_simple_call_chain",function(){var t=this;return t.$compile_receiver(),t.$push(t.$method_jsid(),"(",t.$expr(t.$arglist()),")")}),o(O,"$splat?",function(){var n=this;return s(n.$arglist().$children(),"any?",[],function(n){return n==null&&(n=t),n.$type()["$=="]("splat")})}),o(O,"$receiver_sexp",function(){var s=this,o=t;return n(o=s.$recvr())?o:s.$s("self")}),o(O,"$method_jsid",function(){var t=this;return t.$mid_to_jsid(t.$meth().$to_s())}),o(O,"$compile_irb_var",function(){var n=this;return s(n,"with_temp",[],function e(n){var s=e.$$s==null?this:e.$$s,o=t,i=t,a=t;return n==null&&(n=t),o=s.$meth(),i=s.$s("send",s.$s("self"),s.$meth().$intern(),s.$s("arglist")),a="(typeof "+o+" !== 'undefined') ? "+o+" : ",s.$push("(("+n+" = Opal.irb_vars."+o+") == null ? ",a,s.$expr(i)," : "+n+")")},{$$s:n})}),o(O,"$compile_eval_var",function(){var t=this;return t.$push(t.$meth().$to_s())}),o(O,"$using_irb?",function(){var s=this,o=t,i=t;return n(o=n(i=s.compiler["$irb?"]())?s.$scope()["$top?"]():i)?s["$variable_like?"]():o}),o(O,"$using_eval?",function(){var s=this,o=t,i=t;return n(o=n(i=s.compiler["$eval?"]())?s.$scope()["$top?"]():i)?s.compiler.$scope_variables()["$include?"](s.$meth()):o}),o(O,"$variable_like?",function(){var s=this,o=t,i=t;return n(o=n(i=s.$arglist()["$=="](s.$s("arglist")))?s.$recvr()["$nil?"]():i)?s.$iter()["$nil?"]():o}),o(O,"$sexp_with_arglist",function(){var n=this;return n.sexp.$updated(t,[n.$recvr(),n.$meth(),n.$arglist()])}),o(O,"$auto_await?",function(){var o=this,s=t,i=t,a=t,s=o.$compiler().$async_await();return n(i=n(a=s)?s["$!="](!0):a)?s["$match?"](o.$meth().$to_s()):i}),o(O,"$handle_special",function s(){var r=s.$$p||t,a=this,o=t;return s.$$p=null,n(x("SPECIALS")["$include?"](a.$meth()))?(o=a.$method("handle_"+a.$meth()),i(o.$arity(),1)?o["$[]"](r):o["$[]"]()):e.yieldX(r,[])}),s(x("OPERATORS"),"each",[],function e(o,i){var a=e.$$s==null?this:e.$$s;return o==null&&(o=t),i==null&&(i=t),s(a,"add_special",[o.$to_sym()],function e(s){var r,a=e.$$s==null?this:e.$$s,c=t,l=t;return s==null&&(s=t),n(a["$invoke_using_refinement?"]())?s.$call():n(a.$compiler()["$inline_operators?"]())?(a.$compiler().$record_method_call(o),a.$helper("rb_"+i),r=[a.$expr(a.$recvr()),a.$expr(a.$arglist())],c=r[0],l=r[1],r,a.$push(a.$fragment("$rb_"+i+"(")),a.$push(c),a.$push(a.$fragment(", ")),a.$push(l),a.$push(a.$fragment(")"))):s.$call()},{$$s:a})},{$$s:O}),s(O,"add_special",["require"],function e(s){var o=e.$$s==null?this:e.$$s,i=t;return s==null&&(s=t),i=x("DependencyResolver").$new(o.$compiler(),o.$arglist().$children()["$[]"](0)).$resolve(),n(i["$nil?"]())||o.$compiler().$requires()["$<<"](i),s.$call()},{$$s:O}),s(O,"add_special",["require_relative"],function e(){var n=e.$$s==null?this:e.$$s,s=t,o=t,a=t,s=n.$arglist().$children()["$[]"](0),o=n.$compiler().$file();return i(s.$type(),"str")&&(a=x("File").$dirname(o),n.$compiler().$requires()["$<<"](n.$Pathname(a).$join(s.$children()["$[]"](0)).$cleanpath().$to_s())),n.$push(n.$fragment(""+n.$scope().$self()+".$require("+o.$inspect()+"+ '/../' + ")),n.$push(n.$process(n.$arglist())),n.$push(n.$fragment(")"))},{$$s:O}),s(O,"add_special",["autoload"],function e(s){var o=e.$$s==null?this:e.$$s,a=t,r=t;return s==null&&(s=t),a=o.$arglist().$children(),i(a.$length(),2)&&i(a["$[]"](0).$type(),"sym")&&(r=x("DependencyResolver").$new(o.$compiler(),a["$[]"](1),"ignore").$resolve(),n(r["$nil?"]())?o.$compiler().$warning("File for autoload of constant '"+a["$[]"](0).$children()["$[]"](0)+"' could not be bundled!"):(o.$compiler().$requires()["$<<"](r),o.$compiler().$autoloads()["$<<"](r))),s.$call()},{$$s:O}),s(O,"add_special",["require_tree"],function e(n){var c,s=e.$$s==null?this:e.$$s,o=t,u=t,l=t,h=t,d=t;return n==null&&(n=t),c=[].concat(a(s.$arglist().$children())),o=c[0]==null?t:c[0],u=r(c,1),c,i(o.$type(),"str")&&(l=o.$children()["$[]"](0),s.$compiler().$required_trees()["$<<"](l),h=x("File").$dirname(s.$compiler().$file()),d=s.$Pathname(h).$join(l).$cleanpath().$to_s(),d.$force_encoding(l.$encoding()),o=o.$updated(t,[d])),s.arglist=s.$arglist().$updated(t,y([o],u)),n.$call()},{$$s:O}),s(O,"add_special",["block_given?"],function e(){var n=e.$$s==null?this:e.$$s;return n.sexp==null&&(n.sexp=t),n.$push(n.$compiler().$handle_block_given_call(n.sexp))},{$$s:O}),s(O,"add_special",["__callee__"],function e(){var t=e.$$s==null?this:e.$$s;return n(t.$scope()["$def?"]())?t.$push(t.$fragment(t.$scope().$mid().$to_s().$inspect())):t.$push(t.$fragment("nil"))},{$$s:O}),s(O,"add_special",["__method__"],function e(){var t=e.$$s==null?this:e.$$s;return n(t.$scope()["$def?"]())?t.$push(t.$fragment(t.$scope().$mid().$to_s().$inspect())):t.$push(t.$fragment("nil"))},{$$s:O}),s(O,"add_special",["__dir__"],function e(){var t=e.$$s==null?this:e.$$s;return t.$push(x("File").$dirname(c(x("Opal"),"Compiler").$module_name(t.$compiler().$file())).$inspect())},{$$s:O}),s(O,"add_special",["using"],function e(s){var o=e.$$s==null?this:e.$$s;return s==null&&(s=t),n(o.$scope()["$accepts_using?"]())&&i(o.$arglist().$children().$count(),1)?o.$using_refinement(o.$arglist().$children().$first()):s.$call()},{$$s:O}),o(O,"$using_refinement",function(s){var o=this,c=t,r=t,i=[].concat(a(o.$scope().$refinements_temp()));return c=i[0]==null?t:i[0],r=i[1]==null?t:i[1],i,n(c)?o.$push("("+r+" = "+c+".slice(), "+r+".push(",o.$expr(s),"), "+o.$scope().$self()+")"):o.$push("("+r+" = [",o.$expr(s),"], "+o.$scope().$self()+")")}),s(O,"add_special",["debugger"],function e(){var t=e.$$s==null?this:e.$$s;return t.$push(t.$fragment("debugger"))},{$$s:O}),s(O,"add_special",["__OPAL_COMPILER_CONFIG__"],function e(){var t=e.$$s==null?this:e.$$s;return t.$push(t.$fragment("(new Map([['arity_check', "+t.$compiler()["$arity_check?"]()+"]]))"))},{$$s:O}),s(O,"add_special",["lambda"],function e(n){var o=e.$$s==null?this:e.$$s;return n==null&&(n=t),s(o.$scope(),"defines_lambda",[],function(){return n.$call()})},{$$s:O}),s(O,"add_special",["nesting"],function e(s){var o=e.$$s==null?this:e.$$s,i=t;return s==null&&(s=t),i=o["$push_nesting?"](),n(i)&&o.$push("(Opal.Module.$$nesting = "+o.$scope().$nesting()+", "),s.$call(),n(i)?o.$push(")"):t},{$$s:O}),s(O,"add_special",["constants"],function e(s){var o=e.$$s==null?this:e.$$s,i=t;return s==null&&(s=t),i=o["$push_nesting?"](),n(i)&&o.$push("(Opal.Module.$$nesting = "+o.$scope().$nesting()+", "),s.$call(),n(i)?o.$push(")"):t},{$$s:O}),s(O,"add_special",["eval"],function e(n){var o=e.$$s==null?this:e.$$s,i=t,a=t;return n==null&&(n=t),o.$thrower("eval_return"),j(o.$arglist().$children().$length(),1)||f([o.$s("self"),t]["$include?"](o.$recvr()))?n.$call():(o.$scope().$nesting(),i=o.$scope().$new_temp(),a=s(o.$scope().$scope_locals(),"map",[],"to_s".$to_proc()).$inspect(),o.$push("("+i+" = ",o.$expr(o.$arglist())),o.$push(", typeof Opal.compile === 'function' ? eval(Opal.compile("+i),o.$push(", {scope_variables: ",a),o.$push(", arity_check: "+o.$compiler()["$arity_check?"]()+", file: '(eval)', eval: true})) : "),o.$push(""+o.$scope().$self()+".$eval("+i+"))"))},{$$s:O}),s(O,"add_special",["local_variables"],function e(o){var i=e.$$s==null?this:e.$$s,a=t;return o==null&&(o=t),n([i.$s("self"),t]["$include?"](i.$recvr()))?(a=s(i.$scope().$scope_locals(),"map",[],"to_s".$to_proc()).$inspect(),i.$push(a)):o.$call()},{$$s:O}),s(O,"add_special",["binding"],function e(o){var i=e.$$s==null?this:e.$$s;return o==null&&(o=t),n(i.$recvr()["$nil?"]())?(i.$scope().$nesting(),i.$push("Opal.Binding.$new("),i.$push(" function($code) {"),i.$push(" return eval($code);"),i.$push(" },"),i.$push(" ",s(i.$scope().$scope_locals(),"map",[],"to_s".$to_proc()).$inspect(),","),i.$push(" ",i.$scope().$self(),","),i.$push(" ",i.$source_location()),i.$push(")")):o.$call()},{$$s:O}),s(O,"add_special",["__await__"],function e(o){var a,i=e.$$s==null?this:e.$$s;return o==null&&(o=t),n(i.$compiler().$async_await())?(i.$push(i.$fragment("(await (")),i.$push(i.$process(i.$recvr())),i.$push(i.$fragment("))")),(a=[!0],s(i.$scope(),"await_encountered=",a),a[a.length-1])):o.$call()},{$$s:O}),o(O,"$push_nesting?",function(){var o=this,s=t,i=t,a=t,r=t,s=o.$children().$first();return n(i=o.$children().$size()["$=="](2))?n(a=s["$nil?"]())?a:n(r=s.$type()["$=="]("const"))?s.$children().$last()["$=="]("Module"):r:i}),o(O,"$with_wrapper",function o(){var a=o.$$p||t,i=this;return o.$$p=null,n(i["$csend?"]())&&f(i.conditional_recvr)?s(i,"handle_conditional_send",[],function e(){var t=e.$$s==null?this:e.$$s;return s(t,"with_wrapper",[],a.$to_proc())},{$$s:i}):n(i["$call_is_writer_that_needs_handling?"]())?s(i,"handle_writer",[],a.$to_proc()):e.yieldX(a,[])}),o(O,"$call_is_writer_that_needs_handling?",function(){var s=this,i=t,o=t;return n(i=n(o=s["$expr?"]())?o:s["$recv?"]())?n(o=s.$meth().$to_s()["$=~"](/^\w+=$/))?o:s.$meth()["$=="]("[]="):i}),o(O,"$handle_conditional_send",function n(){var i=n.$$p||t,s=this,o=t;return n.$$p=null,o=s.$scope().$new_temp(),s.$push(""+o+" = ",s.$expr(s.$receiver_sexp())),s.$push(", ("+o+" === nil || "+o+" == null) ? nil : "),s.conditional_recvr=o,e.yieldX(i,[]),s.$wrap("(",")")}),o(O,"$handle_writer",function n(){var i=n.$$p||t,o=this;return n.$$p=null,s(o,"with_temp",[],function n(s){var o=n.$$s==null?this:n.$$s;return s==null&&(s=t),o.$push("("+s+" = "),o.$compile_arguments(!0),o.$push(", "),o.with_writer_temp=s,e.yieldX(i,[]),o.with_writer_temp=!1,o.$push(", "),o.$push(""+s+"["+s+".length - 1])")},{$$s:o})}),function(l,d,h){var m=u(l,d,"DependencyResolver"),j=[m].concat(h),p=e.$r(j),f=m.$$prototype;return f.compiler=f.sexp=f.missing_dynamic_require=t,o(m,"$initialize",function(s,o,i){var a=this,r=t;return i==null&&(i=t),a.compiler=s,a.sexp=o,a.missing_dynamic_require=n(r=i)?r:a.compiler.$dynamic_require_severity()},-3),o(m,"$resolve",function(){var t=this;return t.$handle_part(t.sexp)}),o(m,"$handle_part",function(o,l){var u,j,d=this,f=t,h=t,y=t,m=t;if(l==null&&(l=d.missing_dynamic_require),n(o))switch(o.$type().valueOf()){case"str":return o.$children()["$[]"](0);case"dstr":return s(o.$children(),"map",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s.$handle_part(n)},{$$s:d}).$join();case"begin":if(i(o.$children().$length(),1))return d.$handle_part(o.$children()["$[]"](0));break;case"send":if(j=o.$children(),u=g(j),f=u[0]==null?t:u[0],h=u[1]==null?t:u[1],y=r(u,2),j,m=s(y,"map",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s.$handle_part(n,"ignore")},{$$s:d}),n(m["$include?"](t)))return t;if(n(f["$is_a?"](c(c(v,"AST"),"Node")))&&i(f.$type(),"const")&&i(f.$children().$last(),"File")){{if(i(h,"expand_path"))return s(d,"expand_path",a(m));if(i(h,"join"))return d.$expand_path(m.$join("/"));if(i(h,"dirname"))return d.$expand_path(m["$[]"](0).$split("/")["$[]"](b(0,-1,!0)).$join("/"))}}else if(i(h,"__dir__"))return p("File").$dirname(c(p("Opal"),"Compiler").$module_name(d.compiler.$file()));break;default:t}switch(l.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 t}},-2),o(m,"$expand_path",function(n,o){return o==null&&(o=""),s((""+o+"/"+n).$split("/"),"each_with_object",[[]],function(n,s){return n==null&&(n=t),s==null&&(s=t),i(n,"")?t:i(n,"..")?s.$pop():s["$<<"](n)}).$join("/")},-2)}(C[0],null,C)}(O[0],C("Base"),O)}(O[0],O)}(m[0],m)},Opal.modules["opal/nodes/call_special"]=function(e){var r=e.module,o=e.klass,t=e.def,m=e.slice,h=e.send2,u=e.find_super,a=e.to_a,s=e.truthy,c=e.eqeq,i=e.send,l=e.top,d=[],n=e.nil;return e.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"),l.$require("opal/nodes/base"),l.$require("opal/nodes/call"),function(l,d){var p=r(l,"Opal"),f=[p].concat(d);return function(l,d){var g=r(l,"Nodes"),f=[g].concat(d),p=e.$r(f);return function(e,n){var s=o(e,n,"JsAttrNode");return s.$handle("jsattr"),s.$children("recvr","property"),t(s,"$compile",function(){var t=this;return t.$push(t.$recv(t.$recvr()),"[",t.$expr(t.$property()),"]")})}(f[0],p("Base")),function(e,n){var s=o(e,n,"JsAttrAsgnNode");return s.$handle("jsattrasgn"),s.$children("recvr","property","value"),t(s,"$compile",function(){var t=this;return t.$push(t.$recv(t.$recvr()),"[",t.$expr(t.$property()),"] = ",t.$expr(t.$value()))})}(f[0],p("Base")),function(e,i){var r=o(e,i,"JsCallNode"),c=r.$$prototype;return c.iter=c.arglist=n,r.$handle("jscall"),t(r,"$initialize",function e(){var i,r,c=e.$$p||n,o=this;return e.$$p=null,i=m(arguments),r=i,h(o,u(o,"initialize",e,!1,!0),"initialize",a(r),c),s(o.iter)&&(o.arglist=o.arglist["$<<"](o.iter)),o.iter=n},-1),t(r,"$compile",function(){var t=this;return t.$default_compile()}),t(r,"$method_jsid",function(){var t=this;return"."+t.$meth()}),t(r,"$compile_using_send",function(){var t=this;return t.$push(t.$recv(t.$receiver_sexp()),t.$method_jsid(),".apply(null"),t.$compile_arguments(),s(t.$iter())&&t.$push(".concat(",t.$expr(t.$iter()),")"),t.$push(")")})}(f[0],p("CallNode")),function(e,r){var l=o(e,r,"Match3Node"),d=l.$$prototype;return d.level=n,l.$handle("match_with_lvasgn"),l.$children("lhs","rhs"),t(l,"$compile",function(){var t=this,o=n,i=n,a=n,r=n,o=t.$s("send",t.$lhs(),"=~",t.$rhs());return c(t.$lhs().$type(),"regexp")&&c(t.$lhs().$children().$first().$type(),"str")&&(i=t.$extract_names(t.$lhs()),s(i["$empty?"]())||(a=t.$generate_names_definition(),r=t.$generate_names_assignments(i),o=s(t["$stmt?"]())?t.$handle_statement(o,a,r):t.$handle_non_statement(o,a,r))),t.$push(t.$process(o,t.level))}),l.$private(),t(l,"$extract_names",function(t){var s=n,s=t.$children().$first().$children().$first();return i(s.$scan(/\(\?<([^>]*)>/).$flatten(),"map",[],"to_sym".$to_proc())}),t(l,"$generate_names_definition",function(){var t=this;return t.$s("lvasgn","$m3names",t.$s("if",t.$s("gvar","$~"),t.$s("send",t.$s("gvar","$~"),"named_captures"),t.$s("hash")))}),t(l,"$generate_names_assignments",function(t){var s=this;return i(t,"map",[],function e(t){var s=e.$$s==null?this:e.$$s;return t==null&&(t=n),s.$s("lvasgn",t,s.$s("send",s.$s("lvar","$m3names"),"[]",s.$s("sym",t)))},{$$s:s})}),t(l,"$handle_statement",function(t,n,s){var o=this;return i(o,"s",["begin",t,n].concat(a(s)))}),t(l,"$handle_non_statement",function(t,n,s){var o=this;return i(o,"s",["begin",o.$s("lvasgn","$m3tmp",t),n].concat(a(s)).concat([o.$s("lvar","$m3tmp")]))})}(f[0],p("Base"))}(f[0],f)}(d[0],d)},Opal.modules["opal/nodes/scope"]=function(e){var d=e.module,b=e.klass,p=e.slice,f=e.send2,h=e.find_super,c=e.to_a,n=e.def,o=e.send,s=e.truthy,m=e.assign_ivar_val,a=e.return_ivar,l=e.not,r=e.rb_plus,i=e.eqeq,g=e.thrower,v=e.top,u=[],t=e.nil;return e.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"),v.$require("opal/nodes/base"),function(u,v){var y=d(u,"Opal"),j=[y].concat(v);return function(u,v){var y=d(u,"Nodes"),j=[y].concat(v),_=e.$r(j);return function(d,u,v){var j=b(d,u,"ScopeNode"),w=[j].concat(v),_=e.$r(w),y=j.$$prototype;return y.type=y.is_lambda=y.defs=y.parent=y.temps=y.locals=y.proto_ivars=y.compiler=y.ivars=y.gvars=y.args=y.queue=y.while_stack=y.identity=y.rescues=y.next_retry_id=y.refinements_temp=y.block_prepared=t,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"),n(j,"$initialize",function e(){var o,i,a=e.$$p||t,s=this;return e.$$p=null,o=p(arguments),i=o,f(s,h(s,"initialize",e,!1,!0),"initialize",c(i),a),s.locals=[],s.temps=[],s.args=[],s.ivars=[],s.gvars=[],s.parent=t,s.queue=[],s.unique="a",s.while_stack=[],s.identity=t,s.defs=t,s.methods=[],s.uses_block=!1,s.in_ensure=!1,s.proto_ivars=[]},-1),n(j,"$in_scope",function n(){var i=n.$$p||t,s=this;return n.$$p=null,o(s,"indent",[],function n(){var a,s=n.$$s==null?this:n.$$s;return s.parent==null&&(s.parent=t),s.parent=s.$compiler().$scope(),s.$compiler()["$scope="](s),e.yield1(i,s),(a=[s.parent],o(s.$compiler(),"scope=",a),a[a.length-1])},{$$s:s})}),n(j,"$class_scope?",function(){var n=this,o=t;return s(o=n.type["$=="]("class"))?o:n.type["$=="]("module")}),n(j,"$class?",function(){var t=this;return t.type["$=="]("class")}),n(j,"$module?",function(){var t=this;return t.type["$=="]("module")}),n(j,"$sclass?",function(){var t=this;return t.type["$=="]("sclass")}),n(j,"$top?",function(){var t=this;return t.type["$=="]("top")}),n(j,"$iter?",function(){var t=this;return t.type["$=="]("iter")}),n(j,"$def?",function(){var n=this,o=t;return s(o=n.type["$=="]("def"))?o:n.type["$=="]("defs")}),n(j,"$lambda?",function(){var n=this,o=t;return s(o=n["$iter?"]())?n.is_lambda:o}),n(j,"$is_lambda!",m("is_lambda",!0)),n(j,"$defines_lambda",function n(){var o=n.$$p||t,s=this;return n.$$p=null,s.lambda_definition=!0,e.yieldX(o,[]),s.lambda_definition=!1}),n(j,"$lambda_definition?",a("lambda_definition")),n(j,"$def_in_class?",function(){var n=this,o=t,i=t,a=t;return s(o=s(i=s(a=n.defs["$!"]())?n.type["$=="]("def"):a)?n.parent:i)?n.parent["$class?"]():o}),n(j,"$to_vars",function(){var n=this,d=t,u=t,h=t,a=t,i=t,m=t,d=n.temps.$dup();return o(d,"push",c(o(n.locals,"map",[],function(n){return n==null&&(n=t),""+n+" = nil"}))),u=o(n.$ivars(),"map",[],function(n){return n==null&&(n=t),"if (self"+n+" == null) self"+n+` = nil;
`}),h=o(n.$gvars(),"map",[],function(n){return n==null&&(n=t),"if ($gvars"+n+" == null) $gvars"+n+` = nil;
`}),s(n["$class?"]())&&l(n.proto_ivars["$empty?"]())&&d["$<<"]("$proto = self.$$prototype"),a=n.compiler.$parser_indent(),i=s(d["$empty?"]())?"":"var "+d.$join(", ")+`;
`,s(n.$ivars()["$empty?"]())||(i=r(i,""+a+u.$join(a))),s(n.$gvars()["$empty?"]())||(i=r(i,""+a+h.$join(a))),s(n["$class?"]())&&l(n.proto_ivars["$empty?"]())&&(m=o(n.proto_ivars,"map",[],function(n){return n==null&&(n=t),"$proto"+n}).$join(" = "),i=""+i+`
`+a+m+" = nil;"),n.$fragment(i)}),n(j,"$add_scope_ivar",function(n){var o=this;return s(o["$def_in_class?"]())?o.parent.$add_proto_ivar(n):s(o.ivars["$include?"](n))?t:o.ivars["$<<"](n)}),n(j,"$add_scope_gvar",function(n){var o=this;return s(o.gvars["$include?"](n))?t:o.gvars["$<<"](n)}),n(j,"$add_proto_ivar",function(n){var o=this;return s(o.proto_ivars["$include?"](n))?t:o.proto_ivars["$<<"](n)}),n(j,"$add_arg",function(t){var n=this;return s(n.args["$include?"](t))||n.args["$<<"](t),t}),n(j,"$add_scope_local",function(n){var o=this;return s(o["$has_local?"](n))?t:o.locals["$<<"](n)}),n(j,"$has_local?",function(t){var n=this;return!!(s(n.locals["$include?"](t))||s(n.args["$include?"](t))||s(n.temps["$include?"](t)))||!!(s(n.parent)&&i(n.type,"iter"))&&n.parent["$has_local?"](t)}),n(j,"$scope_locals",function(){var n=this,a=t,a=n.locals["$|"](n.args)["$|"](s(n.parent)&&i(n.type,"iter")?n.parent.$scope_locals():[]);return o(a,"reject",[],function(n){return n==null&&(n=t),n.$to_s()["$start_with?"]("$")})}),n(j,"$add_scope_temp",function(n){var o=this;return s(o["$has_temp?"](n))?t:o.temps.$push(n)}),n(j,"$prepend_scope_temp",function(n){var o=this;return s(o["$has_temp?"](n))?t:o.temps.$unshift(n)}),n(j,"$has_temp?",function(t){var n=this;return n.temps["$include?"](t)}),n(j,"$new_temp",function(){var n=this,o=t;return s(n.queue["$empty?"]())?(o=n.$next_temp(),n.temps["$<<"](o),o):n.queue.$pop()}),n(j,"$next_temp",function(){var i=this,n=t,n=t;return function(){try{var e=g("break");return o(i,"loop",[],function o(){var i=o.$$s==null?this:o.$$s;if(i.unique==null&&(i.unique=t),n="$"+i.unique,i.unique=i.unique.$succ(),s(i["$has_local?"](n)))return t;e.$throw(t,o.$$is_lambda)},{$$s:i})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}(),n}),n(j,"$queue_temp",function(t){var n=this;return n.queue["$<<"](t)}),n(j,"$push_while",function(){var s=this,n=t,n=new Map;return s.while_stack.$push(n),n}),n(j,"$pop_while",function(){var t=this;return t.while_stack.$pop()}),n(j,"$in_while?",function(){var t=this;return t.while_stack["$empty?"]()["$!"]()}),n(j,"$uses_block!",function(){var t=this;return i(t.type,"iter")&&s(t.parent)?t.parent["$uses_block!"]():(t.uses_block=!0,t["$identify!"]())}),n(j,"$identify!",function(n){var o=this,i=t,a=t,r=t;return n==null&&(n=t),s(o.identity)?o.identity:(s(o["$valid_name?"](o.$mid()))?o.identity="$$"+o.$mid():(n=s(i=n)?i:[s(a=o.$parent())?s(r=o.$parent().$name())?r:o.$parent().$scope_name():a,o.$mid()].$compact().$join("_"),o.identity=o.compiler.$unique_temp(n)),o.identity)},-1),j.$attr_reader("identity"),n(j,"$find_parent_def",function(){for(var o=this,n=t,n=o;s(n=n.$parent());)if(s(n["$def?"]())||s(n["$lambda?"]()))return n;return t}),n(j,"$super_chain",function(){var l=this,a=t,n=t,r=t,c=t,o=[[],l,"null","null"];for(a=o[0],n=o[1],r=o[2],c=o[3],o;s(n);)if(i(n.$type(),"iter"))a["$<<"](n["$identify!"]()),s(n.$parent())&&(n=n.$parent());else if(s(["def","defs"]["$include?"](n.$type()))){r=n["$identify!"](),c="'"+n.$mid()+"'";break}else break;return[a,r,c]}),n(j,"$uses_block?",a("uses_block")),n(j,"$has_rescue_else?",function(){var t=this;return t.$rescue_else_sexp()["$nil?"]()["$!"]()}),n(j,"$in_rescue",function n(o){var c=n.$$p||t,i=this,a=t,r=t;return n.$$p=null,i.rescues=s(a=i.rescues)?a:[],i.rescues.$push(o),r=e.yieldX(c,[]),i.rescues.$pop(),r}),n(j,"$current_rescue",function(){var t=this;return t.rescues.$last()}),n(j,"$in_resbody",function n(){var s=n.$$p||t,o=this,i=t;return n.$$p=null,s!==t?(o.in_resbody=!0,i=e.yieldX(s,[]),o.in_resbody=!1,i):t}),n(j,"$in_resbody?",a("in_resbody")),n(j,"$in_ensure",function n(){var s=n.$$p||t,o=this,i=t;return n.$$p=null,s!==t?(o.in_ensure=!0,i=e.yieldX(s,[]),o.in_ensure=!1,i):t}),n(j,"$in_ensure?",a("in_ensure")),n(j,"$gen_retry_id",function(){var n=this,o=t;return n.next_retry_id=s(o=n.next_retry_id)?o:"retry_0",n.next_retry_id=n.next_retry_id.$succ()}),n(j,"$accepts_using?",function(){var t=this;return[_("TopNode"),_("ModuleNode"),_("ClassNode"),_("IterNode")]["$include?"](t.$class())}),n(j,"$collect_refinements_temps",function(t){var n=this;return t==null&&(t=[]),s(n.refinements_temp)&&t["$<<"](n.refinements_temp),s(n.$parent())?n.$parent().$collect_refinements_temps(t):t},-1),n(j,"$new_refinements_temp",function(){var s=this,n=t,n=s.$compiler().$unique_temp("$refn");return s.$add_scope_local(n),n}),n(j,"$refinements_temp",function(){var s=this,i=t,o=t,n=[s.refinements_temp,s.$new_refinements_temp()];return i=n[0],o=n[1],n,s.refinements_temp=o,[i,o]}),n(j,"$self",function(){var t=this;return t.define_self=!0,"self"}),n(j,"$nesting",function(){var t=this;return t.define_nesting=!0,"$nesting"}),n(j,"$relative_access",function(){var t=this;return t.define_relative_access=t.define_nesting=!0,"$$"}),n(j,"$prepare_block",function(n){var o=this,i=t;return n==null&&(n=t),i=o.$scope().$identity(),s(n)&&o["$block_name="](n),o.$add_temp(""+o.$block_name()+" = "+i+".$$p || nil"),s(o.block_prepared)?t:(o.$line(""+i+".$$p = null;"),o.block_prepared=!0)},-1),j.$attr_accessor("await_encountered")}(j[0],_("Base"),j)}(j[0],j)}(u[0],u)},Opal.modules["opal/nodes/module"]=function(e){var o=e.module,l=e.klass,i=e.to_ary,n=e.truthy,a=e.send,d=e.rb_plus,s=e.def,u=e.top,r=[],t=e.nil,c=e.$$$;return e.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"),u.$require("opal/nodes/scope"),function(r,u){var m=o(r,"Opal"),h=[m].concat(u);return function(r,u){var m=o(r,"Nodes"),h=[m].concat(u),f=e.$r(h);return function(o,r,u){var h=l(o,r,"ModuleNode"),p=[h].concat(u),m=e.$r(p),f=h.$$prototype;return f.define_nesting=f.define_relative_access=t,h.$handle("module"),h.$children("cid","body"),s(h,"$compile",function(){var s=this,r=t,l=t,u=t,h=t,f=t,p=s.$name_and_base(),o=i(p);return r=o[0]==null?t:o[0],l=o[1]==null?t:o[1],p,s.$helper("module"),n(s.$body()["$nil?"]())?n(s["$stmt?"]())?s.$unshift("$module(",l,", '"+r+"')"):s.$unshift("($module(",l,", '"+r+"'), nil)"):(s.$line(" var self = $module($base, '"+r+"');"),a(s,"in_scope",[],function e(){var t=e.$$s==null?this:e.$$s;return t.$scope()["$name="](r),a(t,"in_closure",[c(m("Closure"),"MODULE")["$|"](c(m("Closure"),"JS_FUNCTION"))],function e(){var t=e.$$s==null?this:e.$$s;return t.$compile_body()},{$$s:t})},{$$s:s}),n(s.$await_encountered())?(u="(await ",h=")",f="async ",s.$parent()["$await_encountered="](!0)):(o=["","",""],u=o[0],h=o[1],f=o[2],o),s.$unshift(""+u+"("+f+"function($base"+(n(s.define_nesting)?", $parent_nesting":t)+") {"),s.$line("})(",l,""+(n(s.define_nesting)?d(", ",s.$scope().$nesting()):t)+")"+h))}),h.$private(),s(h,"$name_and_base",function(){var o=this,a=t,r=t,c=o.$cid().$children(),s=i(c);return a=s[0]==null?t:s[0],r=s[1]==null?t:s[1],c,n(a["$nil?"]())?[r,""+o.$scope().$nesting()+"[0]"]:[r,o.$expr(a)]}),s(h,"$compile_body",function(){var s=this,o=t,o=s.$stmt(s.$compiler().$returns(s.$body()));return s.$empty_line(),n(s.define_nesting)&&s.$add_temp("$nesting = [self].concat($parent_nesting)"),n(s.define_relative_access)&&s.$add_temp("$$ = Opal.$r($nesting)"),s.$line(s.$scope().$to_vars()),s.$line(o)})}(h[0],f("ScopeNode"),h)}(h[0],h)}(r[0],r)},Opal.modules["opal/nodes/class"]=function(e){var s=e.module,c=e.klass,l=e.to_ary,n=e.truthy,o=e.send,d=e.rb_plus,i=e.def,u=e.top,a=[],t=e.nil,r=e.$$$;return e.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"),u.$require("opal/nodes/module"),function(a,u){var m=s(a,"Opal"),h=[m].concat(u);return function(a,u){var m=s(a,"Nodes"),h=[m].concat(u),f=e.$r(h);return function(s,a,u){var h=c(s,a,"ClassNode"),f=[h].concat(u),m=e.$r(f),p=h.$$prototype;return p.define_nesting=t,h.$handle("class"),h.$children("cid","sup","body"),i(h,"$compile",function(){var s=this,a=t,c=t,u=t,h=t,f=t,p=s.$name_and_base(),i=l(p);return a=i[0]==null?t:i[0],c=i[1]==null?t:i[1],p,s.$helper("klass"),n(s.$body()["$nil?"]())?n(s["$stmt?"]())?s.$unshift("$klass(",c,", ",s.$super_code(),", '"+a+"')"):s.$unshift("($klass(",c,", ",s.$super_code(),", '"+a+"'), nil)"):(s.$line(" var self = $klass($base, $super, '"+a+"');"),o(s,"in_scope",[],function e(){var t=e.$$s==null?this:e.$$s;return t.$scope()["$name="](a),o(t,"in_closure",[r(m("Closure"),"MODULE")["$|"](r(m("Closure"),"JS_FUNCTION"))],function e(){var t=e.$$s==null?this:e.$$s;return t.$compile_body()},{$$s:t})},{$$s:s}),n(s.$await_encountered())?(u="(await ",h=")",f="async ",s.$parent()["$await_encountered="](!0)):(i=["","",""],u=i[0],h=i[1],f=i[2],i),s.$unshift(""+u+"("+f+"function($base, $super"+(n(s.define_nesting)?", $parent_nesting":t)+") {"),s.$line("})(",c,", ",s.$super_code(),""+(n(s.define_nesting)?d(", ",s.$scope().$nesting()):t)+")"+h))}),i(h,"$super_code",function(){var t=this;return n(t.$sup())?t.$expr(t.$sup()):"null"})}(h[0],f("ModuleNode"),h)}(h[0],h)}(a[0],a)},Opal.modules["opal/nodes/singleton_class"]=function(e){var n=e.module,i=e.klass,a=e.send,s=e.truthy,r=e.def,c=e.top,o=[],t=e.nil;return e.add_stubs("require,handle,children,push,in_scope,stmt,returns,compiler,body,add_temp,line,to_vars,scope,recv,object,nesting"),c.$require("opal/nodes/scope"),function(o,c){var d=n(o,"Opal"),l=[d].concat(c);return function(o,c){var d=n(o,"Nodes"),l=[d].concat(c),u=e.$r(l);return function(e,n){var o=i(e,n,"SingletonClassNode");return o.$handle("sclass"),o.$children("object","body"),r(o,"$compile",function(){var n=this;return n.$push("(function(self, $parent_nesting) {"),a(n,"in_scope",[],function e(){var n=e.$$s==null?this:e.$$s,o=t;return n.define_nesting==null&&(n.define_nesting=t),n.define_relative_access==null&&(n.define_relative_access=t),o=n.$stmt(n.$compiler().$returns(n.$body())),s(n.define_nesting)&&n.$add_temp("$nesting = [self].concat($parent_nesting)"),s(n.define_relative_access)&&n.$add_temp("$$ = Opal.$r($nesting)"),n.$line(n.$scope().$to_vars()),n.$line(o)},{$$s:n}),n.$line("})(Opal.get_singleton_class(",n.$recv(n.$object()),"), "+n.$scope().$nesting()+")")})}(l[0],u("ScopeNode"))}(l[0],l)}(o[0],o)},Opal.modules["opal/nodes/args/arg"]=function(e){var t=e.module,s=e.klass,o=e.def,i=e.top,n=[],a=e.nil;return e.add_stubs("require,handle,children,add_arg,scope,name,push,to_s"),i.$require("opal/nodes/base"),function(n,i){var r=t(n,"Opal"),a=[r].concat(i);return function(n,i){var r=t(n,"Nodes"),a=[r].concat(i);return function(n,i){var r=t(n,"Args"),a=[r].concat(i),c=e.$r(a);return function(e,t){var n=s(e,t,"ArgNode");return n.$handle("arg"),n.$children("name"),o(n,"$compile",function(){var t=this;return t.$scope().$add_arg(t.$name()),t.$push(t.$name().$to_s())})}(a[0],c("Base"))}(a[0],a)}(a[0],a)}(n[0],n)},Opal.modules["opal/nodes/args/arity_check"]=function(e){var d=e.module,c=e.klass,v=e.slice,g=e.send2,m=e.find_super,o=e.to_a,s=e.def,n=e.truthy,i=e.rb_minus,u=e.not,p=e.rb_lt,r=e.rb_plus,f=e.rb_gt,a=e.send,h=e.top,l=[],t=e.nil,b=e.$$$;return e.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"),h.$require("opal/nodes/base"),h.$require("opal/rewriters/arguments"),function(l,h){var y=d(l,"Opal"),j=[y].concat(h);return function(l,h){var _=d(l,"Nodes"),j=[_].concat(h),y=e.$r(j);return function(l,d,h){var j=c(l,d,"ArityCheckNode"),_=[j].concat(h),w=e.$r(_),y=j.$$prototype;return y.kwargs=y.kwoptargs=y.kwrestarg=y.all_args=y.args=y.optargs=y.restarg=y.postargs=y.arity_checks=t,j.$handle("arity_check"),j.$children("args_node"),s(j,"$initialize",function e(){var a,r,c=e.$$p||t,s=this,i=t;return e.$$p=null,a=v(arguments),r=a,g(s,m(s,"initialize",e,!1,!0),"initialize",o(r),c),i=b(w("Rewriters"),"Arguments").$new(s.$args_node().$children()),s.args=i.$args(),s.optargs=i.$optargs(),s.restarg=i.$restarg(),s.postargs=i.$postargs(),s.kwargs=i.$kwargs(),s.kwoptargs=i.$kwoptargs(),s.kwrestarg=i.$kwrestarg(),s.kwnilarg=i.$kwnilarg()},-1),s(j,"$compile",function(){var s=this,o=t;return s.$scope()["$arity="](s.$arity()),n(s.$compiler()["$arity_check?"]())?n(s.$arity_checks()["$empty?"]())?t:(s.$helper("ac"),o=s.$scope().$mid().$to_s().$inspect(),s.$line("var $arity = arguments.length;"),s.$push(" if ("+s.$arity_checks().$join(" || ")+") { $ac($arity, "+s.$arity()+", this, "+o+"); }")):t}),s(j,"$kwargs",function(){var t=this;return[].concat(o(t.kwargs)).concat(o(t.kwoptargs)).concat([t.kwrestarg]).$compact()}),s(j,"$all_args",function(){var s=this,i=t;return s.all_args=n(i=s.all_args)?i:[].concat(o(s.args)).concat(o(s.optargs)).concat([s.restarg]).concat(o(s.postargs)).concat(o(s.$kwargs())).$compact()}),s(j,"$arity_checks",function(){var a,s=this,o=t,c=t,l=t;return n((a=s.arity_checks,a!=null&&a!==t?"instance-variable":t))?s.arity_checks:(o=s.$all_args().$size(),o=i(o,s.optargs.$size()),n(s.restarg)&&(o=i(o,1)),o=i(o,s.$kwargs().$size()),(u(s.optargs["$empty?"]())||u(s.$kwargs()["$empty?"]())||n(s.restarg))&&(o=i(o["$-@"](),1)),s.arity_checks=[],n(p(o,0))?(c=r(o,1)["$-@"](),l=s.$all_args().$size(),n(f(c,0))&&s.arity_checks["$<<"]("$arity < "+c),n(s.restarg)||s.arity_checks["$<<"]("$arity > "+l)):s.arity_checks["$<<"]("$arity !== "+o),s.arity_checks)}),s(j,"$arity",function(){var t=this;return n(t.restarg)||n(t.optargs["$any?"]())||n(t["$has_only_optional_kwargs?"]())?t.$negative_arity():t.$positive_arity()}),s(j,"$negative_arity",function(){var o=this,c=t,s=t,c=a(o.$all_args(),"select",[],function(n){return n==null&&(n=t),["arg","mlhs"]["$include?"](n.$type())}),s=c.$size();return n(o["$has_required_kwargs?"]())&&(s=r(s,1)),i(s["$-@"](),1)}),s(j,"$positive_arity",function(){var o=this,s=t,s=o.$all_args().$size(),s=i(s,o.$kwargs().$size());return n(o.$kwargs()["$any?"]())&&(s=r(s,1)),s}),s(j,"$has_only_optional_kwargs?",function(){var s=this,o=t;return n(o=s.$kwargs()["$any?"]())?a(s.$kwargs(),"all?",[],function(n){return n==null&&(n=t),["kwoptarg","kwrestarg"]["$include?"](n.$type())}):o}),s(j,"$has_required_kwargs?",function(){var n=this;return a(n.$kwargs(),"any?",[],function(n){return n==null&&(n=t),n.$type()["$=="]("kwarg")})})}(j[0],y("Base"),j),function(e,o){var i=c(e,o,"IterArityCheckNode");return i.$handle("iter_arity_check"),s(i,"$compile",function(){var o=this,s=t,a=t,r=t,c=t,i=t;if(o.$scope()["$arity="](o.$arity()),!n(o.$compiler()["$arity_check?"]()))return t;if(n(o.$arity_checks()["$empty?"]()))return t;for(s=o.$scope();!n(n(a=n(r=s["$def?"]())?r:s["$class_scope?"]())?a:s["$top?"]());)s=s.$parent();return c=n(s["$top?"]())?"'<main>'":n(s["$def?"]())?"'"+s.$mid()+"'":n(s["$class?"]())?"'<class:"+s.$name()+">'":n(s["$module?"]())?"'<module:"+s.$name()+">'":t,i=o.$scope().$identity(),o.$line("if ("+i+".$$is_lambda || "+i+".$$define_meth) {"),o.$line(" var $arity = arguments.length;"),o.$line(" if ("+o.$arity_checks().$join(" || ")+") { Opal.block_ac($arity, "+o.$arity()+", "+c+"); }"),o.$line("}")})}(j[0],y("ArityCheckNode"))}(j[0],j)}(l[0],l)},Opal.modules["opal/nodes/args/ensure_kwargs_are_kwargs"]=function(e){var t=e.module,s=e.klass,o=e.def,i=e.top,n=[],a=e.nil;return e.add_stubs("require,handle,helper,push"),i.$require("opal/nodes/base"),function(n,i){var r=t(n,"Opal"),a=[r].concat(i);return function(n,i){var r=t(n,"Nodes"),a=[r].concat(i);return function(n,i){var r=t(n,"Args"),a=[r].concat(i),c=e.$r(a);return function(e,t){var n=s(e,t,"EnsureKwargsAreKwargs");return n.$handle("ensure_kwargs_are_kwargs"),o(n,"$compile",function(){var t=this;return t.$helper("ensure_kwargs"),t.$push("$kwargs = $ensure_kwargs($kwargs)")})}(a[0],c("Base"))}(a[0],a)}(a[0],a)}(n[0],n)},Opal.modules["opal/nodes/args/extract_block_arg"]=function(e){var t=e.module,s=e.klass,o=e.def,i=e.top,n=[],a=e.nil;return e.add_stubs("require,handle,children,uses_block!,scope,add_arg,name,prepare_block"),i.$require("opal/nodes/base"),function(n,i){var r=t(n,"Opal"),a=[r].concat(i);return function(n,i){var r=t(n,"Nodes"),a=[r].concat(i);return function(n,i){var r=t(n,"Args"),a=[r].concat(i),c=e.$r(a);return function(e,t){var n=s(e,t,"ExtractBlockarg");return n.$handle("extract_blockarg"),n.$children("name"),o(n,"$compile",function(){var t=this;return t.$scope()["$uses_block!"](),t.$scope().$add_arg(t.$name()),t.$scope().$prepare_block(t.$name())})}(a[0],c("Base"))}(a[0],a)}(a[0],a)}(n[0],n)},Opal.modules["opal/nodes/args/extract_kwarg"]=function(e){var t=e.module,o=e.klass,i=e.def,a=e.top,n=[],s=e.nil;return e.add_stubs("require,handle,children,[],meta,<<,used_kwargs,scope,add_temp,lvar_name,helper,push,inspect,to_s"),a.$require("opal/nodes/base"),function(n,a){var c=t(n,"Opal"),r=[c].concat(a);return function(n,a){var c=t(n,"Nodes"),r=[c].concat(a);return function(n,a){var c=t(n,"Args"),r=[c].concat(a),l=e.$r(r);return function(e,t){var n=o(e,t,"ExtractKwarg"),a=n.$$prototype;return a.sexp=s,n.$handle("extract_kwarg"),n.$children("lvar_name"),i(n,"$compile",function(){var t=this,n=s,n=t.sexp.$meta()["$[]"]("arg_name");return t.$scope().$used_kwargs()["$<<"](n),t.$add_temp(t.$lvar_name()),t.$helper("get_kwarg"),t.$push(""+t.$lvar_name()+" = $get_kwarg($kwargs, "+n.$to_s().$inspect()+")")})}(r[0],l("Base"))}(r[0],r)}(r[0],r)}(n[0],n)},Opal.modules["opal/nodes/args/extract_kwargs"]=function(e){var t=e.module,s=e.klass,o=e.def,i=e.top,n=[],a=e.nil;return e.add_stubs("require,handle,add_temp,helper,push"),i.$require("opal/nodes/base"),function(n,i){var r=t(n,"Opal"),a=[r].concat(i);return function(n,i){var r=t(n,"Nodes"),a=[r].concat(i);return function(n,i){var r=t(n,"Args"),a=[r].concat(i),c=e.$r(a);return function(e,t){var n=s(e,t,"ExtractKwargs");return n.$handle("extract_kwargs"),o(n,"$compile",function(){var t=this;return t.$add_temp("$kwargs"),t.$helper("extract_kwargs"),t.$push("$kwargs = $extract_kwargs($post_args)")})}(a[0],c("Base"))}(a[0],a)}(a[0],a)}(n[0],n)},Opal.modules["opal/nodes/args/extract_kwoptarg"]=function(e){var t=e.module,o=e.klass,i=e.eqeq,a=e.def,r=e.top,s=[],n=e.nil;return e.add_stubs("require,handle,children,helper,[],meta,<<,used_kwargs,scope,add_temp,lvar_name,line,inspect,to_s,==,default_value,push,expr"),r.$require("opal/nodes/base"),function(s,r){var l=t(s,"Opal"),c=[l].concat(r);return function(s,r){var l=t(s,"Nodes"),c=[l].concat(r);return function(s,r){var l=t(s,"Args"),c=[l].concat(r),d=e.$r(c);return function(e,t){var s=o(e,t,"ExtractKwoptarg"),r=s.$$prototype;return r.sexp=n,s.$handle("extract_kwoptarg"),s.$children("lvar_name","default_value"),a(s,"$compile",function(){var t=this,s=n;return t.$helper("hash_get"),s=t.sexp.$meta()["$[]"]("arg_name"),t.$scope().$used_kwargs()["$<<"](s),t.$add_temp(t.$lvar_name()),t.$line(""+t.$lvar_name()+" = $hash_get($kwargs, "+s.$to_s().$inspect()+");"),i(t.$default_value().$children()["$[]"](1),"undefined")?n:t.$push("if ("+t.$lvar_name()+" == null) "+t.$lvar_name()+" = ",t.$expr(t.$default_value()))})}(c[0],d("Base"))}(c[0],c)}(c[0],c)}(s[0],s)},Opal.modules["opal/nodes/args/extract_kwrestarg"]=function(e){var n=e.module,i=e.klass,a=e.truthy,s=e.def,r=e.send,c=e.top,o=[],t=e.nil;return e.add_stubs("require,handle,children,name,add_temp,helper,push,used_kwargs,map,scope,join"),c.$require("opal/nodes/base"),function(o,c){var d=n(o,"Opal"),l=[d].concat(c);return function(o,c){var d=n(o,"Nodes"),l=[d].concat(c);return function(o,c){var d=n(o,"Args"),l=[d].concat(c),u=e.$r(l);return function(e,n){var o=i(e,n,"ExtractKwrestarg");return o.$handle("extract_kwrestarg"),o.$children("name"),s(o,"$compile",function(){var n=this,s=t,o=t,s=a(o=n.$name())?o:"$kw_rest_arg";return n.$add_temp(s),n.$helper("kwrestargs"),n.$push(""+s+" = $kwrestargs($kwargs, "+n.$used_kwargs()+")")}),s(o,"$used_kwargs",function(){var s=this,n=t,n=r(s.$scope().$used_kwargs(),"map",[],function(n){return n==null&&(n=t),"'"+n+"': true"});return"{"+n.$join(",")+"}"})}(l[0],u("Base"))}(l[0],l)}(l[0],l)}(o[0],o)},Opal.modules["opal/nodes/args/extract_optarg"]=function(e){var t=e.module,s=e.klass,o=e.eqeq,i=e.def,a=e.top,n=[],r=e.nil;return e.add_stubs("require,handle,children,==,[],default_value,push,name,expr"),a.$require("opal/nodes/base"),function(n,a){var l=t(n,"Opal"),c=[l].concat(a);return function(n,a){var l=t(n,"Nodes"),c=[l].concat(a);return function(n,a){var l=t(n,"Args"),c=[l].concat(a),d=e.$r(c);return function(e,t){var n=s(e,t,"ExtractOptargNode");return n.$handle("extract_optarg"),n.$children("name","default_value"),i(n,"$compile",function(){var t=this;return o(t.$default_value().$children()["$[]"](1),"undefined")?r:t.$push("if ("+t.$name()+" == null) "+t.$name()+" = ",t.$expr(t.$default_value()))})}(c[0],d("Base"))}(c[0],c)}(c[0],c)}(n[0],n)},Opal.modules["opal/nodes/args/extract_post_arg"]=function(e){var t=e.module,s=e.klass,o=e.def,i=e.top,n=[],a=e.nil;return e.add_stubs("require,handle,children,add_temp,name,line,push"),i.$require("opal/nodes/base"),function(n,i){var r=t(n,"Opal"),a=[r].concat(i);return function(n,i){var r=t(n,"Nodes"),a=[r].concat(i);return function(n,i){var r=t(n,"Args"),a=[r].concat(i),c=e.$r(a);return function(e,t){var n=s(e,t,"ExtractPostArg");return n.$handle("extract_post_arg"),n.$children("name"),o(n,"$compile",function(){var t=this;return t.$add_temp(t.$name()),t.$line(""+t.$name()+" = $post_args.shift();"),t.$push("if ("+t.$name()+" == null) "+t.$name()+" = nil")})}(a[0],c("Base"))}(a[0],a)}(a[0],a)}(n[0],n)},Opal.modules["opal/nodes/args/extract_post_optarg"]=function(e){var t=e.module,s=e.klass,o=e.eqeq,i=e.def,a=e.top,n=[],r=e.nil;return e.add_stubs("require,handle,children,add_temp,name,line,args_to_keep,==,[],default_value,push,expr"),a.$require("opal/nodes/base"),function(n,a){var l=t(n,"Opal"),c=[l].concat(a);return function(n,a){var l=t(n,"Nodes"),c=[l].concat(a);return function(n,a){var l=t(n,"Args"),c=[l].concat(a),d=e.$r(c);return function(e,t){var n=s(e,t,"ExtractPostOptarg");return n.$handle("extract_post_optarg"),n.$children("name","default_value","args_to_keep"),i(n,"$compile",function(){var t=this;return t.$add_temp(t.$name()),t.$line("if ($post_args.length > "+t.$args_to_keep()+") "+t.$name()+" = $post_args.shift();"),o(t.$default_value().$children()["$[]"](1),"undefined")?r:t.$push("if ("+t.$name()+" == null) "+t.$name()+" = ",t.$expr(t.$default_value()))})}(c[0],d("Base"))}(c[0],c)}(c[0],c)}(n[0],n)},Opal.modules["opal/nodes/args/extract_restarg"]=function(e){var t=e.module,o=e.klass,i=e.truthy,a=e.eqeq,r=e.def,c=e.top,n=[],s=e.nil;return e.add_stubs("require,handle,children,name,add_temp,==,args_to_keep,push"),c.$require("opal/nodes/base"),function(n,c){var d=t(n,"Opal"),l=[d].concat(c);return function(n,c){var d=t(n,"Nodes"),l=[d].concat(c);return function(n,c){var d=t(n,"Args"),l=[d].concat(c),u=e.$r(l);return function(e,t){var n=o(e,t,"ExtractRestarg");return n.$handle("extract_restarg"),n.$children("name","args_to_keep"),r(n,"$compile",function(){var t=this,n=s,o=s,n=i(o=t.$name())?o:"$rest_arg";return t.$add_temp(n),a(t.$args_to_keep(),0)?t.$push(""+n+" = $post_args"):t.$push(""+n+" = $post_args.splice(0, $post_args.length - "+t.$args_to_keep()+")")})}(l[0],u("Base"))}(l[0],l)}(l[0],l)}(n[0],n)},Opal.modules["opal/nodes/args/fake_arg"]=function(e){var t=e.module,s=e.klass,o=e.def,i=e.top,n=[],a=e.nil;return e.add_stubs("require,handle,next_temp,scope,add_arg,push"),i.$require("opal/nodes/base"),function(n,i){var c=t(n,"Opal"),r=[c].concat(i);return function(n,i){var c=t(n,"Nodes"),r=[c].concat(i);return function(n,i){var c=t(n,"Args"),r=[c].concat(i),l=e.$r(r);return function(e,t){var n=s(e,t,"FakeArgNode");return n.$handle("fake_arg"),o(n,"$compile",function(){var t=this,n=a,n=t.$scope().$next_temp();return t.$scope().$add_arg(n),t.$push(n)})}(r[0],l("Base"))}(r[0],r)}(r[0],r)}(n[0],n)},Opal.modules["opal/nodes/args/initialize_iterarg"]=function(e){var t=e.module,s=e.klass,o=e.def,i=e.top,n=[],a=e.nil;return e.add_stubs("require,handle,children,push,name"),i.$require("opal/nodes/base"),function(n,i){var r=t(n,"Opal"),a=[r].concat(i);return function(n,i){var r=t(n,"Nodes"),a=[r].concat(i);return function(n,i){var r=t(n,"Args"),a=[r].concat(i),c=e.$r(a);return function(e,t){var n=s(e,t,"InitializeIterarg");return n.$handle("initialize_iter_arg"),n.$children("name"),o(n,"$compile",function(){var t=this;return t.$push("if ("+t.$name()+" == null) "+t.$name()+" = nil")})}(a[0],c("Base"))}(a[0],a)}(a[0],a)}(n[0],n)},Opal.modules["opal/nodes/args/initialize_shadowarg"]=function(e){var t=e.module,s=e.klass,o=e.def,i=e.top,n=[],a=e.nil;return e.add_stubs("require,handle,children,<<,locals,scope,name,add_arg,push"),i.$require("opal/nodes/base"),function(n,i){var r=t(n,"Opal"),a=[r].concat(i);return function(n,i){var r=t(n,"Nodes"),a=[r].concat(i);return function(n,i){var r=t(n,"Args"),a=[r].concat(i),c=e.$r(a);return function(e,t){var n=s(e,t,"InitializeShadowarg");return n.$handle("initialize_shadowarg"),n.$children("name"),o(n,"$compile",function(){var t=this;return t.$scope().$locals()["$<<"](t.$name()),t.$scope().$add_arg(t.$name()),t.$push(""+t.$name()+" = nil")})}(a[0],c("Base"))}(a[0],a)}(a[0],a)}(n[0],n)},Opal.modules["opal/nodes/args/parameters"]=function(e){var s=e.module,c=e.klass,t=e.def,l=e.send,o=e.return_val,i=e.truthy,a=e.eqeq,r=[],n=e.nil;return e.add_stubs("children,map,public_send,type,join,compact,[],meta,=="),function(e,r){var u=s(e,"Opal"),d=[u].concat(r);return function(e,r){var u=s(e,"Nodes"),d=[u].concat(r);return function(e,r){var d=s(e,"Args"),u=[d].concat(r);return function(e,s){var r=c(e,s,"Parameters"),d=r.$$prototype;return d.args=n,t(r,"$initialize",function(t){var n=this;return n.args=t.$children()}),t(r,"$to_code",function(){var t=this,s=n,s=l(t.args,"map",[],function e(t){var s=e.$$s==null?this:e.$$s;return t==null&&(t=n),s.$public_send("on_"+t.$type(),t)},{$$s:t});return"["+s.$compact().$join(", ")+"]"}),t(r,"$on_arg",function(t){var s=n,s=t.$meta()["$[]"]("arg_name");return"['req', '"+s+"']"}),t(r,"$on_mlhs",o("['req']")),t(r,"$on_optarg",function(t){var s=n,s=t.$meta()["$[]"]("arg_name");return"['opt', '"+s+"']"}),t(r,"$on_restarg",function(t){var s=n,s=t.$meta()["$[]"]("arg_name");return i(s)?(a(s,"fwd_rest_arg")&&(s="*"),"['rest', '"+s+"']"):"['rest']"}),t(r,"$on_kwarg",function(t){var s=n,s=t.$meta()["$[]"]("arg_name");return"['keyreq', '"+s+"']"}),t(r,"$on_kwoptarg",function(t){var s=n,s=t.$meta()["$[]"]("arg_name");return"['key', '"+s+"']"}),t(r,"$on_kwrestarg",function(t){var s=n,s=t.$meta()["$[]"]("arg_name");return i(s)?"['keyrest', '"+s+"']":"['keyrest']"}),t(r,"$on_blockarg",function(t){var s=n,s=t.$meta()["$[]"]("arg_name");return a(s,"fwd_block_arg")&&(s="&"),"['block', '"+s+"']"}),t(r,"$on_kwnilarg",o("['nokey']")),t(r,"$on_shadowarg",o(n))}(u[0],null)}(d[0],d)}(d[0],d)}(r[0],r)},Opal.modules["opal/nodes/args/prepare_post_args"]=function(e){var t=e.module,s=e.klass,o=e.eqeq,i=e.def,a=e.top,n=[],r=e.nil;return e.add_stubs("require,handle,children,add_temp,helper,==,offset,push"),a.$require("opal/nodes/base"),function(n,a){var c=t(n,"Opal"),r=[c].concat(a);return function(n,a){var c=t(n,"Nodes"),r=[c].concat(a);return function(n,a){var c=t(n,"Args"),r=[c].concat(a),l=e.$r(r);return function(e,t){var n=s(e,t,"PreparePostArgs");return n.$handle("prepare_post_args"),n.$children("offset"),i(n,"$compile",function(){var t=this;return t.$add_temp("$post_args"),t.$helper("slice"),o(t.$offset(),0)?t.$push("$post_args = $slice(arguments)"):t.$push("$post_args = $slice(arguments, "+t.$offset()+")")})}(r[0],l("Base"))}(r[0],r)}(r[0],r)}(n[0],n)},Opal.modules["opal/nodes/args"]=function(e){var n=e.module,i=e.klass,a=e.send,r=e.neqeq,c=e.def,t=e.top,s=[],o=e.nil;return e.add_stubs("require,handle,each_with_index,children,!=,push,process"),t.$require("opal/nodes/base"),t.$require("opal/nodes/args/arg"),t.$require("opal/nodes/args/arity_check"),t.$require("opal/nodes/args/ensure_kwargs_are_kwargs"),t.$require("opal/nodes/args/extract_block_arg"),t.$require("opal/nodes/args/extract_kwarg"),t.$require("opal/nodes/args/extract_kwargs"),t.$require("opal/nodes/args/extract_kwoptarg"),t.$require("opal/nodes/args/extract_kwrestarg"),t.$require("opal/nodes/args/extract_optarg"),t.$require("opal/nodes/args/extract_post_arg"),t.$require("opal/nodes/args/extract_post_optarg"),t.$require("opal/nodes/args/extract_restarg"),t.$require("opal/nodes/args/fake_arg"),t.$require("opal/nodes/args/initialize_iterarg"),t.$require("opal/nodes/args/initialize_shadowarg"),t.$require("opal/nodes/args/parameters"),t.$require("opal/nodes/args/prepare_post_args"),function(t,s){var d=n(t,"Opal"),l=[d].concat(s);return function(t,s){var d=n(t,"Nodes"),l=[d].concat(s),u=e.$r(l);return function(e,t){var n=i(e,t,"ArgsNode");return n.$handle("args"),c(n,"$compile",function(){var t=this;return a(t.$children(),"each_with_index",[],function e(t,n){var s=e.$$s==null?this:e.$$s;return t==null&&(t=o),n==null&&(n=o),r(n,0)&&s.$push(", "),s.$push(s.$process(t))},{$$s:t})})}(l[0],u("Base"))}(l[0],l)}(s[0],s)},Opal.modules["opal/nodes/node_with_args/shortcuts"]=function(e){var c=e.module,p=e.klass,f=e.const_set,n=e.send,i=e.def,m=e.ensure_kwargs,d=e.kwrestargs,s=e.truthy,l=e.defs,h=e.eqeq,u=e.thrower,o=e.lambda,a=e.range,r=[],t=e.nil;return e.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(r,g){var b=c(r,"Opal"),v=[b].concat(g);return function(r,g){var b=c(r,"Nodes"),v=[b].concat(g),j=e.$r(v);return function(r,c,g){var v=p(r,c,"NodeWithArgs"),j=[v].concat(g),b=e.$r(j);return f(j[0],"Shortcut",n(b("Struct"),"new",["name","for","when","transform"],function e(){var t=e.$$s==null?this:e.$$s;return i(t,"$match?",function(t){var s=this;return n(t,"instance_exec",[],s.$when().$to_proc())}),i(t,"$compile",function(t){var s=this;return t.$helper(s.$name()),n(t,"instance_exec",[],s.$transform().$to_proc())})},{$$s:v})),v.shortcuts=[],v.shortcuts_for=new Map,l(v,"$define_shortcut",function e(n,o){var i,c=e.$$p||t,a=this,r=t;return a.shortcuts==null&&(a.shortcuts=t),e.$$p=null,o=m(o),i=d(o,{}),s(r=i["$[]"]("for"))?r:i["$[]="]("for","def"),a.shortcuts["$<<"](b("Shortcut").$new(n,i["$[]"]("for"),i["$[]"]("when"),c))},-2),l(v,"$shortcuts_for",function(o){var a,i=this,r=t;return i.shortcuts_for==null&&(i.shortcuts_for=t),i.shortcuts==null&&(i.shortcuts=t),s(r=i.shortcuts_for["$[]"](o))?r:(a=[o,n(i.shortcuts,"select",[],function(n){return n==null&&(n=t),[o,"*"]["$include?"](n.$for())})],n(i.shortcuts_for,"[]=",a),a[a.length-1])}),i(v,"$compile_body_or_shortcut",function(){try{var o=u("return"),i=this,a=t;return s(i.$compiler()["$arity_check?"]())?i.$compile_body():(a=s(i["$is_a?"](b("DefNode")))?"def":"iter",n(b("NodeWithArgs").$shortcuts_for(a),"each",[],function e(n){var i=e.$$s==null?this:e.$$s,r=t;if(n==null&&(n=t),s(n["$match?"](i)))s(b("ENV")["$[]"]("OPAL_DEBUG_SHORTCUTS"))&&(r=h(a,"def")?"def "+i.$mid():"iter",i.$warn("* shortcut "+n.$name()+" used for "+r)),o.$throw(n.$compile(i),e.$$is_lambda);else return t},{$$s:i,$$ret:o}),i.$compile_body())}catch(e){if(e===o)return e.$v;throw e}finally{o.is_orphan=!0}}),n(v,"define_shortcut",["return_self",new Map([["when",o(function e(){var t=e.$$s==null?this:e.$$s;return t.$stmts().$type()["$=="]("self")},{$$s:v})]])],function e(){var t=e.$$s==null?this:e.$$s;return t.$push("$return_self")},{$$s:v}),i(v,"$simple_value?",function(t){var n=this;return t==null&&(t=n.$stmts()),["true","false","nil","int","float","str","sym"]["$include?"](t.$type())},-1),n(v,"define_shortcut",["return_val",new Map([["for","*"],["when",o(function e(){var t=e.$$s==null?this:e.$$s;return t["$simple_value?"]()},{$$s:v})]])],function e(){var t=e.$$s==null?this:e.$$s;return t.$push("$return_val(",t.$expr(t.$stmts()),")")},{$$s:v}),n(v,"define_shortcut",["return_ivar",new Map([["when",o(function e(){var t=e.$$s==null?this:e.$$s;return t.$stmts().$type()["$=="]("ivar")},{$$s:v})]])],function e(){var n=e.$$s==null?this:e.$$s,s=t,s=n.$stmts().$children().$first().$to_s()["$[]"](a(1,-1,!1)).$to_sym();return n.$push("$return_ivar(",n.$expr(n.$stmts().$updated("sym",[s])),")")},{$$s:v}),n(v,"define_shortcut",["assign_ivar",new Map([["when",o(function e(){var n=e.$$s==null?this:e.$$s,o=t,i=t,a=t,r=t;return s(o=s(i=s(a=s(r=n.$stmts().$type()["$=="]("ivasgn"))?n.$inline_args().$children().$length()["$=="](1):r)?n.$inline_args().$children().$last().$type()["$=="]("arg"):a)?n.$stmts().$children().$last().$type()["$=="]("lvar"):i)?n.$stmts().$children().$last().$children().$last()["$=="](n.$inline_args().$children().$last().$children().$last()):o},{$$s:v})]])],function e(){var n=e.$$s==null?this:e.$$s,s=t,s=n.$stmts().$children().$first().$to_s()["$[]"](a(1,-1,!1)).$to_sym(),s=n.$expr(n.$stmts().$updated("sym",[s]));return n.$push("$assign_ivar(",s,")")},{$$s:v}),n(v,"define_shortcut",["assign_ivar_val",new Map([["when",o(function e(){var n=e.$$s==null?this:e.$$s,o=t;return s(o=n.$stmts().$type()["$=="]("ivasgn"))?n["$simple_value?"](n.$stmts().$children().$last()):o},{$$s:v})]])],function e(){var n=e.$$s==null?this:e.$$s,s=t,s=n.$stmts().$children().$first().$to_s()["$[]"](a(1,-1,!1)).$to_sym(),s=n.$expr(n.$stmts().$updated("sym",[s]));return n.$push("$assign_ivar_val(",s,", ",n.$expr(n.$stmts().$children().$last()),")")},{$$s:v})}(v[0],j("ScopeNode"),v)}(v[0],v)}(r[0],r)},Opal.modules["opal/nodes/node_with_args"]=function(e){var o=e.module,a=e.klass,r=e.slice,c=e.send2,l=e.find_super,d=e.to_a,t=e.def,u=e.truthy,n=e.top,i=[],s=e.nil,h=e.$$$;return e.add_stubs("require,attr_reader,attr_accessor,[],meta,s,original_args,push,process,arity_check_node,uses_block?,scope,prepare_block,to_code,new"),n.$require("opal/nodes/scope"),n.$require("opal/nodes/args/parameters"),n.$require("opal/nodes/node_with_args/shortcuts"),function(n,i){var f=o(n,"Opal"),m=[f].concat(i);return function(n,i){var f=o(n,"Nodes"),m=[f].concat(i),p=e.$r(m);return function(n,o,i){var m=a(n,o,"NodeWithArgs"),f=[m].concat(i),p=e.$r(f),g=m.$$prototype;return g.sexp=s,m.$attr_reader("used_kwargs"),m.$attr_accessor("arity"),m.$attr_reader("original_args"),t(m,"$initialize",function e(){var o,i,a=e.$$p||s,n=this;return e.$$p=null,o=r(arguments),i=o,c(n,l(n,"initialize",e,!1,!0),"initialize",d(i),a),n.original_args=n.sexp.$meta()["$[]"]("original_args"),n.used_kwargs=[],n.arity=0},-1),t(m,"$arity_check_node",function(){var t=this;return t.$s("arity_check",t.$original_args())}),t(m,"$compile_arity_check",function(){var t=this;return t.$push(t.$process(t.$arity_check_node()))}),t(m,"$compile_block_arg",function(){var t=this;return u(t.$scope()["$uses_block?"]())?t.$scope().$prepare_block():s}),t(m,"$parameters_code",function(){var t=this;return h(p("Args"),"Parameters").$new(t.$original_args()).$to_code()})}(m[0],p("ScopeNode"),m)}(m[0],m)}(i[0],i)},Opal.modules["opal/nodes/iter"]=function(e){var a=e.module,l=e.klass,n=e.truthy,d=e.rb_lt,r=e.eqeq,u=e.not,o=e.send,s=e.def,h=e.top,c=[],t=e.nil,i=e.$$$;return e.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"),h.$require("opal/nodes/node_with_args"),function(c,h){var f=a(c,"Opal"),m=[f].concat(h);return function(c,h){var f=a(c,"Nodes"),m=[f].concat(h),p=e.$r(m);return function(a,c,h){var m=l(a,c,"IterNode"),g=[m].concat(h),p=e.$r(g),f=m.$$prototype;return f.define_self=f.closure=f.define_nesting=f.define_relative_access=f.sexp=t,m.$handle("iter"),m.$children("inline_args","stmts"),s(m,"$compile",function(){var a,c,l,h,s=this,i=t;return n(s.$scope()["$lambda_definition?"]())&&s["$is_lambda!"](),s.$compile_body_or_shortcut(),i=new Map,n(d(s.$arity(),0))&&i["$[]="]("$$arity",s.$arity()),n(s.define_self)&&i["$[]="]("$$s",s.$scope().$self()),n((a=(c=s.closure,c===t||c==null?t:c.$throwers()),a===t||a==null?t:a["$key?"]("break")))&&i["$[]="]("$$brk",s.closure.$throwers()["$[]"]("break")),n((l=(h=s.closure,h===t||h==null?t:h.$throwers()),l===t||l==null?t:l["$key?"]("return")))&&i["$[]="]("$$ret",s.closure.$throwers()["$[]"]("return")),n(s.$compiler()["$arity_check?"]())&&i["$[]="]("$$parameters",s.$parameters_code()),n(s.$compiler()["$enable_source_location?"]())&&i["$[]="]("$$source_location",s.$source_location()),n(s["$has_top_level_mlhs_arg?"]())&&i["$[]="]("$$has_top_level_mlhs_arg","true"),n(s["$has_trailing_comma_in_args?"]())&&i["$[]="]("$$has_trailing_comma_in_args","true"),r(i.$keys(),["$$arity"])?s.$push(", "+s.$arity()):u(i["$empty?"]())&&s.$push(", {",o(i,"map",[],function(n,s){return n==null&&(n=t),s==null&&(s=t),""+n+": "+s}).$join(", "),"}"),n(s.define_nesting)&&s.$scope().$nesting(),n(s.define_relative_access)?s.$scope().$relative_access():t}),s(m,"$compile_body",function(){var s=this,r=t,c=t,a=t,l=t,r=t,c=a=l=t;return o(s,"in_scope",[],function e(){var s=e.$$s==null?this:e.$$s;return s.is_lambda==null&&(s.is_lambda=t),a=s.$scope()["$identify!"](),r=s.$process(s.$inline_args()),s.$compile_arity_check(),o(s,"in_closure",[i(p("Closure"),"JS_FUNCTION")["$|"](i(p("Closure"),"ITER"))["$|"](n(s.is_lambda)?i(p("Closure"),"LAMBDA"):0)],function e(){var s=e.$$s==null?this:e.$$s;return s.define_self==null&&(s.define_self=t),l=s.$stmt(s.$returned_body()),n(s.define_self)&&s.$add_temp("self = "+a+".$$s == null ? this : "+a+".$$s"),c=s.$scope().$to_vars(),s.$line(l)},{$$s:s})},{$$s:s}),s.$unshift(c),n(s.$await_encountered())?s.$unshift("async function "+a+"(",r,"){"):s.$unshift("function "+a+"(",r,"){"),s.$push("}")}),s(m,"$compile_block_arg",function(){var s=this;return n(s.$block_arg())?s.$scope().$prepare_block():t}),s(m,"$extract_underscore_args",function(){var s=this,i=t,a=t,i=[],a=!1;return o(s.$args().$children(),"each",[],function(s){var o=t;return s==null&&(s=t),o=s.$children().$first(),r(o,"_")?n(a)?t:(a=!0,i["$<<"](s)):i["$<<"](s)}),s.sexp=s.sexp.$updated(t,[s.$args().$updated(t,i),s.$stmts()])}),s(m,"$returned_body",function(){var s=this,o=t;return s.$compiler().$returns(n(o=s.$stmts())?o:s.$s("nil"))}),s(m,"$has_top_level_mlhs_arg?",function(){var n=this;return o(n.$original_args().$children(),"any?",[],function(n){return n==null&&(n=t),n.$type()["$=="]("mlhs")})}),s(m,"$has_trailing_comma_in_args?",function(){var s=this,o=t;return n(s.$original_args().$loc())&&n(s.$original_args().$loc().$expression())?(o=s.$original_args().$loc().$expression().$source(),o.$match(/,\s*\|/)):t}),s(m,"$arity_check_node",function(){var t=this;return t.$s("iter_arity_check",t.$original_args())})}(m[0],p("NodeWithArgs"),m)}(m[0],m)}(c[0],c)},Opal.modules["opal/nodes/def"]=function(e){var r=e.module,m=e.klass,n=e.truthy,d=e.rb_lt,c=e.eqeq,h=e.not,s=e.send,o=e.def,l=e.rb_plus,u=e.top,i=[],t=e.nil,a=e.$$$;return e.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"),u.$require("opal/nodes/node_with_args"),function(i,u){var p=r(i,"Opal"),f=[p].concat(u);return function(i,u){var p=r(i,"Nodes"),f=[p].concat(u),g=e.$r(f);return function(i,r,u){var f=m(i,r,"DefNode"),v=[f].concat(u),p=e.$r(v),g=f.$$prototype;return g.define_nesting=g.define_relative_access=t,f.$handle("def"),f.$children("mid","inline_args","stmts"),o(f,"$compile",function(){var o=this,i=t;return o.$compile_body_or_shortcut(),i=new Map,n(d(o.$arity(),0))&&i["$[]="]("$$arity",o.$arity()),n(o.$compiler()["$arity_check?"]())&&i["$[]="]("$$parameters",o.$parameters_code()),n(o.$compiler()["$parse_comments?"]())&&i["$[]="]("$$comments",o.$comments_code()),n(o.$compiler()["$enable_source_location?"]())&&i["$[]="]("$$source_location",o.$source_location()),c(i.$keys(),["$$arity"])?o.$push(", "+o.$arity()):h(i["$empty?"]())&&o.$push(", {",s(i,"map",[],function(n,s){return n==null&&(n=t),s==null&&(s=t),""+n+": "+s}).$join(", "),"}"),o.$wrap_with_definition(),n(o.define_nesting)&&o.$scope().$nesting(),n(o.define_relative_access)?o.$scope().$relative_access():t}),o(f,"$compile_body",function(){var o=this,i=t,r=t,i=t,r=t;return s(o,"in_scope",[],function e(){var o=e.$$s==null?this:e.$$s;return o.sexp==null&&(o.sexp=t),o.$scope()["$mid="](o.$mid()),c(o.sexp.$type(),"defs")&&o.$scope()["$defs="](!0),o.$scope()["$identify!"](),r=o.$scope().$identity(),o.$scope()["$block_name="]("$yield"),i=o.$process(o.$inline_args()),s(o,"in_closure",[a(p("Closure"),"DEF")["$|"](a(p("Closure"),"JS_FUNCTION"))],function e(){var s=e.$$s==null?this:e.$$s,o=t;return s.define_self==null&&(s.define_self=t),o=s.$stmt(s.$compiler().$returns(s.$stmts())),s.$compile_block_arg(),n(s.define_self)&&s.$add_temp("self = this"),s.$compile_arity_check(),s.$unshift(`
`+s.$current_indent(),s.$scope().$to_vars()),s.$line(o)},{$$s:o})},{$$s:o}),o.$unshift(") {"),o.$unshift(i),o.$unshift("function "+r+"("),n(o.$await_encountered())&&o.$unshift("async "),o.$line("}")}),o(f,"$wrap_with_definition",function(){var s=this;return s.$helper("def"),s.$wrap("$def("+s.$scope().$self()+", '$"+s.$mid()+"', ",")"),n(s["$expr?"]())?t:s.$unshift(`
`+s.$current_indent())}),o(f,"$comments_code",function(){var n=this;return l(l("[",s(n.$comments(),"map",[],function(n){return n==null&&(n=t),n.$text().$inspect()}).$join(", ")),"]")})}(f[0],g("NodeWithArgs"),f)}(f[0],f)}(i[0],i)},Opal.modules["opal/nodes/defs"]=function(e){var t=e.module,s=e.klass,o=e.def,i=e.top,n=[],a=e.nil;return e.add_stubs("require,handle,children,helper,unshift,expr,recvr,mid,push"),i.$require("opal/nodes/def"),function(n,i){var r=t(n,"Opal"),a=[r].concat(i);return function(n,i){var r=t(n,"Nodes"),a=[r].concat(i),c=e.$r(a);return function(e,t){var n=s(e,t,"DefsNode");return n.$handle("defs"),n.$children("recvr","mid","inline_args","stmts"),o(n,"$wrap_with_definition",function(){var t=this;return t.$helper("defs"),t.$unshift("$defs(",t.$expr(t.$recvr()),", '$"+t.$mid()+"', "),t.$push(")")})}(a[0],c("DefNode"))}(a[0],a)}(n[0],n)},Opal.modules["opal/ast/matcher"]=function(e){var c=e.module,p=e.klass,o=e.send,n=e.def,m=e.slice,s=e.truthy,u=e.const_set,r=e.rb_plus,h=e.neqeq,a=e.eqeq,i=e.eqeqeq,f=e.range,l=e.top,d=[],t=e.nil;return e.add_stubs("require,instance_exec,to_proc,new,match,inspect,attr_accessor,nil?,+,type,children,!=,length,all?,times,[],==,is_a?,first,===,include?,<<,captures"),l.$require("ast"),l.$require("parser/ast/node"),function(l,d){var v=c(l,"Opal"),g=[v].concat(d);return function(l,d){var v=c(l,"AST"),g=[v].concat(d);return function(c,l,d){var g=p(c,l,"Matcher"),b=[g].concat(d),v=e.$r(b),j=g.$$prototype;return j.root=j.captures=t,n(g,"$initialize",function e(){var s=e.$$p||t,n=this;return e.$$p=null,n.root=o(n,"instance_exec",[],s.$to_proc())}),n(g,"$s",function(t){var s=m(arguments,1),o=s;return v("Node").$new(t,o)},-2),n(g,"$cap",function(t){return v("Node").$new("capture",[t])}),n(g,"$match",function(n){var o=this,i=t;if(o.captures=[],s(i=o.root.$match(n,o)))i;else return!1;return o.captures}),n(g,"$inspect",function(){var t=this;return"#<Opal::AST::Matcher: "+t.root.$inspect()+">"}),g.$attr_accessor("captures"),u(b[0],"Node",o(v("Struct"),"new",["type","children"],function e(){var c=e.$$s==null?this:e.$$s;return n(c,"$match",function(n,c){var u=this,l=t,d=t;return!s(n["$nil?"]())&&(l=r([n.$type()],n.$children()),d=r([u.$type()],u.$children()),!h(l.$length(),d.$length())&&o(l.$length().$times(),"all?",[],function(n){var r=t,o=t,h=t,m=t,u=t;return n==null&&(n=t),r=l["$[]"](n),o=d["$[]"](n),s(o["$is_a?"](v("Node")))&&a(o.$type(),"capture")&&(h=!0,o=o.$children().$first()),m=i(v("Node"),u=o)?o.$match(r,c):i(v("Array"),u)?o["$include?"](r):i("*",u)||o["$=="](r),s(h)&&c.$captures()["$<<"](r),m}))}),n(c,"$inspect",function(){var t=this;return a(t.$type(),"capture")?"{"+t.$children().$first().$inspect()+"}":"s("+t.$type().$inspect()+", "+t.$children().$inspect()["$[]"](f(1,-2,!1))+")"})},{$$s:g}))}(g[0],null,g)}(g[0],g)}(d[0],d)},Opal.modules["opal/nodes/if"]=function(e){var h=e.module,d=e.klass,n=e.truthy,a=e.eqeq,s=e.def,r=e.not,o=e.send,u=e.eqeqeq,c=e.const_set,l=e.to_a,g=e.neqeq,m=e.return_val,f=e.top,p=[],t=e.nil,i=e.$$$;return e.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"),f.$require("opal/nodes/base"),f.$require("opal/ast/matcher"),function(f,p){var b=h(f,"Opal"),v=[b].concat(p);return function(f,p){var j=h(f,"Nodes"),v=[j].concat(p),b=e.$r(v);return function(h,m,f){var p=d(h,m,"IfNode"),b=[p].concat(f),v=e.$r(b),j=p.$$prototype;return j.sexp=j.switch_variable=j.switch_first_test=j.switch_additional_rules=t,p.$handle("if"),p.$children("test","true_body","false_body"),s(p,"$compile",function(){var t=this;return n(t["$should_compile_as_simple_expression?"]())?a(t.$true_body(),t.$s("true"))?t.$compile_with_binary_or():a(t.$false_body(),t.$s("false"))?t.$compile_with_binary_and():t.$compile_with_ternary():n(t["$could_become_switch?"]())?t.$compile_with_switch():t.$compile_with_if()}),s(p,"$compile_with_if",function(){var l,s=this,c=t,i=t,d=t;return n(s["$expects_expression?"]())&&s.$push_closure(),c=s.$truthy(),i=s.$falsy(),n(i)&&r(c)?(s.$push("if (!",s.$js_truthy(s.$test()),") {"),l=[c,i],i=l[0],c=l[1],l):s.$push("if (",s.$js_truthy(s.$test()),") {"),n(c)&&o(s,"indent",[],function e(){var t=e.$$s==null?this:e.$$s;return t.$line(t.$stmt(c))},{$$s:s}),n(i)?a(i.$type(),"if")?s.$line("} else ",s.$stmt(i)):(s.$line("} else {"),o(s,"indent",[],function e(){var t=e.$$s==null?this:e.$$s;return t.$line(t.$stmt(i))},{$$s:s}),s.$line("}")):(s.$line("}"),n(s["$expects_expression?"]())&&s.$line("return nil;")),n(s["$expects_expression?"]())&&s.$pop_closure(),n(s["$expects_expression?"]())?(n(s["$returning_if?"]())&&(d="return "),n(s.$scope().$await_encountered())?s.$wrap(""+d+"(await (async function() {","})())"):s.$wrap(""+d+"(function() {","})()")):t}),s(p,"$returning_if?",function(){var t=this;return t.sexp.$meta()["$[]"]("returning")}),s(p,"$truthy",function(){var t=this;return t.$returnify(t.$true_body())}),s(p,"$falsy",function(){var t=this;return t.$returnify(t.$false_body())}),s(p,"$returnify",function(t){var s=this;return n(s["$expects_expression?"]())&&n(t)?s.$compiler().$returns(t):t}),s(p,"$expects_expression?",function(){var s=this,o=t;return n(o=s["$expr?"]())?o:s["$recv?"]()}),s(p,"$should_compile_as_simple_expression?",function(){var s=this,o=t,i=t;return n(o=n(i=s["$expects_expression?"]())?s["$simple?"](s.$true_body()):i)?s["$simple?"](s.$false_body()):o}),s(p,"$compile_with_ternary",function(){var s=this,c=t,i=t,o=t,c=s.$true_body(),i=s.$false_body();return s.$push("("),s.$push(s.$js_truthy(s.$test())," ? "),s.$push("(",s.$expr(n(o=c)?o:s.$s("nil")),") : "),r(i)||a(i.$type(),"if")?s.$push(s.$expr(n(o=i)?o:s.$s("nil"))):s.$push("(",s.$expr(n(o=i)?o:s.$s("nil")),")"),s.$push(")")}),s(p,"$compile_with_binary_and",function(){var s=this,i=t,o=t;return n(s.$sexp().$meta()["$[]"]("do_js_truthy_on_true_body"))?i=s.$js_truthy(n(o=s.$true_body())?o:s.$s("nil")):i=s.$expr(n(o=s.$true_body())?o:s.$s("nil")),s.$push("("),s.$push(s.$js_truthy(s.$test())," && "),s.$push("(",i,")"),s.$push(")")}),s(p,"$compile_with_binary_or",function(){var s=this,i=t,o=t;return n(s.$sexp().$meta()["$[]"]("do_js_truthy_on_false_body"))?i=s.$js_truthy(n(o=s.$false_body())?o:s.$s("nil")):i=s.$expr(n(o=s.$false_body())?o:s.$s("nil")),s.$push("("),s.$push(s.$js_truthy(s.$test())," || "),s.$push("(",i,")"),s.$push(")")}),s(p,"$simple?",function(n){var s=this,a=t;if(u(i(v("AST"),"Node"),a=n))switch(n.$type().valueOf()){case"return":case"js_return":case"break":case"next":case"redo":case"retry":return!1;case"xstr":return v("XStringNode")["$single_line?"](v("XStringNode").$strip_empty_children(n.$children()));default:return o(n.$children(),"all?",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s["$simple?"](n)},{$$s:s})}else return!0}),c(b[0],"SWITCH_TEST_MATCH",o(i(v("AST"),"Matcher"),"new",[],function e(){var t=e.$$s==null?this:e.$$s;return t.$s("send",t.$cap(t.$s(["float","int","sym","str","true","false","nil"],"*")),"===",t.$s("lvasgn",t.$cap("*"),t.$cap("*")))},{$$s:p})),c(b[0],"SWITCH_TEST_MATCH_CONTINUED",o(i(v("AST"),"Matcher"),"new",[],function e(){var t=e.$$s==null?this:e.$$s;return t.$s("if",t.$s("send",t.$cap(t.$s(["float","int","sym","str","true","false","nil"],"*")),"===",t.$s("lvasgn",t.$cap("*"),t.$cap("*"))),t.$s("true"),t.$cap("*"))},{$$s:p})),c(b[0],"SWITCH_BRANCH_TEST_MATCH",o(i(v("AST"),"Matcher"),"new",[],function e(){var t=e.$$s==null?this:e.$$s;return t.$s("send",t.$cap(t.$s(["float","int","sym","str","true","false","nil"],"*")),"===",t.$s("js_tmp",t.$cap("*")))},{$$s:p})),c(b[0],"SWITCH_BRANCH_TEST_MATCH_CONTINUED",o(i(v("AST"),"Matcher"),"new",[],function e(){var t=e.$$s==null?this:e.$$s;return t.$s("if",t.$s("send",t.$cap(t.$s(["float","int","sym","str","true","false","nil"],"*")),"===",t.$s("js_tmp",t.$cap("*"))),t.$s("true"),t.$cap("*"))},{$$s:p})),s(p,"$could_become_switch?",function(){var o,s=this,a=t,r=t,i=t;return!n(s["$expects_expression?"]())&&(!!n(s.$sexp().$meta()["$[]"]("switch_child"))||(a=n(r=v("SWITCH_TEST_MATCH").$match(s.$test()))?r:v("SWITCH_TEST_MATCH_CONTINUED").$match(s.$test()),!!n(a)&&(o=[].concat(l(a)),s.switch_test=o[0]==null?t:o[0],s.switch_variable=o[1]==null?t:o[1],s.switch_first_test=o[2]==null?t:o[2],i=o[3]==null?t:o[3],o,i=s.$handle_additional_switch_rules(i),!!n(i)&&(s.switch_additional_rules=i,!!n(s["$valid_switch_body?"](s.$true_body()))&&s["$could_become_switch_branch?"](s.$false_body())))))}),s(p,"$handle_additional_switch_rules",function(s){for(var o,h=this,i=t,r=t,c=t,d=t,u=t,i=[];n(s);){if(r=n(c=v("SWITCH_BRANCH_TEST_MATCH").$match(s))?c:v("SWITCH_BRANCH_TEST_MATCH_CONTINUED").$match(s),!n(r))return!1;if(o=[].concat(l(r)),d=o[0]==null?t:o[0],u=o[1]==null?t:o[1],s=o[2]==null?t:o[2],o,!a(u,h.switch_variable))return!1;i["$<<"](d)}return i}),s(p,"$could_become_switch_branch?",function(s){var o,i=this,c=t,h=t,m=t,d=t,f=t,p=t,b=t,j=t,u=t;return!!r(s)||(g(s.$type(),"if")?!!n(i["$valid_switch_body?"](s))&&(s.$meta()["$[]="]("switch_default",!0),!0):(o=[].concat(l(s)),c=o[0]==null?t:o[0],h=o[1]==null?t:o[1],m=o[2]==null?t:o[2],o,d=n(f=v("SWITCH_BRANCH_TEST_MATCH").$match(c))?f:v("SWITCH_BRANCH_TEST_MATCH_CONTINUED").$match(c),!n(d)&&n(i["$valid_switch_body?"](s,!0))?(s.$meta()["$[]="]("switch_default",!0),!0):(o=[].concat(l(d)),p=o[0]==null?t:o[0],b=o[1]==null?t:o[1],j=o[2]==null?t:o[2],o,u=i.$handle_additional_switch_rules(j),!!n(u)&&!!a(b,i.switch_variable)&&!!n(i["$valid_switch_body?"](h))&&!!n(i["$could_become_switch_branch?"](m))&&(s.$meta()["$merge!"](new Map([["switch_child",!0],["switch_test",p],["switch_variable",i.switch_variable],["switch_additional_rules",u]])),!0))))}),s(p,"$valid_switch_body?",function(n,s){var a=this,r=t;if(s==null&&(s=!1),u(i(v("AST"),"Node"),r=n))switch(n.$type().valueOf()){case"break":case"redo":case"retry":return!1;case"iter":case"while":return!0;default:return o(n.$children(),"all?",[],function e(n){var o=e.$$s==null?this:e.$$s;return n==null&&(n=t),o["$valid_switch_body?"](n,s)},{$$s:a})}else return!u(a.switch_variable,r)||s["$!"]()},-2),s(p,"$compile_with_switch",function(){var s=this;return n(s.$sexp().$meta()["$[]"]("switch_child"))?(s.switch_variable=s.$sexp().$meta()["$[]"]("switch_variable"),s.switch_additional_rules=s.$sexp().$meta()["$[]"]("switch_additional_rules"),s.$compile_switch_case(s.$sexp().$meta()["$[]"]("switch_test"))):(s.$line("switch (",s.$expr(s.switch_first_test),".valueOf()) {"),o(s,"indent",[],function e(){var n=e.$$s==null?this:e.$$s;return n.switch_test==null&&(n.switch_test=t),n.$compile_switch_case(n.switch_test)},{$$s:s}),s.$line("}"))}),s(p,"$returning?",function(s){var o=t,i=t;return n(o=["return","js_return","next"]["$include?"](s.$type()))?o:n(i=s.$type()["$=="]("begin"))?["return","js_return","next"]["$include?"](s.$children().$last().$type()):i}),s(p,"$compile_switch_case",function(s){var i=this;return i.$line("case ",i.$expr(s),":"),n(i.switch_additional_rules)&&o(i.switch_additional_rules,"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s.$line("case ",s.$expr(n),":")},{$$s:i}),o(i,"indent",[],function e(){var n=e.$$s==null?this:e.$$s;return n.$line(n.$stmt(n.$true_body())),r(n.$true_body())||r(n["$returning?"](n.$true_body()))?n.$line("break;"):t},{$$s:i}),n(i.$false_body())?n(i.$false_body().$meta()["$[]"]("switch_default"))?i.$compile_switch_default():n(i.$false_body().$meta()["$[]"]("switch_child"))?i.$push(i.$stmt(i.$false_body())):t:i.$push(i.$stmt(i.$s("nil")))}),s(p,"$compile_switch_default",function(){var t=this;return t.$line("default:"),o(t,"indent",[],function e(){var t=e.$$s==null?this:e.$$s;return t.$line(t.$stmt(t.$false_body()))},{$$s:t})})}(v[0],b("Base"),v),function(e,n){var o=d(e,n,"BaseFlipFlop");return o.$children("start_condition","end_condition"),s(o,"$compile",function(){var n=this,s=t,o=t;return n.$helper("truthy"),s=n.$top_scope().$new_temp(),o=""+s+".$$ff",n.$push("("+s+" = "+s+" || function(_start_func, _end_func){"),n.$push(" var flip_flop = "+o+" || false;"),n.$push(" if (!flip_flop) "+o+" = flip_flop = $truthy(_start_func());"),n.$push(" "+n.$excl()+"if (flip_flop && $truthy(_end_func())) "+o+" = false;"),n.$push(" return flip_flop;"),n.$push("})("),n.$push(" function() { ",n.$stmt(n.$compiler().$returns(n.$start_condition()))," },"),n.$push(" function() { ",n.$stmt(n.$compiler().$returns(n.$end_condition()))," }"),n.$push(")")})}(v[0],b("Base")),function(e,t){var n=d(e,t,"IFlipFlop");return n.$handle("iflipflop"),s(n,"$excl",m(""))}(v[0],b("BaseFlipFlop")),function(e,t){var n=d(e,t,"EFlipFlop");return n.$handle("eflipflop"),s(n,"$excl",m("else "))}(v[0],b("BaseFlipFlop"))}(v[0],v)}(p[0],p)},Opal.modules["opal/nodes/logic"]=function(e){var o=e.module,n=e.klass,t=e.def,i=e.send,a=e.to_a,s=e.truthy,c=e.rb_gt,l=e.top,r=[],d=e.nil;return e.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"),l.$require("opal/nodes/base"),function(r,l){var u=o(r,"Opal"),d=[u].concat(l);return function(r,l){var h=o(r,"Nodes"),d=[h].concat(l),u=e.$r(d);return function(e,s){var o=n(e,s,"NextNode");return o.$handle("next"),t(o,"$compile",function(){var t=this;return t.$thrower("next",t.$value())}),t(o,"$value",function(){var t=this;switch(t.$children().$size().valueOf()){case 0:return t.$s("nil");case 1:return t.$children().$first();default:return i(t,"s",["array"].concat(a(t.$children())))}})}(d[0],u("Base")),function(e,s){var o=n(e,s,"BreakNode");return o.$handle("break"),o.$children("value"),t(o,"$compile",function(){var t=this;return t.$thrower("break",t.$value())})}(d[0],u("Base")),function(e,o){var i=n(e,o,"RedoNode");return i.$handle("redo"),t(i,"$compile",function(){var t=this;return s(t["$in_while?"]())?t.$compile_while():s(t.$scope()["$iter?"]())?t.$compile_iter():t.$push("REDO()")}),t(i,"$compile_while",function(){var t=this;return t.$push(""+t.$while_loop()["$[]"]("redo_var")+" = true;"),t.$thrower("redo")}),t(i,"$compile_iter",function(){var t=this;return t.$helper("slice"),t.$push("return "+t.$scope().$identity()+".apply(null, $slice(arguments))")})}(d[0],u("Base")),function(e,o){var i=n(e,o,"SplatNode");return i.$handle("splat"),i.$children("value"),t(i,"$empty_splat?",function(){var t=this;return t.$value()["$=="](t.$s("array"))}),t(i,"$compile",function(){var t=this;return s(t["$empty_splat?"]())?t.$push("[]"):(t.$helper("to_a"),t.$push("$to_a(",t.$recv(t.$value()),")"))})}(d[0],u("Base")),function(e,s){var o=n(e,s,"RetryNode");return o.$handle("retry"),t(o,"$compile",function(){var t=this;return t.$thrower("retry")})}(d[0],u("Base")),function(e,o){var r=n(e,o,"ReturnNode");return r.$handle("return"),r.$children("value"),t(r,"$return_val",function(){var t=this;return s(t.$value()["$nil?"]())?t.$s("nil"):s(c(t.$children().$size(),1))?i(t,"s",["array"].concat(a(t.$children()))):t.$value()}),t(r,"$compile",function(){var t=this;return t.$thrower("return",t.$return_val())})}(d[0],u("Base")),function(e,s){var o=n(e,s,"JSReturnNode");return o.$handle("js_return"),o.$children("value"),t(o,"$compile",function(){var t=this;return t.$push("return "),t.$push(t.$expr(t.$value()))})}(d[0],u("Base")),function(e,s){var o=n(e,s,"JSTempNode");return o.$handle("js_tmp"),o.$children("value"),t(o,"$compile",function(){var t=this;return t.$push(t.$value().$to_s())})}(d[0],u("Base")),function(e,s){var o=n(e,s,"BlockPassNode");return o.$handle("block_pass"),o.$children("value"),t(o,"$compile",function(){var t=this;return t.$push(t.$expr(t.$s("send",t.$value(),"to_proc",t.$s("arglist"))))})}(d[0],u("Base"))}(d[0],d)}(r[0],r)},Opal.modules["opal/nodes/definitions"]=function(e){var l=e.module,i=e.klass,o=e.send,s=e.def,c=e.range,a=e.eqeq,n=e.truthy,p=e.rb_gt,d=e.to_a,f=e.slice,u=e.rb_plus,h=e.const_set,m=e.top,r=[],t=e.nil;return e.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"),m.$require("opal/nodes/base"),function(r,m){var v=l(r,"Opal"),g=[v].concat(m);return function(r,m){var b=l(r,"Nodes"),g=[b].concat(m),v=e.$r(g);return function(e,n){var a=i(e,n,"UndefNode");return a.$handle("undef"),a.$children("value"),s(a,"$compile",function(){var n=this;return o(n.$children(),"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s.$line("Opal.udef("+s.$scope().$self()+", '$' + ",s.$expr(n),");")},{$$s:n})})}(g[0],v("Base")),function(e,n){var o=i(e,n,"AliasNode");return o.$handle("alias"),o.$children("new_name","old_name"),s(o,"$compile",function(){var n=this,s=t,o=t;switch(n.$new_name().$type().valueOf()){case"gvar":return n.$helper("alias_gvar"),s=n.$new_name().$children().$first().$to_s()["$[]"](c(1,-1,!1)).$inspect(),o=n.$old_name().$children().$first().$to_s()["$[]"](c(1,-1,!1)).$inspect(),n.$push("$alias_gvar(",s,", ",o,")");case"dsym":case"sym":return n.$helper("alias"),a(n.$old_name().$type(),"sym")&&n.$compiler().$record_method_call(n.$old_name().$children().$last()),n.$push("$alias("+n.$scope().$self()+", ",n.$expr(n.$new_name()),", ",n.$expr(n.$old_name()),")");default:return n.$error("Opal doesn't know yet how to alias with "+n.$new_name().$type())}})}(g[0],v("Base")),function(r,c,l){var m=i(r,c,"BeginNode"),g=[m].concat(l),b=e.$r(g),v=m.$$prototype;return v.level=v.returned_children=t,m.$handle("begin"),s(m,"$compile",function(){var i,s=this;return n(s.$children()["$empty?"]())?s.$push("nil"):n(s["$stmt?"]())?s.$compile_children(s.$children(),s.level):n(s["$simple_children?"]())?(s.$compile_inline_children(s.$children(),s.level),n(p(s.$children().$size(),1))?s.$wrap("(",")"):t):a(s.$children().$size(),1)?s.$compile_inline_children(s.$returned_children(),s.level):(o(s,"in_closure",[],function e(){var n=e.$$s==null?this:e.$$s;return n.level==null&&(n.level=t),n.$compile_children(n.$returned_children(),n.level)},{$$s:s}),n((i=s.$scope().$parent(),i===t||i==null?t:i.$await_encountered()))?s.$wrap("(await (async function() {","})())"):s.$wrap("(function() {","})()"))}),s(m,"$returned_children",function(){var s,o,i=this,r=t,c=t,a=t;return i.returned_children=n(r=i.returned_children)?r:(o=[].concat(d(i.$children())),s=o.length-1,s=s<0?0:s,c=f(o,0,s),a=o[s]==null?t:o[s],o,n(a)?u(c,[i.$compiler().$returns(a)]):[i.$s("nil")])}),s(m,"$compile_children",function(n,s){var i=this;return o(n,"each",[],function e(n){var o=e.$$s==null?this:e.$$s;return n==null&&(n=t),o.$line(o.$process(n,s),o.$fragment(";",new Map([["loc",!1]])))},{$$s:i})}),h(g[0],"COMPLEX_CHILDREN",["while","while_post","until","until_post","js_return"].$freeze()),s(m,"$simple_children?",function(){var n=this;return o(n.$children(),"none?",[],function(n){return n==null&&(n=t),b("COMPLEX_CHILDREN")["$include?"](n.$type())})}),s(m,"$compile_inline_children",function(n,s){var i=this,r=t,r=o(n,"map",[],function e(n){var o=e.$$s==null?this:e.$$s;return n==null&&(n=t),o.$process(n,s)},{$$s:i});return o(o(r,"reject",[],"empty?".$to_proc()),"each_with_index",[],function e(n,s){var o=e.$$s==null?this:e.$$s;return n==null&&(n=t),s==null&&(s=t),a(s,0)||o.$push(o.$fragment(", ",new Map([["loc",!1]]))),o.$push(n)},{$$s:i})})}(g[0],v("ScopeNode"),g),function(e,t){var n=i(e,t,"KwBeginNode");return n.$handle("kwbegin")}(g[0],v("BeginNode"))}(g[0],g)}(r[0],r)},Opal.modules["opal/nodes/yield"]=function(e){var i=e.module,o=e.klass,t=e.truthy,a=e.send,c=e.to_a,n=e.def,l=e.top,r=[],s=e.nil;return e.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"),l.$require("opal/nodes/base"),function(r,l){var u=i(r,"Opal"),d=[u].concat(l);return function(r,l){var h=i(r,"Nodes"),d=[h].concat(l),u=e.$r(d);return function(e,i){var r=o(e,i,"BaseYieldNode");return n(r,"$compile_call",function(){var n=this,o=s,r=s,i=s,o=n.$find_yielding_scope();return o["$uses_block!"](),t(r=o.$block_name())?r:o["$block_name="]("$yield"),i=o.$block_name(),t(n["$yields_single_arg?"](n.$children()))?(n.$push(n.$expr(n.$children().$first())),n.$wrap("Opal.yield1("+i+", ",")")):(n.$push(n.$expr(a(n,"s",["arglist"].concat(c(n.$children()))))),t(n["$uses_splat?"](n.$children()))?n.$wrap("Opal.yieldX("+i+", ",")"):n.$wrap("Opal.yieldX("+i+", [","])"))}),n(r,"$find_yielding_scope",function(){for(var o=this,n=s,n=o.$scope();t(n);){if(t(n.$block_name())||t(n["$def?"]()))break;n=n.$parent()}return n}),n(r,"$yields_single_arg?",function(n){var i=this,o=s;return t(o=i["$uses_splat?"](n)["$!"]())?n.$size()["$=="](1):o}),n(r,"$uses_splat?",function(t){return a(t,"any?",[],function(t){return t==null&&(t=s),t.$type()["$=="]("splat")})})}(d[0],u("Base")),function(e,t){var s=o(e,t,"YieldNode");return s.$handle("yield"),n(s,"$compile",function(){var t=this;return t.$compile_call()})}(d[0],u("BaseYieldNode")),function(e,t){var s=o(e,t,"ReturnableYieldNode");return s.$handle("returnable_yield"),n(s,"$compile",function(){var t=this;return t.$compile_call(),t.$wrap("return ",";")})}(d[0],u("BaseYieldNode"))}(d[0],d)}(r[0],r)},Opal.modules["opal/nodes/rescue"]=function(e){var d=e.module,r=e.klass,t=e.truthy,s=e.send,o=e.def,u=e.range,c=e.neqeq,a=e.eqeq,h=e.to_a,m=e.top,l=[],n=e.nil,i=e.$$$;return e.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"),m.$require("opal/nodes/base"),function(l,m){var p=d(l,"Opal"),f=[p].concat(m);return function(l,m){var g=d(l,"Nodes"),f=[g].concat(m),p=e.$r(f);return function(e,i){var a=r(e,i,"EnsureNode"),c=a.$$prototype;return c.sexp=n,a.$handle("ensure"),a.$children("begn","ensr"),o(a,"$compile",function(){var o=this;return t(o["$wrap_in_closure?"]())&&o.$push_closure(),o.$push("try {"),s(o,"in_ensure",[],function e(){var t=e.$$s==null?this:e.$$s;return t.$line(t.$stmt(t.$body_sexp()))},{$$s:o}),o.$line("} finally {"),s(o,"indent",[],function e(){var o=e.$$s==null?this:e.$$s;return o.level==null&&(o.level=n),t(o["$has_rescue_else?"]())?(o.$unshift("var $no_errors = true; "),o.$line("var $rescue_else_result;"),o.$line("if ($no_errors) { "),s(o,"indent",[],function e(){var t=e.$$s==null?this:e.$$s;return t.$line("$rescue_else_result = (function() {"),s(t,"indent",[],function e(){var t=e.$$s==null?this:e.$$s;return t.$line(t.$stmt(t.$rescue_else_code()))},{$$s:t}),t.$line("})();")},{$$s:o}),o.$line("}"),o.$line(o.$compiler().$process(o.$ensr_sexp(),o.level)),o.$line("if ($no_errors) { return $rescue_else_result; }")):o.$line(o.$compiler().$process(o.$ensr_sexp(),o.level))},{$$s:o}),o.$line("}"),t(o["$wrap_in_closure?"]())&&o.$pop_closure(),t(o["$wrap_in_closure?"]())?t(o.$scope().$await_encountered())?o.$wrap("(await (async function() { ","; })())"):o.$wrap("(function() { ","; })()"):n}),o(a,"$body_sexp",function(){var n=this;return t(n["$wrap_in_closure?"]())?n.$compiler().$returns(n.$begn()):n.$begn()}),o(a,"$ensr_sexp",function(){var s=this,o=n;return t(o=s.$ensr())?o:s.$s("nil")}),o(a,"$wrap_in_closure?",function(){var s=this,o=n,i=n;return t(o=t(i=s["$recv?"]())?i:s["$expr?"]())?o:s["$has_rescue_else?"]()}),o(a,"$rescue_else_code",function(){var o=this,s=n,s=o.$scope().$rescue_else_sexp();return t(o["$stmt?"]())||(s=o.$compiler().$returns(s)),s}),o(a,"$has_rescue_else?",function(){var t=this;return t.sexp.$meta()["$[]"]("has_rescue_else")})}(f[0],p("Base")),function(l,d,h){var m=r(l,d,"RescueNode"),p=[m].concat(h),f=e.$r(p),g=m.$$prototype;return g.sexp=n,m.$handle("rescue"),m.$children("body"),o(m,"$compile",function(){var o=this,l=n,r=n;return o.$scope()["$rescue_else_sexp="](s(o.$children()["$[]"](u(1,-1,!1)),"detect",[],function(s){var o=n;return s==null&&(s=n),t(o=s)?s.$type()["$!="]("resbody"):o})),l=!1,t(o["$handle_rescue_else_manually?"]())&&o.$line("var $no_errors = true;"),r=i(f("Closure"),"NONE"),(t(o["$expr?"]())||t(o["$recv?"]()))&&(r=r["$|"](i(f("Closure"),"JS_FUNCTION"))),t(o["$has_retry?"]())&&(r=r["$|"](i(f("Closure"),"JS_LOOP")["$|"](i(f("Closure"),"JS_LOOP_INSIDE"))["$|"](i(f("Closure"),"RESCUE_RETRIER")))),c(r,i(f("Closure"),"NONE"))&&o.$push_closure(r),s(o,"in_rescue",[o],function e(){var o=e.$$s==null?this:e.$$s;return o.$push("try {"),s(o,"indent",[],function e(){var t=e.$$s==null?this:e.$$s;return t.$line(t.$stmt(t.$body_code()))},{$$s:o}),o.$line("} catch ($err) {"),s(o,"indent",[],function e(){var o=e.$$s==null?this:e.$$s;return t(o["$has_rescue_else?"]())&&o.$line("$no_errors = false;"),s(o.$children()["$[]"](u(1,-1,!1)),"each_with_index",[],function e(s,o){var i=e.$$s==null?this:e.$$s;return i.level==null&&(i.level=n),s==null&&(s=n),o==null&&(o=n),t(s)&&a(s.$type(),"resbody")?(l=!0,a(o,0)||i.$push(" else "),i.$line(i.$process(s,i.level))):n},{$$s:o}),o.$push(" else { throw $err; }")},{$$s:o}),o.$line("}"),t(o["$handle_rescue_else_manually?"]())?(o.$push("finally {"),s(o,"indent",[],function e(){var t=e.$$s==null?this:e.$$s;return t.$line("if ($no_errors) { "),s(t,"indent",[],function e(){var t=e.$$s==null?this:e.$$s;return t.$line(t.$stmt(t.$rescue_else_code()))},{$$s:t}),t.$line("}")},{$$s:o}),o.$push("}")):n},{$$s:o}),c(r,i(f("Closure"),"NONE"))&&o.$pop_closure(),t(o["$has_retry?"]())&&o.$wrap("do { "," break; } while(1)"),t(o["$expr?"]())||t(o["$recv?"]())?t(o.$scope().$await_encountered())?o.$wrap("(await (async function() { ","})())"):o.$wrap("(function() { ","})()"):n}),o(m,"$body_code",function(){var s=this,o=n,o=t(s.$body()["$nil?"]())||a(s.$body().$type(),"resbody")?s.$s("nil"):s.$body();return t(s["$stmt?"]())||(o=s.$compiler().$returns(o)),o}),o(m,"$rescue_else_code",function(){var o=this,s=n,s=o.$scope().$rescue_else_sexp();return t(o["$stmt?"]())||(s=o.$compiler().$returns(s)),s}),o(m,"$handle_rescue_else_manually?",function(){var s=this,o=n;return t(o=s["$in_ensure?"]()["$!"]())?s["$has_rescue_else?"]():o}),o(m,"$has_retry?",function(){var t=this;return t.sexp.$meta()["$[]"]("has_retry")})}(f[0],p("Base"),f),function(e,i){var a=r(e,i,"ResBodyNode");return a.$handle("resbody"),a.$children("klasses_sexp","lvar","body"),o(a,"$compile",function(){var o=this;return o.$push("if (Opal.rescue($err, ",o.$expr(o.$klasses()),")) {"),s(o,"indent",[],function e(){var o=e.$$s==null?this:e.$$s;return t(o.$lvar())&&o.$push(o.$expr(o.$lvar().$updated(n,[].concat(h(o.$lvar().$children())).concat([o.$s("js_tmp","$err")])))),o.$line("try {"),s(o,"indent",[],function e(){var t=e.$$s==null?this:e.$$s;return s(t,"in_resbody",[],function e(){var t=e.$$s==null?this:e.$$s;return t.$line(t.$stmt(t.$rescue_body()))},{$$s:t})},{$$s:o}),o.$line("} finally { Opal.pop_exception($err); }")},{$$s:o}),o.$line("}")}),o(a,"$klasses",function(){var s=this,o=n;return t(o=s.$klasses_sexp())?o:s.$s("array",s.$s("const",n,"StandardError"))}),o(a,"$rescue_body",function(){var s=this,o=n,i=n,o=t(i=s.$body())?i:s.$s("nil");return t(s["$stmt?"]())||(o=s.$compiler().$returns(o)),o})}(f[0],p("Base"))}(f[0],f)}(l[0],l)},Opal.modules["opal/nodes/super"]=function(e){var p=e.module,r=e.klass,c=e.slice,u=e.send2,d=e.find_super,o=e.to_a,s=e.truthy,a=e.send,n=e.def,i=e.return_val,h=e.to_ary,g=e.eqeq,v=e.not,m=e.eqeqeq,b=e.top,f=[],t=e.nil,l=e.$$$;return e.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?,==="),b.$require("opal/nodes/base"),function(f,b){var y=p(f,"Opal"),j=[y].concat(b);return function(f,b){var _=p(f,"Nodes"),j=[_].concat(b),y=e.$r(j);return function(e,l){var m=r(e,l,"BaseSuperNode"),f=m.$$prototype;return f.sexp=f.def_scope=t,n(m,"$initialize",function e(){var r,l,f,p,v=e.$$p||t,i=this,h=t,g=t,m=t;return e.$$p=null,f=c(arguments),p=f,u(i,d(i,"initialize",e,!1,!0),"initialize",o(p),v),h=[].concat(o(i.sexp)),l=[].concat(o(h)),r=l.length-1,r=r<0?0:r,g=c(l,0,r),m=l[r]==null?t:l[r],l,s(m)&&s(["iter","block_pass"]["$include?"](m.$type()))?(i.iter=m,h=g):i.iter=i.$s("js_tmp","null"),i.arglist=a(i,"s",["arglist"].concat(o(h))),i.recvr=i.$s("self")},-1),n(m,"$compile_using_send",function(){var t=this;return t.$helper("send2"),t.$push("$send2("),t.$compile_receiver(),t.$compile_method_body(),t.$compile_method_name(),t.$compile_arguments(),t.$compile_block_pass(),t.$push(")")}),m.$private(),n(m,"$def_scope",function(){var n=this,o=t;return n.def_scope=s(o=n.def_scope)?o:s(n.$scope()["$def?"]())?n.$scope():n.$scope().$find_parent_def()}),n(m,"$defined_check_param",i("false")),n(m,"$implicit_arguments_param",i("false")),n(m,"$method_id",function(){var t=this;return t.$def_scope().$mid().$to_s()}),n(m,"$def_scope_identity",function(){var t=this;return t.$def_scope()["$identify!"](t.$def_scope().$mid())}),n(m,"$allow_stubs",i("true")),n(m,"$super_method_invocation",function(){var t=this;return t.$helper("find_super"),"$find_super("+t.$scope().$self()+", '"+t.$method_id()+"', "+t.$def_scope_identity()+", "+t.$defined_check_param()+", "+t.$allow_stubs()+")"}),n(m,"$super_block_invocation",function(){var n,o,s=this,i=t,r=t,c=t,l=t;return s.$helper("find_block_super"),o=s.$scope().$super_chain(),n=h(o),i=n[0]==null?t:n[0],r=n[1]==null?t:n[1],c=n[2]==null?t:n[2],o,l=a(i,"map",[],function(n){return n==null&&(n=t),""+n+".$$def"}).$join(" || "),"$find_block_super("+s.$scope().$self()+", "+c+", ("+l+" || "+r+"), "+s.$defined_check_param()+", "+s.$implicit_arguments_param()+")"}),n(m,"$compile_method_body",function(){var t=this;return t.$push(", "),s(t.$scope()["$def?"]())?t.$push(t.$super_method_invocation()):s(t.$scope()["$iter?"]())?t.$push(t.$super_block_invocation()):t.$raise("super must be called from method body or block")}),n(m,"$compile_method_name",function(){var n,i,o=this,r=t,c=t,a=t;return s(o.$scope()["$def?"]())?o.$push(", '"+o.$method_id()+"'"):s(o.$scope()["$iter?"]())?(i=o.$scope().$super_chain(),n=h(i),r=n[0]==null?t:n[0],c=n[1]==null?t:n[1],a=n[2]==null?t:n[2],i,o.$push(", "+a)):t})}(j[0],y("CallNode")),function(e,t){var s=r(e,t,"DefinedSuperNode");return s.$handle("defined_super"),n(s,"$allow_stubs",i("false")),n(s,"$defined_check_param",i("true")),n(s,"$compile",function(){var t=this;return t.$compile_receiver(),t.$compile_method_body(),t.$wrap("((",') != null ? "super" : nil)')})}(j[0],y("BaseSuperNode")),function(e,i){var a=r(e,i,"SuperNode");return a.$handle("super"),n(a,"$initialize",function e(){var a,r,l=e.$$p||t,i=this;return e.$$p=null,a=c(arguments),r=a,u(i,d(i,"initialize",e,!1,!0),"initialize",o(r),l),s(i.$scope()["$def?"]())?i.$scope()["$uses_block!"]():t},-1),n(a,"$compile",function(){var t=this;return t.$compile_using_send()})}(j[0],y("BaseSuperNode")),function(h,f,p){var b=r(h,f,"ZsuperNode"),y=[b].concat(p),j=e.$r(y);return b.$handle("zsuper"),n(b,"$implicit_arguments_param",i("true")),n(b,"$initialize",function e(){var a,r,h=e.$$p||t,i=this,l=t;return e.$$p=null,a=c(arguments),r=a,u(i,d(i,"initialize",e,!1,!0),"initialize",o(r),h),g(i.$iter().$type(),"iter")?t:(i.$scope()["$uses_block!"](),i.iter=i.$s("js_tmp",s(l=i.$scope().$block_name())?l:"$yield"))},-1),n(b,"$compile",function(){var n=this,i=t,r=t;return s(n.$def_scope())&&(i=n.$implicit_arglist(),s(n.$block_name())&&v(n.$iter())&&(r=n.$s("block_pass",n.$s("lvar",n.$block_name())),i["$<<"](r)),n.arglist=a(n,"s",["arglist"].concat(o(i)))),n.$compile_using_send()}),n(b,"$implicit_arglist",function(){var r=this,n=t,i=t,n=[],i=[];return a(r.$def_scope().$original_args().$children(),"each",[],function e(o){var a=e.$$s==null?this:e.$$s,r=t,c=t,l=t;switch(o==null&&(o=t),r=o.$children()["$[]"](0),o.$type().valueOf()){case"arg":case"optarg":return c=a.$s("lvar",r),n["$<<"](c);case"restarg":return c=s(r)?a.$s("lvar",r):a.$s("js_tmp","$rest_arg"),n["$<<"](a.$s("splat",c));case"kwarg":case"kwoptarg":return l=o.$meta()["$[]"]("arg_name"),i["$<<"](a.$s("pair",a.$s("sym",l),a.$s("lvar",r)));case"kwrestarg":return c=s(r)?a.$s("lvar",r):a.$s("js_tmp","$kw_rest_arg"),i["$<<"](a.$s("kwsplat",c));default:return t}},{$$s:r}),s(i["$empty?"]())||n["$<<"](a(r,"s",["hash"].concat(o(i)))),n}),n(b,"$block_name",function(){var n=this,s=t;return m(l(l(j("Opal"),"Nodes"),"IterNode"),s=n.$def_scope())?n.$def_scope().$block_name():m(l(l(j("Opal"),"Nodes"),"DefNode"),s)?n.$def_scope().$block_name():n.$raise("Don't know what to do with super in the scope "+n.$def_scope())})}(j[0],y("SuperNode"),j)}(j[0],j)}(f[0],f)},Opal.modules["opal/version"]=function(e){var n=e.module,s=e.const_set,t=[],o=e.nil;return function(e,t){var o=n(e,"Opal"),i=[o].concat(t);return s(i[0],"VERSION","1.8.2")}(t[0],t)},Opal.modules["opal/nodes/top"]=function(e){var r=e.module,l=e.klass,t=e.truthy,d=e.eqeq,o=e.send,s=e.def,u=e.not,i=e.top,c=[],n=e.nil,a=e.$$$;return e.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"),i.$require("pathname"),i.$require("json"),i.$require("opal/version"),i.$require("opal/nodes/scope"),function(i,c){var m=r(i,"Opal"),h=[m].concat(c);return function(i,c){var m=r(i,"Nodes"),h=[m].concat(c),f=e.$r(h);return function(i,r,c){var h=l(i,r,"TopNode"),f=[h].concat(c),m=e.$r(f);return h.$handle("top"),h.$children("body"),s(h,"$compile",function(){var s=this;return s.$compiler()["$top_scope="](s),t(s.$sexp().$meta()["$[]"]("dynamic_cache_result"))&&s.$compiler()["$dynamic_cache_result="](!0),s.$push(s.$version_comment()),t(s.$compiler().$eof_content())&&s.$helper("return_val"),d(s.$body(),s.$s("nil"))?t(s.$compiler()["$requirable?"]())||t(s.$compiler()["$esm?"]())||t(s.$compiler()["$eval?"]())?(s.$unshift("Opal.return_val(Opal.nil); "),s.$definition()):s.$unshift("Opal.nil; "):(o(s,"in_scope",[],function e(){var s=e.$$s==null?this:e.$$s,i=n;return s.define_nesting==null&&(s.define_nesting=n),s.define_self==null&&(s.define_self=n),s.define_relative_access==null&&(s.define_relative_access=n),s.define_absolute_const==null&&(s.define_absolute_const=n),t(s.$compiler()["$use_strict?"]())&&s.$line('"use strict";'),i=o(s,"in_closure",[a(m("Closure"),"JS_FUNCTION")["$|"](a(m("Closure"),"TOP"))],function e(){var t=e.$$s==null?this:e.$$s;return t.$stmt(t.$stmts())},{$$s:s}),t(i["$is_a?"](m("Array")))||(i=[i]),t(s.$compiler()["$eval?"]())?t(s.define_nesting)&&s.$add_temp("$nesting = self.$$is_a_module ? [self] : [self.$$class]"):(t(s.define_self)&&s.$add_temp("self = Opal.top"),t(s.define_nesting)&&s.$add_temp("$nesting = []")),t(s.define_relative_access)&&s.$add_temp("$$ = Opal.$r($nesting)"),s.$add_temp("nil = Opal.nil"),t(s.define_absolute_const)&&s.$add_temp("$$$ = Opal.$$$"),s.$add_used_helpers(),s.$line(s.$scope().$to_vars()),s.$compile_method_stubs(),s.$compile_irb_vars(),s.$compile_end_construct(),s.$line(i)},{$$s:s}),s.$opening(),s.$definition(),s.$closing()),t(s.$compiler()["$enable_file_source_embed?"]())?s.$add_file_source_embed():n}),s(h,"$module_name",function(){var t=this;return a(m("Opal"),"Compiler").$module_name(t.$compiler().$file()).$inspect()}),s(h,"$definition",function(){var s=this;return t(s.$compiler()["$requirable?"]())?s.$unshift("Opal.modules["+s.$module_name()+"] = "):t(s.$compiler()["$esm?"]())&&u(s.$compiler()["$no_export?"]())?s.$unshift("export default "):n}),s(h,"$opening",function(){var s=this,o=n;return t(s.$await_encountered())&&(o="async "),t(s.$compiler()["$requirable?"]())?s.$unshift(""+o+"function(Opal) {"):t(s.$compiler()["$eval?"]())?s.$unshift("("+o+"function(Opal, self) {"):s.$unshift("Opal.queue("+o+"function(Opal) {")}),s(h,"$closing",function(){var s=this;return t(s.$compiler()["$requirable?"]())?(s.$line(`};
`),t(s.$compiler()["$load?"]())?s.$line("Opal.load_normalized("+s.$module_name()+");"):n):t(s.$compiler()["$eval?"]())?s.$line("})(Opal, self);"):s.$line(`});
`)}),s(h,"$stmts",function(){var t=this;return t.$compiler().$returns(t.$body())}),s(h,"$absolute_const",function(){var t=this;return t.define_absolute_const=!0,"$$$"}),s(h,"$compile_irb_vars",function(){var s=this;return t(s.$compiler()["$irb?"]())?s.$line("if (!Opal.irb_vars) { Opal.irb_vars = {}; }"):n}),s(h,"$add_used_helpers",function(){var t=this;return o(t.$compiler().$helpers().$to_a(),"reverse_each",[],function e(t){var s=e.$$s==null?this:e.$$s;return t==null&&(t=n),s.$prepend_scope_temp("$"+t+" = Opal."+t)},{$$s:t})}),s(h,"$compile_method_stubs",function(){var s=this,a=n,i=n;return t(s.$compiler()["$method_missing?"]())?(a=s.$compiler().$method_calls(),i=o(a.$to_a(),"map",[],"to_s".$to_proc()).$join(","),t(i["$empty?"]())?n:s.$line("Opal.add_stubs('"+i+"');")):n}),s(h,"$compile_end_construct",function(){var s=this,o=n;return t(o=s.$compiler().$eof_content())?(s.$line("var $__END__ = Opal.Object.$new();"),s.$line("$__END__.$read = $return_val("+o.$inspect()+");")):n}),s(h,"$version_comment",function(){return"/* Generated by Opal "+a(m("Opal"),"VERSION")+" */"}),s(h,"$add_file_source_embed",function(){var t=this,s=n,o=n,s=t.$compiler().$file(),o=t.$compiler().$source();return t.$unshift("Opal.file_sources["+s.$to_json()+"] = "+o.$to_json()+`;
`)})}(h[0],f("ScopeNode"),h)}(h[0],h)}(c[0],c)},Opal.modules["opal/nodes/while"]=function(e){var c=e.module,i=e.klass,t=e.truthy,a=e.send,n=e.def,r=e.return_val,d=e.top,l=[],s=e.nil,o=e.$$$;return e.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?"),d.$require("opal/nodes/base"),function(l,d){var h=c(l,"Opal"),u=[h].concat(d);return function(l,d){var m=c(l,"Nodes"),u=[m].concat(d),h=e.$r(u);return function(c,l,d){var u=i(c,l,"WhileNode"),f=[u].concat(d),h=e.$r(f),m=u.$$prototype;return m.redo_var=m.sexp=s,u.$handle("while"),u.$children("test","body"),n(u,"$compile",function(){var n=this,i=s,i=n.$js_truthy(n.$test());return t(n["$uses_redo?"]())&&(n.redo_var=n.$scope().$new_temp()),a(n.$compiler(),"in_while",[],function e(){var n=e.$$s==null?this:e.$$s;return n.redo_var==null&&(n.redo_var=s),t(n["$wrap_in_closure?"]())&&n.$while_loop()["$[]="]("closure",!0),n.$while_loop()["$[]="]("redo_var",n.redo_var),a(n,"in_closure",[o(h("Closure"),"LOOP")["$|"](o(h("Closure"),"JS_LOOP"))["$|"](t(n["$wrap_in_closure?"]())?o(h("Closure"),"JS_FUNCTION"):0)],function e(){var n=e.$$s==null?this:e.$$s;return a(n,"in_closure",[o(h("Closure"),"LOOP_INSIDE")["$|"](o(h("Closure"),"JS_LOOP_INSIDE"))],function e(){var t=e.$$s==null?this:e.$$s;return t.$line(a(t,"indent",[],function e(){var t=e.$$s==null?this:e.$$s;return t.$stmt(t.$body())},{$$s:t}))},{$$s:n}),t(n["$uses_redo?"]())?n.$compile_with_redo(i):n.$compile_without_redo(i)},{$$s:n})},{$$s:n}),t(n["$uses_redo?"]())&&n.$scope().$queue_temp(n.redo_var),t(n["$wrap_in_closure?"]())?t(n.$scope().$await_encountered())?n.$wrap("(await (async function() {","; return nil; })())"):n.$wrap("(function() {","; return nil; })()"):s}),u.$private(),n(u,"$compile_with_redo",function(t){var n=this;return n.$compile_while(t,""+n.redo_var+" = false;")}),n(u,"$compile_without_redo",function(t){var n=this;return n.$compile_while(t)}),n(u,"$compile_while",function(n,o){var i=this;return o==null&&(o=s),t(o)&&i.$unshift(o),i.$unshift(i.$while_open(),n,i.$while_close()),t(o)&&i.$unshift(o),i.$line("}")},-2),n(u,"$while_open",function(){var n=this,o=s;return t(n["$uses_redo?"]())&&(o=""+n.redo_var+" || "),"while ("+o}),n(u,"$while_close",r(") {")),n(u,"$uses_redo?",function(){var t=this;return t.sexp.$meta()["$[]"]("has_redo")}),n(u,"$wrap_in_closure?",function(){var n=this,o=s;return t(o=n["$expr?"]())?o:n["$recv?"]()})}(u[0],h("Base"),u),function(e,o){var a=i(e,o,"UntilNode"),c=a.$$prototype;return c.redo_var=s,a.$handle("until"),a.$private(),n(a,"$while_open",function(){var n=this,o=s;return t(n["$uses_redo?"]())&&(o=""+n.redo_var+" || "),"while ("+o+"!("}),n(a,"$while_close",r(")) {"))}(u[0],h("WhileNode")),function(e,o){var a=i(e,o,"WhilePostNode");return a.$handle("while_post"),a.$private(),n(a,"$compile_while",function(n,o){var i=this;return o==null&&(o=s),t(o)&&i.$unshift(o),i.$unshift("do {"),i.$line("} ",i.$while_open(),n,i.$while_close())},-2),n(a,"$while_close",r(");"))}(u[0],h("WhileNode")),function(e,o){var a=i(e,o,"UntilPostNode"),c=a.$$prototype;return c.redo_var=s,a.$handle("until_post"),a.$private(),n(a,"$while_open",function(){var n=this,o=s;return t(n["$uses_redo?"]())&&(o=""+n.redo_var+" || "),"while ("+o+"!("}),n(a,"$while_close",r("));"))}(u[0],h("WhilePostNode"))}(u[0],u)}(l[0],l)},Opal.modules["opal/nodes/hash"]=function(e){var r=e.module,l=e.klass,h=e.slice,u=e.send2,d=e.find_super,a=e.to_a,n=e.send,o=e.def,s=e.truthy,i=e.eqeq,m=e.to_ary,f=e.top,c=[],t=e.nil;return e.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"),f.$require("opal/nodes/base"),function(c,f){var g=r(c,"Opal"),p=[g].concat(f);return function(c,f){var v=r(c,"Nodes"),p=[v].concat(f),g=e.$r(p);return function(e,r){var c=l(e,r,"HashNode");return c.$handle("hash"),c.$attr_accessor("has_kwsplat","keys","values"),o(c,"$initialize",function e(){var i,r,c=e.$$p||t,o=this;return e.$$p=null,i=h(arguments),r=i,u(o,d(o,"initialize",e,!1,!0),"initialize",a(r),c),o.has_kwsplat=!1,o.keys=[],o.values=[],n(o.$children(),"each",[],function e(n){var s=e.$$s==null?this:e.$$s;switch(s.keys==null&&(s.keys=t),s.values==null&&(s.values=t),n==null&&(n=t),n.$type().valueOf()){case"kwsplat":return s.has_kwsplat=!0;case"pair":return s.keys["$<<"](n.$children()["$[]"](0)),s.values["$<<"](n.$children()["$[]"](1));default:return t}},{$$s:o})},-1),o(c,"$simple_keys?",function(){var s=this;return n(s.$keys(),"all?",[],function(n){return n==null&&(n=t),["sym","str","int"]["$include?"](n.$type())})}),o(c,"$compile",function(){var t=this;return s(t.$has_kwsplat())?t.$compile_merge():t.$compile_hash()}),o(c,"$compile_merge",function(){var r=this,c=t,o=t,l=[[],[]];return c=l[0],o=l[1],l,n(r.$children(),"each",[],function e(r){var l=e.$$s==null?this:e.$$s;return r==null&&(r=t),i(r.$type(),"kwsplat")?(s(o["$empty?"]())||c["$<<"](l.$expr(n(l,"s",["hash"].concat(a(o))))),c["$<<"](l.$expr(r)),o=[]):o["$<<"](r)},{$$s:r}),s(o["$empty?"]())||c["$<<"](r.$expr(n(r,"s",["hash"].concat(a(o))))),n(c,"each_with_index",[],function e(n,s){var o=e.$$s==null?this:e.$$s;return n==null&&(n=t),s==null&&(s=t),i(s,0)?o.$push(n):o.$push(".$merge(",n,")")},{$$s:r})}),o(c,"$compile_hash",function(){var o=this;return n(o.$children(),"each_with_index",[],function e(n,o){var r,l,a=e.$$s==null?this:e.$$s,c=t,d=t;return n==null&&(n=t),o==null&&(o=t),l=n.$children(),r=m(l),c=r[0]==null?t:r[0],d=r[1]==null?t:r[1],l,i(o,0)||a.$push(", "),s(["sym","str"]["$include?"](c.$type()))?a.$push("["+c.$children()["$[]"](0).$to_s().$inspect(),", ",a.$expr(d),"]"):a.$push("[",a.$expr(c),", ",a.$expr(d),"]")},{$$s:o}),s(o.$keys()["$empty?"]())?o.$push("(new Map())"):s(o["$simple_keys?"]())?o.$wrap("(new Map([","]))"):(o.$helper("hash_rehash"),o.$wrap("$hash_rehash(new Map([","]))"))})}(p[0],g("Base")),function(e,t){var n=l(e,t,"KwSplatNode");return n.$handle("kwsplat"),n.$children("value"),o(n,"$compile",function(){var t=this;return t.$push("Opal.to_hash(",t.$expr(t.$value()),")")})}(p[0],g("Base"))}(p[0],p)}(c[0],c)},Opal.modules["opal/nodes/array"]=function(e){var s=e.module,i=e.klass,t=e.truthy,a=e.send,r=e.def,c=e.top,o=[],n=e.nil;return e.add_stubs("require,handle,empty?,children,push,each,==,type,expr,<<,fragment"),c.$require("opal/nodes/base"),function(o,c){var d=s(o,"Opal"),l=[d].concat(c);return function(o,c){var d=s(o,"Nodes"),l=[d].concat(c),u=e.$r(l);return function(e,s){var o=i(e,s,"ArrayNode");return o.$handle("array"),r(o,"$compile",function(){var r,i=this,s=n,o=n,c=n;return t(i.$children()["$empty?"]())?i.$push("[]"):(r=[[],[]],s=r[0],o=r[1],r,a(i.$children(),"each",[],function e(i){var a=e.$$s==null?this:e.$$s,c=n,r=n;return i==null&&(i=n),c=i.$type()["$=="]("splat"),r=a.$expr(i),t(c)?(t(o["$empty?"]())?t(s["$empty?"]())?s["$<<"](a.$fragment("[].concat("))["$<<"](r)["$<<"](a.$fragment(")")):s["$<<"](a.$fragment(".concat("))["$<<"](r)["$<<"](a.$fragment(")")):(t(s["$empty?"]())?s["$<<"](a.$fragment("["))["$<<"](o)["$<<"](a.$fragment("]")):s["$<<"](a.$fragment(".concat(["))["$<<"](o)["$<<"](a.$fragment("])")),s["$<<"](a.$fragment(".concat("))["$<<"](r)["$<<"](a.$fragment(")"))),o=[]):(t(o["$empty?"]())||o["$<<"](a.$fragment(", ")),o["$<<"](r))},{$$s:i}),t(o["$empty?"]())||(c=[i.$fragment("["),o,i.$fragment("]")],t(s["$empty?"]())?s=c:s.$push([i.$fragment(".concat("),c,i.$fragment(")")])),i.$push(s))})}(l[0],u("Base"))}(l[0],l)}(o[0],o)},Opal.modules["opal/nodes/defined"]=function(e){var a=e.module,d=e.klass,s=e.eqeq,n=e.def,o=e.truthy,i=e.to_a,u=e.slice,r=e.send,c=e.range,h=e.top,l=[],t=e.nil;return e.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"),h.$require("opal/nodes/base"),function(l,h){var f=a(l,"Opal"),m=[f].concat(h);return function(l,h){var f=a(l,"Nodes"),m=[f].concat(h),p=e.$r(m);return function(e,a){var l=d(e,a,"DefinedNode");return l.$handle("defined?"),l.$children("value"),n(l,"$compile",function(){var t=this;switch(t.$value().$type().valueOf()){case"self":case"nil":case"false":case"true":return t.$push(t.$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 t.$push("'assignment'");case"lvar":return t.$push("'local-variable'");case"begin":return s(t.$value().$children().$size(),1)&&s(t.$value().$children()["$[]"](0).$type(),"masgn")?t.$push("'assignment'"):t.$push("'expression'");break;case"send":return t.$compile_defined_send(t.$value()),t.$wrap("("," ? 'method' : nil)");case"ivar":return t.$compile_defined_ivar(t.$value()),t.$wrap("("," ? 'instance-variable' : nil)");case"zsuper":case"super":return t.$compile_defined_super();case"yield":return t.$compile_defined_yield(),t.$wrap("("," ? 'yield' : nil)");case"xstr":return t.$compile_defined_xstr(t.$value());case"const":return t.$compile_defined_const(t.$value()),t.$wrap("("," ? 'constant' : nil)");case"cvar":return t.$compile_defined_cvar(t.$value()),t.$wrap("("," ? 'class variable' : nil)");case"gvar":return t.$compile_defined_gvar(t.$value()),t.$wrap("("," ? 'global-variable' : nil)");case"back_ref":return t.$compile_defined_back_ref(),t.$wrap("("," ? 'global-variable' : nil)");case"nth_ref":return t.$compile_defined_nth_ref(),t.$wrap("("," ? 'global-variable' : nil)");case"array":return t.$compile_defined_array(t.$value()),t.$wrap("("," ? 'expression' : nil)");default:return t.$push("'expression'")}}),n(l,"$compile_defined",function(n){var s=this,i=t,a=t,i=n.$type();return o(s["$respond_to?"]("compile_defined_"+i))?s.$__send__("compile_defined_"+i,n):(a=s.$scope().$new_temp(),s.$push("("+a+" = ",s.$expr(n),")"),a)}),n(l,"$wrap_with_try_catch",function(n){var s=this,o=t,o=s.$scope().$new_temp();return s.$push("("+o+" = (function() { try {"),s.$push(" return "+n+";"),s.$push("} catch ($err) {"),s.$push(" if (Opal.rescue($err, [Opal.Exception])) {"),s.$push(" try {"),s.$push(" return false;"),s.$push(" } finally { Opal.pop_exception($err); }"),s.$push(" } else { throw $err; }"),s.$push("}})())"),o}),n(l,"$compile_send_recv_doesnt_raise",function(t){var n=this;return n.$wrap_with_try_catch(t)}),n(l,"$compile_defined_send",function(n){var a=this,d=t,p=t,g=t,v=t,h=t,l=t,m=t,f=t,c=[].concat(i(n));return d=c[0]==null?t:c[0],p=c[1]==null?t:c[1],g=u(c,2),c,v=a.$mid_to_jsid(p.$to_s()),o(d)?(h=a.$compile_defined(d),a.$push(" && "),s(d.$type(),"send")&&(h=a.$compile_send_recv_doesnt_raise(h),a.$push(" && ")),l=a.$scope().$new_temp(),a.$push("("+l+" = ",h,", "+l+") && ")):l=a.$scope().$self(),m=a.$scope().$new_temp(),a.$push("("+m+" = "+l+") && "),f=a.$scope().$new_temp(),a.$push("((("+f+" = "+m+v+") && !"+f+".$$stub)"),a.$push(" || "+m+"['$respond_to_missing?']('"+p+"'))"),r(g,"each",[],function e(n){var s=e.$$s==null?this:e.$$s;switch(n==null&&(n=t),n.$type().valueOf()){case"block_pass":return t;default:return s.$push(" && "),s.$compile_defined(n)}},{$$s:a}),a.$wrap("(",")"),""+f+"()"}),n(l,"$compile_defined_ivar",function(n){var o=this,i=t,s=t,i=n.$children()["$[]"](0).$to_s()["$[]"](c(1,-1,!1)),s=o.$scope().$new_temp();return o.$push("("+s+" = "+o.$scope().$self()+"['"+i+"'], "+s+" != null && "+s+" !== nil)"),s}),n(l,"$compile_defined_super",function(){var t=this;return t.$push(t.$expr(t.$s("defined_super")))}),n(l,"$compile_defined_yield",function(){var n=this,s=t,i=t;return n.$scope()["$uses_block!"](),s=o(i=n.$scope().$block_name())?i:n.$scope().$find_parent_def().$block_name(),n.$push("("+s+" != null && "+s+" !== nil)"),s}),n(l,"$compile_defined_xstr",function(t){var n=this;return n.$push("(typeof(",n.$expr(t),') !== "undefined")')}),n(l,"$compile_defined_const",function(n){var a=this,l=t,d=t,c=t,u=t,r=[].concat(i(n));return l=r[0]==null?t:r[0],d=r[1]==null?t:r[1],r,c=a.$scope().$new_temp(),o(l["$nil?"]())?a.$push("("+c+" = "+a.$scope().$relative_access()+"('"+d+"', 'skip_raise'))"):s(l,a.$s("cbase"))?a.$push("("+c+" = "+a.$top_scope().$absolute_const()+"('::', '"+d+"', 'skip_raise'))"):(u=a.$compile_defined(l),a.$push(" && ("+c+" = "+a.$top_scope().$absolute_const()+"("+u+", '"+d+"', 'skip_raise'))")),c}),n(l,"$compile_defined_cvar",function(n){var a=this,r=t,c=t,o=t,s=[].concat(i(n));return r=s[0]==null?t:s[0],c=s[1]==null?t:s[1],s,o=a.$scope().$new_temp(),a.$push("("+o+" = "+a.$class_variable_owner()+".$$cvars['"+r+"'], "+o+" != null)"),o}),n(l,"$compile_defined_gvar",function(n){var s=this,a=t,i=t;return s.$helper("gvars"),a=n.$children()["$[]"](0).$to_s()["$[]"](c(1,-1,!1)),i=s.$scope().$new_temp(),o(["~","!"]["$include?"](a))?s.$push("("+i+" = ",s.$expr(n)," || true)"):s.$push("("+i+" = $gvars["+a.$inspect()+"], "+i+" != null)"),i}),n(l,"$compile_defined_back_ref",function(){var s=this,n=t;return s.$helper("gvars"),n=s.$scope().$new_temp(),s.$push("("+n+" = $gvars['~'], "+n+" != null && "+n+" !== nil)"),n}),n(l,"$compile_defined_nth_ref",function(){var s=this,n=t;return s.$helper("gvars"),n=s.$scope().$new_temp(),s.$push("("+n+" = $gvars['~'], "+n+" != null && "+n+" != nil)"),n}),n(l,"$compile_defined_array",function(n){var o=this;return r(n.$children(),"each_with_index",[],function e(n,o){var i=e.$$s==null?this:e.$$s;return n==null&&(n=t),o==null&&(o=t),s(o,0)||i.$push(" && "),i.$compile_defined(n)},{$$s:o})})}(m[0],p("Base"))}(m[0],m)}(l[0],l)},Opal.modules["opal/nodes/masgn"]=function(e){var a=e.module,m=e.klass,l=e.const_set,s=e.send,o=e.eqeq,n=e.truthy,i=e.def,d=e.rb_ge,u=e.not,r=e.rb_plus,h=e.top,c=[],t=e.nil;return e.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"),h.$require("opal/nodes/base"),function(c,h){var p=a(c,"Opal"),f=[p].concat(h);return function(c,h){var p=a(c,"Nodes"),f=[p].concat(h),g=e.$r(f);return function(a,c,h){var f=m(a,c,"MassAssignNode"),p=[f].concat(h),g=e.$r(p);return l(p[0],"SIMPLE_ASSIGNMENT",["lvasgn","ivasgn","lvar","gvasgn","cdecl","casgn"].$freeze()),f.$handle("masgn"),f.$children("lhs","rhs"),i(f,"$compile",function(){var i=this;return s(i,"with_temp",[],function e(i){var a=e.$$s==null?this:e.$$s,r=t;return i==null&&(i=t),o(a.$rhs().$type(),"array")?(a.$push(""+i+" = ",a.$expr(a.$rhs())),r=n(s(a.$rhs().$children(),"any?",[],function(n){return n==null&&(n=t),n.$type()["$=="]("splat")}))?t:a.$rhs().$children().$size(),a.$compile_masgn(a.$lhs().$children(),i,r),a.$push(", "+i)):(a.$helper("to_ary"),s(a,"with_temp",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s.$push(""+n+" = ",s.$expr(s.$rhs())),s.$push(", "+i+" = $to_ary("+n+")"),s.$compile_masgn(s.$lhs().$children(),i),s.$push(", "+n)},{$$s:a}))},{$$s:i})}),i(f,"$compile_masgn",function(i,a,r){var c=this,u=t,h=t,m=t,d=t,l=t;return r==null&&(r=t),u=s(i,"take_while",[],function(n){return n==null&&(n=t),n.$type()["$!="]("splat")}),h=i.$drop(u.$size()),s(u,"each_with_index",[],function e(n,s){var o=e.$$s==null?this:e.$$s;return n==null&&(n=t),s==null&&(s=t),o.$compile_assignment(n,a,s,r)},{$$s:c}),n(h["$empty?"]())?t:(m=h.$shift(),n(h["$empty?"]())?n(d=m.$children()["$[]"](0))?(c.$helper("slice"),d=d.$dup()["$<<"](c.$s("js_tmp","$slice("+a+", "+u.$size()+")")),c.$push(", "),c.$push(c.$expr(d))):t:(l=c.$scope().$new_temp(),c.$push(", "+l+" = "+a+".length - "+h.$size()),c.$push(", "+l+" = ("+l+" < "+u.$size()+") ? "+u.$size()+" : "+l),n(d=m.$children()["$[]"](0))&&(c.$helper("slice"),d=d.$dup()["$<<"](c.$s("js_tmp","$slice("+a+", "+u.$size()+", "+l+")")),c.$push(", "),c.$push(c.$expr(d))),s(h,"each_with_index",[],function e(n,s){var i=e.$$s==null?this:e.$$s;return n==null&&(n=t),s==null&&(s=t),o(s,0)?i.$compile_assignment(n,a,l):i.$compile_assignment(n,a,""+l+" + "+s)},{$$s:c}),c.$scope().$queue_temp(l)))},-3),i(f,"$compile_assignment",function(s,i,a,c){var l=this,m=t,h=t,f=t;if(c==null&&(c=t),m=u(c)||n(d(a,c))?l.$s("js_tmp","("+i+"["+a+"] == null ? nil : "+i+"["+a+"])"):l.$s("js_tmp",""+i+"["+a+"]"),h=s.$updated(),n(g("SIMPLE_ASSIGNMENT")["$include?"](s.$type())))h=h.$updated(t,r(h.$children(),[m]));else if(o(s.$type(),"send"))h=h.$updated(t,r(h.$children(),[m]));else if(o(s.$type(),"attrasgn"))h.$last()["$<<"](m);else if(o(s.$type(),"mlhs"))return l.$helper("to_ary"),f=l.$scope().$new_temp(),l.$push(", ("+f+" = $to_ary("+m.$children()["$[]"](0)+")"),l.$compile_masgn(s.$children(),f),l.$push(")"),l.$scope().$queue_temp(f),t;else l.$raise("Bad child node in masgn LHS: "+s+". LHS: "+l.$lhs());return l.$push(", "),l.$push(l.$expr(h))},-4)}(f[0],g("Base"),f)}(f[0],f)}(c[0],c)},Opal.modules["opal/nodes/arglist"]=function(e){var s=e.module,a=e.klass,o=e.send,t=e.truthy,r=e.to_a,c=e.def,l=e.top,i=[],n=e.nil;return e.add_stubs("require,handle,each,children,==,type,expr,empty?,<<,fragment,push"),l.$require("opal/nodes/base"),function(i,l){var u=s(i,"Opal"),d=[u].concat(l);return function(i,l){var u=s(i,"Nodes"),d=[u].concat(l),h=e.$r(d);return function(e,s){var i=a(e,s,"ArglistNode");return i.$handle("arglist"),c(i,"$compile",function(){var a=this,s=n,i=n,l=n,c=[[],[]];return s=c[0],i=c[1],c,o(a.$children(),"each",[],function e(o){var a=e.$$s==null?this:e.$$s,c=n,r=n;return o==null&&(o=n),c=o.$type()["$=="]("splat"),r=a.$expr(o),t(c)?(t(i["$empty?"]())?t(s["$empty?"]())?s["$<<"](r):s["$<<"](a.$fragment(".concat("))["$<<"](r)["$<<"](a.$fragment(")")):(t(s["$empty?"]())?s["$<<"](a.$fragment("["))["$<<"](i)["$<<"](a.$fragment("]")):s["$<<"](a.$fragment(".concat(["))["$<<"](i)["$<<"](a.$fragment("])")),s["$<<"](a.$fragment(".concat("))["$<<"](r)["$<<"](a.$fragment(")"))),i=[]):(t(i["$empty?"]())||i["$<<"](a.$fragment(", ")),i["$<<"](r))},{$$s:a}),t(i["$empty?"]())||(l=i,t(s["$empty?"]())?s=l:s["$<<"](a.$fragment(".concat(["))["$<<"](l)["$<<"](a.$fragment("])"))),o(a,"push",r(s))})}(d[0],h("Base"))}(d[0],d)}(i[0],i)},Opal.modules["opal/nodes/x_string"]=function(e){var r=e.module,m=e.klass,n=e.truthy,s=e.def,i=e.send,d=e.to_a,a=e.defs,l=e.lambda,o=e.eqeq,u=e.not,h=e.range,c=[],t=e.nil;return e.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(c,f){var g=r(c,"Opal"),p=[g].concat(f);return function(c,f){var g=r(c,"Nodes"),p=[g].concat(f),v=e.$r(p);return function(r,c,f){var p=m(r,c,"XStringNode"),b=[p].concat(f),g=e.$r(b),v=p.$$prototype;return v.level=v.should_add_semicolon=v.returning=t,p.$handle("xstr"),s(p,"$compile",function(){var t=this;return n(t.$compiler()["$backtick_javascript_or_warn?"]())?t.$compile_javascript():t.$compile_send()}),s(p,"$compile_send",function(){var n=this,s=t,s=n.$s("send",t,"`",i(n,"s",["dstr"].concat(d(n.$children()))));return n.$push(n.$process(s,n.level))}),s(p,"$compile_javascript",function(){var s=this,o=t,a=t;return s.should_add_semicolon=!1,o=s.$unpack_return(s.$children()),a=g("XStringNode").$strip_empty_children(o),n(g("XStringNode")["$single_line?"](a))?s.$compile_single_line(a):i(o,"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s.$compile_child(n)},{$$s:s}),n(s["$recv?"]())&&s.$wrap("(",")"),n(s.should_add_semicolon)?s.$push(";"):t}),a(p,"$single_line?",function(s){var o=t;return n(o=s.$size()["$=="](1))?o:i(s,"none?",[],function(s){var o=t;return s==null&&(s=t),n(o=s.$type()["$=="]("str"))?s.$loc().$expression().$source()["$end_with?"](`
`):o})}),a(p,"$strip_empty_children",function(s){var i=t,o=t;for(s=s.$dup(),i=l(function(s){var o=t,i=t;return s==null&&(s=t),n(o=s["$nil?"]())?o:n(i=s.$type()["$=="]("str"))?s.$loc().$expression().$source().$rstrip()["$empty?"]():i});n(n(o=s["$any?"]())?i["$[]"](s.$first()):o);)s.$shift();for(;n(n(o=s["$any?"]())?i["$[]"](s.$last()):o);)s.$pop();return s}),p.$private(),s(p,"$compile_child",function(s){var o=this,i=t;switch(s.$type().valueOf()){case"str":return i=s.$loc().$expression().$source(),n(i["$include?"]("self"))&&o.$scope().$self(),o.$push(g("Fragment").$new(i,o.$scope(),s));case"begin":case"gvar":case"ivar":case"nil":return o.$push(o.$expr(s));default:return o.$raise("Unsupported xstr part: "+s.$type())}}),s(p,"$compile_single_line",function(s){var a=this,d=t,r=t,h=t,l=t,m=t,c=t,f=t,d=!1,r=s.$shift(),h=s["$empty?"](),r=n(l=r)?l:a.$s("nil");return o(r.$type(),"str")&&(m=r.$loc().$expression().$source().$strip(),d=m["$=~"](/^return\b/)),n(a.returning)&&u(d)&&a.$push("return "),c=n(l=s.$pop())?l:r,o(c.$type(),"str")&&(f=a.$extract_last_value(c)),n(h)||(a.should_add_semicolon=!1,a.$compile_child(r),i(s,"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s.$compile_child(n)},{$$s:a})),o(c.$type(),"str")?a.$push(g("Fragment").$new(f,a.$scope(),c)):a.$compile_child(c)}),s(p,"$extract_last_value",function(s){var o=this,i=t,i=s.$loc().$expression().$source().$rstrip();return n(i["$include?"]("self"))&&o.$scope().$self(),(n(o.returning)||n(o["$expr?"]()))&&n(i["$end_with?"](";"))&&(o.$compiler().$warning("Removed semicolon ending x-string expression, interpreted as unintentional",s.$line()),i=i["$[]"](h(0,-2,!1))),n(o.returning)&&(o.should_add_semicolon=!0),i}),s(p,"$unpack_return",function(n){var i=this,s=t,s=n.$first();return i.returning=!1,o(s.$type(),"js_return")&&(i.returning=!0,n=s.$children()),n})}(p[0],v("Base"),p)}(p[0],p)}(c[0],c)},Opal.modules["opal/nodes/lambda"]=function(e){var t=e.module,s=e.klass,o=e.send,i=e.def,a=e.top,n=[],r=e.nil;return e.add_stubs("require,handle,children,helper,defines_lambda,scope,push,expr,iter"),a.$require("opal/nodes/call"),function(n,a){var c=t(n,"Opal"),r=[c].concat(a);return function(n,a){var c=t(n,"Nodes"),r=[c].concat(a),l=e.$r(r);return function(e,t){var n=s(e,t,"LambdaNode");return n.$handle("lambda"),n.$children("iter"),i(n,"$compile",function(){var t=this;return t.$helper("lambda"),o(t.$scope(),"defines_lambda",[],function e(){var t=e.$$s==null?this:e.$$s;return t.$push("$lambda(",t.$expr(t.$iter()),")")},{$$s:t})})}(r[0],l("Base"))}(r[0],r)}(n[0],n)},Opal.modules["opal/nodes"]=function(e){var t=e.top,n=e.nil;return e.add_stubs("require"),t.$require("opal/nodes/closure"),t.$require("opal/nodes/base"),t.$require("opal/nodes/literal"),t.$require("opal/nodes/variables"),t.$require("opal/nodes/constants"),t.$require("opal/nodes/call"),t.$require("opal/nodes/call_special"),t.$require("opal/nodes/module"),t.$require("opal/nodes/class"),t.$require("opal/nodes/singleton_class"),t.$require("opal/nodes/args"),t.$require("opal/nodes/args/arity_check"),t.$require("opal/nodes/iter"),t.$require("opal/nodes/def"),t.$require("opal/nodes/defs"),t.$require("opal/nodes/if"),t.$require("opal/nodes/logic"),t.$require("opal/nodes/definitions"),t.$require("opal/nodes/yield"),t.$require("opal/nodes/rescue"),t.$require("opal/nodes/super"),t.$require("opal/nodes/top"),t.$require("opal/nodes/while"),t.$require("opal/nodes/hash"),t.$require("opal/nodes/array"),t.$require("opal/nodes/defined"),t.$require("opal/nodes/masgn"),t.$require("opal/nodes/arglist"),t.$require("opal/nodes/x_string"),t.$require("opal/nodes/lambda")},Opal.modules["opal/eof_content"]=function(e){var a=e.module,r=e.klass,c=e.const_set,s=e.def,n=e.truthy,l=e.send,d=e.range,u=e.eqeq,o=e.to_ary,i=[],t=e.nil;return e.add_stubs("empty?,[],last_token_position,drop_while,lines,match?,!,start_with?,join,==,private,last,end_pos"),function(i,h){var f=a(i,"Opal"),m=[f].concat(h);return function(i,a,h){var m=r(i,a,"EofContent"),p=[m].concat(h),f=m.$$prototype;return f.tokens=f.source=t,c(p[0],"DATA_SEPARATOR",`__END__
`),s(m,"$initialize",function(t,n){var s=this;return s.tokens=t,s.source=n}),s(m,"$eof",function(){var i=this,o=t,a=t;return n(i.tokens["$empty?"]())?t:(o=i.source["$[]"](e.Range.$new(i.$last_token_position(),-1,!1)),n(o)?(o=l(o.$lines(),"drop_while",[],function(s){var o=t;return s==null&&(s=t),n(o=/^.*\r?\n?$/["$match?"](s))?s["$start_with?"]("__END__")["$!"]():o}),n(/^__END__\r?\n?$/["$match?"](o["$[]"](0)))?(o=n(a=o["$[]"](d(1,-1,!1)))?a:[],o.$join()):u(o,["__END__"])?"":t):t)}),m.$private(),s(m,"$last_token_position",function(){var c=this,i=t,a=t,r=t,s=c.tokens.$last(),n=o(s);return i=n[0]==null?t:n[0],a=n[1]==null?t:n[1],s,s=a,n=o(s),i=n[0]==null?t:n[0],r=n[1]==null?t:n[1],s,r.$end_pos()})}(m[0],null,m)}(i[0],i)},Opal.modules["opal/errors"]=function(e){var l=e.module,s=e.klass,h=e.send2,u=e.find_super,o=e.def,n=e.truthy,r=e.defs,i=e.rb_plus,d=e.alias,a=e.send,c=[],t=e.nil,m=e.$$$;return e.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(c,f){var v=l(c,"Opal"),p=[v].concat(f),g=e.$r(p);return s(p[0],g("StandardError"),"Error"),function(e,n){var i=s(e,n,"GemNotFound");return i.$attr_reader("gem_name"),o(i,"$initialize",function e(n){var o=e.$$p||t,s=this;return e.$$p=null,s.gem_name=n,h(s,u(s,"initialize",e,!1,!0),"initialize",["can't find gem "+n],null)})}(p[0],g("Error")),function(e,t){var n=s(e,t,"CompilationError");return n.$attr_accessor("location")}(p[0],g("Error")),s(p[0],g("CompilationError"),"ParsingError"),s(p[0],g("ParsingError"),"RewritingError"),function(e,t){var n=s(e,t,"SyntaxError");return n.$attr_accessor("location")}(p[0],m("SyntaxError")),r(v,"$opal_location_from_error",function(s){var o=t,o=g("OpalBacktraceLocation").$new();return n(s["$respond_to?"]("location"))&&o["$location="](s.$location()),n(s["$respond_to?"]("diagnostic"))&&o["$diagnostic="](s.$diagnostic()),o}),r(v,"$add_opal_location_to_error",function(n,s){var o=t,o=s.$backtrace().$to_a();return o.$unshift(n.$to_s()),s.$set_backtrace(o),s}),function(e,r){var c=s(e,r,"OpalBacktraceLocation");return c.$attr_accessor("path","lineno","label"),o(c,"$initialize",function(n,s,o){var i,a=this;return n==null&&(n=t),s==null&&(s=t),o==null&&(o=t),i=[n,s,o],a.path=i[0],a.lineno=i[1],a.label=i[2],i},-1),o(c,"$to_s",function(){var o=this,s=t,s=o.$path();return n(o.$lineno())&&(s=i(s,":"+o.$lineno())),s=i(s,":in "),n(o.$label())?s=i(s,"`"+o.$label()+"'"):s=i(s,"unknown"),s}),d(c,"line","lineno"),o(c,"$diagnostic=",function(s){var o,i=this;return n(s)?(o=[s.$location()],a(i,"location=",o),o[o.length-1]):t}),o(c,"$location=",function(s){var o,i=this;return n(s)?(i["$lineno="](s.$line()),n(s["$respond_to?"]("source_line"))?(o=[s.$source_line()],a(i,"label=",o),o[o.length-1]):n(s["$respond_to?"]("expression"))?(o=[s.$expression().$source_line()],a(i,"label=",o),o[o.length-1]):t):t})}(p[0],null)}(c[0],c)},Opal.modules["opal/magic_comments"]=function(e){var r=e.module,o=e.const_set,n=e.truthy,s=e.send,c=e.rb_ge,i=e.eqeqeq,l=e.defs,a=[],d=e.$r(a),t=e.nil;return e.add_stubs("freeze,line,loc,take,each,>=,any?,scan,text,[]=,to_sym,==="),function(a,d){var h=r(a,"MagicComments"),u=[h].concat(d),m=e.$r(u);return o(u[0],"MAGIC_COMMENT_RE",/^# *(\w+) *: *(\S+.*?) *$/.$freeze()),o(u[0],"EMACS_MAGIC_COMMENT_RE",/^# *-\*- *(\w+) *: *(\S+.*?) *-\*- *$/.$freeze()),l(h,"$parse",function(o,a){var l=t,r=t,l=new Map;return n(o)&&(r=o.$loc().$line(),a=a.$take(r)),s(a,"each",[],function(o){var a=t;return o==null&&(o=t),n(r)&&n(c(o.$loc().$line(),r))?t:n((a=o.$text().$scan(m("MAGIC_COMMENT_RE")))["$any?"]())||n((a=o.$text().$scan(m("EMACS_MAGIC_COMMENT_RE")))["$any?"]())?s(a,"each",[],function(n,o){var a,r=t;return n==null&&(n=t),o==null&&(o=t),(a=[n.$to_sym(),i("true",r=o)||(!i("false",r)&&o)],s(l,"[]=",a),a[a.length-1])}):t}),l})}(d("Opal"),a)},Opal.modules["opal/source_map/map"]=function(e){var r=e.module,o=e.truthy,t=e.def,c=e.send,l=e.slice,d=e.to_ary,i=e.top,a=[],u=e.$r(a),n=e.nil,s=e.$$$;return e.add_stubs("require,map,to_h,to_json,each,[],delete,to_s,encode64,generated_code"),i.$require("base64"),i.$require("json"),function(i,a){var u=r(i,"Map"),m=[u].concat(a),h=e.$r(m);return t(u,"$to_h",function(){var t=this,s=n;return t.to_h==null&&(t.to_h=n),o(s=t.to_h)?s:t.$map()}),t(u,"$to_json",function(){var i=this,o=n;try{return o=i.$to_h(),o.$to_json()}catch(t){if(e.rescue(t,[s(h("Encoding"),"UndefinedConversionError")]))try{return c(o["$[]"]("sections"),"each",[],function(i){i==null&&(i=n);try{return i.$to_json()}catch(t){if(e.rescue(t,[s(h("Encoding"),"UndefinedConversionError")]))try{return o["$[]"]("sections").$delete(i)}finally{e.pop_exception(t)}else throw t}}),o.$to_json()}finally{e.pop_exception(t)}else throw t}}),t(u,"$as_json",function(){var s=this,n=l(arguments),o=n;return s.$to_h()},-1),t(u,"$to_s",function(){var t=this;return t.$to_h().$to_s()}),t(u,"$to_data_uri_comment",function(){var t=this;return"//# sourceMappingURL=data:application/json;base64,"+h("Base64").$encode64(t.$to_json()).$delete(`
`)}),t(u,"$cache",function(){var t=this,s=n;return t.to_h==null&&(t.to_h=n),t.to_h=o(s=t.to_h)?s:t.$map(),t}),t(u,"$marshal_dump",function(){var t=this;return[t.$to_h(),t.$generated_code()]}),t(u,"$marshal_load",function(t){var s,o,i=this;return o=t,s=d(o),i.to_h=s[0]==null?n:s[0],i.generated_code=s[1]==null?n:s[1],o})}(s(u("Opal"),"SourceMap"),a)},Opal.modules["opal/source_map/file"]=function(e){var g=e.klass,s=e.send,o=e.def,n=e.truthy,c=e.ensure_kwargs,p=e.hash_get,m=e.eqeq,a=e.rb_minus,l=e.rb_lt,d=e.to_ary,u=e.rb_plus,h=e.not,r=[],f=e.$r(r),t=e.nil,i=e.$$$;return e.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(r,f,v){var b=g(r,f,"File"),_=[b].concat(v),y=e.$r(_),j=b.$$prototype;return j.generated_code=j.fragments=j.names=j.names_map=j.relative_mappings=j.absolute_mappings=t,b.$include(i(i(y("Opal"),"SourceMap"),"Map")),b.$attr_reader("fragments"),b.$attr_reader("file"),b.$attr_reader("source"),o(b,"$initialize",function(n,o,i,a){var r=this;return a==null&&(a=t),r.fragments=n,r.file=o,r.source=i,r.names_map=s(y("Hash"),"new",[],function(n,o){var i;return n==null&&(n=t),o==null&&(o=t),(i=[o,n.$size()],s(n,"[]=",i),i[i.length-1])}),r.generated_code=a,r.absolute_mappings=t},-4),o(b,"$generated_code",function(){var o=this,i=t;return o.generated_code=n(i=o.generated_code)?i:s(o.fragments,"map",[],"code".$to_proc()).$join()}),o(b,"$map",function(t){var s,n=this;return t=c(t),s=p(t,"source_root"),s==null&&(s=""),new Map([["version",3],["sourceRoot",s],["sources",[n.$file()]],["sourcesContent",[m(n.$source().$encoding(),i(y("Encoding"),"UTF_8"))?n.$source():n.$source().$encode("UTF-8",new Map([["undef","replace"]]))]],["names",n.$names()],["mappings",i(i(y("Opal"),"SourceMap"),"VLQ").$encode_mappings(n.$relative_mappings())]])},-1),o(b,"$names",function(){var o=this,i=t;return o.names=n(i=o.names)?i:(o.$absolute_mappings(),s(s(o.names_map.$to_a(),"sort_by",[],function(n,s){return n==null&&(n=t),s==null&&(s=t),s}),"map",[],function(n,s){return n==null&&(n=t),s==null&&(s=t),n}))}),o(b,"$segment_from_fragment",function(o,i){var d,u=this,h=t,c=t,r=t,m=t,f=t,h=0,c=a(n(r=o.$line())?r:0,1);return n(l(c,0))&&(c=0),m=n(r=o.$column())?r:0,n(o.$source_map_name())?(f=n(r=u.names_map["$[]"](o.$source_map_name().$to_s()))?r:(d=[o.$source_map_name().$to_s(),u.names_map.$size()],s(u.names_map,"[]=",d),d[d.length-1]),[i,h,c,m,f]):[i,h,c,m]}),o(b,"$relative_mappings",function(){var i=this,c=t,o=t,r=t;return i.relative_mappings=n(c=i.relative_mappings)?c:(o=[0,0,0,0,0],r=0,s(i.$absolute_mappings(),"map",[],function(i){return i==null&&(i=t),o["$[]="](0,0),s(i,"map",[],function(s){var c=t,i=t;return s==null&&(s=t),c=[],c["$[]="](0,a(s["$[]"](0),o["$[]"](0))),c["$[]="](1,a(s["$[]"](1),n(i=o["$[]"](1))?i:0)),c["$[]="](2,a(s["$[]"](2),n(i=o["$[]"](2))?i:0)),c["$[]="](3,a(s["$[]"](3),n(i=o["$[]"](3))?i:0)),n(s["$[]"](4))&&(c["$[]="](4,a(s["$[]"](4).$to_int(),(n(i=o["$[]"](4))?i:r).$to_int())),r=s["$[]"](4)),o=s,c})}))}),o(b,"$absolute_mappings",function(){var o=this,r=t,a=t;return o.absolute_mappings=n(r=o.absolute_mappings)?r:(a=[],s(o.$fragments_by_line(),"each",[],function e(o){var l=e.$$s==null?this:e.$$s,r=t,c=t;return o==null&&(o=t),r=0,c=[],s(o,"each",[],function e(s){var o,l,m=e.$$s==null?this:e.$$s,h=t,a=t;return s==null&&(s=t),l=s,o=d(l),h=o[0]==null?t:o[0],a=o[1]==null?t:o[1],l,n(a["$is_a?"](i(y("Opal"),"Fragment")))&&n(a["$skip_source_map?"]())||c["$<<"](m.$segment_from_fragment(a,r)),r=u(r,h.$size())},{$$s:l,$$has_top_level_mlhs_arg:!0}),a["$<<"](c)},{$$s:o}),a)}),b.$private(),o(b,"$fragments_by_line",function(){var i=this,o=t,o=[[]];return s(i.$fragments(),"flat_map",[],function(i){var a=t,r=t,c=t;return i==null&&(i=t),a=i.$code(),r=n(/\r/["$match?"](a))?/\r?\n/:`
`,c=a.$split(r,-1),s(c.$each(),"with_index",[],function(s,a){var r=t;return s==null&&(s=t),a==null&&(a=t),r=[s,i],n(a["$zero?"]())&&h(s.$size()["$zero?"]())?o.$last()["$<<"](r):n(a["$zero?"]())&&n(s.$size()["$zero?"]())?t:n(s.$size()["$zero?"]())?o["$<<"]([]):o["$<<"]([r])})}),o})}(i(f("Opal"),"SourceMap"),null,r)},Opal.modules["opal/source_map/index"]=function(e){var a=e.klass,r=e.ensure_kwargs,c=e.hash_get,o=e.def,l=e.send,d=e.truthy,n=e.rb_plus,i=[],u=e.$r(i),t=e.nil,s=e.$$$;return e.add_stubs("include,attr_reader,map,to_h,generated_code,+,count,[],rindex,size"),function(i,u,h){var m=a(i,u,"Index"),f=[m].concat(h),p=e.$r(f),g=m.$$prototype;return g.source_maps=t,m.$include(s(s(p("Opal"),"SourceMap"),"Map")),m.$attr_reader("source_maps"),o(m,"$initialize",function(n,s){var o,i=this;return s=r(s),o=c(s,"join"),o==null&&(o=t),i.source_maps=n,i.join=o},-2),o(m,"$map",function(){var a=this,o=t,i=t,o=0,i=0;return new Map([["version",3],["sections",l(a.source_maps,"map",[],function s(a){var c=s.$$s==null?this:s.$$s,l=t,r=t,u=t,h=t;return c.join==null&&(c.join=t),a==null&&(a=t),l=new Map([["offset",new Map([["line",o],["column",i]])],["map",a.$to_h()]]),r=a.$generated_code(),d(c.join)&&(r=n(r,c.join)),u=r.$count(`
`),h=r["$[]"](e.Range.$new(n(r.$rindex(`
`),1),-1,!1)),o=n(o,u),i=n(i,h.$size()),l},{$$s:a})]])})}(s(u("Opal"),"SourceMap"),null,i)},Opal.modules["opal/source_map/vlq"]=function(e){var m=e.module,s=e.const_set,p=e.rb_minus,n=e.send,h=e.range,o=e.truthy,d=e.rb_lt,a=e.rb_plus,c=e.rb_gt,u=e.thrower,i=e.defs,l=e.eqeq,r=[],f=e.$r(r),t=e.nil,g=e.$$$;return e.add_stubs("<<,-,split,inject,[]=,[],each,<,+,-@,loop,&,>>,>,|,join,any?,shift,raise,==,map,encode,each_with_index,decode"),function(r,f){var b=m(r,"VLQ"),v=[b].concat(f),g=e.$r(v);return s(v[0],"VLQ_BASE_SHIFT",5),s(v[0],"VLQ_BASE",1["$<<"](g("VLQ_BASE_SHIFT"))),s(v[0],"VLQ_BASE_MASK",p(g("VLQ_BASE"),1)),s(v[0],"VLQ_CONTINUATION_BIT",g("VLQ_BASE")),s(v[0],"BASE64_DIGITS","ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".$split("")),s(v[0],"BASE64_VALUES",n(h(0,64,!0),"inject",[new Map],function(n,s){return n==null&&(n=t),s==null&&(s=t),n["$[]="](g("BASE64_DIGITS")["$[]"](s),s),n})),i(b,"$encode",function(s){var r=this,i=t,i=[];return n(s,"each",[],function e(s){var l=e.$$s==null?this:e.$$s,r=t;return s==null&&(s=t),r=o(d(s,0))?a(s["$-@"]()["$<<"](1),1):s["$<<"](1),function(){try{var e=u("break");return n(l,"loop",[],function n(){var s=t,s=r["$&"](g("VLQ_BASE_MASK"));if(r=r["$>>"](g("VLQ_BASE_SHIFT")),o(c(r,0))&&(s=s["$|"](g("VLQ_CONTINUATION_BIT"))),i["$<<"](g("BASE64_DIGITS")["$[]"](s)),o(c(r,0)))return t;e.$throw(t,n.$$is_lambda)})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}()},{$$s:r}),i.$join()}),i(b,"$decode",function(n){for(var m=this,c=t,d=t,s=t,r=t,u=t,h=t,i=t,c=[],d=n.$split("");o(d["$any?"]());){for(s=0,r=0,u=!0;o(u);)h=d.$shift(),o(h)||m.$raise(g("ArgumentError")),i=g("BASE64_VALUES")["$[]"](h),l(i["$&"](g("VLQ_CONTINUATION_BIT")),0)&&(u=!1),i=i["$&"](g("VLQ_BASE_MASK")),s=a(s,i["$<<"](r)),r=a(r,g("VLQ_BASE_SHIFT"));c["$<<"](l(s["$&"](1),1)?s["$>>"](1)["$-@"]():s["$>>"](1))}return c}),i(b,"$encode_mappings",function(s){var o=this;return n(s,"map",[],function e(s){var o=e.$$s==null?this:e.$$s;return s==null&&(s=t),n(s,"map",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s.$encode(n)},{$$s:o}).$join(",")},{$$s:o}).$join(";")}),i(b,"$decode_mappings",function(s){var i=this,o=t,o=[];return n(s.$split(";"),"each_with_index",[],function e(s,i){var a=e.$$s==null?this:e.$$s;return s==null&&(s=t),i==null&&(i=t),o["$[]="](i,[]),n(s.$split(","),"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),o["$[]"](i)["$<<"](s.$decode(n))},{$$s:a})},{$$s:i}),o})}(g(f("Opal"),"SourceMap"),r)},Opal.modules["opal/source_map"]=function(e){var t=e.module,n=[],s=e.nil;return e.add_stubs("autoload"),function(e,n){var s=t(e,"Opal"),o=[s].concat(n);return function(e){var n=t(e,"SourceMap");return n.$autoload("Map","opal/source_map/map"),n.$autoload("File","opal/source_map/file"),n.$autoload("Index","opal/source_map/index"),n.$autoload("VLQ","opal/source_map/vlq")}(o[0])}(n[0],n)},Opal.modules["opal/compiler"]=function(e){var _=e.module,u=e.defs,w=e.klass,h=e.const_set,i=e.send,s=e.truthy,f=e.not,n=e.def,c=e.eqeqeq,l=e.Opal,g=e.to_ary,O=e.alias,b=e.regexp,j=e.rb_minus,y=e.return_ivar,d=e.slice,m=e.rb_plus,r=e.to_a,p=e.eqeq,a=e.top,v=[],t=e.nil,o=e.$$$;return e.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"),a.$require("corelib/string/unpack"),a.$require("set"),a.$require("opal/parser"),a.$require("opal/fragment"),a.$require("opal/nodes"),a.$require("opal/eof_content"),a.$require("opal/errors"),a.$require("opal/magic_comments"),a.$require("opal/nodes/closure"),a.$require("opal/source_map"),function(a,v){var C=_(a,"Opal"),x=[C].concat(v),E=e.$r(x);return u(C,"$compile",function(t,n){return n==null&&(n=new Map),E("Compiler").$new(t,n).$compile()},-2),function(a,v,_){var x=w(a,v,"Compiler"),k=[x].concat(_),C=e.$r(k),E=x.$$prototype;return E.option_values=E.options=E.magic_comments=E.backtick_javascript_warned=E.fragments=E.buffer=E.source=E.source_map=E.result=E.helpers=E.method_calls=E.async_await=E.unique=E.indent=E.scope=E.case_stmt=E.handlers=E.requires=E.required_trees=E.autoloads=t,x.$include(o(o(C("Nodes"),"Closure"),"CompilerSupport")),h(k[0],"INDENT"," "),h(k[0],"COMPARE",["<",">","<=",">="].$freeze()),u(x,"$module_name",function(t){var n=this;return t=C("File").$join(C("File").$dirname(t),C("File").$basename(t).$split(".").$first()),n.$Pathname(t).$cleanpath().$to_s()}),u(x,"$compiler_option",function(n,s){var o=this,a=t;return s==null&&(s=new Map),a=s.$fetch("as",n),i(o,"define_method",[a],function e(){var t=e.$$s==null?this:e.$$s;return t.$option_value(n,s)},{$$s:o})},-2),n(x,"$option_value",function(n,o){var c,a=this,d=t,l=t,u=t,r=t;return s(a.option_values["$key?"](n))?a.option_values["$[]"](n):(d=o["$[]"]("default"),l=o["$[]"]("valid_values"),u=o["$[]"]("magic_comment"),r=a.options.$fetch(n,d),s(u)&&s(a.magic_comments["$key?"](n))&&(r=a.magic_comments.$fetch(n)),s(l)&&f(l["$include?"](r))&&a.$raise(C("ArgumentError"),""+("invalid value "+r.$inspect()+" for option "+n.$inspect()+" ")+("(valid values: "+l.$inspect()+")")),(c=[n,r],i(a.option_values,"[]=",c),c[c.length-1]))}),x.$compiler_option("file",new Map([["default","(file)"]])),x.$compiler_option("method_missing",new Map([["default",!0],["as","method_missing?"]])),x.$compiler_option("arity_check",new Map([["default",!1],["as","arity_check?"]])),x.$compiler_option("freezing",new Map([["default",!0],["as","freezing?"]])),x.$compiler_option("irb",new Map([["default",!1],["as","irb?"]])),x.$compiler_option("dynamic_require_severity",new Map([["default","ignore"],["valid_values",["error","warning","ignore"]]])),x.$compiler_option("requirable",new Map([["default",!1],["as","requirable?"]])),x.$compiler_option("load",new Map([["default",!1],["as","load?"]])),x.$compiler_option("esm",new Map([["default",!1],["as","esm?"]])),x.$compiler_option("no_export",new Map([["default",!1],["as","no_export?"]])),x.$compiler_option("inline_operators",new Map([["default",!0],["as","inline_operators?"]])),x.$compiler_option("eval",new Map([["default",!1],["as","eval?"]])),x.$compiler_option("enable_source_location",new Map([["default",!1],["as","enable_source_location?"]])),x.$compiler_option("enable_file_source_embed",new Map([["default",!1],["as","enable_file_source_embed?"]])),x.$compiler_option("use_strict",new Map([["default",!1],["as","use_strict?"],["magic_comment",!0]])),x.$compiler_option("parse_comments",new Map([["default",!1],["as","parse_comments?"]])),x.$compiler_option("backtick_javascript",new Map([["default",t],["as","backtick_javascript?"],["magic_comment",!0]])),n(x,"$backtick_javascript_or_warn?",function(){var n=this,o=t,i=t;return!!c(!0,o=n["$backtick_javascript?"]())||(c(t,o)?(n.backtick_javascript_warned=s(i=n.backtick_javascript_warned)?i:(n.$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):!c(!1,o)&&t)}),x.$compiler_option("scope_variables",new Map([["default",[]]])),x.$compiler_option("await",new Map([["default",!1],["as","async_await"],["magic_comment",!0]])),x.$attr_reader("result"),x.$attr_reader("fragments"),x.$attr_accessor("scope"),x.$attr_accessor("top_scope"),x.$attr_reader("case_stmt"),x.$attr_reader("eof_content"),x.$attr_reader("comments"),x.$attr_reader("method_calls"),x.$attr_reader("magic_comments"),x.$attr_reader("source"),x.$attr_accessor("dynamic_cache_result"),n(x,"$initialize",function(n,s){var o=this;return s==null&&(s=new Map),o.source=n,o.indent="",o.unique=0,o.options=s,o.comments=C("Hash").$new([]),o.case_stmt=t,o.method_calls=C("Set").$new(),o.option_values=new Map,o.magic_comments=new Map,o.dynamic_cache_result=!1},-2),n(x,"$compile",function(){var n=this;return n.$parse(),n.fragments=i(n,"re_raise_with_location",[],function e(){var n=e.$$s==null?this:e.$$s;return n.sexp==null&&(n.sexp=t),n.$process(n.sexp).$flatten()},{$$s:n}),s(n.fragments.$last().$code()["$end_with?"](`
`))||n.fragments["$<<"](n.$fragment(`
`,t,n.$s("newline"))),n.result=i(n.fragments,"map",[],"code".$to_proc()).$join("")}),n(x,"$parse",function(){var a,c,n=this,r=t,d=t,h=t,m=t,u=t;return n.buffer=o(o(l,"Parser"),"SourceBuffer").$new(n.$file(),1),n.buffer["$source="](n.source),n.parser=o(C("Opal"),"Parser").$default_parser(),c=i(n,"re_raise_with_location",[],function e(){var n=e.$$s==null?this:e.$$s;return n.parser==null&&(n.parser=t),n.buffer==null&&(n.buffer=t),n.parser.$tokenize(n.buffer)},{$$s:n}),a=g(c),r=a[0]==null?t:a[0],d=a[1]==null?t:a[1],h=a[2]==null?t:a[2],c,m=s(n["$requirable?"]())?"require":s(n["$eval?"]())?"eval":"main",n.sexp=i(r,"tap",[],function(n){var s;return n==null&&(n=t),(s=["kind",m],i(n.$meta(),"[]=",s),s[s.length-1])}),s(r.$children().$first().$location())&&(u=r.$children().$first()),n.comments=o(o(o("Parser"),"Source"),"Comment").$associate_locations(u,d),n.magic_comments=C("MagicComments").$parse(u,d),n.eof_content=C("EofContent").$new(h,n.source).$eof()}),n(x,"$source_map",function(){var n=this,i=t;return s(i=n.source_map)?i:o(o(l,"SourceMap"),"File").$new(n.fragments,n.$file(),n.source,n.result)}),n(x,"$helpers",function(){var n=this,o=t;return n.helpers=s(o=n.helpers)?o:C("Set").$new(i(n.$magic_comments()["$[]"]("helpers").$to_s().$split(","),"map",[],function(n){return n==null&&(n=t),n.$strip().$to_sym()}))}),n(x,"$record_method_call",function(t){var n=this;return n.method_calls["$<<"](t)}),O(x,"async_await_before_typecasting","async_await"),n(x,"$async_await",function(){var r,n=this,a=t,o=t;return s((r=n.async_await,r!=null&&r!==t?"instance-variable":t))?n.async_await:(a=n.$async_await_before_typecasting(),n.async_await=c(C("String"),o=a)?n.$async_await_set_to_regexp(i(a.$split(","),"map",[],function(n){return n==null&&(n=t),n.$strip().$to_sym()})):c(C("Array"),o)||c(C("Set"),o)?n.$async_await_set_to_regexp(i(a.$to_a(),"map",[],"to_sym".$to_proc())):c(C("Regexp"),o)||c(!0,o)||c(!1,o)?a:n.$raise("A value of await compiler option can be either a Set, an Array, a String or a Boolean."))}),n(x,"$async_await_set_to_regexp",function(n){return n=i(n,"map",[],function(n){return n==null&&(n=t),C("Regexp").$escape(n.$to_s()).$gsub("\\*",".*?")}),n=n.$join("|"),b(["^(",n,")$"])}),n(x,"$error",function(n,s){var a=this,i=t;return s==null&&(s=t),i=o(l,"SyntaxError").$new(n),i["$location="](o(C("Opal"),"OpalBacktraceLocation").$new(a.$file(),s)),a.$raise(i)},-2),n(x,"$re_raise_with_location",function n(){var u=n.$$p||t,c=this,a=t,i=t,d=t,r=t;n.$$p=null;try{return e.yieldX(u,[])}catch(t){if(e.rescue(t,[C("StandardError"),o(l,"SyntaxError")])){a=t;try{return i=l.$opal_location_from_error(a),i["$path="](c.$file()),s(d=i.$label())?d:i["$label="](c.source.$lines()["$[]"](j(i.$line().$to_i(),1)).$strip()),r=o(l,"SyntaxError").$new(a.$message()),r.$set_backtrace(a.$backtrace()),l.$add_opal_location_to_error(i,r),c.$raise(r)}finally{e.pop_exception(t)}}else throw t}}),n(x,"$warning",function(n,s){var o=this;return s==null&&(s=t),o.$warn("warning: "+n+" -- "+o.$file()+":"+s)},-2),n(x,"$parser_indent",y("indent")),n(x,"$s",function(t){var s=d(arguments,1),i=s;return o(o(l,"AST"),"Node").$new(t,i)},-2),n(x,"$fragment",function(n,s,o){return o==null&&(o=t),C("Fragment").$new(n,s,o)},-3),n(x,"$unique_temp",function(n){var o=this,i=t;return n=n.$to_s(),s(n)&&f(n["$empty?"]())&&(n=n.$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$]/,"$")),i=o.unique=m(o.unique,1),""+(s(n["$start_with?"]("$"))?t:"$")+n+"$"+i}),n(x,"$helper",function(t){var n=this;return n.$helpers()["$<<"](t)}),n(x,"$indent",function n(){var a=n.$$p||t,s=this,o=t,i=t;return n.$$p=null,o=s.indent,s.indent=m(s.indent,C("INDENT")),s.space=`
`+s.indent,i=e.yieldX(a,[]),s.indent=o,s.space=`
`+s.indent,i}),n(x,"$with_temp",function n(){var a=n.$$p||t,o=this,s=t,i=t;return n.$$p=null,s=o.scope.$new_temp(),i=e.yield1(a,s),o.scope.$queue_temp(s),i}),n(x,"$in_while",function n(){var o=n.$$p||t,s=this,i=t;return n.$$p=null,o!==t?(s.while_loop=s.scope.$push_while(),i=e.yieldX(o,[]),s.scope.$pop_while(),i):t}),n(x,"$in_case",function n(){var o=n.$$p||t,s=this,i=t;return n.$$p=null,o!==t?(i=s.case_stmt,s.case_stmt=new Map,e.yieldX(o,[]),s.case_stmt=i):t}),n(x,"$in_while?",function(){var t=this;return t.scope["$in_while?"]()}),n(x,"$process",function(n,o){var i=this,a=t;return o==null&&(o="expr"),s(n["$nil?"]())?i.$fragment("",i.$scope()):s(a=i.$handlers()["$[]"](n.$type()))?a.$new(n,o,i).$compile_to_fragments():i.$error("Unsupported sexp: "+n.$type())},-2),n(x,"$handlers",function(){var n=this,i=t;return n.handlers=s(i=n.handlers)?i:o(o(C("Opal"),"Nodes"),"Base").$handlers()}),n(x,"$requires",function(){var n=this,o=t;return n.requires=s(o=n.requires)?o:[]}),n(x,"$required_trees",function(){var n=this,o=t;return n.required_trees=s(o=n.required_trees)?o:[]}),n(x,"$autoloads",function(){var n=this,o=t;return n.autoloads=s(o=n.autoloads)?o:[]}),n(x,"$returns",function(n){var o,a,c=this,g=t,f=t,m=t,u=t,l=t,h=t,v=t,b=t,j=t,y=t,_=t,w=t,O=t,x=t,C=t;if(!s(n))return c.$returns(c.$s("nil"));switch(n.$type().valueOf()){case"undef":return c.$returns(n.$updated("begin",[n,c.$s("nil")]));case"break":case"next":case"redo":case"retry":return n;case"yield":return n.$updated("returnable_yield",t);case"when":return o=[].concat(r(n)),a=o.length-1,a=a<0?0:a,g=d(o,0,a),f=o[a]==null?t:o[a],o,n.$updated(t,[].concat(r(g)).concat([c.$returns(f)]));case"rescue":return o=[].concat(r(n)),m=o[0]==null?t:o[0],a=o.length-1,a=a<1?1:a,u=d(o,1,a),l=o[a]==null?t:o[a],o,u=i(u,"map",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s.$returns(n)},{$$s:c}),s(l)&&(l=c.$returns(l)),n.$updated(t,[c.$returns(m)].concat(r(u)).concat([l]));case"resbody":return o=[].concat(r(n)),h=o[0]==null?t:o[0],v=o[1]==null?t:o[1],b=o[2]==null?t:o[2],o,n.$updated(t,[h,v,c.$returns(b)]);case"ensure":return o=[].concat(r(n)),j=o[0]==null?t:o[0],y=o[1]==null?t:o[1],o,n=n.$updated(t,[c.$returns(j),y]),n.$updated("js_return",[n]);case"begin":case"kwbegin":return o=[].concat(r(n)),a=o.length-1,a=a<0?0:a,_=d(o,0,a),w=o[a]==null?t:o[a],o,n.$updated(t,[].concat(r(_)).concat([c.$returns(w)]));case"while":case"until":case"while_post":case"until_post":return n;case"return":case"js_return":case"returnable_yield":return n;case"xstr":return s(c["$backtick_javascript_or_warn?"]())?n.$updated(t,[i(c,"s",["js_return"].concat(r(n.$children())))]):n;break;case"if":return o=[].concat(r(n)),O=o[0]==null?t:o[0],x=o[1]==null?t:o[1],C=o[2]==null?t:o[2],o,i(n.$updated(t,[O,c.$returns(x),c.$returns(C)]),"tap",[],function(n){var s;return n==null&&(n=t),(s=["returning",!0],i(n.$meta(),"[]=",s),s[s.length-1])});default:return p(n.$type(),"send")&&p(n.$children()["$[]"](1),"debugger")?n.$updated("begin",[n,c.$s("js_return",c.$s("nil"))]):n.$updated("js_return",[n])}}),n(x,"$handle_block_given_call",function(n){var o=this,i=t;return o.scope["$uses_block!"](),s(o.scope.$block_name())?o.$fragment("("+o.scope.$block_name()+" !== nil)",o.$scope(),n):s(i=o.scope.$find_parent_def())&&s(i.$block_name())?o.$fragment("("+i.$block_name()+" !== nil)",i,n):o.$fragment("false",i,n)}),n(x,"$marshal_dump",function(){var n=this,o=t;return[n.options,n.option_values,n.source_map=s(o=n.source_map)?o:n.$source_map().$cache(),n.magic_comments,n.result,n.required_trees,n.requires,n.autoloads]}),n(x,"$marshal_load",function(n){var s,i,o=this;return i=n,s=g(i),o.options=s[0]==null?t:s[0],o.option_values=s[1]==null?t:s[1],o.source_map=s[2]==null?t:s[2],o.magic_comments=s[3]==null?t:s[3],o.result=s[4]==null?t:s[4],o.required_trees=s[5]==null?t:s[5],o.requires=s[6]==null?t:s[6],o.autoloads=s[7]==null?t:s[7],i})}(x[0],null,x)}(v[0],v)},Opal.modules["opal/erb"]=function(e){var s=e.module,r=e.defs,c=e.klass,l=e.const_set,t=e.def,o=e.truthy,d=e.rb_plus,i=e.send,u=e.regexp,h=e.top,a=[],n=e.nil;return e.add_stubs("require,compile,new,freeze,fix_quotes,find_contents,find_code,wrap_compiled,require_erb,prepared_source,gsub,+,last_match,=~,sub"),h.$require("opal/compiler"),function(a,h){var f=s(a,"Opal"),m=[f].concat(h);return function(a,h){var f=s(a,"ERB"),m=[f].concat(h),p=e.$r(m);return r(f,"$compile",function(t,n){return n==null&&(n="(erb)"),p("Compiler").$new(t,n).$compile()},-2),function(s,a,r){var h=c(s,a,"Compiler"),p=[h].concat(r),m=e.$r(p),f=h.$$prototype;return f.prepared_source=f.source=f.file_name=n,l(p[0],"BLOCK_EXPR",/\s+(do|\{)(\s*\|[^|]*\|)?\s*Z/.$freeze()),t(h,"$initialize",function(t,n){var s,o=this;return n==null&&(n="(erb)"),s=[t,n,t],o.source=s[0],o.file_name=s[1],o.result=s[2],s},-2),t(h,"$prepared_source",function(){var s=this,i=n,t=n;return s.prepared_source=o(i=s.prepared_source)?i:(t=s.source,t=s.$fix_quotes(t),t=s.$find_contents(t),t=s.$find_code(t),t=s.$wrap_compiled(t),t=s.$require_erb(t),t)}),t(h,"$compile",function(){var t=this;return m("Opal").$compile(t.$prepared_source())}),t(h,"$fix_quotes",function(t){return t.$gsub('"','\\"')}),t(h,"$require_erb",function(t){return d('require "erb";',t)}),t(h,"$find_contents",function(t){return i(t,"gsub",[/<%=([\s\S]+?)%>/],function(){var t=n,t=m("Regexp").$last_match(1).$gsub(/\\'/,"'").$gsub(/\\"/,'"');return o(t["$=~"](m("BLOCK_EXPR")))?`")
output_buffer.append= `+t+`
output_buffer.append("`:`")
output_buffer.append=(`+t+`)
output_buffer.append("`})}),t(h,"$find_code",function(t){return i(t,"gsub",[/<%([\s\S]+?)%>/],function(){var t=n,t=m("Regexp").$last_match(1).$gsub(/\\"/,'"');return`")
`+t+`
output_buffer.append("`})}),t(h,"$wrap_compiled",function(t){var o=this,s=n,s=o.file_name.$sub(u(["\\.opalerb",m("REGEXP_END")]),"");return"Template.new('"+s+`') do |output_buffer|
output_buffer.append("`+t+`")
output_buffer.join
end
`})}(m[0],null,m)}(m[0],m)}(a[0],a)},Opal.modules["opal-parser"]=function(e){var m,l=e.call,p=e.raise,d=e.module,i=e.Opal,s=e.truthy,c=e.rb_plus,a=e.def,f=e.thrower,n=e.top,o=[],u=e.$r(o),t=e.nil,h=e.$$$;e.add_stubs("require,coerce_to!,merge,new,compile,[],+,to_data_uri_comment,source_map,js_eval"),n.$require("corelib/string/unpack"),n.$require("opal/compiler"),n.$require("opal/erb"),n.$require("opal/version"),function(n,o){var r=d(n,"Kernel"),u=[r].concat(o),l=e.$r(u);return a(r,"$eval",function(n,o,a,r){var g=this,f=t,p=t,u=t,m=t,d=t;return o==null&&(o=t),a==null&&(a=t),r==null&&(r=t),n=i["$coerce_to!"](n,l("String"),"to_str"),f=new Map([["file",s(p=a)?p:"(eval)"],["eval",!0]]),u=new Map([["arity_check",!1]]).$merge(f),m=h(l("Opal"),"Compiler").$new(n,u),d=m.$compile(),s(u["$[]"]("no_source_map"))||(d=c(d,m.$source_map().$to_data_uri_comment())),s(o)?o.$js_eval(d):function(){return eval(d)}(g)},-2),a(r,"$require_remote",function(n){try{var o,i=this,s=new XMLHttpRequest;return s.open("GET",n,!1),s.send(""),(o=s.responseText,typeof e.compile=="function"?eval(e.compile(o,{scope_variables:["url"],arity_check:!1,file:"(eval)",eval:!0})):i.$eval(o))}catch(t){if(t===e.t_eval_return)return t.$v;throw t}})}(o[0],o),m=Object.hasOwn||l.bind(Object.prototype.hasOwnProperty),e.compile=function(t,n){try{return t=i["$coerce_to!"](t,u("String"),"to_str"),n&&(n=e.hash(n)),e.Opal.$compile(t,n)}catch(t){if(t.$$class===e.Opal.SyntaxError){var s=e.SyntaxError.$new(t.message);throw s.$set_backtrace(t.$backtrace()),s}throw t}},e.eval=function(t,n){return eval(e.compile(t,n))};function r(){for(var t,s=document.getElementsByTagName("script"),n=0,o=s.length;n<o;n++)t=s[n],t.type==="text/ruby"&&(t.src&&e.Kernel.$require_remote(t.src),t.innerHTML&&e.Kernel.$eval(t.innerHTML))}typeof document!="undefined"&&(window.addEventListener?window.addEventListener("DOMContentLoaded",r,!1):window.attachEvent("onload",r))},Opal.modules["opal-platform"]=function(e){var f=e.const_set,n=e.truthy,h=[],t=e.nil,m=t,o=t,s=t,i=t,a=t,r=t,c=t,l=t,d=t,u=t,m=typeof document!="undefined",o=typeof Deno=="object"&&typeof Deno.version=="object",s=typeof process!="undefined"&&process.versions&&process.versions.node,i=typeof Java!="undefined"&&Java.type,a=typeof opalheadlesschrome!="undefined",r=typeof opalheadlessfirefox!="undefined",c=typeof opalsafari!="undefined",l=typeof window!="undefined"&&typeof GjsFileImporter!="undefined",d=typeof window=="undefined"&&typeof __loadScript!="undefined",u=typeof opalminiracer!="undefined";return f(h[0],"OPAL_PLATFORM",n(i)?"nashorn":n(o)?"deno":n(s)?"nodejs":n(a)?"headless-chrome":n(r)?"headless-firefox":n(c)?"safari":n(l)?"gjs":n(d)?"quickjs":n(u)?"opal-miniracer":t)},Opal.modules.thread=function(e){var i=e.klass,o=e.truthy,l=e.defs,f=e.slice,t=e.def,r=e.send,u=e.Opal,a=e.alias,c=e.return_ivar,m=e.const_set,h=e.assign_ivar_val,s=[],d=e.$r(s),n=e.nil,p=e.$$$;return e.add_stubs("allocate,core_initialize!,current,raise,[],coerce_key_name,[]=,key?,keys,private,coerce_to!,clear,empty?,size,shift,push,each,to_proc,pop,=~,last_match,to_i,inspect,attr_reader,path,locked?,lock,unlock"),i(s[0],d("StandardError"),"ThreadError"),function(s,d,h){var m=i(s,d,"Thread"),p=[m].concat(h),g=e.$r(p),v=m.$$prototype;return v.fiber_locals=v.thread_locals=n,l(m,"$current",function(){var t=this;return t.current==null&&(t.current=n),o(t.current)||(t.current=t.$allocate(),t.current["$core_initialize!"]()),t.current}),l(m,"$list",function(){var t=this;return[t.$current()]}),t(m,"$initialize",function(){var s=this,n=f(arguments),o=n;return s.$raise(g("NotImplementedError"),"Thread creation not available")},-1),t(m,"$[]",function(t){var n=this;return n.fiber_locals["$[]"](n.$coerce_key_name(t))}),t(m,"$[]=",function(t,n){var s,o=this;return s=[o.$coerce_key_name(t),n],r(o.fiber_locals,"[]=",s),s[s.length-1]}),t(m,"$key?",function(t){var n=this;return n.fiber_locals["$key?"](n.$coerce_key_name(t))}),t(m,"$keys",function(){var t=this;return t.fiber_locals.$keys()}),t(m,"$thread_variable_get",function(t){var n=this;return n.thread_locals["$[]"](n.$coerce_key_name(t))}),t(m,"$thread_variable_set",function(t,n){var s,o=this;return s=[o.$coerce_key_name(t),n],r(o.thread_locals,"[]=",s),s[s.length-1]}),t(m,"$thread_variable?",function(t){var n=this;return n.thread_locals["$key?"](n.$coerce_key_name(t))}),t(m,"$thread_variables",function(){var t=this;return t.thread_locals.$keys()}),m.$private(),t(m,"$core_initialize!",function(){var t=this;return t.thread_locals=new Map,t.fiber_locals=new Map}),t(m,"$coerce_key_name",function(t){return u["$coerce_to!"](t,g("String"),"to_s")}),function(s,c,l){var d=i(s,c,"Queue"),h=[d].concat(l),u=e.$r(h),m=d.$$prototype;return m.storage=n,t(d,"$initialize",function(){var t=this;return t.$clear()}),t(d,"$clear",function(){var t=this;return t.storage=[]}),t(d,"$empty?",function(){var t=this;return t.storage["$empty?"]()}),t(d,"$size",function(){var t=this;return t.storage.$size()}),t(d,"$pop",function(t){var n=this;return t==null&&(t=!1),o(n["$empty?"]())&&(o(t)&&n.$raise(u("ThreadError"),"Queue empty"),n.$raise(u("ThreadError"),"Deadlock")),n.storage.$shift()},-1),t(d,"$push",function(t){var n=this;return n.storage.$push(t)}),t(d,"$each",function e(){var t=e.$$p||n,s=this;return e.$$p=null,r(s.storage,"each",[],t.$to_proc())}),a(d,"<<","push"),a(d,"deq","pop"),a(d,"enq","push"),a(d,"length","size"),a(d,"shift","pop")}(p[0],null,p),function(s,r,l){var u=i(s,r,"Backtrace"),d=[u].concat(l);return function(s,r,l){var d=i(s,r,"Location"),m=[d].concat(l),u=e.$r(m),h=d.$$prototype;return h.label=h.str=n,t(d,"$initialize",function(t){var s=this,i=n;return s.str=t,t["$=~"](/^(.*?):(\d+):(\d+):in `(.*?)'$/),s.path=u("Regexp").$last_match(1),s.label=u("Regexp").$last_match(4),s.lineno=u("Regexp").$last_match(2).$to_i(),s.label["$=~"](/(\w+)$/),s.base_label=o(i=u("Regexp").$last_match(1))?i:s.label}),t(d,"$to_s",c("str")),t(d,"$inspect",function(){var t=this;return t.str.$inspect()}),d.$attr_reader("base_label","label","lineno","path"),a(d,"absolute_path","path")}(d[0],null,d)}(p[0],null,p)}(s[0],null,s),m(s[0],"Queue",p(d("Thread"),"Queue")),function(s,a,r){var l=i(s,a,"Mutex"),u=[l].concat(r),d=e.$r(u),m=l.$$prototype;return m.locked=n,t(l,"$initialize",h("locked",!1)),t(l,"$lock",function(){var t=this;return o(t.locked)&&t.$raise(d("ThreadError"),"Deadlock"),t.locked=!0,t}),t(l,"$locked?",c("locked")),t(l,"$owned?",c("locked")),t(l,"$try_lock",function(){var t=this;return!o(t["$locked?"]())&&(t.$lock(),!0)}),t(l,"$unlock",function(){var t=this;return o(t.locked)||t.$raise(d("ThreadError"),"Mutex not locked"),t.locked=!1,t}),t(l,"$synchronize",function t(){var o=t.$$p||n,s=this;return t.$$p=null,s.$lock(),function(){try{return e.yieldX(o,[])}finally{s.$unlock()}}()})}(s[0],null,s)},Opal.modules.stringio=function(e){var h=e.klass,j=e.const_set,b=e.defs,g=e.send2,p=e.find_super,s=e.def,c=e.eqeqeq,o=e.truthy,u=e.rb_ge,l=e.rb_gt,n=e.rb_plus,d=e.rb_minus,m=e.return_ivar,f=e.eqeq,a=e.alias,r=[],v=e.$r(r),t=e.nil,i=e.$$$;return e.add_stubs("new,call,close,attr_accessor,check_readable,==,length,===,>=,raise,>,+,-,seek,check_writable,String,[],eof?,write,read,tell"),function(r,v,y){var _=h(r,v,"StringIO"),O=[_].concat(y),w=e.$r(O),x=_.$$prototype;return x.position=x.string=t,j(O[0],"VERSION","0"),b(_,"$open",function e(n,s){var a=e.$$p||t,r=this,o=t,i=t;return e.$$p=null,n==null&&(n=""),s==null&&(s=t),o=r.$new(n,s),i=a.$call(o),o.$close(),i},-1),_.$attr_accessor("string"),s(_,"$initialize",function e(n,s){var i=e.$$p||t,o=this;return e.$$p=null,n==null&&(n=""),s==null&&(s="rw"),o.string=n,o.position=0,g(o,p(o,"initialize",e,!1,!0),"initialize",[t,s],null)},-1),s(_,"$eof?",function(){var t=this;return t.$check_readable(),t.position["$=="](t.string.$length())}),s(_,"$seek",function(s,a){var r=this,h=t;return a==null&&(a=i(w("IO"),"SEEK_SET")),r.read_buffer="",c(i(w("IO"),"SEEK_SET"),h=a)?(o(u(s,0))||r.$raise(i(w("Errno"),"EINVAL")),r.position=s):c(i(w("IO"),"SEEK_CUR"),h)?o(l(n(r.position,s),r.string.$length()))?r.position=r.string.$length():r.position=n(r.position,s):c(i(w("IO"),"SEEK_END"),h)?o(l(s,r.string.$length()))?r.position=0:r.position=d(r.position,s):t,0},-2),s(_,"$tell",m("position")),s(_,"$rewind",function(){var t=this;return t.$seek(0)}),s(_,"$write",function(o){var i=this,a=t,r=t;return i.$check_writable(),i.read_buffer="",o=i.$String(o),f(i.string.$length(),i.position)?(i.string=n(i.string,o),i.position=n(i.position,o.$length())):(a=i.string["$[]"](e.Range.$new(0,d(i.position,1),!1)),r=i.string["$[]"](e.Range.$new(n(i.position,o.$length()),-1,!1)),i.string=n(n(a,o),r),i.position=n(i.position,o.$length()))}),s(_,"$read",function(i,a){var r=this,d=t,c=t;return i==null&&(i=t),a==null&&(a=t),r.$check_readable(),o(r["$eof?"]())?t:(d=o(i)?(c=r.string["$[]"](r.position,i),r.position=n(r.position,i),o(l(r.position,r.string.$length()))?r.position=r.string.$length():t,c):(c=r.string["$[]"](e.Range.$new(r.position,-1,!1)),r.position=r.string.$length(),c),o(a)?a.$write(d):d)},-1),s(_,"$sysread",function(t){var n=this;return n.$check_readable(),n.$read(t)}),a(_,"eof","eof?"),a(_,"pos","tell"),a(_,"pos=","seek"),a(_,"readpartial","read")}(r[0],v("IO"),r)},Opal.modules.prettyprint=function(e){var a=e.klass,o=e.send,u=e.rb_times,l=e.defs,s=e.truthy,n=e.def,c=e.rb_lt,i=e.rb_plus,r=e.rb_minus,h=e.eqeqeq,m=e.assign_ivar_val,f=e.return_ivar,p=e.slice,g=e.thrower,v=e.return_val,d=[],t=e.nil;return e.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(d,b,j){var y=a(d,b,"PrettyPrint"),O=[y].concat(j),_=e.$r(O),w=y.$$prototype;return w.group_stack=w.maxwidth=w.output_width=w.buffer_width=w.group_queue=w.buffer=w.output=w.newline=w.genspace=w.indent=t,l(_("PrettyPrint"),"$format",function n(s,i,a,r){var l=n.$$p||t,d=this,c=t;return n.$$p=null,s==null&&(s="".$dup()),i==null&&(i=79),a==null&&(a=`
`),r==null&&(r=o(d,"lambda",[],function(n){return n==null&&(n=t),u(" ",n)})),c=o(_("PrettyPrint"),"new",[s,i,a],r.$to_proc()),e.yield1(l,c),c.$flush(),s},-1),l(_("PrettyPrint"),"$singleline_format",function n(s,o,i,a){var c=n.$$p||t,r=t;return n.$$p=null,s==null&&(s="".$dup()),o==null&&(o=t),i==null&&(i=t),a==null&&(a=t),r=_("SingleLine").$new(s),e.yield1(c,r),s},-1),n(y,"$initialize",function e(n,i,a){var d=e.$$p||t,r=this,l=t,c=t;return e.$$p=null,n==null&&(n="".$dup()),i==null&&(i=79),a==null&&(a=`
`),r.output=n,r.maxwidth=i,r.newline=a,r.genspace=s(l=d)?l:o(r,"lambda",[],function(n){return n==null&&(n=t),u(" ",n)}),r.output_width=0,r.buffer_width=0,r.buffer=[],c=_("Group").$new(0),r.group_stack=[c],r.group_queue=_("GroupQueue").$new(c),r.indent=0},-1),y.$attr_reader("output"),y.$attr_reader("maxwidth"),y.$attr_reader("newline"),y.$attr_reader("genspace"),y.$attr_reader("indent"),y.$attr_reader("group_queue"),n(y,"$current_group",function(){var t=this;return t.group_stack.$last()}),n(y,"$break_outmost_groups",function(){for(var n=this,l=t,o=t,d=t,a=t;s(c(n.maxwidth,i(n.output_width,n.buffer_width)));){if(!s(l=n.group_queue.$deq()))return t;for(;!s(l.$breakables()["$empty?"]());)o=n.buffer.$shift(),n.output_width=o.$output(n.output,n.output_width),n.buffer_width=r(n.buffer_width,o.$width());for(;s(s(d=n.buffer["$empty?"]()["$!"]())?_("Text")["$==="](n.buffer.$first()):d);)a=n.buffer.$shift(),n.output_width=a.$output(n.output,n.output_width),n.buffer_width=r(n.buffer_width,a.$width())}}),n(y,"$text",function(n,o){var a=this,r=t;return o==null&&(o=n.$length()),s(a.buffer["$empty?"]())?(a.output["$<<"](n),a.output_width=i(a.output_width,o)):(r=a.buffer.$last(),h(_("Text"),r)||(r=_("Text").$new(),a.buffer["$<<"](r)),r.$add(n,o),a.buffer_width=i(a.buffer_width,o),a.$break_outmost_groups())},-2),n(y,"$fill_breakable",function(t,n){var s=this;return t==null&&(t=" "),n==null&&(n=t.$length()),o(s,"group",[],function e(){var s=e.$$s==null?this:e.$$s;return s.$breakable(t,n)},{$$s:s})},-1),n(y,"$breakable",function(n,o){var a=this,r=t;return n==null&&(n=" "),o==null&&(o=n.$length()),r=a.group_stack.$last(),s(r["$break?"]())?(a.$flush(),a.output["$<<"](a.newline),a.output["$<<"](a.genspace.$call(a.indent)),a.output_width=a.indent,a.buffer_width=0):(a.buffer["$<<"](_("Breakable").$new(n,o,a)),a.buffer_width=i(a.buffer_width,o),a.$break_outmost_groups())},-1),n(y,"$group",function n(s,i,a,r,c){var d=n.$$p||t,l=this;return n.$$p=null,s==null&&(s=0),i==null&&(i=""),a==null&&(a=""),r==null&&(r=i.$length()),c==null&&(c=a.$length()),l.$text(i,r),o(l,"group_sub",[],function t(){var n=t.$$s==null?this:t.$$s;return o(n,"nest",[s],function(){return e.yieldX(d,[])})},{$$s:l}),l.$text(a,c)},-1),n(y,"$group_sub",function n(){var r=n.$$p||t,o=this,a=t;return n.$$p=null,a=_("Group").$new(i(o.group_stack.$last().$depth(),1)),o.group_stack.$push(a),o.group_queue.$enq(a),function(){try{return e.yieldX(r,[])}finally{o.group_stack.$pop(),s(a.$breakables()["$empty?"]())?o.group_queue.$delete(a):t}}()}),n(y,"$nest",function n(s){var a=n.$$p||t,o=this;return n.$$p=null,o.indent=i(o.indent,s),function(){try{return e.yieldX(a,[])}finally{o.indent=r(o.indent,s)}}()}),n(y,"$flush",function(){var n=this;return o(n.buffer,"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return s.output==null&&(s.output=t),s.output_width==null&&(s.output_width=t),n==null&&(n=t),s.output_width=n.$output(s.output,s.output_width)},{$$s:n}),n.buffer.$clear(),n.buffer_width=0}),function(e,s){var r=a(e,s,"Text"),c=r.$$prototype;return c.objs=c.width=t,n(r,"$initialize",function(){var t=this;return t.objs=[],t.width=0}),r.$attr_reader("width"),n(r,"$output",function(n,s){var a=this;return o(a.objs,"each",[],function(s){return s==null&&(s=t),n["$<<"](s)}),i(s,a.width)}),n(r,"$add",function(t,n){var s=this;return s.objs["$<<"](t),s.width=i(s.width,n)})}(O[0],null),function(e,o){var r=a(e,o,"Breakable"),c=r.$$prototype;return c.group=c.pp=c.indent=c.obj=c.width=t,n(r,"$initialize",function(t,n,s){var o=this;return o.obj=t,o.width=n,o.pp=s,o.indent=s.$indent(),o.group=s.$current_group(),o.group.$breakables().$push(o)}),r.$attr_reader("obj"),r.$attr_reader("width"),r.$attr_reader("indent"),n(r,"$output",function(t,n){var o=this;return o.group.$breakables().$shift(),s(o.group["$break?"]())?(t["$<<"](o.pp.$newline()),t["$<<"](o.pp.$genspace().$call(o.indent)),o.indent):(s(o.group.$breakables()["$empty?"]())&&o.pp.$group_queue().$delete(o.group),t["$<<"](o.obj),i(n,o.width))})}(O[0],null),function(e,o){var i=a(e,o,"Group");return n(i,"$initialize",function(t){var n=this;return n.depth=t,n.breakables=[],n.break=!1}),i.$attr_reader("depth"),i.$attr_reader("breakables"),n(i,"$break",m("break",!0)),n(i,"$break?",f("break")),n(i,"$first?",function(){var n,o=this;return!s((n=o.first,n!=null&&n!==t?"instance-variable":t))&&(o.first=!1,!0)})}(O[0],null),function(e,i){var l=a(e,i,"GroupQueue"),d=l.$$prototype;return d.queue=t,n(l,"$initialize",function(){var s=this,i=p(arguments),a=i;return s.queue=[],o(a,"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s.$enq(n)},{$$s:s})},-1),n(l,"$enq",function(n){for(var o=this,i=t,i=n.$depth();!s(c(i,o.queue.$length()));)o.queue["$<<"]([]);return o.queue["$[]"](i)["$<<"](n)}),n(l,"$deq",function(){try{var n=g("return"),i=this;return o(i.queue,"each",[],function(i){return i==null&&(i=t),o(r(i.$length(),1),"downto",[0],function e(o){var a=t;if(o==null&&(o=t),s(i["$[]"](o).$breakables()["$empty?"]()))return t;a=i["$slice!"](o,1).$first(),a.$break(),n.$throw(a,e.$$is_lambda)},{$$ret:n}),o(i,"each",[],function(n){return n==null&&(n=t),n.$break()}),i.$clear()}),t}catch(e){if(e===n)return e.$v;throw e}finally{n.is_orphan=!0}}),n(l,"$delete",function(t){var n=this;return n.queue["$[]"](t.$depth()).$delete(t)})}(O[0],null),function(s,o){var i=a(s,o,"SingleLine"),r=i.$$prototype;return r.output=r.first=t,n(i,"$initialize",function(n,s,o){var i=this;return s==null&&(s=t),o==null&&(o=t),i.output=n,i.first=[!0]},-2),n(i,"$text",function(n,s){var o=this;return s==null&&(s=t),o.output["$<<"](n)},-2),n(i,"$breakable",function(n,s){var o=this;return n==null&&(n=" "),s==null&&(s=t),o.output["$<<"](n)},-1),n(i,"$nest",function n(){var o=n.$$p||t;return n.$$p=null,e.yieldX(o,[])}),n(i,"$group",function n(s,o,i,a,r){var l=n.$$p||t,c=this;return n.$$p=null,s==null&&(s=t),o==null&&(o=""),i==null&&(i=""),a==null&&(a=t),r==null&&(r=t),c.first.$push(!0),c.output["$<<"](o),e.yieldX(l,[]),c.output["$<<"](i),c.first.$pop()},-1),n(i,"$flush",v(t)),n(i,"$first?",function(){var n=this,s=t,s=n.first["$[]"](-1);return n.first["$[]="](-1,!1),s})}(O[0],null)}(d[0],null,d)},Opal.modules.pp=function(e){var r=e.klass,c=e.gvars,n=e.send,h=e.defs,f=e.slice,p=e.to_a,m=e.module,u=e.eqeq,s=e.def,o=e.truthy,g=e.rb_plus,_=e.eqeqeq,y=e.neqeq,j=e.not,b=e.rb_gt,v=e.rb_le,d=e.top,i=[],a=e.$r(i),t=e.nil,l=e.$$$;return e.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"),d.$require("thread"),d.$require("stringio"),d.$require("prettyprint"),function(i,a,d){var w=r(i,a,"PP"),v=[w].concat(d),b=e.$r(v);return h(b("PP"),"$pp",function(s,o,i){var a=t;return c.stdout==null&&(c.stdout=t),o==null&&(o=c.stdout),i==null&&(i=79),a=b("PP").$new(o,i),n(a,"guard_inspect_key",[],function(){return a.$pp(s)}),a.$flush(),o["$<<"](`
`)},-2),h(b("PP"),"$singleline_pp",function(s,o){var i=t;return c.stdout==null&&(c.stdout=t),o==null&&(o=c.stdout),i=b("SingleLine").$new(o),n(i,"guard_inspect_key",[],function(){return i.$pp(s)}),i.$flush(),o},-2),h(b("PP"),"$mcall",function e(s,o,i){var r,c,l=e.$$p||t;return e.$$p=null,r=f(arguments,3),c=r,n(o.$instance_method(i),"bind_call",[s].concat(p(c)),l.$to_proc())},-4),w.sharing_detection=!1,function(e){return e.$attr_accessor("sharing_detection")}(e.get_singleton_class(w),v),function(i,a){var c=m(i,"PPMethods"),d=[c].concat(a),r=e.$r(d);return s(c,"$guard_inspect_key",function s(){var o,a=s.$$p||t,i=t;return s.$$p=null,u(r("Thread").$current()["$[]"]("__recursive_key__"),t)&&r("Thread").$current()["$[]="]("__recursive_key__",(new Map).$compare_by_identity()),u(r("Thread").$current()["$[]"]("__recursive_key__")["$[]"]("inspect"),t)&&r("Thread").$current()["$[]"]("__recursive_key__")["$[]="]("inspect",(new Map).$compare_by_identity()),i=r("Thread").$current()["$[]"]("__recursive_key__")["$[]"]("inspect"),function(){try{return r("Thread").$current()["$[]"]("__recursive_key__")["$[]="]("inspect",(new Map).$compare_by_identity()),e.yieldX(a,[])}finally{o=["inspect",i],n(r("Thread").$current()["$[]"]("__recursive_key__"),"[]=",o),o[o.length-1]}}()}),s(c,"$check_inspect_key",function(n){var s=t,i=t;return o(s=o(i=r("Thread").$current()["$[]"]("__recursive_key__"))?r("Thread").$current()["$[]"]("__recursive_key__")["$[]"]("inspect"):i)?r("Thread").$current()["$[]"]("__recursive_key__")["$[]"]("inspect")["$include?"](n):s}),s(c,"$push_inspect_key",function(t){var s;return s=[t,!0],n(r("Thread").$current()["$[]"]("__recursive_key__")["$[]"]("inspect"),"[]=",s),s[s.length-1]}),s(c,"$pop_inspect_key",function(t){return r("Thread").$current()["$[]"]("__recursive_key__")["$[]"]("inspect").$delete(t)}),s(c,"$pp",function(s){var a,i=this;return s===null?(i.$text("null"),t):s===void 0?(i.$text("undefined"),t):s.$$class===void 0?(i.$text(Object.prototype.toString.apply(s)),t):(o((a=l("::","Delegator","skip_raise"))?"constant":t)&&o(s["$is_a?"](l("Delegator")))&&(s=s.$__getobj__()),o(i.$check_inspect_key(s))?(n(i,"group",[],function e(){var t=e.$$s==null?this:e.$$s;return s.$pretty_print_cycle(t)},{$$s:i}),t):function(){try{return i.$push_inspect_key(s),n(i,"group",[],function e(){var t=e.$$s==null?this:e.$$s;return s.$pretty_print(t)},{$$s:i})}finally{o(r("PP").$sharing_detection())?t:i.$pop_inspect_key(s)}}())},-1),s(c,"$object_group",function e(s){var o=e.$$p||t,i=this;return e.$$p=null,n(i,"group",[1,g("#<",s.$class().$name()),">"],o.$to_proc())}),s(c,"$object_address_group",function e(s){var i=e.$$p||t,a=this,o=t;return e.$$p=null,o=r("Kernel").$instance_method("to_s").$bind_call(s),o=o.$chomp(">"),n(a,"group",[1,o,">"],i.$to_proc())}),s(c,"$comma_breakable",function(){var t=this;return t.$text(","),t.$breakable()}),s(c,"$seplist",function s(i,a,r){var u=s.$$p||t,l=this,d=t,c=t;return s.$$p=null,a==null&&(a=t),r==null&&(r="each"),a=o(d=a)?d:n(l,"lambda",[],function e(){var t=e.$$s==null?this:e.$$s;return t.$comma_breakable()},{$$s:l}),c=!0,n(i,"__send__",[r],function(){var s=f(arguments),i=s;return o(c)?c=!1:a.$call(),e.yieldX(u,p(i))},-1)},-2),s(c,"$pp_object",function(s){var o=this;return n(o,"object_address_group",[s],function e(){var o=e.$$s==null?this:e.$$s;return n(o,"seplist",[s.$pretty_print_instance_variables(),n(o,"lambda",[],function e(){var t=e.$$s==null?this:e.$$s;return t.$text(",")},{$$s:o})],function e(o){var i=e.$$s==null?this:e.$$s;return o==null&&(o=t),i.$breakable(),_(r("Symbol"),o)&&(o=o.$to_s()),i.$text(o),i.$text("="),n(i,"group",[1],function e(){var t=e.$$s==null?this:e.$$s;return t.$breakable(""),t.$pp(s.$instance_eval(o))},{$$s:i})},{$$s:o})},{$$s:o})}),s(c,"$pp_hash",function(s){var o=this;return n(o,"group",[1,"{","}"],function e(){var o=e.$$s==null?this:e.$$s;return n(o,"seplist",[s,t,"each_pair"],function e(s,o){var i=e.$$s==null?this:e.$$s;return s==null&&(s=t),o==null&&(o=t),n(i,"group",[],function e(){var t=e.$$s==null?this:e.$$s;return t.$pp(s),t.$text("=>"),n(t,"group",[1],function e(){var t=e.$$s==null?this:e.$$s;return t.$breakable(""),t.$pp(o)},{$$s:t})},{$$s:i})},{$$s:o})},{$$s:o})})}(v[0],v),w.$include(b("PPMethods")),function(t,n,s){var o=r(t,n,"SingleLine"),i=[o].concat(s),a=e.$r(i);return o.$include(a("PPMethods"))}(v[0],l(b("PrettyPrint"),"SingleLine"),v),function(i,a){var c=m(i,"ObjectMixin"),d=[c].concat(a),r=e.$r(d);return s(c,"$pretty_print",function(s){var i=this,c=t,a=t,c=r("Object").$instance_method("method");try{a=c.$bind_call(i,"inspect")}catch(n){if(e.rescue(n,[r("NameError")]))try{t}finally{e.pop_exception(n)}else throw n}return o(a)&&y(a.$owner(),r("Kernel"))?s.$text(i.$inspect()):j(a)&&o(i["$respond_to?"]("inspect"))?s.$text(i.$inspect()):s.$pp_object(i)}),s(c,"$pretty_print_cycle",function(t){var s=this;return n(t,"object_address_group",[s],function(){return t.$breakable(),t.$text("...")})}),s(c,"$pretty_print_instance_variables",function(){var t=this;return t.$instance_variables().$sort()}),s(c,"$pretty_print_inspect",function(){var t=this;return u(r("Object").$instance_method("method").$bind_call(t,"pretty_print").$owner(),l(r("PP"),"ObjectMixin"))&&t.$raise("pretty_print is not overridden for "+t.$class()),r("PP").$singleline_pp(t,"".$dup())})}(v[0],v)}(i[0],a("PrettyPrint"),i),function(e,i){var a=r(e,i,"Array");return s(a,"$pretty_print",function(s){var o=this;return n(s,"group",[1,"[","]"],function e(){var o=e.$$s==null?this:e.$$s;return n(s,"seplist",[o],function(n){return n==null&&(n=t),s.$pp(n)})},{$$s:o})}),s(a,"$pretty_print_cycle",function(t){var n=this;return t.$text(o(n["$empty?"]())?"[]":"[...]")})}(i[0],null),function(e,t){var n=r(e,t,"Hash");return s(n,"$pretty_print",function(t){var n=this;return t.$pp_hash(n)}),s(n,"$pretty_print_cycle",function(t){var n=this;return t.$text(o(n["$empty?"]())?"{}":"{...}")})}(i[0],null),function(o,i){var r=[o].concat(i),a=e.$r(r);return s(o,"$pretty_print",function(s){var o=t,o=new Map;return n(a("ENV").$keys().$sort(),"each",[],function(s){var i;return s==null&&(s=t),(i=[s,a("ENV")["$[]"](s)],n(o,"[]=",i),i[i.length-1])}),s.$pp_hash(o)})}(e.get_singleton_class(a("ENV")),i),function(o,i,a){var l=r(o,i,"Struct"),d=[l].concat(a),c=e.$r(d);return s(l,"$pretty_print",function(s){var o=this;return n(s,"group",[1,o.$sprintf("#<struct %s",c("PP").$mcall(o,c("Kernel"),"class").$name()),">"],function e(){var o=e.$$s==null?this:e.$$s;return n(s,"seplist",[c("PP").$mcall(o,c("Struct"),"members"),n(o,"lambda",[],function(){return s.$text(",")})],function e(o){var i=e.$$s==null?this:e.$$s;return o==null&&(o=t),s.$breakable(),s.$text(o.$to_s()),s.$text("="),n(s,"group",[1],function e(){var t=e.$$s==null?this:e.$$s;return s.$breakable(""),s.$pp(t["$[]"](o))},{$$s:i})},{$$s:o})},{$$s:o})}),s(l,"$pretty_print_cycle",function(t){var n=this;return t.$text(n.$sprintf("#<struct %s:...>",c("PP").$mcall(n,c("Kernel"),"class").$name()))})}(i[0],null,i),function(e,n){var i=r(e,n,"Range");return s(i,"$pretty_print",function(n){var s=this;return n.$pp(s.$begin()),n.$breakable(""),n.$text(o(s["$exclude_end?"]())?"...":".."),n.$breakable(""),o(s.$end())?n.$pp(s.$end()):t})}(i[0],null),function(e,i){var a=r(e,i,"String");return s(a,"$pretty_print",function(s){var i=this,a=t,a=i.$lines();return o(b(a.$size(),1))?n(s,"group",[0,"",""],function e(){var o=e.$$s==null?this:e.$$s;return n(s,"seplist",[a,n(o,"lambda",[],function(){return s.$text(" +"),s.$breakable()})],function(n){return n==null&&(n=t),s.$pp(n)})},{$$s:i}):s.$text(i.$inspect())})}(i[0],null),function(i,a){var c=r(i,a,"MatchData");return s(c,"$pretty_print",function(i){var r=this,a=t,a=[];return n(r.$regexp().$named_captures(),"each",[],function(s,o){return s==null&&(s=t),o==null&&(o=t),n(o,"each",[],function(o){var i;return o==null&&(o=t),(i=[o,s],n(a,"[]=",i),i[i.length-1])})}),n(i,"object_group",[r],function s(){var r=s.$$s==null?this:s.$$s;return i.$breakable(),n(i,"seplist",[e.Range.$new(0,r.$size(),!0),n(r,"lambda",[],function(){return i.$breakable()})],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),u(n,0)?i.$pp(s["$[]"](n)):(o(a["$[]"](n))?i.$text(a["$[]"](n)):i.$pp(n),i.$text(":"),i.$pp(s["$[]"](n)))},{$$s:r})},{$$s:r})})}(i[0],null),function(t,n,s){var o=r(t,n,"Object"),i=[o].concat(s),a=e.$r(i);return o.$include(l(a("PP"),"ObjectMixin"))}(i[0],a("BasicObject"),i),n([a("Numeric"),a("Symbol"),a("FalseClass"),a("TrueClass"),a("NilClass"),a("Module")],"each",[],function e(o){var i=e.$$s==null?this:e.$$s;return o==null&&(o=t),n(o,"class_eval",[],function e(){var t=e.$$s==null?this:e.$$s;return s(t,"$pretty_print_cycle",function(t){var n=this;return t.$text(n.$inspect())})},{$$s:i})},{$$s:d}),n([a("Numeric"),a("FalseClass"),a("TrueClass"),a("Module")],"each",[],function e(o){var i=e.$$s==null?this:e.$$s;return o==null&&(o=t),n(o,"class_eval",[],function e(){var t=e.$$s==null?this:e.$$s;return s(t,"$pretty_print",function(t){var n=this;return t.$text(n.$inspect())})},{$$s:i})},{$$s:d}),function(i,a){var r=m(i,"Kernel"),l=[r].concat(a),c=e.$r(l);return s(r,"$pretty_inspect",function(){var t=this;return c("PP").$pp(t,c("StringIO").$new()).$string()}),s(r,"$pp",function(){var a=f(arguments),i=a;return n(i,"each",[],function(n){return n==null&&(n=t),c("PP").$pp(n)}),o(v(i.$size(),1))?i.$first():i},-1),r.$module_function("pp")}(i[0],i)},Opal.modules.promise=function(e){var h=e.klass,c=e.defs,r=e.slice,n=e.def,a=e.eqeqeq,s=e.truthy,y=e.return_ivar,b=e.not,o=e.send,d=e.to_a,f=e.rb_plus,i=e.alias,m=e.send2,u=e.find_super,p=e.rb_le,g=e.rb_minus,v=e.const_set,l=[],j=e.$r(l),t=e.nil;return e.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(l,v,j){var _=h(l,v,"Promise"),x=[_].concat(j),w=e.$r(x),O=_.$$prototype;return O.value=O.action=O.realized=O.next=O.delayed=O.error=O.prev=t,c(_,"$value",function(t){var n=this;return n.$new().$resolve(t)}),c(_,"$error",function(t){var n=this;return n.$new().$reject(t)}),c(_,"$when",function(){var n=r(arguments),s=n;return w("When").$new(s)},-1),_.$attr_reader("error","prev","next"),n(_,"$initialize",function(n){var s=this;return n==null&&(n=new Map),s.action=n,s.realized=!1,s.exception=!1,s.value=t,s.error=t,s.delayed=!1,s.prev=t,s.next=[]},-1),n(_,"$value",function(){var t=this;return a(w("Promise"),t.value)?t.value.$value():t.value}),n(_,"$act?",function(){var n=this,o=t;return s(o=n.action["$key?"]("success"))?o:n.action["$key?"]("always")}),n(_,"$action",function(){var t=this;return t.action.$keys()}),n(_,"$exception?",y("exception")),n(_,"$realized?",function(){var t=this;return t.realized["$!="](!1)}),n(_,"$resolved?",function(){var t=this;return t.realized["$=="]("resolve")}),n(_,"$rejected?",function(){var t=this;return t.realized["$=="]("reject")}),n(_,"$^",function(t){var n=this;return t["$<<"](n),n["$>>"](t),t}),n(_,"$<<",function(t){var n=this;return n.prev=t,n}),n(_,"$>>",function(t){var n=this;return n.next["$<<"](t),s(n["$exception?"]())?t.$reject(n.delayed["$[]"](0)):s(n["$resolved?"]())?t.$resolve(s(n.delayed)?n.delayed["$[]"](0):n.$value()):s(n["$rejected?"]())&&(b(n.action["$key?"]("failure"))||a(w("Promise"),s(n.delayed)?n.delayed["$[]"](0):n.error)?t.$reject(s(n.delayed)?n.delayed["$[]"](0):n.$error()):s(t.$action()["$include?"]("always"))&&t.$reject(s(n.delayed)?n.delayed["$[]"](0):n.$error())),n}),n(_,"$resolve",function(o){var i=this,r=t,c=t,l=t;if(o==null&&(o=t),s(i["$realized?"]())&&i.$raise(w("ArgumentError"),"the promise has already been realized"),a(w("Promise"),o))return o["$<<"](i.prev)["$^"](i);try{r=s(c=i.action["$[]"]("success"))?c:i.action["$[]"]("always"),s(r)&&(o=r.$call(o)),i["$resolve!"](o)}catch(t){if(e.rescue(t,[w("Exception")])){l=t;try{i["$exception!"](l)}finally{e.pop_exception(t)}}else throw t}return i},-1),n(_,"$resolve!",function(n){var i=this;return i.realized="resolve",i.value=n,s(i.next["$any?"]())?o(i.next,"each",[],function(s){return s==null&&(s=t),s.$resolve(n)}):i.delayed=[n]}),n(_,"$reject",function(o){var i=this,r=t,c=t,l=t;if(o==null&&(o=t),s(i["$realized?"]())&&i.$raise(w("ArgumentError"),"the promise has already been realized"),a(w("Promise"),o))return o["$<<"](i.prev)["$^"](i);try{r=s(c=i.action["$[]"]("failure"))?c:i.action["$[]"]("always"),s(r)&&(o=r.$call(o)),s(i.action["$key?"]("always"))?i["$resolve!"](o):i["$reject!"](o)}catch(t){if(e.rescue(t,[w("Exception")])){l=t;try{i["$exception!"](l)}finally{e.pop_exception(t)}}else throw t}return i},-1),n(_,"$reject!",function(n){var i=this;return i.realized="reject",i.error=n,s(i.next["$any?"]())?o(i.next,"each",[],function(s){return s==null&&(s=t),s.$reject(n)}):i.delayed=[n]}),n(_,"$exception!",function(t){var n=this;return n.exception=!0,n["$reject!"](t)}),n(_,"$then",function e(){var n=e.$$p||t,s=this;return e.$$p=null,s["$^"](w("Promise").$new(new Map([["success",n]])))}),n(_,"$then!",function e(){var s=e.$$p||t,n=this;return e.$$p=null,n["$there_can_be_only_one!"](),o(n,"then",[],s.$to_proc())}),n(_,"$fail",function e(){var n=e.$$p||t,s=this;return e.$$p=null,s["$^"](w("Promise").$new(new Map([["failure",n]])))}),n(_,"$fail!",function e(){var s=e.$$p||t,n=this;return e.$$p=null,n["$there_can_be_only_one!"](),o(n,"fail",[],s.$to_proc())}),n(_,"$always",function e(){var n=e.$$p||t,s=this;return e.$$p=null,s["$^"](w("Promise").$new(new Map([["always",n]])))}),n(_,"$always!",function e(){var s=e.$$p||t,n=this;return e.$$p=null,n["$there_can_be_only_one!"](),o(n,"always",[],s.$to_proc())}),n(_,"$trace",function e(n){var s=e.$$p||t,o=this;return e.$$p=null,n==null&&(n=t),o["$^"](w("Trace").$new(n,s))},-1),n(_,"$trace!",function e(){var s,i,c=e.$$p||t,a=this;return e.$$p=null,s=r(arguments),i=s,a["$there_can_be_only_one!"](),o(a,"trace",d(i),c.$to_proc())},-1),n(_,"$there_can_be_only_one!",function(){var n=this;return s(n.next["$any?"]())?n.$raise(w("ArgumentError"),"a promise has already been chained"):t}),n(_,"$inspect",function(){var n=this,o=t,i=t,o="#<"+n.$class()+"("+n.$object_id()+")";return s(n.next["$any?"]())&&(o=f(o," >> "+n.next.$inspect())),o=f(o,s(n["$realized?"]())?": "+(s(i=n.value)?i:n.error).$inspect()+">":">"),o}),n(_,"$to_v2",function(){var s=this,n=t,n=w("PromiseV2").$new();return o(o(s,"then",[],function(s){return s==null&&(s=t),n.$resolve(s)}),"rescue",[],function(s){return s==null&&(s=t),n.$reject(s)}),n}),i(_,"await","to_v2"),i(_,"catch","fail"),i(_,"catch!","fail!"),i(_,"do","then"),i(_,"do!","then!"),i(_,"ensure","always"),i(_,"ensure!","always!"),i(_,"finally","always"),i(_,"finally!","always!"),i(_,"rescue","fail"),i(_,"rescue!","fail!"),i(_,"to_n","to_v2"),i(_,"to_v1","itself"),function(i,a,r){var l=h(i,a,"Trace"),f=[l].concat(r),v=e.$r(f);return c(l,"$it",function(n){var a=this,o=t,i=t,o=[];return(s(n["$act?"]())||s(n.$prev()["$nil?"]()))&&o.$push(n.$value()),i=n.$prev(),s(i)?o.$concat(a.$it(i)):o}),n(l,"$initialize",function e(n,i){var r=e.$$p||t,a=this;return e.$$p=null,a.depth=n,m(a,u(a,"initialize",e,!1,!0),"initialize",[new Map([["success",o(a,"proc",[],function e(){var r=e.$$s==null?this:e.$$s,a=t,a=v("Trace").$it(r).$reverse();return a.$pop(),s(n)&&s(p(n,a.$length()))&&a.$shift(g(a.$length(),n)),o(i,"call",d(a))},{$$s:a})]])],null)})}(x[0],_,x),function(c,l,f){var p=h(c,l,"When"),v=[p].concat(f),g=e.$r(v),b=p.$$prototype;return b.wait=t,n(p,"$initialize",function e(n){var i=e.$$p||t,s=this;return e.$$p=null,n==null&&(n=[]),m(s,u(s,"initialize",e,!1,!0),"initialize",[],null),s.wait=[],o(n,"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s.$wait(n)},{$$s:s})},-1),n(p,"$each",function e(){var n=e.$$p||t,i=this;return e.$$p=null,s(n)||i.$raise(g("ArgumentError"),"no block given"),o(i,"then",[],function(s){return s==null&&(s=t),o(s,"each",[],n.$to_proc())})}),n(p,"$collect",function e(){var n=e.$$p||t,i=this;return e.$$p=null,s(n)||i.$raise(g("ArgumentError"),"no block given"),o(i,"then",[],function(s){return s==null&&(s=t),g("When").$new(o(s,"map",[],n.$to_proc()))})}),n(p,"$inject",function e(){var s,i,a=e.$$p||t,c=this;return e.$$p=null,s=r(arguments),i=s,o(c,"then",[],function(n){return n==null&&(n=t),o(n,"reduce",d(i),a.$to_proc())})},-1),n(p,"$wait",function(n){var i=this;return a(g("Promise"),n)||(n=g("Promise").$value(n)),s(n["$act?"]())&&(n=n.$then()),i.wait["$<<"](n),o(n,"always",[],function e(){var n=e.$$s==null?this:e.$$s;return n.next==null&&(n.next=t),s(n.next["$any?"]())?n.$try():t},{$$s:i}),i}),n(p,"$>>",function e(){var i,a,c=e.$$p||t,s=this;return e.$$p=null,i=r(arguments),a=i,o(m(s,u(s,">>",e,!1,!0),">>",d(a),c),"tap",[],function e(){var t=e.$$s==null?this:e.$$s;return t.$try()},{$$s:s})},-1),n(p,"$try",function(){var n=this,i=t;return s(o(n.wait,"all?",[],"realized?".$to_proc()))?(i=o(n.wait,"find",[],"rejected?".$to_proc()),s(i)?n.$reject(i.$error()):n.$resolve(o(n.wait,"map",[],"value".$to_proc()))):t}),i(p,"map","collect"),i(p,"reduce","inject"),i(p,"and","wait")}(x[0],_,x)}(l[0],null,l),v(l[0],"PromiseV1",j("Promise"))},Opal.modules.securerandom=function(e){var o=e.module,n=e.defs,i=e.top,s=[],t=e.nil,a=e.$$$;return e.add_stubs("require,extend,warn,rand,gen_random,_verify_count,encode"),i.$require("corelib/random/formatter"),function(s,i){var c,d,r=o(s,"SecureRandom"),u=[r].concat(i),l=e.$r(u);return r.$extend(a(l("Random"),"Formatter")),e.global.crypto&&e.global.crypto.getRandomValues||e.global.msCrypto&&e.global.msCrypto.getRandomValues?(d=e.global.crypto||e.global.msCrypto,c=function(e){var t=new Uint8Array(e);return d.getRandomValues(t),t}):e.global.crypto&&e.global.crypto.randomBytes?c=function(t){return e.global.crypto.randomBytes(t)}:(r.$warn("Can't get a Crypto.getRandomValues interface or Crypto.randomBytes.The random values generated with SecureRandom won't be cryptographically secure"),c=function(e){for(var n=new Uint8Array(e),t=0;t<e;t++)n[t]=r.$rand(255)^Math.floor(Math.random()*256),n[t]^=+new Date>>r.$rand(255)&255;return n}),n(r,"$bytes",function(n){var s=this;return n==null&&(n=t),s.$gen_random(n)},-1),n(r,"$gen_random",function(n){var s,i,o=t;n==null&&(n=t),n=l("Random").$_verify_count(n);for(o="",i=c(n),s=0;s<n;s++)o+=String.fromCharCode(i[s]);return o.$encode("ASCII-8BIT")},-1)}(s[0],s)},Opal.modules.singleton=function(e){var i=e.module,t=e.def,s=e.send2,o=e.find_super,r=e.send,c=e.truthy,l=e.defs,a=[],n=e.nil;return e.add_stubs("raise,class,__init__,instance_eval,new,extend"),function(a,d){var h=i(a,"Singleton"),u=[h].concat(d),m=e.$r(u);return t(h,"$clone",function(){var t=this;return t.$raise(m("TypeError"),"can't clone instance of singleton "+t.$class())}),t(h,"$dup",function(){var t=this;return t.$raise(m("TypeError"),"can't dup instance of singleton "+t.$class())}),function(a,r){var c=i(a,"SingletonClassMethods"),d=[c].concat(r),l=e.$r(d);return t(c,"$clone",function e(){var i=e.$$p||n,t=this;return e.$$p=null,l("Singleton").$__init__(s(t,o(t,"clone",e,!1,!0),"clone",[],i))}),t(c,"$inherited",function e(t){var a=e.$$p||n,i=this;return e.$$p=null,s(i,o(i,"inherited",e,!1,!0),"inherited",[t],a),l("Singleton").$__init__(t)})}(u[0],u),function(i,a){var u=[i].concat(a),d=e.$r(u);return t(i,"$__init__",function(t){var s=this;return r(t,"instance_eval",[],function e(){var t=e.$$s==null?this:e.$$s;return t.singleton__instance__=n},{$$s:s}),l(t,"$instance",function(){var t=this;return t.singleton__instance__==null&&(t.singleton__instance__=n),c(t.singleton__instance__)?t.singleton__instance__:t.singleton__instance__=t.$new()}),t}),t(i,"$included",function e(t){var a=e.$$p||n,i=this;return e.$$p=null,s(i,o(i,"included",e,!1,!0),"included",[t],a),t.$extend(d("SingletonClassMethods")),d("Singleton").$__init__(t)})}(e.get_singleton_class(m("Singleton")),u)}(a[0],a)},Opal.modules.strscan=function(e){var a=e.klass,n=e.def,r=e.truthy,s=e.eqeqeq,c=e.Opal,l=e.return_ivar,d=e.send,o=e.alias,i=[],t=e.nil;return e.add_stubs("attr_reader,anchor,empty?,===,to_s,coerce_to!,scan_until,length,size,rest,pos=,beginning_of_line?,get_byte,private"),function(i,u,h){var m=a(i,u,"StringScanner"),g=[m].concat(h),p=e.$r(g),f=m.$$prototype;return f.pos=f.string=f.working=f.matched=f.prev_pos=f.match=t,m.$attr_reader("pos","matched"),n(m,"$initialize",function(n){var s=this;return s.string=n,s.pos=0,s.matched=t,s.working=n,s.match=[]}),m.$attr_reader("string"),n(m,"$beginning_of_line?",function(){var t=this;return t.pos===0||t.string.charAt(t.pos-1)===`
`}),n(m,"$scan",function(n){var o,s=this;return n=s.$anchor(n),o=n.exec(s.working),o==null?s.matched=t:(s.prev_pos=s.pos,s.pos+=o[0].length,s.working=s.working.substring(o[0].length),s.matched=o[0],s.match=o,o[0])}),n(m,"$scan_until",function(n){var o,i,a,r,c,s=this;n=s.$anchor(n);for(i=s.working,o=0;i.length!=o;++o)if(a=n.exec(i.substr(o)),a!==null)return r=o+a[0].length,c=i.substr(0,r),s.matched=a[0],s.match=a,s.prev_pos=s.pos+o,s.pos+=r,s.working=i.substr(r),c;return s.matched=t}),n(m,"$[]",function(n){var o,i=this,a=t;return r(i.match["$empty?"]())?t:(s(p("Symbol"),a=n)?n=n.$to_s():s(p("String"),a)||(n=c["$coerce_to!"](n,p("Integer"),"to_int")),o=i.match,n<0&&(n+=o.length),n<0||n>=o.length?t:o[n]==null?t:o[n])}),n(m,"$check",function(n){var o,s=this;return n=s.$anchor(n),o=n.exec(s.working),o==null?s.matched=t:s.matched=o[0]}),n(m,"$check_until",function(t){var n=this,s=n.prev_pos,o=n.pos,i=n.working,a=n.$scan_until(t);return n.prev_pos=s,n.pos=o,n.working=i,a}),n(m,"$peek",function(t){var n=this;return n.working.substring(0,t)}),n(m,"$eos?",function(){var t=this;return t.working.length===0}),n(m,"$exist?",function(n){var o=this,s=n.exec(o.working);return s==null?t:s.index==0?0:s.index+1}),n(m,"$skip",function(n){var o,i,a,s=this;return n=s.$anchor(n),o=n.exec(s.working),o==null?(s.match=[],s.matched=t):(a=o[0],i=a.length,s.matched=a,s.match=o,s.prev_pos=s.pos,s.pos+=i,s.working=s.working.substring(i),i)}),n(m,"$skip_until",function(n){var o=this,s=o.$scan_until(n);return s===t?t:(o.matched=s.substr(-1),s.length)}),n(m,"$get_byte",function(){var n=this,s=t;return n.pos<n.string.length?(n.prev_pos=n.pos,n.pos+=1,s=n.matched=n.working.substring(0,1),n.working=n.working.substring(1)):n.matched=t,s}),n(m,"$match?",function(n){var o,s=this;return n=s.$anchor(n),o=n.exec(s.working),o==null?t:(s.prev_pos=s.pos,o[0].length)}),n(m,"$pos=",function(t){var n=this;return t<0&&(t+=n.string.$length()),n.pos=t,n.working=n.string.slice(t)}),n(m,"$matched_size",function(){var n=this;return n.matched===t?t:n.matched.length}),n(m,"$post_match",function(){var n=this;return n.matched===t?t:n.string.substr(n.pos)}),n(m,"$pre_match",function(){var n=this;return n.matched===t?t:n.string.substr(0,n.prev_pos)}),n(m,"$reset",function(){var n=this;return n.working=n.string,n.matched=t,n.pos=0}),n(m,"$rest",l("working")),n(m,"$rest?",function(){var t=this;return t.working.length!==0}),n(m,"$rest_size",function(){var t=this;return t.$rest().$size()}),n(m,"$terminate",function(){var n,s=this;return s.match=t,(n=[s.string.$length()],d(s,"pos=",n),n[n.length-1])}),n(m,"$unscan",function(){var n=this;return n.pos=n.prev_pos,n.prev_pos=t,n.match=t,n}),o(m,"bol?","beginning_of_line?"),o(m,"getch","get_byte"),m.$private(),n(m,"$anchor",function(t){var n=t.toString().match(/\/([^/]+)$/),n=n?n[1]:void 0;return new RegExp("^(?:"+t.source+")",n)})}(i[0],null,i)},Opal.modules["deps/chronic"]=function(e){var g=e.module,l=e.klass,s=e.def,o=e.truthy,v=e.rb_gt,w=e.range,u=e.rb_minus,d=e.eqeq,n=e.rb_plus,O=e.rb_lt,j=e.rb_ge,h=e.send,x=e.thrower,i=e.rb_times,A=e.neqeq,N=e.to_a,S=e.not,f=e.const_set,E=e.gvars,y=e.rb_divide,L=e.class_variable_set,T=e.class_variable_get,_=e.rb_le,m=e.defs,k=e.eqeqeq,R=e.assign_ivar,z=e.alias,b=e.hash_rehash,C=e.return_val,r=e.send2,a=e.find_super,M=e.regexp,D=e.return_ivar,F=e.top,c=[],t=e.nil,p=e.$$$;return e.add_stubs("require,module_function,start=,now,this,[],year,begin,month,local,time_class,day_or_time,get_tag,type,month_overflow?,index,handle_m_d,size,>,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"),F.$require("time"),F.$require("date"),function(a,r){var m=g(a,"Chronic"),c=[m].concat(r);return l(c[0],null,"Anchor"),function(a,r){var l=g(a,"Handlers"),m=[l].concat(r),c=e.$r(m);return l.$module_function(),s(l,"$handle_m_d",function(n,s,o,i){var a,l=this,r=t,d=t,u=t;return n["$start="](l.$now()),r=n.$this(i["$[]"]("context")),a=[r.$begin().$year(),r.$begin().$month()],d=a[0],n=a[1],a,u=c("Chronic").$time_class().$local(d,n,s),l.$day_or_time(u,o,i)}),s(l,"$handle_rmn_sd",function(s,i){var a=this,r=t,l=t,r=s["$[]"](0).$get_tag(c("RepeaterMonthName")),l=s["$[]"](1).$get_tag(c("ScalarDay")).$type();return o(a["$month_overflow?"](a.$now().$year(),r.$index(),l))?t:a.$handle_m_d(r,l,s["$[]"](e.Range.$new(2,s.$size(),!1)),i)}),s(l,"$handle_rmn_sd_on",function(n,s){var r=this,i=t,a=t,l=t;return o(v(n.$size(),3))?(i=n["$[]"](2).$get_tag(c("RepeaterMonthName")),a=n["$[]"](3).$get_tag(c("ScalarDay")).$type(),l=w(0,1,!1)):(i=n["$[]"](1).$get_tag(c("RepeaterMonthName")),a=n["$[]"](2).$get_tag(c("ScalarDay")).$type(),l=w(0,0,!1)),o(r["$month_overflow?"](r.$now().$year(),i.$index(),a))?t:r.$handle_m_d(i,a,n["$[]"](l),s)}),s(l,"$handle_rmn_od",function(s,i){var a=this,r=t,l=t,r=s["$[]"](0).$get_tag(c("RepeaterMonthName")),l=s["$[]"](1).$get_tag(c("OrdinalDay")).$type();return o(a["$month_overflow?"](a.$now().$year(),r.$index(),l))?t:a.$handle_m_d(r,l,s["$[]"](e.Range.$new(2,s.$size(),!1)),i)}),s(l,"$handle_od_rm",function(s,o){var r=this,i=t,a=t,i=s["$[]"](0).$get_tag(c("OrdinalDay")).$type(),a=s["$[]"](2).$get_tag(c("RepeaterMonth"));return r.$handle_m_d(a,i,s["$[]"](e.Range.$new(3,s.$size(),!1)),o)}),s(l,"$handle_od_rmn",function(s,i){var a=this,r=t,l=t,r=s["$[]"](1).$get_tag(c("RepeaterMonthName")),l=s["$[]"](0).$get_tag(c("OrdinalDay")).$type();return o(a["$month_overflow?"](a.$now().$year(),r.$index(),l))?t:a.$handle_m_d(r,l,s["$[]"](e.Range.$new(2,s.$size(),!1)),i)}),s(l,"$handle_sy_rmn_od",function(s,i){var d=this,a=t,r=t,l=t,h=t,m=t,a=s["$[]"](0).$get_tag(c("ScalarYear")).$type(),r=s["$[]"](1).$get_tag(c("RepeaterMonthName")).$index(),l=s["$[]"](2).$get_tag(c("OrdinalDay")).$type(),h=s.$last(u(s.$size(),3));if(o(d["$month_overflow?"](a,r,l)))return t;try{return m=c("Chronic").$time_class().$local(a,r,l),d.$day_or_time(m,h,i)}catch(n){if(e.rescue(n,[c("ArgumentError")]))try{return t}finally{e.pop_exception(n)}else throw n}}),s(l,"$handle_sd_rmn",function(s,i){var a=this,r=t,l=t,r=s["$[]"](1).$get_tag(c("RepeaterMonthName")),l=s["$[]"](0).$get_tag(c("ScalarDay")).$type();return o(a["$month_overflow?"](a.$now().$year(),r.$index(),l))?t:a.$handle_m_d(r,l,s["$[]"](e.Range.$new(2,s.$size(),!1)),i)}),s(l,"$handle_rmn_od_on",function(n,s){var r=this,i=t,a=t,l=t;return o(v(n.$size(),3))?(i=n["$[]"](2).$get_tag(c("RepeaterMonthName")),a=n["$[]"](3).$get_tag(c("OrdinalDay")).$type(),l=w(0,1,!1)):(i=n["$[]"](1).$get_tag(c("RepeaterMonthName")),a=n["$[]"](2).$get_tag(c("OrdinalDay")).$type(),l=w(0,0,!1)),o(r["$month_overflow?"](r.$now().$year(),i.$index(),a))?t:r.$handle_m_d(i,a,n["$[]"](l),s)}),s(l,"$handle_rmn_sy",function(o){var a=t,r=t,l=t,u=t,h=t,a=o["$[]"](0).$get_tag(c("RepeaterMonthName")).$index(),r=o["$[]"](1).$get_tag(c("ScalarYear")).$type();d(a,12)?(l=n(r,1),u=1):(l=r,u=n(a,1));try{return h=c("Chronic").$time_class().$local(l,u),c("Span").$new(c("Chronic").$time_class().$local(r,a),h)}catch(n){if(e.rescue(n,[c("ArgumentError")]))try{return t}finally{e.pop_exception(n)}else throw n}}),s(l,"$handle_generic",function(i,a){var d=this,r=t,l=t;try{return r=c("Chronic").$time_class().$parse(a["$[]"]("text")),c("Span").$new(r,n(r,1))}catch(n){if(e.rescue(n,[c("ArgumentError")])){l=n;try{return o(l.$message()["$=~"](/out of range/))?t:d.$raise(l)}finally{e.pop_exception(n)}}else throw n}}),s(l,"$handle_rmn_sd_sy",function(s,i){var d=this,a=t,r=t,l=t,h=t,m=t,a=s["$[]"](0).$get_tag(c("RepeaterMonthName")).$index(),r=s["$[]"](1).$get_tag(c("ScalarDay")).$type(),l=s["$[]"](2).$get_tag(c("ScalarYear")).$type(),h=s.$last(u(s.$size(),3));if(o(d["$month_overflow?"](l,a,r)))return t;try{return m=c("Chronic").$time_class().$local(l,a,r),d.$day_or_time(m,h,i)}catch(n){if(e.rescue(n,[c("ArgumentError")]))try{return t}finally{e.pop_exception(n)}else throw n}}),s(l,"$handle_rmn_od_sy",function(s,i){var d=this,a=t,r=t,l=t,h=t,m=t,a=s["$[]"](0).$get_tag(c("RepeaterMonthName")).$index(),r=s["$[]"](1).$get_tag(c("OrdinalDay")).$type(),l=s["$[]"](2).$get_tag(c("ScalarYear")).$type(),h=s.$last(u(s.$size(),3));if(o(d["$month_overflow?"](l,a,r)))return t;try{return m=c("Chronic").$time_class().$local(l,a,r),d.$day_or_time(m,h,i)}catch(n){if(e.rescue(n,[c("ArgumentError")]))try{return t}finally{e.pop_exception(n)}else throw n}}),s(l,"$handle_od_rmn_sy",function(s,i){var d=this,a=t,r=t,l=t,h=t,m=t,a=s["$[]"](0).$get_tag(c("OrdinalDay")).$type(),r=s["$[]"](1).$get_tag(c("RepeaterMonthName")).$index(),l=s["$[]"](2).$get_tag(c("ScalarYear")).$type(),h=s.$last(u(s.$size(),3));if(o(d["$month_overflow?"](l,r,a)))return t;try{return m=c("Chronic").$time_class().$local(l,r,a),d.$day_or_time(m,h,i)}catch(n){if(e.rescue(n,[c("ArgumentError")]))try{return t}finally{e.pop_exception(n)}else throw n}}),s(l,"$handle_sd_rmn_sy",function(s,o){var r=this,i=t,a=t,i=[s["$[]"](1),s["$[]"](0),s["$[]"](2)],a=s.$last(u(s.$size(),3));return r.$handle_rmn_sd_sy(n(i,a),o)}),s(l,"$handle_sm_sd_sy",function(s,i){var d=this,a=t,r=t,l=t,h=t,m=t,a=s["$[]"](0).$get_tag(c("ScalarMonth")).$type(),r=s["$[]"](1).$get_tag(c("ScalarDay")).$type(),l=s["$[]"](2).$get_tag(c("ScalarYear")).$type(),h=s.$last(u(s.$size(),3));if(o(d["$month_overflow?"](l,a,r)))return t;try{return m=c("Chronic").$time_class().$local(l,a,r),d.$day_or_time(m,h,i)}catch(n){if(e.rescue(n,[c("ArgumentError")]))try{return t}finally{e.pop_exception(n)}else throw n}}),s(l,"$handle_sd_sm_sy",function(s,o){var r=this,i=t,a=t,i=[s["$[]"](1),s["$[]"](0),s["$[]"](2)],a=s.$last(u(s.$size(),3));return r.$handle_sm_sd_sy(n(i,a),o)}),s(l,"$handle_sy_sm_sd",function(s,o){var r=this,i=t,a=t,i=[s["$[]"](1),s["$[]"](2),s["$[]"](0)],a=s.$last(u(s.$size(),3));return r.$handle_sm_sd_sy(n(i,a),o)}),s(l,"$handle_sm_sd",function(i,a){var r=this,l=t,h=t,m=t,p=t,f=t,l=i["$[]"](0).$get_tag(c("ScalarMonth")).$type(),h=i["$[]"](1).$get_tag(c("ScalarDay")).$type(),m=r.$now().$year(),p=i.$last(u(i.$size(),2));if(o(r["$month_overflow?"](m,l,h)))return t;try{return f=c("Chronic").$time_class().$local(m,l,h),d(a["$[]"]("context"),"future")&&o(O(f,r.$now()))&&(f=c("Chronic").$time_class().$local(n(m,1),l,h)),r.$day_or_time(f,p,a)}catch(n){if(e.rescue(n,[c("ArgumentError")]))try{return t}finally{e.pop_exception(n)}else throw n}}),s(l,"$handle_sd_sm",function(s,o){var r=this,i=t,a=t,i=[s["$[]"](1),s["$[]"](0)],a=s.$last(u(s.$size(),2));return r.$handle_sm_sd(n(i,a),o)}),s(l,"$handle_year_and_month",function(o,i){var a=t,r=t,l=t;d(i,12)?(a=n(o,1),r=1):(a=o,r=n(i,1));try{return l=c("Chronic").$time_class().$local(a,r),c("Span").$new(c("Chronic").$time_class().$local(o,i),l)}catch(n){if(e.rescue(n,[c("ArgumentError")]))try{return t}finally{e.pop_exception(n)}else throw n}}),s(l,"$handle_sm_sy",function(n){var a=this,o=t,i=t,o=n["$[]"](0).$get_tag(c("ScalarMonth")).$type(),i=n["$[]"](1).$get_tag(c("ScalarYear")).$type();return a.$handle_year_and_month(i,o)}),s(l,"$handle_sy_sm",function(n){var a=this,o=t,i=t,o=n["$[]"](0).$get_tag(c("ScalarYear")).$type(),i=n["$[]"](1).$get_tag(c("ScalarMonth")).$type();return a.$handle_year_and_month(o,i)}),s(l,"$handle_rdn_rmn_od",function(i,a){var h=this,r=t,l=t,m=t,d=t,f=t,p=t,g=t,r=i["$[]"](1).$get_tag(c("RepeaterMonthName")),l=i["$[]"](2).$get_tag(c("OrdinalDay")).$type(),m=i.$last(u(i.$size(),3)),d=h.$now().$year();if(o(h["$month_overflow?"](d,r.$index(),l)))return t;try{return o(m["$empty?"]())?(f=c("Chronic").$time_class().$local(d,r.$index(),l),p=h.$time_with_rollover(d,r.$index(),n(l,1)),c("Span").$new(f,p)):(g=c("Chronic").$time_class().$local(d,r.$index(),l),h.$day_or_time(g,m,a))}catch(n){if(e.rescue(n,[c("ArgumentError")]))try{return t}finally{e.pop_exception(n)}else throw n}}),s(l,"$handle_rdn_rmn_od_sy",function(i){var u=this,r=t,l=t,d=t,h=t,m=t,r=i["$[]"](1).$get_tag(c("RepeaterMonthName")),l=i["$[]"](2).$get_tag(c("OrdinalDay")).$type(),d=i["$[]"](3).$get_tag(c("ScalarYear")).$type();if(o(u["$month_overflow?"](d,r.$index(),l)))return t;try{return h=c("Chronic").$time_class().$local(d,r.$index(),l),m=u.$time_with_rollover(d,r.$index(),n(l,1)),c("Span").$new(h,m)}catch(n){if(e.rescue(n,[c("ArgumentError")]))try{return t}finally{e.pop_exception(n)}else throw n}}),s(l,"$handle_rdn_od",function(i,a){var l=this,h=t,f=t,m=t,r=t,p=t,g=t,b=t,h=i["$[]"](1).$get_tag(c("OrdinalDay")).$type(),f=i.$last(u(i.$size(),2)),m=l.$now().$year(),r=l.$now().$month();if(d(a["$[]"]("context"),"future")&&(o(v(l.$now().$day(),h))?r=n(r,1):r),o(l["$month_overflow?"](m,r,h)))return t;try{return o(f["$empty?"]())?(p=c("Chronic").$time_class().$local(m,r,h),g=l.$time_with_rollover(m,r,n(h,1)),c("Span").$new(p,g)):(b=c("Chronic").$time_class().$local(m,r,h),l.$day_or_time(b,f,a))}catch(n){if(e.rescue(n,[c("ArgumentError")]))try{return t}finally{e.pop_exception(n)}else throw n}}),s(l,"$handle_rdn_rmn_sd",function(i,a){var h=this,r=t,l=t,m=t,d=t,f=t,p=t,g=t,r=i["$[]"](1).$get_tag(c("RepeaterMonthName")),l=i["$[]"](2).$get_tag(c("ScalarDay")).$type(),m=i.$last(u(i.$size(),3)),d=h.$now().$year();if(o(h["$month_overflow?"](d,r.$index(),l)))return t;try{return o(m["$empty?"]())?(f=c("Chronic").$time_class().$local(d,r.$index(),l),p=h.$time_with_rollover(d,r.$index(),n(l,1)),c("Span").$new(f,p)):(g=c("Chronic").$time_class().$local(d,r.$index(),l),h.$day_or_time(g,m,a))}catch(n){if(e.rescue(n,[c("ArgumentError")]))try{return t}finally{e.pop_exception(n)}else throw n}}),s(l,"$handle_rdn_rmn_sd_sy",function(i){var u=this,r=t,l=t,d=t,h=t,m=t,r=i["$[]"](1).$get_tag(c("RepeaterMonthName")),l=i["$[]"](2).$get_tag(c("ScalarDay")).$type(),d=i["$[]"](3).$get_tag(c("ScalarYear")).$type();if(o(u["$month_overflow?"](d,r.$index(),l)))return t;try{return h=c("Chronic").$time_class().$local(d,r.$index(),l),m=u.$time_with_rollover(d,r.$index(),n(l,1)),c("Span").$new(h,m)}catch(n){if(e.rescue(n,[c("ArgumentError")]))try{return t}finally{e.pop_exception(n)}else throw n}}),s(l,"$handle_sm_rmn_sy",function(s,i){var l,g=this,a=t,d=t,u=t,r=t,h=t,m=t,f=t,p=t,a=s["$[]"](0).$get_tag(c("ScalarDay")).$type(),d=s["$[]"](1).$get_tag(c("RepeaterMonthName")).$index(),u=s["$[]"](2).$get_tag(c("ScalarYear")).$type();return o(v(s.$size(),3))?(r=g.$get_anchor([s.$last()],i).$begin(),l=[r.$hour(),r.$min(),r.$sec()],h=l[0],m=l[1],f=l[2],l,r=c("Chronic").$time_class().$local(u,d,a,h,m,f),p=c("Chronic").$time_class().$local(u,d,n(a,1),h,m,f)):(r=c("Chronic").$time_class().$local(u,d,a),o(j(a,31))||(a=n(a,1)),p=c("Chronic").$time_class().$local(u,d,a)),c("Span").$new(r,p)}),s(l,"$handle_r",function(n,s){var o=this,i=t,i=o.$dealias_and_disambiguate_times(n,s);return o.$get_anchor(i,s)}),s(l,"$handle_r_g_r",function(n,s){var i=this,o=t,o=[n["$[]"](1),n["$[]"](0),n["$[]"](2)];return i.$handle_r(o,s)}),s(l,"$handle_srp",function(n,s){var r=t,a=t,l=t,r=n["$[]"](0).$get_tag(c("Scalar")).$type(),a=n["$[]"](1).$get_tag(c("Repeater")),l=n["$[]"](2).$get_tag(c("Pointer")).$type();return o(a["$respond_to?"]("offset"))?a.$offset(s,r,l):t}),s(l,"$handle_s_r_p",function(s,o){var i=this,a=t,a=c("Span").$new(i.$now(),n(i.$now(),1));return i.$handle_srp(s,a,o)}),s(l,"$handle_p_s_r",function(n,s){var i=this,o=t,o=[n["$[]"](1),n["$[]"](2),n["$[]"](0)];return i.$handle_s_r_p(o,s)}),s(l,"$handle_s_r_p_a",function(s,o){var i=this,a=t,a=i.$get_anchor(s["$[]"](e.Range.$new(3,u(s.$size(),1),!1)),o);return i.$handle_srp(s,a,o)}),s(l,"$handle_s_r_a_s_r_p_a",function(o,i){var a=this,r=t,c=t,r=a.$get_anchor(o["$[]"](e.Range.$new(4,u(o.$size(),1),!1)),i),c=a.$handle_srp(n(o["$[]"](w(0,1,!1)),o["$[]"](w(4,6,!1))),r,i);return a.$handle_srp(n(o["$[]"](w(2,3,!1)),o["$[]"](w(4,6,!1))),c,i)}),s(l,"$handle_orr",function(n,s){var r=t,l=t,a=t,r=n["$[]"](1).$get_tag(c("Repeater"));return r["$start="](u(s.$begin(),1)),l=n["$[]"](0).$get_tag(c("Ordinal")).$type(),a=t,function(){try{var e=x("break");return h(l,"times",[],function n(){if(a=r.$next("future"),o(j(a.$begin(),s.$end())))a=t,e.$throw(t,n.$$is_lambda);else return t})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}(),a}),s(l,"$handle_o_r_s_r",function(n,s){var o=this,i=t,i=o.$get_anchor([n["$[]"](3)],s);return o.$handle_orr(n["$[]"](w(0,1,!1)),i,s)}),s(l,"$handle_o_r_g_r",function(n,s){var o=this,i=t,i=o.$get_anchor(n["$[]"](w(2,3,!1)),s);return o.$handle_orr(n["$[]"](w(0,1,!1)),i,s)}),s(l,"$day_or_time",function(s,a,r){var l=this,d=t,d=c("Span").$new(s,n(s,i(i(24,60),60)));return o(a["$empty?"]())?d:(l["$now="](d.$begin()),l.$get_anchor(l.$dealias_and_disambiguate_times(a,r),r.$merge(new Map([["context","future"]]))))}),s(l,"$get_anchor",function(n,s){var a=this,d=t,u=t,l=t,i=t,r=t,d=c("Grabber").$new("this"),u="future",l=a.$get_repeaters(n);switch(h(l.$size(),"times",[],function(){return n.$pop()}),o(n.$first())&&o(n.$first().$get_tag(c("Grabber")))&&(d=n.$shift().$get_tag(c("Grabber"))),i=l.$shift(),i["$start="](a.$now()),d.$type().valueOf()){case"last":r=i.$next("past");break;case"this":A(s["$[]"]("context"),"past")&&o(v(l.$size(),0))?r=i.$this("none"):r=i.$this(s["$[]"]("context"));break;case"next":r=i.$next("future");break;default:a.$raise("Invalid grabber")}return o(c("Chronic").$debug())&&(a.$puts("Handler-class: "+i.$class()),a.$puts("--"+r)),a.$find_within(l,r,u)}),s(l,"$get_repeaters",function(n){return h(n,"map",[],function(n){return n==null&&(n=t),n.$get_tag(c("Repeater"))}).$compact().$sort().$reverse()}),s(l,"$month_overflow?",function(n,s,i){try{return o(p("Date")["$leap?"](n))?v(i,p(c("RepeaterMonth"),"MONTH_DAYS_LEAP")["$[]"](u(s,1))):v(i,p(c("RepeaterMonth"),"MONTH_DAYS")["$[]"](u(s,1)))}catch(t){if(e.rescue(t,[c("ArgumentError")]))try{return!1}finally{e.pop_exception(t)}else throw t}}),s(l,"$find_within",function(n,s,i){var l=this,r=t,a=t;return o(c("Chronic").$debug())&&l.$puts("--"+s),o(n["$empty?"]())?s:(r=n.$shift(),r["$start="](d(i,"future")?s.$begin():s.$end()),a=r.$this("none"),o(s["$cover?"](a.$begin()))||o(s["$cover?"](a.$end()))?l.$find_within(n,a,i):t)}),s(l,"$time_with_rollover",function(s,i,a){var l=this,r=t,r=o(l["$month_overflow?"](s,i,a))?d(i,12)?[n(s,1),1,1]:[s,n(i,1),1]:[s,i,a];return h(c("Chronic").$time_class(),"local",N(r))}),s(l,"$dealias_and_disambiguate_times",function(s,i){var m=this,r=t,d=t,a=t,u=t,l=t,r=t;if(function(){try{var e=x("break");return h(s,"each_with_index",[],function n(s,i){if(s==null&&(s=t),i==null&&(i=t),o(s.$get_tag(c("RepeaterDayPortion"))))r=i,e.$throw(t,n.$$is_lambda);else return t})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}(),d=t,function(){try{var e=x("break");return h(s,"each_with_index",[],function n(s,i){if(s==null&&(s=t),i==null&&(i=t),o(s.$get_tag(c("RepeaterTime"))))d=i,e.$throw(t,n.$$is_lambda);else return t})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}(),o(r)&&o(d))switch(a=s["$[]"](r),u=a.$get_tag(c("RepeaterDayPortion")),u.$type().valueOf()){case"morning":o(c("Chronic").$debug())&&m.$puts("--morning->am"),a.$untag(c("RepeaterDayPortion")),a.$tag(c("RepeaterDayPortion").$new("am"));break;case"afternoon":case"evening":case"night":o(c("Chronic").$debug())&&m.$puts("--"+u.$type()+"->pm"),a.$untag(c("RepeaterDayPortion")),a.$tag(c("RepeaterDayPortion").$new("pm"));break;default:t}return A(i["$[]"]("ambiguous_time_range"),"none")&&(l=[],h(s,"each_with_index",[],function(a,r){var d=t,u=t;return a==null&&(a=t),r==null&&(r=t),l["$<<"](a),d=s["$[]"](n(r,1)),o(a.$get_tag(c("RepeaterTime")))&&o(a.$get_tag(c("RepeaterTime")).$type()["$ambiguous?"]())&&(S(d)||S(d.$get_tag(c("RepeaterDayPortion"))))?(u=c("Token").$new("disambiguator"),u.$tag(c("RepeaterDayPortion").$new(i["$[]"]("ambiguous_time_range"))),l["$<<"](u)):t}),s=l),s})}(c[0],c)}(c[0],c),function(a,r){var u=g(a,"Chronic"),c=[u].concat(r);return function(a,r,c){var m=l(a,r,"Parser"),p=[m].concat(c),u=e.$r(p);return m.$include(u("Handlers")),f(p[0],"DEFAULT_OPTIONS",new Map([["context","future"],["now",t],["hours24",t],["guess",!0],["ambiguous_time_range",6],["endian_precedence",["middle","little"]],["ambiguous_year_future_bias",50]])),m.$attr_accessor("now"),m.$attr_reader("options"),s(m,"$initialize",function(n){var s=this,i=t;return n==null&&(n=new Map),s.options=u("DEFAULT_OPTIONS").$merge(n),s.now=o(i=n.$delete("now"))?i:u("Chronic").$time_class().$now()},-1),s(m,"$parse",function(n){var s=this,a=t,r=t,a=s.$tokenize(n,s.$options()),r=s.$tokens_to_span(a,s.$options().$merge(new Map([["text",n]])));return o(u("Chronic").$debug())&&s.$puts("+"+i("-",51)+`
| `+a+`
+`+i("-",51)),o(r)?s.$guess(r,s.$options()["$[]"]("guess")):t}),s(m,"$pre_normalize",function(s){return s=s.$to_s().$downcase(),s=s.$gsub(/\b(\d{2})\.(\d{2})\.(\d{4})\b/,"\\3 / \\2 / \\1"),s=s.$gsub(/\b([ap])\.m\.?/,"\\1m"),s=s.$gsub(/(\s+|:\d{2}|:\d{2}\.\d{3})-(\d{2}:?\d{2})\b/,"\\1tzminus\\2"),s=s.$gsub(/\./,":"),s=s.$gsub(/([ap]):m:?/,"\\1m"),s=s.$gsub(/['"]/,""),s=s.$gsub(/,/," "),s=s.$gsub(/^second /,"2nd "),s=s.$gsub(/\bsecond (of|day|month|hour|minute|second)\b/,"2nd \\1"),s=u("Numerizer").$numerize(s),s=h(s,"gsub",[/([/\-,@])/],function(){var s;return n(n(" ",(s=E["~"])===t?t:s["$[]"](1))," ")}),s=s.$gsub(/(?:^|\s)0(\d+:\d+\s*pm?\b)/," \\1"),s=s.$gsub(/\btoday\b/,"this day"),s=s.$gsub(/\btomm?orr?ow\b/,"next day"),s=s.$gsub(/\byesterday\b/,"last day"),s=s.$gsub(/\bnoon\b/,"12:00pm"),s=s.$gsub(/\bmidnight\b/,"24:00"),s=s.$gsub(/\bnow\b/,"this second"),s=s.$gsub("quarter","15"),s=s.$gsub("half","30"),s=s.$gsub(/(\d{1,2}) (to|till|prior to|before)\b/,"\\1 minutes past"),s=s.$gsub(/(\d{1,2}) (after|past)\b/,"\\1 minutes future"),s=s.$gsub(/\b(?:ago|before(?: now)?)\b/,"past"),s=s.$gsub(/\bthis (?:last|past)\b/,"last"),s=s.$gsub(/\b(?:in|during) the (morning)\b/,"\\1"),s=s.$gsub(/\b(?:in the|during the|at) (afternoon|evening|night)\b/,"\\1"),s=s.$gsub(/\btonight\b/,"this night"),s=s.$gsub(/\b\d+:?\d*[ap]\b/,"\\0m"),s=s.$gsub(/\b(\d{2})(\d{2})(am|pm)\b/,"\\1:\\2\\3"),s=s.$gsub(/(\d)([ap]m|oclock)\b/,"\\1 \\2"),s=s.$gsub(/\b(hence|after|from)\b/,"future"),s=s.$gsub(/^\s?an? /i,"1 "),s=s.$gsub(/\b(\d{4}):(\d{2}):(\d{2})\b/,"\\1 / \\2 / \\3"),s.$gsub(/\b0(\d+):(\d{2}):(\d{2}) ([ap]m)\b/,"\\1:\\2:\\3 \\4")}),s(m,"$guess",function(t,s){return s==null&&(s="middle"),S(s)?t:o(v(t.$width(),1))&&(d(s,!0)||d(s,"middle"))?n(t.$begin(),y(t.$width(),2)):d(s,"end")?t.$end():t.$begin()},-2),s(m,"$definitions",function(n){var a,r=this,s=t,i=t,c=t;switch(n==null&&(n=new Map),o(s=n["$[]"]("endian_precedence"))?s:n["$[]="]("endian_precedence",["middle","little"]),L(p[0],"@@definitions",o((a=p[0].$$cvars["@@definitions"],a!=null?"class variable":t))?o(s=T(p[0],"@@definitions",!1))?s:new Map([["time",[u("Handler").$new(["repeater_time","repeater_day_portion?"],t)]],["date",[u("Handler").$new(["repeater_day_name","repeater_month_name","scalar_day","repeater_time",["separator_slash?","separator_dash?"],"time_zone","scalar_year"],"handle_generic"),u("Handler").$new(["repeater_day_name","repeater_month_name","scalar_day"],"handle_rdn_rmn_sd"),u("Handler").$new(["repeater_day_name","repeater_month_name","scalar_day","scalar_year"],"handle_rdn_rmn_sd_sy"),u("Handler").$new(["repeater_day_name","repeater_month_name","ordinal_day"],"handle_rdn_rmn_od"),u("Handler").$new(["repeater_day_name","repeater_month_name","ordinal_day","scalar_year"],"handle_rdn_rmn_od_sy"),u("Handler").$new(["repeater_day_name","repeater_month_name","scalar_day","separator_at?","time?"],"handle_rdn_rmn_sd"),u("Handler").$new(["repeater_day_name","repeater_month_name","ordinal_day","separator_at?","time?"],"handle_rdn_rmn_od"),u("Handler").$new(["repeater_day_name","ordinal_day","separator_at?","time?"],"handle_rdn_od"),u("Handler").$new(["scalar_year",["separator_slash","separator_dash"],"scalar_month",["separator_slash","separator_dash"],"scalar_day","repeater_time","time_zone"],"handle_generic"),u("Handler").$new(["ordinal_day"],"handle_generic"),u("Handler").$new(["repeater_month_name","scalar_day","scalar_year"],"handle_rmn_sd_sy"),u("Handler").$new(["repeater_month_name","ordinal_day","scalar_year"],"handle_rmn_od_sy"),u("Handler").$new(["repeater_month_name","scalar_day","scalar_year","separator_at?","time?"],"handle_rmn_sd_sy"),u("Handler").$new(["repeater_month_name","ordinal_day","scalar_year","separator_at?","time?"],"handle_rmn_od_sy"),u("Handler").$new(["repeater_month_name",["separator_slash?","separator_dash?"],"scalar_day","separator_at?","time?"],"handle_rmn_sd"),u("Handler").$new(["repeater_time","repeater_day_portion?","separator_on?","repeater_month_name","scalar_day"],"handle_rmn_sd_on"),u("Handler").$new(["repeater_month_name","ordinal_day","separator_at?","time?"],"handle_rmn_od"),u("Handler").$new(["ordinal_day","repeater_month_name","scalar_year","separator_at?","time?"],"handle_od_rmn_sy"),u("Handler").$new(["ordinal_day","repeater_month_name","separator_at?","time?"],"handle_od_rmn"),u("Handler").$new(["ordinal_day","grabber?","repeater_month","separator_at?","time?"],"handle_od_rm"),u("Handler").$new(["scalar_year","repeater_month_name","ordinal_day"],"handle_sy_rmn_od"),u("Handler").$new(["repeater_time","repeater_day_portion?","separator_on?","repeater_month_name","ordinal_day"],"handle_rmn_od_on"),u("Handler").$new(["repeater_month_name","scalar_year"],"handle_rmn_sy"),u("Handler").$new(["scalar_day","repeater_month_name","scalar_year","separator_at?","time?"],"handle_sd_rmn_sy"),u("Handler").$new(["scalar_day",["separator_slash?","separator_dash?"],"repeater_month_name","separator_at?","time?"],"handle_sd_rmn"),u("Handler").$new(["scalar_year",["separator_slash","separator_dash"],"scalar_month",["separator_slash","separator_dash"],"scalar_day","separator_at?","time?"],"handle_sy_sm_sd"),u("Handler").$new(["scalar_year",["separator_slash","separator_dash"],"scalar_month"],"handle_sy_sm"),u("Handler").$new(["scalar_month",["separator_slash","separator_dash"],"scalar_year"],"handle_sm_sy"),u("Handler").$new(["scalar_day",["separator_slash","separator_dash"],"repeater_month_name",["separator_slash","separator_dash"],"scalar_year","repeater_time?"],"handle_sm_rmn_sy"),u("Handler").$new(["scalar_year",["separator_slash","separator_dash"],"scalar_month",["separator_slash","separator_dash"],"scalar?","time_zone"],"handle_generic")]],["anchor",[u("Handler").$new(["separator_on?","grabber?","repeater","separator_at?","repeater?","repeater?"],"handle_r"),u("Handler").$new(["grabber?","repeater","repeater","separator?","repeater?","repeater?"],"handle_r"),u("Handler").$new(["repeater","grabber","repeater"],"handle_r_g_r")]],["arrow",[u("Handler").$new(["scalar","repeater","pointer"],"handle_s_r_p"),u("Handler").$new(["scalar","repeater","separator_and?","scalar","repeater","pointer","separator_at?","anchor"],"handle_s_r_a_s_r_p_a"),u("Handler").$new(["pointer","scalar","repeater"],"handle_p_s_r"),u("Handler").$new(["scalar","repeater","pointer","separator_at?","anchor"],"handle_s_r_p_a")]],["narrow",[u("Handler").$new(["ordinal","repeater","separator_in","repeater"],"handle_o_r_s_r"),u("Handler").$new(["ordinal","repeater","grabber","repeater"],"handle_o_r_g_r")]]]):new Map([["time",[u("Handler").$new(["repeater_time","repeater_day_portion?"],t)]],["date",[u("Handler").$new(["repeater_day_name","repeater_month_name","scalar_day","repeater_time",["separator_slash?","separator_dash?"],"time_zone","scalar_year"],"handle_generic"),u("Handler").$new(["repeater_day_name","repeater_month_name","scalar_day"],"handle_rdn_rmn_sd"),u("Handler").$new(["repeater_day_name","repeater_month_name","scalar_day","scalar_year"],"handle_rdn_rmn_sd_sy"),u("Handler").$new(["repeater_day_name","repeater_month_name","ordinal_day"],"handle_rdn_rmn_od"),u("Handler").$new(["repeater_day_name","repeater_month_name","ordinal_day","scalar_year"],"handle_rdn_rmn_od_sy"),u("Handler").$new(["repeater_day_name","repeater_month_name","scalar_day","separator_at?","time?"],"handle_rdn_rmn_sd"),u("Handler").$new(["repeater_day_name","repeater_month_name","ordinal_day","separator_at?","time?"],"handle_rdn_rmn_od"),u("Handler").$new(["repeater_day_name","ordinal_day","separator_at?","time?"],"handle_rdn_od"),u("Handler").$new(["scalar_year",["separator_slash","separator_dash"],"scalar_month",["separator_slash","separator_dash"],"scalar_day","repeater_time","time_zone"],"handle_generic"),u("Handler").$new(["ordinal_day"],"handle_generic"),u("Handler").$new(["repeater_month_name","scalar_day","scalar_year"],"handle_rmn_sd_sy"),u("Handler").$new(["repeater_month_name","ordinal_day","scalar_year"],"handle_rmn_od_sy"),u("Handler").$new(["repeater_month_name","scalar_day","scalar_year","separator_at?","time?"],"handle_rmn_sd_sy"),u("Handler").$new(["repeater_month_name","ordinal_day","scalar_year","separator_at?","time?"],"handle_rmn_od_sy"),u("Handler").$new(["repeater_month_name",["separator_slash?","separator_dash?"],"scalar_day","separator_at?","time?"],"handle_rmn_sd"),u("Handler").$new(["repeater_time","repeater_day_portion?","separator_on?","repeater_month_name","scalar_day"],"handle_rmn_sd_on"),u("Handler").$new(["repeater_month_name","ordinal_day","separator_at?","time?"],"handle_rmn_od"),u("Handler").$new(["ordinal_day","repeater_month_name","scalar_year","separator_at?","time?"],"handle_od_rmn_sy"),u("Handler").$new(["ordinal_day","repeater_month_name","separator_at?","time?"],"handle_od_rmn"),u("Handler").$new(["ordinal_day","grabber?","repeater_month","separator_at?","time?"],"handle_od_rm"),u("Handler").$new(["scalar_year","repeater_month_name","ordinal_day"],"handle_sy_rmn_od"),u("Handler").$new(["repeater_time","repeater_day_portion?","separator_on?","repeater_month_name","ordinal_day"],"handle_rmn_od_on"),u("Handler").$new(["repeater_month_name","scalar_year"],"handle_rmn_sy"),u("Handler").$new(["scalar_day","repeater_month_name","scalar_year","separator_at?","time?"],"handle_sd_rmn_sy"),u("Handler").$new(["scalar_day",["separator_slash?","separator_dash?"],"repeater_month_name","separator_at?","time?"],"handle_sd_rmn"),u("Handler").$new(["scalar_year",["separator_slash","separator_dash"],"scalar_month",["separator_slash","separator_dash"],"scalar_day","separator_at?","time?"],"handle_sy_sm_sd"),u("Handler").$new(["scalar_year",["separator_slash","separator_dash"],"scalar_month"],"handle_sy_sm"),u("Handler").$new(["scalar_month",["separator_slash","separator_dash"],"scalar_year"],"handle_sm_sy"),u("Handler").$new(["scalar_day",["separator_slash","separator_dash"],"repeater_month_name",["separator_slash","separator_dash"],"scalar_year","repeater_time?"],"handle_sm_rmn_sy"),u("Handler").$new(["scalar_year",["separator_slash","separator_dash"],"scalar_month",["separator_slash","separator_dash"],"scalar?","time_zone"],"handle_generic")]],["anchor",[u("Handler").$new(["separator_on?","grabber?","repeater","separator_at?","repeater?","repeater?"],"handle_r"),u("Handler").$new(["grabber?","repeater","repeater","separator?","repeater?","repeater?"],"handle_r"),u("Handler").$new(["repeater","grabber","repeater"],"handle_r_g_r")]],["arrow",[u("Handler").$new(["scalar","repeater","pointer"],"handle_s_r_p"),u("Handler").$new(["scalar","repeater","separator_and?","scalar","repeater","pointer","separator_at?","anchor"],"handle_s_r_a_s_r_p_a"),u("Handler").$new(["pointer","scalar","repeater"],"handle_p_s_r"),u("Handler").$new(["scalar","repeater","pointer","separator_at?","anchor"],"handle_s_r_p_a")]],["narrow",[u("Handler").$new(["ordinal","repeater","separator_in","repeater"],"handle_o_r_s_r"),u("Handler").$new(["ordinal","repeater","grabber","repeater"],"handle_o_r_g_r")]]])),i=[u("Handler").$new(["scalar_month",["separator_slash","separator_dash"],"scalar_day",["separator_slash","separator_dash"],"scalar_year","separator_at?","time?"],"handle_sm_sd_sy"),u("Handler").$new(["scalar_month",["separator_slash","separator_dash"],"scalar_day","separator_at?","time?"],"handle_sm_sd"),u("Handler").$new(["scalar_day",["separator_slash","separator_dash"],"scalar_month","separator_at?","time?"],"handle_sd_sm"),u("Handler").$new(["scalar_day",["separator_slash","separator_dash"],"scalar_month",["separator_slash","separator_dash"],"scalar_year","separator_at?","time?"],"handle_sd_sm_sy")],(c=r.$Array(n["$[]"]("endian_precedence")).$first()).valueOf()){case"little":return T(p[0],"@@definitions",!1).$merge(new Map([["endian",i.$reverse()]]));case"middle":return T(p[0],"@@definitions",!1).$merge(new Map([["endian",i]]));default:return r.$raise(u("ArgumentError"),"Unknown endian option '"+c+"'")}},-1),m.$private(),s(m,"$tokenize",function(n,s){var i=this,o=t;return n=i.$pre_normalize(n),o=h(n.$split(" "),"map",[],function(n){return n==null&&(n=t),u("Token").$new(n)}),h([u("Repeater"),u("Grabber"),u("Pointer"),u("Scalar"),u("Ordinal"),u("Separator"),u("Sign"),u("TimeZone")],"each",[],function(n){return n==null&&(n=t),n.$scan(o,s)}),h(o,"select",[],function(n){return n==null&&(n=t),n["$tagged?"]()})}),s(m,"$tokens_to_span",function(s,i){try{var a=x("return"),c=this,r=t,r=c.$definitions(i);return h(n(r["$[]"]("endian"),r["$[]"]("date")),"each",[],function e(n){var l=e.$$s==null?this:e.$$s,c=t;if(n==null&&(n=t),o(n.$match(s,r)))c=h(s,"select",[],function(n){return n==null&&(n=t),n.$get_tag(u("Separator"))["$!"]()}),a.$throw(n.$invoke("date",c,l,i),e.$$is_lambda);else return t},{$$s:c,$$ret:a}),h(r["$[]"]("anchor"),"each",[],function e(n){var l=e.$$s==null?this:e.$$s,c=t;if(n==null&&(n=t),o(n.$match(s,r)))c=h(s,"select",[],function(n){return n==null&&(n=t),n.$get_tag(u("Separator"))["$!"]()}),a.$throw(n.$invoke("anchor",c,l,i),e.$$is_lambda);else return t},{$$s:c,$$ret:a}),h(r["$[]"]("arrow"),"each",[],function e(n){var l=e.$$s==null?this:e.$$s,c=t;if(n==null&&(n=t),o(n.$match(s,r)))c=h(s,"reject",[],function(n){var s=t,i=t,a=t,r=t;return n==null&&(n=t),o(s=o(i=o(a=o(r=n.$get_tag(u("SeparatorAt")))?r:n.$get_tag(u("SeparatorSlash")))?a:n.$get_tag(u("SeparatorDash")))?i:n.$get_tag(u("SeparatorComma")))?s:n.$get_tag(u("SeparatorAnd"))}),a.$throw(n.$invoke("arrow",c,l,i),e.$$is_lambda);else return t},{$$s:c,$$ret:a}),h(r["$[]"]("narrow"),"each",[],function e(n){var c=e.$$s==null?this:e.$$s;if(n==null&&(n=t),o(n.$match(s,r)))a.$throw(n.$invoke("narrow",s,c,i),e.$$is_lambda);else return t},{$$s:c,$$ret:a}),o(u("Chronic").$debug())&&c.$puts("-none"),t}catch(e){if(e===a)return e.$v;throw e}finally{a.is_orphan=!0}})}(c[0],null,c)}(c[0],c),function(s,i){var r=g(s,"Chronic"),a=[r].concat(i);return function(s,i,a){var r=l(s,i,"Time"),c=[r].concat(a),d=e.$r(c);return f(c[0],"HOUR_SECONDS",3600),f(c[0],"MINUTE_SECONDS",60),f(c[0],"SECOND_SECONDS",1),f(c[0],"SUBSECOND_SECONDS",.001),m(r,"$could_be_hour?",function(n){var s=t;return o(s=j(n,0))?_(n,24):s}),m(r,"$could_be_minute?",function(n){var s=t;return o(s=j(n,0))?_(n,60):s}),m(r,"$could_be_second?",function(n){var s=t;return o(s=j(n,0))?_(n,60):s}),m(r,"$could_be_subsecond?",function(n){var s=t;return o(s=j(n,0))?_(n,999999):s}),m(r,"$normalize_offset",function(s){var i=t,a=t,r=t;return o(s["$is_a?"](d("String")))?s:(o(s)||(s=d("Chronic").$time_class().$now().$to_time().$utc_offset()),i="+",o(O(s,0))&&(i="-"),a=y(s.$abs(),3600).$to_i().$to_s().$rjust(2,"0"),r=s.$abs()["$%"](3600).$to_s().$rjust(2,"0"),n(n(i,a),r))})}(a[0],null,a)}(c[0],c),function(s,a){var c=g(s,"Chronic"),r=[c].concat(a);return function(s,a,r){var d=l(s,a,"Date"),c=[d].concat(r),h=e.$r(c);return f(c[0],"YEAR_MONTHS",12),f(c[0],"MONTH_DAYS",[t,31,28,31,30,31,30,31,31,30,31,30,31]),f(c[0],"MONTH_DAYS_LEAP",[t,31,29,31,30,31,30,31,31,30,31,30,31]),f(c[0],"YEAR_SECONDS",31536e3),f(c[0],"SEASON_SECONDS",7862400),f(c[0],"MONTH_SECONDS",2592e3),f(c[0],"FORTNIGHT_SECONDS",1209600),f(c[0],"WEEK_SECONDS",604800),f(c[0],"WEEKEND_SECONDS",172800),f(c[0],"DAY_SECONDS",86400),f(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]])),f(c[0],"DAYS",new Map([["sunday",0],["monday",1],["tuesday",2],["wednesday",3],["thursday",4],["friday",5],["saturday",6]])),m(d,"$could_be_day?",function(n){var s=t;return o(s=j(n,1))?_(n,31):s}),m(d,"$could_be_month?",function(n){var s=t;return o(s=j(n,1))?_(n,12):s}),m(d,"$could_be_year?",function(n){var s=t;return o(s=j(n,1))?_(n,9999):s}),m(d,"$make_year",function(s,a){var c=t,l=t,r=t;return o(v(s.$to_s().$size(),2))?s:(c=u(h("Chronic").$time_class().$now().$year(),a),l=i(y(c,100),100),r=n(l,s),o(O(r,c))&&(r=n(r,100)),r)}),m(d,"$month_overflow?",function(t,n,s){return o(p("Date")["$leap?"](t))?v(s,p(h("Date"),"MONTH_DAYS_LEAP")["$[]"](n)):v(s,p(h("Date"),"MONTH_DAYS")["$[]"](n))})}(r[0],null,r)}(c[0],c),function(i,a){var c=g(i,"Chronic"),r=[c].concat(a);return function(i,a,r){var c=l(i,a,"Handler"),f=[c].concat(r),u=e.$r(f),m=c.$$prototype;return m.pattern=m.handler_method=t,c.$attr_reader("pattern"),c.$attr_reader("handler_method"),s(c,"$initialize",function(t,n){var s=this;return s.pattern=t,s.handler_method=n}),s(c,"$match",function(i,a){try{var r=x("return"),l=this,c=t,c=0;return h(l.pattern,"each",[],function s(l){var f=s.$$s==null?this:s.$$s,m=t;return l==null&&(l=t),m=!1,o(l["$is_a?"](u("Array")))||(l=[l]),function(){try{var s=x("break");return h(l,"each_index",[],function f(p){var b=f.$$s==null?this:f.$$s,g=t,v=t,j=t,y=t;if(p==null&&(p=t),g=l["$[]"](p).$to_s(),v=g["$[]"](-1,1)["$=="]("?"),o(v)&&(g=g.$chop()),k(u("Symbol"),j=l["$[]"](p)))if(o(b["$tags_match?"](g,i,c)))c=n(c,1),s.$throw(t,f.$$is_lambda);else if(o(v))return m=!0,t;else if(o(O(n(p,1),l.$count())))return t;else if(o(m))return t;else r.$throw(!1,f.$$is_lambda);else return k(u("String"),j)?(o(v)&&d(c,i.$size())&&r.$throw(!0,f.$$is_lambda),o(a["$key?"](g.$to_sym()))?y=a["$[]"](g.$to_sym()):b.$raise("Invalid subset "+g+" specified"),h(y,"each",[],function n(s){if(s==null&&(s=t),o(s.$match(i["$[]"](e.Range.$new(c,i.$size(),!1)),a)))r.$throw(!0,n.$$is_lambda);else return t},{$$ret:r})):b.$raise("Invalid match type: "+l["$[]"](p).$class())},{$$s:f,$$ret:r})}catch(e){if(e===s)return e.$v;throw e}finally{s.is_orphan=!0}}()},{$$s:l}),!A(c,i.$size())}catch(e){if(e===r)return e.$v;throw e}finally{r.is_orphan=!0}}),s(c,"$invoke",function(t,n,s,i){var a=this;return o(u("Chronic").$debug())&&(a.$puts("-"+t),a.$puts("Handler: "+a.handler_method)),s.$send(a.handler_method,n,i)}),s(c,"$==",function(t){var n=this;return n.pattern["$=="](t.$pattern())}),c.$private(),s(c,"$tags_match?",function(n,s,i){var a=t,a=u("Chronic").$const_get(h(n.$to_s(),"gsub",[/(?:^|_)(.)/],function(){var n;return((n=E["~"])===t?t:n["$[]"](1)).$upcase()}));return o(s["$[]"](i))?h(s["$[]"](i).$tags(),"select",[],function(n){return n==null&&(n=t),n["$kind_of?"](a)})["$empty?"]()["$!"]():t})}(r[0],null,r)}(c[0],c),function(i,a){var c=g(i,"Chronic"),r=[c].concat(a);return function(i,a,r){var c=l(i,a,"MiniDate"),h=[c].concat(r),f=e.$r(h),u=c.$$prototype;return u.day=u.month=t,c.$attr_accessor("month","day"),m(c,"$from_time",function(t){var n=this;return n.$new(t.$month(),t.$day())}),s(c,"$initialize",function(t,n){var s=this;return o(w(1,12,!1)["$include?"](t))||s.$raise(f("ArgumentError"),"1..12 are valid months"),s.month=t,s.day=n}),s(c,"$is_between?",function(s,i){var a=this,r=t;if(d(a.month,s.$month())&&d(a.month,i.$month())&&(o(O(a.day,s.$day()))||o(v(a.day,i.$day()))))return!1;if(d(a.month,s.$month())&&o(j(a.day,s.$day()))||d(a.month,i.$month())&&o(_(a.day,i.$day())))return!0;for(r=n(s.$month()["$%"](12),1);!d(r,i.$month());){if(d(a.month,r))return!0;r=n(r["$%"](12),1)}return!1}),s(c,"$equals?",function(n){var s=this,i=t;return o(i=s.month["$=="](n.$month()))?s.day["$=="](n.$day()):i})}(r[0],null,r)}(c[0],c),function(n,i){var r=g(n,"Chronic"),a=[r].concat(i);return function(n,i,a){var r=l(n,i,"Tag"),c=[r].concat(a);return r.$attr_accessor("type"),s(r,"$initialize",function(t,n){var s=this;return n==null&&(n=new Map),s.type=t,s.options=n},-2),s(r,"$start=",R("now")),function(n,i){var r=[n].concat(i),a=e.$r(r);return n.$private(),s(n,"$scan_for",function(n,s,i,r){try{var c=x("return"),l=t;if(i==null&&(i=new Map),r==null&&(r=new Map),k(a("Regexp"),l=i)){if(o(i["$=~"](n.$word())))return s.$new(n.$word(),r)}else k(a("Hash"),l)?h(i,"each",[],function e(i,a){if(i==null&&(i=t),a==null&&(a=t),o(i["$=~"](n.$word())))c.$throw(s.$new(a,r),e.$$is_lambda);else return t},{$$ret:c}):t;return t}catch(e){if(e===c)return e.$v;throw e}finally{c.is_orphan=!0}},-3)}(e.get_singleton_class(r),c)}(a[0],null,a)}(c[0],c),function(i,a){var c=g(i,"Chronic"),r=[c].concat(a),d=e.$r(r);return function(i,a,r){var c=l(i,a,"Span"),h=[c].concat(r),d=e.$r(h);return s(c,"$width",function(){var t=this;return u(t.$end(),t.$begin()).$to_i()}),s(c,"$+",function(t){var s=this;return d("Span").$new(n(s.$begin(),t),n(s.$end(),t))}),s(c,"$-",function(t){var s=this;return n(s,t["$-@"]())}),s(c,"$to_s",function(){var t=this;return n(n(n(n("(",t.$begin().$to_s()),".."),t.$end().$to_s()),")")}),o(d("RUBY_VERSION")["$=~"](/^1.8/))?z(c,"cover?","include?"):t}(r[0],d("Range"),r)}(c[0],c),function(e,o){var i=g(e,"Chronic"),a=[i].concat(o);return function(e,o){var i=l(e,o,"Token"),a=i.$$prototype;return a.tags=a.word=t,i.$attr_accessor("word"),i.$attr_accessor("tags"),s(i,"$initialize",function(t){var n=this;return n.word=t,n.tags=[]}),s(i,"$tag",function(t){var n=this;return n.tags["$<<"](t)}),s(i,"$untag",function(n){var s=this;return h(s.tags,"delete_if",[],function(s){return s==null&&(s=t),s["$kind_of?"](n)})}),s(i,"$tagged?",function(){var t=this;return v(t.tags.$size(),0)}),s(i,"$get_tag",function(n){var s=this;return h(s.tags,"find",[],function(s){return s==null&&(s=t),s["$kind_of?"](n)})}),s(i,"$to_s",function(){var t=this;return t.word=n(n(n(t.word,"("),t.tags.$join(", ")),") ")}),s(i,"$inspect",function(){var t=this;return t.$to_s()})}(a[0],null)}(c[0],c),function(i,a){var c=g(i,"Chronic"),r=[c].concat(a),d=e.$r(r);return function(e,i){var a=l(e,i,"Grabber"),r=a.$$prototype;return r.type=t,m(a,"$scan",function(n){var i=this;return h(n,"each",[],function e(n){var i=e.$$s==null?this:e.$$s,s=t;return n==null&&(n=t),o(s=i.$scan_for_all(n))?(n.$tag(s),t):t},{$$s:i})}),m(a,"$scan_for_all",function(t){var n=this;return n.$scan_for(t,n,b(new Map([[/last/,"last"],[/this/,"this"],[/next/,"next"]])))}),s(a,"$to_s",function(){var t=this;return n("grabber-",t.type.$to_s())})}(r[0],d("Tag"))}(c[0],c),function(i,a){var c=g(i,"Chronic"),r=[c].concat(a),d=e.$r(r);return function(e,i){var a=l(e,i,"Pointer"),r=a.$$prototype;return r.type=t,m(a,"$scan",function(n){var i=this;return h(n,"each",[],function e(n){var i=e.$$s==null?this:e.$$s,s=t;return n==null&&(n=t),o(s=i.$scan_for_all(n))?n.$tag(s):t},{$$s:i})}),m(a,"$scan_for_all",function(t){var n=this;return n.$scan_for(t,n,b(new Map([[/\bpast\b/,"past"],[/\b(?:future|in)\b/,"future"]])))}),s(a,"$to_s",function(){var t=this;return n("pointer-",t.type.$to_s())})}(r[0],d("Tag"))}(c[0],c),function(i,c){var v=g(i,"Chronic"),d=[v].concat(c),u=e.$r(d);return function(i,a,r){var d=l(i,a,"Scalar"),u=[d].concat(r),c=e.$r(u);return f(u[0],"DAY_PORTIONS",["am","pm","morning","afternoon","evening","night"]),m(d,"$scan",function(s,i){return h(s,"each_index",[],function(a){var l=t,d=t,r=t,u=t;return a==null&&(a=t),l=s["$[]"](a),d=s["$[]"](n(a,1)),o(l.$word()["$=~"](/^\d+$/))?(r=l.$word().$to_i(),l.$tag(c("Scalar").$new(r)),o(p(c("Chronic"),"Time")["$could_be_subsecond?"](r))&&l.$tag(c("ScalarSubsecond").$new(r)),o(p(c("Chronic"),"Time")["$could_be_second?"](r))&&l.$tag(c("ScalarSecond").$new(r)),o(p(c("Chronic"),"Time")["$could_be_minute?"](r))&&l.$tag(c("ScalarMinute").$new(r)),o(p(c("Chronic"),"Time")["$could_be_hour?"](r))&&l.$tag(c("ScalarHour").$new(r)),o(d)&&o(c("DAY_PORTIONS")["$include?"](d.$word()))?t:(o(p(c("Chronic"),"Date")["$could_be_day?"](r))&&l.$tag(c("ScalarDay").$new(r)),o(p(c("Chronic"),"Date")["$could_be_month?"](r))&&l.$tag(c("ScalarMonth").$new(r)),o(p(c("Chronic"),"Date")["$could_be_year?"](r))?(u=p(c("Chronic"),"Date").$make_year(r,i["$[]"]("ambiguous_year_future_bias")),l.$tag(c("ScalarYear").$new(u.$to_i()))):t)):t})}),s(d,"$to_s",C("scalar"))}(d[0],u("Tag"),d),function(e,o){var i=l(e,o,"ScalarSubsecond"),c=i.$$prototype;return c.type=t,s(i,"$to_s",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(n(r(s,a(s,"to_s",e,!1,!0),"to_s",[],o),"-subsecond-"),s.type.$to_s())})}(d[0],u("Scalar")),function(e,o){var i=l(e,o,"ScalarSecond"),c=i.$$prototype;return c.type=t,s(i,"$to_s",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(n(r(s,a(s,"to_s",e,!1,!0),"to_s",[],o),"-second-"),s.type.$to_s())})}(d[0],u("Scalar")),function(e,o){var i=l(e,o,"ScalarMinute"),c=i.$$prototype;return c.type=t,s(i,"$to_s",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(n(r(s,a(s,"to_s",e,!1,!0),"to_s",[],o),"-minute-"),s.type.$to_s())})}(d[0],u("Scalar")),function(e,o){var i=l(e,o,"ScalarHour"),c=i.$$prototype;return c.type=t,s(i,"$to_s",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(n(r(s,a(s,"to_s",e,!1,!0),"to_s",[],o),"-hour-"),s.type.$to_s())})}(d[0],u("Scalar")),function(e,o){var i=l(e,o,"ScalarDay"),c=i.$$prototype;return c.type=t,s(i,"$to_s",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(n(r(s,a(s,"to_s",e,!1,!0),"to_s",[],o),"-day-"),s.type.$to_s())})}(d[0],u("Scalar")),function(e,o){var i=l(e,o,"ScalarMonth"),c=i.$$prototype;return c.type=t,s(i,"$to_s",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(n(r(s,a(s,"to_s",e,!1,!0),"to_s",[],o),"-month-"),s.type.$to_s())})}(d[0],u("Scalar")),function(e,o){var i=l(e,o,"ScalarYear"),c=i.$$prototype;return c.type=t,s(i,"$to_s",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(n(r(s,a(s,"to_s",e,!1,!0),"to_s",[],o),"-year-"),s.type.$to_s())})}(d[0],u("Scalar"))}(c[0],c),function(i,c){var f=g(i,"Chronic"),d=[f].concat(c),u=e.$r(d);return function(n,i,a){var c=l(n,i,"Ordinal"),d=[c].concat(a),r=e.$r(d);return m(c,"$scan",function(n,s){return h(n,"each_index",[],function(i){var c,a=t,l=t;return i==null&&(i=t),o(n["$[]"](i).$word()["$=~"](/^(\d+)(st|nd|rd|th|\.)$/))?(a=((c=E["~"])===t?t:c["$[]"](1)).$to_i(),n["$[]"](i).$tag(r("Ordinal").$new(a)),o(p(r("Chronic"),"Date")["$could_be_day?"](a))&&n["$[]"](i).$tag(r("OrdinalDay").$new(a)),o(p(r("Chronic"),"Date")["$could_be_month?"](a))&&n["$[]"](i).$tag(r("OrdinalMonth").$new(a)),o(p(r("Chronic"),"Date")["$could_be_year?"](a))?(l=p(r("Chronic"),"Date").$make_year(a,s["$[]"]("ambiguous_year_future_bias")),n["$[]"](i).$tag(r("OrdinalYear").$new(l.$to_i()))):t):t})}),s(c,"$to_s",C("ordinal"))}(d[0],u("Tag"),d),function(e,o){var i=l(e,o,"OrdinalDay"),c=i.$$prototype;return c.type=t,s(i,"$to_s",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(n(r(s,a(s,"to_s",e,!1,!0),"to_s",[],o),"-day-"),s.type.$to_s())})}(d[0],u("Ordinal")),function(e,o){var i=l(e,o,"OrdinalMonth"),c=i.$$prototype;return c.type=t,s(i,"$to_s",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(n(r(s,a(s,"to_s",e,!1,!0),"to_s",[],o),"-month-"),s.type.$to_s())})}(d[0],u("Ordinal")),function(e,o){var i=l(e,o,"OrdinalYear"),c=i.$$prototype;return c.type=t,s(i,"$to_s",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(n(r(s,a(s,"to_s",e,!1,!0),"to_s",[],o),"-year-"),s.type.$to_s())})}(d[0],u("Ordinal"))}(c[0],c),function(i,c){var f=g(i,"Chronic"),d=[f].concat(c),u=e.$r(d);return function(n,i,a){var r=l(n,i,"Separator"),d=[r].concat(a),c=e.$r(d);return m(r,"$scan",function(n){var i=this;return h(n,"each",[],function e(n){var i=e.$$s==null?this:e.$$s,s=t;return n==null&&(n=t),o(s=i.$scan_for_commas(n))?(n.$tag(s),t):o(s=i.$scan_for_dots(n))?(n.$tag(s),t):o(s=i.$scan_for_colon(n))?(n.$tag(s),t):o(s=i.$scan_for_space(n))?(n.$tag(s),t):o(s=i.$scan_for_slash(n))?(n.$tag(s),t):o(s=i.$scan_for_dash(n))?(n.$tag(s),t):o(s=i.$scan_for_quote(n))?(n.$tag(s),t):o(s=i.$scan_for_at(n))?(n.$tag(s),t):o(s=i.$scan_for_in(n))?(n.$tag(s),t):o(s=i.$scan_for_on(n))?(n.$tag(s),t):o(s=i.$scan_for_and(n))?(n.$tag(s),t):o(s=i.$scan_for_t(n))?(n.$tag(s),t):o(s=i.$scan_for_w(n))?(n.$tag(s),t):t},{$$s:i})}),m(r,"$scan_for_commas",function(t){var n=this;return n.$scan_for(t,c("SeparatorComma"),b(new Map([[/^,$/,"comma"]])))}),m(r,"$scan_for_dots",function(t){var n=this;return n.$scan_for(t,c("SeparatorDot"),b(new Map([[/^\.$/,"dot"]])))}),m(r,"$scan_for_colon",function(t){var n=this;return n.$scan_for(t,c("SeparatorColon"),b(new Map([[/^:$/,"colon"]])))}),m(r,"$scan_for_space",function(t){var n=this;return n.$scan_for(t,c("SeparatorSpace"),b(new Map([[/^ $/,"space"]])))}),m(r,"$scan_for_slash",function(t){var n=this;return n.$scan_for(t,c("SeparatorSlash"),b(new Map([[/^\/$/,"slash"]])))}),m(r,"$scan_for_dash",function(t){var n=this;return n.$scan_for(t,c("SeparatorDash"),b(new Map([[/^-$/,"dash"]])))}),m(r,"$scan_for_quote",function(t){var n=this;return n.$scan_for(t,c("SeparatorQuote"),b(new Map([[/^'$/,"single_quote"],[/^"$/,"double_quote"]])))}),m(r,"$scan_for_at",function(t){var n=this;return n.$scan_for(t,c("SeparatorAt"),b(new Map([[/^(at|@)$/,"at"]])))}),m(r,"$scan_for_in",function(t){var n=this;return n.$scan_for(t,c("SeparatorIn"),b(new Map([[/^in$/,"in"]])))}),m(r,"$scan_for_on",function(t){var n=this;return n.$scan_for(t,c("SeparatorOn"),b(new Map([[/^on$/,"on"]])))}),m(r,"$scan_for_and",function(t){var n=this;return n.$scan_for(t,c("SeparatorAnd"),b(new Map([[/^and$/,"and"]])))}),m(r,"$scan_for_t",function(t){var n=this;return n.$scan_for(t,c("SeparatorT"),b(new Map([[/^t$/,"T"]])))}),m(r,"$scan_for_w",function(t){var n=this;return n.$scan_for(t,c("SeparatorW"),b(new Map([[/^w$/,"W"]])))}),s(r,"$to_s",C("separator"))}(d[0],u("Tag"),d),function(e,o){var i=l(e,o,"SeparatorComma");return s(i,"$to_s",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(r(s,a(s,"to_s",e,!1,!0),"to_s",[],o),"-comma")})}(d[0],u("Separator")),function(e,o){var i=l(e,o,"SeparatorDot");return s(i,"$to_s",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(r(s,a(s,"to_s",e,!1,!0),"to_s",[],o),"-dot")})}(d[0],u("Separator")),function(e,o){var i=l(e,o,"SeparatorColon");return s(i,"$to_s",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(r(s,a(s,"to_s",e,!1,!0),"to_s",[],o),"-colon")})}(d[0],u("Separator")),function(e,o){var i=l(e,o,"SeparatorSpace");return s(i,"$to_s",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(r(s,a(s,"to_s",e,!1,!0),"to_s",[],o),"-space")})}(d[0],u("Separator")),function(e,o){var i=l(e,o,"SeparatorSlash");return s(i,"$to_s",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(r(s,a(s,"to_s",e,!1,!0),"to_s",[],o),"-slash")})}(d[0],u("Separator")),function(e,o){var i=l(e,o,"SeparatorDash");return s(i,"$to_s",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(r(s,a(s,"to_s",e,!1,!0),"to_s",[],o),"-dash")})}(d[0],u("Separator")),function(e,o){var i=l(e,o,"SeparatorQuote"),c=i.$$prototype;return c.type=t,s(i,"$to_s",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(n(r(s,a(s,"to_s",e,!1,!0),"to_s",[],o),"-quote-"),s.type.$to_s())})}(d[0],u("Separator")),function(e,o){var i=l(e,o,"SeparatorAt");return s(i,"$to_s",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(r(s,a(s,"to_s",e,!1,!0),"to_s",[],o),"-at")})}(d[0],u("Separator")),function(e,o){var i=l(e,o,"SeparatorIn");return s(i,"$to_s",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(r(s,a(s,"to_s",e,!1,!0),"to_s",[],o),"-in")})}(d[0],u("Separator")),function(e,o){var i=l(e,o,"SeparatorOn");return s(i,"$to_s",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(r(s,a(s,"to_s",e,!1,!0),"to_s",[],o),"-on")})}(d[0],u("Separator")),function(e,o){var i=l(e,o,"SeparatorAnd");return s(i,"$to_s",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(r(s,a(s,"to_s",e,!1,!0),"to_s",[],o),"-and")})}(d[0],u("Separator")),function(e,o){var i=l(e,o,"SeparatorT");return s(i,"$to_s",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(r(s,a(s,"to_s",e,!1,!0),"to_s",[],o),"-T")})}(d[0],u("Separator")),function(e,o){var i=l(e,o,"SeparatorW");return s(i,"$to_s",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(r(s,a(s,"to_s",e,!1,!0),"to_s",[],o),"-W")})}(d[0],u("Separator"))}(c[0],c),function(i,c){var f=g(i,"Chronic"),d=[f].concat(c),u=e.$r(d);return function(n,i,a){var r=l(n,i,"Sign"),d=[r].concat(a),c=e.$r(d);return m(r,"$scan",function(n){var i=this;return h(n,"each",[],function e(n){var i=e.$$s==null?this:e.$$s,s=t;return n==null&&(n=t),o(s=i.$scan_for_plus(n))?(n.$tag(s),t):o(s=i.$scan_for_minus(n))?(n.$tag(s),t):t},{$$s:i})}),m(r,"$scan_for_plus",function(t){var n=this;return n.$scan_for(t,c("SignPlus"),b(new Map([[/^\+$/,"plus"]])))}),m(r,"$scan_for_minus",function(t){var n=this;return n.$scan_for(t,c("SignMinus"),b(new Map([[/^-$/,"minus"]])))}),s(r,"$to_s",C("sign"))}(d[0],u("Tag"),d),function(e,o){var i=l(e,o,"SignPlus");return s(i,"$to_s",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(r(s,a(s,"to_s",e,!1,!0),"to_s",[],o),"-plus")})}(d[0],u("Sign")),function(e,o){var i=l(e,o,"SignMinus");return s(i,"$to_s",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(r(s,a(s,"to_s",e,!1,!0),"to_s",[],o),"-minus")})}(d[0],u("Sign"))}(c[0],c),function(n,i){var r=g(n,"Chronic"),a=[r].concat(i),c=e.$r(a);return function(e,n){var i=l(e,n,"TimeZone");return m(i,"$scan",function(n){var i=this;return h(n,"each",[],function e(n){var i=e.$$s==null?this:e.$$s,s=t;return n==null&&(n=t),o(s=i.$scan_for_all(n))?(n.$tag(s),t):t},{$$s:i})}),m(i,"$scan_for_all",function(t){var n=this;return n.$scan_for(t,n,b(new Map([[/[PMCE][DS]T|UTC/i,"tz"],[/(tzminus)?\d{2}:?\d{2}/,"tz"]])))}),s(i,"$to_s",C("timezone"))}(a[0],c("Tag"))}(c[0],c),F.$require("strscan"),function(a,r){var d=g(a,"Chronic"),c=[d].concat(r);return function(a,r,c){var g=l(a,r,"Numerizer"),d=[g].concat(c),p=e.$r(d);return f(d[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"]]),f(d[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"]]),f(d[0],"TEN_PREFIXES",[["twenty",20],["thirty",30],["forty",40],["fourty",40],["fifty",50],["sixty",60],["seventy",70],["eighty",80],["ninety",90]]),f(d[0],"BIG_PREFIXES",[["hundred",100],["thousand",1e3],["million",1e6],["billion",1e9],["trillion",1e12]]),m(g,"$numerize",function(s){var a=this;return s=s.$dup(),s=s.$gsub(/ +|([^\d])-([^\d])/,"\\1 \\2"),s=s.$gsub(/a half/,"haAlf"),h(p("DIRECT_NUMS"),"each",[],function(o){return o==null&&(o=t),s=s.$gsub(M([o["$[]"](0)],"i"),n("<num>",o["$[]"](1)))}),h(p("ORDINALS"),"each",[],function(o){return o==null&&(o=t),s=s.$gsub(M([o["$[]"](0)],"i"),n(n("<num>",o["$[]"](1)),o["$[]"](0)["$[]"](-2,2)))}),h(p("TEN_PREFIXES"),"each",[],function(o){return o==null&&(o=t),s=h(s,"gsub",[M(["(?:",o["$[]"](0),") *<num>(\\d(?=[^\\d]|$))*"],"i")],function(){var s;return n("<num>",n(o["$[]"](1),((s=E["~"])===t?t:s["$[]"](1)).$to_i()).$to_s())})}),h(p("TEN_PREFIXES"),"each",[],function(o){return o==null&&(o=t),s=h(s,"gsub",[M([o["$[]"](0)],"i")],function(){return n("<num>",o["$[]"](1).$to_s())})}),h(p("BIG_PREFIXES"),"each",[],function e(a){var r=e.$$s==null?this:e.$$s;return a==null&&(a=t),s=h(s,"gsub",[M(["(?:<num>)?(\\d*) *",a["$[]"](0)],"i")],function(){var s;return o(((s=E["~"])===t?t:s["$[]"](1))["$empty?"]())?a["$[]"](1):n("<num>",i(a["$[]"](1),((s=E["~"])===t?t:s["$[]"](1)).$to_i()).$to_s())}),r.$andition(s)},{$$s:a}),s=h(s,"gsub",[/(\d+)(?: | and |-)*haAlf/i],function(){var s;return n(((s=E["~"])===t?t:s["$[]"](1)).$to_f(),.5).$to_s()}),s.$gsub(/<num>/,"")}),function(i,a){var r=[i].concat(a),c=e.$r(r);return i.$private(),s(i,"$andition",function(i){for(var a=t,a=c("StringScanner").$new(i);o(a.$scan_until(/<num>(\d+)( | and )<num>(\d+)(?=[^\w]|$)/i));)(o(a["$[]"](2)["$=~"](/and/))||o(v(a["$[]"](1).$size(),a["$[]"](3).$size())))&&(i["$[]="](e.Range.$new(u(a.$pos(),a.$matched_size()),u(a.$pos(),1),!1),n("<num>",n(a["$[]"](1).$to_i(),a["$[]"](3).$to_i()).$to_s())),a.$reset())})}(e.get_singleton_class(g),d)}(c[0],null,c)}(c[0],c),function(e,o){var a=g(e,"Chronic"),r=[a].concat(o);return function(e,o){var a=l(e,o,"Season");return a.$attr_reader("start"),a.$attr_reader("end"),s(a,"$initialize",function(t,n){var s=this;return s.start=t,s.end=n}),m(a,"$find_next_season",function(s,o){var a=t,r=t,a=["spring","summer","autumn","winter"],r=n(a.$index(s),i(1,o))["$%"](4);return a["$[]"](r)}),m(a,"$season_after",function(t){var n=this;return n.$find_next_season(t,1)}),m(a,"$season_before",function(t){var n=this;return n.$find_next_season(t,-1)})}(r[0],null)}(c[0],c),function(i,a){var c=g(i,"Chronic"),r=[c].concat(a),d=e.$r(r);return function(i,a,r){var c=l(i,a,"Repeater"),u=[c].concat(r),d=e.$r(u),f=c.$$prototype;return f.now=t,m(c,"$scan",function(n,s){var i=this;return h(n,"each",[],function e(n){var a=e.$$s==null?this:e.$$s,i=t;return n==null&&(n=t),o(i=a.$scan_for_season_names(n,s))?(n.$tag(i),t):o(i=a.$scan_for_month_names(n,s))?(n.$tag(i),t):o(i=a.$scan_for_day_names(n,s))?(n.$tag(i),t):o(i=a.$scan_for_day_portions(n,s))?(n.$tag(i),t):o(i=a.$scan_for_times(n,s))?(n.$tag(i),t):o(i=a.$scan_for_units(n,s))?(n.$tag(i),t):t},{$$s:i})}),m(c,"$scan_for_season_names",function(t,n){var s=this;return n==null&&(n=new Map),s.$scan_for(t,d("RepeaterSeasonName"),b(new Map([[/^springs?$/,"spring"],[/^summers?$/,"summer"],[/^(autumn)|(fall)s?$/,"autumn"],[/^winters?$/,"winter"]])),n)},-2),m(c,"$scan_for_month_names",function(t,n){var s=this;return n==null&&(n=new Map),s.$scan_for(t,d("RepeaterMonthName"),b(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"]])),n)},-2),m(c,"$scan_for_day_names",function(t,n){var s=this;return n==null&&(n=new Map),s.$scan_for(t,d("RepeaterDayName"),b(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"]])),n)},-2),m(c,"$scan_for_day_portions",function(t,n){var s=this;return n==null&&(n=new Map),s.$scan_for(t,d("RepeaterDayPortion"),b(new Map([[/^ams?$/,"am"],[/^pms?$/,"pm"],[/^mornings?$/,"morning"],[/^afternoons?$/,"afternoon"],[/^evenings?$/,"evening"],[/^(night|nite)s?$/,"night"]])),n)},-2),m(c,"$scan_for_times",function(t,n){var s=this;return n==null&&(n=new Map),s.$scan_for(t,d("RepeaterTime"),/^\d{1,2}(:?\d{1,2})?([.:]?\d{1,2}([.:]\d{1,6})?)?$/,n)},-2),m(c,"$scan_for_units",function(s,i){try{var a=x("return");return i==null&&(i=new Map),h(b(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 e(r,c){var l=t,u=t;if(r==null&&(r=t),c==null&&(c=t),o(r["$=~"](s.$word())))l=n("Repeater",c.$to_s().$capitalize()),u=d("Chronic").$const_get(l),a.$throw(u.$new(c,i),e.$$is_lambda);else return t},{$$ret:a}),t}catch(e){if(e===a)return e.$v;throw e}finally{a.is_orphan=!0}},-2),s(c,"$<=>",function(t){var n=this;return n.$width()["$<=>"](t.$width())}),s(c,"$width",function(){var t=this;return t.$raise("Repeater#width must be overridden in subclasses")}),s(c,"$next",function(){var s=this;return o(s.now)?t:s.$raise("Start point must be set before calling #next")}),s(c,"$this",function(){var s=this;return o(s.now)?t:s.$raise("Start point must be set before calling #this")}),s(c,"$to_s",C("repeater"))}(r[0],d("Tag"),r)}(c[0],c),function(c,h){var b=g(c,"Chronic"),m=[b].concat(h),j=e.$r(m);return function(c,h,m){var b=l(c,h,"RepeaterYear"),j=[b].concat(m),g=e.$r(j),y=b.$$prototype;return y.current_year_start=y.now=t,f(j[0],"YEAR_SECONDS",31536e3),s(b,"$initialize",function e(n,s){var i=e.$$p||t,o=this;return e.$$p=null,s==null&&(s=new Map),r(o,a(o,"initialize",e,!1,!0),"initialize",[n,s],i),o.current_year_start=t},-2),s(b,"$next",function e(s){var l=e.$$p||t,i=this,c=t;if(e.$$p=null,r(i,a(i,"next",e,!1,!0),"next",[s],l),o(i.current_year_start))c=d(s,"future")?1:-1,i.current_year_start=g("Chronic").$construct(n(i.current_year_start.$year(),c));else switch(s.valueOf()){case"future":i.current_year_start=g("Chronic").$construct(n(i.now.$year(),1));break;case"past":i.current_year_start=g("Chronic").$construct(u(i.now.$year(),1));break;default:t}return g("Span").$new(i.current_year_start,g("Chronic").$construct(n(i.current_year_start.$year(),1)))}),s(b,"$this",function e(s){var l=e.$$p||t,o=this,i=t,c=t;switch(e.$$p=null,s==null&&(s="future"),r(o,a(o,"this",e,!1,!0),"this",[s],l),s.valueOf()){case"future":i=g("Chronic").$construct(o.now.$year(),o.now.$month(),n(o.now.$day(),1)),c=g("Chronic").$construct(n(o.now.$year(),1),1,1);break;case"past":i=g("Chronic").$construct(o.now.$year(),1,1),c=g("Chronic").$construct(o.now.$year(),o.now.$month(),o.now.$day());break;case"none":i=g("Chronic").$construct(o.now.$year(),1,1),c=g("Chronic").$construct(n(o.now.$year(),1),1,1);break;default:t}return g("Span").$new(i,c)},-1),s(b,"$offset",function(n,s,o){var a=this,i=t,r=t,c=t,i=d(o,"future")?1:-1,r=a.$build_offset_time(n.$begin(),s,i),c=a.$build_offset_time(n.$end(),s,i);return g("Span").$new(r,c)}),s(b,"$width",function(){return g("YEAR_SECONDS")}),s(b,"$to_s",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(r(s,a(s,"to_s",e,!1,!0),"to_s",[],o),"-year")}),b.$private(),s(b,"$build_offset_time",function(s,a,r){var u=this,c=t,l=t,d=t,c=n(s.$year(),i(a,r)),l=u.$month_days(c,s.$month()),d=o(v(s.$day(),l))?l:s.$day();return g("Chronic").$construct(c,s.$month(),d,s.$hour(),s.$min(),s.$sec())}),s(b,"$month_days",function(t,n){return o(p("Date")["$leap?"](t))?p(g("RepeaterMonth"),"MONTH_DAYS_LEAP")["$[]"](u(n,1)):p(g("RepeaterMonth"),"MONTH_DAYS")["$[]"](u(n,1))})}(m[0],j("Repeater"),m)}(c[0],c),function(c,u){var v=g(c,"Chronic"),m=[v].concat(u),b=e.$r(m);return function(c,u,m){var v=l(c,u,"RepeaterSeason"),b=[v].concat(m),g=e.$r(b),j=v.$$prototype;return j.now=j.next_season_end=j.next_season_start=t,f(b[0],"SEASON_SECONDS",7862400),f(b[0],"SEASONS",new Map([["spring",g("Season").$new(g("MiniDate").$new(3,20),g("MiniDate").$new(6,20))],["summer",g("Season").$new(g("MiniDate").$new(6,21),g("MiniDate").$new(9,22))],["autumn",g("Season").$new(g("MiniDate").$new(9,23),g("MiniDate").$new(12,21))],["winter",g("Season").$new(g("MiniDate").$new(12,22),g("MiniDate").$new(3,19))]])),s(v,"$initialize",function e(n,s){var i=e.$$p||t,o=this;return e.$$p=null,s==null&&(s=new Map),r(o,a(o,"initialize",e,!1,!0),"initialize",[n,s],i),o.next_season_start=t,o.next_season_end=t},-2),s(v,"$next",function e(n){var c=e.$$p||t,s=this,o=t,i=t;return e.$$p=null,r(s,a(s,"next",e,!1,!0),"next",[n],c),o=d(n,"future")?1:-1,i=g("Season").$find_next_season(s.$find_current_season(g("MiniDate").$from_time(s.now)),o),s.$find_next_season_span(o,i)}),s(v,"$this",function e(s){var f=e.$$p||t,o=this,c=t,l=t,u=t,h=t,m=t;switch(e.$$p=null,s==null&&(s="future"),r(o,a(o,"this",e,!1,!0),"this",[s],f),c=d(s,"future")?1:-1,l=g("Chronic").$construct(o.now.$year(),o.now.$month(),o.now.$day()),u=o.$find_current_season(g("MiniDate").$from_time(o.now)),s.valueOf()){case"past":h=n(l,i(c,o.$num_seconds_til_start(u,c))),m=l;break;case"future":h=n(l,p(g("RepeaterDay"),"DAY_SECONDS")),m=n(l,i(c,o.$num_seconds_til_end(u,c)));break;case"none":h=n(l,i(c,o.$num_seconds_til_start(u,c))),m=n(l,i(c,o.$num_seconds_til_end(u,c)));break;default:t}return o.$construct_season(h,m)},-1),s(v,"$offset",function(t,n,s){var o=this;return g("Span").$new(o.$offset_by(t.$begin(),n,s),o.$offset_by(t.$end(),n,s))}),s(v,"$offset_by",function(s,o,a){var r=t,r=d(a,"future")?1:-1;return n(s,i(i(o,r),g("SEASON_SECONDS")))}),s(v,"$width",function(){return g("SEASON_SECONDS")}),s(v,"$to_s",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(r(s,a(s,"to_s",e,!1,!0),"to_s",[],o),"-season")}),v.$private(),s(v,"$find_next_season_span",function(t,s){var a=this;return o(a.next_season_start)||o(a.next_season_end)||(a.next_season_start=g("Chronic").$construct(a.now.$year(),a.now.$month(),a.now.$day()),a.next_season_end=g("Chronic").$construct(a.now.$year(),a.now.$month(),a.now.$day())),a.next_season_start=n(a.next_season_start,i(t,a.$num_seconds_til_start(s,t))),a.next_season_end=n(a.next_season_end,i(t,a.$num_seconds_til_end(s,t))),a.$construct_season(a.next_season_start,a.next_season_end)}),s(v,"$find_current_season",function(n){return h(["spring","summer","autumn","winter"],"find",[],function(s){return s==null&&(s=t),n["$is_between?"](g("SEASONS")["$[]"](s).$start(),g("SEASONS")["$[]"](s).$end())})}),s(v,"$num_seconds_til",function(s,a){for(var c=this,l=t,r=t,l=g("Chronic").$construct(c.now.$year(),c.now.$month(),c.now.$day()),r=0;!o(g("MiniDate").$from_time(n(l,i(a,r)))["$equals?"](s));)r=n(r,p(g("RepeaterDay"),"DAY_SECONDS"));return r}),s(v,"$num_seconds_til_start",function(t,n){var s=this;return s.$num_seconds_til(g("SEASONS")["$[]"](t).$start(),n)}),s(v,"$num_seconds_til_end",function(t,n){var s=this;return s.$num_seconds_til(g("SEASONS")["$[]"](t).$end(),n)}),s(v,"$construct_season",function(t,n){return g("Span").$new(g("Chronic").$construct(t.$year(),t.$month(),t.$day()),g("Chronic").$construct(n.$year(),n.$month(),n.$day()))})}(m[0],b("Repeater"),m)}(c[0],c),function(o,a){var c=g(o,"Chronic"),r=[c].concat(a),u=e.$r(r);return function(o,a,r){var c=l(o,a,"RepeaterSeasonName"),h=[c].concat(r),u=e.$r(h),m=c.$$prototype;return m.type=m.now=t,f(h[0],"SEASON_SECONDS",7862400),f(h[0],"DAY_SECONDS",86400),s(c,"$next",function(n){var s=this,o=t,o=d(n,"future")?1:-1;return s.$find_next_season_span(o,s.type)}),s(c,"$this",function(s){var o=this,a=t,r=t,c=t,l=t,f=t,h=t,m=t;switch(s==null&&(s="future"),a=d(s,"future")?1:-1,r=u("Chronic").$construct(o.now.$year(),o.now.$month(),o.now.$day()),c=n(r,i(a,o.$num_seconds_til_start(o.type,a))),l=n(r,i(a,o.$num_seconds_til_end(o.type,a))),f=o.$find_current_season(u("MiniDate").$from_time(o.now)),s.valueOf()){case"past":h=c,m=d(f,o.type)?r:l;break;case"future":h=d(f,o.type)?n(r,p(u("RepeaterDay"),"DAY_SECONDS")):c,m=l;break;case"none":h=c,m=l;break;default:t}return o.$construct_season(h,m)},-1),s(c,"$offset",function(t,n,s){var o=this;return u("Span").$new(o.$offset_by(t.$begin(),n,s),o.$offset_by(t.$end(),n,s))}),s(c,"$offset_by",function(s,o,a){var r=t,r=d(a,"future")?1:-1;return n(s,i(i(o,r),p(u("RepeaterYear"),"YEAR_SECONDS")))})}(r[0],u("RepeaterSeason"),r)}(c[0],c),function(c,h){var b=g(c,"Chronic"),m=[b].concat(h),j=e.$r(m);return function(c,h,m){var b=l(c,h,"RepeaterMonth"),j=[b].concat(m),g=e.$r(j),_=b.$$prototype;return _.current_month_start=_.now=t,f(j[0],"MONTH_SECONDS",2592e3),f(j[0],"YEAR_MONTHS",12),f(j[0],"MONTH_DAYS",[31,28,31,30,31,30,31,31,30,31,30,31]),f(j[0],"MONTH_DAYS_LEAP",[31,29,31,30,31,30,31,31,30,31,30,31]),s(b,"$initialize",function e(n,s){var i=e.$$p||t,o=this;return e.$$p=null,s==null&&(s=new Map),r(o,a(o,"initialize",e,!1,!0),"initialize",[n,s],i),o.current_month_start=t},-2),s(b,"$next",function e(s){var c=e.$$p||t,i=this;return e.$$p=null,r(i,a(i,"next",e,!1,!0),"next",[s],c),o(i.current_month_start)?i.current_month_start=i.$offset_by(g("Chronic").$construct(i.current_month_start.$year(),i.current_month_start.$month()),1,s):i.current_month_start=i.$offset_by(g("Chronic").$construct(i.now.$year(),i.now.$month()),1,s),g("Span").$new(i.current_month_start,g("Chronic").$construct(i.current_month_start.$year(),n(i.current_month_start.$month(),1)))}),s(b,"$this",function e(s){var l=e.$$p||t,o=this,i=t,c=t;switch(e.$$p=null,s==null&&(s="future"),r(o,a(o,"this",e,!1,!0),"this",[s],l),s.valueOf()){case"future":i=g("Chronic").$construct(o.now.$year(),o.now.$month(),n(o.now.$day(),1)),c=o.$offset_by(g("Chronic").$construct(o.now.$year(),o.now.$month()),1,"future");break;case"past":i=g("Chronic").$construct(o.now.$year(),o.now.$month()),c=g("Chronic").$construct(o.now.$year(),o.now.$month(),o.now.$day());break;case"none":i=g("Chronic").$construct(o.now.$year(),o.now.$month()),c=o.$offset_by(g("Chronic").$construct(o.now.$year(),o.now.$month()),1,"future");break;default:t}return g("Span").$new(i,c)},-1),s(b,"$offset",function(t,n,s){var o=this;return g("Span").$new(o.$offset_by(t.$begin(),n,s),o.$offset_by(t.$end(),n,s))}),s(b,"$offset_by",function(s,a,r){var j=this,h=t,f=t,p=t,l=t,c=t,m=t,b=t,h=d(r,"future")?1:-1,f=y(i(h,a),g("YEAR_MONTHS")),p=i(h,a)["$%"](g("YEAR_MONTHS")),l=n(s.$year(),f),c=n(s.$month(),p);return o(v(c,g("YEAR_MONTHS")))&&(l=n(l,1),c=u(c,g("YEAR_MONTHS"))),m=j.$month_days(l,c),b=o(v(s.$day(),m))?m:s.$day(),g("Chronic").$construct(l,c,b,s.$hour(),s.$min(),s.$sec())}),s(b,"$width",function(){return g("MONTH_SECONDS")}),s(b,"$to_s",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(r(s,a(s,"to_s",e,!1,!0),"to_s",[],o),"-month")}),b.$private(),s(b,"$month_days",function(t,n){return o(p("Date")["$leap?"](t))?g("MONTH_DAYS_LEAP")["$[]"](u(n,1)):g("MONTH_DAYS")["$[]"](u(n,1))})}(m[0],j("Repeater"),m)}(c[0],c),function(i,c){var m=g(i,"Chronic"),h=[m].concat(c),p=e.$r(h);return function(i,c,h){var p=l(i,c,"RepeaterMonthName"),b=[p].concat(h),m=e.$r(b),g=p.$$prototype;return g.current_month_begin=g.now=g.index=g.type=t,f(b[0],"MONTH_SECONDS",2592e3),f(b[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]])),s(p,"$initialize",function e(n,s){var i=e.$$p||t,o=this;return e.$$p=null,s==null&&(s=new Map),r(o,a(o,"initialize",e,!1,!0),"initialize",[n,s],i),o.current_month_begin=t},-2),s(p,"$next",function e(s){var g=e.$$p||t,i=this,p=t,c=t,l=t,h=t,f=t;if(e.$$p=null,r(i,a(i,"next",e,!1,!0),"next",[s],g),o(i.current_month_begin))switch(s.valueOf()){case"future":i.current_month_begin=m("Chronic").$construct(n(i.current_month_begin.$year(),1),i.current_month_begin.$month());break;case"past":i.current_month_begin=m("Chronic").$construct(u(i.current_month_begin.$year(),1),i.current_month_begin.$month());break;default:t}else{switch(s.valueOf()){case"future":o(O(i.now.$month(),i.$index()))?i.current_month_begin=m("Chronic").$construct(i.now.$year(),i.$index()):o(v(i.now.$month(),i.$index()))&&(i.current_month_begin=m("Chronic").$construct(n(i.now.$year(),1),i.$index()));break;case"none":o(_(i.now.$month(),i.$index()))?i.current_month_begin=m("Chronic").$construct(i.now.$year(),i.$index()):o(v(i.now.$month(),i.$index()))&&(i.current_month_begin=m("Chronic").$construct(n(i.now.$year(),1),i.$index()));break;case"past":o(j(i.now.$month(),i.$index()))?i.current_month_begin=m("Chronic").$construct(i.now.$year(),i.$index()):o(O(i.now.$month(),i.$index()))&&(i.current_month_begin=m("Chronic").$construct(u(i.now.$year(),1),i.$index()));break;default:t}o(p=i.current_month_begin)?p:i.$raise("Current month should be set by now")}return c=i.current_month_begin.$year(),l=i.current_month_begin.$month(),d(l,12)?(h=n(c,1),f=1):(h=c,f=n(l,1)),m("Span").$new(i.current_month_begin,m("Chronic").$construct(h,f))}),s(p,"$this",function e(n){var o=e.$$p||t,s=this;switch(e.$$p=null,n==null&&(n="future"),r(s,a(s,"this",e,!1,!0),"this",[n],o),n.valueOf()){case"past":return s.$next(n);case"future":case"none":return s.$next("none");default:return t}},-1),s(p,"$width",function(){return m("MONTH_SECONDS")}),s(p,"$index",function(){var n=this,s=t;return n.index=o(s=n.index)?s:m("MONTHS")["$[]"](n.type)}),s(p,"$to_s",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(n(r(s,a(s,"to_s",e,!1,!0),"to_s",[],o),"-monthname-"),s.type.$to_s())})}(h[0],p("Repeater"),h)}(c[0],c),function(c,u){var v=g(c,"Chronic"),m=[v].concat(u),b=e.$r(m);return function(c,u,m){var v=l(c,u,"RepeaterFortnight"),b=[v].concat(m),g=e.$r(b),j=v.$$prototype;return j.current_fortnight_start=j.now=t,f(b[0],"FORTNIGHT_SECONDS",1209600),s(v,"$initialize",function e(n,s){var i=e.$$p||t,o=this;return e.$$p=null,s==null&&(s=new Map),r(o,a(o,"initialize",e,!1,!0),"initialize",[n,s],i),o.current_fortnight_start=t},-2),s(v,"$next",function e(s){var v=e.$$p||t,c=this,u=t,l=t,m=t,f=t;if(e.$$p=null,r(c,a(c,"next",e,!1,!0),"next",[s],v),o(c.current_fortnight_start))u=d(s,"future")?1:-1,c.current_fortnight_start=n(c.current_fortnight_start,i(u,g("FORTNIGHT_SECONDS")));else switch(s.valueOf()){case"future":l=g("RepeaterDayName").$new("sunday"),l["$start="](c.now),m=l.$next("future"),c.current_fortnight_start=m.$begin();break;case"past":l=g("RepeaterDayName").$new("sunday"),l["$start="](n(c.now,p(g("RepeaterDay"),"DAY_SECONDS"))),h(2,"times",[],function(){return l.$next("past")}),f=l.$next("past"),c.current_fortnight_start=f.$begin();break;default:t}return g("Span").$new(c.current_fortnight_start,n(c.current_fortnight_start,g("FORTNIGHT_SECONDS")))}),s(v,"$this",function e(s){var m=e.$$p||t,o=this,c=t,i=t,u=t,l=t,h=t;switch(e.$$p=null,s==null&&(s="future"),r(o,a(o,"this",e,!1,!0),"this",[s],m),d(s,"none")&&(s="future"),s.valueOf()){case"future":return c=n(g("Chronic").$construct(o.now.$year(),o.now.$month(),o.now.$day(),o.now.$hour()),p(g("RepeaterHour"),"HOUR_SECONDS")),i=g("RepeaterDayName").$new("sunday"),i["$start="](o.now),i.$this("future"),u=i.$this("future"),l=u.$begin(),g("Span").$new(c,l);case"past":return l=g("Chronic").$construct(o.now.$year(),o.now.$month(),o.now.$day(),o.now.$hour()),i=g("RepeaterDayName").$new("sunday"),i["$start="](o.now),h=i.$next("past"),c=h.$begin(),g("Span").$new(c,l);default:return t}},-1),s(v,"$offset",function(s,o,a){var r=t,r=d(a,"future")?1:-1;return n(s,i(i(r,o),g("FORTNIGHT_SECONDS")))}),s(v,"$width",function(){return g("FORTNIGHT_SECONDS")}),s(v,"$to_s",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(r(s,a(s,"to_s",e,!1,!0),"to_s",[],o),"-fortnight")})}(m[0],b("Repeater"),m)}(c[0],c),function(c,u){var m=g(c,"Chronic"),h=[m].concat(u),v=e.$r(h);return function(c,u,h){var g=l(c,u,"RepeaterWeek"),v=[g].concat(h),m=e.$r(v),b=g.$$prototype;return b.current_week_start=b.now=t,f(v[0],"WEEK_SECONDS",604800),s(g,"$initialize",function e(n,s){var i=e.$$p||t,o=this;return e.$$p=null,s==null&&(s=new Map),r(o,a(o,"initialize",e,!1,!0),"initialize",[n,s],i),o.current_week_start=t},-2),s(g,"$next",function e(s){var g=e.$$p||t,c=this,u=t,l=t,h=t,f=t;if(e.$$p=null,r(c,a(c,"next",e,!1,!0),"next",[s],g),o(c.current_week_start))u=d(s,"future")?1:-1,c.current_week_start=n(c.current_week_start,i(u,m("WEEK_SECONDS")));else switch(s.valueOf()){case"future":l=m("RepeaterDayName").$new("sunday"),l["$start="](c.now),h=l.$next("future"),c.current_week_start=h.$begin();break;case"past":l=m("RepeaterDayName").$new("sunday"),l["$start="](n(c.now,p(m("RepeaterDay"),"DAY_SECONDS"))),l.$next("past"),f=l.$next("past"),c.current_week_start=f.$begin();break;default:t}return m("Span").$new(c.current_week_start,n(c.current_week_start,m("WEEK_SECONDS")))}),s(g,"$this",function e(s){var h=e.$$p||t,o=this,c=t,i=t,u=t,l=t,d=t;switch(e.$$p=null,s==null&&(s="future"),r(o,a(o,"this",e,!1,!0),"this",[s],h),s.valueOf()){case"future":return c=n(m("Chronic").$time_class().$local(o.now.$year(),o.now.$month(),o.now.$day(),o.now.$hour()),p(m("RepeaterHour"),"HOUR_SECONDS")),i=m("RepeaterDayName").$new("sunday"),i["$start="](o.now),u=i.$this("future"),l=u.$begin(),m("Span").$new(c,l);case"past":return l=m("Chronic").$time_class().$local(o.now.$year(),o.now.$month(),o.now.$day(),o.now.$hour()),i=m("RepeaterDayName").$new("sunday"),i["$start="](o.now),d=i.$next("past"),c=d.$begin(),m("Span").$new(c,l);case"none":return i=m("RepeaterDayName").$new("sunday"),i["$start="](o.now),d=i.$next("past"),c=d.$begin(),m("Span").$new(c,n(c,m("WEEK_SECONDS")));default:return t}},-1),s(g,"$offset",function(s,o,a){var r=t,r=d(a,"future")?1:-1;return n(s,i(i(r,o),m("WEEK_SECONDS")))}),s(g,"$width",function(){return m("WEEK_SECONDS")}),s(g,"$to_s",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(r(s,a(s,"to_s",e,!1,!0),"to_s",[],o),"-week")})}(h[0],v("Repeater"),h)}(c[0],c),function(c,h){var v=g(c,"Chronic"),m=[v].concat(h),b=e.$r(m);return function(c,h,m){var v=l(c,h,"RepeaterWeekend"),b=[v].concat(m),g=e.$r(b),j=v.$$prototype;return j.current_week_start=j.now=t,f(b[0],"WEEKEND_SECONDS",172800),s(v,"$initialize",function e(n,s){var i=e.$$p||t,o=this;return e.$$p=null,s==null&&(s=new Map),r(o,a(o,"initialize",e,!1,!0),"initialize",[n,s],i),o.current_week_start=t},-2),s(v,"$next",function e(s){var f=e.$$p||t,c=this,u=t,l=t,h=t,m=t;if(e.$$p=null,r(c,a(c,"next",e,!1,!0),"next",[s],f),o(c.current_week_start))u=d(s,"future")?1:-1,c.current_week_start=n(c.current_week_start,i(u,p(g("RepeaterWeek"),"WEEK_SECONDS")));else switch(s.valueOf()){case"future":l=g("RepeaterDayName").$new("saturday"),l["$start="](c.now),h=l.$next("future"),c.current_week_start=h.$begin();break;case"past":l=g("RepeaterDayName").$new("saturday"),l["$start="](n(c.now,p(g("RepeaterDay"),"DAY_SECONDS"))),m=l.$next("past"),c.current_week_start=m.$begin();break;default:t}return g("Span").$new(c.current_week_start,n(c.current_week_start,g("WEEKEND_SECONDS")))}),s(v,"$this",function e(s){var d=e.$$p||t,i=this,o=t,c=t,l=t;switch(e.$$p=null,s==null&&(s="future"),r(i,a(i,"this",e,!1,!0),"this",[s],d),s.valueOf()){case"future":case"none":return o=g("RepeaterDayName").$new("saturday"),o["$start="](i.now),c=o.$this("future"),g("Span").$new(c.$begin(),n(c.$begin(),g("WEEKEND_SECONDS")));case"past":return o=g("RepeaterDayName").$new("saturday"),o["$start="](i.now),l=o.$this("past"),g("Span").$new(l.$begin(),n(l.$begin(),g("WEEKEND_SECONDS")));default:return t}},-1),s(v,"$offset",function(s,o,a){var l=t,r=t,c=t,l=d(a,"future")?1:-1,r=g("RepeaterWeekend").$new("weekend");return r["$start="](s.$begin()),c=n(r.$next(a).$begin(),i(i(u(o,1),l),p(g("RepeaterWeek"),"WEEK_SECONDS"))),g("Span").$new(c,n(c,u(s.$end(),s.$begin())))}),s(v,"$width",function(){return g("WEEKEND_SECONDS")}),s(v,"$to_s",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(r(s,a(s,"to_s",e,!1,!0),"to_s",[],o),"-weekend")})}(m[0],b("Repeater"),m)}(c[0],c),function(c,u){var p=g(c,"Chronic"),m=[p].concat(u),v=e.$r(m);return function(c,u,m){var p=l(c,u,"RepeaterWeekday"),v=[p].concat(m),g=e.$r(v),b=p.$$prototype;return b.current_weekday_start=b.now=t,f(v[0],"DAY_SECONDS",86400),f(v[0],"DAYS",new Map([["sunday",0],["monday",1],["tuesday",2],["wednesday",3],["thursday",4],["friday",5],["saturday",6]])),s(p,"$initialize",function e(n,s){var i=e.$$p||t,o=this;return e.$$p=null,s==null&&(s=new Map),r(o,a(o,"initialize",e,!1,!0),"initialize",[n,s],i),o.current_weekday_start=t},-2),s(p,"$next",function e(s){var u=e.$$p||t,c=this,l=t;if(e.$$p=null,r(c,a(c,"next",e,!1,!0),"next",[s],u),l=d(s,"future")?1:-1,o(c.current_weekday_start))(function(){try{var e=x("break");return h(c,"loop",[],function s(){var a=s.$$s==null?this:s.$$s;if(a.current_weekday_start==null&&(a.current_weekday_start=t),a.current_weekday_start=n(a.current_weekday_start,i(l,g("DAY_SECONDS"))),o(a["$is_weekday?"](a.current_weekday_start.$wday())))e.$throw(t,s.$$is_lambda);else return t},{$$s:c})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}})();else for(c.current_weekday_start=g("Chronic").$construct(c.now.$year(),c.now.$month(),c.now.$day()),c.current_weekday_start=n(c.current_weekday_start,i(l,g("DAY_SECONDS")));!o(c["$is_weekday?"](c.current_weekday_start.$wday()));)c.current_weekday_start=n(c.current_weekday_start,i(l,g("DAY_SECONDS")));return g("Span").$new(c.current_weekday_start,n(c.current_weekday_start,g("DAY_SECONDS")))}),s(p,"$this",function e(n){var o=e.$$p||t,s=this;switch(e.$$p=null,n==null&&(n="future"),r(s,a(s,"this",e,!1,!0),"this",[n],o),n.valueOf()){case"past":return s.$next("past");case"future":case"none":return s.$next("future");default:return t}},-1),s(p,"$offset",function(s,a,r){for(var h=this,u=t,l=t,c=t,u=d(r,"future")?1:-1,l=0,c=0;!d(l,a);)c=n(c,i(u,g("DAY_SECONDS"))),o(h["$is_weekday?"](n(s.$begin(),c).$wday()))&&(l=n(l,1));return n(s,c)}),s(p,"$width",function(){return g("DAY_SECONDS")}),s(p,"$to_s",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(r(s,a(s,"to_s",e,!1,!0),"to_s",[],o),"-weekday")}),p.$private(),s(p,"$is_weekend?",function(n){var s=this,i=t;return o(i=n["$=="](s.$symbol_to_number("saturday")))?i:n["$=="](s.$symbol_to_number("sunday"))}),s(p,"$is_weekday?",function(t){var n=this;return n["$is_weekend?"](t)["$!"]()}),s(p,"$symbol_to_number",function(n){var i=this,s=t;return o(s=g("DAYS")["$[]"](n))?s:i.$raise("Invalid symbol specified")})}(m[0],v("Repeater"),m)}(c[0],c),function(c,u){var m=g(c,"Chronic"),h=[m].concat(u),p=e.$r(h);return function(c,u,h){var p=l(c,u,"RepeaterDay"),g=[p].concat(h),m=e.$r(g),v=p.$$prototype;return v.current_day_start=v.now=t,f(g[0],"DAY_SECONDS",86400),s(p,"$initialize",function e(n,s){var i=e.$$p||t,o=this;return e.$$p=null,s==null&&(s=new Map),r(o,a(o,"initialize",e,!1,!0),"initialize",[n,s],i),o.current_day_start=t},-2),s(p,"$next",function e(s){var u=e.$$p||t,c=this,l=t;return e.$$p=null,r(c,a(c,"next",e,!1,!0),"next",[s],u),o(c.current_day_start)||(c.current_day_start=m("Chronic").$time_class().$local(c.now.$year(),c.now.$month(),c.now.$day())),l=d(s,"future")?1:-1,c.current_day_start=n(c.current_day_start,i(l,m("DAY_SECONDS"))),m("Span").$new(c.current_day_start,n(c.current_day_start,m("DAY_SECONDS")))}),s(p,"$this",function e(s){var l=e.$$p||t,o=this,i=t,c=t;switch(e.$$p=null,s==null&&(s="future"),r(o,a(o,"this",e,!1,!0),"this",[s],l),s.valueOf()){case"future":i=m("Chronic").$construct(o.now.$year(),o.now.$month(),o.now.$day(),o.now.$hour()),c=n(m("Chronic").$construct(o.now.$year(),o.now.$month(),o.now.$day()),m("DAY_SECONDS"));break;case"past":i=m("Chronic").$construct(o.now.$year(),o.now.$month(),o.now.$day()),c=m("Chronic").$construct(o.now.$year(),o.now.$month(),o.now.$day(),o.now.$hour());break;case"none":i=m("Chronic").$construct(o.now.$year(),o.now.$month(),o.now.$day()),c=n(m("Chronic").$construct(o.now.$year(),o.now.$month(),o.now.$day()),m("DAY_SECONDS"));break;default:t}return m("Span").$new(i,c)},-1),s(p,"$offset",function(s,o,a){var r=t,r=d(a,"future")?1:-1;return n(s,i(i(r,o),m("DAY_SECONDS")))}),s(p,"$width",function(){return m("DAY_SECONDS")}),s(p,"$to_s",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(r(s,a(s,"to_s",e,!1,!0),"to_s",[],o),"-day")})}(h[0],p("Repeater"),h)}(c[0],c),function(c,u){var m=g(c,"Chronic"),h=[m].concat(u),v=e.$r(h);return function(c,u,h){var m=l(c,u,"RepeaterDayName"),b=[m].concat(h),g=e.$r(b),v=m.$$prototype;return v.current_date=v.now=v.type=t,f(b[0],"DAY_SECONDS",86400),s(m,"$initialize",function e(n,s){var i=e.$$p||t,o=this;return e.$$p=null,s==null&&(s=new Map),r(o,a(o,"initialize",e,!1,!0),"initialize",[n,s],i),o.current_date=t},-2),s(m,"$next",function e(s){var m=e.$$p||t,c=this,l=t,h=t,u=t;if(e.$$p=null,r(c,a(c,"next",e,!1,!0),"next",[s],m),l=d(s,"future")?1:-1,o(c.current_date))c.current_date=n(c.current_date,i(l,7));else for(c.current_date=p("Date").$new(c.now.$year(),c.now.$month(),c.now.$day()),c.current_date=n(c.current_date,l),h=c.$symbol_to_number(c.type);A(c.current_date.$wday(),h);)c.current_date=n(c.current_date,l);return u=c.current_date.$succ(),g("Span").$new(g("Chronic").$construct(c.current_date.$year(),c.current_date.$month(),c.current_date.$day()),g("Chronic").$construct(u.$year(),u.$month(),u.$day()))}),s(m,"$this",function e(n){var o=e.$$p||t,s=this;return e.$$p=null,n==null&&(n="future"),r(s,a(s,"this",e,!1,!0),"this",[n],o),d(n,"none")&&(n="future"),s.$next(n)},-1),s(m,"$width",function(){return g("DAY_SECONDS")}),s(m,"$to_s",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(n(r(s,a(s,"to_s",e,!1,!0),"to_s",[],o),"-dayname-"),s.type.$to_s())}),m.$private(),s(m,"$symbol_to_number",function(n){var a=this,s=t,i=t,s=new Map([["sunday",0],["monday",1],["tuesday",2],["wednesday",3],["thursday",4],["friday",5],["saturday",6]]);return o(i=s["$[]"](n))?i:a.$raise("Invalid symbol specified")})}(h[0],v("Repeater"),h)}(c[0],c),function(c,h){var b=g(c,"Chronic"),m=[b].concat(h),j=e.$r(m);return function(c,h,m){var b=l(c,h,"RepeaterDayPortion"),_=[b].concat(m),g=e.$r(_),j=b.$$prototype;return j.type=j.range=j.current_span=j.now=t,f(_[0],"PORTIONS",new Map([["am",e.Range.$new(0,u(i(i(12,60),60),1),!1)],["pm",e.Range.$new(i(i(12,60),60),u(i(i(24,60),60),1),!1)],["morning",e.Range.$new(i(i(6,60),60),i(i(12,60),60),!1)],["afternoon",e.Range.$new(i(i(13,60),60),i(i(17,60),60),!1)],["evening",e.Range.$new(i(i(17,60),60),i(i(20,60),60),!1)],["night",e.Range.$new(i(i(20,60),60),i(i(24,60),60),!1)]])),s(b,"$initialize",function s(c,l){var h=s.$$p||t,d=this,u=t;return s.$$p=null,l==null&&(l=new Map),r(d,a(d,"initialize",s,!1,!0),"initialize",[c,l],h),d.current_span=t,o(c["$kind_of?"](g("Integer")))?d.range=e.Range.$new(i(i(d.type,60),60),i(i(n(d.type,12),60),60),!1):(d.range=g("PORTIONS")["$[]"](c),o(u=d.range)?u:d.$raise("Invalid type '"+c+"' for RepeaterDayPortion")),o(u=d.range)?u:d.$raise("Range should have been set by now")},-2),s(b,"$next",function e(s){var j=e.$$p||t,i=this,l=t,h=t,m=t,f=t,d=t,c=t,p=t,b=t;if(e.$$p=null,r(i,a(i,"next",e,!1,!0),"next",[s],j),o(i.current_span))return l=k("future",h=s)?1:k("past",h)?-1:t,m=g("Chronic").$construct(i.current_span.$begin().$year(),i.current_span.$begin().$month(),n(i.current_span.$begin().$day(),l),i.current_span.$begin().$hour(),i.current_span.$begin().$min(),i.current_span.$begin().$sec()),f=g("Chronic").$construct(i.current_span.$end().$year(),i.current_span.$end().$month(),n(i.current_span.$end().$day(),l),i.current_span.$end().$hour(),i.current_span.$end().$min(),i.current_span.$end().$sec()),i.current_span=g("Span").$new(m,f);if(d=u(i.now,g("Chronic").$construct(i.now.$year(),i.now.$month(),i.now.$day())),o(O(d,i.range.$begin())))switch(s.valueOf()){case"future":c=n(g("Chronic").$construct(i.now.$year(),i.now.$month(),i.now.$day()),i.range.$begin());break;case"past":c=n(g("Chronic").$construct(i.now.$year(),i.now.$month(),u(i.now.$day(),1)),i.range.$begin());break;default:t}else if(o(v(d,i.range.$end())))switch(s.valueOf()){case"future":c=n(g("Chronic").$construct(i.now.$year(),i.now.$month(),n(i.now.$day(),1)),i.range.$begin());break;case"past":c=n(g("Chronic").$construct(i.now.$year(),i.now.$month(),i.now.$day()),i.range.$begin());break;default:t}else switch(s.valueOf()){case"future":c=n(g("Chronic").$construct(i.now.$year(),i.now.$month(),n(i.now.$day(),1)),i.range.$begin());break;case"past":c=n(g("Chronic").$construct(i.now.$year(),i.now.$month(),u(i.now.$day(),1)),i.range.$begin());break;default:t}return p=u(i.range.$end(),i.range.$begin()),b=i.$construct_date_from_reference_and_offset(c,p),i.current_span=g("Span").$new(c,b)}),s(b,"$this",function e(s){var l=e.$$p||t,o=this,i=t,c=t;return e.$$p=null,s==null&&(s="future"),r(o,a(o,"this",e,!1,!0),"this",[s],l),i=n(g("Chronic").$construct(o.now.$year(),o.now.$month(),o.now.$day()),o.range.$begin()),c=o.$construct_date_from_reference_and_offset(i),o.current_span=g("Span").$new(i,c)},-1),s(b,"$offset",function(s,o,a){var r=this,c=t,l=t;return r.now=s.$begin(),c=r.$next(a),l=d(a,"future")?1:-1,n(c,i(i(l,u(o,1)),p(g("RepeaterDay"),"DAY_SECONDS")))}),s(b,"$width",function(){var n=this,s=t;return o(s=n.range)?s:n.$raise("Range has not been set"),o(n.current_span)?n.current_span.$width():o(n.type["$kind_of?"](g("Integer")))?i(i(12,60),60):u(n.range.$end(),n.range.$begin())}),s(b,"$to_s",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(n(r(s,a(s,"to_s",e,!1,!0),"to_s",[],o),"-dayportion-"),s.type.$to_s())}),b.$private(),s(b,"$construct_date_from_reference_and_offset",function(s,a){var d=this,r=t,h=t,c=t,l=t,m=t;return a==null&&(a=t),r=o(h=a)?h:u(d.range.$end(),d.range.$begin()),c=u(r,i(12,60))["$%"](60),l=y(u(r,c),60)["$%"](60),m=n(y(u(u(r,l),c),i(60,60)),s.$hour()["$%"](24)),g("Chronic").$construct(s.$year(),s.$month(),s.$day(),m,l,c)},-2)}(m[0],j("Repeater"),m)}(c[0],c),function(c,h){var p=g(c,"Chronic"),m=[p].concat(h),v=e.$r(m);return function(c,h,m){var g=l(c,h,"RepeaterHour"),v=[g].concat(m),p=e.$r(v),b=g.$$prototype;return b.current_hour_start=b.now=t,f(v[0],"HOUR_SECONDS",3600),s(g,"$initialize",function e(n,s){var i=e.$$p||t,o=this;return e.$$p=null,s==null&&(s=new Map),r(o,a(o,"initialize",e,!1,!0),"initialize",[n,s],i),o.current_hour_start=t},-2),s(g,"$next",function e(s){var h=e.$$p||t,c=this,l=t;if(e.$$p=null,r(c,a(c,"next",e,!1,!0),"next",[s],h),o(c.current_hour_start))l=d(s,"future")?1:-1,c.current_hour_start=n(c.current_hour_start,i(l,p("HOUR_SECONDS")));else switch(s.valueOf()){case"future":c.current_hour_start=p("Chronic").$construct(c.now.$year(),c.now.$month(),c.now.$day(),n(c.now.$hour(),1));break;case"past":c.current_hour_start=p("Chronic").$construct(c.now.$year(),c.now.$month(),c.now.$day(),u(c.now.$hour(),1));break;default:t}return p("Span").$new(c.current_hour_start,n(c.current_hour_start,p("HOUR_SECONDS")))}),s(g,"$this",function e(s){var l=e.$$p||t,o=this,i=t,c=t;switch(e.$$p=null,s==null&&(s="future"),r(o,a(o,"this",e,!1,!0),"this",[s],l),s.valueOf()){case"future":i=p("Chronic").$construct(o.now.$year(),o.now.$month(),o.now.$day(),o.now.$hour(),n(o.now.$min(),1)),c=p("Chronic").$construct(o.now.$year(),o.now.$month(),o.now.$day(),n(o.now.$hour(),1));break;case"past":i=p("Chronic").$construct(o.now.$year(),o.now.$month(),o.now.$day(),o.now.$hour()),c=p("Chronic").$construct(o.now.$year(),o.now.$month(),o.now.$day(),o.now.$hour(),o.now.$min());break;case"none":i=p("Chronic").$construct(o.now.$year(),o.now.$month(),o.now.$day(),o.now.$hour()),c=n(i,p("HOUR_SECONDS"));break;default:t}return p("Span").$new(i,c)},-1),s(g,"$offset",function(s,o,a){var r=t,r=d(a,"future")?1:-1;return n(s,i(i(r,o),p("HOUR_SECONDS")))}),s(g,"$width",function(){return p("HOUR_SECONDS")}),s(g,"$to_s",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(r(s,a(s,"to_s",e,!1,!0),"to_s",[],o),"-hour")})}(m[0],v("Repeater"),m)}(c[0],c),function(c,h){var p=g(c,"Chronic"),m=[p].concat(h),v=e.$r(m);return function(c,h,m){var g=l(c,h,"RepeaterMinute"),v=[g].concat(m),p=e.$r(v),b=g.$$prototype;return b.current_minute_start=b.now=t,f(v[0],"MINUTE_SECONDS",60),s(g,"$initialize",function e(n,s){var i=e.$$p||t,o=this;return e.$$p=null,s==null&&(s=new Map),r(o,a(o,"initialize",e,!1,!0),"initialize",[n,s],i),o.current_minute_start=t},-2),s(g,"$next",function e(s){var h=e.$$p||t,c=this,l=t;if(e.$$p=null,s==null&&(s="future"),r(c,a(c,"next",e,!1,!0),"next",[s],h),o(c.current_minute_start))l=d(s,"future")?1:-1,c.current_minute_start=n(c.current_minute_start,i(l,p("MINUTE_SECONDS")));else switch(s.valueOf()){case"future":c.current_minute_start=p("Chronic").$construct(c.now.$year(),c.now.$month(),c.now.$day(),c.now.$hour(),n(c.now.$min(),1));break;case"past":c.current_minute_start=p("Chronic").$construct(c.now.$year(),c.now.$month(),c.now.$day(),c.now.$hour(),u(c.now.$min(),1));break;default:t}return p("Span").$new(c.current_minute_start,n(c.current_minute_start,p("MINUTE_SECONDS")))},-1),s(g,"$this",function e(s){var l=e.$$p||t,o=this,i=t,c=t;switch(e.$$p=null,s==null&&(s="future"),r(o,a(o,"this",e,!1,!0),"this",[s],l),s.valueOf()){case"future":i=o.now,c=p("Chronic").$construct(o.now.$year(),o.now.$month(),o.now.$day(),o.now.$hour(),o.now.$min());break;case"past":i=p("Chronic").$construct(o.now.$year(),o.now.$month(),o.now.$day(),o.now.$hour(),o.now.$min()),c=o.now;break;case"none":i=p("Chronic").$construct(o.now.$year(),o.now.$month(),o.now.$day(),o.now.$hour(),o.now.$min()),c=n(p("Chronic").$construct(o.now.$year(),o.now.$month(),o.now.$day(),o.now.$hour(),o.now.$min()),p("MINUTE_SECONDS"));break;default:t}return p("Span").$new(i,c)},-1),s(g,"$offset",function(s,o,a){var r=t,r=d(a,"future")?1:-1;return n(s,i(i(r,o),p("MINUTE_SECONDS")))}),s(g,"$width",function(){return p("MINUTE_SECONDS")}),s(g,"$to_s",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(r(s,a(s,"to_s",e,!1,!0),"to_s",[],o),"-minute")})}(m[0],v("Repeater"),m)}(c[0],c),function(c,u){var m=g(c,"Chronic"),h=[m].concat(u),p=e.$r(h);return function(c,u,h){var m=l(c,u,"RepeaterSecond"),g=[m].concat(h),p=e.$r(g),v=m.$$prototype;return v.second_start=v.now=t,f(g[0],"SECOND_SECONDS",1),s(m,"$initialize",function e(n,s){var i=e.$$p||t,o=this;return e.$$p=null,s==null&&(s=new Map),r(o,a(o,"initialize",e,!1,!0),"initialize",[n,s],i),o.second_start=t},-2),s(m,"$next",function e(s){var u=e.$$p||t,c=this,l=t;return e.$$p=null,s==null&&(s="future"),r(c,a(c,"next",e,!1,!0),"next",[s],u),l=d(s,"future")?1:-1,o(c.second_start)?c.second_start=n(c.second_start,i(p("SECOND_SECONDS"),l)):c.second_start=n(c.now,i(l,p("SECOND_SECONDS"))),p("Span").$new(c.second_start,n(c.second_start,p("SECOND_SECONDS")))},-1),s(m,"$this",function e(s){var i=e.$$p||t,o=this;return e.$$p=null,s==null&&(s="future"),r(o,a(o,"this",e,!1,!0),"this",[s],i),p("Span").$new(o.now,n(o.now,1))},-1),s(m,"$offset",function(s,o,a){var r=t,r=d(a,"future")?1:-1;return n(s,i(i(r,o),p("SECOND_SECONDS")))}),s(m,"$width",function(){return p("SECOND_SECONDS")}),s(m,"$to_s",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(r(s,a(s,"to_s",e,!1,!0),"to_s",[],o),"-second")})}(h[0],p("Repeater"),h)}(c[0],c),function(c,m){var p=g(c,"Chronic"),f=[p].concat(m),b=e.$r(f);return function(c,m,f){var p=l(c,m,"RepeaterTime"),w=[p].concat(f),g=e.$r(w),b=p.$$prototype;return b.options=b.current_time=b.now=b.type=t,function(a,r,c){var d=l(a,r,"Tick"),h=[d].concat(c),m=e.$r(h),u=d.$$prototype;return u.time=u.ambiguous=t,d.$attr_accessor("time"),s(d,"$initialize",function(t,n){var s=this;return n==null&&(n=!1),s.time=t,s.ambiguous=n},-2),s(d,"$ambiguous?",D("ambiguous")),s(d,"$*",function(t){var n=this;return m("Tick").$new(i(n.time,t),n.ambiguous)}),s(d,"$to_f",function(){var t=this;return t.time.$to_f()}),s(d,"$to_s",function(){var t=this;return n(t.time.$to_s(),o(t.ambiguous)?"?":"")})}(w[0],null,w),s(p,"$initialize",function(a,r){var h=this,c=t,f=t,p=t,m=t,l=t,b=t,w=t,O=t;return r==null&&(r=new Map),h.current_time=t,h.options=r,c=a.$split(":"),o(v(c.$count(),4))&&h.$raise(g("ArgumentError"),"Time cannot have more than 4 groups of ':'"),o(v(c.$first().$length(),2))&&d(c.$count(),1)&&(o(v(c.$first().$length(),4))&&(f=u(c.$first().$length(),2),c.$insert(1,c.$first()["$[]"](e.Range.$new(f,c.$first().$length(),!1))),c["$[]="](0,c.$first()["$[]"](e.Range.$new(0,u(f,1),!1)))),p=u(c.$first().$length(),2),c.$insert(1,c.$first()["$[]"](e.Range.$new(p,c.$first().$length(),!1))),c["$[]="](0,c.$first()["$[]"](e.Range.$new(0,u(p,1),!1)))),m=!1,l=c.$first().$to_i(),(o(h.options["$[]"]("hours24")["$nil?"]())||S(h.options["$[]"]("hours24")["$nil?"]())&&A(h.options["$[]"]("hours24"),!0))&&((d(c.$first().$length(),1)&&o(v(l,0))||o(j(l,10))&&o(_(l,12))||d(h.options["$[]"]("hours24"),!1)&&o(v(l,0)))&&(m=!0),d(l,12)&&o(m)&&(l=0)),l=i(l,i(60,60)),b=0,w=0,O=0,o(v(c.$count(),1))&&(b=i(c["$[]"](1).$to_i(),60)),o(v(c.$count(),2))&&(w=c["$[]"](2).$to_i()),o(v(c.$count(),3))&&(O=y(c["$[]"](3).$to_f(),10["$**"](c["$[]"](3).$length()))),h.type=g("Tick").$new(n(n(n(l,b),w),O),m)},-2),s(p,"$next",function e(s){var x=e.$$p||t,c=this,p=t,v=t,b=t,l=t,y=t,f=t,m=t,O=t,w=t;return e.$$p=null,r(c,a(c,"next",e,!1,!0),"next",[s],x),p=i(i(60,60),12),v=i(i(60,60),24),b=!1,o(c.current_time)||(b=!0,l=g("Chronic").$time_class().$local(c.now.$year(),c.now.$month(),c.now.$day()),y=u(l,v),f=n(l,v),m=u(l.$gmt_offset(),f.$gmt_offset()),f=n(f,m),h(c,"catch",["done"],function e(){var i=e.$$s==null?this:e.$$s;return i.type==null&&(i.type=t),d(s,"future")?o(i.type["$ambiguous?"]())?h([n(n(l,i.type.$time()),m),n(n(n(l,p),i.type.$time()),m),n(f,i.type.$time())],"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return s.now==null&&(s.now=t),n==null&&(n=t),o(j(n,s.now))?(s.current_time=n,s.$throw("done")):t},{$$s:i}):h([n(n(l,i.type.$time()),m),n(f,i.type.$time())],"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return s.now==null&&(s.now=t),n==null&&(n=t),o(j(n,s.now))?(s.current_time=n,s.$throw("done")):t},{$$s:i}):o(i.type["$ambiguous?"]())?h([n(n(n(l,p),i.type.$time()),m),n(n(l,i.type.$time()),m),n(n(y,i.type.$time()),p)],"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return s.now==null&&(s.now=t),n==null&&(n=t),o(_(n,s.now))?(s.current_time=n,s.$throw("done")):t},{$$s:i}):h([n(n(l,i.type.$time()),m),n(y,i.type.$time())],"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return s.now==null&&(s.now=t),n==null&&(n=t),o(_(n,s.now))?(s.current_time=n,s.$throw("done")):t},{$$s:i})},{$$s:c}),o(O=c.current_time)?O:c.$raise("Current time cannot be nil at this point")),o(b)||(w=o(c.type["$ambiguous?"]())?p:v,c.current_time=n(c.current_time,d(s,"future")?w:w["$-@"]())),g("Span").$new(c.current_time,n(c.current_time,c.$width()))}),s(p,"$this",function e(n){var o=e.$$p||t,s=this;return e.$$p=null,n==null&&(n="future"),r(s,a(s,"this",e,!1,!0),"this",[n],o),d(n,"none")&&(n="future"),s.$next(n)},-1),s(p,"$width",C(1)),s(p,"$to_s",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(n(r(s,a(s,"to_s",e,!1,!0),"to_s",[],o),"-time-"),s.type.$to_s())})}(f[0],b("Repeater"),f)}(c[0],c),function(s,i){var r=g(s,"Chronic"),c=[r].concat(i),a=e.$r(c);return f(c[0],"VERSION","0.10.2"),function(e){return e.$attr_accessor("debug"),e.$attr_accessor("time_class")}(e.get_singleton_class(r),c),r["$debug="](!1),r["$time_class="](p("Time")),m(r,"$parse",function(t,n){return n==null&&(n=new Map),a("Parser").$new(n).$parse(t)},-2),m(r,"$construct",function(s,i,r,c,l,h,m){var b=this,g=t,f=t;return i==null&&(i=1),r==null&&(r=1),c==null&&(c=0),l==null&&(l=0),h==null&&(h=0),m==null&&(m=t),o(j(h,60))&&(l=n(l,y(h,60)),h=h["$%"](60)),o(j(l,60))&&(c=n(c,y(l,60)),l=l["$%"](60)),o(j(c,24))&&(r=n(r,y(c,24)),c=c["$%"](24)),o(g=_(r,56))?g:b.$raise("day must be no more than 56 (makes month resolution easier)"),o(v(r,28))&&(f=o(p("Date")["$leap?"](s))?p(a("Date"),"MONTH_DAYS_LEAP")["$[]"](i):p(a("Date"),"MONTH_DAYS")["$[]"](i),o(v(r,f))&&(i=n(i,y(r,f)),r=r["$%"](f))),o(v(i,12))&&(d(i["$%"](12),0)?(s=n(s,y(u(i,12),12)),i=12):(s=n(s,y(i,12)),i=i["$%"](12))),d(a("Chronic").$time_class().$name(),"Date")?a("Chronic").$time_class().$new(s,i,r):S(a("Chronic").$time_class()["$respond_to?"]("new"))||o(O(a("RUBY_VERSION").$to_f(),1.9))&&d(a("Chronic").$time_class().$name(),"Time")?a("Chronic").$time_class().$local(s,i,r,c,l,h):(d(a("Chronic").$time_class().$name(),"DateTime")&&(m=a("Time").$normalize_offset(m)),a("Chronic").$time_class().$new(s,i,r,c,l,h,m))},-2)}(c[0],c)},Opal.modules["web/gxg"]=function(e){var v=e.module,f=e.const_set,o=e.gvars,O=e.klass,a=e.def,m=e.slice,s=e.truthy,i=e.send,g=e.alias,l=e.eqeq,p=e.thrower,r=e.defs,u=e.rb_gt,b=e.rb_divide,d=e.rb_minus,h=e.rb_plus,j=e.rb_le,y=e.neqeq,_=e.rb_ge,w=e.rb_lt,c=[],t=e.nil,n=e.$$$;return e.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(e,n){var o=v(e,"GxG"),s=[o].concat(n);return f(s[0],"LOG",t),f(s[0],"DISPATCHER",t),f(s[0],"OBJECT_SPACE",new Map([["registry",new Map]]))}(c[0],c),o.object_space=new Map([["registry",new Map]]),function(o,r,c){var d=O(o,r,"Object"),h=[d].concat(c),u=e.$r(h),f=d.$$prototype;return f.uuid=t,d.$private(),a(d,"$logged_in?",function(){return n(u("GxG"),"DISPLAY_DETAILS")["$[]"]("logged_in")}),a(d,"$bytes",function(){var s=m(arguments),o=s;return n(u("GxG"),"ByteArray").$try_convert(o)},-1),a(d,"$new_message",function(){var o=this,a=m(arguments),i=a;return s(o.uuid)||(o.uuid=n("GxG").$uuid_generate().$to_s().$to_sym(),n(n("GxG"),"CHANNELS").$create_channel(o.uuid,o)),n(n(n("GxG"),"Events"),"Message").$new(new Map([["sender",o.uuid],["subject",i["$[]"](1)],["body",i["$[]"](0)]]))},-1),a(d,"$log_unknown",function e(o,a){var r=e.$$p||t,c=this;return e.$$p=null,o==null&&(o=t),a==null&&(a=t),s(n(n("GxG"),"LOG"))?i(n(n("GxG"),"LOG"),"unknown",[o,a,c],r.$to_proc()):t},-1),g(d,"log_trace","log_unknown"),a(d,"$log_fatal",function e(o,a){var r=e.$$p||t,c=this;return e.$$p=null,o==null&&(o=t),a==null&&(a=t),s(n(n("GxG"),"LOG"))?i(n(n("GxG"),"LOG"),"fatal",[o,a,c],r.$to_proc()):t},-1),a(d,"$log_error",function e(o,a){var r=e.$$p||t,c=this;return e.$$p=null,o==null&&(o=t),a==null&&(a=t),s(n(n("GxG"),"LOG"))?i(n(n("GxG"),"LOG"),"error",[o,a,c],r.$to_proc()):t},-1),a(d,"$log_warn",function e(o,a){var r=e.$$p||t,c=this;return e.$$p=null,o==null&&(o=t),a==null&&(a=t),s(n(n("GxG"),"LOG"))?i(n(n("GxG"),"LOG"),"warn",[o,a,c],r.$to_proc()):t},-1),g(d,"log_warning","log_warn"),a(d,"$log_info",function e(o,a){var r=e.$$p||t,c=this;return e.$$p=null,o==null&&(o=t),a==null&&(a=t),s(n(n("GxG"),"LOG"))?i(n(n("GxG"),"LOG"),"info",[o,a,c],r.$to_proc()):t},-1),a(d,"$log_debug",function e(o,a){var r=e.$$p||t,c=this;return e.$$p=null,o==null&&(o=t),a==null&&(a=t),s(n(n("GxG"),"LOG"))?i(n(n("GxG"),"LOG"),"debug",[o,a,c],r.$to_proc()):t},-1),a(d,"$post_event",function e(o,a){var c=e.$$p||t,l=this,r=t;return e.$$p=null,o==null&&(o="root"),a==null&&(a=t),r=!1,s(a["$is_a?"](n(n(n("GxG"),"Events"),"EventDispatcher")))?r=i(a,"post_event",[o],c.$to_proc()):s(n(n("GxG"),"DISPATCHER"))?r=i(n(n("GxG"),"DISPATCHER"),"post_event",[o],c.$to_proc()):l.$log_error("No Event Dispatcher Defined"),r},-1),a(d,"$post_event_at",function e(o,a){var c=e.$$p||t,l=this,r=t;return e.$$p=null,o==null&&(o=u("Time").$now()),a==null&&(a=t),r=t,s(a["$is_a?"](n(n(n("GxG"),"Events"),"EventDispatcher")))?r=i(a,"add_timer",[new Map([["when",o]])],c.$to_proc()):s(n(n("GxG"),"DISPATCHER"))?r=i(n(n("GxG"),"DISPATCHER"),"add_timer",[new Map([["when",o]])],c.$to_proc()):l.$log_error("No Event Dispatcher Defined"),r},-1),a(d,"$post_event_periodic",function e(o,a){var c=e.$$p||t,l=this,r=t;return e.$$p=null,o==null&&(o=.333),a==null&&(a=t),r=t,s(a["$is_a?"](n(n(n("GxG"),"Events"),"EventDispatcher")))?r=i(a,"add_periodic_timer",[new Map([["interval",o]])],c.$to_proc()):s(n(n("GxG"),"DISPATCHER"))?r=i(n(n("GxG"),"DISPATCHER"),"add_periodic_timer",[new Map([["interval",o]])],c.$to_proc()):l.$log_error("No Event Dispatcher Defined"),r},-1),a(d,"$cancel_periodic",function(o,i){var r=this,a=t;return o==null&&(o=t),i==null&&(i=t),a=!1,s(o["$is_a?"](u("Hash")))&&(s(i["$is_a?"](n(n(n("GxG"),"Events"),"EventDispatcher")))?a=i.$cancel_timer(o):s(n(n("GxG"),"DISPATCHER"))?a=n(n("GxG"),"DISPATCHER").$cancel_timer(o):r.$log_error("No Event Dispatcher Defined")),a},-1),d.$public(),a(d,"$is_any?",function(){var c=this,o=t,a=m(arguments),r=a,o=!1;return function(){try{var e=p("break");return i(r.$flatten().$to_enum(),"each",[],function n(i){var a=n.$$s==null?this:n.$$s;if(i==null&&(i=t),l(i.$class(),u("Class")))if(s(a["$is_a?"](i)))o=!0,e.$throw(t,n.$$is_lambda);else return t;else return t},{$$s:c})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}(),o},-1),a(d,"$defederate",function(){var o=this,i=t;return s(o.uuid)&&(i=n(n("GxG"),"CHANNELS").$fetch_channel(o.uuid),s(i)&&n(n("GxG"),"CHANNELS").$destroy_channel(o.uuid)),!0})}(c[0],null,c),function(a,c){var m=v(a,"GxG"),g=[m].concat(c),f=e.$r(g);return r(m,"$uuid_generate",function(){return f("SecureRandom").$uuid()}),r(m,"$passes_needed",function(n,o){var i=t,a=t;return n==null&&(n=0),o==null&&(o=0),s(u(n,0))&&s(u(o,0))?(i=b(n.$to_f(),o.$to_f()),a=d(i,i.$to_i().$to_f()),i=i.$to_i().$to_f(),s(u(a,0))&&(i=h(i,1)),i.$to_i()):0},-1),r(m,"$apportioned_ranges",function(a,r,c){var m=t,f=t,l=t;return a==null&&(a=0),r==null&&(r=0),c==null&&(c=0),m=[],f=n("GxG").$passes_needed(a,r),s(u(f,0))&&(l=c,i(f,"times",[],function(){var o=t;return s(j(h(l,d(r,1)),d(a,1)))?o=h(l,d(r,1)):o=d(a,1),m["$<<"](e.Range.$new(l,o,!1)),l=h(o,1)})),m},-1),r(m,"$valid_uuid?",function(o,i){var a=t;return o==null&&(o=t),i==null&&(i=!0),!!s(o["$is_any?"](n("String"),n("Symbol")))&&(l(i,!0)?a=/[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]/:a=/[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]/,!!s(o.$to_s().$match(a))&&!!l(o.$to_s().$size(),36))},-1),r(m,"$replace_registry",function(n){return o.object_space==null&&(o.object_space=t),n==null&&(n=new Map),o.object_space["$[]="]("registry",n),!0},-1),r(m,"$register",function(n,i){var a=t;return o.object_space==null&&(o.object_space=t),n==null&&(n=t),i==null&&(i=t),s(o.object_space["$[]"]("registry")["$[]"](n.$uuid().$to_s().$to_sym()))||(s(i)?a=f("GxG").$children_of(i).$size():a=0,o.object_space["$[]"]("registry")["$[]="](n.$uuid().$to_s().$to_sym(),new Map([["object",n],["parent",i],["ordinal",a]]))),!0},-1),r(m,"$unregister",function(i){return o.object_space==null&&(o.object_space=t),i==null&&(i=t),s(o.object_space["$[]"]("registry")["$[]"](i.$to_s().$to_sym()))&&y(n(f("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$uuid().$to_s().$to_sym(),i.$to_s().$to_sym())&&o.object_space["$[]"]("registry").$delete(i.$to_s().$to_sym()),!0},-1),r(m,"$register_uuid_list",function(){return o.object_space==null&&(o.object_space=t),o.object_space["$[]"]("registry").$keys()}),r(m,"$record_by_uuid",function(n){var i=t;return o.object_space==null&&(o.object_space=t),n==null&&(n=t),i=t,s(o.object_space["$[]"]("registry")["$[]"](n.$to_s().$to_sym()))&&(i=o.object_space["$[]"]("registry")["$[]"](n.$to_s().$to_sym())),i},-1),r(m,"$object_by_uuid",function(n){var o=t;return n==null&&(n=t),(s(o=f("GxG").$record_by_uuid(n))?o:new Map)["$[]"]("object")},-1),r(m,"$children_of",function(n){var a=t,s=t;return o.object_space==null&&(o.object_space=t),n==null&&(n=t),a=[],s=[],i(o.object_space["$[]"]("registry").$values(),"each",[],function(o){return o==null&&(o=t),l(o["$[]"]("parent").$object_id(),n.$object_id())?s["$<<"](o):t}),s=i(s,"sort",[],function(n,s){return n==null&&(n=t),s==null&&(s=t),n["$[]"]("ordinal")["$<=>"](s["$[]"]("ordinal"))}),i(s,"each",[],function(n){return n==null&&(n=t),a["$<<"](n["$[]"]("object"))}),a},-1),r(m,"$set_ordinal",function(n,o){var l=t,c=t,u=t,a=t,r=t;return n==null&&(n=t),o==null&&(o=0),l=!1,s(n["$is_any?"](f("String"),f("Symbol")))?c=f("GxG").$object_by_uuid(n.$to_sym()):c=n,u=f("GxG").$parent_of(c),s(u)&&(a=f("GxG").$children_of(u),r=a.$find_index(c),s(r)&&(s(_(o,d(a.$size(),1)))?a["$<<"](a.$delete_at(r)):s(w(o,0))?a=a.$unshift(a.$delete_at(r)):a=a.$insert(o,a.$delete_at(r)),i(a,"each_with_index",[],function(n,s){var o,a=t;return n==null&&(n=t),s==null&&(s=t),a=f("GxG").$record_by_uuid(n.$uuid().$to_sym()),(o=["ordinal",s],i(a,"[]=",o),o[o.length-1])}),l=!0)),l},-1),r(m,"$parent_of",function(n){var s=t;return o.object_space==null&&(o.object_space=t),n==null&&(n=t),s=t,function(){try{var e=p("break");return i(o.object_space["$[]"]("registry").$values(),"each",[],function o(i){if(i==null&&(i=t),l(i["$[]"]("object").$object_id(),n.$object_id()))s=i["$[]"]("parent"),e.$throw(t,o.$$is_lambda);else return t})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}(),s},-1),r(m,"$lineage_of",function(n){var o=t,s=t;for(n==null&&(n=t),o=[],s=f("GxG").$parent_of(n);!l(s,t);)o.$unshift(s),s=f("GxG").$parent_of(s);return o},-1)}(c[0],c)},Opal.modules["web/gxg_augments"]=function(e){var l=e.klass,i=e.def,O=e.module,h=e.const_set,E=e.return_ivar,s=e.truthy,b=e.gvars,o=e.send,_=e.alias,A=e.slice,y=e.to_a,p=e.send2,g=e.find_super,u=e.defs,d=e.rb_plus,j=e.rb_lt,C=e.rb_times,a=e.eqeq,r=e.rb_gt,f=e.range,x=e.not,w=e.rb_minus,m=e.neqeq,v=e.thrower,c=[],k=e.$r(c),t=e.nil,n=e.$$$;return e.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,paths_to,to_sym,to_enum,=~,first,dirname,basename,delete,class,gxg_import,try_convert,process"),function(e,n,s){var o=l(e,n,"Buffer"),a=[o].concat(s);return function(e,n){var s=l(e,n,"Array"),o=s.$$prototype;return o.native=t,i(s,"$native_object",function(){var t=this;return t.native})}(a[0],null)}(c[0],null,c),function(e,n){var o=O(e,"GxG"),s=[o].concat(n);return function(e,n){var o=O(e,"Database"),s=[o].concat(n);return l(s[0],null,"Field"),l(s[0],null,"PersistedArray"),(l(s[0],null,"PersistedHash"),t)}(s[0],s)}(c[0],c),function(a,r,c){var d=l(a,r,"Logger"),m=[d].concat(c),u=e.$r(m);return h(m[0],"DEBUG",0),h(m[0],"INFO",1),h(m[0],"WARN",2),h(m[0],"ERROR",3),h(m[0],"FATAL",4),h(m[0],"UNKNOWN",5),h(m[0],"TRACE",5),i(d,"$initialize",function(t){var n=this;return t==null&&(t=3),n.level=t},-1),i(d,"$level",E("level")),i(d,"$level=",function(t){var n=this;return t==null&&(t=3),n.level=t},-1),i(d,"$add",function o(i,a,r,c){var l=o.$$p||t,d=this,h=t,m=t;b.$==null&&(b.$=t),o.$$p=null,i==null&&(i=t),a==null&&(a=t),r==null&&(r=t),c==null&&(c=t),s([n(n("Logger"),"DEBUG"),n(n("Logger"),"INFO"),n(n("Logger"),"WARN"),n(n("Logger"),"ERROR"),n(n("Logger"),"FATAL"),n(n("Logger"),"UNKNOWN")]["$include?"](i))||(i=n(n("Logger"),"UNKNOWN")),s(r)&&(s(a)||(a=r,r=t));try{return s(a)||s(l["$respond_to?"]("call"))&&(a=l.$call()),h=["DEBUG","INFO","WARN","ERROR","FATAL","ANY"],d.$puts(""+h["$[]"](i).$to_s()+", ["+u("Time").$now().$strftime("%Y-%m-%dT%H:%M:%S%z")+"#"+b.$.$inspect()+"] "+u("Time").$now().$to_i().$to_s()+" -- "+r.$inspect()+": "+a.$to_s()+`
`),!0}catch(t){if(e.rescue(t,[u("Exception")])){m=t;try{return d.$log_error(new Map([["error",m],["parameters",new Map([["severity",i],["message",a],["progname",r],["block",l]])]])),!1}finally{e.pop_exception(t)}}else throw t}},-1),i(d,"$debug",function e(n){var s=e.$$p||t,i=this;return e.$$p=null,n==null&&(n=t),o(i,"add",[u("DEBUG"),t,n],s.$to_proc())},-1),i(d,"$info",function e(n){var s=e.$$p||t,i=this;return e.$$p=null,n==null&&(n=t),o(i,"add",[u("INFO"),t,n],s.$to_proc())},-1),i(d,"$warn",function e(n){var s=e.$$p||t,i=this;return e.$$p=null,n==null&&(n=t),o(i,"add",[u("WARN"),t,n],s.$to_proc())},-1),_(d,"warning","warn"),i(d,"$error",function e(n){var s=e.$$p||t,i=this;return e.$$p=null,n==null&&(n=t),o(i,"add",[u("ERROR"),t,n],s.$to_proc())},-1),i(d,"$fatal",function e(n){var s=e.$$p||t,i=this;return e.$$p=null,n==null&&(n=t),o(i,"add",[u("FATAL"),t,n],s.$to_proc())},-1),i(d,"$unknown",function e(n){var s=e.$$p||t,i=this;return e.$$p=null,n==null&&(n=t),o(i,"add",[u("UNKNOWN"),t,n],s.$to_proc())},-1),_(d,"trace","unknown")}(c[0],null,c),function(e,t){var s=l(e,t,"Time");return i(s,"$to_d",function(){var t=this;return t.$BigDecimal(("%"+n(n("Float"),"DIG")+"f")["$%"](t.$to_f()))})}(c[0],null),function(a,r,c){var h=l(a,r,"DateTime"),f=[h].concat(c),m=e.$r(f);return i(h,"$intialize",function e(){var s,a,r=e.$$p||t,i=this;return e.$$p=null,a=A(arguments),s=a,i.data=o(m("Time"),"parse",y(s)),p(i,g(i,"intialize",e,!1,!0),"intialize",y(s),null)},-1),i(h,"$to_time",function(){var t=this;return n("Time").$parse(t.$to_s())}),i(h,"$to_d",function(){var t=this;return t.$BigDecimal(t.$to_time().$to_d())}),u(h,"$now",function(){return m("DateTime").$parse(m("Time").$now().$strftime("%Y-%m-%dT%H:%M:%S%z"))}),i(h,"$to_s",function(){var t=this;return t.$strftime("%Y-%m-%dT%H:%M:%S%z")}),i(h,"$to_json",function(){var t=this;return t.$strftime("%Y-%m-%dT%H:%M:%S%z")}),i(h,"$strftime",function e(n){var o=e.$$p||t,s=this;return e.$$p=null,n==null&&(n="%FT%T%:z"),p(s,g(s,"strftime",e,!1,!0),"strftime",[n],null)},-1),u(h,"$_strptime",function e(n,s){var i=e.$$p||t,o=this;return e.$$p=null,s==null&&(s="%FT%T%z"),p(o,g(o,"_strptime",e,!1,!0),"_strptime",[n,s],null)},-2),i(h,"$iso8601_timediv",function(t){var n=this;return t=t.$to_i(),n.$strftime(d(d("T%T",s(j(t,1))?"":".%0*d"["$%"]([t,C(n.$sec_fraction(),10["$**"](t)).$round()])),"%:z"))}),h.$private("iso8601_timediv"),i(h,"$iso8601",function e(n){var o=e.$$p||t,s=this;return e.$$p=null,n==null&&(n=0),d(p(s,g(s,"iso8601",e,!1,!0),"iso8601",[],null),s.$iso8601_timediv(n))},-1),i(h,"$rfc3339",function(t){var n=this;return t==null&&(t=0),n.$iso8601(t)},-1),i(h,"$xmlschema",function(t){var n=this;return t==null&&(t=0),n.$iso8601(t)},-1),i(h,"$jisx0301",function e(n){var o=e.$$p||t,s=this;return e.$$p=null,n==null&&(n=0),d(p(s,g(s,"jisx0301",e,!1,!0),"jisx0301",[],null),s.$iso8601_timediv(n))},-1)}(c[0],k("Date"),c),function(e,t){var s=l(e,t,"Integer");return i(s,"$to_d",function(){var t=this;return t.$BigDecimal(("%"+n(n("Float"),"DIG")+"f")["$%"](t.$to_f()))})}(c[0],null),function(e,t){var s=l(e,t,"Float");return s.$public(),i(s,"$to_d",function(){var t=this;return t.$BigDecimal(("%"+n(n("Float"),"DIG")+"f")["$%"](t))})}(c[0],null),function(c,u,h){var m=l(c,u,"String"),g=[m].concat(h),p=e.$r(g);return i(m,"$cast_to_ascii",function(){var t=this;return new window.TextDecoder("ascii").decode((new window.TextEncoder).encode(t.$clone().toString())).$to_s()}),i(m,"$valid_date?",function(){var t=this;return!!s(/[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]/.$match(t))}),i(m,"$valid_datetime?",function(){var t=this;return!!s(/[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(t))}),i(m,"$valid_datetime_nolocale?",function(){var t=this;return!!s(/[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(t))}),i(m,"$valid_path?",function(){var t=this;return!!(s(/.*(?:\\|\/)(.+)$/.$match(t))||a(t.$split(" ").$size(),1)||s(r(t.$split("/").$size(),1))||a(t,"/"))}),i(m,"$valid_jid?",function(){var t=this;return!!s(/^(?:([^@]*)@)??([^@/]*)(?:\/(.*?))?$/.$match(t))}),i(m,"$camel_case?",function(){var t=this;return!!s(t.$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]*/))}),i(m,"$split_camelcase",function(){var t=this;return s(t["$camel_case?"]())?t.$split(/(?=[A-Z])/):t}),i(m,"$json_1?",function(){var t=this;return t.$slice(0,1)["$=="]("{")}),i(m,"$json_2?",function(){var n=this,o=t,i=t;return s(o=n["$json_1?"]())?!!s(i=n.$match('"apiVersion"\\s?:\\s?"2.0"'))&&i:o}),i(m,"$json?",function(){var n=this,o=t;return s(o=n["$json_1?"]())?o:n["$json_2?"]()}),i(m,"$from_json",function(i){var r=this,c=t;return i==null&&(i=!0),s(r["$json?"]())?(c=n("JSON").$parse(r,new Map([["symbolize_names",i]])),s(c["$is_any?"](n("Hash"),n("Array")))?o(c,"process!",[],function(o,i,r){var c=t;return o==null&&(o=t),i==null&&(i=t),r==null&&(r=t),s(o["$is_a?"](n("String")))&&(s(o["$valid_datetime?"]())||s(o["$valid_datetime_nolocale?"]())?r["$[]="](i,n("DateTime").$parse(o)):(c=o.$numeric_values(),s(c["$is_a?"](n("Hash")))&&(s(c["$[]"]("integer"))?(c=c["$[]"]("integer"),r["$[]="](i,c)):s(c["$[]"]("float"))&&(c=c["$[]"]("float"),r["$[]="](i,c)))),a(o["$[]"](f(0,6,!1)),"binary:")&&s(o["$[]"](f(7,-1,!1))["$base64?"]())&&r["$[]="](i,n(p("GxG"),"ByteArray").$new(o["$[]"](f(7,-1,!1)).$decode64()))),t}):t):r},-1),i(m,"$base64?",function(){var o=this,i=t;try{if(x(["page","form","left"]["$include?"](o)))if(s(r(o.$size(),0)))try{return p("Base64").$strict_decode64(o),!0}catch(t){if(e.rescue(t,[p("Exception")])){i=t;try{return!1}finally{e.pop_exception(t)}}else throw t}else return!1;else return!1}catch(t){if(e.rescue(t,[p("Exception")])){i=t;try{return!1}finally{e.pop_exception(t)}}else throw t}}),i(m,"$encode64",function(){var t=this;return s(t["$base64?"]())?t:n("Base64").$strict_encode64(t)}),i(m,"$decode64",function(){var t=this;return s(t["$base64?"]())?n("Base64").$strict_decode64(t):t}),i(m,"$encrypt",function(i){var c=this,l=t,a=t,u=t;return i==null&&(i=""),s(r(i.$to_s().$size(),0))?(l=n(n("GxG"),"ByteArray").$new(i.$to_s()),a=n(n("GxG"),"ByteArray").$new(c.$to_s()),o(a,"each_index",[],function(n){var c,i=t;return n==null&&(n=t),i=a["$[]"](n),o(l,"each",[],function(n){return n==null&&(n=t),o([127,63,31,15,7,3,1,0],"each",[],function(o){return o==null&&(o=t),s(r(n,o))?(i=d(i,1),s(r(i,255))?i=0:t):(i=w(i,1),s(j(i,0))?i=255:t)})}),(c=[n,i],o(a,"[]=",c),c[c.length-1])}),u=a.$to_s(),u):c.$dup()},-1),i(m,"$decrypt",function(i){var c=this,l=t,a=t,u=t;return i==null&&(i=""),s(r(i.$to_s().$size(),0))?(l=n(n("GxG"),"ByteArray").$new(i.$to_s()),a=n(n("GxG"),"ByteArray").$new(c.$to_s()),o(a,"each_index",[],function(n){var c,i=t;return n==null&&(n=t),i=a["$[]"](n),o(l,"each",[],function(n){return n==null&&(n=t),o([127,63,31,15,7,3,1,0],"each",[],function(o){return o==null&&(o=t),s(r(n,o))?(i=w(i,1),s(j(i,0))?i=255:t):(i=d(i,1),s(r(i,255))?i=0:t)})}),(c=[n,i],o(a,"[]=",c),c[c.length-1])}),u=a.$to_s(),u):c.$dup()},-1),i(m,"$to_d",function(){var t=this;return t.$BigDecimal(t)})}(c[0],null,c),function(c,h,p){var b=l(c,h,"Hash"),j=[b].concat(p),g=e.$r(j);return u(b,"$process",function e(i){var r=e.$$p||t,c=this,a=t;return e.$$p=null,i==null&&(i=new Map),a=new Map,s(r["$respond_to?"]("call"))&&(s(i["$is_any?"](n("Array"),n("Hash"),n("Struct"),n(n(n("GxG"),"Database"),"PersistedHash"),n(n(n("GxG"),"Database"),"PersistedArray")))?a=o(i,"process!",[],r.$to_proc()):c.$raise(g("ArgumentError"),"you must pass a Hash or an Array, or a ByteArray")),a},-1),u(b,"$search",function e(i){var r=e.$$p||t,c=this,a=t;return e.$$p=null,i==null&&(i=new Map),a=new Map,s(r["$respond_to?"]("call"))&&(s(i["$is_any?"](n("Array"),n("Hash"),n("Struct"),n(n(n("GxG"),"Database"),"PersistedHash"),n(n(n("GxG"),"Database"),"PersistedArray")))?a=o(i,"search",[],r.$to_proc()):c.$raise(g("ArgumentError"),"you must pass a Hash or an Array, or a ByteArray")),a},-1),i(b,"$iterative",function i(){var v=i.$$p||t,l=this,u=t,b=t,h=t,f=t,d=t,c=t,p=t,j=t,y=t;i.$$p=null,u=[],b=o(g("Proc"),"new",[],function(i,a){var l=t,c=t;if(i==null&&(i=t),a==null&&(a=[]),l=[],s(i))for(l["$<<"](new Map([["parent",t],["parent_selector",t],["object",i]]));s(r(l.$size(),0));)c=l.$shift(),s(c["$[]"]("object")["$is_any?"](n("Hash"),n("Struct"),n(n(n("GxG"),"Database"),"PersistedHash")))&&o(c["$[]"]("object"),"each_pair",[],function(n,s){return n==null&&(n=t),s==null&&(s=t),l["$<<"](new Map([["parent",c["$[]"]("object")],["parent_selector",n],["object",s]]))}),s(c["$[]"]("object")["$is_any?"](n("Array"),n(n(n("GxG"),"Database"),"PersistedArray")))&&o(c["$[]"]("object"),"each_with_index",[],function(n,s){return n==null&&(n=t),s==null&&(s=t),l["$<<"](new Map([["parent",c["$[]"]("object")],["parent_selector",s],["object",n]]))}),a["$<<"](c);return a},-1),h=o(g("Proc"),"new",[],function(n,s){var i=t;return n==null&&(n=[]),s==null&&(s=t),i=[],o(n,"each",[],function(n){return n==null&&(n=t),a(n["$[]"]("parent").$object_id(),s.$object_id())?i["$<<"](n):t}),i},-1);try{if(f=b.$call(l,[]),d=h.$call(f,l),s(v["$respond_to?"]("call")))for(;s(r(d.$size(),0));)c=d.$shift(),a(c["$[]"]("object").$object_id(),l.$object_id())||(p=v.$call(c["$[]"]("object"),c["$[]"]("parent_selector"),c["$[]"]("parent")),s(p)&&u["$<<"](p)),m(c["$[]"]("object").$object_id(),t.$object_id())&&(j=h.$call(f,c["$[]"]("object")),o(j,"each",[],function(n){return n==null&&(n=t),d["$<<"](n)}))}catch(t){if(e.rescue(t,[g("Exception")])){y=t;try{l.$log_error(new Map([["error",y],["parameters",new Map]]))}finally{e.pop_exception(t)}}else throw t}return u}),i(b,"$process",function e(){var s=e.$$p||t,i=this,n=t;return e.$$p=null,n=i.$clone(),o(n,"iterative",[],s.$to_proc()),n}),i(b,"$process!",function e(){var s=e.$$p||t,n=this;return e.$$p=null,o(n,"iterative",[],s.$to_proc()),n}),i(b,"$search",function e(){var i=e.$$p||t,a=this,n=t;return e.$$p=null,n=[],s(i["$respond_to?"]("call"))&&(n=o(a,"iterative",[],i.$to_proc())),n}),i(b,"$paths_to",function(i,c){var _=this,h=t,l=t,u=t,b=t,y=t,j=t,p=t;return i==null&&(i=t),c==null&&(c=""),h=[],a(c["$[]"](0),"/")||(c=d("/",c)),s(r(c.$size(),1))?l=c.$split("/")["$[]"](f(1,-1,!1)).$reverse():l=[],u=_.$get_at_path(c),b=[new Map([["selector",t],["container",u],["prefix","/"]])],y=o(g("Proc"),"new",[],function(n){var s=t;return n==null&&(n=t),s=t,function(){try{var e=v("break");return o(b,"each_with_index",[],function o(i,r){if(i==null&&(i=t),r==null&&(r=t),a(i["$[]"]("container"),n))s=i,e.$throw(t,o.$$is_lambda);else return t})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}(),s}),j=u,p=!1,s(u["$is_any?"](n("Hash"),n("Array"),n("Struct"),n(n(n("GxG"),"Database"),"PersistedHash"),n(n(n("GxG"),"Database"),"PersistedArray")))?o(u,"process!",[],function(o,r,c){var f=t,u=t;return o==null&&(o=t),r==null&&(r=t),c==null&&(c=t),m(j.$object_id(),c.$object_id())&&(f=y.$call(c),s(f)&&(l=f["$[]"]("prefix").$split("/").$reverse(),a(l.$size(),0)&&l["$<<"]("")),j=c),u=r.$to_s(),u=u.$gsub("/","%2f"),l.$unshift(u),p=!1,a(o,i)&&(p=!0),s(p)&&h["$<<"](d("/",l.$reverse().$join("/"))),s(o["$is_any?"](n("Array"),n("Hash"),n("Struct"),n(n(n("GxG"),"Database"),"PersistedHash"),n(n(n("GxG"),"Database"),"PersistedArray")))&&b.$unshift(new Map([["selector",r],["container",o],["prefix",l.$reverse().$join("/")]])),l.$shift(),t}):h["$<<"](d("/",l.$join("/"))),h},-1),i(b,"$object_map",function(){var s=this,n=t,n=new Map;return o(s,"search",[],function e(s,i,a){var r=e.$$s==null?this:e.$$s;return s==null&&(s=t),i==null&&(i=t),a==null&&(a=t),o(r.$paths_to(s),"each",[],function(i){var a;return i==null&&(i=t),(a=[i.$to_s().$to_sym(),s],o(n,"[]=",a),a[a.length-1])})},{$$s:s}),n}),i(b,"$get_at_path",function(n){var l=this,i=t,c=t,d=t;return n==null&&(n="/"),i=t,a(n,"/")?i=l:(c=[l],d=n.$to_s().$split("/"),function(){try{var e=v("break");return o(d.$to_enum(),"each",[],function n(o){var l=t;if(o==null&&(o=t),l=t,s(r(o.$size(),0))&&(a(o["$=~"](/^(?:[0-9])*[0-9](?:[0-9])*$/),0)?l=o.$to_i():(l=o,l=l.$gsub("%2f","/"),l=l.$to_sym())),s(l))if(i=c.$first()["$[]"](l),s(i["$is_a?"](g("NilClass"))))e.$throw(t,n.$$is_lambda);else return c.$unshift(i);else return t})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}()),i},-1),i(b,"$set_at_path",function(o,i){var h=this,u=t,d=t,l=t,c=t;return o==null&&(o="/"),i==null&&(i=t),u=t,m(o,"/")&&(d=h.$get_at_path(n("File").$dirname(o.$to_s())),s(d)&&(l=n("File").$basename(o.$to_s()),c=t,s(r(l.$size(),0))&&(a(l["$=~"](/^(?:[0-9])*[0-9](?:[0-9])*$/),0)?c=l.$to_i():(c=l,c=c.$gsub("%2f","/"),c=c.$to_sym())),s(c)&&(d["$[]="](c,i),u=d["$[]"](c)))),u},-1),i(b,"$symbolize_keys",function(){var i=this;return o(i,"process!",[],function(o,i,a){return o==null&&(o=t),i==null&&(i=t),a==null&&(a=t),s(a["$is_a?"](n("Hash")))&&(s(i["$is_a?"](n("Symbol")))||a["$[]="](i.$to_s().$to_sym(),a.$delete(i))),t}),i}),i(b,"$gxg_export",function(){var u=this,l=t,i=t,h=t,m=t,c=t,d=t,l=new Map([["type","Hash"],["content",new Map]]),i=[new Map([["parent",t],["parent_selector",t],["object",u],["record",l]])],h=o(g("Proc"),"new",[],function(n){var s=t;return n==null&&(n=t),s=[],o(i,"each",[],function(o){return o==null&&(o=t),a(o["$[]"]("parent").$object_id(),n.$object_id())?s["$<<"](o):t}),s},-1),m=o(g("Proc"),"new",[],function(n){return n==null&&(n=t),s(n["$is_any?"](g("Integer"),g("Float"),g("String")))?s(n["$is_a?"](g("Numeric")))?s(n.$to_s()["$include?"]("."))?new Map([["type","Float"],["content",n]]):new Map([["type","Integer"],["content",n]]):new Map([["type",n.$class().$to_s()],["content",n]]):new Map([["type",n.$class().$to_s()],["content",n.$to_s()]])});for(o(u,"search",[],function(o,a,r){return o==null&&(o=t),a==null&&(a=t),r==null&&(r=t),s(o["$is_a?"](n("Hash")))?i["$<<"](new Map([["parent",r],["parent_selector",a.$clone()],["object",o],["record",new Map([["type","Hash"],["content",new Map]])]])):s(o["$is_a?"](n("Array")))?i["$<<"](new Map([["parent",r],["parent_selector",a.$clone()],["object",o],["record",new Map([["type","Array"],["content",[]]])]])):i["$<<"](new Map([["parent",r],["parent_selector",a.$clone()],["object",o],["record",m.$call(o)]]))}),c=[i["$[]"](0)];s(r(c.$size(),0));)d=c.$shift(),o(h.$call(d["$[]"]("object")),"each",[],function(n){return n==null&&(n=t),d["$[]"]("record")["$[]"]("content")["$[]="](n["$[]"]("parent_selector"),n["$[]"]("record")),s(n["$[]"]("object")["$is_any?"](g("Hash"),g("Array")))?c["$<<"](n):t});return l}),u(b,"$gxg_import",function(c){try{var m=this,u=t,h=t,d=t,l=t;if(c==null&&(c=t),u=t,s(c["$is_a?"](g("Hash"))))if(a(c["$[]"]("type"),"Array"))u=n("Array").$gxg_import(c);else if(h=o(g("Proc"),"new",[],function n(o,i){var r,c=n.$$s==null?this:n.$$s,a=t,l=t;if(o==null&&(o=t),i==null&&(i=t),s(i["$is_a?"](g("String"))))try{a=(r=o,typeof e.compile=="function"?eval(e.compile(r,{scope_variables:["the_class","type","value","result","import_value","the_exported_record"],arity_check:!1,file:"(eval)",eval:!0})):c.$eval(r)),s(a["$respond_to?"]("parse"))?i=a.$parse(i):s(a["$respond_to?"]("new"))?i=a.$new(i):s(a["$respond_to?"]("try_convert"))&&(i=a.$try_convert(i))}catch(n){if(e.rescue(n,[g("Exception")])){l=n;try{t}finally{e.pop_exception(n)}}else throw n}return i},{$$s:m}),a(c["$[]"]("type"),"Hash"))for(u=new Map,d=[new Map([["parent",t],["parent_selector",t],["object",u],["record",c]])];s(r(d.$size(),0));)l=d.$shift(),s(l["$[]"]("record")["$[]"]("content")["$is_a?"](g("Hash")))?o(l["$[]"]("record")["$[]"]("content"),"each_pair",[],function(n,s){var i;return n==null&&(n=t),s==null&&(s=t),a(s["$[]"]("type"),"Hash")?(l["$[]"]("object")["$[]="](n,new Map),d["$<<"](new Map([["parent",l["$[]"]("object")],["parent_selector",n],["object",l["$[]"]("object")["$[]"](n)],["record",s]]))):a(s["$[]"]("type"),"Array")?(l["$[]"]("object")["$[]="](n,[]),d["$<<"](new Map([["parent",l["$[]"]("object")],["parent_selector",n],["object",l["$[]"]("object")["$[]"](n)],["record",s]]))):(i=[n,h.$call(s["$[]"]("type"),s["$[]"]("content"))],o(l["$[]"]("object"),"[]=",i),i[i.length-1])}):s(l["$[]"]("record")["$[]"]("content")["$is_a?"](g("Array")))&&o(l["$[]"]("record")["$[]"]("content"),"each_with_index",[],function(n,s){var i;return n==null&&(n=t),s==null&&(s=t),a(n["$[]"]("type"),"Hash")?(l["$[]"]("object")["$[]="](s,new Map),d["$<<"](new Map([["parent",l["$[]"]("object")],["parent_selector",s],["object",l["$[]"]("object")["$[]"](s)],["record",n]]))):a(n["$[]"]("type"),"Array")?(l["$[]"]("object")["$[]="](s,[]),d["$<<"](new Map([["parent",l["$[]"]("object")],["parent_selector",s],["object",l["$[]"]("object")["$[]"](s)],["record",n]]))):(i=[s,h.$call(n["$[]"]("type"),n["$[]"]("content"))],o(l["$[]"]("object"),"[]=",i),i[i.length-1])});else u=h.$call(c["$[]"]("type"),c["$[]"]("content"));return u}catch(t){if(t===e.t_eval_return)return t.$v;throw t}},-1)}(c[0],null,c),function(c,h,p){var b=l(c,h,"Array"),j=[b].concat(p),g=e.$r(j);return u(b,"$process",function e(i){var r=e.$$p||t,c=this,a=t;return e.$$p=null,i==null&&(i=[]),a=[],s(r["$respond_to?"]("call"))&&(s(i["$is_any?"](n("Array"),n("Hash"),n(n("GxG"),"ByteArray"),n("Struct"),n(n(n("GxG"),"Database"),"PersistedHash"),n(n(n("GxG"),"Database"),"PersistedArray")))?a=o(i,"process",[],r.$to_proc()):c.$raise(g("ArgumentError"),"you must pass a Array, a Hash, or a ByteArray")),a},-1),u(b,"$search",function e(i){var r=e.$$p||t,c=this,a=t;return e.$$p=null,i==null&&(i=[]),a=[],s(r["$respond_to?"]("call"))&&(s(i["$is_any?"](n("Array"),n("Hash"),n(n("GxG"),"ByteArray"),n("Struct"),n(n(n("GxG"),"Database"),"PersistedHash"),n(n(n("GxG"),"Database"),"PersistedArray")))?a=o(i,"search",[],r.$to_proc()):c.$raise(g("ArgumentError"),"you must pass a Array, a Hash, or a ByteArray")),a},-1),i(b,"$iterative",function i(){var v=i.$$p||t,l=this,u=t,b=t,h=t,f=t,d=t,c=t,p=t,j=t,y=t;i.$$p=null,u=[],b=o(g("Proc"),"new",[],function(i,a){var l=t,c=t;if(i==null&&(i=t),a==null&&(a=[]),l=[],s(i))for(l["$<<"](new Map([["parent",t],["parent_selector",t],["object",i]]));s(r(l.$size(),0));)c=l.$shift(),s(c["$[]"]("object")["$is_any?"](n("Hash"),n("Struct"),n(n(n("GxG"),"Database"),"PersistedHash")))&&o(c["$[]"]("object"),"each_pair",[],function(n,s){return n==null&&(n=t),s==null&&(s=t),l["$<<"](new Map([["parent",c["$[]"]("object")],["parent_selector",n],["object",s]]))}),s(c["$[]"]("object")["$is_any?"](n("Array"),n(n(n("GxG"),"Database"),"PersistedArray")))&&o(c["$[]"]("object"),"each_with_index",[],function(n,s){return n==null&&(n=t),s==null&&(s=t),l["$<<"](new Map([["parent",c["$[]"]("object")],["parent_selector",s],["object",n]]))}),a["$<<"](c);return a},-1),h=o(g("Proc"),"new",[],function(n,s){var i=t;return n==null&&(n=[]),s==null&&(s=t),i=[],o(n,"each",[],function(n){return n==null&&(n=t),a(n["$[]"]("parent").$object_id(),s.$object_id())?i["$<<"](n):t}),i},-1);try{if(f=b.$call(l,[]),d=h.$call(f,l),s(v["$respond_to?"]("call")))for(;s(r(d.$size(),0));)c=d.$shift(),a(c["$[]"]("object").$object_id(),l.$object_id())||(p=v.$call(c["$[]"]("object"),c["$[]"]("parent_selector"),c["$[]"]("parent")),s(p)&&u["$<<"](p)),m(c["$[]"]("object").$object_id(),t.$object_id())&&(j=h.$call(f,c["$[]"]("object")),o(j,"each",[],function(n){return n==null&&(n=t),d["$<<"](n)}))}catch(t){if(e.rescue(t,[g("Exception")])){y=t;try{l.$log_error(new Map([["error",y],["parameters",new Map]]))}finally{e.pop_exception(t)}}else throw t}return u}),i(b,"$process",function e(){var s=e.$$p||t,i=this,n=t;return e.$$p=null,n=i.$clone(),o(n,"iterative",[],s.$to_proc()),n}),i(b,"$process!",function e(){var s=e.$$p||t,n=this;return e.$$p=null,o(n,"iterative",[],s.$to_proc()),n}),i(b,"$search",function e(){var i=e.$$p||t,a=this,n=t;return e.$$p=null,n=[],s(i["$respond_to?"]("call"))&&(n=o(a,"iterative",[],i.$to_proc())),n}),i(b,"$paths_to",function(i,c){var _=this,h=t,l=t,u=t,b=t,y=t,j=t,p=t;return i==null&&(i=t),c==null&&(c=""),h=[],a(c["$[]"](0),"/")||(c=d("/",c)),s(r(c.$size(),1))?l=c.$split("/")["$[]"](f(1,-1,!1)).$reverse():l=[],u=_.$get_at_path(c),b=[new Map([["selector",t],["container",u]])],y=o(g("Proc"),"new",[],function(n){var s=t;return n==null&&(n=t),s=t,function(){try{var e=v("break");return o(b,"each_with_index",[],function o(i,r){if(i==null&&(i=t),r==null&&(r=t),a(i["$[]"]("container"),n))s=i,e.$throw(t,o.$$is_lambda);else return t})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}(),s}),j=u,p=!1,s(u["$is_any?"](n("Hash"),n("Array"),n("Struct"),n(n(n("GxG"),"Database"),"PersistedHash"),n(n(n("GxG"),"Database"),"PersistedArray")))?o(u,"process!",[],function(o,r,c){var f=t,u=t;return o==null&&(o=t),r==null&&(r=t),c==null&&(c=t),m(j.$object_id(),c.$object_id())&&(f=y.$call(c),s(f)&&(l=f["$[]"]("prefix").$split("/").$reverse(),a(l.$size(),0)&&l["$<<"]("")),j=c),u=r.$to_s(),u=u.$gsub("/","%2f"),l.$unshift(u),p=!1,a(o,i)&&(p=!0),s(p)&&h["$<<"](d("/",l.$reverse().$join("/"))),s(o["$is_any?"](n("Array"),n("Hash"),n("Struct"),n(n(n("GxG"),"Database"),"PersistedHash"),n(n(n("GxG"),"Database"),"PersistedArray")))&&b.$unshift(new Map([["selector",r],["container",o],["prefix",l.$reverse().$join("/")]])),l.$shift(),t}):h["$<<"](d("/",l.$join("/"))),h},-1),i(b,"$object_map",function(){var s=this,n=t,n=new Map;return o(s,"search",[],function e(s,i,a){var r=e.$$s==null?this:e.$$s;return s==null&&(s=t),i==null&&(i=t),a==null&&(a=t),o(r.$paths_to(s),"each",[],function(i){var a;return i==null&&(i=t),(a=[i.$to_s().$to_sym(),s],o(n,"[]=",a),a[a.length-1])})},{$$s:s}),n}),i(b,"$get_at_path",function(n){var l=this,i=t,c=t,d=t;return n==null&&(n="/"),i=t,a(n,"/")?i=l:(c=[l],d=n.$to_s().$split("/"),function(){try{var e=v("break");return o(d.$to_enum(),"each",[],function n(o){var l=t;if(o==null&&(o=t),l=t,s(r(o.$size(),0))&&(a(o["$=~"](/^(?:[0-9])*[0-9](?:[0-9])*$/),0)?l=o.$to_i():(l=o,l=l.$gsub("%2f","/"),l=l.$to_sym())),s(l))if(i=c.$first()["$[]"](l),s(i["$is_a?"](g("NilClass"))))e.$throw(t,n.$$is_lambda);else return c.$unshift(i);else return t})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}()),i},-1),i(b,"$set_at_path",function(o,i){var h=this,u=t,d=t,l=t,c=t;return o==null&&(o="/"),i==null&&(i=t),u=t,m(o,"/")&&(d=h.$get_at_path(n("File").$dirname(o.$to_s())),s(d)&&(l=n("File").$basename(o.$to_s()),c=t,s(r(l.$size(),0))&&(a(l["$=~"](/^(?:[0-9])*[0-9](?:[0-9])*$/),0)?c=l.$to_i():(c=l,c=c.$gsub("%2f","/"),c=c.$to_sym())),s(c)&&(d["$[]="](c,i),u=d["$[]"](c)))),u},-1),i(b,"$gxg_export",function(){var u=this,l=t,i=t,h=t,m=t,c=t,d=t,l=new Map([["type","Array"],["content",[]]]),i=[new Map([["parent",t],["parent_selector",t],["object",u],["record",l]])],h=o(g("Proc"),"new",[],function(n){var s=t;return n==null&&(n=t),s=[],o(i,"each",[],function(o){return o==null&&(o=t),a(o["$[]"]("parent").$object_id(),n.$object_id())?s["$<<"](o):t}),s},-1),m=o(g("Proc"),"new",[],function(n){return n==null&&(n=t),s(n["$is_any?"](g("Integer"),g("Float"),g("String")))?s(n["$is_a?"](g("Numeric")))?s(n.$to_s()["$include?"]("."))?new Map([["type","Float"],["content",n]]):new Map([["type","Integer"],["content",n]]):new Map([["type",n.$class().$to_s()],["content",n]]):new Map([["type",n.$class().$to_s()],["content",n.$to_s()]])});for(o(u,"search",[],function(o,a,r){return o==null&&(o=t),a==null&&(a=t),r==null&&(r=t),s(o["$is_a?"](n("Hash")))?i["$<<"](new Map([["parent",r],["parent_selector",a.$clone()],["object",o],["record",new Map([["type","Hash"],["content",new Map]])]])):s(o["$is_a?"](n("Array")))?i["$<<"](new Map([["parent",r],["parent_selector",a.$clone()],["object",o],["record",new Map([["type","Array"],["content",[]]])]])):i["$<<"](new Map([["parent",r],["parent_selector",a.$clone()],["object",o],["record",m.$call(o)]]))}),c=[i["$[]"](0)];s(r(c.$size(),0));)d=c.$shift(),o(h.$call(d["$[]"]("object")),"each",[],function(n){return n==null&&(n=t),d["$[]"]("record")["$[]"]("content")["$[]="](n["$[]"]("parent_selector"),n["$[]"]("record")),s(n["$[]"]("object")["$is_any?"](g("Hash"),g("Array")))?c["$<<"](n):t});return l}),u(b,"$gxg_import",function(c){try{var m=this,u=t,h=t,d=t,l=t;if(c==null&&(c=t),u=t,s(c["$is_a?"](g("Hash"))))if(a(c["$[]"]("type"),"Hash"))u=n("Hash").$gxg_import(c);else if(h=o(g("Proc"),"new",[],function n(o,i){var r,c=n.$$s==null?this:n.$$s,a=t,l=t;if(o==null&&(o=t),i==null&&(i=t),s(i["$is_a?"](g("String"))))try{a=(r=o,typeof e.compile=="function"?eval(e.compile(r,{scope_variables:["the_class","type","value","result","import_value","the_exported_record"],arity_check:!1,file:"(eval)",eval:!0})):c.$eval(r)),s(a["$respond_to?"]("parse"))?i=a.$parse(i):s(a["$respond_to?"]("new"))?i=a.$new(i):s(a["$respond_to?"]("try_convert"))&&(i=a.$try_convert(i))}catch(n){if(e.rescue(n,[g("Exception")])){l=n;try{t}finally{e.pop_exception(n)}}else throw n}return i},{$$s:m}),a(c["$[]"]("type"),"Array"))for(u=[],d=[new Map([["parent",t],["parent_selector",t],["object",u],["record",c]])];s(r(d.$size(),0));)l=d.$shift(),s(l["$[]"]("record")["$[]"]("content")["$is_a?"](g("Hash")))?o(l["$[]"]("record")["$[]"]("content"),"each_pair",[],function(n,s){var i;return n==null&&(n=t),s==null&&(s=t),a(s["$[]"]("type"),"Hash")?(l["$[]"]("object")["$[]="](n,new Map),d["$<<"](new Map([["parent",l["$[]"]("object")],["parent_selector",n],["object",l["$[]"]("object")["$[]"](n)],["record",s]]))):a(s["$[]"]("type"),"Array")?(l["$[]"]("object")["$[]="](n,[]),d["$<<"](new Map([["parent",l["$[]"]("object")],["parent_selector",n],["object",l["$[]"]("object")["$[]"](n)],["record",s]]))):(i=[n,h.$call(s["$[]"]("type"),s["$[]"]("content"))],o(l["$[]"]("object"),"[]=",i),i[i.length-1])}):s(l["$[]"]("record")["$[]"]("content")["$is_a?"](g("Array")))&&o(l["$[]"]("record")["$[]"]("content"),"each_with_index",[],function(n,s){var i;return n==null&&(n=t),s==null&&(s=t),a(n["$[]"]("type"),"Hash")?(l["$[]"]("object")["$[]="](s,new Map),d["$<<"](new Map([["parent",l["$[]"]("object")],["parent_selector",s],["object",l["$[]"]("object")["$[]"](s)],["record",n]]))):a(n["$[]"]("type"),"Array")?(l["$[]"]("object")["$[]="](s,[]),d["$<<"](new Map([["parent",l["$[]"]("object")],["parent_selector",s],["object",l["$[]"]("object")["$[]"](s)],["record",n]]))):(i=[s,h.$call(n["$[]"]("type"),n["$[]"]("content"))],o(l["$[]"]("object"),"[]=",i),i[i.length-1])});else u=h.$call(c["$[]"]("type"),c["$[]"]("content"));return u}catch(t){if(t===e.t_eval_return)return t.$v;throw t}},-1)}(c[0],null,c)},Opal.modules["web/gxg_elements"]=function(e){var C=e.module,A=e.klass,n=e.truthy,s=e.def,i=e.send,r=e.rb_minus,c=e.slice,l=e.rb_plus,a=e.rb_gt,k=e.NilClass,p=e.range,h=e.to_a,m=e.rb_lt,f=e.rb_le,v=e.defs,E=e.return_ivar,O=e.send2,w=e.find_super,g=e.rb_ge,y=e.rb_times,b=e.neqeq,u=e.alias,d=e.eqeq,_=e.return_self,j=e.thrower,x=[],t=e.nil,o=e.$$$;return e.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(x,S){var F=C(x,"GxG"),M=[F].concat(S);return function(x,C,S){var F=A(x,C,"ByteArray"),z=[F].concat(S),M=e.$r(z),T=F.$$prototype;return T.pad_value=T.data=T.max_size=T.outer=t,F.$private(),s(F,"$array_to_ascii",function(s){var i=t,a=t;return s==null&&(s=t),i="",n(s["$is_a?"](o(o("Buffer"),"Array")))&&(a=new Uint8Array(s.$to_a()),i=new window.TextDecoder("ascii").decode(a)),i},-1),s(F,"$array_to_string",function(s){var o=t;return s==null&&(s=t),o="",n(s)&&(o=(new window.TextDecoder).decode(new Uint8Array(s.$to_a())).$to_s()),o},-1),s(F,"$string_to_array",function(s){var o=t,a=t,c=t;return s==null&&(s=""),o=(new window.TextEncoder).encode(s.toString()),a=o.byteLength,c=M("Buffer").$new(a).$to_a(),i(e.Range.$new(0,r(a,1),!1),"each",[],function(n){var s;return n==null&&(n=t),(s=[n,o[n]],i(c,"[]=",s),s[s.length-1])}),c},-1),s(F,"$join_arrays",function(){var d=t,u=t,h=t,f=c(arguments),m=f,d=0,u=0;return i(m,"each",[],function(n){return n==null&&(n=t),d=l(d,n.$bytesize())}),h=M("Buffer").$new(d).$to_a(),i(m,"each",[],function(o){var c=t;return o==null&&(o=t),c=o.$bytesize(),n(a(c,0))?i(e.Range.$new(0,r(c,1),!1),"each",[],function(n){return n==null&&(n=t),h["$[]="](u,o["$[]"](n)),u=l(u,1)}):t}),h},-1),F.$protected(),s(F,"$filter_data",function(s){var r=this,l=t,c=t;return s==null&&(s=""),l="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 "+s.$inspect(),n(s["$is_any?"](k,o("String"),o("Numeric"),o("Array"),o(o("GxG"),"ByteArray"),o(M("Buffer"),"Array")))||r.$raise(M("Exception").$new(l)),n(s["$is_a?"](o(M("Buffer"),"Array")))&&(s=r.$array_to_ascii(s)),n(s["$is_a?"](o("String")))&&(s=r.$string_to_array(s)),n(s["$is_a?"](o("Numeric")))&&(s=s.$to_i(),n(p(0,255,!1)["$include?"](s))?s=r.$string_to_array(s.$chr()):r.$raise(M("Exception").$new(l))),n(s["$is_a?"](o(o("GxG"),"ByteArray")))&&(s=r.$string_to_array(r.$array_to_string(s.$data()))),n(s["$is_a?"](o("Array")))&&(c=[],i(s.$flatten().$to_enum(),"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),c["$<<"](s.$filter_data(n))},{$$s:r}),n(a(c.$size(),0))?s=i(r,"join_arrays",h(c)):s=M("Buffer").$new(0).$to_a()),n(s)||(s=M("Buffer").$new(1).$to_a(),s["$[]="](0,r.pad_value.$to_i())),s},-1),s(F,"$filter_parameters",function(){var u=this,d=t,h=c(arguments),a=h,d=t;return n(a["$[]"](0)["$is_any?"](o("Numeric"),o("Integer"),o("Float"),o("BigDecimal")))?(a["$[]="](0,a["$[]"](0).$to_i()),n(m(a["$[]"](0),0))&&a["$[]="](0,l(u.data.$bytesize(),a["$[]"](0))),d=e.Range.$new(a["$[]"](0),a["$[]"](0),!1),n(a["$[]"](1)["$is_a?"](M("Numeric")))&&(a["$[]="](1,a["$[]"](1).$to_i()),n(m(a["$[]"](1),1))?u.$raise(M("ArgumentError").$new("Second parameter needs to be a Numeric greater than 0, you provided "+a["$[]"](1).$inspect())):d=e.Range.$new(a["$[]"](0),l(a["$[]"](0),r(a["$[]"](1),1)),!1))):n(a["$[]"](0)["$is_a?"](M("Range")))?(n(m(a["$[]"](0).$first(),0))?a["$[]="](1,l(u.data.$bytesize(),a["$[]"](0).$first())):a["$[]="](1,a["$[]"](0).$first()),n(m(a["$[]"](0).$last(),0))?a["$[]="](2,l(u.data.$bytesize(),a["$[]"](0).$last())):a["$[]="](2,a["$[]"](0).$last()),n(f(a["$[]"](1),a["$[]"](2)))?d=e.Range.$new(a["$[]"](1),a["$[]"](2),!1):d=e.Range.$new(a["$[]"](2),a["$[]"](1),!1)):n(d)||u.$raise(M("ArgumentError").$new("First parameter needs to be a Numeric or a Range, you provided "+a["$[]"](0).$inspect())),d},-1),F.$public(),v(F,"$try_convert",function(){var i=c(arguments),a=i;try{return o(M("GxG"),"ByteArray").$new(1,[a])}catch(n){if(e.rescue(n,[M("Exception")]))try{return t}finally{e.pop_exception(n)}else throw n}},-1),v(F,"$[]",function(){var n=c(arguments),s=n;return i(o(M("GxG"),"ByteArray"),"new",h(s))},-1),v(F,"$process",function e(s){var r=e.$$p||t,c=this,a=t;return e.$$p=null,s==null&&(s=o(M("GxG"),"ByteArray").$new()),a=o(M("GxG"),"ByteArray").$new(),n(r["$respond_to?"]("call"))&&(n(s["$is_any?"](o("Array"),o("Hash"),o(o("GxG"),"ByteArray"),o("Set"),o("Struct")))?a=i(s,"process",[],r.$to_proc()):c.$raise(M("ArgumentError"),"you must pass an Array, a ByteArray, or a Hash")),a},-1),v(F,"$search",function e(s){var r=e.$$p||t,c=this,a=t;return e.$$p=null,s==null&&(s=o(M("GxG"),"ByteArray").$new()),a=o(M("GxG"),"ByteArray").$new(),n(r["$respond_to?"]("call"))&&(n(s["$is_any?"](o("Array"),o("Hash"),o(o("GxG"),"ByteArray"),o("Set"),o("Struct")))?a=i(s,"search",[],r.$to_proc()):c.$raise(M("ArgumentError"),"you must pass an Array, a ByteArray, or a Hash")),a},-1),s(F,"$data",E("data")),s(F,"$initialize",function s(){var l,j,b=s.$$p||t,d=this,m=t,f=t,v=t,u=t;return s.$$p=null,j=c(arguments),l=j,d.data=M("Buffer").$new(0).$to_a(),m=new Map([["process",p(18446744073709551616,18446744073709551616,!1)]]),d.max_size=t,d.pad_value=0,d.outer=t,O(d,w(d,"initialize",s,!1,!0),"initialize",[],null),n(a(l.$size(),0))&&(n(b["$respond_to?"]("call"))?n(l["$[]"](0)["$is_a?"](M("Numeric")))&&(l["$[]="](0,l["$[]"](0).$to_i()),n(g(l["$[]"](0),0))&&(n(a(l["$[]"](0),m["$[]"]("process").$first()))&&l["$[]="](0,m["$[]"]("process").$first()),n(l["$[]"](1)["$is_a?"](M("Numeric")))&&d["$maxsize="](l["$[]"](1).$to_i()),n(l["$[]"](2)["$is_a?"](M("Numeric")))&&d["$padvalue="](l["$[]"](1).$to_i()),n(l["$[]"](3)["$is_a?"](M("Numeric")))&&d["$outervalue="](l["$[]"](1).$to_i()),i(e.Range.$new(0,r(l["$[]"](0),1),!1).$to_enum(),"each",[],function e(s){var r=e.$$s==null?this:e.$$s,o=t;return s==null&&(s=t),o=[b.$call(s)].$flatten(),i(o.$to_enum(),"each",[],function e(s){var o=e.$$s==null?this:e.$$s,i=t;return o.data==null&&(o.data=t),s==null&&(s=t),s=n(i=o.$filter_data(s))?i:M("Buffer").$new(0).$to_a(),n(a(s.$bytesize(),0))?(n(a(y(l["$[]"](0),s.$bytesize()),m["$[]"]("process").$first()))&&o.$raise(M("NoMemoryError").$new("This operation will exceed available per-process memory limits")),o.data=o.$join_arrays(o.data,s)):t},{$$s:r})},{$$s:d}),n(d.max_size)&&n(a(d.data.$bytesize(),d.max_size))&&(d.max_size=d.data.$bytesize()))):(n(l["$[]"](0)["$is_a?"](M("Numeric")))?(f=l["$[]"](0).$to_i(),n(l["$[]"](1))?v=[l["$[]"](1)].$flatten():v=[d.pad_value.$to_i().$chr()],n(l["$[]"](2)["$is_a?"](M("Numeric")))&&d["$maxsize="](l["$[]"](2).$to_i()),n(l["$[]"](3)["$is_a?"](M("Numeric")))&&d["$padvalue="](l["$[]"](3).$to_i()),n(l["$[]"](4)["$is_a?"](M("Numeric")))&&d["$outervalue="](l["$[]"](4).$to_i())):(f=1,v=[l["$[]"](0)].$flatten(),n(l["$[]"](1)["$is_a?"](M("Numeric")))&&d["$maxsize="](l["$[]"](1).$to_i()),n(l["$[]"](2)["$is_a?"](M("Numeric")))&&d["$padvalue="](l["$[]"](2).$to_i()),n(l["$[]"](3)["$is_a?"](M("Numeric")))&&d["$outervalue="](l["$[]"](3).$to_i())),u=[],i(v.$to_enum(),"each",[],function e(s){var i=e.$$s==null?this:e.$$s,o=t;return s==null&&(s=t),u["$<<"](n(o=i.$filter_data(s))?o:M("Buffer").$new(0).$to_a())},{$$s:d}),u=i(d,"join_arrays",h(u)),n(a(u.$bytesize(),0))&&(n(a(y(f,u.$bytesize()),m["$[]"]("process").$first()))&&d.$raise(M("NoMemoryError").$new("This operation will exceed available per-process memory limits")),i(f,"times",[],function e(){var n=e.$$s==null?this:e.$$s;return n.data==null&&(n.data=t),n.data=n.$join_arrays(n.data,u)},{$$s:d})),n(d.max_size)&&n(a(d.data.$bytesize(),d.max_size))&&(d.max_size=d.data.$bytesize()))),d},-1),s(F,"$process",function e(){var o=e.$$p||t,a=this,s=t;return e.$$p=null,s=a.$clone(),n(o["$respond_to?"]("call"))&&i(s,"each_with_index",[],function e(n,s){var i=e.$$s==null?this:e.$$s;return n==null&&(n=t),s==null&&(s=t),o.$call(n,s,i)},{$$s:a}),s}),s(F,"$process!",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(o["$respond_to?"]("call"))&&s.$replace(s.$array_to_ascii(i(s,"process",[],o.$to_proc()).$data())),s}),s(F,"$search",function e(){var o=e.$$p||t,a=this,s=t;return e.$$p=null,s=[],n(o["$respond_to?"]("call"))&&i(a,"each_with_index",[],function e(i,a){var c=e.$$s==null?this:e.$$s,r=t;return i==null&&(i=t),a==null&&(a=t),r=o.$call(i,a,c),n(r)?s["$<<"](r):t},{$$s:a}),s}),s(F,"$pattern_range",function(i,a){var d=this,u=t,c=t;return i==null&&(i=""),a==null&&(a=0),u=t,i=d.$array_to_ascii(o(M("GxG"),"ByteArray").$new(i).$data()),c=d.$array_to_ascii(d.$data()).$index(i,a),n(c)&&(u=e.Range.$new(c,l(c,r(i.$size(),1)),!1)),u},-1),s(F,"$pattern_ranges",function(s){var a=this,c=t,r=t,i=t;for(s==null&&(s=""),c=[],r=0,n(s["$is_a?"](o(M("GxG"),"ByteArray")))&&(s=a.$array_to_ascii(s.$data())),i=a.$pattern_range(s,r);b(i,t);){if(n(i["$is_a?"](o("Range"))))if(c["$<<"](i),n(f(l(i.$last(),1),a.data.$bytesize())))r=l(i.$last(),1);else break;i=a.$pattern_range(s,r)}return c},-1),s(F,"$padvalue",function(){var t=this;return t.pad_value.$clone()}),s(F,"$padvalue=",function(){var o=this,i=c(arguments),s=i;return n(a(s.$size(),0))&&(n(s["$[]"](0)["$is_a?"](M("Float")))&&s["$[]="](0,s["$[]"](0).$to_i()),n(s["$[]"](0)["$is_a?"](M("Integer")))?n(p(0,255,!1)["$include?"](s["$[]"](0)))&&(o.pad_value=s["$[]"](0)):o.$raise(M("TypeError").$new("Value type: expected Float or Integer. You provided "+s["$[]"](0).$class()))),o.pad_value.$clone()},-1),s(F,"$match",function(t){var n=this;return n.$array_to_ascii(n.data).$match(t)}),s(F,"$maxsize",function(){var t=this;return t.max_size.$clone()}),s(F,"$maxsize=",function(){var l=this,d=c(arguments),i=d;return n(a(i.$size(),0))?n(i["$[]"](0))?(n(i["$[]"](0)["$is_a?"](M("Numeric")))&&i["$[]="](0,i["$[]"](0).$to_i()),n(i["$[]"](0)["$is_a?"](M("Integer")))?(n(a(i["$[]"](0),18446744073709551616))&&l.$raise(M("NoMemoryError").$new("Setting maxsize this high exceeds per-process memory limits")),n(a(i["$[]"](0),l.max_size.$to_i()))?l.max_size=i["$[]"](0):n(m(i["$[]"](0),l.max_size.$to_i()))&&(l.max_size=i["$[]"](0),n(a(l.data.$bytesize(),i["$[]"](0)))&&l.data.$replace(l.data["$[]"](e.Range.$new(0,r(i["$[]"](0),1),!1))))):l.$raise(M("ArgumentError").$new("Expected NilClass or Numeric class. You provided "+i["$[]"](0).$class()))):l.max_size=t:l.max_size=t,l.max_size.$clone()},-1),s(F,"$outervalue",function(){var t=this;return t.outer.$clone()}),s(F,"$outervalue=",function(){var i=this,r=c(arguments),o=r;return n(a(o.$size(),0))?n(o["$[]"](0))?(n(o["$[]"](0)["$is_a?"](M("Float")))&&o["$[]="](0,o["$[]"](0).$to_i()),n(o["$[]"](0)["$is_a?"](M("Integer")))?n(p(0,255,!1)["$include?"](o["$[]"](0)))&&(i.outer=o["$[]"](0)):i.$raise(M("TypeError").$new("Expected a NilClass, a Float, or a Integer. You provided "+o["$[]"](0).$class()))):i.outer=t:i.outer=t,i.$outervalue()},-1),s(F,"$dclone",function(){var n=this,s=t,s=o(M("GxG"),"ByteArray").$new(n.$array_to_ascii(n.data));return s["$padvalue="](n.$padvalue()),s["$maxsize="](n.$maxsize()),s["$outervalue="](n.$outervalue()),s}),s(F,"$initialize_clone",function(){var o=this,s=t,s=o.$dclone();return n(o["$frozen?"]())&&s.$freeze(),s}),s(F,"$initialize_dup",function(){var t=this;return t.$dclone()}),u(F,"dup","initialize_dup"),u(F,"initialize_copy","initialize_dup"),s(F,"$clone",function(){var t=this;return t.$initialize_dup()}),s(F,"$[]",function(n,s){var o=this;return n==null&&(n=0),s==null&&(s=t),o.$slice(n,s)},-1),s(F,"$[]=",function(c,u,h){var f=this,g=t,v=t,p=t,b=t;return c==null&&(c=0),u==null&&(u=t),h==null&&(h=t),n(u)&&(n(h)||(h=u,u=t)),h=f.$filter_data(h),g=t,v=t,n(h)&&(n(a(h.$bytesize(),0))&&(p=f.$filter_parameters(c,u),n(p)||(n(u)?g=M("ArgumentError").$new(""+c.$inspect()+","+u.$inspect()+" could not be fashioned into a valid Indexer"):g=M("ArgumentError").$new(""+c.$inspect()+" could not be fashioned into a valid Indexer")),n(g)&&f.$raise(g),n(f.max_size)&&((n(a(p.$count(),f.max_size))||n(a(p.$first(),r(f.max_size,1)))||n(a(p.$last(),r(f.max_size,1))))&&(g=M("IndexError").$new("Index exceeds "+f.max_size+" limit. You might need to adjust maxsize.")),n(a(l(p.$first(),r(h.$bytesize(),1)),r(f.max_size,1)))&&(g=M("RangeError").$new("Data size at specified Index exceeds "+f.max_size+" limit. You might need to adjust maxsize.")),n(c["$is_a?"](M("Integer")))?n(u)?n(a(l(p.$first(),r(p.$count(),1)),r(f.max_size,1)))?g=M("RangeError").$new("Range exceeds "+f.max_size+" limit. You might need to adjust maxsize."):n(m(p.$count(),h.$bytesize()))&&n(a(l(l(p.$first(),r(p.$count(),1)),r(r(h.$bytesize(),1),r(p.$count(),1))),r(f.max_size,1)))&&(g=M("RangeError").$new("Value size exceeds "+f.max_size+" limit. You might need to adjust maxsize.")):(n(a(l(r(f.data.$size(),1),h.$bytesize()),f.max_size))&&(g=M("RangeError").$new("Operation exceeds "+f.max_size+" limit. You might need to adjust maxsize.")),n(a(l(p.$first(),r(h.$bytesize(),1)),r(f.max_size,1)))&&(g=M("RangeError").$new("Value size exceeds "+f.max_size+" limit. You might need to adjust maxsize."))):n(a(p.$count(),f.max_size))?g=M("RangeError").$new("Range exceeds "+f.max_size+" limit. You might need to adjust maxsize."):n(m(p.$count(),h.$bytesize()))&&n(a(l(l(p.$first(),r(p.$count(),1)),r(r(h.$bytesize(),1),r(p.$count(),1))),r(f.max_size,1)))&&(g=M("RangeError").$new("Value size exceeds "+f.max_size+" limit. You might need to adjust maxsize.")),n(g)&&f.$raise(g)),n(a(p.$first(),r(f.data.$bytesize(),1)))&&i(r(p.$first(),r(f.data.$bytesize(),1)),"times",[],function e(){var n=e.$$s==null?this:e.$$s;return n.pad_value==null&&(n.pad_value=t),n["$<<"](n.pad_value.$chr())},{$$s:f}),n(u)?f.data["$[]="](p.$first(),p.$count(),h):n(c["$is_a?"](M("Numeric")))?d(h.$bytesize(),1)?f.data["$[]="](p.$first(),h["$[]"](0)):(b=p.$first(),i(e.Range.$new(0,r(h.$bytesize(),1),!1),"each",[],function e(s){var c,o=e.$$s==null?this:e.$$s;return o.data==null&&(o.data=t),s==null&&(s=t),n(a(s,r(o.data.$bytesize(),1)))?o["$<<"](h["$[]"](s)):(c=[l(b,s),h["$[]"](s)],i(o.data,"[]=",c),c[c.length-1])},{$$s:f})):f.data["$[]="](p,h)),v=o(M("GxG"),"ByteArray").$new(h)),v},-1),s(F,"$|",function(){var u=this,r=t,a=t,l=c(arguments),d=l,r=o(M("GxG"),"ByteArray").$try_convert(d),a=u.$clone();return n(r)&&i(r,"each",[],function(s){return s==null&&(s=t),n(a["$include?"](s))?t:a["$<<"](s)}),a},-1),s(F,"$&",function(){var h=this,r=t,l=t,u=c(arguments),d=u,r=o(M("GxG"),"ByteArray").$new();return n(a(d.$size(),0))&&(l=o(M("GxG"),"ByteArray").$try_convert(d),n(l)&&i(h,"each",[],function(s){return s==null&&(s=t),n(l["$include?"](s))?r["$<<"](s):t})),r},-1),s(F,"$*",function(){var l=this,d=t,u=c(arguments),r=u,d=o(M("GxG"),"ByteArray").$new();return n(a(l.$size(),0))&&(n(a(r.$size(),0))?n(r["$[]"](0)["$is_a?"](o("String")))?d=l.$join(r["$[]"](0)):n(r["$[]"](0)["$is_a?"](M("Numeric")))?(r["$[]="](0,r["$[]"](0).$to_i()),n(f(y(r["$[]"](0),l.$size()),18446744073709551616))?i(r["$[]"](0),"times",[],function e(){var t=e.$$s==null?this:e.$$s;return d["$<<"](t.$clone())},{$$s:l}):l.$raise(M("NoMemoryError").$new("This operation will exceed per-process memory limits"))):l.$raise(M("ArgumentError").$new("a String or Numeric is required, you provied "+r["$[]"](0).$inspect())):l.$raise(M("TypeError").$new("Can't convert nil to ByteArray"))),d},-1),s(F,"$+",function(){var i=this,l=t,u=t,r=t,h=c(arguments),d=h,l=o(M("GxG"),"ByteArray").$new();return n(a(d.$size(),0))?(u=i.$clone(),r=o(M("GxG"),"ByteArray").$try_convert(d),n(r)&&n(a(r.$size(),0))&&(l=o(M("GxG"),"ByteArray").$new(1,[i.$array_to_ascii(u.$data()),i.$array_to_ascii(r.$data())]))):i.$raise(M("TypeError").$new("Can't convert nil to ByteArray")),l},-1),s(F,"$-",function(){var h=this,r=t,l=t,u=c(arguments),d=u,r=o(M("GxG"),"ByteArray").$new();return n(a(d.$size(),0))&&(l=o(M("GxG"),"ByteArray").$try_convert(d),n(l)&&i(h,"each",[],function(s){return s==null&&(s=t),n(l["$include?"](s))?t:r["$<<"](s)})),r},-1),s(F,"$<<",function(){var i=this,r=t,u=c(arguments),d=u;return n(a(d.$size(),0))&&(r=o(M("GxG"),"ByteArray").$try_convert(d),n(r)&&(n(i.max_size)&&n(a(l(i.data.$bytesize(),r.$size()),i.max_size))&&i.$raise(M("RangeError").$new("Operation exceeds "+i.max_size+" limit. You might need to adjust maxsize.")),i.data=i.$join_arrays(i.data,r.$data()))),i},-1),s(F,"$<=>",function(){var d=this,r=t,l=t,u=c(arguments),i=u,r=1;return n(a(i.$size(),0))&&(n(i["$[]"](0)["$is_a?"](o(o("GxG"),"ByteArray")))?r=d.$data()["$<=>"](i["$[]"](0).$data()):(l=o(M("GxG"),"ByteArray").$try_convert(i),n(l)&&(r=d.$data()["$<=>"](l.$data())))),r},-1),s(F,"$==",function(){var d=this,r=t,l=c(arguments),i=l,r=!1;return n(a(i.$size(),0))&&n(i["$[]"](0)["$is_a?"](o(o("GxG"),"ByteArray")))&&(r=d.$data()["$=="](i["$[]"](0).$data())),r},-1),s(F,"$at",function(){var o=this,i=c(arguments),s=i;return n(s["$[]"](0)["$is_a?"](M("Float")))&&s["$[]="](0,s["$[]"](0).$to_i()),n(s["$[]"](0)["$is_a?"](M("Integer")))?o["$[]"](s["$[]"](0)):o.$raise(M("TypeError").$new("Expected Integer or Float. You provided "+s["$[]"](0).$class()))},-1),s(F,"$clear",function(){var t=this;return t.data=M("Buffer").$new(0).$to_a(),t}),s(F,"$collect",function e(){var r=e.$$p||t,a=this,s=t;return e.$$p=null,s=o(M("GxG"),"ByteArray").$new(),n(r["$respond_to?"]("call"))?i(a,"each",[],function e(n){var o=e.$$s==null?this:e.$$s;return n==null&&(n=t),s["$<<"](o.$array_to_ascii(o.$filter_data(r.$call(n))))},{$$s:a}):s=a.$to_enum("collect"),s}),s(F,"$collect!",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(o["$respond_to?"]("call"))?(s.data=i(s,"collect",[],o.$to_proc()).$data(),s):s.$to_enum("collect!")}),s(F,"$combination",function e(){var l,d,r=e.$$p||t,u=this,a=t;return e.$$p=null,l=c(arguments),d=l,a=i(u.$to_a(),"to_enum",["combination"].concat(h(d))),n(r["$respond_to?"]("call"))?(i(a,"each",[],function(n){return n==null&&(n=t),r.$call(o(M("GxG"),"ByteArray").$new(n))}),u):a},-1),s(F,"$repeated_combination",function e(){var l,d,r=e.$$p||t,u=this,a=t;return e.$$p=null,l=c(arguments),d=l,a=i(u.$to_a(),"to_enum",["repeated_combination"].concat(h(d))),n(r["$respond_to?"]("call"))?(i(a,"each",[],function(n){return n==null&&(n=t),r.$call(o(M("GxG"),"ByteArray").$new(n))}),u):a},-1),s(F,"$compact",_),s(F,"$concat",function(){var i=this,d=t,l=t,u=c(arguments),r=u,d=i;return n(a(r.$size(),0))&&(l=o(M("GxG"),"ByteArray").$try_convert(r),n(l)?i.data=i.$join_arrays(i.data,l.$data()):i.$raise(M("Exception").$new("Could not convert "+r.$inspect()+" to ByteArray"))),d},-1),s(F,"$count",function e(s){var r=e.$$p||t,a=this,o=t;return e.$$p=null,s==null&&(s=t),o=0,n(s["$is_a?"](M("Numeric")))?i(a,"each",[],function(n){return n==null&&(n=t),d(n,s.$to_i())?o=l(o,1):t}):n(r["$respond_to?"]("call"))?i(a,"each",[],function(n){return n==null&&(n=t),d(r.$call(n),!0)?o=l(o,1):t}):o=a.data.$bytesize(),o},-1),s(F,"$cycle",function e(s){var r=e.$$p||t,o=this;if(e.$$p=null,s==null&&(s=t),n(a(o.data.$bytesize(),0))){if(n(m(s.$to_i(),0)))return t;if(n(r["$respond_to?"]("call"))){if(n(s))return i(s.$to_i(),"times",[],function e(){var n=e.$$s==null?this:e.$$s;return i(n,"each",[],function(n){return n==null&&(n=t),r.$call(n)})},{$$s:o}),t;for(;n(!0);)i(o,"each",[],function(n){return n==null&&(n=t),r.$call(n)})}else return o.$to_a().$to_enum("cycle",s)}else return t},-1),s(F,"$delete",function e(){var i,m,h=e.$$p||t,r=this,l=t,o=t,u=t;return e.$$p=null,m=c(arguments),i=m,l=t,n(i["$[]"](0)["$is_a?"](M("Numeric")))&&(o=r.$filter_data(i["$[]"](0).$to_i()),n(a(o.$bytesize(),1))&&(o=o["$[]"](0)),u=r.data.$delete(o),d(u,r.data)?n(h["$respond_to?"]("call"))&&(l=h.$call()):(r.data.$replace(u),l=i["$[]"](0))),l},-1),s(F,"$delete_at",function(){var h=this,j=t,f=t,p=t,g=t,y=t,v=t,_=c(arguments),b=_,j=t;return n(a(b.$size(),0))&&n(a(h.$size(),0))&&n(b["$[]"](0)["$is_a?"](o("Numeric")))&&(f=b["$[]"](0).$to_i(),n(m(f,h.$size()))&&(j=h.data["$[]"](f),d(f,0)?p=[e.Range.$new(1,r(h.data.$bytesize(),1),!1)]:(p=[e.Range.$new(0,r(f,1),!1)],d(f,r(h.data.$bytesize(),1))||p["$<<"](e.Range.$new(l(f,1),r(h.data.$bytesize(),1),!1))),g=0,i(p,"each",[],function(n){return n==null&&(n=t),g=l(g,n.$size())}),y=M("Buffer").$new(g).$to_a(),v=0,i(p,"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),i(n,"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return s.data==null&&(s.data=t),n==null&&(n=t),y["$[]="](v,s.data["$[]"](n)),v=l(v,1)},{$$s:s})},{$$s:h}),h.data=y)),j},-1),s(F,"$delete_if",function e(){var n=e.$$p||t,s=this;return e.$$p=null,i(s,"reject!",[],n.$to_proc())}),s(F,"$drop",function(n){var s=this;return s.$slice(e.Range.$new(r(n.$to_i(),1),-1,!1))}),s(F,"$drop_while",function e(){var a=e.$$p||t,r=this,s=t;return e.$$p=null,s=o(M("GxG"),"ByteArray").$new(),n(a["$respond_to?"]("call"))?(i(r,"each",[],function(o){var i=t;return o==null&&(o=t),i=a.$call(o),n(i)?t:s["$<<"](o)}),s):r.$to_a().$to_enum("drop_while")}),s(F,"$each",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(o["$respond_to?"]("call"))?(n(a(s.data.$bytesize(),0))&&i(s.data.$to_a(),"each",[],function(n){return n==null&&(n=t),o.$call(n.$ord())}),s):s.$to_enum("each")}),s(F,"$each_index",function s(){var c=s.$$p||t,o=this;return s.$$p=null,n(c["$respond_to?"]("call"))?(n(a(o.data.$bytesize(),0))&&i(e.Range.$new(0,r(o.data.$bytesize(),1),!1),"each",[],function(n){return n==null&&(n=t),c.$call(n)}),o):o.$to_enum("each_index")}),s(F,"$each_with_index",function e(s){var r=e.$$p||t,o=this;return e.$$p=null,s==null&&(s=0),n(r["$respond_to?"]("call"))?(n(a(o.data.$bytesize(),0))&&i(o.data.$to_a().$with_index(s),"each",[],function(n,s){return n==null&&(n=t),s==null&&(s=t),r.$call(n.$ord(),s)}),o):o.$to_enum("each_with_index",s)},-1),s(F,"$empty?",function(){var t=this;return t.data.$bytesize()["$=="](0)}),s(F,"$eql?",function(){var i=this,o=c(arguments),s=o;return!!n(a(s.$size(),0))&&i["$=="](s["$[]"](0))},-1),s(F,"$fetch",function e(){var o,l,r=e.$$p||t,i=this;return e.$$p=null,l=c(arguments),o=l,n(a(o.$size(),0))&&n(o["$[]"](0)["$is_a?"](M("Numeric")))?(o["$[]="](0,i.$filter_parameters(o["$[]"](0).$to_i()).$first()),n(g(o["$[]"](0),i.$size()))?n(o["$[]"](1))?n(r["$respond_to?"]("call"))?r.$call(o["$[]"](0)):o["$[]"](1):i.$raise(M("IndexError").$new("Index specified lies outside the ByteArray")):i["$[]"](o["$[]"](0))):t},-1),s(F,"$fill",function s(){var u,y,j=s.$$p||t,f=this,w=t,g=t,v=t,b=t,p=t,_=t;if(s.$$p=null,y=c(arguments),u=y,w=t,g=o(M("GxG"),"ByteArray").$new(),n(j["$respond_to?"]("call")))n(a(u.$size(),0))?(n(u["$[]"](0)["$is_a?"](M("Numeric")))&&(u["$[]="](0,u["$[]"](0).$to_i()),n(m(u["$[]"](0),0))&&(n(u["$[]"](1)["$is_a?"](M("Numeric")))?n(a(u["$[]"](1).$to_i(),0))?u=[e.Range.$new(l(f.data.$bytesize(),u["$[]"](0)),l(l(f.data.$bytesize(),u["$[]"](0)),r(u["$[]"](1).$to_i(),1)),!1)]:f.$raise(M("ArgumentError").$new("length specified should be a positive Integer for Float")):u=[e.Range.$new(l(f.data.$bytesize(),u["$[]"](0)),r(f.data.$bytesize(),1),!1)])),v=i(f,"filter_parameters",h(u))):v=e.Range.$new(0,r(n(b=f.max_size)?b:f.data.$bytesize(),1),!1),i(e.Range.$new(0,r(f.data.$bytesize(),1),!1),"each",[],function e(s){var o=e.$$s==null?this:e.$$s,i=t;return o.pad_value==null&&(o.pad_value=t),o.data==null&&(o.data=t),s==null&&(s=t),n(v["$include?"](s))?(i=o.$filter_data(j.$call(s)),n(a(i.$size(),0))?g["$<<"](i["$[]"](0)):g["$<<"](o.pad_value)):g["$<<"](o.data["$[]"](s))},{$$s:f});else if(n(a(u.$size(),0))){switch(p=t,u.$size().valueOf()){case 1:v=e.Range.$new(0,r(n(_=f.max_size)?_:f.data.$bytesize(),1),!1),p=f.$filter_data(u["$[]"](0));break;case 2:v=f.$filter_parameters(u["$[]"](1)),p=f.$filter_data(u["$[]"](0));break;case 3:v=f.$filter_parameters(u["$[]"](1),u["$[]"](2)),p=f.$filter_data(u["$[]"](0));break;default:v=f.$filter_parameters(u["$[]"](1),u["$[]"](2)),p=f.$filter_data(u["$[]"](0))}p=n(b=p)?b:f.pad_value,n(p["$is_a?"](o("Array")))&&(p=n(b=p["$[]"](0))?b:f.pad_value),i(e.Range.$new(0,r(f.data.$bytesize(),1),!1).$to_enum(),"each",[],function e(s){var o=e.$$s==null?this:e.$$s;return o.data==null&&(o.data=t),s==null&&(s=t),n(v["$include?"](s))?g["$<<"](p):g["$<<"](o.data["$[]"](s))},{$$s:f})}else f.$raise(M("ArgumentError").$new("wrong number of arguments (0 for 1..3)"));return n(a(g.$size(),0))&&(f.data=g.$data()),f},-1),s(F,"$first",function(){var l=this,d=c(arguments),i=d;return n(a(i.$size(),0))?(n(i["$[]"](0)["$is_a?"](M("Float")))&&i["$[]="](0,i["$[]"](0).$to_i()),n(i["$[]"](0)["$is_a?"](M("Integer")))?n(a(i["$[]"](0),0))?(n(l.max_size)&&(n(f(i["$[]"](0),l.max_size))||l.$raise(M("RangeError").$new(""+i["$[]"](0)+" is out of range (1 - "+l.max_size+")."))),l["$[]"](e.Range.$new(0,r(i["$[]"](0),1),!1))):t:l.$raise(M("TypeError").$new("Expected Integer. You provided "+i["$[]"](0).$class()))):l["$[]"](0)},-1),s(F,"$flatten",function(){var t=this;return t.$dclone()}),s(F,"$flatten!",_),s(F,"$freeze",function e(){var s=e.$$p||t,n=this;return e.$$p=null,n.data.$freeze(),n.max_size.$freeze(),n.pad_value.$freeze(),n.outer.$freeze(),O(n,w(n,"freeze",e,!1,!0),"freeze",[],null)}),s(F,"$hash",function(){var t=this;return t.data.$hash()}),s(F,"$include?",function(){var o=this,i=c(arguments),s=i;return n(a(s.$size(),0))?(n(s["$[]"](0)["$is_a?"](M("Float")))&&s["$[]="](0,s["$[]"](0).$to_i()),n(s["$[]"](0)["$is_a?"](M("Integer")))?n(p(0,255,!1)["$include?"](s["$[]"](0)))?o.data["$include?"](s["$[]"](0).$chr()):o.$raise(M("RangeError").$new("Value out of range: range is 0 to 255. You provided "+s["$[]"](0))):o.$raise(M("TypeError").$new("Expected Integer or Float. You provided "+s["$[]"](0).$class()))):o.$raise(M("ArgumentError").$new("Wrong number of arguments ("+s.$size()+" for 1)."))},-1),s(F,"$find_index",function e(){var o,f,m=e.$$p||t,r=this,u=t,h=t;return e.$$p=null,f=c(arguments),o=f,u=t,n(m["$respond_to?"]("call"))?(h=0,function(){try{var e=j("break");return i(r,"each",[],function n(s){return s==null&&(s=t),d(m.$call(s),!0)&&(u=h,e.$throw(t,n.$$is_lambda)),h=l(h,1)})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}()):n(a(o.$size(),0))?(n(o["$[]"](0)["$is_a?"](M("Float")))&&o["$[]="](0,o["$[]"](0).$to_i()),n(o["$[]"](0)["$is_a?"](M("Integer")))?n(p(0,255,!1)["$include?"](o["$[]"](0)))&&(n(o["$[]"](1))?u=r.$array_to_ascii(r.data).$index(o["$[]"](0).$chr(),o["$[]"](1)):u=r.$array_to_ascii(r.data).$index(o["$[]"](0).$chr())):r.$raise(M("TypeError").$new("Expected Integer or Float. You provided "+o["$[]"](0).$class()))):u=r.data.$to_enum("bytes"),u},-1),s(F,"$insert",function(){var u=this,j=t,b=t,p=t,y=t,_=t,w=c(arguments),v=w;if(n(a(v.$size(),1)))if(n(v["$[]"](0)["$is_a?"](M("Float")))&&v["$[]="](0,v["$[]"](0).$to_i()),n(v["$[]"](0)["$is_a?"](M("Integer")))){j=u.$filter_data(v["$[]"](e.Range.$new(1,r(v.$size(),1),!1))),n(u.max_size)&&(n(f(l(u.data.$bytesize(),j.$bytesize()),u.max_size))||u.$raise(M("RangeError").$new("Operation exceeds "+u.max_size+" limit. You need to adjust maxsize.")));try{b=v["$[]"](0),p=[],n(g(b,0))&&n(m(b,u.data.$bytesize()))&&(d(b,0)?(p["$<<"](j),p["$<<"](u.data)):d(b,r(u.data.$bytesize(),1))?(p["$<<"](u.$slice(e.Range.$new(0,r(b,1),!1)).$data()),p["$<<"](j),y=M("Buffer").$new(1).$to_a(),y["$[]="](0,u.data["$[]"](r(u.data.$bytesize(),1))),p["$<<"](y)):(p["$<<"](u.$slice(e.Range.$new(0,r(b,1),!1)).$data()),p["$<<"](j),p["$<<"](u.$slice(e.Range.$new(b,r(u.data.$bytesize(),1),!1)).$data()))),n(a(p.$size(),0))&&(u.data=i(u,"join_arrays",h(p)))}catch(t){if(e.rescue(t,[M("Exception")])){_=t;try{u.$raise(_.$exception(_.$message().$gsub("string",u.$class().$to_s())))}finally{e.pop_exception(t)}}else throw t}}else u.$raise(M("TypeError").$new("Expected Integer or Float. You provided "+v["$[]"](0).$class()));else u.$raise(M("ArgumentError").$new("Wrong number of arguments ("+v.$size()+" for 2)."));return u},-1),s(F,"$inspect",function(){var c=this,o=t,o="[";return n(a(c.data.$bytesize(),0))&&i(e.Range.$new(0,r(c.data.$bytesize(),1),!1),"each",[],function e(s){var r=e.$$s==null?this:e.$$s,i=t;return r.data==null&&(r.data=t),s==null&&(s=t),n(a(o.$size(),1))&&(o=l(o,", ")),i=r.data["$[]"](s),n(a(i,15))?o=l(o,"0x"+i.$to_s(16).$upcase()):o=l(o,"0x0"+i.$to_s(16).$upcase())},{$$s:c}),l(o,"]")}),s(F,"$join",function(){var n=this,s=c(arguments),o=s;return i(n.$array_to_ascii(n.data).$split(),"join",h(o))},-1),s(F,"$last",function(){var i=this,d=t,u=c(arguments),l=u;return n(a(l.$size(),0))?(n(l["$[]"](0)["$is_a?"](M("Float")))&&l["$[]="](0,l["$[]"](0).$to_i()),n(l["$[]"](0)["$is_a?"](M("Integer")))?n(a(l["$[]"](0),0))?(d=e.Range.$new(r(r(i.data.$bytesize(),1),r(l["$[]"](0),1)),r(i.data.$bytesize(),1),!1),n(i.max_size)&&(n(f(l["$[]"](0),i.max_size))||i.$raise(M("RangeError").$new(""+l["$[]"](0)+" is out of range (1 - "+i.max_size+")."))),i["$[]"](d)):i.$raise(M("RangeError").$new(""+l["$[]"](0)+" is out of range (1 - "+i.max_size+").")):i.$raise(M("TypeError").$new("Expected Integer. You provided "+l["$[]"](0).$class()))):i["$[]"](r(i.data.$bytesize(),1))},-1),s(F,"$pack",function(){var a=this,i=t,r=t,l=c(arguments),o=l,i="";return n(g(o.$size(),1))?(o["$[]="](0,n(r=o["$[]"](0))?r:""),n(o["$[]"](0)["$is_a?"](M("String")))?(n(o["$[]"](1)["$is_a?"](M("Encoding")))&&i.$force_encoding(o["$[]"](1)),i["$<<"](a.$to_a().$pack(o["$[]"](0)))):a.$raise(M("TypeError").$new("Expected String. You provided "+o["$[]"](0).$class()))):a.$raise(M("ArgumentError").$new("Wrong number of arguments ("+o.$size()+" for 1+).")),i},-1),s(F,"$permutation",function e(){var d,u,l=e.$$p||t,a=this,r=t;return e.$$p=null,d=c(arguments),u=d,r=i(a.$array_to_ascii(a.data).$split(),"to_enum",["permutation"].concat(h(u))),n(l["$respond_to?"]("call"))?(i(r,"each",[],function(n){return n==null&&(n=t),l.$call(o(M("GxG"),"ByteArray").$new(n))}),a):r},-1),s(F,"$repeated_permutation",function e(){var d,u,l=e.$$p||t,a=this,r=t;return e.$$p=null,d=c(arguments),u=d,r=i(a.$array_to_ascii(a.data).$split(),"to_enum",["repeated_permutation"].concat(h(u))),n(l["$respond_to?"]("call"))?(i(r,"each",[],function(n){return n==null&&(n=t),l.$call(o(M("GxG"),"ByteArray").$new(n))}),a):r},-1),s(F,"$pop",function(s){var c=this,r=t;return s==null&&(s=t),r=t,n(s["$is_a?"](M("Numeric")))?(n(a(s.$to_i(),0))||c.$raise(M("ArgumentError").$new(""+s+" needs to be a positive Numeric")),r=o(o("GxG"),"ByteArray").$new(),i(s,"times",[],function e(){var t=e.$$s==null?this:e.$$s;return r["$<<"](t.$delete_at(-1))},{$$s:c})):r=c.$delete_at(-1),r},-1),s(F,"$product",function e(){var r,h,u=e.$$p||t,l=this,d=t;return e.$$p=null,h=c(arguments),r=h,n(a(l.data.$bytesize(),0))?(r=o(M("GxG"),"ByteArray").$new(r),n(u["$respond_to?"]("call"))?(i(l,"each",[],function(n){return n==null&&(n=t),i(r,"each",[],function(s){return s==null&&(s=t),u.$call(o(M("GxG"),"ByteArray").$new([n,s]))})}),l):(d=o(M("GxG"),"ByteArray").$new(),i(l,"each",[],function(n){return n==null&&(n=t),i(r,"each",[],function(s){return s==null&&(s=t),d["$<<"](n),d["$<<"](s)})}),d)):l},-1),s(F,"$push",function(){var i=this,n=c(arguments),s=n;return i["$<<"](o(M("GxG"),"ByteArray").$new(s))},-1),s(F,"$rassoc",function(n){return n==null&&(n=t),t},-1),s(F,"$reject",function e(){var r=e.$$p||t,a=this,s=t;return e.$$p=null,s=t,n(r["$respond_to?"]("call"))?(s=o(M("GxG"),"ByteArray").$new(),s["$padvalue="](a.pad_value),n(a.max_size)&&s["$maxsize="](a.max_size),i(a,"each_with_index",[],function(n,o){return n==null&&(n=t),o==null&&(o=t),d(r.$call(n),!0)?t:s["$<<"](n)})):s=a.$to_a().$to_enum("reject"),s}),s(F,"$reject!",function e(){var r=e.$$p||t,s=this,o=t,a=t;return e.$$p=null,o=t,n(r["$respond_to?"]("call"))?(a=i(s,"reject",[],r.$to_proc()),n(a)&&(s.data=a.$data()),o=s):o=s.$to_a().$to_enum("reject!"),o}),s(F,"$replace",function(){var l=this,d=t,h=c(arguments),u=h;return n(a(u.$size(),0))&&(d=o(M("GxG"),"ByteArray").$try_convert(u),n(d)?n(l.max_size)?n(f(d.$data().$bytesize(),l.max_size))?l.data=d.$data():l.data=d["$[]"](e.Range.$new(0,r(l.max_size,1),!1)).$data():l.data=d.$data():l.$raise(M("Exception").$new("Could not convert "+u["$[]"](0).$class()+" to ByteArray"))),l},-1),s(F,"$reverse",function(){var s=this,i=t,i=o(M("GxG"),"ByteArray").$new(s.$array_to_ascii(s.data).$reverse());return i["$padvalue="](s.pad_value.$clone()),n(s.max_size)&&i["$maxsize="](s.max_size.$clone()),i}),s(F,"$reverse!",function(){var t=this;return t.data=t.$reverse().$data(),t}),s(F,"$reverse_each",function e(){var a=e.$$p||t,o=this,s=t;return e.$$p=null,s=t,n(a["$respond_to?"]("call"))?(s=o.$clone(),s.$clear(),i(o.$reverse(),"each",[],function(n){return n==null&&(n=t),s["$<<"](a.$call(n))})):s=o.$reverse().$to_enum("each"),s}),s(F,"$rotate",function(i){var c=this,l=t,u=t,h=t;return i==null&&(i=1),n(i["$is_a?"](M("Numeric")))||c.$raise(M("ArgumentError").$new("Expected a Numeric, you provided "+i.$class())),n(m(i,0))?i=r(r(c.$size(),i["$~"]()["$%"](c.$size())),1).$to_i():i=i["$%"](c.$size()).$to_i(),l=[],d(i,0)||(u=c.$filter_parameters(e.Range.$new(i,-1,!1)),l["$<<"](c["$[]"](u)),n(a(u.$first(),0))&&l["$<<"](c["$[]"](e.Range.$new(0,r(u.$first(),1),!1)))),n(a(l.$size(),0))?h=o(M("GxG"),"ByteArray").$new(l):h=c.$clone(),h},-1),s(F,"$rotate!",function(t){var s=this;return t==null&&(t=1),n(t["$is_a?"](M("Numeric")))?b(t.$to_i(),0)&&(s.data=s.$rotate(t).$data()):s.$raise(M("ArgumentError").$new("Expected a Numeric, you provided "+t.$class())),s},-1),s(F,"$sample",function(){var a=this,n=c(arguments),s=n;return o(M("GxG"),"ByteArray").$new(i(a.$to_a(),"sample",h(s)))},-1),s(F,"$select",function e(){var r=e.$$p||t,a=this,s=t;return e.$$p=null,s=o(M("GxG"),"ByteArray").$new(),s["$maxsize="](a.max_size),s["$padvalue="](a.pad_value),s["$outervalue="](a.outer),n(r["$respond_to?"]("call"))?i(a,"each",[],function(n){return n==null&&(n=t),d(r.$call(n),!1)?t:s["$<<"](n)}):s=a.$to_enum("select"),s}),s(F,"$select!",function e(){var o=e.$$p||t,s=this,a=t;return e.$$p=null,n(o["$respond_to?"]("call"))?(a=s.data.$hash(),s.data=i(s,"select",[],o.$to_proc()).$data(),d(a,s.data.$hash())?t:s):s.$to_enum("select!")}),s(F,"$shift",function(){var t=this;return t.$delete_at(0)}),s(F,"$shuffle",function(){var a=this,n=c(arguments),s=n;return o(M("GxG"),"ByteArray").$new(i(a.$to_a(),"shuffle",h(s)))},-1),s(F,"$shuffle!",function(){var n=this,s=c(arguments),o=s;return n.$replace(i(n,"shuffle",h(o))),n},-1),s(F,"$size",function(){var t=this;return t.data.$bytesize()}),s(F,"$slice",function(s,c){var u=this,h=t,m=t,p=t,f=t;return s==null&&(s=0),c==null&&(c=t),h=u.$filter_parameters(s,c),n(h)||(n(c)?u.$raise(M("ArgumentError").$new(""+s.$inspect()+","+c.$inspect()+" could not be fashioned into a valid Indexer")):u.$raise(M("ArgumentError").$new(""+s.$inspect()+" could not be fashioned into a valid Indexer"))),n(u.max_size)&&(n(a(h.$count(),u.max_size))||n(a(h.$first(),r(u.max_size,1)))||n(a(h.$last(),r(u.max_size,1))))&&u.$raise(M("IndexError").$new("Index exceeds "+u.max_size+" limit. You need to adjust maxsize.")),m=t,n(h)&&(d(h.$first(),h.$last())?m=u.data["$[]"](h.$first()):(p=M("Buffer").$new(h.$size()).$to_a(),f=0,i(h,"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return s.data==null&&(s.data=t),n==null&&(n=t),p["$[]="](f,s.data["$[]"](n)),f=l(f,1)},{$$s:u}),m=o(o("GxG"),"ByteArray").$new(u.$array_to_ascii(p)))),m},-1),s(F,"$slice!",function(s,o){var i=this,a=t;return s==null&&(s=0),o==null&&(o=t),a=i.$slice(s,o),n(a["$is_a?"](M("Numeric")))?i.$replace(a.$chr()):i.$replace(a),d(i.$size(),1)?i.$slice(0):i},-1),s(F,"$sort",function e(){var s=e.$$p||t,a=this;return e.$$p=null,n(s["$respond_to?"]("call"))?o(M("GxG"),"ByteArray").$new(i(a.$to_a(),"sort",[],function(n,o){return n==null&&(n=t),o==null&&(o=t),s.$call(n,o)})):o(M("GxG"),"ByteArray").$new(a.$to_a().$sort())}),s(F,"$sort!",function e(){var o=e.$$p||t,s=this;return e.$$p=null,n(o["$respond_to?"]("call"))&&s.$replace(i(s,"sort",[],o.$to_proc()).$data()),s}),s(F,"$sort_by!",function e(){var a=e.$$p||t,s=this;return e.$$p=null,n(a["$respond_to?"]("call"))?(s.$replace(o(M("GxG"),"ByteArray").$new(i(s.$to_a(),"sort_by!",[],function(n,s){return n==null&&(n=t),s==null&&(s=t),a.$call(n,s)})).$data()),s):s.$to_enum("sort_by!")}),s(F,"$take",function(n){var s=this;return s.$slice(e.Range.$new(0,r(n.$to_i(),1),!1))}),s(F,"$take_while",function e(){var a=e.$$p||t,r=this,s=t;return e.$$p=null,n(a["$respond_to?"]("call"))?(s=o(M("GxG"),"ByteArray").$new(),function(){try{var e=j("break");return i(r,"each",[],function o(i){var r=t;if(i==null&&(i=t),r=a.$call(i),n(r))return s["$<<"](i);e.$throw(t,o.$$is_lambda)})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}(),s):r.$to_enum("take_while")}),s(F,"$to_a",function(){var o=this,c=t,c=[];return n(a(o.data.$bytesize(),0))&&i(e.Range.$new(0,r(o.data.$bytesize(),1),!1),"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return s.data==null&&(s.data=t),n==null&&(n=t),c["$<<"](s.data["$[]"](n))},{$$s:o}),c}),s(F,"$to_s",function(){var t=this;return t.$array_to_ascii(t.data)}),s(F,"$to_ascii",function(){var t=this;return t.$array_to_ascii(t.data)}),s(F,"$to_json",function(){var t=this;return l("binary:",t.$to_ascii().$encode64())}),s(F,"$transpose",function(){var t=this;return t.$clone()}),s(F,"$uniq",function e(){var s=e.$$p||t,a=this;return e.$$p=null,n(s["$respond_to?"]("call"))?o(M("GxG"),"ByteArray").$new(i(a.$to_a(),"uniq",[],s.$to_proc())):a}),s(F,"$uniq!",function e(){var o=e.$$p||t,n=this,s=t;return e.$$p=null,s=i(n,"uniq",[],o.$to_proc()),d(s.$size(),n.$size())?t:(n.$replace(s),n)}),s(F,"$unshift",function(){var o=this,i=c(arguments),s=i;return n(a(s.$size(),0))&&o.$insert(0,s),o},-1),s(F,"$values_at",function(){var u=this,r=t,d=c(arguments),l=d,r=o(M("GxG"),"ByteArray").$new();return n(a(l.$size(),0))&&i(l.$to_enum(),"each",[],function e(s){var o=e.$$s==null?this:e.$$s;return s==null&&(s=t),n(s["$is_a?"](M("Numeric")))||n(s["$is_a?"](M("Range")))?(n(s["$is_a?"](M("Range")))||(s=s.$to_i()),r["$<<"](o["$[]"](s))):o.$raise(M("TypeError").$new("Expected Integer, Float or Range. You provided "+s.$class()))},{$$s:u}),r},-1),s(F,"$zip",function e(){var r,h,u=e.$$p||t,d=this,l=t;return e.$$p=null,h=c(arguments),r=h,l=t,n(a(r.$size(),0))?(l=o(M("GxG"),"ByteArray").$new(),i(r.$to_enum("each_index"),"each",[],function(s){var a;return s==null&&(s=t),n(r["$[]"](s)["$is_a?"](o(M("GxG"),"ByteArray")))?t:(a=[s,o(M("GxG"),"ByteArray").$new(r["$[]"](s))],i(r,"[]=",a),a[a.length-1])}),i(d,"each_with_index",[],function e(s,a){var h=e.$$s==null?this:e.$$s,c=t,d=t;return s==null&&(s=t),a==null&&(a=t),c=o(M("GxG"),"ByteArray").$new(),c["$<<"](s),i(r.$to_enum("each_index"),"each",[],function e(s){var o=e.$$s==null?this:e.$$s;return o.pad_value==null&&(o.pad_value=t),s==null&&(s=t),n(g(a,r["$[]"](s).$size()))?c["$<<"](o.pad_value):c["$<<"](r["$[]"](s).$data()["$[]"](a))},{$$s:h}),n(u["$respond_to?"]("call"))&&(d=u.$call(c),n(d["$is_a?"](o("Array")))&&(d=o(M("GxG"),"ByteArray").$new(d)),n(d["$is_a?"](o(o("GxG"),"ByteArray")))&&(c=d)),l["$<<"](c)},{$$s:d})):l=d.$clone(),l},-1),u(F,"assoc","rassoc"),u(F,"map","collect"),u(F,"map!","collect!"),u(F,"compact!","compact"),u(F,"indices","values_at"),u(F,"indexes","values_at"),u(F,"rindex","find_index"),u(F,"index","find_index"),u(F,"length","size"),u(F,"nitems","size"),u(F,"to_ary","to_a"),u(F,"keep_if","select!"),s(F,"$paths_to",function(s,o){var r=this,a=t;return s==null&&(s=t),o==null&&(o=""),a=[],n(s["$is_a?"](M("Numeric")))&&i(r,"each_with_index",[],function(n,i){return n==null&&(n=t),i==null&&(i=t),d(n,s.$to_i())?a["$<<"](l(l(o,"/"),i.$to_s())):t}),a},-1),s(F,"$get_at_path",function(s){var c=this,o=t,r=t,l=t;return s==null&&(s="/"),o=t,d(s,"/")?o=c:(r=[c],l=s.$split("/"),function(){try{var e=j("break");return i(l.$to_enum(),"each",[],function s(i){var c=t;if(i==null&&(i=t),c=t,n(a(i.$size(),0))&&d(i["$=~"](/^(?:[0-9])*[0-9](?:[0-9])*$/),0)&&(c=i.$to_i()),n(c))if(o=r.$first()["$[]"](c),n(o["$is_a?"](M("NilClass"))))e.$throw(t,s.$$is_lambda);else return r.$unshift(o);else return t})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}()),o},-1),s(F,"$set_at_path",function(s,i){var h=this,u=t,c=t,l=t,r=t;return s==null&&(s="/"),i==null&&(i=t),u=t,b(s,"/")&&(c=h,n(c)&&(l=o("File").$basename(s),r=t,n(a(l.$size(),0))&&d(l["$=~"](/^(?:[0-9])*[0-9](?:[0-9])*$/),0)&&(r=l.$to_i()),n(r)&&(c["$[]="](r,i),d(c["$[]"](r),i)&&(u=!0)))),u},-1)}(M[0],null,M)}(x[0],x)},Opal.modules["web/gxg_events"]=function(e){var h=e.module,m=e.const_set,u=e.klass,s=e.def,l=e.return_ivar,i=e.send,o=e.truthy,f=e.rb_gt,C=e.return_self,d=e.return_val,w=e.defs,p=e.slice,v=e.to_a,c=e.eqeq,_=e.rb_ge,a=e.rb_plus,g=e.alias,O=e.send2,x=e.find_super,j=e.rb_times,b=e.rb_divide,y=e.thrower,r=[],t=e.nil,n=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(r,E){var A=h(r,"GxG"),k=[A].concat(E);return m(k[0],"GXG_FEDERATION",new Map([["title","Untitled"],["uuid",t],["access_url",t],["available",new Map],["connections",new Map]])),function(a,r){var d=h(a,"Messages"),c=[d].concat(r);return function(e,n){var o=u(e,n,"Channel"),i=o.$$prototype;return i.inbox=i.outbox=t,s(o,"$initialize",function(n,s){var o=this;return n==null&&(n=t),s==null&&(s=t),o.uuid=n,o.inbox=[],o.outbox=[],o.socket=t,o.remote=t,o.channel_secret=t,o.object=s,o},-1),s(o,"$uuid",l("uuid")),s(o,"$object",l("object")),s(o,"$socket",l("socket")),s(o,"$socket=",function(n){var s=this;return n==null&&(n=t),s.socket=n},-1),s(o,"$remote",l("remote")),s(o,"$remote=",function(n){var s=this;return n==null&&(n=t),s.remote=n},-1),s(o,"$secret",l("channel_secret")),s(o,"$secret=",function(n){var s=this;return n==null&&(n=t),s.channel_secret=n},-1),s(o,"$inbox_size",function(){var t=this;return t.inbox.$size()}),s(o,"$next_message",function(){var t=this;return t.inbox.$unshift()}),s(o,"$outbox_size",function(){var t=this;return t.outbox.$size()}),s(o,"$send_message",function(t){var n=this;return n.outbox["$<<"](t)}),s(o,"$read",function(){var t=this;return t.outbox.$unshift()}),s(o,"$write",function(t){var n=this;return n.inbox["$<<"](t)})}(c[0],null),function(a,r,c){var l=u(a,r,"ChannelManager"),h=[l].concat(c),d=e.$r(h);return s(l,"$update_channels",function(){var a=this,s=t,n=t,s=!1,n=[];return i(d("GXG_FEDERATION")["$[]"]("connections").$values(),"each",[],function(s){return s==null&&(s=t),n["$<<"](s)}),i(n,"each",[],function e(n){var i=e.$$s==null?this:e.$$s,s=t;for(n==null&&(n=t),s=n.$read();o(s);)i.$dispatch_message(s),s=n.$read()},{$$s:a}),o(f(n.$size(),0))&&(s=!0),s}),s(l,"$dispatch_message",function(s){var a=this,i=t,r=t,c=t;return s==null&&(s=t),i=!1,o(s["$is_a?"](n(n(n("GxG"),"Events"),"Message")))&&(r=s["$[]"]("to"),o(n("GxG")["$valud_uuid?"](r.$to_s()))&&(c=a.$fetch_channel(r.$to_s().$to_sym()),o(c)?(c.$write(s),i=!0):o(n(d("GxG"),"DISPLAY_DETAILS")["$[]"]("logged_in"))?(a.$socket().$send(new Map([["payload",s.$export().$to_s().$encrypt(a.$connector().$secret()).$encode64()]]).$to_json().$encode64(),"text"),i=!0):(a.$log_warn("Message dropped --> login and resend"),i=!1))),i},-1),s(l,"$fetch_channel",function(t){return d("GXG_FEDERATION")["$[]"]("connections")["$[]"](t)}),s(l,"$create_channel",function(s,i){var a=this;return s==null&&(s=t),i==null&&(i=t),d("GXG_FEDERATION")["$[]"]("connections")["$[]="](s,n(n(n("GxG"),"Messages"),"Channel").$new(s,i)),o(n(d("GxG"),"DISPLAY_DETAILS")["$[]"]("logged_in"))?a.$socket().$send(new Map([["open_channel",s]]).$to_json().$encode64(),"text"):t},-1),s(l,"$destroy_channel",function(s){var r=this,a=t,a=r.$fetch_channel(s);return o(a)&&(i(a.$outbox_size(),"times",[],function e(n){var i=e.$$s==null?this:e.$$s,s=t;return n==null&&(n=t),s=a.$read(),o(s)?i.$dispatch_message(s):t},{$$s:r}),o(n(d("GxG"),"DISPLAY_DETAILS")["$[]"]("logged_in"))&&r.$socket().$send(new Map([["close_channel",s]]).$to_json().$encode64(),"text")),d("GXG_FEDERATION")["$[]"]("connections").$delete(s)}),s(l,"$next_message",function(n){var a=this,s=t,i=t,s=t,i=a.$fetch_channel(n);return o(i)&&(s=i.$next_message()),s}),s(l,"$send_message",function(n,s){var a=this,i=t,i=a.$fetch_channel(n);return o(i)?i.$send_message(s):t}),s(l,"$initialize",C)}(c[0],null,c)}(k[0],k),function(r,m){var E=h(r,"Events"),C=[E].concat(m);return function(a,r,c){var l=u(a,r,"Message"),m=[l].concat(c),h=e.$r(m),f=l.$$prototype;return f.data=t,w(l,"$import",function(n){var o=this,s=t;return n==null&&(n=t),s=i(o,"new_message",[],d(t)),s.$import(n),s},-1),s(l,"$initialize",function(){var i=this,r=p(arguments),a=r;return o(a["$[]"](0)["$is_a?"](n("Hash")))||i.$raise(h("ArgumentError"),"you must pass a Hash to create the message"),i.data=new Map([["sender",t],["id",h("GxG").$uuid_generate().$to_s().$to_sym()],["subject",a["$[]"](1).$to_s()],["body",t],["on_success",t],["on_fail",t]]).$merge(a["$[]"](0)),o(i.data["$[]"]("sender"))||i.$raise(h("ArgumentError"),"you must set the :sender key in the argument Hash"),i},-1),s(l,"$inspect",function(){var t=this;return t.data.$inspect()}),s(l,"$id",function(){var t=this;return t.data["$[]"]("id")}),s(l,"$sender",function(){var t=this;return t.data["$[]"]("sender")}),s(l,"$subject",function(){var t=this;return t.data["$[]"]("subject")}),s(l,"$body",function(){var t=this;return t.data["$[]"]("body")}),s(l,"$succeed",function(n){var s=this;return n==null&&(n=t),o(s.data["$[]"]("on_success")["$respond_to?"]("call"))?s.data["$[]"]("on_success").$call(n):t},-1),s(l,"$fail",function(n){var s=this;return n==null&&(n=t),o(s.data["$[]"]("on_fail")["$respond_to?"]("call"))?s.data["$[]"]("on_fail").$call(n):t},-1),s(l,"$on",function e(n){var s,r=e.$$p||t,a=this;if(e.$$p=null,n==null&&(n=t),o(["success","fail"]["$include?"](n)))if(o(r["$respond_to?"]("call")))switch(n.valueOf()){case"success":return s=["on_success",r],i(a.data,"[]=",s),s[s.length-1];case"fail":return s=["on_fail",r],i(a.data,"[]=",s),s[s.length-1];default:return t}else return a.$raise(h("ArgumentError"),"You MUST provide a callable block.");else return a.$raise(h("ArgumentError"),"Unknown event type: "+n)},-1),s(l,"$keys",function(){var t=this;return t.data.$keys()}),s(l,"$[]",function(t){var n=this;return n.data["$[]"](t)}),s(l,"$[]=",function(t,n){var s,o=this;return s=[t,n],i(o.data,"[]=",s),s[s.length-1]}),s(l,"$process",function e(){var n=e.$$p||t,s=this;return e.$$p=null,i(s.data,"process",[],n.$to_proc())}),s(l,"$process!",function e(){var n=e.$$p||t,s=this;return e.$$p=null,i(s.data,"process!",[],n.$to_proc())}),s(l,"$search",function e(){var n=e.$$p||t,s=this;return e.$$p=null,i(s.data,"search",[],n.$to_proc())}),s(l,"$paths_to",function(){var o=this,n=p(arguments),s=n;return i(o.data,"paths_to",v(s))},-1),s(l,"$get_at_path",function(){var o=this,n=p(arguments),s=n;return i(o.data,"get_at_path",v(s))},-1),s(l,"$set_at_path",function(){var o=this,n=p(arguments),s=n;return i(o.data,"set_at_path",v(s))},-1),s(l,"$import",function(s){var a=this,i=t;return s==null&&(s=t),o(s["$is_any?"](n("String"),n("Hash")))||a.$raise(h("Exception").$new("You MUST supply a JSON string or a Hash, you supplied: "+s.$class().$inspect())),i=!1,o(s["$is_a?"](n("String")))&&(s=h("JSON").$parse(s,new Map([["symbolize_names",!0]]))),o(s.$is(n("Hash")))&&(a.data.$merge(n("Hash").$gxg_import(s)),i=!0),i},-1),s(l,"$export",function(){var t=this;return t.data.$gxg_export().$to_json().$to_s()}),s(l,"$to_s",function(){var t=this;return t.$export().$to_s()}),s(l,"$to_json",function(){var t=this;return t.$to_s()})}(C[0],null,C),u(C[0],null,"LoggerDB"),function(r,h,m){var f=u(r,h,"LogRing"),b=[f].concat(m),p=e.$r(b),v=f.$$prototype;return v.outlets=v.busy=v.messages=t,s(f,"$initialize",function(){var t=this;return t.uuid=n("GxG").$uuid_generate().$to_sym(),t.busy=!1,t.outlets=new Map,t.messages=[]}),s(f,"$uuid",l("uuid")),s(f,"$keys",function(){var t=this;return t.outlets.$keys()}),s(f,"$[]",function(t){var n=this;return n.outlets["$[]"](t)}),s(f,"$[]=",function(t,s){var i=this;return o(s["$is_any?"](n("Logger"),n(n(n("GxG"),"Events"),"LoggerDB")))?(i.outlets["$[]="](t,s),s):i.$raise(p("ArgumentError"),"You must supply a Logger or GxG::Events::LoggerDB instance, you provided a "+s.$class())}),s(f,"$process_messages",function(){var l=this,r=t,d=t,u=t;if(!o(l.busy)){if(l.busy=!0,r=l.messages.$shift(),o(r["$is_a?"](n(n(n("GxG"),"Events"),"Message"))))try{c(r["$[]"]("subject"),"notification")&&o(r["$[]"]("body")["$is_a?"](n("Hash")))&&(d=l.$keys(),i(d.$to_enum("each"),"each",[],function e(s){var l=e.$$s==null?this:e.$$s,i=t,c=t;return s==null&&(s=t),i=l["$[]"](s),o(_(o(c=r["$[]"]("body")["$[]"]("severity"))?c:n(n("Logger"),"UNKNOWN"),i.$level()))?o(i["$is_a?"](n(n(n("GxG"),"Events"),"LoggerDB")))?t:o(r["$[]"]("body")["$[]"]("message")["$is_a?"](n("String")))||o(r["$[]"]("body")["$[]"]("message")["$is_a?"](n("Exception")))?i.$add(r["$[]"]("body")["$[]"]("severity"),r["$[]"]("body")["$[]"]("message"),r["$[]"]("body")["$[]"]("progname")):o(r["$[]"]("body")["$[]"]("message")["$is_a?"](n("Hash")))?o(r["$[]"]("body")["$[]"]("message")["$[]"]("error")["$is_a?"](n("Exception")))?o(r["$[]"]("body")["$[]"]("message")["$[]"]("error").$backtrace()["$is_a?"](n("Array")))?o(r["$[]"]("body")["$[]"]("message")["$[]"]("parameters"))?i.$add(r["$[]"]("body")["$[]"]("severity"),a(a(a(a(a(a(`
`+r["$[]"]("body")["$[]"]("message")["$[]"]("error").$exception().$class().$to_s()+": ",r["$[]"]("body")["$[]"]("message")["$[]"]("error").$to_s()),`
Parameters: `),r["$[]"]("body")["$[]"]("message")["$[]"]("parameters").$inspect()),`
Trace: `),r["$[]"]("body")["$[]"]("message")["$[]"]("error").$backtrace().$join(`
`)),`
`),r["$[]"]("body")["$[]"]("progname")):i.$add(r["$[]"]("body")["$[]"]("severity"),a(a(a(a(`
`+r["$[]"]("body")["$[]"]("message")["$[]"]("error").$exception().$class().$to_s()+": ",r["$[]"]("body")["$[]"]("message")["$[]"]("error").$to_s()),`
Trace: `),r["$[]"]("body")["$[]"]("message")["$[]"]("error").$backtrace().$join(`
`)),`
`),r["$[]"]("body")["$[]"]("progname")):o(r["$[]"]("body")["$[]"]("message")["$[]"]("parameters"))?i.$add(r["$[]"]("body")["$[]"]("severity"),a(a(a(a(`
`+r["$[]"]("body")["$[]"]("message")["$[]"]("error").$exception().$class().$to_s()+": ",r["$[]"]("body")["$[]"]("message")["$[]"]("error").$to_s()),`
Parameters: `),r["$[]"]("body")["$[]"]("message")["$[]"]("parameters").$inspect()),`
`),r["$[]"]("body")["$[]"]("progname")):i.$add(r["$[]"]("body")["$[]"]("severity"),a(a(`
`+r["$[]"]("body")["$[]"]("message")["$[]"]("error").$exception().$class().$to_s()+": ",r["$[]"]("body")["$[]"]("message")["$[]"]("error").$to_s()),`
`),r["$[]"]("body")["$[]"]("progname")):i.$add(r["$[]"]("body")["$[]"]("severity"),r["$[]"]("body")["$[]"]("message").$inspect(),r["$[]"]("body")["$[]"]("progname")):i.$add(r["$[]"]("body")["$[]"]("severity"),r["$[]"]("body")["$[]"]("message").$inspect(),r["$[]"]("body")["$[]"]("progname")):t},{$$s:l}))}catch(t){if(e.rescue(t,[p("Exception")])){u=t;try{l.busy=!1}finally{e.pop_exception(t)}}else throw t}l.busy=!1}return!0}),s(f,"$add",function s(i,a,r,l){var h=s.$$p||t,d=this,u=t,m=t;s.$$p=null,i==null&&(i=t),a==null&&(a=t),r==null&&(r=t),l==null&&(l=t),o([n(n("Logger"),"DEBUG"),n(n("Logger"),"INFO"),n(n("Logger"),"WARN"),n(n("Logger"),"ERROR"),n(n("Logger"),"FATAL"),n(n("Logger"),"UNKNOWN")]["$include?"](i))||(i=n(n("Logger"),"UNKNOWN")),o(r)&&(o(a)||(a=r,r=t));try{for(o(a)||o(h["$respond_to?"]("call"))&&(a=h.$call()),u=d.$new_message(new Map([["severity",i],["message",a],["progname",r]]),"notification"),o(l)&&u["$[]="]("sender",l);c(d.busy,!0);)d.$sleep(.333);return d.busy=!0,d.messages["$<<"](u),d.busy=!1,!0}catch(t){if(e.rescue(t,[p("Exception")])){m=t;try{return d.busy=!1,!1}finally{e.pop_exception(t)}}else throw t}},-1),s(f,"$unknown?",d(!0)),g(f,"trace?","unknown?"),s(f,"$unknown",function e(s,a,r){var d=e.$$p||t,c=this,l=t;return e.$$p=null,s==null&&(s=t),a==null&&(a=t),r==null&&(r=t),i(c,"add",[n(n("Logger"),"UNKNOWN"),s,a,o(l=r)?l:c],d.$to_proc())},-1),g(f,"trace","unknown"),s(f,"$fatal?",d(!0)),s(f,"$fatal",function e(s,a,r){var d=e.$$p||t,c=this,l=t;return e.$$p=null,s==null&&(s=t),a==null&&(a=t),r==null&&(r=t),i(c,"add",[n(n("Logger"),"FATAL"),s,a,o(l=r)?l:c],d.$to_proc())},-1),s(f,"$error?",d(!0)),s(f,"$error",function e(s,a,r){var d=e.$$p||t,c=this,l=t;return e.$$p=null,s==null&&(s=t),a==null&&(a=t),r==null&&(r=t),i(c,"add",[n(n("Logger"),"ERROR"),s,a,o(l=r)?l:c],d.$to_proc())},-1),s(f,"$warn?",d(!0)),g(f,"warning?","warn?"),s(f,"$warn",function e(s,a,r){var d=e.$$p||t,c=this,l=t;return e.$$p=null,s==null&&(s=t),a==null&&(a=t),r==null&&(r=t),i(c,"add",[n(n("Logger"),"WARN"),s,a,o(l=r)?l:c],d.$to_proc())},-1),g(f,"warning","warn"),s(f,"$info?",d(!0)),s(f,"$info",function e(s,a,r){var d=e.$$p||t,c=this,l=t;return e.$$p=null,s==null&&(s=t),a==null&&(a=t),r==null&&(r=t),i(c,"add",[n(n("Logger"),"INFO"),s,a,o(l=r)?l:c],d.$to_proc())},-1),s(f,"$debug?",d(!0)),s(f,"$debug",function e(s,a,r){var d=e.$$p||t,c=this,l=t;return e.$$p=null,s==null&&(s=t),a==null&&(a=t),r==null&&(r=t),i(c,"add",[n(n("Logger"),"DEBUG"),s,a,o(l=r)?l:c],d.$to_proc())},-1)}(C[0],null,C),function(r,d,h){var m=u(r,d,"EventDispatcher"),v=[m].concat(h),p=e.$r(v),g=m.$$prototype;return g.host_timer=g.js_interval=g.running=g.ticking=g.timers=g.event_queues=t,s(m,"$initialize",function e(s){var i=e.$$p||t,o=this;return e.$$p=null,s==null&&(s=.333),O(o,x(o,"initialize",e,!1,!0),"initialize",[],null),o.uuid=n("GxG").$uuid_generate().$to_sym(),o.event_queues=new Map([["root",new Map([["events",[]],["settings",new Map([["active",!0],["portion",100]])]])]]),o.running=!1,o.ticking=!1,o.timers=[],o.js_interval=j(s.$to_f(),1e3).$to_i(),o.host_timer=t,o},-1),s(m,"$startup",function(){var t=this;return t.running=!0,o(t.host_timer)||(t.host_timer=setInterval(t.$method("tick").$to_proc(),t.js_interval)),!!o(t.host_timer)}),s(m,"$shutdown",function(){var n=this;return n.running=!1,o(n.host_timer)&&clearInterval(o(n.host_timer["$is_a?"](p("Numeric")))?n.host_timer:n.host_timer._id),n.$cancel_all_timers(),n.host_timer=t,!0}),s(m,"$tick",function(){var r=this,d=t,u=t,h=t,g=t,m=t,l=t;return o(r.running)?o(r.ticking)?t:(r.ticking=!0,d=[],o(f(r.timers.$size(),0))&&(u=[],h=n("Time").$now().$to_f(),i(r.timers,"each_with_index",[],function e(n,s){var r,c=e.$$s==null?this:e.$$s;return c.timers==null&&(c.timers=t),n==null&&(n=t),s==null&&(s=t),o(_(h,n["$[]"]("when")))?(d["$<<"](n["$[]"]("what")),o(n["$[]"]("interval"))?(r=["when",a(h,n["$[]"]("interval").$to_f())],i(c.timers["$[]"](s),"[]=",r),r[r.length-1]):u.$unshift(s)):t},{$$s:r}),i(u,"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return s.timers==null&&(s.timers=t),n==null&&(n=t),s.timers.$delete_at(n)},{$$s:r})),g=100,m=0,l=new Map,i(r.event_queues.$keys(),"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return s.event_queues==null&&(s.event_queues=t),n==null&&(n=t),o(s.event_queues["$[]"](n)["$[]"]("settings")["$[]"]("active"))&&o(f(s.event_queues["$[]"](n)["$[]"]("events").$size(),0))?(l["$[]="](n,new Map([["portion",j(b(s.event_queues["$[]"](n)["$[]"]("settings")["$[]"]("portion").$to_f(),100),g.$to_f()).$to_i()]])),c(l["$[]"](n)["$[]"]("portion"),0)&&l["$[]"](n)["$[]="]("portion",1),l["$[]"](n)["$[]="]("size",s.event_queues["$[]"](n)["$[]"]("events").$size()),m=a(m,l["$[]"](n)["$[]"]("size"))):t},{$$s:r}),i(l.$keys(),"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),function(){try{var e=y("break");return i(l["$[]"](n)["$[]"]("portion"),"times",[],function s(){var i=s.$$s==null?this:s.$$s,a=t;if(i.event_queues==null&&(i.event_queues=t),a=i.event_queues["$[]"](n)["$[]"]("events").$shift(),o(a["$respond_to?"]("call")))return d["$<<"](a);e.$throw(t,s.$$is_lambda)},{$$s:s})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}()},{$$s:r}),i(d,"each",[],function(s){var i=t;if(s==null&&(s=t),o(s))try{return s.$call()}catch(n){if(e.rescue(n,[p("Exception")])){i=n;try{return t}finally{e.pop_exception(n)}}else throw n}else return t}),r.ticking=!1):t}),s(m,"$inspect_timers",l("timers")),s(m,"$inspect_queue",function(t){var n=this;return t==null&&(t="root"),n.event_queues["$[]"](t)},-1),s(m,"$adjust_event_queue",function(n,s){var a=this;return n==null&&(n="root"),s==null&&(s=new Map),c(n.$to_s().$to_sym(),"root")?t:o(a.event_queues["$[]"](n.$to_sym()))?i(["active"],"each",[],function e(i){var a=e.$$s==null?this:e.$$s,r=t;return a.event_queues==null&&(a.event_queues=t),i==null&&(i=t),o(s["$[]"](i.$to_sym()))?(r=new Map,r["$[]="](i.$to_sym(),s["$[]"](i.$to_sym())),a.event_queues["$[]"](n.$to_sym())["$[]"]("settings")["$merge!"](r)):t},{$$s:a}):a.$puts("Warning: queue "+n.$inspect()+" does not exist")},-1),s(m,"$create_event_queue",function(n){var s=this,a=t,r=t;return n==null&&(n=new Map),o(n["$is_a?"](p("Hash")))||s.$raise(p("ArgumentError"),"you must provide a Hash as a parameter set"),a=n.$delete("name").$to_s().$to_sym(),o(f(a.$to_s().$size(),0))?o(s.event_queues["$[]"](a))?s.$raise(p("ArgumentError"),"Event Queue "+a.$inspect()+" already exists"):(s.event_queues["$[]="](a,new Map([["events",[]],["settings",new Map([["active",!1],["portion",0]])]])),r=b(100,s.event_queues.$keys().$size().$to_f()),i(s.event_queues.$keys(),"each",[],function e(n){var s,o=e.$$s==null?this:e.$$s;return o.event_queues==null&&(o.event_queues=t),n==null&&(n=t),(s=["portion",r],i(o.event_queues["$[]"](n)["$[]"]("settings"),"[]=",s),s[s.length-1])},{$$s:s}),s.$adjust_event_queue(a,n.$merge(new Map([["active",!0]]))),!0):s.$raise(p("ArgumentError"),":name must be provided for Event Queue")},-1),s(m,"$delete_event_queue",function(n){var s=this,o=t;return n==null&&(n=t),!c(n.$to_s().$to_sym(),"root")&&(s.event_queues.$delete(n),o=b(s.event_queues.$keys().$size().$to_f(),100),i(s.event_queues.$keys(),"each",[],function e(n){var s,a=e.$$s==null?this:e.$$s;return a.event_queues==null&&(a.event_queues=t),n==null&&(n=t),(s=["portion",o],i(a.event_queues["$[]"](n)["$[]"]("settings"),"[]=",s),s[s.length-1])},{$$s:s}),!0)},-1),s(m,"$pause_event_queue",function(n){var s=this;return n==null&&(n=t),c(n.$to_s().$to_sym(),"root")?t:s.$adjust_event_queue(n,new Map([["active",!0]]))},-1),s(m,"$unpause_event_queue",function(n){var s=this;return n==null&&(n=t),c(n.$to_s().$to_sym(),"root")?t:s.$adjust_event_queue(n,new Map([["active",!1]]))},-1),s(m,"$post_to_event_queue",function(n,s){var i=this;return n==null&&(n="root"),s==null&&(s=t),o(s["$respond_to?"]("call"))?o(i.event_queues["$[]"](n))?i.event_queues["$[]"](n)["$[]"]("events")["$<<"](s):i.event_queues["$[]"]("root")["$[]"]("events")["$<<"](s):t},-1),s(m,"$post_event",function e(n){var i=e.$$p||t,s=this;return e.$$p=null,n==null&&(n="root"),o(s.event_queues["$[]"](n.$to_sym()))||s.$create_event_queue(new Map([["name",n.$to_sym()]])),s.$post_to_event_queue(n.$to_sym(),i),!0},-1),s(m,"$add_timer",function e(s){var u=e.$$p||t,r=this,i=t,c=t,d=t,l=t;return e.$$p=null,s==null&&(s=new Map),i=s["$[]"]("when"),c=o(d=s["$[]"]("do"))?d:u,o(i["$is_a?"](n("Numeric")))?i=a(n("Time").$now().$to_f(),i.$to_f()):o(i["$is_a?"](n("Time")))?i=i.$to_f():r.$raise(p("ArgumentError"),"you must specify a :when => millisecond (float) offset, or a Time for the timer"),o(c["$respond_to?"]("call"))||r.$raise(p("ArgumentError"),"you must provide a :do => callable object (Proc) for the timer, or a block"),l=n("GxG").$uuid_generate().$to_sym(),r.timers["$<<"](new Map([["when",i],["what",c],["id",l]])),new Map([["timer",l]])},-1),s(m,"$add_periodic_timer",function e(s){var h=e.$$p||t,c=this,i=t,l=t,u=t,r=t,d=t;return e.$$p=null,s==null&&(s=new Map),i=s["$[]"]("interval"),l=o(u=s["$[]"]("do"))?u:h,r=n("Time").$now().$to_f(),o(i["$is_a?"](n("Numeric")))?r=a(r,i.$to_f()):c.$raise(p("ArgumentError"),"you must specify an :interval => Float (as you would with sleep) offset interval for the periodic timer"),o(l["$respond_to?"]("call"))||c.$raise(p("ArgumentError"),"you must provide a :do => callable object (Proc) for the timer, or a block"),d=n("GxG").$uuid_generate().$to_sym(),c.timers["$<<"](new Map([["when",r],["what",l],["interval",i.$to_f()],["id",d]])),new Map([["timer",d]])},-1),s(m,"$cancel_timer",function(n){var r=this,s=t,a=t;return n==null&&(n=new Map),s=n["$[]"]("timer"),a=!1,o(s)&&function(){try{var e=y("break");return i(r.timers,"each_index",[],function n(o){var i=n.$$s==null?this:n.$$s;if(i.timers==null&&(i.timers=t),o==null&&(o=t),c(i.timers["$[]"](o)["$[]"]("id"),s))i.timers.$delete_at(o),a=!0,e.$throw(t,n.$$is_lambda);else return t},{$$s:r})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}(),a},-1),s(m,"$cancel_all_timers",function(){for(var t=this;c(t.ticking,!0);)t.$sleep(.333);return t.timers=[],!0})}(C[0],null,C)}(k[0],k)}(r[0],r),function(e,t){var s=h(e,"GxG"),i=[s].concat(t);return o(s["$const_defined?"]("LOG"))&&s.$remove_const("LOG"),m(i[0],"LOG",n(n(n("GxG"),"Events"),"LogRing").$new())}(r[0],r),n(n("GxG"),"LOG")["$[]="]("default",n("Logger").$new(n(n("Logger"),"WARN"))),function(t,s){var a=h(t,"GxG"),r=[a].concat(s),c=e.$r(r);return o(a["$const_defined?"]("DISPATCHER"))&&a.$remove_const("DISPATCHER"),m(r[0],"DISPATCHER",n(n(n("GxG"),"Events"),"EventDispatcher").$new(.1)),c("DISPATCHER").$startup(),m(r[0],"LOG_TIMER",i(c("DISPATCHER"),"add_periodic_timer",[new Map([["interval",1]])],function(){return n(n("GxG"),"LOG").$process_messages()})),w(a,"$shutdown",function(){return c("DISPATCHER").$shutdown()})}(r[0],r),function(e,t){var s=h(e,"GxG"),o=[s].concat(t);return m(o[0],"CHANNELS",n(n(n("GxG"),"Messages"),"ChannelManager").$new())}(r[0],r),function(e,i){var a=u(e,i,"Object"),r=a.$$prototype;return r.uuid=t,s(a,"$send_message",function(t){var s=this;return o(s.uuid)||(s.uuid=n("GxG").$uuid_generate().$to_s().$to_sym(),n(n("GxG"),"CHANNELS").$create_channel(s.uuid,s)),n(n("GxG"),"CHANNELS").$send_message(s.uuid,t),!0}),s(a,"$next_message",function(){var t=this;return o(t.uuid)||(t.uuid=n("GxG").$uuid_generate().$to_s().$to_sym(),n(n("GxG"),"CHANNELS").$create_channel(t.uuid,t)),n(n("GxG"),"CHANNELS").$next_message(t.uuid)}),s(a,"$post",function(s){var i=this,a=t;return o(i.uuid)||(i.uuid=n("GxG").$uuid_generate().$to_s().$to_sym(),n(n("GxG"),"CHANNELS").$create_channel(i.uuid,i)),a=n(n("GxG"),"CHANNELS").$fetch_channel(i.uuid),o(a)&&a.$write(s),!0}),s(a,"$process_message",function(n,s){return n==null&&(n=t),s==null&&(s=new Map),t},-1)}(r[0],null)},Opal.modules["web/gxg_database"]=function(e){var O=e.module,j=e.NilClass,l=e.defs,s=e.truthy,o=e.send,a=e.eqeq,h=e.thrower,r=e.rb_gt,d=e.rb_plus,b=e.klass,i=e.def,u=e.range,g=e.rb_divide,p=e.rb_times,_=e.return_ivar,c=e.return_val,f=e.neqeq,w=e.alias,m=e.rb_minus,y=e.eqeqeq,x=e.slice,C=e.rb_lt,v=[],t=e.nil,n=e.$$$;return e.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,set_property_version,property_version,unpersist,private,-,valid_field_classes,===,delete_at,save,key,<,refresh_ordinals,push,insert,load_element_links,with_index"),function(v,E){var A=O(v,"GxG"),k=[A].concat(E);return function(v,E){var A=O(v,"Database"),S=[A].concat(E),k=e.$r(S);return l(A,"$element_tables",function(){return new Map([["unspecified",t],["element_boolean",[n("TrueClass"),n("FalseClass"),j]],["element_integer",[n("Integer")]],["element_float",[n("Float")]],["element_bigdecimal",[n("BigDecimal")]],["element_datetime",[n("Time")]],["element_text",[n("String")]],["element_binary",[n(n("GxG"),"ByteArray")]],["element_array",[n("Array")]],["element_hash",[n("Hash")]]])}),l(A,"$valid_field_classes",function(){return[n("TrueClass"),n("FalseClass"),j,n("Integer"),n("Float"),n("BigDecimal"),n("Time"),n("String"),n(n("GxG"),"ByteArray")]}),l(A,"$element_table_index",function(o){var i=t;return o==null&&(o="unspecified"),s(i=n(n("GxG"),"Database").$element_tables().$keys().$index(o.$to_sym()))?i:0},-1),l(A,"$element_table_by_index",function(o){var i=t;return o==null&&(o=0),s(i=n(n("GxG"),"Database").$element_tables().$keys()["$[]"](o))?i:"unspecified"},-1),l(A,"$element_table_for_instance",function(i){var r=t,c=t;return i==null&&(i=t),r="unspecified",c=n(n("GxG"),"Database").$element_tables(),function(){try{var e=h("break");return o(c.$keys(),"each",[],function n(o){if(o==null&&(o=t),a(o,"unspecified"))return t;if(s(i["$is_any?"](c["$[]"](o))))r=o,e.$throw(t,n.$$is_lambda);else return t})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}(),r},-1),l(A,"$persistable?",function(i){var r=t,r=!0;return s(i["$is_any?"](n(n(n("GxG"),"Database"),"DetachedHash"),n(n(n("GxG"),"Database"),"DetachedArray")))||(s(i["$is_any?"](n("Hash"),n("Array")))?function(){try{var e=h("break");return o(i,"search",[],function o(i,c,l){return i==null&&(i=t),c==null&&(c=t),l==null&&(l=t),s(r)&&a(n(n("GxG"),"Database").$element_table_for_instance(i),"unspecified")&&(r=!1,e.$throw(t,o.$$is_lambda)),t})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}():a(n(n("GxG"),"Database").$element_table_for_instance(i),"unspecified")&&(r=!1)),r}),l(A,"$iterative_detached_persist",function(c){var f=this,p=t,u=t,l=t,g=t,j=t,y=t,_=t,m=t,d=t,v=t,b=t;c==null&&(c=t),p=t;try{for(s(c["$is_any?"](n("Array"),n("Hash")))||f.$raise(k("ArgumentError"),"You MUST provide either an Array or a Hash."),s(n(k("GxG"),"Database")["$persistable?"](c))||f.$raise(k("ArgumentError"),"The object you are attempting to persist contains a non-persistable item."),s(c["$is_a?"](n("Array")))&&(u=n(n(n("GxG"),"Database"),"DetachedArray").$new()),s(c["$is_a?"](n("Hash")))&&(u=n(n(n("GxG"),"Database"),"DetachedHash").$new()),l=[new Map([["parent",t],["parent_selector",t],["object",c],["partner",u]])],g=o(k("Proc"),"new",[],function(n){var s=t;return n==null&&(n=t),s=[],o(l,"each",[],function(o){return o==null&&(o=t),a(o["$[]"]("parent").$object_id(),n.$object_id())?s["$<<"](o):t}),s},-1),j=o(k("Proc"),"new",[],function(n){var s=t;return n==null&&(n=t),s=t,o(l,"each",[],function(o){return o==null&&(o=t),a(o["$[]"]("object").$object_id(),n.$object_id())?s=o:t}),s},-1),y=o(k("Proc"),"new",[],function(i){var r=t;return i==null&&(i=t),r=t,function(){try{var e=h("break");return o(l,"each",[],function o(c){if(c==null&&(c=t),s(c["$is_a?"](n("Hash"))))if(a(c["$[]"]("object").$object_id(),i.$object_id()))r=c["$[]"]("partner"),e.$throw(t,o.$$is_lambda);else return t;else return t})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}(),r}),_=t,o(c,"search",[],function(o,i,a){return o==null&&(o=t),i==null&&(i=t),a==null&&(a=t),s(o["$is_a?"](n("Array")))?l["$<<"](new Map([["parent",a],["parent_selector",i],["object",o],["partner",n(n(n("GxG"),"Database"),"DetachedArray").$new()]])):s(o["$is_a?"](n("Hash")))?l["$<<"](new Map([["parent",a],["parent_selector",i],["object",o],["partner",n(n(n("GxG"),"Database"),"DetachedHash").$new()]])):l["$<<"](new Map([["parent",a],["parent_selector",i],["object",o],["partner",o]]))}),m=[l["$[]"](0)];s(r(m.$size(),0));)d=m.$shift(),s(d["$is_a?"](n("Hash")))&&s(d["$[]"]("object")["$is_any?"](n("Array"),n("Hash")))&&(v=g.$call(d["$[]"]("object")),o(v,"each",[],function(o){return o==null&&(o=t),d["$[]"]("partner")["$[]="](o["$[]"]("parent_selector"),o["$[]"]("partner")),s(o["$[]"]("partner")["$is_any?"](n(n(n("GxG"),"Database"),"DetachedArray"),n(n(n("GxG"),"Database"),"DetachedHash")))?m["$<<"](o):t}));p=u}catch(t){if(e.rescue(t,[k("Exception")])){b=t;try{f.$log_error(new Map([["error",b],["parameters",new Map([["object",c]])]]))}finally{e.pop_exception(t)}}else throw t}return p},-1),l(A,"$detached_format_find",function(i){var c=t,r=t;return i==null&&(i=new Map),c=t,r=new Map,o(["uuid","ufs","title","version"],"each",[],function(n){var a;return n==null&&(n=t),s(i["$[]"](n))?(a=[n,i["$[]"](n)],o(r,"[]=",a),a[a.length-1]):t}),function(){try{var e=h("break");return o(n(k("GxG"),"DB")["$[]"]("formats"),"each_pair",[],function n(s,i){var l=t;if(s==null&&(s=t),i==null&&(i=t),l=0,o(r.$keys(),"each",[],function(n){return n==null&&(n=t),a(i["$[]"](n),r["$[]"](n))?l=d(l,1):t}),a(r.$keys().$size(),l))c=i,e.$throw(t,n.$$is_lambda);else return t})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}(),c},-1),l(A,"$detached_format_load",function e(i){var c=e.$$p||t,d=t,u=t,a=t,l=t;return e.$$p=null,i==null&&(i=new Map),d=!1,u=[],a=[],s(i["$is_a?"](n("Hash")))?(l=n(n("GxG"),"Database").$detached_format_find(i),s(l)?(a["$<<"](l),s(c["$respond_to?"]("call"))&&c.$call(a),d=!0):u["$<<"](i)):s(i["$is_a?"](n("Array")))&&o(i,"each",[],function(o){return o==null&&(o=t),l=n(n("GxG"),"Database").$detached_format_find(o),s(l)?a["$<<"](l):u["$<<"](o)}),s(r(u.$size(),0))?o(n(k("GxG"),"CONNECTION"),"format_pull",[u],function(i){return i==null&&(i=t),s(i["$is_a?"](n("Hash")))&&s(i["$[]"]("result")["$is_a?"](n("Array")))?(o(i["$[]"]("result"),"each",[],function(s){return s==null&&(s=t),n(k("GxG"),"DB")["$[]"]("formats")["$[]="](s["$[]"]("uuid").$to_sym(),s),a["$<<"](s)}),s(c["$respond_to?"]("call"))&&c.$call(a),d=!0):t}):s(r(a.$size(),0))&&(s(c["$respond_to?"]("call"))&&c.$call(a),d=!0),d},-1),l(A,"$process_detached_import",function(i){var c=this,a=t;return i==null&&(i=t),a=[],s(i["$is_a?"](n("Hash")))&&(s(r(i["$[]"]("formats").$size(),0))&&o(i["$[]"]("formats").$keys(),"each",[],function e(a){var c,l=e.$$s==null?this:e.$$s,r=t;return a==null&&(a=t),s(n(k("GxG"),"DB")["$[]"]("formats")["$[]"](a))?t:(r=i["$[]"]("formats")["$[]"](a),s(r["$[]"]("version")["$is_a?"](n("String")))&&r["$[]="]("version",l.$BigDecimal(r["$[]"]("version").$to_s())),r["$[]="]("content",n("Hash").$gxg_import(r["$[]"]("content"))),(c=[a,r],o(n(k("GxG"),"DB")["$[]"]("formats"),"[]=",c),c[c.length-1]))},{$$s:c}),s(r(i["$[]"]("records").$size(),1))?o(i["$[]"]("records"),"each",[],function(s){return s==null&&(s=t),a["$<<"](n(n(k("GxG"),"Database"),"DetachedHash").$import(s))}):a["$<<"](n(n(k("GxG"),"Database"),"DetachedHash").$import(i["$[]"]("records")["$[]"](0)))),a},-1),l(A,"$process_import",function(i){var c=this,a=t;return i==null&&(i=t),a=[],s(i["$is_a?"](n("Hash")))&&(s(r(i["$[]"]("formats").$size(),0))&&o(i["$[]"]("formats").$keys(),"each",[],function e(a){var c,l=e.$$s==null?this:e.$$s,r=t;return a==null&&(a=t),s(n(k("GxG"),"DB")["$[]"]("formats")["$[]"](a))?t:(r=i["$[]"]("formats")["$[]"](a),s(r["$[]"]("version")["$is_a?"](n("String")))&&r["$[]="]("version",l.$BigDecimal(r["$[]"]("version").$to_s())),r["$[]="]("content",n("Hash").$gxg_import(r["$[]"]("content"))),(c=[a,r],o(n(k("GxG"),"DB")["$[]"]("formats"),"[]=",c),c[c.length-1]))},{$$s:c}),s(r(i["$[]"]("records").$size(),1))?o(i["$[]"]("records"),"each",[],function(s){return s==null&&(s=t),a["$<<"](n(n(k("GxG"),"Database"),"PersistedHash").$import(s))}):a["$<<"](n(n(k("GxG"),"Database"),"PersistedHash").$import(i["$[]"]("records")["$[]"](0)))),a},-1),function(m,v,y){var O=b(m,v,"DetachedHash"),E=[O].concat(y),x=e.$r(E),C=O.$$prototype;return C.uuid=C.title=C.version=C.property_links=C.format=C.parent=t,O.$public(),i(O,"$uuid",function(){var t=this;return t.uuid.$clone()}),i(O,"$uuid=",function(n){var o=this;return n==null&&(n=t),s(x("GxG")["$valid_uuid?"](n))?o.uuid=n.$to_s().$to_sym():t},-1),i(O,"$title",function(){var t=this;return t.title.$clone()}),i(O,"$title=",function(n){var o=this;return n==null&&(n=t),s(n)?(o.title=n.$to_s()["$[]"](u(0,255,!1)),o.$increment_version()):t},-1),i(O,"$version",function(){var t=this;return t.version.$clone()}),i(O,"$version=",function(o){var i=this;return o==null&&(o=t),s(o["$is_a?"](n("Numeric")))?i.version=o.$to_s("F").$to_d():t},-1),i(O,"$element_version",function(o){var a=this,i=t;return o==null&&(o=t),i=0,s(o["$is_a?"](n("Symbol")))&&(s(r(o.$to_s().$size(),256))&&(a.$log_warn(new Map([["warning","Attempted oversized key usage (limited to 256 characters), truncated "+o.$inspect()+" to "+o.$to_s()["$[]"](u(0,255,!1)).$to_sym().$inspect()]])),o=o.$to_s()["$[]"](u(0,255,!1)).$to_sym()),s(a.property_links["$[]"](o.$to_s().$to_sym()))?i=a.property_links["$[]"](o.$to_s().$to_sym())["$[]"]("record")["$[]"]("version"):i=0),i},-1),i(O,"$set_element_version",function(o,i){var a=this,r=t;return i==null&&(i=t),r=!1,s(a.property_links["$[]"](o))?s(i["$is_a?"](n("Numeric")))?(a.property_links["$[]"](o)["$[]"]("record")["$[]="]("version",g(p(i.$to_f(),1e4).$to_i().$to_f(),1e4)),r=!0):a.$log_warning("Attempted to set version to an invalid version value "+i.$inspect()+" for "+o.$inspect()+" on Object "+a.uuid.$inspect()):a.$log_warning("Attempted to set version with an invalid key "+o.$inspect()+" on Object "+a.uuid.$inspect()),r},-2),i(O,"$format",function(){var t=this;return t.format.$clone()}),i(O,"$format=",function(n){var o=this;return n==null&&(n=t),s(x("GxG")["$valid_uuid?"](n))?o.format=n.$to_s().$to_sym():t},-1),i(O,"$parent",_("parent")),i(O,"$parent=",function(o){var i=this;return o==null&&(o=t),s(o["$is_any?"]([n(n(n("GxG"),"Database"),"DetachedHash"),n(n(n("GxG"),"Database"),"DetachedArray")]))?s(i.parent)?t:i.parent=o:t},-1),i(O,"$write_reserved?",c(!0)),i(O,"$release_reservation",c(!0)),i(O,"$get_reservation",c(!0)),i(O,"$wait_for_reservation",function(n){return n==null&&(n=t),!0},-1),l(O,"$import",function(i){var l=this,d=t,c=t,a=t;for(i==null&&(i=t),d=t,s(i["$is_any?"](n("Hash"),n(n(n("GxG"),"Database"),"DetachedHash")))||l.$raise(x("Exception"),"Malformed import record passed."),c=[new Map([["target",n(n(n("GxG"),"Database"),"DetachedHash").$new()],["record",i]])],d=c["$[]"](0)["$[]"]("target");s(r(c.$size(),0));)switch(a=c.$shift(),a["$[]"]("record")["$[]"]("type").$to_s().$to_sym().valueOf()){case"element_hash":a["$[]"]("target")["$uuid="](a["$[]"]("record")["$[]"]("uuid").$to_s().$to_sym()),a["$[]"]("target")["$title="](a["$[]"]("record")["$[]"]("title").$to_s()),o(a["$[]"]("record")["$[]"]("content").$keys(),"each",[],function e(s){var i,l=e.$$s==null?this:e.$$s,r=t;switch(s==null&&(s=t),a["$[]"]("record")["$[]"]("content")["$[]"](s)["$[]"]("type").$to_s().$to_sym().valueOf()){case"element_hash":return r=n(n(x("GxG"),"Database"),"DetachedHash").$new(),a["$[]"]("target")["$[]="](s,r),c["$<<"](new Map([["target",r],["record",a["$[]"]("record")["$[]"]("content")["$[]"](s)]])),(i=[a["$[]"]("target")],o(a["$[]"]("target")["$[]"](s),"parent=",i),i[i.length-1]);case"element_array":return r=n(n(x("GxG"),"Database"),"DetachedArray").$new(),a["$[]"]("target")["$[]="](s,r),c["$<<"](new Map([["target",r],["record",a["$[]"]("record")["$[]"]("content")["$[]"](s)]])),(i=[a["$[]"]("target")],o(a["$[]"]("target")["$[]"](s),"parent=",i),i[i.length-1]);case"element_boolean":case"element_integer":case"element_float":case"element_text":return i=[s,a["$[]"]("record")["$[]"]("content")["$[]"](s)["$[]"]("content")],o(a["$[]"]("target"),"[]=",i),i[i.length-1];case"element_bigdecimal":return i=[s,l.$BigDecimal(a["$[]"]("record")["$[]"]("content")["$[]"](s)["$[]"]("content").$to_s())],o(a["$[]"]("target"),"[]=",i),i[i.length-1];case"element_datetime":return i=[s,n("Chronic").$parse(a["$[]"]("record")["$[]"]("content")["$[]"](s)["$[]"]("content").$to_s())],o(a["$[]"]("target"),"[]=",i),i[i.length-1];case"element_binary":return i=[s,n(n("GxG"),"ByteArray").$new(a["$[]"]("record")["$[]"]("content")["$[]"](s)["$[]"]("content").$to_s().$decode64())],o(a["$[]"]("target"),"[]=",i),i[i.length-1];default:return t}},{$$s:l}),a["$[]"]("target")["$version="](l.$BigDecimal(a["$[]"]("record")["$[]"]("version").$to_s())),a["$[]"]("target")["$format="](a["$[]"]("record")["$[]"]("format").$to_s().$to_sym());break;case"element_array":a["$[]"]("target")["$uuid="](a["$[]"]("record")["$[]"]("uuid").$to_s().$to_sym()),a["$[]"]("target")["$title="](a["$[]"]("record")["$[]"]("title").$to_s()),o(a["$[]"]("record")["$[]"]("content"),"each_index",[],function e(s){var i,l=e.$$s==null?this:e.$$s,r=t;switch(s==null&&(s=t),a["$[]"]("record")["$[]"]("content")["$[]"](s)["$[]"]("type").$to_s().$to_sym().valueOf()){case"element_hash":return r=n(n(x("GxG"),"Database"),"DetachedHash").$new(),a["$[]"]("target")["$[]="](s,r),c["$<<"](new Map([["target",r],["record",a["$[]"]("record")["$[]"]("content")["$[]"](s)]])),(i=[a["$[]"]("target")],o(a["$[]"]("target")["$[]"](s),"parent=",i),i[i.length-1]);case"element_array":return r=n(n(x("GxG"),"Database"),"DetachedArray").$new(),a["$[]"]("target")["$[]="](s,r),c["$<<"](new Map([["target",r],["record",a["$[]"]("record")["$[]"]("content")["$[]"](s)]])),(i=[a["$[]"]("target")],o(a["$[]"]("target")["$[]"](s),"parent=",i),i[i.length-1]);case"element_boolean":case"element_integer":case"element_float":case"element_text":return i=[s,a["$[]"]("record")["$[]"]("content")["$[]"](s)["$[]"]("content")],o(a["$[]"]("target"),"[]=",i),i[i.length-1];case"element_bigdecimal":return i=[s,l.$BigDecimal(a["$[]"]("record")["$[]"]("content")["$[]"](s)["$[]"]("content").$to_s())],o(a["$[]"]("target"),"[]=",i),i[i.length-1];case"element_datetime":return i=[s,n("Chronic").$parse(a["$[]"]("record")["$[]"]("content")["$[]"](s)["$[]"]("content").$to_s())],o(a["$[]"]("target"),"[]=",i),i[i.length-1];case"element_binary":return i=[s,n(n("GxG"),"ByteArray").$new(a["$[]"]("record")["$[]"]("content")["$[]"](s)["$[]"]("content").$to_s().$decode64())],o(a["$[]"]("target"),"[]=",i),i[i.length-1];default:return t}},{$$s:l}),a["$[]"]("target")["$version="](l.$BigDecimal(a["$[]"]("record")["$[]"]("version").$to_s())),a["$[]"]("target")["$constraint="](a["$[]"]("record")["$[]"]("constraint").$to_s().$to_sym());break;default:t}return d},-1),l(O,"$create_from_format",function(n){return n==null&&(n=t),t},-1),i(O,"$ufs",function(){var i=this,o=t;return s(i.format)?(o=n(x("GxG"),"DB")["$[]"]("formats")["$[]"](i.format.$to_s().$to_sym()),s(o)?o["$[]"]("ufs").$to_s().$to_sym():""):""}),i(O,"$increment_version",function(){var t=this;return t.version=d(t.version,1e-4)}),i(O,"$initialize",function(){var s=this;return s.uuid=n("GxG").$uuid_generate().$to_s().$to_sym(),s.title="Untitled "+s.uuid.$to_s(),s.version=s.$BigDecimal("0.0"),s.format=t,s.parent=t,s.property_links=new Map,s}),i(O,"$inspect",function(){var s=this,i=t,n=t,i=s.property_links.$keys().$last(),n="{";return o(s.property_links.$keys(),"each",[],function e(s){var o=e.$$s==null?this:e.$$s;return o.property_links==null&&(o.property_links=t),s==null&&(s=t),n=d(n,d(":"+s.$to_s()+" => ",o.property_links["$[]"](s)["$[]"]("content").$inspect())),a(i,s)?t:n=d(n,", ")},{$$s:s}),d(n,"}")}),i(O,"$alive?",c(!0)),i(O,"$save",function(){var i=this,o=t,a=t,o=!1;if(s(i["$alive?"]()))try{o=!0}catch(t){if(e.rescue(t,[x("Exception")])){a=t;try{i.$log_error(new Map([["error",a]]))}finally{e.pop_exception(t)}}else throw t}return o}),i(O,"$destroy",function(){var i=this,o=t,a=t,o=!1;if(s(i["$alive?"]()))try{o=!0}catch(t){if(e.rescue(t,[x("Exception")])){a=t;try{i.$log_error(new Map([["error",a]]))}finally{e.pop_exception(t)}}else throw t}return o}),i(O,"$size",function(){var t=this;return t.property_links.$size()}),i(O,"$keys",function(){var t=this;return t.property_links.$keys()}),i(O,"$[]=",function(o,i){var l=this,m=t,h=t,f=t,c=t;if(o==null&&(o=t),i==null&&(i=t),s(l["$alive?"]())||l.$raise(x("Exception"),"Attempted to alter a defunct structure"),m=t,s(o["$is_a?"](n("Symbol"))))if(s(r(o.$to_s().$size(),256))&&(l.$log_warn(new Map([["warning","Attempted oversized key usage (limited to 256 characters), truncated "+o.$inspect()+" to "+o.$to_s()["$[]"](u(0,255,!1)).$to_sym().$inspect()]])),o=o.$to_s()["$[]"](u(0,255,!1)).$to_sym()),h=o.$to_s().$to_sym(),s(i["$is_any?"](j,n("TrueClass"),n("FalseClass"),n("Integer"),n("Float"),n("BigDecimal"),n("String"),n("Time"),n(n("GxG"),"ByteArray"),n(n(n("GxG"),"Database"),"DetachedHash"),n(n(n("GxG"),"Database"),"DetachedArray"),n("Hash"),n("Array"))))if(s(l["$write_reserved?"]())||l.$get_reservation(),s(l["$write_reserved?"]())){if(s(l.property_links["$[]"](o.$to_s().$to_sym()))?f="set_value":s(l.format)?l.$raise(x("Exception"),"Formatted - the structure cannot be altered"):f="add_value",c=new Map([["linkid",t],["content",t],["loaded",!0],["state",0],["record",new Map([["parent_uuid",l.uuid.$to_s()],["property",o.$to_s()],["ordinal",0],["version",l.$BigDecimal("0.0")],["element","element_boolean"],["element_boolean",-1],["element_integer",0],["element_float",0],["element_bigdecimal",l.$BigDecimal("0.0")],["element_datetime",n("Time").$now()],["time_offset",0],["time_prior",0],["time_after",0],["length",0],["element_text",""],["element_binary",t],["element_array",t],["element_hash",t]])]]),s(i["$is_any?"](n(n(n("GxG"),"Database"),"DetachedHash"),n(n(n("GxG"),"Database"),"DetachedArray"))))c["$[]="]("content",i),c["$[]="]("loaded",!0),c["$[]="]("state",c["$[]"]("content").$hash()),c["$[]"]("record")["$[]="]("version",c["$[]"]("content").$version()),s(i["$is_a?"](n(n(n("GxG"),"Database"),"DetachedHash")))?(c["$[]"]("record")["$[]="]("element","element_hash"),c["$[]"]("record")["$[]="]("element_hash",i)):(c["$[]"]("record")["$[]="]("element","element_array"),c["$[]"]("record")["$[]="]("element_array",i));else if(s(i["$is_any?"](n("Hash"),n("Array"))))c["$[]="]("content",n(n("GxG"),"Database").$iterative_detached_persist(i)),c["$[]="]("loaded",!0),c["$[]="]("state",c["$[]"]("content").$hash()),c["$[]"]("record")["$[]="]("version",c["$[]"]("content").$version()),s(i["$is_a?"](n("Hash")))?(c["$[]"]("record")["$[]="]("element","element_hash"),c["$[]"]("record")["$[]="]("element_hash",c["$[]"]("content"))):(c["$[]"]("record")["$[]="]("element","element_array"),c["$[]"]("record")["$[]="]("element_array",c["$[]"]("content")));else switch(c["$[]"]("record")["$[]="]("element",n(n("GxG"),"Database").$element_table_for_instance(i).$to_s()),c["$[]"]("record")["$[]"]("element").valueOf()){case"element_boolean":a(i.$class(),j)&&(c["$[]"]("record")["$[]="]("element_boolean",-1),c["$[]="]("content",t)),a(i.$class(),n("FalseClass"))&&(c["$[]"]("record")["$[]="]("element_boolean",0),c["$[]="]("content",!1)),a(i.$class(),n("TrueClass"))&&(c["$[]"]("record")["$[]="]("element_boolean",1),c["$[]="]("content",!0));break;case"element_integer":c["$[]"]("record")["$[]="]("element_integer",i),c["$[]="]("content",i);break;case"element_float":c["$[]"]("record")["$[]="]("element_float",i),c["$[]="]("content",i);break;case"element_bigdecimal":c["$[]"]("record")["$[]="]("element_bigdecimal",l.$BigDecimal(i.$to_s())),c["$[]="]("content",c["$[]"]("record")["$[]"]("element_bigdecimal"));break;case"element_datetime":c["$[]"]("record")["$[]="]("element_datetime",i),c["$[]="]("content",i);break;case"element_text":c["$[]"]("record")["$[]="]("element_text",i),c["$[]"]("record")["$[]="]("length",i.$size()),c["$[]="]("content",i);break;case"element_binary":a(f,"set_value")&&(c["$[]"]("record")["$[]="]("version",l.property_links["$[]"](h)["$[]"]("record")["$[]"]("version")),c["$[]"]("record")["$[]="]("element_binary",l.property_links["$[]"](h)["$[]"]("record")["$[]"]("element_binary"))),c["$[]"]("record")["$[]="]("length",i.$size()),c["$[]="]("content",i);break;default:l.$raise(x("Exception"),"Unable to map an element type for value: "+i.$inspect())}switch(f.valueOf()){case"set_value":s(c["$[]"]("content")["$is_a?"](l.property_links["$[]"](h)["$[]"]("content").$class()))||s([!0,!1,t]["$include?"](c["$[]"]("content")))&&s([!0,!1,t]["$include?"](l.property_links["$[]"](h)["$[]"]("content")))?(c["$[]="]("linkid",l.property_links["$[]"](h)["$[]"]("linkid")),s(c["$[]"]("content")["$is_any?"](n(n(n("GxG"),"Database"),"DetachedHash"),n(n(n("GxG"),"Database"),"DetachedArray")))?c["$[]"]("record")["$[]="]("version",c["$[]"]("content").$version()):c["$[]"]("record")["$[]="]("version",d(l.property_links["$[]"](h)["$[]"]("record")["$[]"]("version"),1e-4)),c["$[]"]("record")["$[]="]("ordinal",l.property_links["$[]"](h)["$[]"]("record")["$[]"]("ordinal")),c["$[]="]("loaded",!0),c["$[]="]("state",l.property_links["$[]"](h)["$[]"]("state")),l.property_links["$[]="](h,c)):(s(c["$[]"]("content")["$is_any?"](n(n(n("GxG"),"Database"),"DetachedHash"),n(n(n("GxG"),"Database"),"DetachedArray")))?c["$[]"]("record")["$[]="]("version",c["$[]"]("content").$version()):c["$[]"]("record")["$[]="]("version",g(p(d(l.property_links["$[]"](h)["$[]"]("record")["$[]"]("version").$to_f(),1e-4),1e4).$to_i().$to_f(),1e4)),c["$[]"]("record")["$[]="]("ordinal",l.property_links["$[]"](h)["$[]"]("record")["$[]"]("ordinal")),c["$[]="]("loaded",!0),l.property_links["$[]="](h,c)),m=l.property_links["$[]"](h)["$[]"]("content");break;case"add_value":s(c["$[]"]("content")["$is_any?"](n(n(n("GxG"),"Database"),"DetachedHash"),n(n(n("GxG"),"Database"),"DetachedArray")))?c["$[]"]("record")["$[]="]("version",c["$[]"]("content").$version()):c["$[]"]("record")["$[]="]("version",l.$BigDecimal("0.0")),c["$[]"]("record")["$[]="]("ordinal",l.property_links.$keys().$size()),c["$[]="]("loaded",!0),l.property_links["$[]="](h,c);break;default:t}s(l.property_links["$[]"](h)["$[]"]("content")["$is_any?"](n(n(n("GxG"),"Database"),"DetachedHash"),n(n(n("GxG"),"Database"),"DetachedArray")))&&l.property_links["$[]"](h)["$[]"]("content")["$parent="](l),l.$increment_version(),m=l.property_links["$[]"](h)["$[]"]("content")}else l.$raise(x("Exception"),"You do not have sufficient privileges to make this change. (write-reservation)");else l.$raise(x("Exception"),"The value is not persistable.");else l.$raise(x("Exception"),"You must provide a property key in the form of a Symbol.");return m},-1),i(O,"$[]",function(o){var i=this,a=t,c=t;return o==null&&(o=t),a=t,s(i["$alive?"]())?s(o["$is_a?"](n("Symbol")))?(s(r(o.$to_s().$size(),256))&&(i.$log_warn(new Map([["warning","Attempted oversized key usage (limited to 256 characters), truncated "+o.$inspect()+" to "+o.$to_s()["$[]"](u(0,255,!1)).$to_sym().$inspect()]])),o=o.$to_s()["$[]"](u(0,255,!1)).$to_sym()),c=o.$to_s().$to_sym(),s(i.property_links["$[]"](c))&&(a=i.property_links["$[]"](c)["$[]"]("content"))):i.$raise(x("ArgumentError"),"You must specify with a Symbol, not a "+o.$class().$inspect()):i.$raise(x("Exception"),"Attempted to access a defunct structure"),a},-1),i(O,"$include?",function(t){var n=this;return n.property_links.$keys()["$include?"](t)}),i(O,"$delete",function(o){var i=this,a=t;return o==null&&(o=t),a=t,s(o["$is_a?"](n("Symbol")))?(s(r(o.$to_s().$size(),256))&&(i.$log_warn(new Map([["warning","Attempted oversized key usage (limited to 256 characters), truncated "+o.$inspect()+" to "+o.$to_s()["$[]"](u(0,255,!1)).$to_sym().$inspect()]])),o=o.$to_s()["$[]"](u(0,255,!1)).$to_sym()),s(i.format)?i.$raise(x("Exception"),"Formatted - the structure cannot be altered"):s(i.property_links["$[]"](o))&&(a=i.property_links["$[]"](o)["$[]"]("content"),i.property_links.$delete(o))):i.$raise(x("ArgumentError"),"You must specify with a Symbol, not a "+o.$class().$inspect()),a},-1),i(O,"$unpersist",function(){var l=this,d=t,i=t,h=t,c=t,u=t,d=new Map;if(s(l["$alive?"]()))for(i=[new Map([["parent",t],["parent_selector",t],["object",l],["record",d]])],h=o(x("Proc"),"new",[],function(n){var s=t;return n==null&&(n=t),s=[],o(i,"each",[],function(o){return o==null&&(o=t),a(o["$[]"]("parent").$object_id(),n.$object_id())?s["$<<"](o):t}),s},-1),o(l,"search",[],function(o,a,r){return o==null&&(o=t),a==null&&(a=t),r==null&&(r=t),s(o["$is_a?"](n(n(n("GxG"),"Database"),"DetachedHash")))?i["$<<"](new Map([["parent",r],["parent_selector",a.$clone()],["object",o],["record",new Map]])):s(o["$is_a?"](n(n(n("GxG"),"Database"),"DetachedArray")))?i["$<<"](new Map([["parent",r],["parent_selector",a.$clone()],["object",o],["record",[]]])):i["$<<"](new Map([["parent",r],["parent_selector",a.$clone()],["object",o],["record",o]]))}),c=[i["$[]"](0)];s(r(c.$size(),0));)u=c.$shift(),o(h.$call(u["$[]"]("object")),"each",[],function(o){return o==null&&(o=t),u["$[]"]("record")["$[]="](o["$[]"]("parent_selector"),o["$[]"]("record")),s(o["$[]"]("object")["$is_any?"](n(n(n("GxG"),"Database"),"DetachedHash"),n(n(n("GxG"),"Database"),"DetachedArray")))?c["$<<"](o):t});return d}),i(O,"$export",function(i){var c=this,m=t,d=t,u=t,l=t,p=t,h=t,f=t;for(i==null&&(i=new Map([["exclude_file_segments",!1]])),m=s(d=i["$[]"]("exclude_file_segments"))&&d,a(i["$[]"]("clone"),!0)?u=new Map([["type","element_hash"],["uuid",x("GxG").$uuid_generate().$to_s().$to_sym()],["title",c.title.$clone()],["version",c.version.$to_s("F")],["content",new Map]]):u=new Map([["type","element_hash"],["uuid",c.uuid.$clone()],["title",c.title.$clone()],["version",c.version.$to_s("F")],["format",c.format.$clone()],["content",new Map]]),l=[new Map([["parent",t],["parent_selector",t],["object",c],["record",u]])],p=o(x("Proc"),"new",[],function(n){var s=t;return n==null&&(n=t),s=[],o(l,"each",[],function(o){return o==null&&(o=t),a(o["$[]"]("parent").$object_id(),n.$object_id())?s["$<<"](o):t}),s},-1),o(c,"search",[],function e(o,r,c){var p=e.$$s==null?this:e.$$s,u=t,f=t,h=t;if(o==null&&(o=t),r==null&&(r=t),c==null&&(c=t),s(o["$is_a?"](n(n(n("GxG"),"Database"),"DetachedHash")))&&(a(i["$[]"]("clone"),!0)?u=x("GxG").$uuid_generate().$to_s().$to_sym():u=o.$uuid().$clone(),a(m,!0)&&(a(r,"file_segments")||a(r,"segments")||a(r,"portions"))?l["$<<"](new Map([["parent",c],["parent_selector",r.$clone()],["object",new Map],["record",new Map([["type","element_hash"],["uuid",u],["title",o.$title().$clone()],["version",o.$version().$to_s("F")],["format",o.$format().$clone()],["content",new Map]])]])):l["$<<"](new Map([["parent",c],["parent_selector",r.$clone()],["object",o],["record",new Map([["type","element_hash"],["uuid",u],["title",o.$title().$clone()],["version",o.$version().$to_s("F")],["format",o.$format().$clone()],["content",new Map]])]]))),s(o["$is_a?"](n(n(n("GxG"),"Database"),"DetachedArray")))&&(a(i["$[]"]("clone"),!0)?u=x("GxG").$uuid_generate().$to_s().$to_sym():u=o.$uuid().$clone(),a(m,!0)&&(a(r,"file_segments")||a(r,"segments")||a(r,"portions"))?l["$<<"](new Map([["parent",c],["parent_selector",r.$clone()],["object",[]],["record",new Map([["type","element_array"],["uuid",u],["title",o.$title().$clone()],["version",o.$version().$to_s("F")],["constraint",o.$constraint().$clone()],["content",[]]])]])):l["$<<"](new Map([["parent",c],["parent_selector",r.$clone()],["object",o],["record",new Map([["type","element_array"],["uuid",u],["title",o.$title().$clone()],["version",o.$version().$to_s("F")],["constraint",o.$constraint().$clone()],["content",[]]])]]))),s(o["$is_any?"](j,n("TrueClass"),n("FalseClass"),n("Integer"),n("Float"),n("BigDecimal"),n("String"),n("Time"),n(n("GxG"),"ByteArray")))){switch(f=n(x("GxG"),"Database").$element_table_for_instance(o),f.valueOf()){case"element_bigdecimal":h=o.$to_s();break;case"element_datetime":h=o.$iso8601().$to_s();break;case"element_binary":h=o.$to_s().$encode64();break;case"element_text":h=o.$to_s();break;default:h=o}return l["$<<"](new Map([["parent",c],["parent_selector",r.$clone()],["object",o],["record",new Map([["type",f],["version",(s(d=c.$version(r))?d:p.$BigDecimal("0.0")).$to_s("F")],["content",h]])]]))}return t},{$$s:c}),h=[l["$[]"](0)];s(r(h.$size(),0));)f=h.$shift(),o(p.$call(f["$[]"]("object")),"each",[],function(o){return o==null&&(o=t),f["$[]"]("record")["$[]"]("content")["$[]="](o["$[]"]("parent_selector"),o["$[]"]("record")),s(o["$[]"]("object")["$is_any?"](n(n(n("GxG"),"Database"),"DetachedHash"),n(n(n("GxG"),"Database"),"DetachedArray")))?h["$<<"](o):t});return u},-1),i(O,"$each_pair",function e(){var i=e.$$p||t,a=this,n=t;return e.$$p=null,n=new Map,o(a.property_links.$keys(),"each",[],function e(s){var i,a=e.$$s==null?this:e.$$s;return s==null&&(s=t),(i=[s,a["$[]"](s)],o(n,"[]=",i),i[i.length-1])},{$$s:a}),s(i["$respond_to?"]("call"))?o(n.$to_enum("each_pair"),"each",[],function(n,s){return n==null&&(n=t),s==null&&(s=t),i.$call(n,s)}):n.$to_enum("each_pair")}),i(O,"$iterative",function i(c){var v=i.$$p||t,d=this,h=t,b=t,m=t,p=t,u=t,l=t,g=t,j=t,y=t;i.$$p=null,c==null&&(c=new Map([["include_inactive",!0]])),h=[],b=o(x("Proc"),"new",[],function(i,a){var d=t,l=t;if(i==null&&(i=t),a==null&&(a=[]),d=[],s(i))for(d["$<<"](new Map([["parent",t],["parent_selector",t],["object",i]]));s(r(d.$size(),0));)l=d.$shift(),s(l["$[]"]("object")["$is_a?"](n(n(n("GxG"),"Database"),"DetachedHash")))&&(s(l["$[]"]("object")["$alive?"]())?o(l["$[]"]("object"),"each_pair",[],function(n,s){return n==null&&(n=t),s==null&&(s=t),d["$<<"](new Map([["parent",l["$[]"]("object")],["parent_selector",n],["object",s]]))}):s(c["$[]"]("include_inactive"))&&a["$<<"](l)),s(l["$[]"]("object")["$is_a?"](n(n(n("GxG"),"Database"),"DetachedArray")))&&(s(l["$[]"]("object")["$alive?"]())?o(l["$[]"]("object"),"each_with_index",[],function(n,s){return n==null&&(n=t),s==null&&(s=t),d["$<<"](new Map([["parent",l["$[]"]("object")],["parent_selector",s],["object",n]]))}):s(c["$[]"]("include_inactive"))&&a["$<<"](l));return a},-1),m=o(x("Proc"),"new",[],function(n,s){var i=t;return n==null&&(n=[]),s==null&&(s=t),i=[],o(n,"each",[],function(n){return n==null&&(n=t),a(n["$[]"]("parent").$object_id(),s.$object_id())?i["$<<"](n):t}),i},-1);try{if(p=b.$call(d,[]),u=m.$call(p,d),s(v["$respond_to?"]("call")))for(;s(r(u.$size(),0));)l=u.$shift(),a(l["$[]"]("object").$object_id(),d.$object_id())||(g=v.$call(l["$[]"]("object"),l["$[]"]("parent_selector"),l["$[]"]("parent")),s(g)&&h["$<<"](g)),f(l["$[]"]("object").$object_id(),t.$object_id())&&(j=m.$call(p,l["$[]"]("object")),o(j,"each",[],function(n){return n==null&&(n=t),u["$<<"](n)}))}catch(t){if(e.rescue(t,[x("Exception")])){y=t;try{d.$log_error(new Map([["error",y],["parameters",new Map]]))}finally{e.pop_exception(t)}}else throw t}return h},-1),w(O,"process","iterative"),i(O,"$process!",function e(n){var i=e.$$p||t,s=this;return e.$$p=null,n==null&&(n=new Map([["include_inactive",!0]])),o(s,"iterative",[n],i.$to_proc()),s},-1),i(O,"$search",function e(n){var a=e.$$p||t,r=this,i=t;return e.$$p=null,n==null&&(n=new Map([["include_inactive",!0]])),i=[],s(a["$respond_to?"]("call"))&&(i=o(r,"iterative",[n],a.$to_proc())),i},-1),i(O,"$paths_to",function(i,c){var j=this,m=t,l=t,d=t,g=t,b=t,v=t,p=t;return i==null&&(i=t),c==null&&(c=""),m=[],a(c["$[]"](0),"/")||(c="/"["$<<"](c)),s(r(c.$size(),1))?l=c.$split("/")["$[]"](u(1,-1,!1)).$reverse():l=[],d=j.$get_at_path(c),g=[new Map([["selector",t],["container",d]])],b=o(x("Proc"),"new",[],function(n){var s=t;return n==null&&(n=t),s=t,function(){try{var e=h("break");return o(g,"each_with_index",[],function o(i,r){if(i==null&&(i=t),r==null&&(r=t),a(i["$[]"]("container"),n))s=i,e.$throw(t,o.$$is_lambda);else return t})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}(),s}),v=d,p=!1,s(d["$is_any?"](n("Hash"),n("Array"),n("Struct"),n(n(n("GxG"),"Database"),"DetachedHash"),n(n(n("GxG"),"Database"),"DetachedArray")))?o(d,"process!",[],function(o,r,c){var d=t,u=t;return o==null&&(o=t),r==null&&(r=t),c==null&&(c=t),f(v.$object_id(),c.$object_id())&&(d=b.$call(c),s(d)&&(l=d["$[]"]("prefix").$split("/").$reverse(),a(l.$size(),0)&&l["$<<"]("")),v=c),u=r.$to_s(),u["$gsub!"]("/","%2f"),l.$unshift(u),p=!1,a(o,i)&&(p=!0),s(p)&&m["$<<"]("/"["$<<"](l.$reverse().$join("/"))),s(o["$is_any?"](n("Array"),n("Hash"),n("Struct"),n(n(n("GxG"),"Database"),"DetachedHash"),n(n(n("GxG"),"Database"),"DetachedArray")))&&g.$unshift(new Map([["selector",r],["container",o],["prefix",l.$reverse().$join("/")]])),l.$shift(),t}):m["$<<"]("/"["$<<"](l.$join("/"))),m},-1),i(O,"$get_at_path",function(n){var l=this,i=t,c=t,d=t;return n==null&&(n="/"),i=t,a(n,"/")?i=l:(c=[l],d=n.$split("/"),function(){try{var e=h("break");return o(d.$to_enum(),"each",[],function n(o){var l=t;if(o==null&&(o=t),l=t,s(r(o.$size(),0))&&(a(o["$=~"](/^(?:[0-9])*[0-9](?:[0-9])*$/),0)?l=o.$to_i():(l=o.$to_s(),l["$gsub!"]("%2f","/"),l=l.$to_sym())),s(l))if(i=c.$first()["$[]"](l),s(i["$is_a?"](x("NilClass"))))e.$throw(t,n.$$is_lambda);else return c.$unshift(i);else return t})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}()),i},-1),i(O,"$set_at_path",function(o,i){var h=this,u=t,d=t,l=t,c=t;return o==null&&(o="/"),i==null&&(i=t),u=t,f(o,"/")&&(d=h.$get_at_path(n("File").$dirname(o)),s(d)&&(l=n("File").$basename(o),c=t,s(r(l.$size(),0))&&(a(l["$=~"](/^(?:[0-9])*[0-9](?:[0-9])*$/),0)?c=l.$to_i():(c=l.$to_s(),c["$gsub!"]("%2f","/"),c=c.$to_sym())),s(c)&&(d["$[]="](c,i),u=d["$[]"](c)))),u},-1),i(O,"$merge!",function(i,a){var c=this,r=t;return i==null&&(i=t),a==null&&(a=new Map),r=c,s(i["$is_any?"](n("Hash"),n(n(n("GxG"),"Database"),"DetachedHash"),n(n(n("GxG"),"Database"),"PersistedHash")))&&(s(c.format)?o(i.$keys(),"each",[],function(o){return o==null&&(o=t),s(r.$keys()["$include?"](o))?(r["$[]="](o,i["$[]"](o)),s(i["$is_any?"](n(n(n("GxG"),"Database"),"DetachedHash"),n(n(n("GxG"),"Database"),"PersistedHash")))?r.$set_property_version(o,i.$property_version(o)):t):t}):o(i.$keys(),"each",[],function(o){return o==null&&(o=t),r["$[]="](o,i["$[]"](o)),s(i["$is_any?"](n(n(n("GxG"),"Database"),"DetachedHash"),n(n(n("GxG"),"Database"),"PersistedHash")))?r.$set_property_version(o,i.$property_version(o)):t})),r},-1),i(O,"$merge",function(i,a){var c=this,r=t;return i==null&&(i=t),a==null&&(a=new Map),r=c,s(i["$is_any?"](n("Hash"),n(n(n("GxG"),"Database"),"DetachedHash"),n(n(n("GxG"),"Database"),"PersistedHash")))&&(r=n(n(n("GxG"),"Database"),"DetachedHash").$iterative_detached_persist(c.$unpersist()),s(c.format)?(o(i.$keys(),"each",[],function(o){return o==null&&(o=t),s(r.$keys()["$include?"](o))?(r["$[]="](o,i["$[]"](o)),s(i["$is_any?"](n(n(n("GxG"),"Database"),"DetachedHash"),n(n(n("GxG"),"Database"),"PersistedHash")))?r.$set_property_version(o,i.$property_version(o)):t):t}),r["$format="](c.format)):o(i.$keys(),"each",[],function(o){return o==null&&(o=t),r["$[]="](o,i["$[]"](o)),s(i["$is_any?"](n(n(n("GxG"),"Database"),"DetachedHash"),n(n(n("GxG"),"Database"),"PersistedHash")))?r.$set_property_version(o,i.$property_version(o)):t})),r},-1)}(S[0],null,S),function(l,v,O){var E=b(l,v,"DetachedArray"),S=[E].concat(O),k=e.$r(S),A=E.$$prototype;return A.element_links=A.uuid=A.title=A.version=A.constraint=A.parent=A.format=t,E.$private(),i(E,"$element_destroy",function(n){return n==null&&(n=t),t},-1),i(E,"$element_write",function(n){return n==null&&(n=t),t},-1),i(E,"$load_element_links",c(t)),i(E,"$refresh_ordinals",function(){var n=this,s=t,s=[];return o(n.element_links,"each_with_index",[],function e(n,o){var i=e.$$s==null?this:e.$$s;return i.element_links==null&&(i.element_links=t),n==null&&(n=t),o==null&&(o=t),i.element_links["$[]"](o)["$[]"]("record")["$[]="]("ordinal",o),s["$<<"](i.element_links["$[]"](o))},{$$s:n}),n.element_links=s}),E.$public(),i(E,"$uuid",function(){var t=this;return t.uuid.$clone()}),i(E,"$uuid=",function(n){var o=this;return n==null&&(n=t),s(k("GxG")["$valid_uuid?"](n))?o.uuid=n.$to_s().$to_sym():t},-1),i(E,"$title",function(){var t=this;return t.title.$clone()}),i(E,"$title=",function(n){var o=this;return n==null&&(n=t),s(n)?(o.title=n.$to_s()["$[]"](u(0,255,!1)),o.$increment_version()):t},-1),i(E,"$version",function(){var t=this;return t.version.$clone()}),i(E,"$version=",function(o){var i=this;return o==null&&(o=t),s(o["$is_a?"](n("Numeric")))?i.version=o.$to_s("F").$to_d():t},-1),i(E,"$element_version",function(o){var a=this,i=t;return o==null&&(o=t),i=0,s(o["$is_a?"](n("Numeric")))&&(s(a.element_links["$[]"](o))?i=a.element_links["$[]"](o)["$[]"]("record")["$[]"]("version"):i=0),i},-1),i(E,"$set_element_version",function(o,i){var a=this,r=t;return i==null&&(i=t),r=!1,s(a.element_links["$[]"](o))?s(i["$is_a?"](n("Numeric")))?(a.element_links["$[]"](o)["$[]"]("record")["$[]="]("version",g(p(i.$to_f(),1e4).$to_i().$to_f(),1e4)),r=!0):a.$log_warning("Attempted to set version to an invalid version value "+i.$inspect()+" for index "+o.$inspect()+" on Object "+a.uuid.$inspect()):a.$log_warning("Attempted to set version with an invalid index "+o.$inspect()+" on Object "+a.uuid.$inspect()),r},-2),i(E,"$constraint",function(){var t=this;return t.constraint.$clone()}),i(E,"$constraint=",function(n){var o=this;return n==null&&(n=t),s(k("GxG")["$valid_uuid?"](n))?o.constraint=n.$to_s().$to_sym():t},-1),i(E,"$parent",_("parent")),i(E,"$parent=",function(o){var i=this;return o==null&&(o=t),s(o["$is_any?"]([n(n(n("GxG"),"Database"),"DetachedHash"),n(n(n("GxG"),"Database"),"DetachedArray")]))?s(i.parent)?t:i.parent=o:t},-1),i(E,"$get_permissions",c(t)),i(E,"$set_permissions",function(n,s){return n==null&&(n=t),s==null&&(s=t),t},-1),i(E,"$reservation",c(t)),i(E,"$write_permission?",c(!0)),i(E,"$write_reserved?",c(!0)),i(E,"$release_reservation",c(!0)),i(E,"$get_reservation",c(!0)),i(E,"$wait_for_reservation",function(n){return n==null&&(n=t),!0},-1),i(E,"$get_delegate",c(t)),i(E,"$set_delegate",function(n){return n==null&&(n=t),t},-1),i(E,"$increment_version",function(){var n=this;return s(n["$alive?"]())&&s(n["$write_reserved?"]())?n.version=g(p(d(n.version,1e-4),1e4).$to_i().$to_f(),1e4):t}),i(E,"$save_version",c(t)),i(E,"$clear_constraint",function(){var n=this;return s(n["$alive?"]())&&s(n.constraint)&&(n.constraint=t),!0}),i(E,"$constraint",function(){var t=this;return t.constraint.$clone()}),i(E,"$ufs",function(){var i=this,o=t;return s(i.format)?(o=n(k("GxG"),"DB")["$[]"]("formats")["$[]"](i.format.$to_s().$to_sym()),s(o)?o["$[]"]("ufs").$to_s().$to_sym():""):""}),i(E,"$refresh_links",c(t)),i(E,"$initialize",function(){var s=this;return s.uuid=n("GxG").$uuid_generate().$to_s().$to_sym(),s.title="Untitled "+s.uuid.$to_s(),s.version=0,s.constraint=t,s.parent=t,s.data=[],s.element_links=[],s}),i(E,"$inspect",function(){var s=this,n=t,n="[";return o(s.element_links,"each_index",[],function e(s){var o=e.$$s==null?this:e.$$s;return o.element_links==null&&(o.element_links=t),s==null&&(s=t),n=d(n,o.element_links["$[]"](s)["$[]"]("content").$inspect()),a(s,m(o.element_links.$size(),1))?t:n=d(n,", ")},{$$s:s}),d(n,"]")}),i(E,"$alive?",c(!0)),i(E,"$db_address",c(t)),i(E,"$deactivate",c(t)),i(E,"$save",c(t)),i(E,"$destroy",c(t)),i(E,"$size",function(){var t=this;return t.element_links.$size()}),i(E,"$structure_attached?",c(!1)),i(E,"$structure_detach",c(!0)),i(E,"$[]=",function(i,r){var l=this,h=t,u=t,c=t,m=t;if(i==null&&(i=t),r==null&&(r=t),s(l["$alive?"]())||l.$raise(k("Exception"),"Attempted to alter a defunct structure"),h=t,s(i["$is_a?"](n("Integer"))))if(s(r["$is_any?"](n(n("GxG"),"Database").$valid_field_classes()))||s(r["$is_any?"](n(n(n("GxG"),"Database"),"DetachedHash"),n(n(n("GxG"),"Database"),"DetachedArray"),n("Hash"),n("Array"))))if(s(l["$write_reserved?"]())||l.$get_reservation(),s(l["$write_reserved?"]())){if(s(r["$is_any?"](n("Hash"),n("Array")))&&o(r,"search",[],function e(o,i,a){var r=e.$$s==null?this:e.$$s;return o==null&&(o=t),i==null&&(i=t),a==null&&(a=t),s(o["$is_any?"](n(n("GxG"),"Database").$valid_field_classes()))||s(o["$is_any?"](n(n(n("GxG"),"Database"),"DetachedHash"),n(n(n("GxG"),"Database"),"DetachedArray"),n("Hash"),n("Array")))?t:r.$raise(k("Exception"),"The structure you are attaching has an unpersistable item within it (not supported).")},{$$s:l}),s(l.element_links["$[]"](i))?u="set_value":s(l.constraint)?l.$raise(k("Exception"),"Formatted - the structure cannot be altered"):u="add_value",c=new Map([["linkid",t],["content",t],["loaded",!1],["state",0],["record",new Map([["parent_uuid",l.uuid.$to_s()],["ordinal",0],["version",0],["element","element_boolean"],["element_boolean",-1],["element_integer",0],["element_float",0],["element_bigdecimal",l.$BigDecimal("0.0")],["element_datetime",n("Time").$now()],["time_offset",0],["time_prior",0],["time_after",0],["length",0],["element_text",""],["element_binary",t],["element_array",t],["element_hash",t]])]]),s(r["$is_any?"](n(n(n("GxG"),"Database"),"DetachedHash"),n(n(n("GxG"),"Database"),"DetachedArray"))))c["$[]="]("content",r),c["$[]="]("loaded",!0),c["$[]="]("state",c["$[]"]("content").$hash()),c["$[]"]("record")["$[]="]("version",c["$[]"]("content").$version()),s(r["$is_a?"](n(n(n("GxG"),"Database"),"DetachedHash")))?(c["$[]"]("record")["$[]="]("element","element_hash"),c["$[]"]("record")["$[]="]("element_hash",r)):(c["$[]"]("record")["$[]="]("element","element_array"),c["$[]"]("record")["$[]="]("element_array",r));else if(s(r["$is_any?"](n("Hash"),n("Array"))))c["$[]="]("content",n(n("GxG"),"Database").$iterative_detached_persist(r)),c["$[]="]("loaded",!0),c["$[]="]("state",c["$[]"]("content").$hash()),c["$[]"]("record")["$[]="]("version",c["$[]"]("content").$version()),s(r["$is_a?"](n("Hash")))?(c["$[]"]("record")["$[]="]("element","element_hash"),c["$[]"]("record")["$[]="]("element_hash",c["$[]"]("content"))):(c["$[]"]("record")["$[]="]("element","element_array"),c["$[]"]("record")["$[]="]("element_array",c["$[]"]("content")));else switch(c["$[]"]("record")["$[]="]("element",n(n("GxG"),"Database").$element_table_for_instance(r).$to_s()),c["$[]"]("record")["$[]"]("element").valueOf()){case"element_boolean":y(j,m=r.$class())?(c["$[]"]("record")["$[]="]("element_boolean",-1),c["$[]="]("content",t)):y(n("FalseClass"),m)?(c["$[]"]("record")["$[]="]("element_boolean",0),c["$[]="]("content",!1)):y(n("TrueClass"),m)?(c["$[]"]("record")["$[]="]("element_boolean",1),c["$[]="]("content",!0)):t;break;case"element_integer":c["$[]"]("record")["$[]="]("element_integer",r),c["$[]="]("content",r);break;case"element_float":c["$[]"]("record")["$[]="]("element_float",r),c["$[]="]("content",r);break;case"element_bigdecimal":c["$[]"]("record")["$[]="]("element_bigdecimal",l.$BigDecimal(r.$to_s())),c["$[]="]("content",c["$[]"]("record")["$[]"]("element_bigdecimal"));break;case"element_datetime":c["$[]"]("record")["$[]="]("element_datetime",r),c["$[]="]("content",r);break;case"element_text":c["$[]"]("record")["$[]="]("element_text",r),c["$[]"]("record")["$[]="]("length",r.$size()),c["$[]="]("content",r);break;case"element_binary":a(u,"set_value")&&(c["$[]"]("record")["$[]="]("version",l.element_links["$[]"](i)["$[]"]("record")["$[]"]("version")),c["$[]"]("record")["$[]="]("element_binary_uuid",l.element_links["$[]"](i)["$[]"]("record")["$[]"]("element_binary_uuid"))),c["$[]"]("record")["$[]="]("length",r.$size()),c["$[]="]("content",r);break;default:l.$raise(k("Exception"),"Unable to map an element type for value: "+r.$inspect())}switch(u.valueOf()){case"set_value":s(c["$[]"]("content")["$is_a?"](l.element_links["$[]"](i)["$[]"]("content").$class()))||s([!0,!1,t]["$include?"](c["$[]"]("content")))&&s([!0,!1,t]["$include?"](l.element_links["$[]"](i)["$[]"]("content")))?(c["$[]="]("linkid",l.element_links["$[]"](i)["$[]"]("linkid")),s(c["$[]"]("content")["$is_any?"](n(n(n("GxG"),"Database"),"DetachedHash"),n(n(n("GxG"),"Database"),"DetachedArray")))?c["$[]"]("record")["$[]="]("version",c["$[]"]("content").$version()):c["$[]"]("record")["$[]="]("version",g(p(d(l.element_links["$[]"](i)["$[]"]("record")["$[]"]("version").$to_f(),1e-4),1e4).$to_i().$to_f(),1e4)),c["$[]"]("record")["$[]="]("ordinal",l.element_links["$[]"](i)["$[]"]("record")["$[]"]("ordinal")),c["$[]="]("loaded",!0),c["$[]="]("state",l.element_links["$[]"](i)["$[]"]("state")),s(c["$[]"]("content")["$is_a?"](n("String")))&&l.element_links["$[]="](i,c)):(s(c["$[]"]("content")["$is_any?"](n(n(n("GxG"),"Database"),"DetachedHash"),n(n(n("GxG"),"Database"),"DetachedArray")))?c["$[]"]("record")["$[]="]("version",c["$[]"]("content").$version()):c["$[]"]("record")["$[]="]("version",g(p(d(l.element_links["$[]"](i)["$[]"]("record")["$[]"]("version").$to_f(),1e-4),1e4).$to_i().$to_f(),1e4)),c["$[]"]("record")["$[]="]("ordinal",l.element_links["$[]"](i)["$[]"]("record")["$[]"]("ordinal")),c["$[]="]("loaded",!0),l.element_links["$[]="](i,c));break;case"add_value":s(c["$[]"]("content")["$is_any?"](n(n(n("GxG"),"Database"),"DetachedHash"),n(n(n("GxG"),"Database"),"DetachedArray")))?c["$[]"]("record")["$[]="]("version",c["$[]"]("content").$version()):c["$[]"]("record")["$[]="]("version",0),c["$[]"]("record")["$[]="]("ordinal",l.element_links.$size()),c["$[]="]("loaded",!0),l.element_links["$[]="](i,c);break;default:t}s(l.element_links["$[]"](i)["$[]"]("content")["$is_any?"](n(n(n("GxG"),"Database"),"DetachedHash"),n(n(n("GxG"),"Database"),"DetachedArray")))&&l.element_links["$[]"](i)["$[]"]("content")["$parent="](l),l.$increment_version(),h=l.element_links["$[]"](i)["$[]"]("content")}else l.$raise(k("Exception"),"You do not have sufficient privileges to make this change. (write-reservation)");else l.$raise(k("Exception"),"The value is not persistable.");else l.$raise(k("Exception"),"You must provide a index in the form of an Integer.");return h},-1),i(E,"$[]",function(o){var i=this,a=t;return o==null&&(o=t),a=t,s(i["$alive?"]())?s(o["$is_a?"](n("Integer")))?s(i.element_links["$[]"](o))&&(a=i.element_links["$[]"](o)["$[]"]("content")):i.$raise(k("ArgumentError"),"You must specify with an Integer, not a "+o.$class().$inspect()):i.$raise(k("Exception"),"Attempted to access a defunct structure"),a},-1),i(E,"$delete_at",function(o){var i=this,a=t,r=t;return o==null&&(o=t),a=t,s(i["$alive?"]())?s(o["$is_a?"](n("Integer")))?s(i["$write_reserved?"]())?s(i.element_links["$[]"](o))&&(a=i["$[]"](o),r=i.element_links.$delete_at(o),s(r["$[]"]("content")["$is_any?"](n(n(n("GxG"),"Database"),"DetachedHash"),n(n(n("GxG"),"Database"),"DetachedArray")))&&r["$[]"]("content").$save(),i.$increment_version()):i.$raise(k("Exception"),"You do not have sufficient privileges to make this change"):i.$raise(k("ArgumentError"),"You must specify with a Symbol, not a "+i.$key().$class().$inspect()):i.$raise(k("Exception"),"Attempted to access a defunct structure"),a},-1),i(E,"$<<",function(){var a=this,c=x(arguments),i=c;return s(r(i.$size(),0))&&o(i,"each",[],function e(n){var s,i=e.$$s==null?this:e.$$s;return i.element_links==null&&(i.element_links=t),n==null&&(n=t),(s=[i.element_links.$size(),n],o(i,"[]=",s),s[s.length-1])},{$$s:a}),a},-1),i(E,"$push",function(){var a=this,c=x(arguments),i=c;return s(r(i.$size(),0))&&o(i,"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s["$<<"](n)},{$$s:a}),a},-1),i(E,"$pop",function(){var t=this;return t.$delete_at(m(t.element_links.$size(),1))}),i(E,"$shift",function(){var t=this;return t.$delete_at(0)}),i(E,"$insert",function(o,i){var c=this,l=t;return o==null&&(o=t),i==null&&(i=t),s(n(n("GxG"),"Database")["$persistable?"](i))&&(l=new Map([["linkid",t],["content",t],["loaded",!1],["state",0],["record",new Map([["parent_uuid",c.uuid.$to_s()],["ordinal",0],["version",c.$BigDecimal("0.0")],["element","element_boolean"],["element_boolean",-1],["element_integer",0],["element_float",0],["element_bigdecimal",c.$BigDecimal("0.0")],["element_datetime",n("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",""]])]]),o=o.$to_i(),s(C(o,0))&&(o=m(c.$size(),o)),a(o,0)?(l["$[]"]("record")["$[]="]("ordinal",o),c.element_links.$unshift(l),c.$refresh_ordinals(),c["$[]="](0,i)):s(r(o,m(c.$size(),1)))?c.$push(i):(l["$[]"]("record")["$[]="]("ordinal",o),c.element_links.$insert(o,l),c.$refresh_ordinals(),c["$[]="](o,i))),c},-1),i(E,"$unshift",function(n){var s=this;return n==null&&(n=t),s.$insert(0,n)},-1),i(E,"$swap",function(o,i){var a=this,r=t,c=t;return o==null&&(o=t),i==null&&(i=t),r=!1,s(o)&&s(i)&&s(e.Range.$new(0,m(a.$size(),1),!1)["$include?"](o.$to_i()))&&s(e.Range.$new(0,m(a.$size(),1),!1)["$include?"](i.$to_i()))&&f(o.$to_i(),i.$to_i())&&(c=a.element_links["$[]"](o),a.element_links["$[]="](o,a.element_links["$[]"](i)),a.element_links["$[]="](i,c),r=!0),r},-1),i(E,"$include?",function(n){var i=this,s=t,s=!1;return function(){try{var e=h("break");return o(i.element_links,"each",[],function o(i){if(i==null&&(i=t),a(i["$[]"]("content"),n))s=!0,e.$throw(t,o.$$is_lambda);else return t})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}(),s}),i(E,"$find_index",function(n){var i=this,s=t,s=t;return function(){try{var e=h("break");return o(i.element_links,"each_with_index",[],function o(i,r){if(i==null&&(i=t),r==null&&(r=t),a(i["$[]"]("content"),n))s=r,e.$throw(t,o.$$is_lambda);else return t})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}(),s}),i(E,"$export",function(i){var c=this,m=t,u=t,d=t,l=t,p=t,h=t,f=t;if(i==null&&(i=new Map([["exclude_file_segments",!1]])),s(c["$alive?"]()))for(m=s(u=i["$[]"]("exclude_file_segments"))&&u,a(i["$[]"]("clone"),!0)?d=new Map([["type","element_array"],["uuid",k("GxG").$uuid_generate().$to_s().$to_sym()],["title",c.title.$clone()],["version",c.version.$clone()],["content",[]]]):d=new Map([["type","element_array"],["uuid",c.uuid.$clone()],["title",c.title.$clone()],["version",c.version.$clone()],["constraint",c.constraint.$clone()],["content",[]]]),l=[new Map([["parent",t],["parent_selector",t],["object",c],["record",d]])],p=o(k("Proc"),"new",[],function(n){var s=t;return n==null&&(n=t),s=[],o(l,"each",[],function(o){return o==null&&(o=t),a(o["$[]"]("parent").$object_id(),n.$object_id())?s["$<<"](o):t}),s},-1),o(c,"search",[],function(o,r,c){var d=t,f=t,h=t;if(o==null&&(o=t),r==null&&(r=t),c==null&&(c=t),s(o["$is_a?"](n(n(n("GxG"),"Database"),"DetachedHash")))&&(a(i["$[]"]("clone"),!0)?d=k("GxG").$uuid_generate().$to_s().$to_sym():d=o.$uuid().$clone(),a(m,!0)&&(a(r,"file_segments")||a(r,"segments")||a(r,"portions"))?l["$<<"](new Map([["parent",c],["parent_selector",r.$clone()],["object",new Map],["record",new Map([["type","element_hash"],["uuid",d],["title",o.$title().$clone()],["version",o.$version().$clone()],["format",o.$format().$clone()],["content",new Map]])]])):l["$<<"](new Map([["parent",c],["parent_selector",r.$clone()],["object",o],["record",new Map([["type","element_hash"],["uuid",d],["title",o.$title().$clone()],["version",o.$version().$clone()],["format",o.$format().$clone()],["content",new Map]])]]))),s(o["$is_a?"](n(n(n("GxG"),"Database"),"DetachedArray")))&&(a(i["$[]"]("clone"),!0)?d=k("GxG").$uuid_generate().$to_s().$to_sym():d=o.$uuid().$clone(),a(m,!0)&&(a(r,"file_segments")||a(r,"segments")||a(r,"portions"))?l["$<<"](new Map([["parent",c],["parent_selector",r.$clone()],["object",[]],["record",new Map([["type","element_array"],["uuid",d],["title",o.$title().$clone()],["version",o.$version().$clone()],["constraint",o.$constraint().$clone()],["content",[]]])]])):l["$<<"](new Map([["parent",c],["parent_selector",r.$clone()],["object",o],["record",new Map([["type","element_array"],["uuid",d],["title",o.$title().$clone()],["version",o.$version().$clone()],["constraint",o.$constraint().$clone()],["content",[]]])]]))),s(o["$is_any?"](n(n("GxG"),"Database").$valid_field_classes()))){switch(f=n(k("GxG"),"Database").$element_table_for_instance(o),f.valueOf()){case"element_bigdecimal":h=o.$to_s();break;case"element_datetime":h=o.$iso8601().$to_s();break;case"element_binary":h=o.$to_s().$encode64();break;case"element_text":h=o.$to_s();break;default:h=o}return l["$<<"](new Map([["parent",c],["parent_selector",r.$clone()],["object",o],["record",new Map([["type",f],["version",s(u=c.$version(r))?u:0],["content",h]])]]))}return t}),h=[l["$[]"](0)];s(r(h.$size(),0));)f=h.$shift(),o(p.$call(f["$[]"]("object")),"each",[],function(o){return o==null&&(o=t),f["$[]"]("record")["$[]"]("content")["$[]="](o["$[]"]("parent_selector"),o["$[]"]("record")),s(o["$[]"]("object")["$is_any?"](n(n(n("GxG"),"Database"),"DetachedHash"),n(n(n("GxG"),"Database"),"DetachedArray")))?h["$<<"](o):t});else d=t;return d},-1),i(E,"$sync_export",function(t){var n=this;return t==null&&(t=new Map),n.$save()},-1),i(E,"$first",function(){var n=this;return s(r(n.element_links.$size(),0))?n["$[]"](0):t}),i(E,"$last",function(){var n=this;return s(r(n.element_links.$size(),0))?n["$[]"](m(n.element_links.$size(),1)):t}),i(E,"$each",function e(){var i=e.$$p||t,n=this;return e.$$p=null,s(i["$respond_to?"]("call"))?(n.$load_element_links(),s(r(n.element_links.$size(),0))&&o(n.element_links,"each_index",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),i.$call(s["$[]"](n))},{$$s:n}),n):n.$to_enum("each")}),i(E,"$each_index",function e(){var i=e.$$p||t,n=this;return e.$$p=null,s(i["$respond_to?"]("call"))?(n.$load_element_links(),s(r(n.element_links.$size(),0))&&o(n.element_links,"each_index",[],function(n){return n==null&&(n=t),i.$call(n)}),n):n.$to_enum("each_index")}),i(E,"$each_with_index",function e(n){var a=e.$$p||t,i=this;return e.$$p=null,n==null&&(n=0),s(a["$respond_to?"]("call"))?(i.$load_element_links(),s(r(i.element_links.$size(),0))&&o(i.element_links.$to_enum("each").$with_index(n),"each",[],function e(n,s){var o=e.$$s==null?this:e.$$s;return n==null&&(n=t),s==null&&(s=t),a.$call(o["$[]"](s),s)},{$$s:i}),i):i.$to_enum("each_with_index",n)},-1),i(E,"$iterative",function i(c){var v=i.$$p||t,d=this,h=t,b=t,m=t,p=t,u=t,l=t,g=t,j=t,y=t;i.$$p=null,c==null&&(c=new Map([["include_inactive",!0]])),h=[],b=o(k("Proc"),"new",[],function(i,a){var d=t,l=t;if(i==null&&(i=t),a==null&&(a=[]),d=[],s(i))for(d["$<<"](new Map([["parent",t],["parent_selector",t],["object",i]]));s(r(d.$size(),0));)l=d.$shift(),s(l["$[]"]("object")["$is_a?"](n(n(n("GxG"),"Database"),"DetachedHash")))&&(s(l["$[]"]("object")["$alive?"]())?o(l["$[]"]("object"),"each_pair",[],function(n,s){return n==null&&(n=t),s==null&&(s=t),d["$<<"](new Map([["parent",l["$[]"]("object")],["parent_selector",n],["object",s]]))}):s(c["$[]"]("include_inactive"))&&a["$<<"](l)),s(l["$[]"]("object")["$is_a?"](n(n(n("GxG"),"Database"),"DetachedArray")))&&(s(l["$[]"]("object")["$alive?"]())?o(l["$[]"]("object"),"each_with_index",[],function(n,s){return n==null&&(n=t),s==null&&(s=t),d["$<<"](new Map([["parent",l["$[]"]("object")],["parent_selector",s],["object",n]]))}):s(c["$[]"]("include_inactive"))&&a["$<<"](l)),(s(l["$alive?"]())||s(c["$[]"]("include_inactive")))&&a["$<<"](l);return a},-1),m=o(k("Proc"),"new",[],function(n,s){var i=t;return n==null&&(n=[]),s==null&&(s=t),i=[],o(n,"each",[],function(n){return n==null&&(n=t),a(n["$[]"]("parent").$object_id(),s.$object_id())?i["$<<"](n):t}),i},-1);try{if(p=b.$call(d,[]),u=m.$call(p,d),s(v["$respond_to?"]("call")))for(;s(r(u.$size(),0));)l=u.$shift(),a(l["$[]"]("object").$object_id(),d.$object_id())||(g=v.$call(l["$[]"]("object"),l["$[]"]("parent_selector"),l["$[]"]("parent")),s(g)&&h["$<<"](g)),f(l["$[]"]("object").$object_id(),t.$object_id())&&(j=m.$call(p,l["$[]"]("object")),o(j,"each",[],function(n){return n==null&&(n=t),u["$<<"](n)}))}catch(t){if(e.rescue(t,[k("Exception")])){y=t;try{d.$log_error(new Map([["error",y],["parameters",new Map]]))}finally{e.pop_exception(t)}}else throw t}return h},-1),w(E,"process","iterative"),i(E,"$process!",function e(n){var i=e.$$p||t,s=this;return e.$$p=null,n==null&&(n=new Map([["include_inactive",!0]])),o(s,"iterative",[n],i.$to_proc()),s},-1),i(E,"$search",function e(n){var a=e.$$p||t,r=this,i=t;return e.$$p=null,n==null&&(n=new Map([["include_inactive",!0]])),i=[],s(a["$respond_to?"]("call"))&&(i=o(r,"iterative",[n],a.$to_proc())),i},-1),i(E,"$paths_to",function(i,c){var j=this,m=t,l=t,d=t,g=t,b=t,v=t,p=t;return i==null&&(i=t),c==null&&(c=""),m=[],a(c["$[]"](0),"/")||(c="/"["$<<"](c)),s(r(c.$size(),1))?l=c.$split("/")["$[]"](u(1,-1,!1)).$reverse():l=[],d=j.$get_at_path(c),g=[new Map([["selector",t],["container",d]])],b=o(k("Proc"),"new",[],function(n){var s=t;return n==null&&(n=t),s=t,function(){try{var e=h("break");return o(g,"each_with_index",[],function o(i,r){if(i==null&&(i=t),r==null&&(r=t),a(i["$[]"]("container"),n))s=i,e.$throw(t,o.$$is_lambda);else return t})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}(),s}),v=d,p=!1,s(d["$is_any?"](n("Hash"),n("Array"),n("Struct"),n(n(n("GxG"),"Database"),"DetachedHash"),n(n(n("GxG"),"Database"),"DetachedArray")))?o(d,"process!",[],function(o,r,c){var d=t,u=t;return o==null&&(o=t),r==null&&(r=t),c==null&&(c=t),f(v.$object_id(),c.$object_id())&&(d=b.$call(c),s(d)&&(l=d["$[]"]("prefix").$split("/").$reverse(),a(l.$size(),0)&&l["$<<"]("")),v=c),u=r.$to_s(),u["$gsub!"]("/","%2f"),l.$unshift(u),p=!1,a(o,i)&&(p=!0),s(p)&&m["$<<"]("/"["$<<"](l.$reverse().$join("/"))),s(o["$is_any?"](n("Array"),n("Hash"),n("Struct"),n(n(n("GxG"),"Database"),"DetachedHash"),n(n(n("GxG"),"Database"),"DetachedArray")))&&g.$unshift(new Map([["selector",r],["container",o],["prefix",l.$reverse().$join("/")]])),l.$shift(),t}):m["$<<"]("/"["$<<"](l.$join("/"))),m},-1),i(E,"$get_at_path",function(n){var l=this,i=t,c=t,d=t;return n==null&&(n="/"),i=t,a(n,"/")?i=l:(c=[l],d=n.$split("/"),function(){try{var e=h("break");return o(d.$to_enum(),"each",[],function n(o){var l=t;if(o==null&&(o=t),l=t,s(r(o.$size(),0))&&(a(o["$=~"](/^(?:[0-9])*[0-9](?:[0-9])*$/),0)?l=o.$to_i():(l=o.$to_s(),l["$gsub!"]("%2f","/"),l=l.$to_sym())),s(l))if(i=c.$first()["$[]"](l),s(i["$is_a?"](k("NilClass"))))e.$throw(t,n.$$is_lambda);else return c.$unshift(i);else return t})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}()),i},-1),i(E,"$set_at_path",function(o,i){var h=this,u=t,d=t,l=t,c=t;return o==null&&(o="/"),i==null&&(i=t),u=t,f(o,"/")&&(d=h.$get_at_path(n("File").$dirname(o)),s(d)&&(l=n("File").$basename(o),c=t,s(r(l.$size(),0))&&(a(l["$=~"](/^(?:[0-9])*[0-9](?:[0-9])*$/),0)?c=l.$to_i():(c=l.$to_s(),c["$gsub!"]("%2f","/"),c=c.$to_sym())),s(c)&&(d["$[]="](c,i),u=d["$[]"](c)))),u},-1),i(E,"$unpersist",function(){var l=this,d=t,i=t,h=t,c=t,u=t,d=[];if(s(l["$alive?"]()))for(i=[new Map([["parent",t],["parent_selector",t],["object",l],["record",d]])],h=o(k("Proc"),"new",[],function(n){var s=t;return n==null&&(n=t),s=[],o(i,"each",[],function(o){return o==null&&(o=t),a(o["$[]"]("parent").$object_id(),n.$object_id())?s["$<<"](o):t}),s},-1),o(l,"search",[],function(o,a,r){return o==null&&(o=t),a==null&&(a=t),r==null&&(r=t),s(o["$is_a?"](n(n(n("GxG"),"Database"),"DetachedHash")))?i["$<<"](new Map([["parent",r],["parent_selector",a.$clone()],["object",o],["record",new Map]])):s(o["$is_a?"](n(n(n("GxG"),"Database"),"DetachedArray")))?i["$<<"](new Map([["parent",r],["parent_selector",a.$clone()],["object",o],["record",[]]])):i["$<<"](new Map([["parent",r],["parent_selector",a.$clone()],["object",o],["record",o]]))}),c=[i["$[]"](0)];s(r(c.$size(),0));)u=c.$shift(),o(h.$call(u["$[]"]("object")),"each",[],function(o){return o==null&&(o=t),u["$[]"]("record")["$[]="](o["$[]"]("parent_selector"),o["$[]"]("record")),s(o["$[]"]("object")["$is_any?"](n(n(n("GxG"),"Database"),"DetachedHash"),n(n(n("GxG"),"Database"),"DetachedArray")))?c["$<<"](o):t});return d})}(S[0],null,S),b(S[0],n(n(n("GxG"),"Database"),"DetachedArray"),"PeristedArray"),function(i,a,c){var u=b(i,a,"PeristedHash"),h=[u].concat(c),d=e.$r(h);return l(u,"$import",function(i){var l=this,u=t,c=t,a=t;for(i==null&&(i=t),u=t,s(i["$is_any?"](n("Hash"),n(n(n("GxG"),"Database"),"DetachedHash"),n(n(n("GxG"),"Database"),"PersistedHash")))||l.$raise(d("Exception"),"Malformed import record passed."),c=[new Map([["target",n(n(n("GxG"),"Database"),"PersistedHash").$new()],["record",i]])],u=c["$[]"](0)["$[]"]("target");s(r(c.$size(),0));)switch(a=c.$shift(),a["$[]"]("record")["$[]"]("type").$to_s().$to_sym().valueOf()){case"element_hash":a["$[]"]("target")["$uuid="](a["$[]"]("record")["$[]"]("uuid").$to_s().$to_sym()),a["$[]"]("target")["$title="](a["$[]"]("record")["$[]"]("title").$to_s()),o(a["$[]"]("record")["$[]"]("content").$keys(),"each",[],function e(s){var i,l=e.$$s==null?this:e.$$s,r=t;switch(s==null&&(s=t),a["$[]"]("record")["$[]"]("content")["$[]"](s)["$[]"]("type").$to_s().$to_sym().valueOf()){case"element_hash":return r=n(n(d("GxG"),"Database"),"PersistedHash").$new(),a["$[]"]("target")["$[]="](s,r),c["$<<"](new Map([["target",r],["record",a["$[]"]("record")["$[]"]("content")["$[]"](s)]])),(i=[a["$[]"]("target")],o(a["$[]"]("target")["$[]"](s),"parent=",i),i[i.length-1]);case"element_array":return r=n(n(d("GxG"),"Database"),"PersistedArray").$new(),a["$[]"]("target")["$[]="](s,r),c["$<<"](new Map([["target",r],["record",a["$[]"]("record")["$[]"]("content")["$[]"](s)]])),(i=[a["$[]"]("target")],o(a["$[]"]("target")["$[]"](s),"parent=",i),i[i.length-1]);case"element_boolean":case"element_integer":case"element_float":case"element_text":return i=[s,a["$[]"]("record")["$[]"]("content")["$[]"](s)["$[]"]("content")],o(a["$[]"]("target"),"[]=",i),i[i.length-1];case"element_bigdecimal":return i=[s,l.$BigDecimal(a["$[]"]("record")["$[]"]("content")["$[]"](s)["$[]"]("content").$to_s())],o(a["$[]"]("target"),"[]=",i),i[i.length-1];case"element_datetime":return i=[s,n("Chronic").$parse(a["$[]"]("record")["$[]"]("content")["$[]"](s)["$[]"]("content").$to_s())],o(a["$[]"]("target"),"[]=",i),i[i.length-1];case"element_binary":return i=[s,n(n("GxG"),"ByteArray").$new(a["$[]"]("record")["$[]"]("content")["$[]"](s)["$[]"]("content").$to_s().$decode64())],o(a["$[]"]("target"),"[]=",i),i[i.length-1];default:return t}},{$$s:l}),a["$[]"]("target")["$version="](l.$BigDecimal(a["$[]"]("record")["$[]"]("version").$to_s())),a["$[]"]("target")["$format="](a["$[]"]("record")["$[]"]("format").$to_s().$to_sym());break;case"element_array":a["$[]"]("target")["$uuid="](a["$[]"]("record")["$[]"]("uuid").$to_s().$to_sym()),a["$[]"]("target")["$title="](a["$[]"]("record")["$[]"]("title").$to_s()),o(a["$[]"]("record")["$[]"]("content"),"each_index",[],function e(s){var i,l=e.$$s==null?this:e.$$s,r=t;switch(s==null&&(s=t),a["$[]"]("record")["$[]"]("content")["$[]"](s)["$[]"]("type").$to_s().$to_sym().valueOf()){case"element_hash":return r=n(n(d("GxG"),"Database"),"PersistedHash").$new(),a["$[]"]("target")["$[]="](s,r),c["$<<"](new Map([["target",r],["record",a["$[]"]("record")["$[]"]("content")["$[]"](s)]])),(i=[a["$[]"]("target")],o(a["$[]"]("target")["$[]"](s),"parent=",i),i[i.length-1]);case"element_array":return r=n(n(d("GxG"),"Database"),"PersistedArray").$new(),a["$[]"]("target")["$[]="](s,r),c["$<<"](new Map([["target",r],["record",a["$[]"]("record")["$[]"]("content")["$[]"](s)]])),(i=[a["$[]"]("target")],o(a["$[]"]("target")["$[]"](s),"parent=",i),i[i.length-1]);case"element_boolean":case"element_integer":case"element_float":case"element_text":return i=[s,a["$[]"]("record")["$[]"]("content")["$[]"](s)["$[]"]("content")],o(a["$[]"]("target"),"[]=",i),i[i.length-1];case"element_bigdecimal":return i=[s,l.$BigDecimal(a["$[]"]("record")["$[]"]("content")["$[]"](s)["$[]"]("content").$to_s())],o(a["$[]"]("target"),"[]=",i),i[i.length-1];case"element_datetime":return i=[s,n("Chronic").$parse(a["$[]"]("record")["$[]"]("content")["$[]"](s)["$[]"]("content").$to_s())],o(a["$[]"]("target"),"[]=",i),i[i.length-1];case"element_binary":return i=[s,n(n("GxG"),"ByteArray").$new(a["$[]"]("record")["$[]"]("content")["$[]"](s)["$[]"]("content").$to_s().$decode64())],o(a["$[]"]("target"),"[]=",i),i[i.length-1];default:return t}},{$$s:l}),a["$[]"]("target")["$version="](l.$BigDecimal(a["$[]"]("record")["$[]"]("version").$to_s())),a["$[]"]("target")["$constraint="](a["$[]"]("record")["$[]"]("constraint").$to_s().$to_sym());break;default:t}return u},-1)}(S[0],n(n(n("GxG"),"Database"),"DetachedHash"),S)}(k[0],k)}(v[0],v),function(t,s,o){var a=b(t,s,"Array"),r=[a].concat(o),c=e.$r(r);return i(a,"$persist",function(){var t=this;return n(c("GxG"),"Database").$iterative_detached_persist(t)})}(v[0],null,v),function(t,s,o){var a=b(t,s,"Hash"),r=[a].concat(o),c=e.$r(r);return i(a,"$persist",function(){var t=this;return n(c("GxG"),"Database").$iterative_detached_persist(t)})}(v[0],null,v)},Opal.modules["web/gxg_libraries"]=function(e){var d=e.module,h=e.klass,n=e.truthy,c=e.send,s=e.eqeq,a=e.rb_gt,o=e.def,r=e.return_ivar,u=e.thrower,l=[],t=e.nil,i=e.$$$;return e.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"),d(l[0],"Libraries"),function(l,m){var p=d(l,"GxG"),f=[p].concat(m);return function(l,d,m){var f=h(l,d,"Library"),v=[f].concat(m),p=e.$r(v),g=f.$$prototype;return g.local=g.source=g.type=g.global=t,o(f,"$initialize",function(o){var r=this,l=t,d=t;return o==null&&(o=t),n(o["$is_a?"](i(i(p("GxG"),"Database"),"PersistedHash")))||r.$raise(p("ArgumentError"),"You MUST provide a persisted source object."),r.uuid=o.$uuid(),r.title=o.$title(),r.version=o.$version(),r.type=(n(l=o["$[]"]("type"))?l:"text/javascript").$to_s(),d=[],n(o["$[]"]("requirements")["$is_a?"](i(i(i("GxG"),"Database"),"PersistedArray")))&&c(o["$[]"]("requirements"),"each",[],function(s){return s==null&&(s=t),n(i(p("GxG"),"DISPLAY_DETAILS")["$[]"]("object")["$library_loaded?"](s))?t:d["$<<"](s)}),c(i(p("GxG"),"DISPLAY_DETAILS")["$[]"]("object"),"load_libraries",[d],function e(r){var d,c=e.$$s==null?this:e.$$s,h=t,m=t,f=t,g=t,u=t;return c.src==null&&(c.src=t),c.local==null&&(c.local=t),c.global==null&&(c.global=t),c.uuid==null&&(c.uuid=t),c.type==null&&(c.type=t),c.charset==null&&(c.charset=t),c.source==null&&(c.source=t),c.title==null&&(c.title=t),r==null&&(r=t),s(r,!0)?(c.src=o["$[]"]("options")["$[]"]("src").$to_s(),n(a(c.src.$size(),0))||(c.src=t),c.charset=(n(l=o["$[]"]("options")["$[]"]("charset"))?l:"utf-8").$to_s(),c.local=o["$[]"]("options")["$[]"]("local"),n(c.local)||(c.local=!1),c.global=o["$[]"]("options")["$[]"]("global").$to_s(),n(a(c.global.$size(),0))||(c.global=t),n(c["$loaded?"]())||(n(a(c.global.$to_s().$size(),0))||(n(c.type="text/javascript")?c.global="Opal":c.global="GxG"),n(c.src["$is_a?"](i("String")))?(h=c.uuid,m=c.type,f=c.charset,g=c.src,d=document.createElement("script"),d.id=h,d.type=m,d.charset=f,d.src=g,document.body.appendChild(d)):(u=o["$[]"]("options")["$[]"]("native").$to_s(),n(u["$is_a?"](i("String")))&&n(a(u.$size(),0))&&(n(u["$base64?"]())&&(u=u.$to_s().$decode64()),h=c.uuid,m=c.type,f=c.charset,d=document.createElement("script"),d.id=h,d.type=m,d.charset=f,d.innerHTML=u,document.body.appendChild(d)))),c.source=o,c.$set_script(c.source["$[]"]("script").$to_s()),c.source=t):c.$raise(p("Exception"),"Library load error - skipping library intitialization: "+c.title)},{$$s:r}),r},-1),o(f,"$uuid",r("uuid")),o(f,"$title",r("title")),o(f,"$version",r("version")),o(f,"$type",r("type")),o(f,"$local",r("local")),o(f,"$global",r("global")),o(f,"$set_script",function(i){try{var c,r=this,l=t,d=t;if(i==null&&(i=""),l=!1,n(a(i.$size(),0)))try{n(i["$base64?"]())&&(i=i.$decode64()),s(r.local,!0)?r.$instance_eval(i):(c=i,typeof e.compile=="function"?eval(e.compile(c,{scope_variables:["result","the_script_body"],arity_check:!1,file:"(eval)",eval:!0})):r.$eval(c)),l=!0}catch(t){if(e.rescue(t,[p("Exception")])){d=t;try{r.$log_error(new Map([["error",d],["parameters",new Map([["script",i]])]]))}finally{e.pop_exception(t)}}else throw t}return l}catch(t){if(t===e.t_eval_return)return t.$v;throw t}},-1),o(f,"$require_resource",function(o){var i=this,a=t;return o==null&&(o=t),a=!1,n(i.source)&&function(){try{var e=u("break");return c(i.source["$[]"]("content"),"each",[],function n(i){var r=n.$$s==null?this:n.$$s;if(i==null&&(i=t),(s(i.$title(),o)||s(i.$uuid(),r.$the_refrence().$to_s().$to_sym()))&&s(i["$[]"]("component").$to_s(),"script")&&s(i["$[]"]("type").$to_s(),"text/ruby"))r.$set_script(i["$[]"]("script").$to_s()),a=!0,e.$throw(t,n.$$is_lambda);else return t},{$$s:i})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}(),a},-1),o(f,"$require_module_resource",function(i){try{var r=this,l=t;return i==null&&(i=t),l=!1,n(r.source)&&function(){try{var o=u("break");return c(r.source["$[]"]("content"),"each",[],function r(c){var d,u,h=r.$$s==null?this:r.$$s;if(c==null&&(c=t),(s(c.$title(),i)||s(c.$uuid(),h.$the_refrence().$to_s().$to_sym()))&&s(c["$[]"]("component").$to_s(),"script")&&s(c["$[]"]("type").$to_s(),"text/ruby"))if(n(a(c["$[]"]("script").$size(),0)))n(c["$[]"]("script")["$base64?"]())?(d=c["$[]"]("script").$to_s().$decode64(),typeof e.compile=="function"?eval(e.compile(d,{scope_variables:["the_script","result","the_reference"],arity_check:!1,file:"(eval)",eval:!0})):h.$eval(d)):(u=c["$[]"]("script").$to_s(),typeof e.compile=="function"?eval(e.compile(u,{scope_variables:["the_script","result","the_reference"],arity_check:!1,file:"(eval)",eval:!0})):h.$eval(u)),l=!0,o.$throw(t,r.$$is_lambda);else return t;else return t},{$$s:r})}catch(e){if(e===o)return e.$v;throw e}finally{o.is_orphan=!0}}(),l}catch(t){if(t===e.t_eval_return)return t.$v;throw t}},-1),o(f,"$loaded?",function(){try{var i,o=this;return s(o.type,"text/javascript")?!!n(window.hasOwnProperty(o.global.$to_s())):!!n(o.global)&&!!n((i="defined? "+o.global.$to_s(),typeof e.compile=="function"?eval(e.compile(i,{scope_variables:[],arity_check:!1,file:"(eval)",eval:!0})):o.$eval(i)))}catch(t){if(t===e.t_eval_return)return t.$v;throw t}})}(f[0],null,f)}(l[0],l)},Opal.modules["web/gxg_applications"]=function(e){var u=e.module,h=e.klass,s=e.truthy,i=e.send,a=e.eqeq,l=e.rb_gt,o=e.def,c=e.thrower,r=e.return_ivar,d=[],t=e.nil,n=e.$$$;return e.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(d,m){var p=u(d,"GxG"),f=[p].concat(m);return function(d,u,m){var f=h(d,u,"Application"),v=[f].concat(m),p=e.$r(v),g=f.$$prototype;return g.viewports=g.windows=g.definition=g.process=g.state=g.libraries=g.event_handlers=g.event_listeners=t,o(f,"$initialize",function(r){var c=this,d=t,m=t,u=t,h=t;if(r==null&&(r=new Map),c.process=r["$[]"]("application"),c.definition=r["$[]"]("source"),c.title="Untitled",c.state=s(d=r["$[]"]("state"))?d:new Map,c.viewports=new Map,s(r["$[]"]("viewport")["$is_a?"](n(n(n("GxG"),"Gui"),"ApplicationViewport")))&&c.viewports["$[]="](r["$[]"]("viewport").$uuid().$to_s().$to_sym(),r["$[]"]("viewport")),s(r["$[]"]("viewports")["$is_a?"](n("Array")))&&i(r["$[]"]("viewports"),"each",[],function e(o){var a,r=e.$$s==null?this:e.$$s;return r.viewports==null&&(r.viewports=t),o==null&&(o=t),s(o["$is_a?"](n(n(n("GxG"),"Gui"),"ApplicationViewport")))?(a=[o.$uuid().$to_s().$to_sym(),o],i(r.viewports,"[]=",a),a[a.length-1]):t},{$$s:c}),c.windows=new Map,s(r["$[]"]("window")["$is_a?"](n(n(n("GxG"),"Gui"),"Window")))&&c.windows["$[]="](r["$[]"]("window").$uuid().$to_s().$to_sym(),r["$[]"]("window")),s(r["$[]"]("windows")["$is_a?"](n("Array")))&&i(r["$[]"]("windows"),"each",[],function e(o){var a,r=e.$$s==null?this:e.$$s;return r.windows==null&&(r.windows=t),o==null&&(o=t),s(o["$is_a?"](n(n(n("GxG"),"Gui"),"Window")))?(a=[o.$uuid().$to_s().$to_sym(),o],i(r.windows,"[]=",a),a[a.length-1]):t},{$$s:c}),c.libraries=new Map,c.event_handlers=new Map,c.event_listeners=new Map,c.credentialed=s(d=r["$[]"]("credentialed"))&&d,c.unique=!s(d=r["$[]"]("unique"))||d,c.location=r["$[]"]("location"),c.heap=new Map,s(c.definition["$is_a?"](n("String")))&&(s(c.definition["$base64?"]())&&(c.definition=c.definition.$decode64()),s(c.definition["$json?"]())))try{c.definition=n("JSON").$parse(c.definition,new Map([["symbolize_names",!0]])),c.definition=n(n("GxG"),"Database").$process_import(c.definition)}catch(t){if(e.rescue(t,[p("Exception")])){m=t;try{c.$log_error(new Map([["error",m],["parameters",new Map([["definition",c.definition]])]]))}finally{e.pop_exception(t)}}else throw t}return s(c.definition["$is_a?"](n(n(n("GxG"),"Database"),"DetachedHash")))&&(c.title=c.definition.$title(),u=c.definition["$[]"]("options").$unpersist(),a(u["$[]"]("credentialed"),!0)?c.credentialed=!0:c.credentialed=!1,a(u["$[]"]("unique"),!0)?c.unique=!0:c.unique=!1),s(c.definition["$is_any?"](n(n(n("GxG"),"Database"),"DetachedHash"),n(n(n("GxG"),"Database"),"DetachedHash")))&&(h=[],s(c.definition["$[]"]("requirements")["$is_any?"](n(n(n("GxG"),"Database"),"DetachedArray"),n(n(n("GxG"),"Database"),"PersistedArray")))&&i(c.definition["$[]"]("requirements"),"each",[],function(o){return o==null&&(o=t),s(n(p("GxG"),"DISPLAY_DETAILS")["$[]"]("object")["$library_loaded?"](o))?t:h["$<<"](o)}),i(n(p("GxG"),"DISPLAY_DETAILS")["$[]"]("object"),"load_libraries",[h],function e(o){var r=e.$$s==null?this:e.$$s;return r.definition==null&&(r.definition=t),o==null&&(o=t),a(o,!0)?(s(r.definition["$[]"]("requirements")["$is_a?"](n(n(n("GxG"),"Database"),"PersistedArray")))&&i(r.definition["$[]"]("requirements"),"each",[],function e(o){var a,c=e.$$s==null?this:e.$$s,r=t;return c.libraries==null&&(c.libraries=t),o==null&&(o=t),r=n(p("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$get_library(o),s(r)?(a=[r.$uuid(),r],i(c.libraries,"[]=",a),a[a.length-1]):t},{$$s:r}),s(l(r.definition["$[]"]("script").$size(),0))?s(r.definition["$[]"]("script")["$base64?"]())?r.$instance_eval(r.definition["$[]"]("script").$to_s().$decode64()):r.$instance_eval(r.definition["$[]"]("script").$to_s()):t):r.$log_warn("Library load error - not processing main application script for "+r.definition.$title()+".")},{$$s:c})),c},-1),o(f,"$get_resource",function(n){var o=this,r=t;return n==null&&(n=t),r=t,s(o.definition)&&function(){try{var e=c("break");return i(o.definition["$[]"]("content"),"each",[],function s(o){var i=s.$$s==null?this:s.$$s;if(o==null&&(o=t),a(o.$title(),n)||a(o.$uuid(),i.$the_refrence().$to_s().$to_sym()))r=o,e.$throw(t,s.$$is_lambda);else return t},{$$s:o})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}(),r},-1),o(f,"$require_resource",function(n){var i=this,r=t,o=t;return n==null&&(n=t),r=!1,s(i.definition)&&(o=i.$get_resource(n),s(o)&&a(o["$[]"]("component").$to_s(),"script")&&a(o["$[]"]("type").$to_s(),"text/ruby")&&s(l(o["$[]"]("script").$size(),0))&&(s(o["$[]"]("script")["$base64?"]())?i.$instance_eval(o["$[]"]("script").$to_s().$decode64()):i.$instance_eval(o["$[]"]("script").$to_s()),r=!0)),r},-1),o(f,"$title",r("title")),o(f,"$credentialed",r("credentialed")),o(f,"$unique",r("unique")),o(f,"$location",r("location")),o(f,"$libraries",r("libraries")),o(f,"$state_data",r("state")),o(f,"$state_pull",function(){var o=this;return i(n(p("GxG"),"CONNECTION"),"app_state_pull",[new Map([["application",o.process.$to_s()]])],function e(o){var i=e.$$s==null?this:e.$$s;return o==null&&(o=t),!!s(o["$is_a?"](n("Hash")))&&!!s(o["$[]"]("result")["$is_a?"](n("Hash")))&&(i.state=o["$[]"]("result"),!0)},{$$s:o})}),o(f,"$state_push",function(){var o=this;return i(n(p("GxG"),"CONNECTION"),"app_state_push",[new Map([["application",o.process.$to_s()],["data",o.state]])],function(o){return o==null&&(o=t),!!s(o["$is_a?"](n("Hash")))&&!!a(o["$[]"]("result"),!0)})}),o(f,"$get_library",function(o){var l=this,r=t;return o==null&&(o=t),r=t,s(o["$is_any?"](n("String"),n("Symbol")))&&(r=l.libraries["$[]"](o.$to_s().$to_sym()),s(r)||function(){try{var e=c("break");return i(l.libraries.$values(),"each",[],function n(s){if(s==null&&(s=t),a(s.$title(),o))r=s,e.$throw(t,n.$$is_lambda);else return t})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}()),r},-1),o(f,"$link_viewport",function(o){var i=this;return o==null&&(o=t),!!s(o["$is_a?"](n(n(n("GxG"),"Gui"),"ApplicationViewport")))&&(i.viewports["$[]="](o.$uuid().$to_s().$to_sym(),o),!0)},-1),o(f,"$unlink_viewport",function(o){var r=this;return o==null&&(o=t),!!s(o["$is_any?"](n("String"),n("Symbol")))&&(s(r.viewports["$[]"](o.$to_s().$to_sym()))?r.viewports.$delete(o.$to_s().$to_sym()):function(){try{var e=c("break");return i(r.viewports.$values(),"each",[],function n(s){var i=n.$$s==null?this:n.$$s;if(i.viewports==null&&(i.viewports=t),s==null&&(s=t),a(s.$title(),o))i.viewports.$delete(s.$uuid()),e.$throw(t,n.$$is_lambda);else return t},{$$s:r})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}(),!0)},-1),o(f,"$viewports",r("viewports")),o(f,"$get_viewport",function(o){var l=this,r=t;return o==null&&(o=t),r=t,s(o["$is_any?"](n("String"),n("Symbol")))&&(r=l.viewports["$[]"](o.$to_s().$to_sym()),s(r)||function(){try{var e=c("break");return i(l.viewports.$values(),"each",[],function n(s){if(s==null&&(s=t),a(s.$title(),o))r=s,e.$throw(t,n.$$is_lambda);else return t})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}()),r},-1),o(f,"$link_window",function(o){var i=this;return o==null&&(o=t),!!s(o["$is_a?"](n(n(n("GxG"),"Gui"),"Window")))&&(i.windows["$[]="](o.$uuid().$to_s().$to_sym(),o),!0)},-1),o(f,"$unlink_window",function(o){var r=this;return o==null&&(o=t),!!s(o["$is_any?"](n("String"),n("Symbol")))&&(s(r.windows["$[]"](o.$to_s().$to_sym()))?r.windows.$delete(o.$to_s().$to_sym()):function(){try{var e=c("break");return i(r.windows.$values(),"each",[],function n(s){var i=n.$$s==null?this:n.$$s;if(i.windows==null&&(i.windows=t),s==null&&(s=t),a(s.$title(),o))i.windows.$delete(s.$uuid()),e.$throw(t,n.$$is_lambda);else return t},{$$s:r})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}(),!0)},-1),o(f,"$windows",r("windows")),o(f,"$get_window",function(o){var l=this,r=t;return o==null&&(o=t),r=t,s(o["$is_any?"](n("String"),n("Symbol")))&&(r=l.windows["$[]"](o.$to_s().$to_sym()),s(r)||function(){try{var e=c("break");return i(l.windows.$values(),"each",[],function n(s){if(s==null&&(s=t),a(s.$title(),o))r=s,e.$throw(t,n.$$is_lambda);else return t})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}()),r},-1),o(f,"$process_uuid",r("process")),o(f,"$source_uuid",function(){var o=this;return s(o.definition["$is_a?"](n(n(n("GxG"),"Database"),"DetachedHash")))?o.definition.$uuid():t}),o(f,"$search_resources",function(o){var l=this,r=t;return o==null&&(o=t),r=t,s(o["$is_any?"](n("String"),n("Symbol")))&&s(l.definition)&&function(){try{var e=c("break");return i(l.definition["$[]"]("content"),"search",[],function i(c,l,d){if(c==null&&(c=t),l==null&&(l=t),d==null&&(d=t),s(c["$is_a?"](n(n(n("GxG"),"Database"),"DetachedHash"))))if(a(o.$to_s().$to_sym(),c.$uuid().$to_s().$to_sym())||a(o.$to_s(),c.$title().$to_s()))r=c,e.$throw(t,i.$$is_lambda);else return t;else return t})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}(),r},-1),o(f,"$on",function e(o,i){var r=e.$$p||t,a=this;return e.$$p=null,o==null&&(o=t),i==null&&(i=!1),s(o["$is_any?"](n("String"),n("Symbol")))&&s(r["$respond_to?"]("call"))?(a.event_handlers["$[]="](o.$to_s().$downcase().$to_sym(),r),a.event_listeners["$[]="](o.$to_s().$downcase().$to_sym(),a.$method("event_handler").$to_proc()),a.$element().addEventListener(o.$to_s().$downcase(),a.event_listeners["$[]"](o.$to_s().$downcase().$to_sym()),i)):t},-1),o(f,"$remove_listener",function(n){var o=this;return n==null&&(n=t),s(o.event_handlers["$[]"](n.$to_s().$downcase().$to_sym()))&&s(o.event_listeners["$[]"](n.$to_s().$downcase().$to_sym()))&&(o.$element().removeEventListener(n.$to_s().$downcase(),o.event_listeners["$[]"](n.$to_s().$downcase().$to_sym())),o.event_handlers.$delete(n.$to_s().$downcase().$to_sym()),o.event_listeners.$delete(n.$to_s().$downcase().$to_sym())),!0},-1),o(f,"$event_handler",function(o){var c=this,a=t,i=t,r=t,l=t,d=t,a=o.type.$to_s().$downcase().$to_sym(),i=new Map;return s(c.event_handlers["$[]"](a))?(r=s(l=n(n(n(p("GxG"),"Gui"),"EventHandlers"),"EVENT_GENRES")["$[]"](a))?l:"event",s(r)&&(d=n(n(n(p("GxG"),"Gui"),"EventHandlers"),"EVENT_FIELDS")["$[]"](r),s(d)&&(serializer=function(t){if(t){var n={eventName:t.toString(),altKey:t.altKey,bubbles:t.bubbles,button:t.button,buttons:t.buttons,cancelBubble:t.cancelBubble,cancelable:t.cancelable,clientX:t.clientX,clientY:t.clientY,composed:t.composed,ctrlKey:t.ctrlKey,currentTarget:t.currentTarget?t.currentTarget.outerHTML:null,defaultPrevented:t.defaultPrevented,detail:t.detail,eventPhase:t.eventPhase,fromElement:t.fromElement?t.fromElement.outerHTML:null,isTrusted:t.isTrusted,layerX:t.layerX,layerY:t.layerY,metaKey:t.metaKey,movementX:t.movementX,movementY:t.movementY,offsetX:t.offsetX,offsetY:t.offsetY,pageX:t.pageX,pageY:t.pageY,relatedTarget:t.relatedTarget?t.relatedTarget.outerHTML:null,returnValue:t.returnValue,screenX:t.screenX,screenY:t.screenY,shiftKey:t.shiftKey,sourceCapabilities:t.sourceCapabilities?t.sourceCapabilities.toString():null,target:t.target?t.target.outerHTML:null,timeStamp:t.timeStamp,toElement:t.toElement?t.toElement.outerHTML:null,type:t.type,view:t.view?t.view.toString():null,which:t.which,x:t.x,y:t.y};return n}},i=JSON.stringify(serializer(o)),i=n("JSON").$parse(i.$to_s(),new Map([["symbolize_names",!0]])))),c.event_handlers["$[]"](a).$call(i)):t}),o(f,"$menu_item_select",function(n){return n==null&&(n=t),t},-1),o(f,"$run",function(o){var i=this;return o==null&&(o=new Map),s(o["$is_a?"](n("Hash")))&&a(o["$[]"]("restore"),!0)?i.$state_pull():t},-1),o(f,"$exitready?",function(t){return t==null&&(t=new Map),"ready"},-1),o(f,"$before_exit",function(t){return t==null&&(t=new Map),!0},-1),o(f,"$exit",function(o){var r=this;return o==null&&(o=new Map),i(n(p("GxG"),"CONNECTION"),"application_close",[new Map([["application",r.process]])],function e(o){var i=e.$$s==null?this:e.$$s;return i.process==null&&(i.process=t),o==null&&(o=t),s(o["$is_a?"](n("Hash")))?a(o["$[]"]("result"),!0)?n(p("GxG"),"APPLICATIONS")["$[]"]("processes").$delete(i.process):i.$log_warn("Could not close application "+i.process.$inspect()+" : "+o.$inspect()):i.$log_warn("Malformed response: "+o.$inspect())},{$$s:r}),!0},-1),o(f,"$window_close",function(o){var a=this,r=t;return o==null&&(o=new Map),s(o["$is_a?"](n("Hash")))?s(p("GxG")["$valid_uuid?"](o["$[]"]("window")))?(r=n(p("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$get_window(o["$[]"]("window")),s(r)?(i(a.viewports.$keys(),"each",[],function e(n){var i=e.$$s==null?this:e.$$s,o=t;return n==null&&(n=t),o=r.$find_child(n),s(o)?(o.$set_application(t),i.$unlink_viewport(n)):t},{$$s:a}),a.$unlink_window(r.$uuid()),n(p("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$window_close(r.$uuid()),s(l(a.windows.$size(),0))?t:a.$exit()):t):a.$log_warn("Invalid Argument passed: "+o.$inspect()):t},-1),o(f,"$viewport_clear",function(n){var r=this,o=t;return n==null&&(n=t),o=r.$get_viewport(n),!!s(o)&&(i(o,"gxg_each_child",[],function(n){return n==null&&(n=t),a(n,o)?t:n.$destroy()}),!0)},-1)}(f[0],null,f)}(d[0],d)},Opal.modules["web/gxg_vdom"]=function(e){var h=e.module,_=e.class_variable_set,s=e.truthy,a=e.eqeq,g=e.range,c=e.rb_plus,l=e.defs,f=e.klass,o=e.def,p=e.return_ivar,i=e.send,m=e.rb_minus,d=e.thrower,r=e.rb_gt,u=e.class_variable_get,v=e.return_val,b=e.Class,F=e.slice,j=e.send2,y=e.find_super,M=e.to_a,w=e.const_set,A=e.not,x=e.gvars,C=e.alias,E=e.rb_ge,S=e.neqeq,O=e.return_self,k=[],t=e.nil,n=e.$$$;return e.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,settings,register_object,values,call,clone,shift,children,each_child,clearning_queue,unregister_object,page,delete,every_child,remove_listeners,forget_child,parent,element,unshift,vdom_path,split,each_pair,last,has_key?,uuid,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(k,T){var D=h(k,"GxG"),z=[D].concat(T);return function(k,T){var D=h(k,"Gui"),z=[D].concat(T);return function(k,T){var N=h(k,"Vdom"),z=[N].concat(T),D=e.$r(z);return _(z[0],"@@CssCache",[]),_(z[0],"@@CssRuleProperties",new Map),l(N,"$load_font",function(o){var u,m,v,b,j,f=this,p=t,r=t,l=t,d=t,i=t,h=t;if(o==null&&(o=t),s(o["$is_any?"](n("Hash"),n(n(n("GxG"),"Database"),"DetachedHash"),n(n(n("GxG"),"Database"),"DetachedHash")))){if(s(o["$is_any?"](n(n(n("GxG"),"Database"),"DetachedHash"),n(n(n("GxG"),"Database"),"DetachedHash")))&&(o=o.$unpersist()),a(o["$[]"]("resource_type"),"font-face")){if(p=(s(r=o["$[]"]("font_family"))?r:"Unknown").$to_s(),l=(s(r=o["$[]"]("font_style"))?r:"normal").$to_s(),d=(s(r=o["$[]"]("font_weight"))?r:400).$to_s(),s(o["$[]"]("format")))i=o["$[]"]("format").$to_s().$downcase();else switch(D("File").$extname(o["$[]"]("source")).$downcase().valueOf()){case".ttf":case".otf":i="truetype";break;case".eot":i="embedded-opentype";break;case".svg":i="svg";break;case".woff":i="woff";break;case".woff2":i="woff2";break;default:i="unknown"}return s(["sftp:","ftp:/","http:","https"]["$include?"](o["$[]"]("source")["$[]"](g(0,4,!1)).$downcase()))?h=o["$[]"]("source"):h=c(n(n("GxG"),"CONNECTION").$relative_url().$to_s(),o["$[]"]("source")),v=p.$to_s(),u="url('"+h+"')",m="format('"+i+"')",m=="format('unknown')"?(b=u):(b=u+" "+m),d=d,l=l,j=new FontFace(v,u,{weight:d,style:l}),j.load().then(function(e){document.fonts.add(e)}).catch(function(e){alert(e)}),!0}return f.$log_warn("You attempted to load a non-font resource as a font: "+o.$inspect()),!1}else return f.$log_warn("You attempted to load a font with the wrong value: "+o.$inspect()),!1},-1),function(a,r,c){var l=f(a,r,"CSSRule"),u=[l].concat(c),h=e.$r(u),d=l.$$prototype;return d.native_rule=d.name=t,o(l,"$initialize",function(n){var o=this,i=t;return o.native_rule=n,o.name=(s(i=o.native_rule.selectorText)?i:"").$to_s().$to_sym()}),o(l,"$native_object",p("native_rule")),o(l,"$inspect",function(){var t=this;return"<CSSRule: "+t.name+">"}),o(l,"$name",p("name")),o(l,"$keys",function(){return n(n(h("GxG"),"Gui"),"Vdom").$valid_properties()}),o(l,"$[]",function(t){var n=this;return n.native_rule.style[t]}),o(l,"$[]=",function(n,o){var a=this,i=t;return a.native_rule.style[n]=s(i=o)?i:"",o}),o(l,"$merge",function(n){var s=this;return n==null&&(n=new Map),i(n.$keys(),"each",[],function e(s){var o,a=e.$$s==null?this:e.$$s;return s==null&&(s=t),(o=[s,n["$[]"](s)],i(a,"[]=",o),o[o.length-1])},{$$s:s}),s},-1)}(z[0],null,z),l(N,"$style_sheet",function(){var o=t,a=t,o=t,a=document.styleSheets.length.$to_i();return function(){try{var n=d("break");return i(e.Range.$new(0,m(a,1),!1),"each",[],function e(i){var a=t;if(i==null&&(i=t),a=document.styleSheets[i],s(a))if(s(a.href.$to_s()["$include?"]("/themes/page.css")))o=a,n.$throw(t,e.$$is_lambda);else return t;else return t})}catch(e){if(e===n)return e.$v;throw e}finally{n.is_orphan=!0}}(),o}),l(N,"$refresh_css_cache",function(){var a=t,l=t,c=t,u=t,h=t,d=t,a=n(n(D("GxG"),"Gui"),"Vdom").$style_sheet();if(s(a)){l=[];try{c=a.cssRules}catch(t){if(e.rescue(t,[D("Exception")])){u=t;try{c=a.rules}finally{e.pop_exception(t)}}else throw t}s(c)&&(h=c.length.$to_i(),s(r(h,0))?d=m(c.length.$to_i(),1):d=0,i(e.Range.$new(0,d,!1),"each",[],function(i){var r=t;i==null&&(i=t);try{r=a.cssRules[i]}catch(t){if(e.rescue(t,[D("Exception")])){u=t;try{r=a.rules[i]}finally{e.pop_exception(t)}}else throw t}return s(r)?l["$<<"](n(n(n(D("GxG"),"Gui"),"Vdom"),"CSSRule").$new(r)):t})),_(z[0],"@@CssCache",l)}return!0}),l(N,"$valid_properties",function(){return u(z[0],"@@CssRuleProperties",!1).$keys()}),l(N,"$get_property_name",function(o){var i=t;return o==null&&(o=t),i=t,s(o["$is_a?"](n("Symbol")))&&(i=u(z[0],"@@CssRuleProperties",!1)["$[]"](o)),i},-1),l(N,"$rules",function(){var n=t,n=[];return i(u(z[0],"@@CssCache",!1),"each",[],function(s){return s==null&&(s=t),n["$<<"](s.$name())}),n}),l(N,"$rule_names",function(){var n=t,n=[];return i(u(z[0],"@@CssCache",!1),"each",[],function(s){return s==null&&(s=t),n["$<<"](s.$name())}),n}),l(N,"$find_rule",function(n){var s=t;return n==null&&(n=t),s=[],i(u(z[0],"@@CssCache",!1),"each",[],function(o){return o==null&&(o=t),a(o.$name(),n.$to_s().$to_sym())?s["$<<"](o):t}),s},-1),l(N,"$clear_rules",function(){var s=t,s=n(n(n("GxG"),"Gui"),"Vdom").$rule_names();return i(s,"each",[],function(s){return s==null&&(s=t),a(s,".hidden")?t:n(n(n("GxG"),"Gui"),"Vdom").$remove_rule(s)}),!0}),l(N,"$set_rule",function(l,d,h){var j=this,f=t,y=t,v=t,p=t,b=t,_=t;if(l==null&&(l=t),d==null&&(d=new Map),h==null&&(h=new Map([["merge",!0]])),f=n(n(D("GxG"),"Gui"),"Vdom").$style_sheet(),s(f)){if(y=n(n(D("GxG"),"Gui"),"Vdom").$find_rule(l),s(r(y.$size(),0))&&n(n(D("GxG"),"Gui"),"Vdom").$remove_rule(l),v=n(n("GxG"),"CONNECTION").$relative_url(),p="{ ",i(d.$keys(),"each",[],function(o){var r=t,l=t,i=t;return o==null&&(o=t),r=d["$[]"](o).$to_s(),s(r["$include?"]("url("))&&(l=r.$index(")"),i=r["$[]"](e.Range.$new(4,m(l,1),!1)),(a(i["$[]"](0),"'")||a(i["$[]"](0),'"'))&&(i=i["$[]"](g(1,-1,!1))),(a(i["$[]"](-1),"'")||a(i["$[]"](-1),'"'))&&(i=i["$[]"](g(0,-2,!1))),s(i["$include?"]("data:"))||s(i["$include?"]("http:"))||s(i["$include?"]("https:"))||a(i["$[]"](e.Range.$new(0,m(v.$size(),1),!1)),v)||(r=c(c("url('",D("File").$expand_path(c(c(v,"/"),i))),"')").$gsub("//","/"))),p=c(p,""+o.$to_s()+": "+r.$to_s()+"; ")}),p=c(p," }"),a(f.insertRule(c(l.$to_s(),p.$to_s()),f.cssRules.length).$to_i(),(f.cssRules.length-1).$to_i())){try{b=f.cssRules[f.cssRules.length-1]}catch(t){if(e.rescue(t,[D("Exception")])){_=t;try{b=f.rules[f.cssRules.length-1]}finally{e.pop_exception(t)}}else throw t}return u(z[0],"@@CssCache",!1)["$<<"](n(n(n(D("GxG"),"Gui"),"Vdom"),"CSSRule").$new(b)),!0}return j.$log_warn("GxG Style Sheet Rule creation failed.."),!1}else return j.$log_warn("GxG Style Sheet not found."),!1},-1),l(N,"$remove_rule",function(c){var d=t,l=t;return c==null&&(c=t),d=[],i(u(z[0],"@@CssCache",!1),"each_with_index",[],function(n,s){return n==null&&(n=t),s==null&&(s=t),a(n.$name(),c.$to_s().$to_sym())||a(n.$name(),c.$to_s())?d["$<<"](s):t}),l=[],i(d.$reverse(),"each",[],function(n){return n==null&&(n=t),l["$<<"](u(z[0],"@@CssCache",!1).$delete_at(n))}),!!s(r(l.$size(),0))&&(i(l,"each",[],function(a){var d=t,c=t,l=t;return a==null&&(a=t),d=a.$native_object(),c=n(n(D("GxG"),"Gui"),"Vdom").$style_sheet(),s(c)?(l=c.cssRules.length.$to_i(),s(r(l,0))?i(e.Range.$new(0,m(l,1),!1).$to_a().$reverse(),"each",[],function(n){var o=t;return n==null&&(n=t),o=c.cssRules[n],s(o)&&s(d.selectorText==o.selectorText)?c.deleteRule(n):t}):t):t}),!0)},-1),function(l,u){var f=h(l,"ElementMethods"),w=[f].concat(u),_=e.$r(w);return o(f,"$_before_create",v(t)),o(f,"$before_create",v(t)),o(f,"$create",function(){var n=this;return n.domtype==null&&(n.domtype=t),n.parent==null&&(n.parent=t),n.options==null&&(n.options=t),s(n.domtype)?n.element=n.$factory().$create_element(n,n.domtype,n.parent,n.options):t}),o(f,"$_after_create",function(){var t=this;return t.$update_classes(),t.$_stylize()}),o(f,"$after_create",v(t)),o(f,"$style",function(){var n=this,o=t;return n.style==null&&(n.style=t),n.style=s(o=n.style)?o:new Map}),o(f,"$_stylize",function(){var s=this,n=t,n=s.$style();return a(n.$class(),_("Hash"))?s.$set_attribute("style",i(n,"map",[],function(n,s){return n==null&&(n=t),s==null&&(s=t),""+n+":"+s+";"}).$join()):t}),o(f,"$cascade",v(t)),o(f,"$creation",function(){var t=this;return t.$_before_create(),t.$before_create(),t.$create(),t.$_after_create(),t.$after_create(),t.$_stylize(),t.$cascade()}),o(f,"$add_child",function(o,i){var c=this,r=t,l=t;return c.children==null&&(c.children=t),o==null&&(o=new Map),i==null&&(i=new Map),r=t,a(o["$[]"]("component").$to_s().$downcase().$to_sym(),"unknown")?c.$raise("Unknown Component Type"):(l=n(_("GxG"),"Gui").$component_class(o["$[]"]("component").$to_s().$downcase().$to_sym()),s(l["$is_a?"](b))?(r=l.$new(c,o,i),c.children["$[]="](r.$title().$to_s().$to_sym(),r),s(i["$[]"]("template_uuid"))&&r.$settings()["$[]="]("template_uuid",i["$[]"]("template_uuid")),n(n("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$register_object(r.$title(),r)):c.$raise("Unknown Component Type")),r},-1),o(f,"$each_child",function e(){var s=e.$$p||t,n=this;return n.children==null&&(n.children=t),e.$$p=null,i(n.children.$values(),"each",[],function(n){return n==null&&(n=t),s.$call(n)})}),o(f,"$all_descendants",function e(){var a=e.$$p||t,n=this,o=t;for(n.children==null&&(n.children=t),n.process_queue==null&&(n.process_queue=t),e.$$p=null,n.process_queue=n.children.$values().$clone();s(r(n.process_queue.$size(),0));)o=n.process_queue.$shift(),s(o)&&(a.$call(o),s(r(o.$children().$values().$size(),0))&&i(o,"each_child",[],function e(n){var s=e.$$s==null?this:e.$$s;return s.process_queue==null&&(s.process_queue=t),n==null&&(n=t),s.process_queue["$<<"](n)},{$$s:n}))}),o(f,"$forget_children",function(){var n=this,a=t,o=t;for(n.children==null&&(n.children=t),a=n.children.$values();s(r(n.$clearning_queue().$size(),0));)o=a.$shift(),s(o)&&(i(o.$children().$values(),"each",[],function(n){return n==null&&(n=t),a["$<<"](n)}),n.$page().$unregister_object(o.$title().$to_s()));return n.children=new Map}),o(f,"$forget_child",function(n){var s=this;return s.children==null&&(s.children=t),s.$page().$unregister_object(n),s.children.$delete(n.$to_s().$to_sym())}),o(f,"$entity_content",function(){var n=this;return n.children==null&&(n.children=t),n.children.$values()}),o(f,"$destroy",function(){var n=this;return n.title==null&&(n.title=t),i(n,"every_child",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),n.$remove_listeners(),s.$page().$unregister_object(n.$title().$to_s())},{$$s:n}),n.$remove_listeners(),n.$parent().$forget_child(n.title.$to_s()),n.$parent().$element().removeChild(n.$element()),!0}),o(f,"$vdom_path",function(){var o=this,d=t,i=t,l=t,n=t;if(o.parent==null&&(o.parent=t),d="/",s(o.parent)){for(i=[],l=[o];s(r(l.$size(),0));)n=l.$unshift(),s(n)&&(a(o.$page(),n)||i["$<<"](n.$title().$to_s()),s(n.$parent())&&l["$<<"](n.$parent()));s(r(i.$size(),0))&&(d=c("/",i.$reverse().$join("/")))}return d}),o(f,"$vdom_object",function(n){var u=this,c=t,l=t,o=t;return n==null&&(n=t),c=t,s(n)&&(n=n.$to_s(),(a(n["$[]"](g(0,1,!1)),"./")||a(n["$[]"](g(0,1,!1)),".."))&&(n=_("File").$expand_path(n,u.$vdom_path())),l=n.$split("/"),o=[],function(){try{var e=d("break");return i(l,"each_with_index",[],function n(c,u){var h,f=n.$$s==null?this:n.$$s;if(c==null&&(c=t),u==null&&(u=t),a(c,"")){if(a(u,0))return h=[u,f.$page()],i(o,"[]=",h),h[h.length-1];e.$throw(t,n.$$is_lambda)}else return s(r(u,0))&&s(o["$[]"](m(u,1)))?function(){try{var e=d("break");return i(o["$[]"](m(u,1)).$children(),"each_pair",[],function n(s,i){if(s==null&&(s=t),i==null&&(i=t),a(s,l["$[]"](u)))o["$[]="](u,i),e.$throw(t,n.$$is_lambda);else return t})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}():t},{$$s:u})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}(),s(o.$last())&&(c=o.$last())),c},-1),o(f,"$method_missing",function e(n){var a,r,c=e.$$p||t,i=this;return i.children==null&&(i.children=t),e.$$p=null,a=F(arguments,1),r=a,s(i.children["$has_key?"](n))?i.children["$[]"](n):j(i,y(i,"method_missing",e,!1,!0),"method_missing",[n].concat(M(r)),c)},-2),o(f,"$dom_id",function(){var t=this;return t.$uuid().$to_s()}),o(f,"$title",p("title")),o(f,"$update_classes",function(){var o=this,n=t,l=t;return o.element==null&&(o.element=t),o.states==null&&(o.states=t),n="",l=o.element.className.$split(" "),i(l,"each_with_index",[],function e(o,i){var r=e.$$s==null?this:e.$$s;return r.states==null&&(r.states=t),o==null&&(o=t),i==null&&(i=t),s(r.states.$keys()["$include?"](o.$to_s().$to_sym()))?t:(n=c(n,o),a(o,l.$last())?t:n=c(n," "))},{$$s:o}),s(r(o.states.$keys().$size(),0))&&(n=c(n," ")),i(o.states,"each_pair",[],function e(s,o){var i=e.$$s==null?this:e.$$s;return i.states==null&&(i.states=t),s==null&&(s=t),o==null&&(o=t),a(o,!0)?(n=c(n,s.$to_s()),a(i.states.$keys().$last(),s)?t:n=c(n," ")):t},{$$s:o}),o.element.className=n.$to_s(),!0}),o(f,"$option_replace",function(n,o){var i=this,a=t,r=t;return i.options==null&&(i.options=t),o==null&&(o=t),a=s(r=i.options["$[]"](n))?r:o,s(i.options["$has_key?"](n))&&i.options.$delete(n),a},-2),o(f,"$set_state",function(n,s){var o=this;return o.states==null&&(o.states=t),s==null&&(s=!1),a(s,!0)?o.states["$[]="](n.$to_s().$to_sym(),!0):o.states["$[]="](n.$to_s().$to_sym(),!1),o.$update_classes()},-2),o(f,"$set_states",function(n){var s=this;return n==null&&(n=new Map),i(n,"each_pair",[],function e(n,s){var o,r=e.$$s==null?this:e.$$s;return r.states==null&&(r.states=t),n==null&&(n=t),s==null&&(s=t),a(s,!0)?(o=[n.$to_s().$to_sym(),!0],i(r.states,"[]=",o),o[o.length-1]):(o=[n.$to_s().$to_sym(),!1],i(r.states,"[]=",o),o[o.length-1])},{$$s:s}),s.$update_classes()},-1),o(f,"$get_state",function(n){var o=this,i=t;return o.states==null&&(o.states=t),!!s(i=o.states["$[]"](n.$to_s().$to_sym()))&&i}),o(f,"$get_states",p("states")),o(f,"$toggle_state",function(t){var n=this;return n.$set_state(t,n.$get_state(t)["$!"]())}),o(f,"$set_application",function(n){var s=this;return n==null&&(n=t),s.application=n},-1),o(f,"$application",p("application")),o(f,"$state_active?",function(n){var s=this;return s.states==null&&(s.states=t),s.states.$keys()["$include?"](n.$to_s().$to_sym())}),o(f,"$add_states",function(n){var s=this;return i(n,"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s.$add_state(n)},{$$s:s})}),o(f,"$add_state",function(t,n){var s=this;return n==null&&(n=!1),s.$set_state(t,n)},-2),o(f,"$value",function(){var n=this;return n.element==null&&(n.element=t),n.element.innerHTML}),o(f,"$get_text",function(){var n=this;return n.element==null&&(n.element=t),n.element.textContent}),o(f,"$value=",function(n){var s=this;return s.element==null&&(s.element=t),s.element.value=n}),o(f,"$set_text",function(n){var s=this;return s.element==null&&(s.element=t),s.element.textContent=n}),o(f,"$html",function(n){var s=this;return s.element==null&&(s.element=t),s.element.innerHTML=n}),o(f,"$set_style",function(o){var r=this,a=t;return r.element==null&&(r.element=t),o==null&&(o=new Map),a="",!!s(o["$is_a?"](n("Hash")))&&(i(o,"each_pair",[],function(n,s){return n==null&&(n=t),s==null&&(s=t),a=c(c(a,""+n.$to_s()+": "),""+s.$to_s()+";")}),r.element.setAttribute("style",a),!0)},-1),o(f,"$merge_style",function(o){var a=this;return o==null&&(o=new Map),!!s(o["$is_a?"](n("Hash")))&&(i(o,"each_pair",[],function e(n,s){var o=e.$$s==null?this:e.$$s;return n==null&&(n=t),s==null&&(s=t),o.$element().style[n]=s.$to_s()},{$$s:a}),!0)},-1),o(f,"$set_bg_color",function(t){var n=this;return t==null&&(t=0),n.$merge_style(new Map([["background-color","#"+t.$to_s()]]))},-1),o(f,"$get_attribute",function(n){var r=this,a=t,o=t,i=t;return n==null&&(n=t),a="",s(n)&&(o=r.$element(),i=t,o.getAttributeNames().includes(n)&&(o.getAttribute(n)!=null?i=o.getAttribute(n):i=!0),a=i.$to_s()),a},-1),o(f,"$set_attribute",function(n,o){var a=this,i=t;return n==null&&(n=t),o==null&&(o=t),i=!1,s(n)&&(s(o)?i=a.$element().setAttribute(n,o):i=a.$element().setAttribute(n,null)),i},-1),o(f,"$clear_attribute",function(n){var i=this,o=t;return n==null&&(n=t),o=!1,s(n)&&(i.$element().removeAttribute(n),o=!0),o},-1),o(f,"$each_child",function e(){var o=e.$$p||t,n=this;return n.children==null&&(n.children=t),e.$$p=null,s(o["$respond_to?"]("call"))?i(n.children.$values(),"each",[],function(n){return n==null&&(n=t),o.$call(n)}):n.children.$values().$each()}),o(f,"$every_child",function e(){var c=e.$$p||t,l=this,n=t,o=t,a=t;for(e.$$p=null,n=[],o=[l];s(r(o.$size(),0));)a=o.$shift(),s(a)&&s(r(a.$children().$keys().$size(),0))&&i(a.$children().$values(),"each",[],function(i){return i==null&&(i=t),n["$<<"](i),s(r(i.$children().$keys().$size(),0))?o["$<<"](i):t});return s(c["$respond_to?"]("call"))?i(n,"each",[],function(n){return n==null&&(n=t),c.$call(n)}):n.$values().$each()}),o(f,"$find_child",function(n){var l=this,i=t,c=t,o=t;for(n==null&&(n=t),i=t,c=l.$children().$values();s(r(c.$size(),0));)if(o=c.$shift(),s(o)&&(a(o.$uuid(),n)||a(o.$title(),n)||a(o.$component(),n)||a(o.$class(),n)||a(o.$domtype(),n))){i=o;break}return i},-1),o(f,"$find_descendant",function(n){var d=this,c=t,l=t,o=t;for(n==null&&(n=t),c=t,l=d.$children().$values();s(r(l.$size(),0));)if(o=l.$shift(),s(o)){if(a(o.$uuid(),n)||a(o.$title(),n)||a(o.$component(),n)||a(o.$class(),n)||a(o.$domtype(),n)){c=o;break}s(c)||i(o.$children().$values(),"each",[],function(n){return n==null&&(n=t),l["$<<"](n)})}return c},-1),o(f,"$find_descendants",function(n){var d=this,l=t,c=t,o=t;for(n==null&&(n=t),l=[],c=d.$children().$values();s(r(c.$size(),0));)o=c.$shift(),s(o)&&((a(o.$uuid(),n)||a(o.$title(),n)||a(o.$component(),n)||a(o.$class(),n)||a(o.$domtype(),n))&&l["$<<"](o),i(o.$children().$values(),"each",[],function(n){return n==null&&(n=t),c["$<<"](n)}));return l},-1),o(f,"$find_ancestor",function(n){var l=this,c=t,i=t,o=t;for(n==null&&(n=t),c=t,i=[l.$parent()];s(r(i.$size(),0));)if(o=i.$shift(),s(o)){if(a(o.$uuid(),n)||a(o.$title(),n)||a(o.$component(),n)||a(o.$class(),n)||a(o.$domtype(),n)){c=o;break}a(o.$component(),"page")||i["$<<"](o.$parent())}return c},-1),o(f,"$find_ancestors",function(n){var l=this,c=t,i=t,o=t;for(n==null&&(n=t),c=[],i=[l.$parent()];s(r(i.$size(),0));)o=i.$shift(),s(o)&&((a(o.$uuid(),n)||a(o.$title(),n)||a(o.$component(),n)||a(o.$class(),n)||a(o.$domtype(),n))&&c["$<<"](o),a(o.$component(),"page")||i["$<<"](o.$parent()));return c},-1)}(z[0],z),function(a,c){var l=h(a,"EventHandlers"),d=[l].concat(c),u=e.$r(d);return w(d[0],"EVENT_TYPES",e.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(d[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(d[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"]]])),o(l,"$on",function e(o,i){var c=e.$$p||t,a=this,r=t;return a.event_handlers==null&&(a.event_handlers=t),a.event_listeners==null&&(a.event_listeners=t),e.$$p=null,o==null&&(o=t),i==null&&(i=!1),r=!1,s(a.event_handlers["$is_a?"](n("Hash")))||(a.event_handlers=new Map,a.event_listeners=new Map),s(o["$is_any?"](n("String"),n("Symbol")))&&s(c["$respond_to?"]("call"))&&(a.event_handlers["$[]="](o.$to_s().$downcase().$to_sym(),c),a.event_listeners["$[]="](o.$to_s().$downcase().$to_sym(),a.$method("event_handler").$to_proc()),a.$element().addEventListener(o.$to_s().$downcase(),a.event_listeners["$[]"](o.$to_s().$downcase().$to_sym()),i),r=!0),r},-1),o(l,"$remove_listener",function(n){var o=this;return o.event_listeners==null&&(o.event_listeners=t),o.event_handlers==null&&(o.event_handlers=t),n==null&&(n=t),s(o.event_handlers["$[]"](n.$to_s().$downcase().$to_sym()))&&s(o.event_listeners["$[]"](n.$to_s().$downcase().$to_sym()))&&(o.$element().removeEventListener(n.$to_s().$downcase(),o.event_listeners["$[]"](n.$to_s().$downcase().$to_sym())),o.event_handlers.$delete(n.$to_s().$downcase().$to_sym()),o.event_listeners.$delete(n.$to_s().$downcase().$to_sym())),!0},-1),o(l,"$remove_listeners",function(){var n=this;return n.event_handlers==null&&(n.event_handlers=t),i(n.event_handlers.$keys().$clone(),"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s.$remove_listener(n)},{$$s:n}),!0}),o(l,"$event_handler",function(o){var a=this,r=t,i=t,c=t,l=t,d=t;return a.event_handlers==null&&(a.event_handlers=t),r=o.type.$to_s().$downcase().$to_sym(),i=new Map,s(a.event_handlers["$[]"](r))?(c=s(l=n(n(n(n(u("GxG"),"Gui"),"Vdom"),"EventHandlers"),"EVENT_GENRES")["$[]"](r))?l:"event",s(c)&&(d=n(n(n(n(u("GxG"),"Gui"),"Vdom"),"EventHandlers"),"EVENT_FIELDS")["$[]"](c),s(d)&&(serializer=function(t){if(t){var n={eventName:t.toString(),altKey:t.altKey,bubbles:t.bubbles,button:t.button,buttons:t.buttons,cancelBubble:t.cancelBubble,cancelable:t.cancelable,clientX:t.clientX,clientY:t.clientY,composed:t.composed,ctrlKey:t.ctrlKey,currentTarget:t.currentTarget?t.currentTarget.outerHTML:null,defaultPrevented:t.defaultPrevented,detail:t.detail,eventPhase:t.eventPhase,fromElement:t.fromElement?t.fromElement.outerHTML:null,isTrusted:t.isTrusted,layerX:t.layerX,layerY:t.layerY,metaKey:t.metaKey,movementX:t.movementX,movementY:t.movementY,offsetX:t.offsetX,offsetY:t.offsetY,pageX:t.pageX,pageY:t.pageY,relatedTarget:t.relatedTarget?t.relatedTarget.outerHTML:null,returnValue:t.returnValue,screenX:t.screenX,screenY:t.screenY,shiftKey:t.shiftKey,sourceCapabilities:t.sourceCapabilities?t.sourceCapabilities.toString():null,target:t.target?t.target.outerHTML:null,timeStamp:t.timeStamp,toElement:t.toElement?t.toElement.outerHTML:null,type:t.type,view:t.view?t.view.toString():null,which:t.which,x:t.x,y:t.y};return n}},i=JSON.stringify(serializer(o)),i=n("JSON").$parse(i.$to_s(),new Map([["symbolize_names",!0]])))),a.event_handlers["$[]"](r).$call(i)):t}),o(l,"$set_script",function(o,i){var a=this,c=t,l=t;if(o==null&&(o=""),i==null&&(i=t),c=!1,s(r(o.$size(),0)))try{s(o["$base64?"]())&&(o=o.$decode64()),s(i)?(i.$remove_listeners(),i.$instance_eval(o)):(a.$remove_listeners(),a.$instance_eval(o)),c=!0}catch(t){if(e.rescue(t,[u("Exception")])){l=t;try{a.$log_error(new Map([["error",l],["parameters",new Map([["script",o]])]]))}finally{e.pop_exception(t)}}else throw t}return c},-1)}(z[0],z),function(c,l,d){var u=f(c,l,"Animation"),v=[u].concat(d),h=e.$r(v),g=u.$$prototype;return g.target_list=g.targets=g.origin=g.destination=g.options=g.tweens=t,u.$include(n(n(n(h("GxG"),"Gui"),"Vdom"),"EventHandlers")),o(u,"$initialize",function(o,a){var r=this,c=t,l=t,d=t;return o==null&&(o=new Map),a==null&&(a=t),r.event_handlers=new Map,r.event_listeners=new Map,s(o["$is_any?"](n("Hash"),n(n(n("GxG"),"Database"),"DetachedHash")))&&(s(o["$[]"]("origin"))?s(o["$[]"]("origin")["$is_a?"](n(n(n("GxG"),"Database"),"DetachedHash")))?r.origin=o["$[]"]("origin").$unpersist():r.origin=o["$[]"]("origin"):r.origin=t,s(o["$[]"]("destination"))||r.$raise(h("ArgumentError"),"You MUST provide a :destination state for the object."),s(o["$[]"]("destination")["$is_a?"](n(n(n("GxG"),"Database"),"DetachedHash")))?r.destination=o["$[]"]("destination").$unpersist():r.destination=o["$[]"]("destination"),s(o["$[]"]("options"))?(r.options=new Map,s(o["$[]"]("options")["$is_a?"](n(n(n("GxG"),"Database"),"DetachedHash")))?c=o["$[]"]("options").$unpersist():c=o["$[]"]("options"),l=new Map([["animationstart","start"],["animationend","complete"],["animationiteration","update"],["animationstop","stop"],["animationpause","pause"],["animationresume","resume"]]),i(c,"each_pair",[],function e(n,o){var a,r=e.$$s==null?this:e.$$s;return r.event_handlers==null&&(r.event_handlers=t),r.options==null&&(r.options=t),n==null&&(n=t),o==null&&(o=t),s(l.$keys()["$include?"](n))?s(o["$respond_to?"]("call"))?(r.event_handlers["$[]="](n,o),(a=[n,o],i(r.options,"[]=",a),a[a.length-1])):r.$log_warn("Attempted to pass an invalid object as an event handler. "+n.$inspect()+" --> "+o.$inspect()):(a=[n,o],i(r.options,"[]=",a),a[a.length-1])},{$$s:r})):r.options=t,s(o["$[]"]("targets"))||r.$raise(h("ArgumentError"),"You MUST provide a one or more :targets."),s(o["$[]"]("targets")["$is_a?"](n(n(n("GxG"),"Database"),"DetachedHash")))?r.target_list=o["$[]"]("targets").$unpersist():r.target_list=o["$[]"]("targets")),r.uuid=(s(d=a)?d:n("GxG").$uuid_generate()).$to_s().$to_sym(),r.targets=t,r.tweens=[],r},-1),o(u,"$update_targets",function(o){var a=this,i=t;return o==null&&(o=t),i=!1,s(o["$is_any?"](n("Hash"),n(n(n("GxG"),"Database"),"DetachedHash")))&&(s(o["$is_a?"](n(n(n("GxG"),"Database"),"DetachedHash")))?a.target_list=o.$unpersist():a.target_list=o,i=!0),i},-1),o(u,"$update_origin",function(o){var a=this,i=t;return o==null&&(o=t),i=!1,s(o["$is_any?"](n("Hash"),n(n(n("GxG"),"Database"),"DetachedHash")))&&(s(o["$is_a?"](n(n(n("GxG"),"Database"),"DetachedHash")))?a.origin=o.$unpersist():a.origin=o,i=!0),i},-1),o(u,"$update_destination",function(o){var a=this,i=t;return o==null&&(o=t),i=!1,s(o["$is_any?"](n("Hash"),n(n(n("GxG"),"Database"),"DetachedHash")))&&(s(o["$is_a?"](n(n(n("GxG"),"Database"),"DetachedHash")))?a.destination=o.$unpersist():a.destination=o,i=!0),i},-1),o(u,"$update_options",function(o){var c=this,a=t,r=t,l=t;return o==null&&(o=t),a=!1,s(o["$is_any?"](n("Hash"),n(n(n("GxG"),"Database"),"DetachedHash")))&&(s(o["$is_a?"](n(n(n("GxG"),"Database"),"DetachedHash")))?r=o.$unpersist():r=o,c.options=new Map,l=new Map([["animationstart","start"],["animationend","complete"],["animationiteration","update"],["animationstop","stop"],["animationpause","pause"],["animationresume","resume"]]),i(r,"each_pair",[],function e(n,o){var a,r=e.$$s==null?this:e.$$s;return r.event_handlers==null&&(r.event_handlers=t),r.options==null&&(r.options=t),n==null&&(n=t),o==null&&(o=t),s(l.$keys()["$include?"](n))?s(o["$respond_to?"]("call"))?(r.event_handlers["$[]="](n,o),(a=[n,o],i(r.options,"[]=",a),a[a.length-1])):r.$log_warn("Attempted to pass an invalid object as an event handler. "+n.$inspect()+" --> "+o.$inspect()):(a=[n,o],i(r.options,"[]=",a),a[a.length-1])},{$$s:c}),a=!0),a},-1),o(u,"$uuid",p("uuid")),o(u,"$compile",function(){var c=this,f=t,g=t,d=t,u=t,l=t,p=t,v=t,f=!1;try{c.targets=[],g=[],i(c.target_list.$keys(),"each",[],function o(c){var l=o.$$s==null?this:o.$$s;return l.target_list==null&&(l.target_list=t),c==null&&(c=t),a(c,"class")&&(s(l.target_list["$[]"]("class")["$is_a?"](n("String")))||l.$raise(h("Exception"),"You MUST provide :class target as a String, not: "+l.target_list["$[]"]("class").$class().$inspect()),i(l.target_list["$[]"]("class").$split(" "),"each",[],function n(o){var l=n.$$s==null?this:n.$$s,a=t,c=t;return o==null&&(o=t),s(r(o.$size(),0))?(a=document.getElementsByClassName(o),c=a.length.$to_i(),s(r(c,0))?i(e.Range.$new(0,m(c,1),!1),"each",[],function e(n){var o=e.$$s==null?this:e.$$s,i=t;return o.targets==null&&(o.targets=t),n==null&&(n=t),i=a.item(n),s(o.targets["$include?"](i))?t:o.targets["$<<"](i)},{$$s:l}):t):t},{$$s:l})),a(c,"objects")&&(s(l.target_list["$[]"]("objects")["$is_a?"](n("Array")))||l.$raise(h("Exception"),"You MUST provide :object target list as an Array, not: "+l.target_list["$[]"]("objects").$class().$inspect()),i(l.target_list["$[]"]("objects"),"each",[],function e(o){var i=e.$$s==null?this:e.$$s,r=t,c=t,a=t;return i.targets==null&&(i.targets=t),o==null&&(o=t),r=n(h("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$find_object(o.$to_s().$to_sym()),s(r)?(c=r.$element().attributes.getNamedItem("id")||0,s(c==0)?t:(a=document.getElementById(c),s(a)?s(i.targets["$include?"](a))?t:i.targets["$<<"](a):t)):t},{$$s:l})),a(c,"elements")&&(s(l.target_list["$[]"]("elements")["$is_a?"](n("Array")))||l.$raise(h("Exception"),"You MUST provide :elements target list as an Array, not: "+l.target_list["$[]"]("elements").$class().$inspect()),i(l.target_list["$[]"]("elements"),"each",[],function e(n){var i=e.$$s==null?this:e.$$s,o=t,a=t;return i.targets==null&&(i.targets=t),n==null&&(n=t),o=n.attributes.getNamedItem("id")||0,s(o==0)?t:(o=o.value,a=document.getElementById(o),s(a)?s(i.targets["$include?"](a))?t:i.targets["$<<"](a):t)},{$$s:l})),(a(c,"assets"),t)},{$$s:c}),s(r(c.targets.$size(),0))||c.$puts("No valid targets resulted."),i(c.targets,"each",[],function(n){return n==null&&(n=t),g.push(n)}),s(c.origin["$is_a?"](n("Hash")))?s(r(c.origin.$size(),0))?(d=new Map,i(c.origin,"each_pair",[],function(n,s){var o,r=t;return n==null&&(n=t),s==null&&(s=t),a(n,"attribue")||a(n,"attribute")?r="attr":r=n,(o=[r,s],i(d,"[]=",o),o[o.length-1])})):d=t:d=t,s(r(c.destination.$size(),0))?(u=new Map,i(c.destination,"each_pair",[],function(n,s){var o,r=t;return n==null&&(n=t),s==null&&(s=t),a(n,"attribue")||a(n,"attribute")?r="attr":r=n,(o=[r,s],i(u,"[]=",o),o[o.length-1])})):c.$raise(h("Exception"),"You MUST define a valid :destination state. not: "+c.destination.$inspect()),s(c.options["$is_a?"](n("Hash")))?s(r(c.options.$size(),0))?(l=new Map,p=new Map([["animationstart","start"],["animationend","complete"],["animationiteration","update"],["animationstop","stop"],["animationpause","pause"],["animationresume","resume"]]),i(c.options,"each_pair",[],function e(n,o){var a,r=e.$$s==null?this:e.$$s,c=t;return r.event_handlers==null&&(r.event_handlers=t),n==null&&(n=t),o==null&&(o=t),s(p.$keys()["$include?"](n))?(c=p["$[]"](n),s(r.event_handlers["$[]"](n)["$respond_to?"]("call"))?(a=[c,r.event_handlers["$[]"](n)],i(l,"[]=",a),a[a.length-1]):t):s(["start_time"]["$include?"](n))?t:(a=[n,o],i(l,"[]=",a),a[a.length-1])},{$$s:c})):l=t:l=t,c.tweens=[],i(c.targets,"each",[],function e(n){var o=e.$$s==null?this:e.$$s;return o.tweens==null&&(o.tweens=t),n==null&&(n=t),s(d)?s(l)?o.tweens["$<<"](KUTE.fromTo(n,d.$to_n(),u.$to_n(),l.$to_n())):o.tweens["$<<"](KUTE.fromTo(n,d.$to_n(),u.$to_n())):s(l)?o.tweens["$<<"](KUTE.to(n,u.$to_n(),l.$to_n())):o.tweens["$<<"](KUTE.to(n,u.$to_n()))},{$$s:c}),f=!0}catch(n){if(e.rescue(n,[h("Exception")])){v=n;try{c.$log_error(new Map([["error",v]])),c.targets=t,c.tweens=[]}finally{e.pop_exception(n)}}else throw n}return f}),o(u,"$start",function(o){var a=this;return o==null&&(o=t),s(r(a.tweens.$size(),0))||a.$compile(),s(o["$is_a?"](n("Numeric")))||(o=window.performance.now()),s(r(a.tweens.$size(),0))?i(a.tweens,"each",[],function(n){return n==null&&(n=t),n.start(o)}):t},-1),o(u,"$stop",function(){var n=this;return s(r(n.tweens.$size(),0))?i(n.tweens,"each",[],function(n){return n==null&&(n=t),n.stop()}):t}),o(u,"$pause",function(){var n=this;return s(r(n.tweens.$size(),0))?i(n.tweens,"each",[],function(n){return n==null&&(n=t),n.pause()}):t}),o(u,"$resume",function(){var n=this;return s(r(n.tweens.$size(),0))?i(n.tweens,"each",[],function(n){return n==null&&(n=t),n.resume()}):t}),o(u,"$included",function(){var a=this,o=t,o=[];return s(a.targets)&&i(a.targets,"each",[],function(i){var a=t,r=t;return i==null&&(i=t),a=i.attributes.getNamedItem("id")||0,s(a==0)?t:(a=a.value,r=n(h("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$find_child(a.$to_s()),s(r)?o["$<<"](r):t)}),o}),o(u,"$each_included",function e(){var n=e.$$p||t,o=this;return e.$$p=null,s(n["$respond_to?"]("call"))?i(o.$included(),"each",[],function(s){return s==null&&(s=t),n.$call(s)}):o.$included().$each()}),o(u,"$broadcast",function(n,s){var o=this;return n==null&&(n=t),s==null&&(s=t),i(o,"each_included",[],function(o){return o==null&&(o=t),o.$send(n,s)})},-1)}(z[0],null,z),function(a,r){var l=h(a,"AnimationSupport"),d=[l].concat(r),c=e.$r(d);return o(l,"$animate",function(o){var r=this,i=t,a=t;return o==null&&(o=t),s(o["$[]"]("destination")["$is_any?"](n("Hash"),n(n(n("GxG"),"Database"),"DetachedHash")))?(i=n(n(n(n("GxG"),"Gui"),"Vdom"),"Animation").$new(new Map([["targets",new Map([["elements",[r.$element()]]])],["origin",o["$[]"]("origin")],["destination",o["$[]"]("destination")],["options",o["$[]"]("options")]])),a=window.performance.now(),s(o["$[]"]("options")["$is_any?"](n("Hash"),n(n(n("GxG"),"Database"),"DetachedHash")))&&(a=o["$[]"]("options")["$[]"]("start_time")),i.$compile(),i.$start(a),!0):(r.$log_warn("Ignoring invalid animation: NO valid :destination state specified (required). not: "+o["$[]"]("destination").$inspect()),!1)},-1),o(l,"$show",function e(o){var r=e.$$p||t,a=this;return e.$$p=null,o==null&&(o=t),s(o["$is_any?"](n("Hash"),n(n(n("GxG"),"Database"),"DetachedHash")))?(s(o["$is_a?"](n(n(n("GxG"),"Database"),"DetachedHash")))&&(o=o.$unpersist()),s(o["$[]"]("destination")["$is_a?"](n("Hash")))&&s(o["$[]"]("destination")["$[]"]("opacity")["$is_a?"](n("Numeric")))&&(s(o["$[]"]("origin")["$is_a?"](n("Hash")))?s(o["$[]"]("origin")["$[]"]("opacity")["$is_a?"](n("Numeric")))?a.$merge_style(new Map([["opacity",o["$[]"]("origin")["$[]"]("opacity")]])):a.$merge_style(new Map([["opacity",0]])):a.$merge_style(new Map([["opacity",0]]))),a.$set_state("hidden",!1),s(r["$respond_to?"]("call"))&&(s(o["$[]"]("options"))||o["$[]="]("options",new Map),o["$[]"]("options")["$[]="]("animationend",i(c("Proc"),"new",[],function(){return r.$call()}))),a.$animate(o)):(a.$set_state("hidden",!1),s(r["$respond_to?"]("call"))&&r.$call()),n(n("GxG"),"Gui").$layout_refresh(),!0},-1),o(l,"$hide",function e(o){var l=e.$$p||t,a=this,r=t,d=t;return e.$$p=null,o==null&&(o=t),s(o["$is_any?"](n("Hash"),n(n(n("GxG"),"Database"),"DetachedHash")))?(s(o["$is_a?"](n(n(n("GxG"),"Database"),"DetachedHash")))&&(o=o.$unpersist()),s(l["$respond_to?"]("call"))?(s(o["$[]"]("options"))||o["$[]="]("options",new Map),o["$[]"]("options")["$[]="]("animationend",i(c("Proc"),"new",[],function e(){var t=e.$$s==null?this:e.$$s;return t.$set_state("hidden",!0),l.$call()},{$$s:a}))):(r=t,s(o["$[]"]("options"))?s(o["$[]"]("options")["$[]"]("animationend")["$respond_to?"]("call"))?(d=o["$[]"]("options")["$[]"]("animationend"),r=i(c("Proc"),"new",[],function e(){var t=e.$$s==null?this:e.$$s;return d.$call(),t.$set_state("hidden",!0)},{$$s:a})):r=i(c("Proc"),"new",[],function e(){var t=e.$$s==null?this:e.$$s;return t.$set_state("hidden",!0)},{$$s:a}):(o["$[]="]("options",new Map),r=i(c("Proc"),"new",[],function e(){var t=e.$$s==null?this:e.$$s;return t.$set_state("hidden",!0)},{$$s:a})),s(r)&&(s(o["$[]"]("options")["$is_a?"](n("Hash")))||o["$[]="]("options",new Map),o["$[]"]("options")["$[]="]("animationend",r))),a.$animate(o)):(a.$set_state("hidden",!0),s(l["$respond_to?"]("call"))&&l.$call()),n(n("GxG"),"Gui").$layout_refresh(),!0},-1)}(z[0],z),function(c,l){var d=h(c,"ApplicationSupport"),m=[d].concat(l),u=e.$r(m);return o(d,"$find_parent_type",function(o){var l=this,c=t,a=t,i=t;if(o==null&&(o=t),c=t,s(o["$is_any?"](b,n("String"),n("Symbol")))&&(s(o["$is_any?"](n("String"),n("Symbol")))&&(o=n(u("GxG"),"Gui").$component_class(o.$to_s().$to_sym())),s(o["$is_a?"](b))))for(a=[l];s(r(a.$size(),0));)if(i=a.$shift(),s(i)){if(s(i["$is_a?"](o))){c=i;break}a["$<<"](i.$parent())}return c},-1),o(d,"$viewport",function(){var t=this;return t.$find_parent_type(n(n(n("GxG"),"Gui"),"ApplicationViewport"))}),o(d,"$tree_node",function(){var t=this;return t.$find_parent_type(n(n(n("GxG"),"Gui"),"TreeNode"))}),o(d,"$tree",function(){var t=this;return t.$find_parent_type(n(n(n("GxG"),"Gui"),"Tree"))}),o(d,"$window",function(){var t=this;return t.$find_parent_type(n(n(n("GxG"),"Gui"),"Window"))}),o(d,"$find_parent",function(n){var d=this,i=t,l=t,c=t,o=t;for(n==null&&(n=t),i=t,s(u("GxG")["$valid_uuid?"](n))?l=!0:l=!1,c=[d.$parent()];s(r(c.$size(),0));)if(o=c.$shift(),s(o)){if(s(l)){if(a(o.$uuid(),n)){i=o;break}}else if(a(o.$title(),n)){i=o;break}s(i)||c["$<<"](o.$parent())}return i},-1),o(d,"$find_child_type",function(o){var l=this,a=t,c=t,i=t;if(o==null&&(o=t),a=t,s(o["$is_any?"](b,n("String"),n("Symbol")))&&(s(o["$is_any?"](n("String"),n("Symbol")))&&(o=n(u("GxG"),"Gui").$component_class(o.$to_s().$to_sym())),s(o["$is_a?"](b))))for(c=l.$children().$values();s(r(c.$size(),0));)if(i=c.$shift(),s(i)&&s(i["$is_a?"](o))){a=i;break}return a},-1),o(d,"$find_child",function(n){var h=this,c=t,d=t,l=t,o=t;for(n==null&&(n=t),c=t,s(u("GxG")["$valid_uuid?"](n))?d=!0:d=!1,l=h.$children().$values();s(r(l.$size(),0));)if(o=l.$shift(),s(o)){if(s(d)){if(a(o.$uuid(),n)){c=o;break}}else if(a(o.$title(),n)){c=o;break}s(c)||i(o.$children().$values(),"each",[],function(n){return n==null&&(n=t),l["$<<"](n)})}return c},-1),o(d,"$find_peer",function(n){var s=this;return n==null&&(n=t),s.$parent().$find_child(n)},-1)}(z[0],z),function(s,i){var a=h(s,"ThemeSupport"),c=[a].concat(i),r=e.$r(c);return o(a,"$theme_icon",function(s){return s==null&&(s=t),n(r("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$theme_icon(s)},-1),o(a,"$theme_background",function(s){return s==null&&(s=t),n(r("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$theme_background(s)},-1),o(a,"$theme_widget",function(s){return s==null&&(s=t),n(r("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$theme_widget(s)},-1),o(a,"$theme_font",function(s){return s==null&&(s=t),n(r("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$theme_font(s)},-1),o(a,"$site_asset",function(s){return s==null&&(s=t),n(r("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$site_asset(s)},-1)}(z[0],z),function(e,n){var r=f(e,n,"Factory");return r.$attr_reader("body"),o(r,"$initialize",function(){var n=this;for(n.body=document.body;document.body.firstChild;)document.body.removeChild(document.body.firstChild)}),o(r,"$create_element",function(n,s,o,r){var l=this,c=t;return r==null&&(r=new Map),a(s,"body")?c=document.body:c=document.createElement(s),a(s,"body")||(a(r["$[]"]("prepend"),!0)?o.$element().insertBefore(c,r["$[]"]("prepend").$element()):o.$element().appendChild(c)),c.classList.add(l.$dasherize(n.$class().$name())),A(r["$has_key?"]("id"))&&(c.id=n.$uuid().$to_s()),i(r,"each",[],function(n,s){switch(n==null&&(n=t),s==null&&(s=t),n.valueOf()){case"prepend":return t;case"content":return c.appendChild(document.createTextNode(s));break;default:return c.setAttribute(n,s)}}),c},-4),o(r,"$dasherize",function(n){var s=t,s=n.$gsub("::","-").$downcase().$gsub("_","-");return a(s["$[]"](0),"-")&&(s=s["$[]"](g(1,-1,!1))),s}),o(r,"$camelize",function(n){return s(n["$!~"](/-/))?n:i(n,"gsub",[/(?:-|(\/))([a-z\d]*)/],function(){var n;return""+((n=x["~"])===t?t:n["$[]"](1))+((n=x["~"])===t?t:n["$[]"](2)).$capitalize()}).$strip()})}(z[0],null),function(c,l,d){var u=f(c,l,"BaseElement"),g=[u].concat(d),h=e.$r(g),m=u.$$prototype;return m.uuid=m.states=m.component=m.parent=t,u.$include(n(n(n(h("GxG"),"Gui"),"Vdom"),"ElementMethods")),u.$include(n(n(n(h("GxG"),"Gui"),"Vdom"),"EventHandlers")),u.$include(n(n(n(h("GxG"),"Gui"),"Vdom"),"AnimationSupport")),u.$include(n(n(n(h("GxG"),"Gui"),"Vdom"),"ApplicationSupport")),u.$include(n(n(n(h("GxG"),"Gui"),"Vdom"),"ThemeSupport")),u.$attr_reader("uuid","title","component","parent","children","element","domtype","settings"),o(u,"$set_settings",function(n){var s=this;return n==null&&(n=t),s.settings=n},-1),C(u,"settings=","set_settings"),o(u,"$initialize",function(o,a,c){var l=this,d=t;return a==null&&(a=new Map),c==null&&(c=new Map),s(a["$is_a?"](n(n(h("GxG"),"Database"),"DetachedHash")))?(l.uuid=n("GxG").$uuid_generate().$to_s().$to_sym(),s(r(a["$[]"]("title").$to_s().$size(),0))?s(a["$[]"]("title").$to_s().$include("Untitled "))?l.title="Untitled Component "+l.uuid.$to_s():l.title=a["$[]"]("title").$to_s():l.title=a.$title().$to_s()):(l.uuid=n("GxG").$uuid_generate().$to_s().$to_sym(),l.title=(s(d=a["$[]"]("title"))?d:"Untitled Component "+l.uuid.$to_s()).$to_s()),l.component=(s(d=a["$[]"]("component"))?d:"unknown").$to_s().$downcase().$to_sym(),l.parent=o,s(a["$[]"]("settings")["$is_a?"](n(n(h("GxG"),"Database"),"DetachedHash"),n(n(h("GxG"),"Database"),"PersistedHash")))?l.settings=a["$[]"]("settings").$unpersist():s(a["$[]"]("settings")["$is_a?"](n("Hash")))?l.settings=a["$[]"]("settings"):l.settings=new Map,s(c["$[]"]("application"))?l.application=c["$[]"]("application"):l.application=t,l.children=new Map,l.element=t,l.domtype="div",l.states=new Map,l.states["$[]="](l.component.$to_s().$gsub(".","-").$to_sym(),!0),s(a["$[]"]("options")["$is_any?"](n("Hash"),n(n(h("GxG"),"Database"),"DetachedHash")))&&s(a["$[]"]("options")["$[]"]("states")["$is_any?"](n("Array"),n(n(h("GxG"),"Database"),"DetachedArray")))&&i(a["$[]"]("options")["$[]"]("states"),"each",[],function e(n){var s,o=e.$$s==null?this:e.$$s;return o.states==null&&(o.states=t),n==null&&(n=t),(s=[n.$to_s().$to_sym(),!0],i(o.states,"[]=",s),s[s.length-1])},{$$s:l}),l.style=new Map,s(a["$[]"]("options")["$is_a?"](n("Hash"),n(n(h("GxG"),"Database"),"DetachedHash")))&&s(a["$[]"]("options")["$[]"]("style")["$is_a?"](n("Hash"),n(n(h("GxG"),"Database"),"DetachedHash")))&&(l.style=a["$[]"]("options")["$[]"]("style")),l.options=new Map,s(a["$[]"]("options")["$is_a?"](n("Hash"),n(n(h("GxG"),"Database"),"DetachedHash")))&&i(a["$[]"]("options"),"each_pair",[],function e(n,o){var a,r=e.$$s==null?this:e.$$s;return r.options==null&&(r.options=t),n==null&&(n=t),o==null&&(o=t),s(["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?"](n.$to_s().$to_sym()))?t:(a=[n.$to_s().$to_sym(),o.$to_s()],i(r.options,"[]=",a),a[a.length-1])},{$$s:l}),l.event_handlers=new Map,l.event_listeners=new Map,l.$creation(),s(a["$[]"]("options")["$is_a?"](n("Hash"),n(n(h("GxG"),"Database"),"DetachedHash")))&&s(a["$[]"]("content")["$is_a?"](n("String")))&&l.$set_text(a["$[]"]("content")),l},-2),o(u,"$parent",p("parent")),o(u,"$root",function(){for(var c=this,i=t,o=t,n=t,i=t,o=[c.parent];s(r(o.$size(),0));)if(n=o.$shift(),s(n)){if(a(n.$component(),"page")){i=n;break}o["$<<"](n.$parent())}return i}),o(u,"$factory",function(){var t=this;return t.$root().$factory()}),o(u,"$build",function(n,s){var o=this;return n==null&&(n=t),s==null&&(s=new Map),o.$page().$build_components(o,n,s)},-1)}(z[0],null,z),function(e,n){var i=f(e,n,"BaseInputElement"),a=i.$$prototype;return a.options=a.element=a.disabled=t,o(i,"$_before_create",function e(){var i=e.$$p||t,n=this,o=t;return e.$$p=null,j(n,y(n,"_before_create",e,!1,!0),"_before_create",[],null),n.domtype="input",s(o=n.options["$[]"]("type"))?o:n.options["$[]="]("type","text"),s(n.options["$[]"]("content"))&&n.options["$[]="]("value",n.options.$delete("content")),n.disabled=s(o=n.options["$[]"]("disabled"))&&o}),o(i,"$value",function(){var t=this;return t.element.value}),o(i,"$value=",function(t){var n=this;return n.element.value=t}),o(i,"$_after_create",function e(){var o=e.$$p||t,n=this;return e.$$p=null,j(n,y(n,"_after_create",e,!1,!0),"_after_create",[],null),s(n.disabled)?n.$disable():t}),o(i,"$disable",function(){var t=this;return t.$set_attribute("disabled","disabled")}),o(i,"$enable",function(){var t=this;return t.$clear_attribute("disabled")})}(z[0],n(n(n(n("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,n){var s=f(e,n,"BaseClickableElement");return o(s,"$_before_create",function e(){var s=e.$$p||t,n=this;return e.$$p=null,j(n,y(n,"_before_create",e,!1,!0),"_before_create",[],null)})}(z[0],n(n(n(n("GxG"),"Gui"),"Vdom"),"BaseInputElement")),function(l,u,h){var m=f(l,u,"Page"),b=[m].concat(h),p=e.$r(b),g=m.$$prototype;return g.theme_prefix=g.settings=g.element=g.uuid=g.title=g.title_registry=g.factory=t,m.$include(n(n(n(p("GxG"),"Gui"),"Vdom"),"ElementMethods")),m.$include(n(n(n(p("GxG"),"Gui"),"Vdom"),"EventHandlers")),m.$include(n(n(n(p("GxG"),"Gui"),"Vdom"),"AnimationSupport")),m.$include(n(n(n(p("GxG"),"Gui"),"Vdom"),"ApplicationSupport")),m.$include(n(n(n(p("GxG"),"Gui"),"Vdom"),"ThemeSupport")),m.$attr_reader("uuid","title","component","parent","children","domtype","settings"),o(m,"$set_settings",function(n){var s=this;return n==null&&(n=t),s.settings=n},-1),C(m,"settings=","set_settings"),o(m,"$get_library",function(r){var c=t;return r==null&&(r=t),c=t,s(r["$is_any?"](n("Hash"),n(n(n("GxG"),"Database"),"DetachedHash")))?function(){try{var o=d("break");return i(n(p("GxG"),"APPLICATIONS")["$[]"]("libraries").$values(),"each",[],function n(i){var l=t;if(i==null&&(i=t),a(i.$title(),r["$[]"]("library").$to_s())&&a(i.$type(),s(l=r["$[]"]("type"))?l:i.$type()))if(s(r["$[]"]("maximum")))if(s(e.Range.$new(r["$[]"]("minimum").$to_f(),r["$[]"]("maximum").$to_f(),!1)["$include?"](i.$version())))c=i,o.$throw(t,n.$$is_lambda);else return t;else if(s(E(i.$version(),r["$[]"]("minimum").$to_f())))c=i,o.$throw(t,n.$$is_lambda);else return t;else return t})}catch(e){if(e===o)return e.$v;throw e}finally{o.is_orphan=!0}}():s(n(p("GxG"),"APPLICATIONS")["$[]"]("libraries")["$[]"](r.$to_s().$to_sym()))?c=n(p("GxG"),"APPLICATIONS")["$[]"]("libraries")["$[]"](r.$to_s().$to_sym()):function(){try{var e=d("break");return i(n(p("GxG"),"APPLICATIONS")["$[]"]("libraries").$values(),"each",[],function n(s){if(s==null&&(s=t),a(s.$title(),r))c=s,e.$throw(t,n.$$is_lambda);else return t})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}(),c},-1),o(m,"$library_loaded?",function(r){var c=t;return r==null&&(r=t),s(r["$is_any?"](n("Hash"),n(n(n("GxG"),"Database"),"DetachedHash")))?(c=!1,function(){try{var o=d("break");return i(n(p("GxG"),"APPLICATIONS")["$[]"]("libraries").$values(),"each",[],function n(i){var l=t;if(i==null&&(i=t),a(i.$title(),r["$[]"]("library").$to_s())&&a(i.$type(),(s(l=r["$[]"]("type"))?l:i.$type()).$to_s()))if(s(r["$[]"]("maximum")))if(s(e.Range.$new(r["$[]"]("minimum").$to_f(),r["$[]"]("maximum").$to_f(),!1)["$include?"](i.$version())))c=i["$loaded?"](),o.$throw(t,n.$$is_lambda);else return t;else if(s(E(i.$version(),r["$[]"]("minimum").$to_f())))c=i["$loaded?"](),o.$throw(t,n.$$is_lambda);else return t;else return t})}catch(e){if(e===o)return e.$v;throw e}finally{o.is_orphan=!0}}(),c):!!s(n(p("GxG"),"APPLICATIONS")["$[]"]("libraries")["$[]"](r.$to_s().$to_sym()))||(c=!1,function(){try{var e=d("break");return i(n(p("GxG"),"APPLICATIONS")["$[]"]("libraries").$values(),"each",[],function n(s){if(s==null&&(s=t),a(s.$title(),r))c=s["$loaded?"](),e.$throw(t,n.$$is_lambda);else return t})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}(),c)},-1),o(m,"$load_library",function e(o){var c=e.$$p||t,r=t,a=t;return e.$$p=null,o==null&&(o=t),s(o["$is_any?"](n("Hash"),n(n(n("GxG"),"Database"),"DetachedHash")))?(s(o["$[]"]("maximum"))?r=o["$[]"]("maximum").$to_f():r=t,i(n(p("GxG"),"CONNECTION"),"library_pull",[new Map([["library",o["$[]"]("library").$to_s()],["type",(s(a=o["$[]"]("type"))?a:"text/ruby").$to_s()],["minimum",(s(a=o["$[]"]("minimum"))?a:0).$to_f()],["maximum",r],["dependencies",!0],["loaded",n(p("GxG"),"APPLICATIONS")["$[]"]("libraries").$keys()]])],function(o){return o==null&&(o=t),s(o["$is_a?"](n("Hash")))&&s(o["$[]"]("result")["$is_a?"](n("Array")))?i(o["$[]"]("result"),"each",[],function(o){var i=t;return o==null&&(o=t),s(n(p("GxG"),"APPLICATIONS")["$[]"]("libraries").$keys()["$include?"](o["$[]"]("uuid").$to_s().$to_sym()))?t:(i=o["$[]"]("data"),s(i["$is_a?"](n("String")))?(s(i["$base64?"]())&&(i=i.$decode64()),s(i["$json?"]())&&(i=n("JSON").$parse(i,new Map([["symbolize_names",!0]]))),s(i["$is_a?"](n("Hash")))&&(i=n(n("GxG"),"Database").$process_import(i)),s(i["$is_a?"](n(n(n("GxG"),"Database"),"DetachedHash")))?(n(p("GxG"),"APPLICATIONS")["$[]"]("libraries")["$[]="](o["$[]"]("uuid").$to_s().$to_sym(),n(n("GxG"),"Library").$new(i)),s(c["$respond_to?"]("call"))?c.$call(n(p("GxG"),"APPLICATIONS")["$[]"]("libraries")["$[]"](o["$[]"]("uuid").$to_s().$to_sym())):t):t):t)}):t})):t},-1),o(m,"$load_libraries",function e(o){var r=e.$$p||t,c=this,a=t;return e.$$p=null,o==null&&(o=[]),a=!0,s(o["$is_any?"](n("Array"),n(n(n("GxG"),"Database"),"DetachedArray")))&&i(o,"each",[],function e(o){var r=e.$$s==null?this:e.$$s;return o==null&&(o=t),function(){try{var e=d("break");return i(n(p("GxG"),"DISPLAY_DETAILS")["$[]"]("object"),"load_library",[o],function n(o){var i=n.$$s==null?this:n.$$s;if(o==null&&(o=t),s(o["$loaded?"]()))return t;i.$log_warn("Unable to load library: "+o.$title()),a=!1,e.$throw(t,n.$$is_lambda)},{$$s:r})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}()},{$$s:c}),s(r["$respond_to?"]("call"))&&r.$call(a),a},-1),o(m,"$application_open",function(o,a){var r=this,l=t,d=t;return o==null&&(o=new Map),a==null&&(a=new Map),l=!1,s(o["$is_a?"](n("Hash")))?(d=i(p("Proc"),"new",[],v(t)),r.$set_busy(!0),i(n(p("GxG"),"CONNECTION"),"application_open",[o,d],function e(o){var r=e.$$s==null?this:e.$$s;return o==null&&(o=t),s(o["$is_a?"](n("Hash")))?s(o["$[]"]("result")["$is_a?"](n("Hash")))?i(n(p("GxG"),"CONNECTION"),"pull_object",[o["$[]"]("result")["$[]"]("location")],function e(s){var i=e.$$s==null?this:e.$$s;return s==null&&(s=t),n(p("GxG"),"APPLICATIONS")["$[]"]("processes")["$[]="](o["$[]"]("result")["$[]"]("application").$to_s().$to_sym(),n(p("GxG"),"Application").$new(o["$[]"]("result").$merge(new Map([["source",s]])))),l=n(p("GxG"),"APPLICATIONS")["$[]"]("processes")["$[]"](o["$[]"]("result")["$[]"]("application").$to_s().$to_sym()).$run(a),i.$set_busy(!1)},{$$s:r}):r.$log_warn(c("Error opening Application: ",o.$inspect())):r.$log_warn("Malformed response: "+o.$inspect())},{$$s:r})):r.$log_warn("Invalid Argument: "+o.$inspect()),l},-1),o(m,"$site_asset",function(o){var i=t;return o==null&&(o=t),s(window.location.href["$include?"]("https://"))?i=c("https://",window.location.host):i=c("http://",window.location.host),S(n(n("GxG"),"CONNECTION").$relative_url().$to_s()["$[]"](0),"/")&&(i=c(i,"/")),s(o)?c(i,p("File").$expand_path(c(c(n(n("GxG"),"CONNECTION").$relative_url().$to_s(),"/"),o.$to_s()))):""},-1),o(m,"$theme_icon",function(n){var o=this;return n==null&&(n=t),s(n)?c(c(o.theme_prefix,"/icons/"),n.$to_s()):""},-1),o(m,"$theme_background",function(n){var o=this;return n==null&&(n=t),s(n)?c(c(o.theme_prefix,"/backgrounds/"),n.$to_s()):""},-1),o(m,"$theme_widget",function(n){var o=this;return n==null&&(n=t),s(n)?c(c(o.theme_prefix,"/widgets/"),n.$to_s()):""},-1),o(m,"$theme_font",function(n){var o=this;return n==null&&(n=t),s(n)?c(c(o.theme_prefix,"/fonts/"),n.$to_s()):""},-1),o(m,"$theme_window_title_layout",function(){return new Map([["left",["close","minimize","maximize"]],["center",["title"]],["right",[]]])}),o(m,"$build_components",function(o,c,l){var h=t,u=t,d=t;if(o==null&&(o=t),c==null&&(c=t),l==null&&(l=new Map),h=!1,s(o)||(o=n(n("GxG"),"DISPLAY_DETAILS")["$[]"]("object")),s(o)&&s(c["$is_any?"](n("Array"),n(n(n("GxG"),"Database"),"DetachedArray")))){for(u=[new Map([["parent",o],["content",c]])];s(r(u.$size(),0));)d=u.$shift(),s(d)&&i(d["$[]"]("content"),"each",[],function(o){var i=t;return o==null&&(o=t),s(o["$is_any?"](n(n(n("GxG"),"Database"),"DetachedHash"),n(n(n("GxG"),"Database"),"PersistedHash")))?i=d["$[]"]("parent").$add_child(o,l.$merge(new Map([["template_uuid",o.$uuid()]]))):i=d["$[]"]("parent").$add_child(o,l),s(r(o["$[]"]("content").$size(),0))&&u["$<<"](new Map([["parent",i],["content",o["$[]"]("content")]])),a(o["$[]"]("component").$to_s().$downcase().$to_sym(),"org.gxg.gui.application.viewport")&&s(l["$[]"]("application"))&&(i.$set_application(l["$[]"]("application")),s(l["$[]"]("application").$get_viewport(i.$uuid()))||l["$[]"]("application").$link_viewport(i)),a(o["$[]"]("component").$to_s().$downcase().$to_sym(),"org.gxg.gui.window")&&s(l["$[]"]("application"))&&(l["$[]"]("application").$link_window(i),i.$set_application(l["$[]"]("application"))),a(o["$[]"]("component").$to_s().$downcase().$to_sym(),"org.gxg.gui.window.dialog")&&s(l["$[]"]("application"))&&i.$set_application(l["$[]"]("application")),a(o["$[]"]("component").$to_s().$downcase().$to_sym(),"org.gxg.gui.menu.bar")&&s(l["$[]"]("application"))&&i.$set_application(l["$[]"]("application")),a(o["$[]"]("component").$to_s().$downcase().$to_sym(),"org.gxg.gui.menu")&&s(l["$[]"]("application"))&&i.$set_application(l["$[]"]("application")),s(d["$[]"]("parent")["$is_a?"](n(n(n("GxG"),"Gui"),"Window")))&&s(o["$[]"]("options")["$[]"]("track"))?d["$[]"]("parent").$track_deltas(i.$uuid(),i,o["$[]"]("options")["$[]"]("track")):t});h=!0}return h},-1),o(m,"$build",function(n,s){var o=this;return n==null&&(n=t),s==null&&(s=new Map),o.$build_components(o,n,s)},-1),o(m,"$build_page",function(o){var a=this,l=t;return o==null&&(o=t),s(o["$is_any?"](n(n(n("GxG"),"Database"),"DetachedHash"),n(n(n("GxG"),"Database"),"DetachedHash")))?(a.element=document.body,a.settings=o["$[]"]("settings"),a.theme_prefix=c(n(n("GxG"),"CONNECTION").$relative_url(),"/themes/"+(s(l=a.settings["$[]"]("theme"))?l:"default")),a.uuid=o.$uuid().$to_s().$to_sym(),a.element.id=a.uuid.$to_s(),a.title=a.settings["$[]"]("page_title").$to_s(),document.title=a.title.$to_s(),a.component="org.gxg.gui.page",a.parent=a,a.children=new Map,a.domtype="body",a.states=new Map([["org-gxg-gui-page",!0]]),s(o["$[]"]("options")["$is_any?"](n("Hash"),n(n(n("GxG"),"Database"),"DetachedHash"),n(n(n("GxG"),"Database"),"DetachedHash")))&&s(o["$[]"]("options")["$[]"]("states")["$is_any?"](n("Array"),n(n(n("GxG"),"Database"),"PersistedArray"),n(n(n("GxG"),"Database"),"DetachedArray")))&&i(o["$[]"]("options")["$[]"]("states"),"each",[],function e(n){var s,o=e.$$s==null?this:e.$$s;return o.states==null&&(o.states=t),n==null&&(n=t),(s=[n.$to_s().$to_sym(),!0],i(o.states,"[]=",s),s[s.length-1])},{$$s:a}),a.style=new Map,s(o["$[]"]("options")["$is_any?"](n("Hash"),n(n(n("GxG"),"Database"),"DetachedHash"),n(n(n("GxG"),"Database"),"DetachedHash")))&&s(o["$[]"]("options")["$[]"]("style")["$is_any?"](n("Hash"),n(n(n("GxG"),"Database"),"DetachedHash"),n(n(n("GxG"),"Database"),"DetachedHash")))&&(a.style=o["$[]"]("options")["$[]"]("style")),a.options=new Map,s(o["$[]"]("options")["$is_any?"](n("Hash"),n(n(n("GxG"),"Database"),"DetachedHash"),n(n(n("GxG"),"Database"),"DetachedHash")))&&i(o["$[]"]("options"),"each_pair",[],function e(n,o){var a,r=e.$$s==null?this:e.$$s;return r.options==null&&(r.options=t),n==null&&(n=t),o==null&&(o=t),s(["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?"](n.$to_s().$to_sym()))?t:(a=[n.$to_s().$to_sym(),o.$to_s()],i(r.options,"[]=",a),a[a.length-1])},{$$s:a}),a.event_handlers=new Map,a.event_listeners=new Map,a.$creation(),s(o["$[]"]("script")["$is_a?"](n("String")))&&s(r(o["$[]"]("script").$size(),0))&&a.$set_script(o["$[]"]("script")),a.$build_components(a,o["$[]"]("content"))):t},-1),o(m,"$initialize",function(s){var o=this;return s==null&&(s=t),n(n("GxG"),"DISPLAY_DETAILS")["$[]="]("object",o),i(n(n("GxG"),"DISPLAY_DETAILS")["$[]"]("object"),"on",["onbeforeunload"],function(s){return s==null&&(s=t),n(n("GxG"),"DISPLAY_DETAILS")["$[]"]("socket").$close()}),i(n(n("GxG"),"DISPLAY_DETAILS")["$[]"]("object"),"on",["beforeunload"],function(s){return s==null&&(s=t),n(n("GxG"),"DISPLAY_DETAILS")["$[]"]("socket").$close()}),i(n(n("GxG"),"DISPLAY_DETAILS")["$[]"]("object"),"on",["onunload"],function(s){return s==null&&(s=t),n(n("GxG"),"DISPLAY_DETAILS")["$[]"]("socket").$close()}),o.theme_prefix=c(n(n("GxG"),"CONNECTION").$relative_url(),"/themes/"+n(n("GxG"),"DISPLAY_DETAILS")["$[]"]("theme")),o.settings=t,o.busy=!1,o.window_switcher=t,o.window_registry=new Map,o.dialog=t,o.dialog_queue=[],o.title_registry=new Map,o.$build_page(s),o},-1),o(m,"$find_object_by_dom_id",function(o){var m=this,u=t,h=t,l=t,a=t;for(o==null&&(o=t),u=t,s(o["$is_a?"](n("Numeric")))?o=c("_",o.$to_i().$to_s()):o=o.$to_s(),h=[m];s(r(h.$size(),0));){if(l=h.$shift(),a=l.$element().attributes.getNamedItem("id")||0,!s(a==0)&&(a=a.value,s(a.$to_s()==o.$to_s()))){u=l;break}s(l["$respond_to?"]("children"))&&function(){try{var e=d("break");return i(l.$children().$keys(),"each",[],function n(i){if(i==null&&(i=t),a=l.$children()["$[]"](i).$element().attributes.getNamedItem("id")||0,s(a==0))return t;if(a=a.value,s(a.$to_s()==o.$to_s()))u=l.$children()["$[]"](i),e.$throw(t,n.$$is_lambda);else return h["$<<"](l.$children()["$[]"](i))})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}()}return u},-1),o(m,"$find_object",function(n){var l=this,c=t,a=t,o=t;for(n==null&&(n=t),c=t,a=[l];s(r(a.$size(),0));)if(o=a.$shift(),s(o["$respond_to?"]("children"))){if(s(o.$children()["$[]"](n))){c=o.$children()["$[]"](n);break}i(o.$children().$keys(),"each",[],function(n){return n==null&&(n=t),a["$<<"](o.$children()["$[]"](n))})}return c},-1),o(m,"$find_object_by",function(n){var c=this,o=t,r=t;return n==null&&(n=t),o=t,s(p("GxG")["$valid_uuid?"](n))?r=!0:r=!1,function(){try{var e=d("break");return i(c.title_registry.$keys(),"each",[],function i(c){var l=i.$$s==null?this:i.$$s;if(l.title_registry==null&&(l.title_registry=t),c==null&&(c=t),a(r,!0))if(s(l.title_registry["$[]"](c).$to_s()["$include?"](n.$to_s())))o=l.$find_object(c),e.$throw(t,i.$$is_lambda);else return t;else if(a(n,l.title_registry["$[]"](c)))o=l.$find_object(c),e.$throw(t,i.$$is_lambda);else return t},{$$s:c})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}(),o},-1),o(m,"$register_object",function(n,o){var i=this;return n==null&&(n=t),o==null&&(o=t),!!(s(n)&&s(o))&&(i.title_registry["$[]="](o.$uuid(),n.$to_s()),!0)},-1),o(m,"$unregister_object",function(o){var a=this,i=t;return o==null&&(o=t),!!s(o)&&(i=a.$find_object_by(o),s(i)&&(s(i["$is_a?"](n(n(n("GxG"),"Gui"),"ApplicationViewport")))&&i.$detach(),a.title_registry.$delete(i.$uuid())),!0)},-1),o(m,"$factory",function(){var o=this,i=t;return o.factory=s(i=o.factory)?i:n(n(n(p("GxG"),"Gui"),"Vdom"),"Factory").$new(o)}),o(m,"$element",function(){var t=this;return t.$factory().$body()}),o(m,"$parent",O),o(m,"$root",O),o(m,"$domclear",function(){for(;document.body.firstChild;)document.body.removeChild(document.body.firstChild);return!0}),o(m,"$clear",function(){var n=this,s=t;return i(n,"all_descendants",[],function(n){return n==null&&(n=t),n.$remove_listeners()}),n.$remove_listeners(),i(n,"each_child",[],function(n){return n==null&&(n=t),n.$destroy()}),s=document.body.getAttributeNames(),i(s,"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s.$clear_attribute(n)},{$$s:n}),!0})}(z[0],null,z),l(N,"$load_page",function(o){var c=this,l=t,d=t;return o==null&&(o=t),s(n(n("GxG"),"DISPLAY_DETAILS")["$[]"]("object")["$is_any?"](n(n(n("GxG"),"Gui"),"Page"),n(n(n(n("GxG"),"Gui"),"Vdom"),"Page")))&&(n(n("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$clear(),n(n(n("GxG"),"Gui"),"Vdom").$clear_rules(),n(n(n("GxG"),"Gui"),"Vdom").$refresh_css_cache()),l=s(d=o["$[]"]("settings")["$[]"]("theme"))?d:"default",i(n(n("GxG"),"CONNECTION"),"pull_object",["/Public/www/content/themes/"+l],function e(r){var c=e.$$s==null?this:e.$$s;return r==null&&(r=t),s(r["$is_a?"](n("Array")))?(i(r["$[]"](0)["$[]"]("resources"),"each",[],function(s){return s==null&&(s=t),a(s["$[]"]("resource_type"),"font-face")?n(n(n("GxG"),"Gui"),"Vdom").$load_font(s):t}),i(r["$[]"](0)["$[]"]("rules"),"each_pair",[],function(s,o){return s==null&&(s=t),o==null&&(o=t),n(n(n("GxG"),"Gui"),"Vdom").$set_rule(s,o)}),s(n(n("GxG"),"DISPLAY_DETAILS")["$[]"]("object")["$is_any?"](n(n(n("GxG"),"Gui"),"Page"),n(n(n(n("GxG"),"Gui"),"Vdom"),"Page")))?n(n("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$build_page(o):n(n("GxG"),"DISPLAY_DETAILS")["$[]="]("object",n(n(n("GxG"),"Gui"),"Page").$new(o)),n(n("GxG"),"Gui").$layout_refresh()):c.$log_error(new Map([["error",D("Exception").$new("Invalid theme object as response.")]]))},{$$s:c}),s(o["$[]"]("requirements")["$is_any?"](n("Array"),n(n(n("GxG"),"Database"),"DetachedArray"),n(n(n("GxG"),"Database"),"PersistedArray")))&&s(r(o["$[]"]("requirements").$size(),0))&&c.$load_libraries(o["$[]"]("requirements")),s(o["$[]"]("auto_start")["$is_any?"](n("Array"),n(n(n("GxG"),"Database"),"DetachedArray"),n(n(n("GxG"),"Database"),"PersistedArray")))&&s(r(o["$[]"]("auto_start").$size(),0))&&i(o["$[]"]("auto_start"),"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s.$application_open(new Map([["name",n["$[]"]("name")],["restore",!0]]))},{$$s:c}),!0},-1),l(N,"$navigate_to",function(l){var u=this,d=t,h=t;return l==null&&(l=""),s(r(n(n("GxG"),"CONNECTION").$relative_url().$to_s().$size(),0))?d=l["$[]"](e.Range.$new(n(n("GxG"),"CONNECTION").$relative_url().$size(),-1,!1)):d=l,(a(d,"/")||a(d,""))&&(d="/index"),a(d["$[]"](0),"/")||(d=c("/",d)),n(n("GxG"),"DISPLAY_DETAILS")["$[]="]("host_path",d),s(n(D("GxG"),"PAGES")["$[]"](d))?n(n(D("GxG"),"Gui"),"Vdom").$load_page(n(D("GxG"),"PAGES")["$[]"](d)):(h=i(D("Proc"),"new",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s.$log_error(n.$inspect())},{$$s:u}),i(n(n("GxG"),"CONNECTION"),"pull_object",["/Public/www/content/pages"+d,h],function e(o){var i=e.$$s==null?this:e.$$s;return o==null&&(o=t),i.$puts("Response (Page Load): "+o.$inspect()),s(o["$is_any?"](n("Array")))?(n(D("GxG"),"PAGES")["$[]="](d,o["$[]"](0)),n(n(D("GxG"),"Gui"),"Vdom").$load_page(n(D("GxG"),"PAGES")["$[]"](d))):i.$log_error(new Map([["error",D("Exception").$new("Invalid page object as response.")]])),n(n("GxG"),"Gui").$layout_refresh()},{$$s:u}))},-1)}(z[0],z)}(z[0],z)}(k[0],k)},Opal.modules["web/gxg_foundation"]=function(e){var m=e.module,a=e.klass,o=e.send2,i=e.find_super,r=e.send,s=e.def,c=e.truthy,b=e.rb_gt,l=e.eqeq,p=e.const_set,h=e.defs,g=e.Class,v=e.neqeq,f=e.return_ivar,d=e.rb_plus,u=[],n=e.nil,t=e.$$$;return e.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(d,u){var j=m(d,"GxG"),f=[j].concat(u);return function(d,u){var y=m(d,"Gui"),f=[y].concat(u),j=e.$r(f);return a(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"Page"),"Page"),function(e,t){var c=a(e,t,"Abbreviation"),l=c.$$prototype;return l.title=l.options=n,s(c,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="abbr",(s=["title",t.title.$clone().$to_s()],r(t.options,"[]=",s),s[s.length-1])})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Address");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="address"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Area");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="area"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Bold");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="b"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Bdi");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="bdi"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Bdo");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="bdo"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"BlockQuote");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="blockquote"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Break");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="br"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Caption");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="caption"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Cite");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="cite"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Code");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="code"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Column");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="col"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"ColumnGroup");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="colgroup"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Data");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="data"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"DataList");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="datalist"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Description");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="dd"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Deleted");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="del"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Details");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="details"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Dfn");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="dfn"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Dialog");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="dialog"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Division");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="div"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"DescriptionList");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="dl"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"DescriptionTerm");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="dt"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Emphasis");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="em"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Figure");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="figure"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"FigureCaption");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="figcaption"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"ThemeDivider");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="hr"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Italic");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="i"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"InlineFrame");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="iframe"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Insertion");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="ins"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"KeyboardKey");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="kbd"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Map");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="map"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Mark");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="mark"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Meter");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="meter"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"NoScript");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="noscript"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Object");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="object"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"OptionGroup");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="optgroup"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Parameter");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="param"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Picture");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="picture"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Preformatted");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="pre"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Progress");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="progress"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Quotation");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="q"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"StrikeThrough");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="s"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Sample");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="samp"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Source");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="source"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Strong");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="strong"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Small");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="small"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Style");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="style"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"SubScript");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="sub"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Summary");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="summary"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"SuperScript");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="sup"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Svg");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="svg"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Template");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="template"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Time");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="time"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Track");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="track"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Misspelled");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="u"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Variable");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="var"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"WordBreak");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="wbr"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Header");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="header"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Navigation");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="nav"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Main");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="main"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Section");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="section"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Article");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="article"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Aside");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="aside"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Footer");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="footer"})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var d=a(e,t,"Form");return s(d,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="div"}),s(d,"$form_data",function(){for(var i=this,o=n,s=n,t=n,o=new Map,s=i.$children().$values();c(b(s.$size(),0));)t=s.$shift(),c(t)&&(l(t.$domtype(),"input")?o["$[]="](t.$title().$to_s().$to_sym(),t.$value()):r(t.$children().$values(),"each",[],function(t){return t==null&&(t=n),s["$<<"](t)}));return o})}(f[0],t(t(t(j("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var c=a(e,t,"ButtonInput"),l=c.$$prototype;return l.options=n,s(c,"$_before_create",function e(){var t,a=e.$$p||n,s=this;return e.$$p=null,o(s,i(s,"_before_create",e,!1,!0),"_before_create",[],null),(t=["type","button"],r(s.options,"[]=",t),t[t.length-1])})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseClickableElement")),function(e,t){var c=a(e,t,"SubmitButton"),l=c.$$prototype;return l.options=n,s(c,"$_before_create",function e(){var t,a=e.$$p||n,s=this;return e.$$p=null,o(s,i(s,"_before_create",e,!1,!0),"_before_create",[],null),(t=["type","submit"],r(s.options,"[]=",t),t[t.length-1])})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseClickableElement")),function(e,t){var r=a(e,t,"Block"),c=r.$$prototype;return c.options=n,s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="div",t.options.$delete("type"),!0})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseClickableElement")),function(e,t){var c=a(e,t,"CheckBox"),l=c.$$prototype;return l.options=n,s(c,"$_before_create",function e(){var t,a=e.$$p||n,s=this;return e.$$p=null,o(s,i(s,"_before_create",e,!1,!0),"_before_create",[],null),(t=["type","checkbox"],r(s.options,"[]=",t),t[t.length-1])})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseClickableElement")),function(e,t){var l=a(e,t,"Image"),d=l.$$prototype;return d.options=n,s(l,"$_before_create",function e(){var s,l=e.$$p||n,t=this,a=n;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="image",c(t.options["$[]"]("source"))&&t.options["$[]="]("src",t.options.$delete("source")),c(a=t.options["$[]"]("alt"))?a:(s=["alt",t.options["$[]"]("src")],r(t.options,"[]=",s),s[s.length-1])})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var l=a(e,t,"Video"),d=l.$$prototype;return d.options=n,s(l,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="video",c(t.options["$[]"]("source"))?(s=["src",t.options.$delete("source")],r(t.options,"[]=",s),s[s.length-1]):n})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var l=a(e,t,"Audio"),d=l.$$prototype;return d.options=n,s(l,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="audio",c(t.options["$[]"]("source"))?(s=["src",t.options.$delete("source")],r(t.options,"[]=",s),s[s.length-1]):n})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var l=a(e,t,"Canvas"),d=l.$$prototype;return d.options=n,s(l,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="canvas",c(t.options["$[]"]("source"))?(s=["src",t.options.$delete("source")],r(t.options,"[]=",s),s[s.length-1]):n})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var c=a(e,t,"HiddenInput"),l=c.$$prototype;return l.options=n,s(c,"$_before_create",function e(){var t,a=e.$$p||n,s=this;return e.$$p=null,o(s,i(s,"_before_create",e,!1,!0),"_before_create",[],null),(t=["type","hidden"],r(s.options,"[]=",t),t[t.length-1])})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseInputElement")),function(e,t){var c=a(e,t,"FileInput"),l=c.$$prototype;return l.options=n,s(c,"$_before_create",function e(){var t,a=e.$$p||n,s=this;return e.$$p=null,o(s,i(s,"_before_create",e,!1,!0),"_before_create",[],null),(t=["type","file"],r(s.options,"[]=",t),t[t.length-1])})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseInputElement")),function(e,t){var c=a(e,t,"TextInput"),l=c.$$prototype;return l.options=n,s(c,"$_before_create",function e(){var t,a=e.$$p||n,s=this;return e.$$p=null,o(s,i(s,"_before_create",e,!1,!0),"_before_create",[],null),(t=["type","text"],r(s.options,"[]=",t),t[t.length-1])})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseInputElement")),function(e,t){var c=a(e,t,"PasswordInput"),l=c.$$prototype;return l.options=n,s(c,"$_before_create",function e(){var t,a=e.$$p||n,s=this;return e.$$p=null,o(s,i(s,"_before_create",e,!1,!0),"_before_create",[],null),(t=["type","password"],r(s.options,"[]=",t),t[t.length-1])})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseInputElement")),function(e,t){var c=a(e,t,"ResetInput"),l=c.$$prototype;return l.options=n,s(c,"$_before_create",function e(){var t,a=e.$$p||n,s=this;return e.$$p=null,o(s,i(s,"_before_create",e,!1,!0),"_before_create",[],null),(t=["type","reset"],r(s.options,"[]=",t),t[t.length-1])})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseInputElement")),function(e,t){var c=a(e,t,"RadioButton"),l=c.$$prototype;return l.options=n,s(c,"$_before_create",function e(){var t,a=e.$$p||n,s=this;return e.$$p=null,o(s,i(s,"_before_create",e,!1,!0),"_before_create",[],null),(t=["type","radio"],r(s.options,"[]=",t),t[t.length-1])})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseInputElement")),function(e,t){var c=a(e,t,"ColorPicker"),l=c.$$prototype;return l.options=n,s(c,"$_before_create",function e(){var t,a=e.$$p||n,s=this;return e.$$p=null,o(s,i(s,"_before_create",e,!1,!0),"_before_create",[],null),(t=["type","color"],r(s.options,"[]=",t),t[t.length-1])})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseInputElement")),function(e,t){var c=a(e,t,"DatePicker"),l=c.$$prototype;return l.options=n,s(c,"$_before_create",function e(){var t,a=e.$$p||n,s=this;return e.$$p=null,o(s,i(s,"_before_create",e,!1,!0),"_before_create",[],null),(t=["type","date"],r(s.options,"[]=",t),t[t.length-1])})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseInputElement")),function(e,t){var c=a(e,t,"DateTimeLocal"),l=c.$$prototype;return l.options=n,s(c,"$_before_create",function e(){var t,a=e.$$p||n,s=this;return e.$$p=null,o(s,i(s,"_before_create",e,!1,!0),"_before_create",[],null),(t=["type","datetime-local"],r(s.options,"[]=",t),t[t.length-1])})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseInputElement")),function(e,t){var c=a(e,t,"EmailInput"),l=c.$$prototype;return l.options=n,s(c,"$_before_create",function e(){var t,a=e.$$p||n,s=this;return e.$$p=null,o(s,i(s,"_before_create",e,!1,!0),"_before_create",[],null),(t=["type","email"],r(s.options,"[]=",t),t[t.length-1])})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseInputElement")),function(e,t){var c=a(e,t,"MonthPicker"),l=c.$$prototype;return l.options=n,s(c,"$_before_create",function e(){var t,a=e.$$p||n,s=this;return e.$$p=null,o(s,i(s,"_before_create",e,!1,!0),"_before_create",[],null),(t=["type","month"],r(s.options,"[]=",t),t[t.length-1])})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseInputElement")),function(e,t){var c=a(e,t,"NumberInput"),l=c.$$prototype;return l.options=n,s(c,"$_before_create",function e(){var t,a=e.$$p||n,s=this;return e.$$p=null,o(s,i(s,"_before_create",e,!1,!0),"_before_create",[],null),(t=["type","number"],r(s.options,"[]=",t),t[t.length-1])})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseInputElement")),function(e,t){var c=a(e,t,"RangeInput"),l=c.$$prototype;return l.options=n,s(c,"$_before_create",function e(){var t,a=e.$$p||n,s=this;return e.$$p=null,o(s,i(s,"_before_create",e,!1,!0),"_before_create",[],null),(t=["type","range"],r(s.options,"[]=",t),t[t.length-1])})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseInputElement")),function(e,t){var c=a(e,t,"SearchInput"),l=c.$$prototype;return l.options=n,s(c,"$_before_create",function e(){var t,a=e.$$p||n,s=this;return e.$$p=null,o(s,i(s,"_before_create",e,!1,!0),"_before_create",[],null),(t=["type","search"],r(s.options,"[]=",t),t[t.length-1])})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseInputElement")),function(e,t){var c=a(e,t,"PhoneInput"),l=c.$$prototype;return l.options=n,s(c,"$_before_create",function e(){var t,a=e.$$p||n,s=this;return e.$$p=null,o(s,i(s,"_before_create",e,!1,!0),"_before_create",[],null),(t=["type","tel"],r(s.options,"[]=",t),t[t.length-1])})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseInputElement")),function(e,t){var c=a(e,t,"TimePicker"),l=c.$$prototype;return l.options=n,s(c,"$_before_create",function e(){var t,a=e.$$p||n,s=this;return e.$$p=null,o(s,i(s,"_before_create",e,!1,!0),"_before_create",[],null),(t=["type","time"],r(s.options,"[]=",t),t[t.length-1])})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseInputElement")),function(e,t){var c=a(e,t,"UrlInput"),l=c.$$prototype;return l.options=n,s(c,"$_before_create",function e(){var t,a=e.$$p||n,s=this;return e.$$p=null,o(s,i(s,"_before_create",e,!1,!0),"_before_create",[],null),(t=["type","url"],r(s.options,"[]=",t),t[t.length-1])})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseInputElement")),function(e,t){var c=a(e,t,"WeekPicker"),l=c.$$prototype;return l.options=n,s(c,"$_before_create",function e(){var t,a=e.$$p||n,s=this;return e.$$p=null,o(s,i(s,"_before_create",e,!1,!0),"_before_create",[],null),(t=["type","week"],r(s.options,"[]=",t),t[t.length-1])})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseInputElement")),function(e,t){var r=a(e,t,"Label");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="label"})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"TextArea");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="textarea"})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Output");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="output"})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Paragraph");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="p"})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Header1");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="h1"})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Header2");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="h2"})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Header3");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="h3"})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Header4");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="h4"})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Header5");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="h5"})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Header6");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="h6"})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"List");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="ul"})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"OrderedList");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="ol"})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"ListItem");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="li"})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Anchor");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="a"})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"ExternalLink"),l=r.$$prototype;return l.options=n,s(r,"$_before_create",function e(){var a=e.$$p||n,t=this,s=n;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),c(s=t.options["$[]"]("target"))?s:t.options["$[]="]("target","_blank"),t.domtype="a"})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var c=a(e,t,"Button"),d=c.$$prototype;return d.options=d.states=n,s(c,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="button",l(t.options["$[]"]("type"),"button")||t.options["$[]="]("type","button"),l(t.states["$[]"]("button"),!0)?n:(s=["button",!0],r(t.states,"[]=",s),s[s.length-1])}),s(c,"$_after_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_after_create",e,!1,!0),"_after_create",[],null),r(t,"on",["click"],function(t){return t==null&&(t=n),document.activeElement.blur()})})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Table");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="table"})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"TableHeader");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="th"})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"TableRow");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="tr"})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"TableCell");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="td"})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var c=a(e,t,"BlockTable"),d=c.$$prototype;return d.states=n,s(c,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="div",l(t.states["$[]"]("table"),!0)?n:(s=["table",!0],r(t.states,"[]=",s),s[s.length-1])})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var c=a(e,t,"BlockTableHeader"),d=c.$$prototype;return d.states=n,s(c,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="div",l(t.states["$[]"]("th"),!0)?n:(s=["th",!0],r(t.states,"[]=",s),s[s.length-1])})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var c=a(e,t,"BlockTableRow"),d=c.$$prototype;return d.states=n,s(c,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="div",l(t.states["$[]"]("tr"),!0)?n:(s=["tr",!0],r(t.states,"[]=",s),s[s.length-1])})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var c=a(e,t,"BlockTableCell"),d=c.$$prototype;return d.states=n,s(c,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="div",l(t.states["$[]"]("td"),!0)?n:(s=["td",!0],r(t.states,"[]=",s),s[s.length-1])})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Span");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="span"})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Select");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="select"})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Option");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="option"})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var c=a(e,t,"FieldSet"),d=c.$$prototype;return d.states=n,s(c,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="fieldset",l(t.states["$[]"]("fieldset"),!0)?n:(s=["fieldset",!0],r(t.states,"[]=",s),s[s.length-1])})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var r=a(e,t,"Legend");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="legend"})}(f[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),p(f[0],"COMPONENT_CLASSES",new Map([["org.gxg.gui.page",t(t(t("GxG"),"Gui"),"Page")],["org.gxg.gui.abbreviation",t(t(t("GxG"),"Gui"),"Abbreviation")],["org.gxg.gui.address",t(t(t("GxG"),"Gui"),"Address")],["org.gxg.gui.area",t(t(t("GxG"),"Gui"),"Area")],["org.gxg.gui.bold",t(t(t("GxG"),"Gui"),"Bold")],["org.gxg.gui.bdi",t(t(t("GxG"),"Gui"),"Bdi")],["org.gxg.gui.bdo",t(t(t("GxG"),"Gui"),"Bdo")],["org.gxg.gui.blockquote",t(t(t("GxG"),"Gui"),"BlockQuote")],["org.gxg.gui.break",t(t(t("GxG"),"Gui"),"Break")],["org.gxg.gui.caption",t(t(t("GxG"),"Gui"),"Caption")],["org.gxg.gui.cite",t(t(t("GxG"),"Gui"),"Cite")],["org.gxg.gui.code",t(t(t("GxG"),"Gui"),"Code")],["org.gxg.gui.column",t(t(t("GxG"),"Gui"),"Column")],["org.gxg.gui.column.group",t(t(t("GxG"),"Gui"),"ColumnGroup")],["org.gxg.gui.data",t(t(t("GxG"),"Gui"),"Data")],["org.gxg.gui.data.list",t(t(t("GxG"),"Gui"),"DataList")],["org.gxg.gui.description",t(t(t("GxG"),"Gui"),"Description")],["org.gxg.gui.deleted",t(t(t("GxG"),"Gui"),"Deleted")],["org.gxg.gui.details",t(t(t("GxG"),"Gui"),"Details")],["org.gxg.gui.dfn",t(t(t("GxG"),"Gui"),"Dfn")],["org.gxg.gui.dialog",t(t(t("GxG"),"Gui"),"Dialog")],["org.gxg.gui.division",t(t(t("GxG"),"Gui"),"Division")],["org.gxg.gui.description.list",t(t(t("GxG"),"Gui"),"DescriptionList")],["org.gxg.gui.description.item",t(t(t("GxG"),"Gui"),"DescriptionTerm")],["org.gxg.gui.emphasis",t(t(t("GxG"),"Gui"),"Emphasis")],["org.gxg.gui.figure",t(t(t("GxG"),"Gui"),"Figure")],["org.gxg.gui.figure.caption",t(t(t("GxG"),"Gui"),"FigureCaption")],["org.gxg.gui.theme.divider",t(t(t("GxG"),"Gui"),"ThemeDivider")],["org.gxg.gui.italic",t(t(t("GxG"),"Gui"),"Italic")],["org.gxg.gui.frame.inline",t(t(t("GxG"),"Gui"),"InlineFrame")],["org.gxg.gui.insertion",t(t(t("GxG"),"Gui"),"Insertion")],["org.gxg.gui.keyboard.key",t(t(t("GxG"),"Gui"),"KeyboardKey")],["org.gxg.gui.map",t(t(t("GxG"),"Gui"),"Map")],["org.gxg.gui.mark",t(t(t("GxG"),"Gui"),"Mark")],["org.gxg.gui.meter",t(t(t("GxG"),"Gui"),"Meter")],["org.gxg.gui.noscript",t(t(t("GxG"),"Gui"),"NoScript")],["org.gxg.gui.object",t(t(t("GxG"),"Gui"),"Object")],["org.gxg.gui.option.group",t(t(t("GxG"),"Gui"),"OptionGroup")],["org.gxg.gui.parameter",t(t(t("GxG"),"Gui"),"Parameter")],["org.gxg.gui.picture",t(t(t("GxG"),"Gui"),"Picture")],["org.gxg.gui.preformatted",t(t(t("GxG"),"Gui"),"Preformatted")],["org.gxg.gui.progress",t(t(t("GxG"),"Gui"),"Progress")],["org.gxg.gui.quotation",t(t(t("GxG"),"Gui"),"Quotation")],["org.gxg.gui.strike.through",t(t(t("GxG"),"Gui"),"StrikeThrough")],["org.gxg.gui.sample",t(t(t("GxG"),"Gui"),"Sample")],["org.gxg.gui.section",t(t(t("GxG"),"Gui"),"Section")],["org.gxg.gui.small",t(t(t("GxG"),"Gui"),"Small")],["org.gxg.gui.source",t(t(t("GxG"),"Gui"),"Source")],["org.gxg.gui.strong",t(t(t("GxG"),"Gui"),"Strong")],["org.gxg.gui.style",t(t(t("GxG"),"Gui"),"Style")],["org.gxg.gui.sub.script",t(t(t("GxG"),"Gui"),"SubScript")],["org.gxg.gui.summary",t(t(t("GxG"),"Gui"),"Summary")],["org.gxg.gui.super.script",t(t(t("GxG"),"Gui"),"SuperScript")],["org.gxg.gui.svg",t(t(t("GxG"),"Gui"),"Svg")],["org.gxg.gui.template",t(t(t("GxG"),"Gui"),"Template")],["org.gxg.gui.text.area",t(t(t("GxG"),"Gui"),"TextArea")],["org.gxg.gui.time",t(t(t("GxG"),"Gui"),"Time")],["org.gxg.gui.track",t(t(t("GxG"),"Gui"),"Track")],["org.gxg.gui.misspelled",t(t(t("GxG"),"Gui"),"Misspelled")],["org.gxg.gui.variable",t(t(t("GxG"),"Gui"),"Variable")],["org.gxg.gui.word.break",t(t(t("GxG"),"Gui"),"WordBreak")],["org.gxg.gui.header",t(t(t("GxG"),"Gui"),"Header")],["org.gxg.gui.navigator",t(t(t("GxG"),"Gui"),"Navigation")],["org.gxg.gui.main",t(t(t("GxG"),"Gui"),"Main")],["org.gxg.gui.article",t(t(t("GxG"),"Gui"),"Article")],["org.gxg.gui.aside",t(t(t("GxG"),"Gui"),"Aside")],["org.gxg.gui.footer",t(t(t("GxG"),"Gui"),"Footer")],["org.gxg.gui.form",t(t(t("GxG"),"Gui"),"Form")],["org.gxg.gui.input.button",t(t(t("GxG"),"Gui"),"ButtonInput")],["org.gxg.gui.input.button.submit",t(t(t("GxG"),"Gui"),"SubmitButton")],["org.gxg.gui.block",t(t(t("GxG"),"Gui"),"Block")],["org.gxg.gui.button.checkbox",t(t(t("GxG"),"Gui"),"CheckBox")],["org.gxg.gui.image",t(t(t("GxG"),"Gui"),"Image")],["org.gxg.gui.video",t(t(t("GxG"),"Gui"),"Video")],["org.gxg.gui.audio",t(t(t("GxG"),"Gui"),"Audio")],["org.gxg.gui.canvas",t(t(t("GxG"),"Gui"),"Canvas")],["org.gxg.gui.input.hidden",t(t(t("GxG"),"Gui"),"HiddenInput")],["org.gxg.gui.input.file",t(t(t("GxG"),"Gui"),"FileInput")],["org.gxg.gui.input.text",t(t(t("GxG"),"Gui"),"TextInput")],["org.gxg.gui.input.password",t(t(t("GxG"),"Gui"),"PasswordInput")],["org.gxg.gui.input.reset",t(t(t("GxG"),"Gui"),"ResetInput")],["org.gxg.gui.button.radio",t(t(t("GxG"),"Gui"),"RadioButton")],["org.gxg.gui.picker.color",t(t(t("GxG"),"Gui"),"ColorPicker")],["org.gxg.gui.picker.date",t(t(t("GxG"),"Gui"),"DatePicker")],["org.gxg.gui.input.datetime.local",t(t(t("GxG"),"Gui"),"DateTimeLocal")],["org.gxg.gui.input.email",t(t(t("GxG"),"Gui"),"EmailInput")],["org.gxg.gui.picker.month",t(t(t("GxG"),"Gui"),"MonthPicker")],["org.gxg.gui.picker.number",t(t(t("GxG"),"Gui"),"NumberInput")],["org.gxg.gui.input.range",t(t(t("GxG"),"Gui"),"RangeInput")],["org.gxg.gui.input.search",t(t(t("GxG"),"Gui"),"SearchInput")],["org.gxg.gui.input.phone",t(t(t("GxG"),"Gui"),"PhoneInput")],["org.gxg.gui.picker.time",t(t(t("GxG"),"Gui"),"TimePicker")],["org.gxg.gui.input.url",t(t(t("GxG"),"Gui"),"UrlInput")],["org.gxg.gui.picker.week",t(t(t("GxG"),"Gui"),"WeekPicker")],["org.gxg.gui.label",t(t(t("GxG"),"Gui"),"Label")],["org.gxg.gui.output",t(t(t("GxG"),"Gui"),"Output")],["org.gxg.gui.paragraph",t(t(t("GxG"),"Gui"),"Paragraph")],["org.gxg.gui.header.one",t(t(t("GxG"),"Gui"),"Header1")],["org.gxg.gui.header.two",t(t(t("GxG"),"Gui"),"Header2")],["org.gxg.gui.header.three",t(t(t("GxG"),"Gui"),"Header3")],["org.gxg.gui.header.four",t(t(t("GxG"),"Gui"),"Header4")],["org.gxg.gui.header.five",t(t(t("GxG"),"Gui"),"Header5")],["org.gxg.gui.header.six",t(t(t("GxG"),"Gui"),"Header6")],["org.gxg.gui.list",t(t(t("GxG"),"Gui"),"List")],["org.gxg.gui.list.ordered",t(t(t("GxG"),"Gui"),"OrderedList")],["org.gxg.gui.list.item",t(t(t("GxG"),"Gui"),"ListItem")],["org.gxg.gui.link.anchor",t(t(t("GxG"),"Gui"),"Anchor")],["org.gxg.gui.link.external",t(t(t("GxG"),"Gui"),"ExternalLink")],["org.gxg.gui.button",t(t(t("GxG"),"Gui"),"Button")],["org.gxg.gui.table",t(t(t("GxG"),"Gui"),"Table")],["org.gxg.gui.table.header",t(t(t("GxG"),"Gui"),"TableHeader")],["org.gxg.gui.table.row",t(t(t("GxG"),"Gui"),"TableRow")],["org.gxg.gui.table.cell",t(t(t("GxG"),"Gui"),"TableCell")],["org.gxg.gui.block.table",t(t(t("GxG"),"Gui"),"BlockTable")],["org.gxg.gui.block.table.header",t(t(t("GxG"),"Gui"),"BlockTableHeader")],["org.gxg.gui.block.table.row",t(t(t("GxG"),"Gui"),"BlockTableRow")],["org.gxg.gui.block.table.cell",t(t(t("GxG"),"Gui"),"BlockTableCell")],["org.gxg.gui.span",t(t(t("GxG"),"Gui"),"Span")],["org.gxg.gui.select",t(t(t("GxG"),"Gui"),"Select")],["org.gxg.gui.option",t(t(t("GxG"),"Gui"),"Option")],["org.gxg.gui.field.set",t(t(t("GxG"),"Gui"),"FieldSet")],["org.gxg.gui.legend",t(t(t("GxG"),"Gui"),"Legend")]])),h(y,"$component_class",function(s){var o=n;return s==null&&(s=n),o=n,c(s)&&(o=t(t(j("GxG"),"Gui"),"COMPONENT_CLASSES")["$[]"](s.$to_s().$to_sym())),o},-1),h(y,"$class_component",function(s){var o=n,i=n;return s==null&&(s=n),o=n,c(s)&&(i=t(t(j("GxG"),"Gui"),"COMPONENT_CLASSES").$values().$index(s),c(i)&&(o=t(t(j("GxG"),"Gui"),"COMPONENT_CLASSES").$keys()["$[]"](i))),o},-1),h(y,"$component_registered?",function(s){return s==null&&(s=n),!!c(t(j("GxG"),"Gui").$component_class(s))},-1),h(y,"$register_component_class",function(s,o){var i=this;return s==null&&(s=n),o==null&&(o=n),!!(c(s["$is_any?"](t("String"),t("Symbol")))&&c(o["$is_a?"](g)))&&(c(t(j("GxG"),"Gui")["$component_registered?"](s.$to_s().$to_sym()))?v(t(j("GxG"),"Gui").$component_class(s.$to_s().$to_sym()),o)?(t(t(j("GxG"),"Gui"),"COMPONENT_CLASSES")["$[]="](s.$to_s().$to_sym(),o),!0):(i.$log_warn("Component Class "+s.$to_s().$to_sym().$inspect()+" => "+o.$inspect()+" already defined."),!1):(t(t(j("GxG"),"Gui"),"COMPONENT_CLASSES")["$[]="](s.$to_s().$to_sym(),o),!0))},-1)}(f[0],f)}(u[0],u),function(e,u){var p=m(e,"GxG"),h=[p].concat(u);return function(e,u){var p=m(e,"Gui"),h=[p].concat(u);return function(e,t){var c=a(e,t,"GridContainer"),d=c.$$prototype;return d.states=n,s(c,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="div",l(t.states["$[]"]("grid-container"),!0)?n:(s=["grid-container",!0],r(t.states,"[]=",s),s[s.length-1])}),s(c,"$_after_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_after_create",e,!1,!0),"_after_create",[],null),$(document).foundation()})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.grid.container",t(t(t("GxG"),"Gui"),"GridContainer")),function(e,t){var c=a(e,t,"GridX"),d=c.$$prototype;return d.states=n,s(c,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="div",l(t.states["$[]"]("grid-x"),!0)?n:(s=["grid-x",!0],r(t.states,"[]=",s),s[s.length-1])}),s(c,"$_after_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_after_create",e,!1,!0),"_after_create",[],null),$(document).foundation()})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.grid.x",t(t(t("GxG"),"Gui"),"GridX")),function(e,t){var c=a(e,t,"GridY"),d=c.$$prototype;return d.states=n,s(c,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="div",l(t.states["$[]"]("grid-y"),!0)?n:(s=["grid-y",!0],r(t.states,"[]=",s),s[s.length-1])}),s(c,"$_after_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_after_create",e,!1,!0),"_after_create",[],null),$(document).foundation()})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.grid.y",t(t(t("GxG"),"Gui"),"GridY")),function(e,t){var d=a(e,t,"Accordion"),u=d.$$prototype;return u.states=u.options=n,s(d,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="ul",l(t.states["$[]"]("accordion"),!0)||t.states["$[]="]("accordion",!0),c(t.options.$keys()["$include?"]("data-accordion"))?n:(s=["data-accordion",n],r(t.options,"[]=",s),s[s.length-1])}),s(d,"$_after_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_after_create",e,!1,!0),"_after_create",[],null),$(document).foundation()})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.accordion",t(t(t("GxG"),"Gui"),"Accordion")),function(e,t){var d=a(e,t,"AccordionItem"),u=d.$$prototype;return u.states=u.options=n,s(d,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="li",l(t.states["$[]"]("accordion-item"),!0)||t.states["$[]="]("accordion-item",!0),c(t.options.$keys()["$include?"]("data-accordion-item"))?n:(s=["data-accordion-item",n],r(t.options,"[]=",s),s[s.length-1])}),s(d,"$_after_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_after_create",e,!1,!0),"_after_create",[],null),$(document).foundation()})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.accordion.item",t(t(t("GxG"),"Gui"),"AccordionItem")),function(e,t){var d=a(e,t,"AccordionMenu"),u=d.$$prototype;return u.states=u.options=n,s(d,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="ul",l(t.states["$[]"]("vertical"),!0)||t.states["$[]="]("vertical",!0),l(t.states["$[]"]("menu"),!0)||t.states["$[]="]("menu",!0),c(t.options.$keys()["$include?"]("data-accordion-menu"))?n:(s=["data-accordion-menu",n],r(t.options,"[]=",s),s[s.length-1])}),s(d,"$_after_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_after_create",e,!1,!0),"_after_create",[],null),$(document).foundation()})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.accordion.menu",t(t(t("GxG"),"Gui"),"AccordionMenu")),function(e,t){var c=a(e,t,"AccordionSubMenu"),d=c.$$prototype;return d.states=n,s(c,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="ul",l(t.states["$[]"]("vertical"),!0)||t.states["$[]="]("vertical",!0),l(t.states["$[]"]("menu"),!0)||t.states["$[]="]("menu",!0),l(t.states["$[]"]("nested"),!0)?n:(s=["nested",!0],r(t.states,"[]=",s),s[s.length-1])}),s(c,"$_after_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_after_create",e,!1,!0),"_after_create",[],null),$(document).foundation()})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.accordion.submenu",t(t(t("GxG"),"Gui"),"AccordionSubMenu")),function(e,t){var r=a(e,t,"AccordionMenuItem");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="li"})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.accordion.menu.item",t(t(t("GxG"),"Gui"),"AccordionMenuItem")),function(e,t){var c=a(e,t,"AnchorButton"),d=c.$$prototype;return d.states=n,s(c,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="a",l(t.states["$[]"]("button"),!0)?n:(s=["button",!0],r(t.states,"[]=",s),s[s.length-1])}),s(c,"$_after_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_after_create",e,!1,!0),"_after_create",[],null),$(document).foundation()})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.anchor.button",t(t(t("GxG"),"Gui"),"AnchorButton")),function(e,t){var c=a(e,t,"Badge"),d=c.$$prototype;return d.states=n,s(c,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="span",l(t.states["$[]"]("badge"),!0)?n:(s=["badge",!0],r(t.states,"[]=",s),s[s.length-1])}),s(c,"$_after_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_after_create",e,!1,!0),"_after_create",[],null),$(document).foundation()})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.badge",t(t(t("GxG"),"Gui"),"Badge")),function(e,t){var c=a(e,t,"Breadcrumb"),d=c.$$prototype;return d.states=n,s(c,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="ul",l(t.states["$[]"]("breadcrumb"),!0)?n:(s=["breadcrumb",!0],r(t.states,"[]=",s),s[s.length-1])}),s(c,"$_after_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_after_create",e,!1,!0),"_after_create",[],null),$(document).foundation()})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.breadcrumb",t(t(t("GxG"),"Gui"),"Breadcrumb")),function(e,t){var r=a(e,t,"BreadcrumbItem");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="li"}),s(r,"$_after_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_after_create",e,!1,!0),"_after_create",[],null),$(document).foundation()})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.breadcrumb.item",t(t(t("GxG"),"Gui"),"BreadcrumbItem")),function(e,t){var c=a(e,t,"ButtonGroup"),d=c.$$prototype;return d.states=n,s(c,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="div",l(t.states["$[]"]("button-group"),!0)?n:(s=["button-group",!0],r(t.states,"[]=",s),s[s.length-1])}),s(c,"$_after_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_after_create",e,!1,!0),"_after_create",[],null),$(document).foundation()})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.button.group",t(t(t("GxG"),"Gui"),"ButtonGroup")),function(e,t){var c=a(e,t,"Callout"),d=c.$$prototype;return d.states=n,s(c,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="div",l(t.states["$[]"]("callout"),!0)?n:(s=["callout",!0],r(t.states,"[]=",s),s[s.length-1])}),s(c,"$_after_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_after_create",e,!1,!0),"_after_create",[],null),$(document).foundation()})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.callout",t(t(t("GxG"),"Gui"),"Callout")),function(e,t){var c=a(e,t,"ColoredLabel"),d=c.$$prototype;return d.states=n,s(c,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="span",l(t.states["$[]"]("label"),!0)?n:(s=["label",!0],r(t.states,"[]=",s),s[s.length-1])})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.label.colored",t(t(t("GxG"),"Gui"),"ColoredLabel")),function(e,t){var d=a(e,t,"DrilldownMenu"),u=d.$$prototype;return u.states=u.options=n,s(d,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="ul",l(t.states["$[]"]("vertical"),!0)||t.states["$[]="]("vertical",!0),l(t.states["$[]"]("menu"),!0)||t.states["$[]="]("menu",!0),c(t.options.$keys()["$include?"]("data-drilldown"))?n:(s=["data-drilldown",n],r(t.options,"[]=",s),s[s.length-1])}),s(d,"$_after_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_after_create",e,!1,!0),"_after_create",[],null),$(document).foundation()})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.drilldown.menu",t(t(t("GxG"),"Gui"),"DrilldownMenu")),function(e,t){var c=a(e,t,"DrilldownSubMenu"),d=c.$$prototype;return d.states=n,s(c,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="ul",l(t.states["$[]"]("vertical"),!0)||t.states["$[]="]("vertical",!0),l(t.states["$[]"]("menu"),!0)?n:(s=["menu",!0],r(t.states,"[]=",s),s[s.length-1])}),s(c,"$_after_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_after_create",e,!1,!0),"_after_create",[],null),$(document).foundation()})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.drilldown.submenu",t(t(t("GxG"),"Gui"),"DrilldownSubMenu")),function(e,t){var r=a(e,t,"DrilldownMenuItem");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="li"})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.drilldown.menu.item",t(t(t("GxG"),"Gui"),"DrilldownMenuItem")),function(e,t){var c=a(e,t,"DropdownSubMenu"),d=c.$$prototype;return d.states=n,s(c,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="ul",l(t.states["$[]"]("menu"),!0)?n:(s=["menu",!0],r(t.states,"[]=",s),s[s.length-1])}),s(c,"$_after_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_after_create",e,!1,!0),"_after_create",[],null),$(document).foundation()})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.dropdown.submenu",t(t(t("GxG"),"Gui"),"DropdownSubMenu")),function(e,t){var l=a(e,t,"DropdownMenuItem"),d=l.$$prototype;return d.uuid=d.settings=d.application=d.label=d.parent=n,s(l,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="li"}),s(l,"$initialize",function e(t,s,a){var c=e.$$p||n,r=this;return e.$$p=null,a==null&&(a=new Map),r.label=n,o(r,i(r,"initialize",e,!1,!0),"initialize",[t,s,a],null),r},-3),s(l,"$cascade",function(){var t=this,s=n,i=n,o=n,s=t.$new_component("org.gxg.gui.link.anchor");return s["$title="]("label "+t.uuid.$to_s()),s["$[]="]("options",new Map([["content",(c(i=t.settings["$[]"]("label"))?i:"Untitled").$to_s()]])),s["$[]="]("script",`
on(:mouseup) do |event|
if @parent.enabled?
@parent.selecct()
end
end
`),t.$page().$build_components(t,[s],new Map([["application",t.application]])),o=t.$page().$find_object_by("label "+t.uuid.$to_s()),c(o)?t.label=o:n}),s(l,"$label",f("label")),s(l,"$set_label_text",function(t){var s,o=this;return t==null&&(t=n),c(o.label)?(o.label.$set_text(t.$to_s()),(s=["label",t.$to_s()],r(o.settings,"[]=",s),s[s.length-1])):n},-1),s(l,"$enabled?",function(){var t=this;return!!c(t.label)&&!c(t.label["$state_active?"]("menu-item-disabled"))}),s(l,"$enable",function(){var t=this;return c(t.label)?t.label.$set_state("menu-item-disabled",!1):n}),s(l,"$disable",function(){var t=this;return c(t.label)?t.label.$set_state("menu-item-disabled",!0):n}),s(l,"$set_data",function(t){var s,o=this;return t==null&&(t=n),(s=["data",t],r(o.settings,"[]=",s),s[s.length-1])},-1),s(l,"$select",function(t){var o=this,s=n;return t==null&&(t=n),s=o.parent.$application(),c(s)?s.$menu_item_select(o.settings):n},-1)}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.dropdown.menu.item",t(t(t("GxG"),"Gui"),"DropdownMenuItem")),function(e,t){var d=a(e,t,"Equalizer"),u=d.$$prototype;return u.states=u.options=n,s(d,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="div",l(t.states["$[]"]("grid-x"),!0)||t.states["$[]="]("grid-x",!0),l(t.states["$[]"]("grid-margin-x"),!0)||t.states["$[]="]("grid-margin-x",!0),c(t.options.$keys()["$include?"]("data-equalizer"))||t.options["$[]="]("data-equalizer",n),c(t.options.$keys()["$include?"]("data-equalize-on"))?n:(s=["data-equalize-on","medium"],r(t.options,"[]=",s),s[s.length-1])})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.equalizer",t(t(t("GxG"),"Gui"),"Equalizer")),function(e,t){var c=a(e,t,"FlexGridRow"),d=c.$$prototype;return d.states=n,s(c,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="div",l(t.states["$[]"]("row"),!0)?n:(s=["row",!0],r(t.states,"[]=",s),s[s.length-1])})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.flexgrid.row",t(t(t("GxG"),"Gui"),"FlexGridRow")),function(e,t){var c=a(e,t,"FlexGridColumn"),d=c.$$prototype;return d.states=n,s(c,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="div",l(t.states["$[]"]("columns"),!0)?n:(s=["columns",!0],r(t.states,"[]=",s),s[s.length-1])})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.flexgrid.column",t(t(t("GxG"),"Gui"),"FlexGridColumn")),function(e,t){var c=a(e,t,"Embed"),d=c.$$prototype;return d.states=n,s(c,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="div",l(t.states["$[]"]("responsive-embed"),!0)?n:(s=["responsive-embed",!0],r(t.states,"[]=",s),s[s.length-1])})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.embed",t(t(t("GxG"),"Gui"),"Embed")),function(e,t){var c=a(e,t,"MediaObject"),d=c.$$prototype;return d.states=n,s(c,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="div",l(t.states["$[]"]("media-object"),!0)?n:(s=["media-object",!0],r(t.states,"[]=",s),s[s.length-1])})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.media.object",t(t(t("GxG"),"Gui"),"MediaObject")),function(e,t){var c=a(e,t,"MediaObjectSection"),d=c.$$prototype;return d.states=n,s(c,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="div",l(t.states["$[]"]("media-object-section"),!0)?n:(s=["media-object-section",!0],r(t.states,"[]=",s),s[s.length-1])})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.media.object.section",t(t(t("GxG"),"Gui"),"MediaObjectSection")),function(e,d){var u=a(e,d,"DropdownMenu"),h=u.$$prototype;return h.states=h.options=h.application=n,s(u,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="ul",l(t.states["$[]"]("dropdown"),!0)||t.states["$[]="]("dropdown",!0),l(t.states["$[]"]("menu"),!0)||t.states["$[]="]("menu",!0),c(t.options.$keys()["$include?"]("data-dropdown-menu"))?n:(s=["data-dropdown-menu",n],r(t.options,"[]=",s),s[s.length-1])}),s(u,"$add_menu_item",function(s,o){var a=this,i=n;return s==null&&(s=n),o==null&&(o=n),i=t(t(t("GxG"),"Database"),"DetachedHash").$new(),i["$[]="]("component","org.gxg.gui.dropdown.menu.item"),i["$[]="]("settings",new Map([["label",s],["data",o]])),i["$[]="]("options",new Map),i["$[]="]("script",""),i["$[]="]("content",[]),a.$page().$build_components(a,[i],new Map([["application",a.application]])),!0},-1)}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.dropdown.menu",t(t(t("GxG"),"Gui"),"DropdownMenu")),a(h[0],t(t(t("GxG"),"Gui"),"DropdownMenu"),"MenuBar"),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.menu.bar",t(t(t("GxG"),"Gui"),"MenuBar")),function(e,t){var c=a(e,t,"Menu"),d=c.$$prototype;return d.states=d.application=n,s(c,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="ul",l(t.states["$[]"]("menu"),!0)?n:(s=["menu",!0],r(t.states,"[]=",s),s[s.length-1])}),s(c,"$add_menu_item",function(t,s){var o=this,i=n;return t==null&&(t=n),s==null&&(s=n),i=o.$new_component("org.gxg.gui.menu.item"),i["$[]="]("settings",new Map([["label",t],["data",s]])),o.$page().$build_components(o,[i],new Map([["application",o.application]])),!0},-1)}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.menu",t(t(t("GxG"),"Gui"),"Menu")),function(e,t){var l=a(e,t,"MenuItem"),d=l.$$prototype;return d.uuid=d.settings=d.application=d.label=d.parent=n,s(l,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="li"}),s(l,"$initialize",function e(t,s,a){var c=e.$$p||n,r=this;return e.$$p=null,a==null&&(a=new Map),r.label=n,o(r,i(r,"initialize",e,!1,!0),"initialize",[t,s,a],null),r},-3),s(l,"$cascade",function(){var t=this,s=n,i=n,o=n,s=t.$new_component("org.gxg.gui.link.anchor");return s["$title="]("label "+t.uuid.$to_s()),s["$[]="]("options",new Map([["content",(c(i=t.settings["$[]"]("label"))?i:"Untitled").$to_s()]])),s["$[]="]("script",`
on(:mouseup) do |event|
if @parent.enabled?
@parent.selecct()
end
end
`),t.$page().$build_components(t,[s],new Map([["application",t.application]])),o=t.$page().$find_object_by("label "+t.uuid.$to_s()),c(o)?t.label=o:n}),s(l,"$label",f("label")),s(l,"$set_label_text",function(t){var s,o=this;return t==null&&(t=n),c(o.label)?(o.label.$set_text(t.$to_s()),(s=["label",t.$to_s()],r(o.settings,"[]=",s),s[s.length-1])):n},-1),s(l,"$enabled?",function(){var t=this;return!!c(t.label)&&!c(t.label["$state_active?"]("menu-item-disabled"))}),s(l,"$enable",function(){var t=this;return c(t.label)?t.label.$set_state("menu-item-disabled",!1):n}),s(l,"$disable",function(){var t=this;return c(t.label)?t.label.$set_state("menu-item-disabled",!0):n}),s(l,"$set_data",function(t){var s,o=this;return t==null&&(t=n),(s=["data",t],r(o.settings,"[]=",s),s[s.length-1])},-1),s(l,"$select",function(t){var o=this,s=n;return t==null&&(t=n),s=o.parent.$application(),c(s)?s.$menu_item_select(o.settings):n},-1)}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.menu.item",t(t(t("GxG"),"Gui"),"MenuItem")),function(e,t){var c=a(e,t,"OffCanvasWrapper"),d=c.$$prototype;return d.states=n,s(c,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="div",l(t.states["$[]"]("off-canvas-wrapper"),!0)?n:(s=["off-canvas-wrapper",!0],r(t.states,"[]=",s),s[s.length-1])})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.offcanvas.wrapper",t(t(t("GxG"),"Gui"),"OffCanvasWrapper")),function(e,t){var d=a(e,t,"OffCanvasWrapperInner"),u=d.$$prototype;return u.states=u.options=n,s(d,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="div",l(t.states["$[]"]("off-canvas-wrapper-inner"),!0)||t.states["$[]="]("off-canvas-wrapper-inner",!0),c(t.options.$keys()["$include?"]("data-off-canvas-wrapper"))?n:(s=["data-off-canvas-wrapper",n],r(t.options,"[]=",s),s[s.length-1])})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.offcanvas.wrapper.inner",t(t(t("GxG"),"Gui"),"OffCanvasWrapperInner")),function(e,t){var d=a(e,t,"OffCanvasLeft"),u=d.$$prototype;return u.states=u.options=n,s(d,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="div",l(t.states["$[]"]("off-canvas"),!0)||t.states["$[]="]("off-canvas",!0),l(t.states["$[]"]("position-left"),!0)||t.states["$[]="]("position-left",!0),c(t.options.$keys()["$include?"]("data-off-canvas"))?n:(s=["data-off-canvas",n],r(t.options,"[]=",s),s[s.length-1])})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.offcanvas.left",t(t(t("GxG"),"Gui"),"OffCanvasLeft")),function(e,t){var d=a(e,t,"OffCanvasRight"),u=d.$$prototype;return u.states=u.options=n,s(d,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="div",l(t.states["$[]"]("off-canvas"),!0)||t.states["$[]="]("off-canvas",!0),l(t.states["$[]"]("position-right"),!0)||t.states["$[]="]("position-right",!0),c(t.options.$keys()["$include?"]("data-off-canvas"))||t.options["$[]="]("data-off-canvas",n),c(t.options.$keys()["$include?"]("data-position"))?n:(s=["data-position","right"],r(t.options,"[]=",s),s[s.length-1])})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.offcanvas.right",t(t(t("GxG"),"Gui"),"OffCanvasRight")),function(e,t){var d=a(e,t,"OffCanvasContent"),u=d.$$prototype;return u.states=u.options=n,s(d,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="div",l(t.states["$[]"]("off-canvas-content"),!0)||t.states["$[]="]("off-canvas-content",!0),c(t.options.$keys()["$include?"]("data-off-canvas-content"))?n:(s=["data-off-canvas-content",n],r(t.options,"[]=",s),s[s.length-1])})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.offcanvas.content",t(t(t("GxG"),"Gui"),"OffCanvasContent")),function(e,t){var d=a(e,t,"Orbit"),u=d.$$prototype;return u.states=u.options=n,s(d,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="div",l(t.states["$[]"]("orbit"),!0)||t.states["$[]="]("orbit",!0),c(t.options.$keys()["$include?"]("role"))||t.options["$[]="]("role","region"),c(t.options.$keys()["$include?"]("data-orbit"))?n:(s=["data-orbit",n],r(t.options,"[]=",s),s[s.length-1])})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.orbit",t(t(t("GxG"),"Gui"),"Orbit")),function(e,t){var c=a(e,t,"OrbitContainer"),d=c.$$prototype;return d.states=n,s(c,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="ul",l(t.states["$[]"]("orbit-container"),!0)?n:(s=["orbit-container",!0],r(t.states,"[]=",s),s[s.length-1])})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.orbit.container",t(t(t("GxG"),"Gui"),"OrbitContainer")),function(e,t){var c=a(e,t,"OrbitPrevious"),d=c.$$prototype;return d.states=n,s(c,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="button",l(t.states["$[]"]("orbit-previous"),!0)?n:(s=["orbit-previous",!0],r(t.states,"[]=",s),s[s.length-1])})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.orbit.previous",t(t(t("GxG"),"Gui"),"OrbitPrevious")),function(e,t){var c=a(e,t,"OrbitNext"),d=c.$$prototype;return d.states=n,s(c,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="button",l(t.states["$[]"]("orbit-next"),!0)?n:(s=["orbit-next",!0],r(t.states,"[]=",s),s[s.length-1])})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.orbit.next",t(t(t("GxG"),"Gui"),"OrbitNext")),function(e,t){var c=a(e,t,"OrbitSlide"),d=c.$$prototype;return d.states=n,s(c,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="li",l(t.states["$[]"]("orbit-slide"),!0)?n:(s=["orbit-slide",!0],r(t.states,"[]=",s),s[s.length-1])})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.orbit.slide",t(t(t("GxG"),"Gui"),"OrbitSlide")),function(e,t){var c=a(e,t,"OrbitNavigator"),d=c.$$prototype;return d.states=n,s(c,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="nav",l(t.states["$[]"]("orbit-bullets"),!0)?n:(s=["orbit-bullets",!0],r(t.states,"[]=",s),s[s.length-1])})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.orbit.navigator",t(t(t("GxG"),"Gui"),"OrbitNavigator")),function(e,t){var l=a(e,t,"OrbitBullet"),d=l.$$prototype;return d.options=n,s(l,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="button",c(t.options.$keys()["$include?"]("data-slide"))?n:(s=["data-slide","0"],r(t.options,"[]=",s),s[s.length-1])})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.orbit.bullet",t(t(t("GxG"),"Gui"),"OrbitBullet")),function(e,t){var l=a(e,t,"Pagination"),d=l.$$prototype;return d.options=n,s(l,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="ul",c(t.options.$keys()["$include?"]("role"))?n:(s=["role","navigation"],r(t.options,"[]=",s),s[s.length-1])})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.pagination",t(t(t("GxG"),"Gui"),"Pagination")),function(e,t){var r=a(e,t,"PaginationItem");return s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="li"})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.pagination.item",t(t(t("GxG"),"Gui"),"PaginationItem")),function(e,t){var d=a(e,t,"ProgressBar"),u=d.$$prototype;return u.states=u.options=n,s(d,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="div",l(t.states["$[]"]("progress"),!0)||t.states["$[]="]("progress",!0),c(t.options.$keys()["$include?"]("role"))?n:(s=["role","progressbar"],r(t.options,"[]=",s),s[s.length-1])})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.progress.bar",t(t(t("GxG"),"Gui"),"ProgressBar")),function(e,t){var c=a(e,t,"ProgressMeter"),d=c.$$prototype;return d.states=n,s(c,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="div",l(t.states["$[]"]("progress-meter"),!0)?n:(s=["progress-meter",!0],r(t.states,"[]=",s),s[s.length-1])})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.progress.meter",t(t(t("GxG"),"Gui"),"ProgressMeter")),function(e,t){var u=a(e,t,"HorizontalSlider"),r=u.$$prototype;return r.states=r.options=r.data_second=r.data_start=r.data_end=r.uuid=n,s(u,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="div",l(t.states["$[]"]("slider"),!0)||t.states["$[]="]("slider",!0),c(t.options["$[]"]("data-initial-start"))?t.data_start=t.options.$delete("data-initial-start"):t.data_start="50",c(t.options["$[]"]("data-initial-end"))?t.data_second=t.options.$delete("data-initial-end"):t.data_second=n,c(t.options["$[]"]("data-end"))?t.data_end=t.options.$delete("data-end"):t.data_end="200"}),s(u,"$_after_create",function e(){var p=e.$$p||n,t=this,a=n,s=n,r=n,h=n,l=n,u=n,m=n,f=n;return e.$$p=null,o(t,i(t,"_after_create",e,!1,!0),"_after_create",[],null),c(t.data_second)?(a=t.$add_child(new Map([["component","org.gxg.gui.block"],["title","slider_container"],["settings",new Map],["options",new Map([["states",["small-10 columns"]]])],["script",""],["content",[]]])),s=a.$add_child(new Map([["component","org.gxg.gui.block"],["title","slider"],["settings",new Map],["options",new Map([["data-slider",n],["data-initial-start",t.data_start],["data-initial-end",t.data_second],["data-end",t.data_end],["states",["slider"]]])],["script",""],["content",[]]])),r=s.$add_child(new Map([["component","org.gxg.gui.span"],["title","slider_handle"],["settings",new Map],["options",new Map([["data-slider-handle",n],["role","slider"],["tabindex","1"],["states",["slider-handle"]]])],["script",""],["content",[]]])),s.$add_child(new Map([["component","org.gxg.gui.span"],["title","slider_groove"],["settings",new Map],["options",new Map([["data-slider-fill",n],["states",["slider-fill"]]])],["script",""],["content",[]]])),h=s.$add_child(new Map([["component","org.gxg.gui.span"],["title","slider_handle_two"],["settings",new Map],["options",new Map([["data-slider-handle",n],["role","slider"],["tabindex","1"],["states",["slider-handle"]]])],["script",""],["content",[]]])),l=t.$add_child(new Map([["component","org.gxg.gui.block"],["title",d("value_container",t.uuid.$to_s())],["settings",new Map],["options",new Map([["states",["small-2 columns"]]])],["script",""],["content",[]]])),u=l.$add_child(new Map([["component","org.gxg.gui.picker.number"],["title","slider_value"],["settings",new Map],["options",new Map],["script",""],["content",[]]])),m=t.$add_child(new Map([["component","org.gxg.gui.block"],["title",d("value_container_two",t.uuid.$to_s())],["settings",new Map],["options",new Map([["states",["small-2 columns"]]])],["script",""],["content",[]]])),f=m.$add_child(new Map([["component","org.gxg.gui.picker.number"],["title","slider_value_two"],["settings",new Map],["options",new Map],["script",""],["content",[]]])),r.$set_attribute("aria-controls",u.$uuid().$to_s()),h.$set_attribute("aria-controls",f.$uuid().$to_s())):(a=t.$add_child(new Map([["component","org.gxg.gui.block"],["title","slider_container"],["settings",new Map],["options",new Map([["states",["small-10 columns"]]])],["script",""],["content",[]]])),s=a.$add_child(new Map([["component","org.gxg.gui.block"],["title","slider"],["settings",new Map],["options",new Map([["data-slider",n],["data-initial-start",t.data_start],["data-end",t.data_end],["states",["slider"]]])],["script",""],["content",[]]])),r=s.$add_child(new Map([["component","org.gxg.gui.span"],["title","slider_handle"],["settings",new Map],["options",new Map([["data-slider-handle",n],["role","slider"],["tabindex","1"],["states",["slider-handle"]]])],["script",""],["content",[]]])),s.$add_child(new Map([["component","org.gxg.gui.span"],["title","slider_groove"],["settings",new Map],["options",new Map([["data-slider-fill",n],["states",["slider-fill"]]])],["script",""],["content",[]]])),l=t.$add_child(new Map([["component","org.gxg.gui.block"],["title",d("value_container",t.uuid.$to_s())],["settings",new Map],["options",new Map([["states",["small-2 columns"]]])],["script",""],["content",[]]])),u=l.$add_child(new Map([["component","org.gxg.gui.picker.number"],["title","slider_value"],["settings",new Map],["options",new Map],["script",""],["content",[]]])),r.$set_attribute("aria-controls",u.$uuid().$to_s())),$(document).foundation()}),s(u,"$set_script",function e(t,s){var d=e.$$p||n,a=this,r=n,l=n;return e.$$p=null,t==null&&(t=""),s==null&&(s=n),c(s)?s.$set_script(t):c(a.data_second)?(r=a.$find_descendant("slider_handle"),c(r)||a.$raise("Unable to find slider handle object."),o(a,i(a,"set_script",e,!1,!0),"set_script",[t,r],null),l=a.$find_descendant("slider_handle_two"),c(l)||a.$raise("Unable to find slider handle object."),o(a,i(a,"set_script",e,!1,!0),"set_script",[t,l],null)):(r=a.$find_descendant("slider_handle"),c(r)||a.$raise("Unable to find slider handle object."),o(a,i(a,"set_script",e,!1,!0),"set_script",[t,r],null))},-1)}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.slider.horizontal",t(t(t("GxG"),"Gui"),"HorizontalSlider")),function(e,t){var u=a(e,t,"VerticalSlider"),r=u.$$prototype;return r.states=r.options=r.data_second=r.data_start=r.data_end=r.uuid=n,s(u,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="div",l(t.states["$[]"]("slider"),!0)||t.states["$[]="]("slider",!0),l(t.states["$[]"]("vertical"),!0)||t.states["$[]="]("vertical",!0),c(t.options["$[]"]("data-initial-start"))?t.data_start=t.options.$delete("data-initial-start"):t.data_start="50",c(t.options["$[]"]("data-initial-end"))?t.data_second=t.options.$delete("data-initial-end"):t.data_second=n,c(t.options["$[]"]("data-end"))?t.data_end=t.options.$delete("data-end"):t.data_end="200"}),s(u,"$_after_create",function e(){var p=e.$$p||n,t=this,a=n,s=n,r=n,h=n,l=n,u=n,m=n,f=n;return e.$$p=null,o(t,i(t,"_after_create",e,!1,!0),"_after_create",[],null),c(t.data_second)?(a=t.$add_child(new Map([["component","org.gxg.gui.block"],["title","slider_container"],["settings",new Map],["options",new Map([["states",["small-10 columns"]]])],["script",""],["content",[]]])),s=a.$add_child(new Map([["component","org.gxg.gui.block"],["title","slider"],["settings",new Map],["options",new Map([["data-slider",n],["data-initial-start",t.data_start],["data-initial-end",t.data_second],["data-end",t.data_end],["states",["vertical","slider"]]])],["script",""],["content",[]]])),r=s.$add_child(new Map([["component","org.gxg.gui.span"],["title","slider_handle"],["settings",new Map],["options",new Map([["data-slider-handle",n],["role","slider"],["tabindex","1"],["states",["slider-handle"]]])],["script",""],["content",[]]])),s.$add_child(new Map([["component","org.gxg.gui.span"],["title","slider_groove"],["settings",new Map],["options",new Map([["data-slider-fill",n],["states",["slider-fill"]]])],["script",""],["content",[]]])),h=s.$add_child(new Map([["component","org.gxg.gui.span"],["title","slider_handle_two"],["settings",new Map],["options",new Map([["data-slider-handle",n],["role","slider"],["tabindex","1"],["states",["slider-handle"]]])],["script",""],["content",[]]])),l=t.$add_child(new Map([["component","org.gxg.gui.block"],["title",d("value_container",t.uuid.$to_s())],["settings",new Map],["options",new Map([["states",["small-2 columns"]]])],["script",""],["content",[]]])),u=l.$add_child(new Map([["component","org.gxg.gui.picker.number"],["title","slider_value"],["settings",new Map],["options",new Map],["script",""],["content",[]]])),m=t.$add_child(new Map([["component","org.gxg.gui.block"],["title",d("value_container_two",t.uuid.$to_s())],["settings",new Map],["options",new Map([["states",["small-2 columns"]]])],["script",""],["content",[]]])),f=m.$add_child(new Map([["component","org.gxg.gui.picker.number"],["title","slider_value_two"],["settings",new Map],["options",new Map],["script",""],["content",[]]])),r.$set_attribute("aria-controls",u.$uuid().$to_s()),h.$set_attribute("aria-controls",f.$uuid().$to_s())):(a=t.$add_child(new Map([["component","org.gxg.gui.block"],["title","slider_container"],["settings",new Map],["options",new Map([["states",["small-10 columns"]]])],["script",""],["content",[]]])),s=a.$add_child(new Map([["component","org.gxg.gui.block"],["title","slider"],["settings",new Map],["options",new Map([["data-slider",n],["data-initial-start",t.data_start],["data-end",t.data_end],["states",["vertical","slider"]]])],["script",""],["content",[]]])),r=s.$add_child(new Map([["component","org.gxg.gui.span"],["title","slider_handle"],["settings",new Map],["options",new Map([["data-slider-handle",n],["role","slider"],["tabindex","1"],["states",["slider-handle"]]])],["script",""],["content",[]]])),s.$add_child(new Map([["component","org.gxg.gui.span"],["title","slider_groove"],["settings",new Map],["options",new Map([["data-slider-fill",n],["states",["slider-fill"]]])],["script",""],["content",[]]])),l=t.$add_child(new Map([["component","org.gxg.gui.block"],["title",d("value_container",t.uuid.$to_s())],["settings",new Map],["options",new Map([["states",["small-2 columns"]]])],["script",""],["content",[]]])),u=l.$add_child(new Map([["component","org.gxg.gui.picker.number"],["title","slider_value"],["settings",new Map],["options",new Map],["script",""],["content",[]]])),r.$set_attribute("aria-controls",u.$uuid().$to_s())),$(document).foundation()}),s(u,"$set_script",function e(t,s){var d=e.$$p||n,a=this,r=n,l=n;return e.$$p=null,t==null&&(t=""),s==null&&(s=n),c(s)?s.$set_script(t):c(a.data_second)?(r=a.$find_descendant("slider_handle"),c(r)||a.$raise("Unable to find slider handle object."),o(a,i(a,"set_script",e,!1,!0),"set_script",[t,r],null),l=a.$find_descendant("slider_handle_two"),c(l)||a.$raise("Unable to find slider handle object."),o(a,i(a,"set_script",e,!1,!0),"set_script",[t,l],null)):(r=a.$find_descendant("slider_handle"),c(r)||a.$raise("Unable to find slider handle object."),o(a,i(a,"set_script",e,!1,!0),"set_script",[t,r],null))},-1)}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.slider.vertical",t(t(t("GxG"),"Gui"),"VerticalSlider")),function(e,t){var l=a(e,t,"StickyContainer"),d=l.$$prototype;return d.options=n,s(l,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="div",c(t.options.$keys()["$include?"]("data-sticky-container"))?n:(s=["data-sticky-container",n],r(t.options,"[]=",s),s[s.length-1])})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.sticky.container",t(t(t("GxG"),"Gui"),"StickyContainer")),function(e,t){var d=a(e,t,"Sticky"),u=d.$$prototype;return u.states=u.options=n,s(d,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="div",l(t.states["$[]"]("sticky"),!0)||t.states["$[]="]("sticky",!0),c(t.options.$keys()["$include?"]("data-sticky"))?n:(s=["data-sticky",n],r(t.options,"[]=",s),s[s.length-1])})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.sticky",t(t(t("GxG"),"Gui"),"Sticky")),function(e,t){var c=a(e,t,"Switch"),u=c.$$prototype;return u.states=u.uuid=n,s(c,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="div",l(t.states["$[]"]("switch"),!0)?n:(s=["switch",!0],r(t.states,"[]=",s),s[s.length-1])}),s(c,"$_after_create",function(){var t=this,s=n,o=n,i=n,s=t.$add_child(new Map([["component","org.gxg.gui.button.checkbox"],["title",d("switch_input",t.uuid.$to_s())],["settings",new Map],["options",new Map([["states",["switch-input"]]])],["script",""],["content",[]]])),o=t.$add_child(new Map([["component","org.gxg.gui.label"],["title",d("switch_paddle",t.uuid.$to_s())],["settings",new Map],["options",new Map([["for",s.$uuid().$to_s()],["states",["switch-paddle"]]])],["script",""],["content",[]]])),i=o.$add_child(new Map([["component","org.gxg.gui.span"],["title",d("switch_span",t.uuid.$to_s())],["settings",new Map],["options",new Map([["states",["show-for-sr"]]])],["script",""],["content",[]]]));return $(document).foundation()})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.switch",t(t(t("GxG"),"Gui"),"Switch")),function(e,t){var c=a(e,t,"TabContent"),d=c.$$prototype;return d.states=n,s(c,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="div",l(t.states["$[]"]("tabs-panel"),!0)?n:(s=["tabs-panel",!0],r(t.states,"[]=",s),s[s.length-1])})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.tab.content",t(t(t("GxG"),"Gui"),"TabContent")),function(e,t){var r=a(e,t,"TabSet"),c=r.$$prototype;return c.uuid=c.tabs=c.tab_content=n,s(r,"$_before_create",function e(){var s=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="div"}),s(r,"$_after_create",function(){var t=this;return t.tabs=t.$add_child(new Map([["component","org.gxg.gui.list"],["title",d("tabs",t.uuid.$to_s())],["settings",new Map],["options",new Map([["data-tabs",n],["states",["tabs"]]])],["script",""],["content",[]]])),t.tab_content=t.$add_child(new Map([["component","org.gxg.gui.block"],["title",d("tab_content",t.uuid.$to_s())],["settings",new Map],["options",new Map([["data-tabs-content",t.tabs.$uuid().$to_s()],["states",["tabs-content"]]])],["script",""],["content",[]]])),$(document).foundation()}),s(r,"$add_child",function(t,s){var i=this,o=n,a=n,r=n;return t==null&&(t=new Map),s==null&&(s=new Map),o=n,l(t["$[]"]("component").$to_s().$downcase().$to_sym(),"tab_content")?(o=i.tab_content.$add_child(t),a=i.tabs.$add_child(new Map([["component","org.gxg.gui.list.item"],["title",d("tab",o.$uuid().$to_s())],["settings",new Map],["options",new Map([["states",["tabs-title"]]])],["script",""],["content",[]]])),r=a.$add_child(new Map([["component","org.gxg.gui.link.anchor"],["title",d("link",o.$uuid().$to_s())],["settings",new Map],["options",new Map([["href",d("#",o.$uuid().$to_s())],["states",[]]])],["script",""],["content",[]]])),r["$value="](o.$title().$to_s())):i.$raise("Unacceptable Component Type"),o},-1)}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.tab.set",t(t(t("GxG"),"Gui"),"TabSet")),function(e,t){var c=a(e,t,"Thumbnail"),d=c.$$prototype;return d.states=n,s(c,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="img",l(t.states["$[]"]("thumbnail"),!0)?n:(s=["thumbnail",!0],r(t.states,"[]=",s),s[s.length-1])})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.thumbnail",t(t(t("GxG"),"Gui"),"Thumbnail")),function(e,t){var c=a(e,t,"Titlebar"),d=c.$$prototype;return d.states=n,s(c,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="div",l(t.states["$[]"]("title-bar"),!0)?n:(s=["title-bar",!0],r(t.states,"[]=",s),s[s.length-1])})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.titlebar",t(t(t("GxG"),"Gui"),"Titlebar")),function(e,t){var c=a(e,t,"TitlebarLeft"),d=c.$$prototype;return d.states=n,s(c,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="div",l(t.states["$[]"]("title-bar-left"),!0)?n:(s=["title-bar-left",!0],r(t.states,"[]=",s),s[s.length-1])})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.titlebar.left",t(t(t("GxG"),"Gui"),"TitlebarLeft")),function(e,t){var c=a(e,t,"TitlebarRight"),d=c.$$prototype;return d.states=n,s(c,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="div",l(t.states["$[]"]("title-bar-right"),!0)?n:(s=["title-bar-right",!0],r(t.states,"[]=",s),s[s.length-1])})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.titlebar.right",t(t(t("GxG"),"Gui"),"TitlebarRight")),function(e,t){var c=a(e,t,"Topbar"),d=c.$$prototype;return d.states=n,s(c,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="div",l(t.states["$[]"]("top-bar"),!0)?n:(s=["top-bar",!0],r(t.states,"[]=",s),s[s.length-1])})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.topbar",t(t(t("GxG"),"Gui"),"Topbar")),function(e,t){var c=a(e,t,"TopbarLeft"),d=c.$$prototype;return d.states=n,s(c,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="div",l(t.states["$[]"]("top-bar-left"),!0)?n:(s=["top-bar-left",!0],r(t.states,"[]=",s),s[s.length-1])})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.topbar.left",t(t(t("GxG"),"Gui"),"TopbarLeft")),function(e,t){var c=a(e,t,"TopbarRight"),d=c.$$prototype;return d.states=n,s(c,"$_before_create",function e(){var s,a=e.$$p||n,t=this;return e.$$p=null,o(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="div",l(t.states["$[]"]("top-bar-right"),!0)?n:(s=["top-bar-right",!0],r(t.states,"[]=",s),s[s.length-1])})}(h[0],t(t(t(t("GxG"),"Gui"),"Vdom"),"BaseElement")),t(t("GxG"),"Gui").$register_component_class("org.gxg.gui.topbar.right",t(t(t("GxG"),"Gui"),"TopbarRight"))}(h[0],h)}(u[0],u),function(e,o){var i=a(e,o,"Object");return i.$private(),s(i,"$new_component",function(s){var i=this,o=n;return s==null&&(s=n),o=n,c(s)?c(t(t("GxG"),"Gui")["$component_registered?"](s.$to_s().$to_sym()))?(o=t(t(t("GxG"),"Database"),"DetachedHash").$new(),o["$[]="]("component",s.$to_s()),o["$[]="]("settings",new Map),o["$[]="]("options",new Map),o["$[]="]("script",""),o["$[]="]("content",[])):i.$log_error("Component "+s.$inspect()+" not registered."):i.$log_error("You MUST specify a registered component moniker."),o},-1)}(u[0],null)},Opal.modules["web/gxg_layout"]=function(e){var u=e.module,i=e.send,s=e.truthy,c=e.rb_divide,a=e.rb_gt,r=e.rb_lt,o=e.rb_times,l=e.defs,h=e.thrower,m=e.def,d=[],n=e.nil,t=e.$$$;return e.add_stubs("to_i,max,each,each_pair,[],find_object,[]=,element,/,to_f,to_sym,to_s,values,>,<,*,include?,layout_refresh,delete"),function(e,d){var f=u(e,"GxG"),p=[f].concat(d);return function(e){var d=u(e,"Gui");return l(d,"$layout_refresh",function(){var b=this,m=n,g=n,p=n,v=n,f=n,l=n,d=n,u=n,h=n,m=window.innerWidth.$to_i(),g=document.body,p=document.documentElement,v=0,v=Math.max(g.scrollHeight,g.offsetHeight,p.clientHeight,p.scrollHeight,p.offsetHeight),f=[window.innerHeight.$to_i(),v.$to_i()].$max(),l=0,d=0,u=1,h=1;return i(["top-left","top","top-right","right","bottom-right","bottom","bottom-left","left"],"each",[],function e(o){var a=e.$$s==null?this:e.$$s;return o==null&&(o=n),i(t(t("GxG"),"LAYOUT")["$[]"](o),"each_pair",[],function e(a,r){var h,p=e.$$s==null?this:e.$$s,d=n,l=n,u=n;return a==null&&(a=n),r==null&&(r=n),d=p.$find_object(a),s(d)?(l=new Map([["top",0],["left",0],["right",0],["bottom",0]]),l["$[]="]("top",d.$element().getBoundingClientRect().top.$to_i()),l["$[]="]("left",d.$element().getBoundingClientRect().left.$to_i()),l["$[]="]("right",d.$element().getBoundingClientRect().right.$to_i()),l["$[]="]("bottom",d.$element().getBoundingClientRect().bottom.$to_i()),u=new Map([["top",0],["left",0],["right",0],["bottom",0]]),u["$[]="]("top",c(l["$[]"]("top").$to_f(),f.$to_f())),u["$[]="]("left",c(l["$[]"]("left").$to_f(),m.$to_f())),u["$[]="]("right",c(l["$[]"]("right").$to_f(),m.$to_f())),u["$[]="]("bottom",c(l["$[]"]("bottom").$to_f(),f.$to_f())),(h=[a.$to_s().$to_sym(),u],i(t(t("GxG"),"LAYOUT")["$[]"](o.$to_s().$to_sym()),"[]=",h),h[h.length-1])):n},{$$s:a})},{$$s:b}),i(["top-left","top","top-right","right","bottom-right","bottom","bottom-left","left"],"each",[],function(o){return o==null&&(o=n),i(t(t("GxG"),"LAYOUT")["$[]"](o).$values(),"each",[],function(t){switch(t==null&&(t=n),o.valueOf()){case"top":return s(a(t["$[]"]("bottom"),l))?l=t["$[]"]("bottom"):n;break;case"left":return s(a(t["$[]"]("right"),d))?d=t["$[]"]("right"):n;break;case"right":return s(r(t["$[]"]("left"),u))?u=t["$[]"]("left"):n;break;case"bottom":return s(r(t["$[]"]("top"),h))?h=t["$[]"]("top"):n;break;case"top-left":return s(a(t["$[]"]("bottom"),l))&&(l=t["$[]"]("bottom")),s(a(t["$[]"]("right"),d))?d=t["$[]"]("right"):n;break;case"top-right":return s(a(t["$[]"]("bottom"),l))&&(l=t["$[]"]("bottom")),s(r(t["$[]"]("left"),u))?u=t["$[]"]("left"):n;break;case"bottom-right":return s(r(t["$[]"]("top"),h))&&(h=t["$[]"]("top")),s(r(t["$[]"]("left"),u))?u=t["$[]"]("left"):n;break;case"bottom-left":return s(r(t["$[]"]("top"),h))&&(h=t["$[]"]("top")),s(a(t["$[]"]("right"),d))?d=t["$[]"]("right"):n;break;default:return n}})}),t(t("GxG"),"LAYOUT_LIMITS")["$[]="]("page_width",m.$to_i()),t(t("GxG"),"LAYOUT_LIMITS")["$[]="]("page_height",f.$to_i()),t(t("GxG"),"LAYOUT_LIMITS")["$[]="]("top",o(l,f.$to_f()).$to_i()),t(t("GxG"),"LAYOUT_LIMITS")["$[]="]("top_percent",o(l,100)),t(t("GxG"),"LAYOUT_LIMITS")["$[]="]("left",o(d,m.$to_f()).$to_i()),t(t("GxG"),"LAYOUT_LIMITS")["$[]="]("left_percent",o(d,100)),t(t("GxG"),"LAYOUT_LIMITS")["$[]="]("right",o(u,m.$to_f()).$to_i()),t(t("GxG"),"LAYOUT_LIMITS")["$[]="]("right_percent",o(u,100)),t(t("GxG"),"LAYOUT_LIMITS")["$[]="]("bottom",o(h,f.$to_f()).$to_i()),t(t("GxG"),"LAYOUT_LIMITS")["$[]="]("bottom_percent",o(h,100)),!0}),l(d,"$layout_add_item",function(o,i,a){return o==null&&(o=n),i==null&&(i=n),a==null&&(a=!0),!!s(["top-left","top","top-right","right","bottom-right","bottom","bottom-left","left"]["$include?"](i.$to_s().$to_sym()))&&(t(t("GxG"),"LAYOUT")["$[]"](i.$to_s().$to_sym())["$[]="](o.$to_s().$to_sym(),new Map([["top",0],["left",0],["right",0],["bottom",0]])),s(a)&&t(t("GxG"),"Gui").$layout_refresh(),!0)},-1),l(d,"$layout_remove_item",function(o){return o==null&&(o=n),function(){try{var e=h("break");return i(["top-left","top","top-right","right","bottom-right","bottom","bottom-left","left"],"each",[],function i(a){if(a==null&&(a=n),s(t(t("GxG"),"LAYOUT")["$[]"](a.$to_s().$to_sym())["$[]"](o.$to_s().$to_sym())))t(t("GxG"),"LAYOUT")["$[]"](a.$to_s().$to_sym()).$delete(o.$to_s().$to_sym()),e.$throw(n,i.$$is_lambda);else return n})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}(),t(t("GxG"),"Gui").$layout_refresh(),!0},-1),m(d,"$layout_content_area",function(){return t(t("GxG"),"LAYOUT_LIMITS")})}(p[0])}(d[0],d)},Opal.modules["web/gxg_windows"]=function(e){var b=e.module,g=e.klass,o=e.def,h=e.alias,n=e.truthy,O=e.assign_ivar,u=e.return_ivar,l=e.rb_times,a=e.rb_divide,i=e.rb_minus,c=e.rb_plus,r=e.send,m=e.rb_ge,p=e.rb_le,v=e.rb_lt,f=e.rb_gt,d=e.eqeq,j=e.send2,y=e.find_super,_=e.thrower,w=[],t=e.nil,s=e.$$$;return e.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(w,x){var E=b(w,"GxG"),C=[E].concat(x);return function(w,x){var E=b(w,"Gui"),C=[E].concat(x);return function(e,s){var i=g(e,s,"ApplicationViewport"),a=i.$$prototype;return a.application=a.uuid=t,o(i,"$set_application",function(n){var s=this;return n==null&&(n=t),s.application=n},-1),h(i,"application=","set_application"),o(i,"$detach",function(){var s=this;return n(s.application)&&n(s.application["$respond_to?"]("unlink_viewport"))?(s.application.$unlink_viewport(s.uuid),s.application=t):t})}(C[0],s(s(s(s("GxG"),"Gui"),"Vdom"),"BaseElement")),s(s("GxG"),"Gui").$register_component_class("org.gxg.gui.application.viewport",s(s(s("GxG"),"Gui"),"ApplicationViewport")),function(b,_,w){var x=g(b,_,"Window"),k=[x].concat(w),E=e.$r(k),C=x.$$prototype;return C.top=C.left=C.title_object=C.window_title=C.content=C.title_margin=C.menu_margin=C.resize_margin=C.tracking=C.menu_bar=C.menu_area=C.bottom=C.right=C.modal=C.menu_reference=C.uuid=C.closebox=C.minimizebox=C.maximizebox=C.scrolling=C.resize=C.application=t,o(x,"$before_close",function(n){return n==null&&(n=t),t},-1),o(x,"$close",function(n){return n==null&&(n=t),t},-1),o(x,"$after_close",function(n){return n==null&&(n=t),t},-1),o(x,"$before_open",function(n){return n==null&&(n=t),t},-1),o(x,"$open",function(n){return n==null&&(n=t),t},-1),o(x,"$after_open",function(n){return n==null&&(n=t),t},-1),o(x,"$set_application",O("application")),h(x,"application=","set_application"),o(x,"$application",u("application")),o(x,"$commit_settings",function(){var o=this,u=t,h=t,m=t,f=t,p=t,d=t,u=s(E("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$layout_content_area(),h=l(a(o.top.$to_f(),u["$[]"]("page_height").$to_f()),100),m=l(a(o.left.$to_f(),u["$[]"]("page_width").$to_f()),100),f=l(a(o.$height().$to_f(),u["$[]"]("page_height").$to_f()),100),p=l(a(o.$width().$to_f(),u["$[]"]("page_width").$to_f()),100),d=new Map;return d["$[]="]("position","absolute"),d["$[]="]("display","block"),d["$[]="]("tabindex",-1),d["$[]="]("top",""+h+"%"),d["$[]="]("left",""+m+"%"),d["$[]="]("height",""+f+"%"),d["$[]="]("width",""+p+"%"),o.$gxg_merge_style(d),n(o.title_object)&&o.title_object.$parent().$gxg_merge_style(new Map([["padding","0px 0px 0px "+i(i(a(o.$width(),2),l(a(o.window_title.$size(),2),8)),60)+"px"]])),n(o.content)&&(o.content.$gxg_merge_style(new Map([["height",""+i(o.$height(),c(c(o.title_margin,o.menu_margin),o.resize_margin))+"px"],["width",""+i(o.$width(),l(o.resize_margin,2))+"px"]])),r(o.tracking,"each_pair",[],function e(s,o){var u=e.$$s==null?this:e.$$s,d=t;return s==null&&(s=t),o==null&&(o=t),d=new Map,r(o["$[]"]("details"),"each_pair",[],function e(s,o){var u,h=e.$$s==null?this:e.$$s;switch(h.resize_margin==null&&(h.resize_margin=t),h.title_margin==null&&(h.title_margin=t),h.menu_margin==null&&(h.menu_margin=t),s==null&&(s=t),o==null&&(o=t),s.$to_s().$to_sym().valueOf()){case"width":return n(o.$to_s()["$include?"]("%"))?(u=["width",c(l(a(o.$to_s().$gsub("%","").$to_f(),100),i(h.$width(),l(h.resize_margin,2)).$to_f()).$to_i().$to_s(),"px")],r(d,"[]=",u),u[u.length-1]):(u=["width",""+o.$to_s()+"px"],r(d,"[]=",u),u[u.length-1]);break;case"height":return n(o.$to_s()["$include?"]("%"))?(u=["height",c(l(a(o.$to_s().$gsub("%","").$to_f(),100),i(h.$height(),c(c(h.title_margin,h.menu_margin),h.resize_margin)).$to_f()).$to_i().$to_s(),"px")],r(d,"[]=",u),u[u.length-1]):(u=["height",""+o.$to_s()+"px"],r(d,"[]=",u),u[u.length-1]);break;default:return t}},{$$s:u}),o["$[]"]("object").$gxg_merge_style(d)},{$$s:o})),n(o.menu_bar)?(o.menu_area.$gxg_merge_style(new Map([["width",""+i(o.$width(),l(o.resize_margin,2))+"px"]])),n(o.menu_bar["$respond_to?"]("update_appearance"))?o.menu_bar.$update_appearance():t):t}),o(x,"$track_deltas",function(o,i,a){var r=this;return o==null&&(o=t),i==null&&(i=t),a==null&&(a=new Map),!!(n(o)&&n(i)&&n(a["$is_any?"](s("Hash"),s(s(s("GxG"),"Database"),"DetachedHash"))))&&(r.tracking["$[]="](o,new Map([["object",i],["details",a]])),!0)},-1),o(x,"$untrack_deltas",function(s){var o=this;return s==null&&(s=t),!!n(s)&&(o.tracking.$delete(s),!0)},-1),o(x,"$content",u("content")),o(x,"$content_width",function(){var t=this;return n(t.content)?(t.content.$element().getBoundingClientRect().right-t.content.$element().getBoundingClientRect().left).$to_i():0}),o(x,"$content_height",function(){var t=this;return n(t.content)?(t.content.$element().getBoundingClientRect().bottom-t.content.$element().getBoundingClientRect().top).$to_i():0}),o(x,"$set_top",function(o){var a=this;return o==null&&(o=t),n(o["$is_a?"](s("Numeric")))&&n(m(i(a.bottom,o),100))?n(m(o,s(E("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$layout_content_area()["$[]"]("top")))?(a.top=o,a.$fit_within_boundaries(),a.$commit_settings()):t:t},-1),h(x,"top=","set_top"),o(x,"$top",u("top")),o(x,"$set_left",function(o){var a=this;return o==null&&(o=t),n(o["$is_a?"](s("Numeric")))&&n(m(i(a.right,o),200))?n(m(o,s(E("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$layout_content_area()["$[]"]("left")))?(a.left=o,a.$fit_within_boundaries(),a.$commit_settings()):t:t},-1),h(x,"left=","set_left"),o(x,"$left",u("left")),o(x,"$set_right",function(o){var a=this;return o==null&&(o=t),n(o["$is_a?"](s("Numeric")))&&n(m(i(o,a.left),200))?n(p(o,s(E("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$layout_content_area()["$[]"]("right")))?(a.right=o,a.$fit_within_boundaries(),a.$commit_settings()):t:t},-1),h(x,"right=","set_right"),o(x,"$right",u("right")),o(x,"$set_bottom",function(o){var a=this;return o==null&&(o=t),n(o["$is_a?"](s("Numeric")))&&n(m(i(o,a.top),100))?n(p(o,s(E("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$layout_content_area()["$[]"]("bottom")))?(a.bottom=o,a.$fit_within_boundaries(),a.$commit_settings()):t:t},-1),h(x,"bottom=","set_bottom"),o(x,"$bottom",u("bottom")),o(x,"$set_width",function(o){var i=this;return o==null&&(o=t),n(o["$is_a?"](s("Numeric")))&&n(m(o,200))?n(p(c(i.left,o),s(E("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$layout_content_area()["$[]"]("right")))?(i.right=c(i.left,o),i.$fit_within_boundaries(),i.$commit_settings()):t:t},-1),h(x,"width=","set_width"),o(x,"$width",function(){var t=this;return i(t.right,t.left)}),o(x,"$set_height",function(o){var i=this;return o==null&&(o=t),n(o["$is_a?"](s("Numeric")))&&n(m(o,100))?n(p(c(i.top,o),s(E("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$layout_content_area()["$[]"]("bottom")))?(i.bottom=c(i.top,o),i.$fit_within_boundaries(),i.$commit_settings()):t:t},-1),h(x,"height=","set_height"),o(x,"$height",function(){var t=this;return i(t.bottom,t.top)}),o(x,"$set_position",function(i,a){var r=this,d=t,u=t,l=t;return i==null&&(i=t),a==null&&(a=t),d=r.$width(),u=r.$height(),l=s(E("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$layout_content_area(),n(e.Range.$new(l["$[]"]("top"),l["$[]"]("bottom"),!1)["$include?"](a.$to_i()))&&n(e.Range.$new(l["$[]"]("top"),l["$[]"]("bottom"),!1)["$include?"](c(a.$to_i(),u)))&&(r.top=a.$to_i()),n(e.Range.$new(l["$[]"]("left"),l["$[]"]("right"),!1)["$include?"](i.$to_i()))&&n(e.Range.$new(l["$[]"]("left"),l["$[]"]("right"),!1)["$include?"](c(i.$to_i(),d)))&&(r.left=i.$to_i()),r.bottom=c(r.top,u),r.right=c(r.left,d),r.$fit_within_boundaries(),r.$commit_settings()},-1),o(x,"$set_frame",function(o){var i=this,a=t;return o==null&&(o=t),n(o["$is_a?"](s("Hash")))?(i.top=n(a=o["$[]"]("top"))?a:i.top,i.left=n(a=o["$[]"]("left"))?a:i.left,i.right=n(a=o["$[]"]("right"))?a:i.right,i.bottom=n(a=o["$[]"]("bottom"))?a:i.bottom,i.$fit_within_boundaries(),i.$commit_settings()):t},-1),o(x,"$position",function(){var t=this;return new Map([["x",t.left],["y",t.top]])}),o(x,"$fit_within_boundaries",function(){var o=this,a=t,r=t,i=t,a=o.$width(),r=o.$height(),i=s(E("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$layout_content_area();return n(v(o.top,i["$[]"]("top")))&&(o.top=i["$[]"]("top")),n(v(o.left,i["$[]"]("left")))&&(o.left=i["$[]"]("left")),o.right=c(o.left,a),o.bottom=c(o.top,r),n(f(o.bottom,i["$[]"]("bottom")))&&(o.bottom=i["$[]"]("bottom")),n(f(o.right,i["$[]"]("right")))?o.right=i["$[]"]("right"):t}),o(x,"$set_window_title",function(o){var r=this;return o==null&&(o=t),n(r.title_object)&&n(o["$is_a?"](s("String")))?(r.window_title=o,r.title_object.$set_text(r.window_title),r.title_object.$parent().$gxg_merge_style(new Map([["padding","0px 0px 0px "+i(i(a(r.$width(),2),l(a(r.window_title.$size(),2),8)),60)+"px"]]))):t},-1),h(x,"window_title=","set_window_title"),o(x,"$window_title",function(){var s=this;return n(s.title_object)?s.window_title:t}),o(x,"$special_state",u("special_state")),o(x,"$set_special_state",function(o){var i=this,a=t;return o==null&&(o=t),n(o["$is_a?"](s("Hash")))?(i.special_state=o,i.top=n(a=o["$[]"]("top"))?a:i.top,i.left=n(a=o["$[]"]("left"))?a:i.left,i.right=n(a=o["$[]"]("right"))?a:i.right,i.bottom=n(a=o["$[]"]("bottom"))?a:i.bottom,i.$fit_within_boundaries(),i.$commit_settings()):t},-1),o(x,"$clear_special_state",function(o){var i=this;return o==null&&(o=t),i.special_state=t,n(o["$is_a?"](s("Hash")))?i.$set_frame(o):t},-1),o(x,"$initialize",function e(o,r,u){var p=e.$$p||t,h=this,f=t,m=t;return e.$$p=null,u==null&&(u=new Map),s(s("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$layout_refresh(),f=s(E("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$layout_content_area(),h.special_state=t,h.content=t,n(r["$[]"]("top")["$is_a?"](s("String")))||n(r["$[]"]("top").$to_s()["$include?"]("."))?n(r["$[]"]("top")["$is_a?"](s("String")))?h.top=l(f["$[]"]("page_height"),a(r["$[]"]("top").$gsub("%","").$to_f(),100)):h.top=l(f["$[]"]("page_height"),a(r["$[]"]("top"),100)):h.top=n(m=r["$[]"]("top"))?m:i(a(window.innerHeight.$to_i(),2),50),n(r["$[]"]("left")["$is_a?"](s("String")))||n(r["$[]"]("left").$to_s()["$include?"]("."))?n(r["$[]"]("left")["$is_a?"](s("String")))?h.left=l(f["$[]"]("page_width"),a(r["$[]"]("left").$gsub("%","").$to_f(),100)):h.left=l(f["$[]"]("page_width"),a(r["$[]"]("left"),100)):h.left=n(m=r["$[]"]("left"))?m:i(a(window.innerWidth.$to_i(),2),100),n(r["$[]"]("right")["$is_a?"](s("String")))||n(r["$[]"]("right").$to_s()["$include?"]("."))?n(r["$[]"]("right")["$is_a?"](s("String")))?h.right=l(f["$[]"]("page_width"),a(r["$[]"]("right").$gsub("%","").$to_f(),100)):h.right=l(f["$[]"]("page_width"),a(r["$[]"]("right"),100)):h.right=n(m=r["$[]"]("right"))?m:c(a(window.innerWidth.$to_i(),2),100),n(r["$[]"]("bottom")["$is_a?"](s("String")))||n(r["$[]"]("bottom").$to_s()["$include?"]("."))?n(r["$[]"]("bottom")["$is_a?"](s("String")))?h.bottom=l(f["$[]"]("page_height"),a(r["$[]"]("bottom").$gsub("%","").$to_f(),100)):h.bottom=l(f["$[]"]("page_height"),a(r["$[]"]("bottom"),100)):h.bottom=n(m=r["$[]"]("bottom"))?m:c(a(window.innerHeight.$to_i(),2),50),h.window_title=n(m=r["$[]"]("window_title"))?m:"Untitled",h.title_object=t,n(r["$[]"]("width")["$is_a?"](s("String")))||n(r["$[]"]("width").$to_s()["$include?"]("."))?n(r["$[]"]("width")["$is_a?"](s("String")))?h.right=c(h.left,l(i(f["$[]"]("right"),f["$[]"]("left")),a(r["$[]"]("width").$gsub("%","").$to_f(),100))):h.right=c(h.left,l(i(f["$[]"]("right"),f["$[]"]("left")),a(r["$[]"]("width"),100))):n(r["$[]"]("width")["$is_a?"](s("Numeric")))&&(h.right=c(h.left,r.$delete("width"))),n(r["$[]"]("height")["$is_a?"](s("String")))||n(r["$[]"]("height").$to_s()["$include?"]("."))?n(r["$[]"]("height")["$is_a?"](s("String")))?h.bottom=c(h.top,l(i(f["$[]"]("bottom"),f["$[]"]("top")),a(r["$[]"]("height").$gsub("%","").$to_f(),100))):h.bottom=c(h.top,l(i(f["$[]"]("bottom"),f["$[]"]("top")),a(r["$[]"]("height"),100))):n(r["$[]"]("height")["$is_a?"](s("Numeric")))&&(h.bottom=c(h.top,r["$[]"]("height"))),h.$fit_within_boundaries(),h.modal=n(m=r["$[]"]("modal"))&&m,h.scrolling=r["$[]"]("scroll"),h.title_margin=24,d(h.modal,!0)?(h.resize=!1,h.resize_margin=0):(h.resize=!n(m=r["$[]"]("resize"))||m,h.resize_margin=2,h.title_margin=26),d(h.modal,!0)?(h.closebox=!1,h.minimizebox=!1,h.maximizebox=!1):(d(r["$[]"]("close"),!1)?h.closebox=!1:h.closebox=(n(m=r["$[]"]("close"))?m:"enabled").$to_s().$to_sym(),d(r["$[]"]("minimize"),!1)?h.minimizebox=!1:h.minimizebox=(n(m=r["$[]"]("minimize"))?m:"enabled").$to_s().$to_sym(),d(r["$[]"]("maximize"),!1)?h.maximizebox=!1:h.maximizebox=(n(m=r["$[]"]("maximize"))?m:"enabled").$to_s().$to_sym()),h.tracking=new Map,h.menu_reference=r["$[]"]("menu"),h.menu_area=t,h.menu_bar=t,n(h.menu_reference)?h.menu_margin=16:h.menu_margin=0,j(h,y(h,"initialize",e,!1,!0),"initialize",[o,r,u],null),h},-3),o(x,"$menu_reference",u("menu_reference")),o(x,"$menubar",u("menu_area")),h(x,"original_add_child","add_child"),o(x,"$add_child",function(s){var o=this;return s==null&&(s=t),n(o.content)?o.content.$add_child(s):o.$original_add_child(s)},-1),h(x,"original_children","children"),o(x,"$children",function(){var t=this;return n(t.content)?t.content.$children():new Map}),o(x,"$find_child",function(s,o){var u=this,a=t,l=t,c=t,i=t;for(s==null&&(s=t),o==null&&(o=!1),a=t,n(E("GxG")["$valid_uuid?"](s))?l=!0:l=!1,d(o,!0)?c=u.$original_children().$values():c=u.$children().$values();n(f(c.$size(),0));)if(i=c.$shift(),n(i)){if(n(l)){if(d(i.$uuid(),s)){a=i;break}}else if(d(i.$title(),s)){a=i;break}n(a)||r(i.$children().$values(),"each",[],function(n){return n==null&&(n=t),c["$<<"](n)})}return a},-1),o(x,"$cascade",function(){var o=this,L=t,C=t,w=t,b=t,y=t,x=t,v=t,p=t,j=t,N=t,h=t,R=t,D=t,z=t,T=t,F=t,S=t,A=t,M=t,k=t,O=t,g=t,u=t,_=t,f=t,m=t;return o.$commit_settings(),L=[],C=s(s(s("GxG"),"Database"),"DetachedHash").$new(),C["$title="]("title_object "+o.uuid.$to_s()),C["$[]="]("component","org.gxg.gui.label"),C["$[]="]("settings",new Map),C["$[]="]("options",new Map([["content",o.window_title],["style",new Map([["width","100%"],["font-size","16px"],["text-align","center"]])]])),C["$[]="]("script",""),C["$[]="]("content",[]),w=s(s(s("GxG"),"Database"),"DetachedHash").$new(),w["$[]="]("component","org.gxg.gui.image"),w["$[]="]("settings",new Map),w["$[]="]("options",new Map([["src",o.$theme_widget("close.png")],["width",20],["height",20],["style",new Map([["padding","2px"]])]])),w["$[]="]("script",`
on(:mouseup) do |event|
unless self.gxg_get_state(:disabled) == true
self.gxg_set_attribute(:src,theme_widget('close.png'))
the_window = self.window
if the_window
if the_window.application
the_window.application.window_close({:window => the_window.uuid})
else
GxG::DISPLAY_DETAILS[:object].window_close(the_window.uuid)
end
else
log_warn('Window Not Found')
end
end
end
on(:mousedown) do |event|
unless self.gxg_get_state(:disabled) == true
self.gxg_set_attribute(:src,theme_widget('close_mousedown.png'))
end
end
on(:mouseenter) do |event|
unless self.gxg_get_state(:disabled) == true
self.gxg_set_attribute(:src,theme_widget('close_mouseenter.png'))
end
end
on(:mouseleave) do |event|
unless self.gxg_get_state(:disabled) == true
self.gxg_set_attribute(:src,theme_widget('close.png'))
end
end
`),w["$[]="]("content",[]),b=s(s(s("GxG"),"Database"),"DetachedHash").$new(),b["$[]="]("component","org.gxg.gui.image"),b["$[]="]("settings",new Map),b["$[]="]("options",new Map([["src",o.$theme_widget("minimize.png")],["width",20],["height",20],["style",new Map([["padding","2px"]])]])),b["$[]="]("script",`
on(:mouseup) do |event|
unless self.gxg_get_state(:disabled) == true
self.gxg_set_attribute(:src,theme_widget('minimize.png'))
the_window = self.window
if the_window
special = the_window.special_state()
if special.is_a?(::Hash)
if special[:action] == :minimize
GxG::DISPLAY_DETAILS[:object].window_restore(the_window.uuid)
else
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})
end
else
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})
end
end
end
end
on(:mousedown) do |event|
unless self.gxg_get_state(:disabled) == true
self.gxg_set_attribute(:src,theme_widget('minimize_mousedown.png'))
end
end
on(:mouseenter) do |event|
unless self.gxg_get_state(:disabled) == true
self.gxg_set_attribute(:src,theme_widget('minimize_mouseenter.png'))
end
end
on(:mouseleave) do |event|
unless self.gxg_get_state(:disabled) == true
self.gxg_set_attribute(:src,theme_widget('minimize.png'))
end
end
`),b["$[]="]("content",[]),y=s(s(s("GxG"),"Database"),"DetachedHash").$new(),y["$[]="]("component","org.gxg.gui.image"),y["$[]="]("settings",new Map),y["$[]="]("options",new Map([["src",o.$theme_widget("maximize.png")],["width",20],["height",20],["style",new Map([["padding","2px"]])]])),y["$[]="]("script",`
on(:mouseup) do |event|
unless self.gxg_get_state(:disabled) == true
self.gxg_set_attribute(:src,theme_widget('maximize.png'))
the_window = self.window
if the_window
special = the_window.special_state()
if special.is_a?(::Hash)
if special[:action] == :maximize
GxG::DISPLAY_DETAILS[:object].window_restore(the_window.uuid)
else
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})
end
else
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})
end
end
end
end
on(:mousedown) do |event|
unless self.gxg_get_state(:disabled) == true
self.gxg_set_attribute(:src,theme_widget('maximize_mousedown.png'))
end
end
on(:mouseenter) do |event|
unless self.gxg_get_state(:disabled) == true
self.gxg_set_attribute(:src,theme_widget('maximize_mouseenter.png'))
end
end
on(:mouseleave) do |event|
unless self.gxg_get_state(:disabled) == true
self.gxg_set_attribute(:src,theme_widget('maximize.png'))
end
end
`),y["$[]="]("content",[]),x=s(s(s("GxG"),"Database"),"DetachedHash").$new(),x["$[]="]("component","org.gxg.gui.block.table"),x["$[]="]("settings",new Map),x["$[]="]("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]])]])),x["$[]="]("script",""),x["$[]="]("content",[]),v=s(s(s("GxG"),"Database"),"DetachedHash").$new(),v["$[]="]("component","org.gxg.gui.block.table.row"),v["$[]="]("settings",new Map),v["$[]="]("options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["vertical-align","middle"],["background-color","transparent"]])]])),v["$[]="]("script",""),v["$[]="]("content",[]),p=s(s(s("GxG"),"Database"),"DetachedHash").$new(),p["$[]="]("component","org.gxg.gui.block.table.cell"),p["$[]="]("settings",new Map),p["$[]="]("options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["vertical-align","middle"],["background-color","transparent"]])]])),p["$[]="]("script",""),p["$[]="]("content",[]),j=s(s(s("GxG"),"Database"),"DetachedHash").$new(),j["$[]="]("component","org.gxg.gui.block.table.cell"),j["$[]="]("settings",new Map),j["$[]="]("options",new Map([["style",new Map([["width","100%"],["padding","0px 0px 0px "+i(i(a(o.$width(),2),l(a(o.window_title.$size(),2),8)),60)+"px"],["vertical-align","middle"],["margin","0px"],["background-color","transparent"]])]])),j["$[]="]("script",""),j["$[]="]("content",[]),N=s(s(s("GxG"),"Database"),"DetachedHash").$new(),N["$[]="]("component","org.gxg.gui.block.table.cell"),N["$[]="]("settings",new Map),N["$[]="]("options",new Map([["style",new Map([["float","right"],["padding","0px"],["vertical-align","middle"],["margin","0px"],["background-color","transparent"]])]])),N["$[]="]("script",""),N["$[]="]("content",[]),n(o.closebox)&&(d(o.closebox,"disabled")&&(w["$[]"]("options")["$[]="]("src",o.$theme_widget("close_disable.png")),w["$[]"]("options")["$[]="]("states",new Map([["disabled",!0]]))),p["$[]"]("content")["$<<"](w)),n(o.minimizebox)&&(d(o.minimizebox,"disabled")&&(b["$[]"]("options")["$[]="]("src",o.$theme_widget("minimize_disable.png")),b["$[]"]("options")["$[]="]("states",new Map([["disabled",!0]]))),p["$[]"]("content")["$<<"](b)),n(o.maximizebox)&&(d(o.maximizebox,"disabled")&&(y["$[]"]("options")["$[]="]("src",o.$theme_widget("maximize_disable.png")),y["$[]"]("options")["$[]="]("states",new Map([["disabled",!0]]))),p["$[]"]("content")["$<<"](y)),j["$[]="]("script",`
def do_drag(event)
if ((event[:buttons] & 1) == 1)
#
if @window_handle
unless @last_mouse_x
@last_mouse_x = event[:pageX]
end
unless @last_mouse_y
@last_mouse_y = event[:pageY]
end
offset_x = (event[:pageX] - @window_handle.left)
if event[:pageY] < @window_handle.top
offset_y = (@window_handle.top - event[:pageY])
else
offset_y = (event[:pageY] - @window_handle.top)
end
new_x = ((event[:pageX] - offset_x) + (event[:pageX] - @last_mouse_x))
new_y = ((event[:pageY] - offset_y) + (event[:pageY] - @last_mouse_y))
@window_handle.set_position(new_x,new_y)
@last_mouse_x = event[:pageX]
@last_mouse_y = event[:pageY]
end
end
end
on(:dblclick) do |event|
the_window = self.window
if the_window
special = the_window.special_state()
if special.is_a?(::Hash)
if special[:action] == :rollup
GxG::DISPLAY_DETAILS[:object].window_restore(the_window.uuid)
else
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})
end
else
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})
end
end
end
on(:mouseup) do |event|
@mode = :hover
the_window = self.window
if the_window
GxG::DISPLAY_DETAILS[:object].window_bring_to_front(the_window.uuid)
end
end
on(:mousemove) do |event|
@window_handle = self.window
if ((event[:buttons] & 1) == 1)
@mode = :drag
`+` do_drag(event)
`+` else
`+` @mode = :hover
`+` end
`+` end
`+` on(:mouseover) do |event|
`+` if @mode == :drag
`+` do_drag(event)
`+` end
`+` end
`+` on(:mouseleave) do |event|
`+` if @mode == :drag
`+` do_drag(event)
`+` end
`+` end
`+` on(:mouseenter) do |event|
`+` if @mode == :drag
`+` do_drag(event)
`+` end
`+` end
`+" "),j["$[]"]("content")["$<<"](C),v["$[]"]("content")["$<<"](p),v["$[]"]("content")["$<<"](j),v["$[]"]("content")["$<<"](N),x["$[]"]("content")["$<<"](v),L["$<<"](x),h=s(s(s("GxG"),"Database"),"DetachedHash").$new(),h["$title="]("content "+o.uuid.$to_s()),h["$[]="]("component","org.gxg.gui.block"),h["$[]="]("settings",new Map),h["$[]="]("options",new Map([["style",new Map([["clear","both"],["padding","0px"],["margin","0px"],["border","0px"],["width",""+i(o.$width(),l(o.resize_margin,2))+"px"],["height",""+i(o.$height(),c(c(o.title_margin,o.menu_margin),o.resize_margin))+"px"]])],["states",new Map([["default-background-color",!0]])]])),h["$[]="]("script",""),h["$[]="]("content",[]),R=h.$uuid(),n(o.scrolling)?d(o.scrolling,!0)?h["$[]"]("options")["$[]"]("style")["$[]="]("overflow","scroll"):(d(o.scrolling,"vertical")&&h["$[]"]("options")["$[]"]("style")["$[]="]("overflow-y","scroll"),d(o.scrolling,"horizontal")&&h["$[]"]("options")["$[]"]("style")["$[]="]("overflow-x","scroll")):h["$[]"]("options")["$[]"]("style")["$[]="]("overflow","hidden"),D=s(s(s("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",`
def do_drag(event)
if ((event[:buttons] & 1) == 1)
window_handle = self.window
if window_handle
window_handle.set_left(event[:pageX])
end
end
end
on(:mouseup) do |event|
@mode = :hover
the_window = self.window
if the_window
GxG::DISPLAY_DETAILS[:object].window_bring_to_front(the_window.uuid)
end
end
on(:mousedown) do |event|
@mode = :drag
do_drag(event)
end
on(:mouseover) do |event|
if @mode == :drag
do_drag(event)
end
end
on(:mouseleave) do |event|
if @mode == :drag
do_drag(event)
end
end
on(:mouseenter) do |event|
if @mode == :drag
do_drag(event)
end
end
`),D["$[]="]("content",[]),z=s(s(s("GxG"),"Database"),"DetachedHash").$new(),z["$[]="]("component","org.gxg.gui.block.table.cell"),z["$[]="]("settings",new Map),z["$[]="]("options",new Map([["style",new Map([["width","2px"],["cursor","e-resize"]])]])),z["$[]="]("script",`
def do_drag(event)
if ((event[:buttons] & 1) == 1)
window_handle = self.window
if window_handle
window_handle.set_right(event[:pageX] + 1)
end
end
end
on(:mouseup) do |event|
@mode = :hover
the_window = self.window
if the_window
GxG::DISPLAY_DETAILS[:object].window_bring_to_front(the_window.uuid)
end
end
on(:mousedown) do |event|
@mode = :drag
do_drag(event)
end
on(:mouseover) do |event|
if @mode == :drag
do_drag(event)
end
end
on(:mouseleave) do |event|
if @mode == :drag
do_drag(event)
end
end
on(:mouseenter) do |event|
if @mode == :drag
do_drag(event)
end
end
`),z["$[]="]("content",[]),T=s(s(s("GxG"),"Database"),"DetachedHash").$new(),T["$[]="]("component","org.gxg.gui.block.table.cell"),T["$[]="]("settings",new Map),T["$[]="]("options",new Map([["style",new Map([["height","2px"],["cursor","s-resize"]])]])),T["$[]="]("script",`
def do_drag(event)
window_handle = self.window
if window_handle
if ((event[:buttons] & 1) == 1)
window_handle.set_bottom(event[:pageY] + 4)
end
end
end
on(:mouseup) do |event|
@mode = :hover
the_window = self.window
if the_window
GxG::DISPLAY_DETAILS[:object].window_bring_to_front(the_window.uuid)
end
end
on(:mousedown) do |event|
@mode = :drag
do_drag(event)
end
on(:mouseover) do |event|
if @mode == :drag
do_drag(event)
end
end
on(:mouseleave) do |event|
if @mode == :drag
do_drag(event)
end
end
on(:mouseenter) do |event|
if @mode == :drag
do_drag(event)
end
end
`),T["$[]="]("content",[]),F=s(s(s("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",`
def do_drag(event)
if ((event[:buttons] & 1) == 1)
window_handle = self.window
if window_handle
window_handle.set_left(event[:pageX] - 2)
window_handle.set_bottom(event[:pageY] + 4)
end
end
end
on(:mouseup) do |event|
@mode = :hover
the_window = self.window
if the_window
GxG::DISPLAY_DETAILS[:object].window_bring_to_front(the_window.uuid)
end
end
on(:mousedown) do |event|
@mode = :drag
do_drag(event)
end
on(:mouseover) do |event|
if @mode == :drag
do_drag(event)
end
end
on(:mouseleave) do |event|
if @mode == :drag
do_drag(event)
end
end
on(:mouseenter) do |event|
if @mode == :drag
do_drag(event)
end
end
`),F["$[]="]("content",[]),S=s(s(s("GxG"),"Database"),"DetachedHash").$new(),S["$[]="]("component","org.gxg.gui.block.table.cell"),S["$[]="]("settings",new Map),S["$[]="]("options",new Map([["style",new Map([["width","2px"],["height","2px"],["cursor","se-resize"]])]])),S["$[]="]("script",`
def do_drag(event)
if ((event[:buttons] & 1) == 1)
window_handle = self.window
if window_handle
window_handle.set_right(event[:pageX] + 2)
window_handle.set_bottom(event[:pageY] + 4)
end
end
end
on(:mouseup) do |event|
@mode = :hover
the_window = self.window
if the_window
GxG::DISPLAY_DETAILS[:object].window_bring_to_front(the_window.uuid)
end
end
on(:mousedown) do |event|
@mode = :drag
do_drag(event)
end
on(:mouseover) do |event|
if @mode == :drag
do_drag(event)
end
end
on(:mouseleave) do |event|
if @mode == :drag
do_drag(event)
end
end
on(:mouseenter) do |event|
if @mode == :drag
do_drag(event)
end
end
`),S["$[]="]("content",[]),A=s(s(s("GxG"),"Database"),"DetachedHash").$new(),A["$[]="]("component","org.gxg.gui.block.table.cell"),A["$[]="]("settings",new Map),A["$[]="]("options",new Map([["style",new Map([["width","2px"],["cursor","w-resize"]])]])),A["$[]="]("script",`
def do_drag(event)
if ((event[:buttons] & 1) == 1)
window_handle = self.window
if window_handle
window_handle.set_left(event[:pageX])
end
end
end
on(:mouseup) do |event|
@mode = :hover
the_window = self.window
if the_window
GxG::DISPLAY_DETAILS[:object].window_bring_to_front(the_window.uuid)
end
end
on(:mousedown) do |event|
@mode = :drag
do_drag(event)
end
on(:mouseover) do |event|
if @mode == :drag
do_drag(event)
end
end
on(:mouseleave) do |event|
if @mode == :drag
do_drag(event)
end
end
on(:mouseenter) do |event|
if @mode == :drag
do_drag(event)
end
end
`),A["$[]="]("content",[]),M=s(s(s("GxG"),"Database"),"DetachedHash").$new(),M["$[]="]("component","org.gxg.gui.block.table.cell"),M["$[]="]("settings",new Map),M["$[]="]("options",new Map([["style",new Map([["width","2px"],["cursor","e-resize"]])]])),M["$[]="]("script",`
def do_drag(event)
if ((event[:buttons] & 1) == 1)
window_handle = self.window
if window_handle
window_handle.set_right(event[:pageX] + 1)
end
end
end
on(:mouseup) do |event|
@mode = :hover
the_window = self.window
if the_window
GxG::DISPLAY_DETAILS[:object].window_bring_to_front(the_window.uuid)
end
end
on(:mousedown) do |event|
@mode = :drag
do_drag(event)
end
on(:mouseover) do |event|
if @mode == :drag
do_drag(event)
end
end
on(:mouseleave) do |event|
if @mode == :drag
do_drag(event)
end
end
on(:mouseenter) do |event|
if @mode == :drag
do_drag(event)
end
end
`),M["$[]="]("content",[]),k=s(s(s("GxG"),"Database"),"DetachedHash").$new(),k["$title="]("menu_area "+o.uuid.$to_s()),k["$[]="]("component","org.gxg.gui.block.table.cell"),k["$[]="]("settings",new Map),k["$[]="]("options",new Map([["style",new Map([["overflow","hidden"],["height","16px"],["padding","0px"],["margin","0px"]])]])),k["$[]="]("script",""),k["$[]="]("content",[]),O=s(s(s("GxG"),"Database"),"DetachedHash").$new(),O["$title="]("menu_area_row "+o.uuid.$to_s()),O["$[]="]("component","org.gxg.gui.block.table.row"),O["$[]="]("settings",new Map),O["$[]="]("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"]])]])),O["$[]="]("script",""),O["$[]="]("content",[A,k,M]),g=s(s(s("GxG"),"Database"),"DetachedHash").$new(),g["$title="]("content_area "+o.uuid.$to_s()),g["$[]="]("component","org.gxg.gui.block.table.cell"),g["$[]="]("settings",new Map),g["$[]="]("options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["border","0px"]])]])),g["$[]="]("script",""),g["$[]="]("content",[h]),u=s(s(s("GxG"),"Database"),"DetachedHash").$new(),u["$[]="]("component","org.gxg.gui.block.table.row"),u["$[]="]("settings",new Map),u["$[]="]("options",new Map),u["$[]="]("script",""),u["$[]="]("content",[]),_=s(s(s("GxG"),"Database"),"DetachedHash").$new(),_["$[]="]("component","org.gxg.gui.block.table.row"),_["$[]="]("settings",new Map),_["$[]="]("options",new Map),_["$[]="]("script",""),_["$[]="]("content",[]),f=s(s(s("GxG"),"Database"),"DetachedHash").$new(),f["$title="]("window_body "+o.uuid.$to_s()),f["$[]="]("component","org.gxg.gui.block.table"),f["$[]="]("settings",new Map),f["$[]="]("options",new Map([["style",new Map([["width","100%"]])],["states",new Map([["default-background-color",!0]])]])),f["$[]="]("script",""),f["$[]="]("content",[]),n(o.resize)?(u["$[]="]("content",[D,g,z]),_["$[]="]("content",[F,T,S]),n(o.menu_reference)?f["$[]="]("content",[O,u,_]):f["$[]="]("content",[u,_])):n(o.menu_reference)?(u["$[]="]("content",[g]),f["$[]="]("content",[O,u])):(u["$[]="]("content",[g]),f["$[]="]("content",[u])),L["$<<"](f),o.content=t,o.$page().$build_components(o,L,new Map([["application",o.application]])),m=o.$page().$find_object_by(R),n(m)&&(o.content=m),m=o.$page().$find_object_by("window_body "+o.uuid.$to_s()),n(m)&&(o.window_body=m),m=o.$page().$find_object_by("title_object "+o.uuid.$to_s()),n(m)&&(o.title_object=m),m=o.$page().$find_object_by("menu_area "+o.uuid.$to_s()),n(m)&&(o.menu_area=m,o.menu_margin=(o.menu_area.$element().getBoundingClientRect().bottom-o.menu_area.$element().getBoundingClientRect().top).$to_i(),n(o.menu_area)&&o.menu_area.$parent().$parent().$gxg_merge_style(new Map([["border-collapse","collapse"]]))),r(s(E("GxG"),"DISPATCHER"),"post_event",[],function e(){var t=e.$$s==null?this:e.$$s;return t.$commit_settings()},{$$s:o}),o})}(C[0],s(s(s(s("GxG"),"Gui"),"Vdom"),"BaseElement"),C),s(s("GxG"),"Gui").$register_component_class("org.gxg.gui.window",s(s(s("GxG"),"Gui"),"Window")),function(m,p,v){var b=g(m,p,"DialogBox"),w=[b].concat(v),x=e.$r(w),_=b.$$prototype;return _.title_object=_.window_title=_.responder=_.right=_.left=_.bottom=_.top=_.opacity=_.content=_.background_color=_.layer=_.uuid=t,o(b,"$_before_create",function e(){var s=e.$$p||t,n=this;return e.$$p=null,j(n,y(n,"_before_create",e,!1,!0),"_before_create",[],null)}),o(b,"$uuid",u("uuid")),o(b,"$before_close",function(n){return n==null&&(n=t),t},-1),o(b,"$after_close",function(n){return n==null&&(n=t),t},-1),o(b,"$before_open",function(n){return n==null&&(n=t),t},-1),o(b,"$after_open",function(n){return n==null&&(n=t),t},-1),o(b,"$set_application",O("application")),h(b,"application=","set_application"),o(b,"$application",u("application")),o(b,"$set_window_title",function(o){var i=this;return o==null&&(o=t),n(i.title_object)&&n(o["$is_a?"](s("String")))?(i.window_title=o,i.title_object.$set_text(i.window_title)):t},-1),h(b,"window_title=","set_window_title"),o(b,"$window_title",function(){var s=this;return n(s.title_object)?s.window_title:t}),o(b,"$set_data",function(t){var n=this;return t==null&&(t=new Map),n.data=t},-1),h(b,"data=","set_data"),o(b,"$data",u("data")),o(b,"$set_responder",function(s){var o=this;return s==null&&(s=t),n(s["$respond_to?"]("call"))?o.responder=s:t},-1),h(b,"responder=","set_responder"),o(b,"$respond",function(s){var o=this;return s==null&&(s=t),o.$page().$dialog_close(),n(o.responder["$respond_to?"]("call"))?o.responder.$call(s):t},-1),o(b,"$top",u("top")),o(b,"$left",u("left")),o(b,"$right",u("right")),o(b,"$bottom",u("bottom")),o(b,"$width",function(){var t=this;return i(t.right,t.left)}),o(b,"$height",function(){var t=this;return i(t.bottom,t.top)}),o(b,"$position",function(){var t=this;return new Map([["x",t.left],["y",t.top]])}),o(b,"$layer",u("layer")),o(b,"$initialize",function e(o,r,d){var p=e.$$p||t,u=this,m=t,f=t,h=t;return e.$$p=null,d==null&&(d=new Map),u.special_state=t,u.content=t,m=t,n(r["$[]"]("width")["$is_a?"](s("String")))||n(r["$[]"]("width").$to_s()["$include?"]("."))?n(r["$[]"]("width")["$is_a?"](s("String")))?m=l(window.innerWidth.$to_f(),a(r["$[]"]("width").$gsub("%","").$to_f(),100)):m=l(window.innerWidth.$to_f(),a(r["$[]"]("width"),100)):n(r["$[]"]("width")["$is_a?"](s("Numeric")))&&(m=r["$[]"]("width").$to_f()),n(m)&&(u.left=i(a(window.innerWidth.$to_f(),2),a(m,2)),u.right=c(a(window.innerWidth.$to_f(),2),a(m,2))),f=t,n(r["$[]"]("height")["$is_a?"](s("String")))||n(r["$[]"]("height").$to_s()["$include?"]("."))?n(r["$[]"]("height")["$is_a?"](s("String")))?f=l(window.innerHeight.$to_f(),a(r["$[]"]("height").$gsub("%","").$to_f(),100)):f=l(window.innerHeight.$to_f(),a(r["$[]"]("height"),100)):n(r["$[]"]("height")["$is_a?"](s("Numeric")))&&(f=r["$[]"]("height").$to_f()),n(f)&&(u.top=i(a(window.innerHeight.$to_f(),2),a(f,2)),u.bottom=c(a(window.innerHeight.$to_f(),2),a(f,2))),n(r["$[]"]("top")["$is_a?"](s("String")))||n(r["$[]"]("top").$to_s()["$include?"]("."))?n(r["$[]"]("top")["$is_a?"](s("String")))?u.top=l(window.innerHeight.$to_f(),a(r["$[]"]("top").$gsub("%","").$to_f(),100)):u.top=l(window.innerHeight.$to_f(),a(r["$[]"]("top"),100)):n(f)||(u.top=n(h=r["$[]"]("top"))?h:i(a(window.innerHeight.$to_i(),2),150)),n(r["$[]"]("left")["$is_a?"](s("String")))||n(r["$[]"]("left").$to_s()["$include?"]("."))?n(r["$[]"]("left")["$is_a?"](s("String")))?u.left=l(window.innerWidth.$to_f(),a(r["$[]"]("left").$gsub("%","").$to_f(),100)):u.left=l(window.innerWidth.$to_f(),a(r["$[]"]("left"),100)):n(m)||(u.left=n(h=r["$[]"]("left"))?h:i(a(window.innerWidth.$to_i(),2),300)),n(r["$[]"]("right")["$is_a?"](s("String")))||n(r["$[]"]("right").$to_s()["$include?"]("."))?n(r["$[]"]("right")["$is_a?"](s("String")))?u.right=l(window.innerWidth.$to_f(),a(r["$[]"]("right").$gsub("%","").$to_f(),100)):u.right=l(window.innerWidth.$to_f(),a(r["$[]"]("right"),100)):n(m)||(u.right=n(h=r["$[]"]("right"))?h:c(a(window.innerWidth.$to_i(),2),300)),n(r["$[]"]("bottom")["$is_a?"](s("String")))||n(r["$[]"]("bottom").$to_s()["$include?"]("."))?n(r["$[]"]("bottom")["$is_a?"](s("String")))?u.bottom=l(window.innerHeight.$to_f(),a(r["$[]"]("bottom").$gsub("%","").$to_f(),100)):u.bottom=l(window.innerHeight.$to_f(),a(r["$[]"]("bottom"),100)):n(f)||(u.bottom=n(h=r["$[]"]("bottom"))?h:c(a(window.innerHeight.$to_i(),2),150)),u.window_title=n(h=r["$[]"]("window_title"))?h:"Untitled",u.title_object=t,u.opacity=n(h=r["$[]"]("opacity"))?h:.8,u.background_color=n(h=r["$[]"]("background-color"))?h:"rgba(0,0,0,"+u.opacity.$to_s()+")",u.layer=2e3,u.tracking=new Map,u.responder=t,u.data=new Map,j(u,y(u,"initialize",e,!1,!0),"initialize",[o,r,d],null),u.$set_attribute("draggable",!1),u},-3),h(b,"original_add_child","add_child"),o(b,"$add_child",function(t){var s=this;return n(s.content)?s.content.$add_child(t):s.$original_add_child(t)}),h(b,"original_children","children"),o(b,"$children",function(){var t=this;return n(t.content)?t.content.$children():new Map}),o(b,"$find_child",function(s,o){var u=this,a=t,l=t,c=t,i=t;for(s==null&&(s=t),o==null&&(o=!1),a=t,n(x("GxG")["$valid_uuid?"](s))?l=!0:l=!1,d(o,!0)?c=u.$original_children().$values():c=u.$children().$values();n(f(c.$size(),0));)if(i=c.$shift(),n(i)){if(n(l)){if(d(i.$uuid(),s)){a=i;break}}else if(d(i.$title(),s)){a=i;break}n(a)||r(i.$children().$values(),"each",[],function(n){return n==null&&(n=t),c["$<<"](n)})}return a},-1),o(b,"$cascade",function(){var o=this,v=t,g=t,r=t,d=t,h=t,m=t,u=t,f=t,p=t;return o.$merge_style(new Map([["position","absolute"],["top","0px"],["left","0px"],["width","100%"],["height","100%"],["background-color",o.background_color],["z-index",o.layer]])),v=`
on(:mouseup,true) do |event|
end
on(:mousedown,true) do |event|
end
on(:mousemove,true) do |event|
end
on(:mouseenter,true) do |event|
end
on(:mouseleave,true) do |event|
end
`,o.$set_script(v),g=[],r=s(s(s("GxG"),"Database"),"DetachedHash").$new(),r["$title="]("modal_frame "+o.uuid.$to_s()),r["$[]="]("component","org.gxg.gui.block.table"),r["$[]="]("settings",new Map),r["$[]="]("options",new Map([["style",new Map([["opacity",1],["clear","both"],["overflow","hidden"],["position","absolute"],["top",""+o.top+"px"],["left",""+o.left+"px"],["width",""+o.$width()+"px"],["height",""+o.$height()+"px"],["padding","0px"],["margin","0px"],["border-radius","5px 5px 5px 5px"],["z-index",c(o.layer,100)]])],["states",new Map([["default-background-color",!0]])]])),r["$[]="]("script",""),r["$[]="]("content",[]),d=s(s(s("GxG"),"Database"),"DetachedHash").$new(),d["$title="]("title "+o.uuid.$to_s()),d["$[]="]("component","org.gxg.gui.label"),d["$[]="]("settings",new Map),d["$[]="]("options",new Map([["content",o.window_title],["style",new Map([["opacity",1],["width","100%"],["font-size","16px"],["text-align","center"]])]])),d["$[]="]("script",""),d["$[]="]("content",[]),h=s(s(s("GxG"),"Database"),"DetachedHash").$new(),h["$[]="]("component","org.gxg.gui.block.table.cell"),h["$[]="]("settings",new Map),h["$[]="]("options",new Map([["style",new Map([["opacity",1],["width","100%"],["padding","0px 0px 0px "+i(a(o.$width(),2),l(a(o.window_title.$size(),2),8))+"px"],["margin","0px"],["vertical-align","middle"],["background-color","transparent"]])]])),h["$[]="]("script",""),h["$[]="]("content",[d]),m=s(s(s("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],["clear","both"],["padding","0px"],["width","100%"],["height","24px"],["margin","0px"],["vertical-align","middle"],["background-color","#ffffff"],["border-bottom","1px solid #c2c2c2"]])]])),m["$[]="]("script",""),m["$[]="]("content",[h]),u=s(s(s("GxG"),"Database"),"DetachedHash").$new(),u["$title="]("content "+o.uuid.$to_s()),u["$[]="]("component","org.gxg.gui.block.table.cell"),u["$[]="]("settings",new Map),u["$[]="]("options",new Map([["style",new Map([["opacity",1],["clear","both"],["padding","0px"],["margin","0px"],["border","0px"],["width",""+o.$width()+"px"],["height",""+o.$height()+"px"]])],["states",new Map([["default-background-color",!0]])]])),u["$[]="]("script",""),u["$[]="]("content",[]),f=s(s(s("GxG"),"Database"),"DetachedHash").$new(),f["$[]="]("component","org.gxg.gui.block.table.row"),f["$[]="]("settings",new Map),f["$[]="]("options",new Map([["style",new Map([["opacity",1],["width",""+o.$width()+"px"],["height",""+i(o.$height(),24)+"px"],["padding","0px"],["margin","0px"],["border","0px"]])]])),f["$[]="]("script",""),f["$[]="]("content",[u]),r["$[]="]("content",[m,f]),g["$<<"](r),o.content=t,o.$page().$build_components(o,g),p=o.$page().$find_object_by("content "+o.uuid.$to_s()),n(p)&&(o.content=p),p=o.$page().$find_object_by("title "+o.uuid.$to_s()),n(p)?o.title_object=p:t}),o(b,"$open",function(n){return n==null&&(n=new Map),t},-1),o(b,"$close",function(n){return n==null&&(n=new Map),t},-1)}(C[0],s(s(s(s("GxG"),"Gui"),"Vdom"),"BaseElement"),C),s(s("GxG"),"Gui").$register_component_class("org.gxg.gui.window.dialog",s(s(s("GxG"),"Gui"),"DialogBox")),function(a,h){var p=b(a,"Vdom"),m=[p].concat(h);return function(a,h,m){var p=g(a,h,"Page"),y=[p].concat(m),b=e.$r(y),j=p.$$prototype;return j.dialog=j.dialog_queue=j.window_registry=t,o(p,"$window_open",function(o,i){var r=this,a=t,c=t;return o==null&&(o=t),i==null&&(i=t),!!n(o["$is_a?"](s(s(b("GxG"),"Database"),"DetachedHash")))&&(r.$build_components(r,[o],new Map([["application",i]])),a=r.$find_object_by(o.$uuid()),n(a)?(n(a.$menu_reference())&&(c=i.$search_content(a.$menu_reference()),n(c["$is_a?"](s(s(b("GxG"),"Database"),"DetachedHash")))?a.$set_menu(c):r.$log_warn("Invalid Menu Resource referenced: "+a.$menu_reference().$inspect())),r.$window_register(a.$uuid(),a),a.$before_open(),a.$open(),a.$show(),a.$after_open(),!0):(r.$log_warn("Unable to locate newly created window object."),!1))},-1),o(p,"$window_close",function(o,i){var r=this,a=t;return o==null&&(o=t),i==null&&(i=new Map),!!n(o["$is_any?"](s("String"),s("Symbol")))&&(a=r.$get_window_registration(o),!!n(a)&&(a["$[]"]("window").$before_close(),a["$[]"]("window").$close(),a["$[]"]("window").$hide(),a["$[]"]("window").$after_close(),n(a["$[]"]("window").$application())&&(a["$[]"]("window").$application().$unlink_window(o),a["$[]"]("window").$set_application(t)),r.$window_unregister(o),a["$[]"]("window").$destroy(),!0))},-1),o(p,"$dialog_open",function e(o,i,a){var l=e.$$p||t,c=this,r=t;return e.$$p=null,o==null&&(o=t),i==null&&(i=t),a==null&&(a=t),n(o["$is_a?"](s(s(s("GxG"),"Database"),"DetachedHash")))?n(c.dialog["$is_a?"](s(s(s("GxG"),"Gui"),"DialogBox")))?(c.dialog_queue["$<<"](new Map([["source",o],["application",i],["details",a],["responder",l]])),!0):(c.$page().$build_components(c,[o],new Map([["application",i]])),r=c.$page().$find_object_by(o.$uuid()),!!n(r)&&(r.$set_title(o.$title()),n(i["$is_a?"](s(s("GxG"),"Application")))&&(r.$set_application(i),n(i.$get_window(o.$uuid()))||i.$link_window(r)),n(a)&&r.$set_data(a),n(l["$respond_to?"]("call"))&&r.$set_responder(l),r.$before_open(),r.$open(),r.$show(new Map([["origin",new Map([["opacity",0]])],["destination",new Map([["opacity",1]])]])),r.$after_open(),!0)):t},-1),o(p,"$dialog_close",function(o){var i=this,a=t;return o==null&&(o=new Map),n(i.dialog["$is_a?"](s(s(s("GxG"),"Gui"),"DialogBox")))&&(i.dialog.$before_close(),a=r(b("Proc"),"new",[],function e(){var o=e.$$s==null?this:e.$$s,i=t;return o.dialog==null&&(o.dialog=t),o.dialog_queue==null&&(o.dialog_queue=t),o.dialog.$close(),o.dialog.$after_close(),r(o.dialog,"every_child",[],function(o){var i=t;return o==null&&(o=t),n(o["$is_a?"](s(s(s("GxG"),"Gui"),"ApplicationViewport")))?(i=o.$application(),n(i)?i.$unlink_viewport(o.$title()):t):t}),o.dialog.$destroy(),o.dialog=t,n(f(o.dialog_queue.$size(),0))?(i=o.dialog_queue.$shift(),r(o.$page(),"dialog_open",[i["$[]"]("source"),i["$[]"]("application"),i["$[]"]("details")],i["$[]"]("responder").$to_proc())):t},{$$s:i}),n(o["$[]"]("origin"))&&n(o["$[]"]("destination"))?r(i.dialog,"hide",[o],a.$to_proc()):r(i.dialog,"hide",[new Map([["origin",new Map([["opacity",1]])],["destination",new Map([["opacity",0]])],["options",new Map([["duration",500]])]])],a.$to_proc())),!0},-1),o(p,"$window_is_in_back?",function(s){var i=this,o=t,a=t,c=t;return s==null&&(s=t),o=i.$get_window_registration(s),!!n(o)&&(a=n(c=r(i.window_registry,"collect",[],function(n,s){return n==null&&(n=t),s==null&&(s=t),s["$[]"]("layer")}).$min())?c:0,!!d(o["$[]"]("layer"),a))},-1),o(p,"$window_is_in_front?",function(s){var i=this,o=t,a=t,c=t;return s==null&&(s=t),o=i.$get_window_registration(s),!!n(o)&&(a=n(c=r(i.window_registry,"collect",[],function(n,s){return n==null&&(n=t),s==null&&(s=t),s["$[]"]("layer")}).$max())?c:0,!!d(o["$[]"]("layer"),a))},-1),o(p,"$window_send_to_back",function(s){var o,a=this,i=t,l=t;return s==null&&(s=t),i=a.$get_window_registration(s),!!n(i)&&(n(a["$window_is_in_back?"](s))?t:(l=a.$window_back_layer(),i["$[]"]("window").$gxg_merge_style("z-index",c(200,l)),(o=["layer",l],r(i,"[]=",o),o[o.length-1])))},-1),o(p,"$window_bring_to_front",function(s,o){var a=this,i=t,r=t;return s==null&&(s=t),o==null&&(o=new Map),i=a.$get_window_registration(s),!!n(i)&&(d(i["$[]"]("layer"),a.$window_top_layer())||(r=a.$window_next_layer(),i["$[]"]("window").$gxg_merge_style("z-index",c(200,r)),i["$[]="]("layer",r)),!0)},-1),o(p,"$next_minimize_slot",function(){var g=this,u=t,h=t,a=t,f=t,p=t,m=t,u=200,h=24,a=s(b("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$layout_content_area(),f=e.Range.$new(0,i(a["$[]"]("right"),a["$[]"]("left")).$step(u).$size(),!1),p=e.Range.$new(0,i(a["$[]"]("bottom"),a["$[]"]("top")).$step(h).$size(),!1),m=t;return function(){try{var s=_("break");return r(e.Range.$new(0,i(p,1),!1),"each",[],function o(p){var g=o.$$s==null?this:o.$$s;if(p==null&&(p=t),function(){try{var s=_("break");return r(e.Range.$new(0,i(f,1),!1),"each",[],function e(o){var f=e.$$s==null?this:e.$$s,g=t,i=t;if(f.window_registry==null&&(f.window_registry=t),o==null&&(o=t),g=!1,i=new Map([["top",c(a["$[]"]("top"),l(p,h))],["left",c(a["$[]"]("left"),l(o,u))],["right",c(c(a["$[]"]("left"),l(o,u)),u)],["bottom",c(c(a["$[]"]("top"),l(p,h)),h)]]),function(){try{var e=_("break");return r(f.window_registry.$values(),"each",[],function n(s){var o=t;if(s==null&&(s=t),o=new Map([["top",0],["left",0],["right",0],["bottom",0]]),o["$[]="]("top",s["$[]"]("window").$element().getBoundingClientRect().top.$to_i()),o["$[]="]("left",s["$[]"]("window").$element().getBoundingClientRect().left.$to_i()),o["$[]="]("right",s["$[]"]("window").$element().getBoundingClientRect().right.$to_i()),o["$[]="]("bottom",s["$[]"]("window").$element().getBoundingClientRect().bottom.$to_i()),d(o["$[]"]("top"),i["$[]"]("top"))&&d(o["$[]"]("left"),i["$[]"]("left"))&&d(o["$[]"]("right"),i["$[]"]("right"))&&d(o["$[]"]("bottom"),i["$[]"]("bottom")))g=!0,e.$throw(t,n.$$is_lambda);else return t})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}(),n(g))return t;m=i,s.$throw(t,e.$$is_lambda)},{$$s:g})}catch(e){if(e===s)return e.$v;throw e}finally{s.is_orphan=!0}}(),n(m))s.$throw(t,o.$$is_lambda);else return t},{$$s:g})}catch(e){if(e===s)return e.$v;throw e}finally{s.is_orphan=!0}}(),m}),o(p,"$minimize_effect",function e(s){var m=e.$$p||t,g=this,c=t,a=t,u=t,h=t,o=t,f=t,p=t,v=t,d=t,j=t,l=t;return e.$$p=null,s==null&&(s=t),c=g.$get_window_switcher(),n(c)?(a=new Map([["opacity",1]]),a["$[]="]("top",s["$[]"]("window").$element().getBoundingClientRect().top.$to_i()),a["$[]="]("left",s["$[]"]("window").$element().getBoundingClientRect().left.$to_i()),u=s["$[]"]("window").$element().getBoundingClientRect().right.$to_i(),h=s["$[]"]("window").$element().getBoundingClientRect().bottom.$to_i(),a["$[]="]("width",i(u,a["$[]"]("left"))),a["$[]="]("height",i(h,a["$[]"]("top"))),o=new Map([["opacity",0]]),o["$[]="]("top",c.$element().getBoundingClientRect().top.$to_i()),o["$[]="]("left",c.$element().getBoundingClientRect().right.$to_i()),f=c.$element().getBoundingClientRect().right.$to_i(),p=c.$element().getBoundingClientRect().top.$to_i(),o["$[]="]("width",i(f,o["$[]"]("left"))),o["$[]="]("height",i(p,o["$[]"]("top"))),v=r(b("Proc"),"new",[],function(){return n(m["$respond_to?"]("call"))?m.$call(!0):t})):(d=g.$next_minimize_slot(),a=new Map([["opacity",1]]),a["$[]="]("top",s["$[]"]("window").$element().getBoundingClientRect().top.$to_i()),a["$[]="]("left",s["$[]"]("window").$element().getBoundingClientRect().left.$to_i()),u=s["$[]"]("window").$element().getBoundingClientRect().right.$to_i(),h=s["$[]"]("window").$element().getBoundingClientRect().bottom.$to_i(),a["$[]="]("width",i(u,a["$[]"]("left"))),a["$[]="]("height",i(h,a["$[]"]("top"))),o=new Map([["opacity",.5]]),o["$[]="]("top",d["$[]"]("top")),o["$[]="]("left",d["$[]"]("left")),f=d["$[]"]("right"),p=d["$[]"]("bottom"),o["$[]="]("width",i(f,o["$[]"]("left"))),o["$[]="]("height",i(p,o["$[]"]("top"))),v=r(b("Proc"),"new",[],function e(){var o=e.$$s==null?this:e.$$s;return o.$window_send_to_back(s["$[]"]("window").$uuid()),n(m["$respond_to?"]("call"))?m.$call(!0):t},{$$s:g})),j=r(b("Proc"),"new",[],function(){var n=t,o=t,i=t,a=t,n=s["$[]"]("window").$element().getBoundingClientRect().top.$to_i(),o=s["$[]"]("window").$element().getBoundingClientRect().left.$to_i(),i=s["$[]"]("window").$element().getBoundingClientRect().right.$to_i(),a=s["$[]"]("window").$element().getBoundingClientRect().bottom.$to_i();return s["$[]"]("window").$set_frame(new Map([["top",n],["left",o],["right",i],["bottom",a]]))}),s["$[]"]("window").$animate(new Map([["origin",a],["destination",o],["options",new Map([["duration",500],["animationiteration",j],["animationend",v]])]])),l=new Map([["action","minimize"],["top",0],["left",0],["right",0],["bottom",0]]),l["$[]="]("top",s["$[]"]("window").$element().getBoundingClientRect().top.$to_i()),l["$[]="]("left",s["$[]"]("window").$element().getBoundingClientRect().left.$to_i()),l["$[]="]("right",s["$[]"]("window").$element().getBoundingClientRect().right.$to_i()),l["$[]="]("bottom",s["$[]"]("window").$element().getBoundingClientRect().bottom.$to_i()),l},-1),o(p,"$unminimize_effect",function e(s){var h=e.$$p||t,g=this,m=t,o=t,c=t,l=t,a=t,d=t,u=t,f=t,p=t;return e.$$p=null,s==null&&(s=t),m=g.$get_window_switcher(),n(m)?(o=new Map([["opacity",0]]),o["$[]="]("top",s["$[]"]("window").$element().getBoundingClientRect().top.$to_i()),o["$[]="]("left",s["$[]"]("window").$element().getBoundingClientRect().left.$to_i()),c=s["$[]"]("window").$element().getBoundingClientRect().right.$to_i(),l=s["$[]"]("window").$element().getBoundingClientRect().bottom.$to_i(),o["$[]="]("width",i(c,o["$[]"]("left"))),o["$[]="]("height",i(l,o["$[]"]("top"))),a=new Map([["opacity",1]]),a["$[]="]("top",s["$[]"]("restore")["$[]"]("settings")["$[]"]("top")),a["$[]="]("left",s["$[]"]("restore")["$[]"]("settings")["$[]"]("left")),d=s["$[]"]("restore")["$[]"]("settings")["$[]"]("right"),u=s["$[]"]("restore")["$[]"]("settings")["$[]"]("bottom"),a["$[]="]("width",i(d,a["$[]"]("left"))),a["$[]="]("height",i(u,a["$[]"]("top")))):(o=new Map([["opacity",.5]]),o["$[]="]("top",s["$[]"]("window").$element().getBoundingClientRect().top.$to_i()),o["$[]="]("left",s["$[]"]("window").$element().getBoundingClientRect().left.$to_i()),c=s["$[]"]("window").$element().getBoundingClientRect().right.$to_i(),l=s["$[]"]("window").$element().getBoundingClientRect().bottom.$to_i(),o["$[]="]("width",i(c,o["$[]"]("left"))),o["$[]="]("height",i(l,o["$[]"]("top"))),a=new Map([["opacity",1]]),a["$[]="]("top",s["$[]"]("restore")["$[]"]("settings")["$[]"]("top")),a["$[]="]("left",s["$[]"]("restore")["$[]"]("settings")["$[]"]("left")),d=s["$[]"]("restore")["$[]"]("settings")["$[]"]("right"),u=s["$[]"]("restore")["$[]"]("settings")["$[]"]("bottom"),a["$[]="]("width",i(d,a["$[]"]("left"))),a["$[]="]("height",i(u,a["$[]"]("top")))),f=r(b("Proc"),"new",[],function(){var n=t,o=t,i=t,a=t,n=s["$[]"]("window").$element().getBoundingClientRect().top.$to_i(),o=s["$[]"]("window").$element().getBoundingClientRect().left.$to_i(),i=s["$[]"]("window").$element().getBoundingClientRect().right.$to_i(),a=s["$[]"]("window").$element().getBoundingClientRect().bottom.$to_i();return s["$[]"]("window").$set_frame(new Map([["top",n],["left",o],["right",i],["bottom",a]]))}),p=r(b("Proc"),"new",[],function(){return n(h["$respond_to?"]("call"))?h.$call(!0):t}),s["$[]"]("window").$animate(new Map([["origin",o],["destination",a],["options",new Map([["duration",500],["animationiteration",f],["animationend",p]])]])),!0},-1),o(p,"$maximize_effect",function e(o){var u=e.$$p||t,a=t,c=t,h=t,m=t,l=t,f=t,p=t,d=t;return e.$$p=null,o==null&&(o=t),a=s(b("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$layout_content_area(),c=new Map,c["$[]="]("top",o["$[]"]("window").$element().getBoundingClientRect().top.$to_i()),c["$[]="]("left",o["$[]"]("window").$element().getBoundingClientRect().left.$to_i()),h=o["$[]"]("window").$element().getBoundingClientRect().right.$to_i(),m=o["$[]"]("window").$element().getBoundingClientRect().bottom.$to_i(),c["$[]="]("width",i(h,c["$[]"]("left"))),c["$[]="]("height",i(m,c["$[]"]("top"))),l=new Map,l["$[]="]("top",a["$[]"]("top")),l["$[]="]("left",a["$[]"]("left")),l["$[]="]("width",i(a["$[]"]("right"),l["$[]"]("left"))),l["$[]="]("height",i(a["$[]"]("bottom"),l["$[]"]("top"))),f=r(b("Proc"),"new",[],function(){var n=t,s=t,i=t,a=t,n=o["$[]"]("window").$element().getBoundingClientRect().top.$to_i(),s=o["$[]"]("window").$element().getBoundingClientRect().left.$to_i(),i=o["$[]"]("window").$element().getBoundingClientRect().right.$to_i(),a=o["$[]"]("window").$element().getBoundingClientRect().bottom.$to_i();return o["$[]"]("window").$set_frame(new Map([["top",n],["left",s],["right",i],["bottom",a]]))}),p=r(b("Proc"),"new",[],function(){return n(u["$respond_to?"]("call"))?u.$call(!0):t}),o["$[]"]("window").$animate(new Map([["origin",c],["destination",l],["options",new Map([["duration",500],["animationiteration",f],["animationend",p]])]])),d=new Map([["action","maximize"],["top",0],["left",0],["right",0],["bottom",0]]),d["$[]="]("top",a["$[]"]("top")),d["$[]="]("left",a["$[]"]("left")),d["$[]="]("right",a["$[]"]("right")),d["$[]="]("bottom",a["$[]"]("bottom")),d},-1),o(p,"$unmaximize_effect",function e(s){var c=e.$$p||t,o=t,l=t,d=t,a=t,u=t,h=t,m=t,f=t;return e.$$p=null,s==null&&(s=t),o=new Map,o["$[]="]("top",s["$[]"]("window").$top()),o["$[]="]("left",s["$[]"]("window").$left()),l=s["$[]"]("window").$right(),d=s["$[]"]("window").$bottom(),o["$[]="]("width",i(l,o["$[]"]("left"))),o["$[]="]("height",i(d,o["$[]"]("top"))),a=new Map,a["$[]="]("top",s["$[]"]("restore")["$[]"]("settings")["$[]"]("top")),a["$[]="]("left",s["$[]"]("restore")["$[]"]("settings")["$[]"]("left")),u=s["$[]"]("restore")["$[]"]("settings")["$[]"]("right"),h=s["$[]"]("restore")["$[]"]("settings")["$[]"]("bottom"),a["$[]="]("width",i(u,a["$[]"]("left"))),a["$[]="]("height",i(h,a["$[]"]("top"))),m=r(b("Proc"),"new",[],function(){var n=t,o=t,i=t,a=t,n=s["$[]"]("window").$element().getBoundingClientRect().top.$to_i(),o=s["$[]"]("window").$element().getBoundingClientRect().left.$to_i(),i=s["$[]"]("window").$element().getBoundingClientRect().right.$to_i(),a=s["$[]"]("window").$element().getBoundingClientRect().bottom.$to_i();return s["$[]"]("window").$set_frame(new Map([["top",n],["left",o],["right",i],["bottom",a]]))}),f=r(b("Proc"),"new",[],function(){return n(c["$respond_to?"]("call"))?c.$call(!0):t}),s["$[]"]("window").$animate(new Map([["origin",o],["destination",a],["options",new Map([["duration",500],["animationiteration",m],["animationend",f]])]])),!0},-1),o(p,"$rollup_effect",function e(s){var l=e.$$p||t,i=t,d=t,a=t,c=t,o=t;return e.$$p=null,s==null&&(s=t),i=new Map,d=s["$[]"]("window").$top(),i["$[]="]("height",s["$[]"]("window").$height()),a=new Map,a["$[]="]("height",24),c=s["$[]"]("window").$find_child("window_body",!0),n(c)&&r(c,"hide",[new Map([["origin",new Map([["opacity",1]])],["destination",new Map([["opacity",0]])]])],function(){return s["$[]"]("window").$animate(new Map([["origin",i],["destination",a]])),n(l["$respond_to?"]("call"))?l.$call(!0):t}),o=new Map([["action","rollup"],["top",0],["left",0],["right",0],["bottom",0]]),o["$[]="]("top",s["$[]"]("window").$element().getBoundingClientRect().top.$to_i()),o["$[]="]("left",s["$[]"]("window").$element().getBoundingClientRect().left.$to_i()),o["$[]="]("right",s["$[]"]("window").$element().getBoundingClientRect().right.$to_i()),o["$[]="]("bottom",s["$[]"]("window").$element().getBoundingClientRect().bottom.$to_i()),o},-1),o(p,"$rolldown_effect",function e(s){var c=e.$$p||t,o=t,a=t,l=t;return e.$$p=null,s==null&&(s=t),o=new Map,o["$[]="]("height",24),a=new Map,a["$[]="]("height",i(s["$[]"]("restore")["$[]"]("settings")["$[]"]("bottom"),s["$[]"]("restore")["$[]"]("settings")["$[]"]("top"))),l=r(b("Proc"),"new",[],function(){var o=t,o=s["$[]"]("window").$find_child("window_body",!0);return n(o)?r(o,"show",[new Map([["origin",new Map([["opacity",0]])],["destination",new Map([["opacity",1]])]])],function(){return s["$[]"]("window").$commit_settings(),n(c["$respond_to?"]("call"))?c.$call(!0):t}):t}),s["$[]"]("window").$animate(new Map([["origin",o],["destination",a],["options",new Map([["duration",500],["animationend",l]])]])),!0},-1),o(p,"$window_restoreable?",function(o){var a=this,i=t;return o==null&&(o=t),i=a.$get_window_registration(o),!!n(i)&&!!n(i["$[]"]("restore")["$is_a?"](s("Hash")))},-1),o(p,"$window_restore",function e(o,i){var c=e.$$p||t,l=this,a=t;if(e.$$p=null,o==null&&(o=t),i==null&&(i=new Map),a=l.$get_window_registration(o),n(a)){if(n(a["$[]"]("restore")["$is_a?"](s("Hash")))){switch(a["$[]"]("restore")["$[]"]("action").valueOf()){case"minimize":r(l,"unminimize_effect",[a],function(){return a["$[]"]("window").$clear_special_state(a["$[]"]("restore")["$[]"]("settings")),a["$[]="]("restore",t),n(c["$respond_to?"]("call"))?c.$call(!0):t});break;case"maximize":r(l,"unmaximize_effect",[a],function(){return a["$[]"]("window").$clear_special_state(a["$[]"]("restore")["$[]"]("settings")),a["$[]="]("restore",t),n(c["$respond_to?"]("call"))?c.$call(!0):t});break;case"rollup":r(l,"rolldown_effect",[a],function(){return a["$[]"]("window").$clear_special_state(a["$[]"]("restore")["$[]"]("settings")),a["$[]="]("restore",t),n(c["$respond_to?"]("call"))?c.$call(!0):t});break;default:t}return!0}return!1}else return!1},-1),o(p,"$window_minimize",function(s,o){var a=this,i=t;return s==null&&(s=t),o==null&&(o=new Map),i=a.$get_window_registration(s),!!n(i)&&(n(a["$window_restoreable?"](s))?r(a,"window_restore",[s],function e(){var t=e.$$s==null?this:e.$$s;return o=new Map([["top",i["$[]"]("window").$top()],["left",i["$[]"]("window").$left()],["right",i["$[]"]("window").$right()],["bottom",i["$[]"]("window").$bottom()]]),i["$[]="]("restore",new Map([["action","minimize"],["settings",o]])),i["$[]"]("window").$set_special_state(t.$minimize_effect(i))},{$$s:a}):(i["$[]="]("restore",new Map([["action","minimize"],["settings",o]])),i["$[]"]("window").$set_special_state(a.$minimize_effect(i))),!0)},-1),o(p,"$window_maximize",function(s,o){var a=this,i=t;return s==null&&(s=t),o==null&&(o=new Map),i=a.$get_window_registration(s),!!n(i)&&(n(a["$window_restoreable?"](s))?r(a,"window_restore",[s],function e(){var t=e.$$s==null?this:e.$$s;return o=new Map([["top",i["$[]"]("window").$top()],["left",i["$[]"]("window").$left()],["right",i["$[]"]("window").$right()],["bottom",i["$[]"]("window").$bottom()]]),i["$[]="]("restore",new Map([["action","maximize"],["settings",o]])),i["$[]"]("window").$set_special_state(t.$maximize_effect(i)),t.$window_bring_to_front(s)},{$$s:a}):(i["$[]="]("restore",new Map([["action","maximize"],["settings",o]])),i["$[]"]("window").$set_special_state(a.$maximize_effect(i)),a.$window_bring_to_front(s)),!0)},-1),o(p,"$window_rollup",function(s,o){var a=this,i=t;return s==null&&(s=t),o==null&&(o=new Map),i=a.$get_window_registration(s),!!n(i)&&(n(a["$window_restoreable?"](s))?r(a,"window_restore",[s],function e(){var t=e.$$s==null?this:e.$$s;return o=new Map([["top",i["$[]"]("window").$top()],["left",i["$[]"]("window").$left()],["right",i["$[]"]("window").$right()],["bottom",i["$[]"]("window").$bottom()]]),i["$[]="]("restore",new Map([["action","rollup"],["settings",o]])),i["$[]"]("window").$set_special_state(t.$rollup_effect(i))},{$$s:a}):(i["$[]="]("restore",new Map([["action","rollup"],["settings",o]])),i["$[]"]("window").$set_special_state(a.$rollup_effect(i))),!0)},-1),o(p,"$get_window_registration",function(o){var i=this;return o==null&&(o=t),n(o["$is_any?"](s("String"),s("Symbol")))?i.window_registry["$[]"](o):t},-1),o(p,"$get_window",function(o){var a=this,i=t;return o==null&&(o=t),n(o["$is_any?"](s("String"),s("Symbol")))?(i=a.$get_window_registration(o),n(i)?i["$[]"]("window"):t):t},-1),o(p,"$window_list",function(){var s=this,n=t,n=[];return r(s.window_registry.$keys(),"each",[],function e(s){var o=e.$$s==null?this:e.$$s;return o.window_registry==null&&(o.window_registry=t),s==null&&(s=t),n["$<<"](new Map([["uuid",s],["title",o.window_registry["$[]"](s)["$[]"]("window").$title()]]))},{$$s:s}),n}),o(p,"$window_repack_layers",function(){var n=this;return n.window_registry=r(n.window_registry,"sort_by",[],function(n,s){return n==null&&(n=t),s==null&&(s=t),s["$[]"]("layer")}).$to_h(),r(n.window_registry.$values(),"each_with_index",[],function(n,s){var o;return n==null&&(n=t),s==null&&(s=t),n["$[]"]("window").$gxg_merge_style("z-index",c(200,s)),(o=["layer",s],r(n,"[]=",o),o[o.length-1])}),!0}),o(p,"$window_top_layer",function(){var o=this,s=t;return n(s=r(o.window_registry,"collect",[],function(n,s){return n==null&&(n=t),s==null&&(s=t),s["$[]"]("layer")}).$max())?s:0}),o(p,"$window_back_layer",function(){var a=this,s=t,o=t,s=i(n(o=r(a.window_registry,"collect",[],function(n,s){return n==null&&(n=t),s==null&&(s=t),s["$[]"]("layer")}).$min())?o:0,1);return n(v(s,100))&&(a.$window_repack_layers(),s=i(n(o=r(a.window_registry,"collect",[],function(n,s){return n==null&&(n=t),s==null&&(s=t),s["$[]"]("layer")}).$min())?o:0,1)),s}),o(p,"$window_next_layer",function(){var i=this,s=t,o=t,s=c(n(o=r(i.window_registry,"collect",[],function(n,s){return n==null&&(n=t),s==null&&(s=t),s["$[]"]("layer")}).$max())?o:0,1);return n(f(s,99))&&(i.$window_repack_layers(),s=c(n(o=r(i.window_registry,"collect",[],function(n,s){return n==null&&(n=t),s==null&&(s=t),s["$[]"]("layer")}).$max())?o:0,1)),s}),o(p,"$window_register",function(o,i){var r=this,a=t;return o==null&&(o=t),i==null&&(i=t),!!n(o["$is_any?"](s("String"),s("Symbol")))&&!!n(i)&&(a=r.$window_next_layer(),i.$gxg_merge_style("z-index",c(200,a)),r.window_registry["$[]="](o,new Map([["window",i],["layer",a],["restore",t]])),!0)},-1),o(p,"$window_unregister",function(o){var i=this;return o==null&&(o=t),!!n(o["$is_any?"](s("String"),s("Symbol")))&&(i.window_registry.$delete(o),!0)},-1),o(p,"$set_window_switcher",function(s){var o=this;return s==null&&(s=t),n(s)?o.window_switcher=s:t},-1),o(p,"$get_window_switcher",u("window_switcher"))}(m[0],null,m)}(C[0],C)}(C[0],C)}(w[0],w)},Opal.modules["web/gxg_gui"]=function(e){var v=e.module,h=e.klass,p=e.send2,f=e.find_super,o=e.def,_=e.assign_ivar,m=e.return_ivar,s=e.truthy,c=e.rb_gt,a=e.send,r=e.eqeq,b=e.thrower,g=e.alias,i=e.rb_plus,j=e.neqeq,d=e.rb_times,l=e.rb_minus,u=e.rb_divide,w=e.range,y=[],t=e.nil,n=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(y,O){var C=v(y,"GxG"),x=[C].concat(O);return function(y,O){var C=v(y,"Gui"),x=[C].concat(O);return function(n,i,l){var d=h(n,i,"ApplicationViewport"),u=[d].concat(l),g=e.$r(u);return o(d,"$_before_create",function e(){var s=e.$$p||t,n=this;return e.$$p=null,n.domtype="div",p(n,f(n,"_before_create",e,!1,!0),"_before_create",[],null)}),o(d,"$set_application",_("application")),o(d,"$application",m("application")),o(d,"$find_child",function(n){var d=this,l=t,i=t,o=t;if(n==null&&(n=t),l=t,s(n))for(i=[d];s(c(i.$size(),0));)if(o=i.$shift(),s(o))if(s(g("GxG")["$valid_uuid?"](n))){if(s(o.$children()["$[]"](d.$object_source().$uuid()))){l=o.$children()["$[]"](d.$object_source().$uuid());break}a(o,"each_child",[],function(n){return n==null&&(n=t),i["$<<"](n)})}else(function(){try{var e=b("break");return a(o,"each_child",[],function s(o){if(o==null&&(o=t),r(o.$title(),n))l=o,e.$throw(t,s.$$is_lambda);else return i["$<<"](o)})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}})();return l},-1)}(x[0],n(n(n(n("GxG"),"Gui"),"Vdom"),"BaseElement"),x),n(n("GxG"),"Gui").$register_component_class("org.gxg.gui.application.viewport",n(n(n("GxG"),"Gui"),"ApplicationViewport")),function(l,d,u){var v=h(l,d,"Tree"),w=[v].concat(u),y=e.$r(w),_=v.$$prototype;return _.content=_.uuid=_.processors=_.selection=t,g(v,"original_add_child","add_child"),o(v,"$add_child",function(o){var i=this;return o==null&&(o=t),s(o["$is_a?"](n(n(n("GxG"),"Database"),"DetachedHash")))?s(i.content)?i.content.$add_child(o):i.$original_add_child(o):t},-1),g(v,"original_children","children"),o(v,"$children",function(){var t=this;return s(t.content)?t.content.$children():new Map}),o(v,"$find_child",function(n,o){var h=this,l=t,u=t,d=t,i=t;for(n==null&&(n=t),o==null&&(o=!1),l=t,s(y("GxG")["$valid_uuid?"](n))?u=!0:u=!1,r(o,!0)?d=h.$original_children().$values():d=h.$children().$values();s(c(d.$size(),0));)if(i=d.$shift(),s(i)){if(s(u)){if(r(i.$uuid(),n)){l=i;break}}else if(r(i.$title(),n)){l=i;break}s(l)||a(i.$children().$values(),"each",[],function(n){return n==null&&(n=t),d["$<<"](n)})}return l},-1),o(v,"$initialize",function e(n,s){var i=e.$$p||t,o=this;return e.$$p=null,o.content=t,o.selection=t,o.processors=new Map,p(o,f(o,"initialize",e,!1,!0),"initialize",[n,s],null),o}),o(v,"$cascade",function(){var n=this,o=t,i=t,o=n.$new_component("org.gxg.gui.list");return o["$title="]("content "+n.uuid.$to_s()),o["$[]="]("options",new Map([["style",new Map([["white-space","nowrap"],["width","auto"],["height","auto"],["list-style","none"],["margin","0px"],["padding","0px"]])]])),n.content=t,n.$page().$build_components(n,[o]),i=n.$page().$find_object_by("content "+n.uuid.$to_s()),s(i)?n.content=i:t}),o(v,"$update_appearance",function(n){return n==null&&(n=t),t},-1),o(v,"$set_processor",function e(n){var o,i=e.$$p||t,r=this;return e.$$p=null,n==null&&(n=t),s(i["$respond_to?"]("call"))?s(["select","expand","collapse"]["$include?"](n.$to_s().$to_sym()))?(o=[n.$to_s().$to_sym(),i],a(r.processors,"[]=",o),o[o.length-1]):r.$log_warn("Unsupported processor type: "+n.$to_s().$to_sym().$inspect()):t},-1),o(v,"$node_at_path",function(o){var u=this,d=t,l=t,i=t;for(o==null&&(o=t),d=t,l=u.$children().$values().$clone();s(c(l.$size(),0));)if(i=l.$shift(),s(i["$is_a?"](n(n(y("GxG"),"Gui"),"TreeNode")))){if(r(i.$node_path(),o)){d=i;break}a(i.$nodes().$values(),"each",[],function(n){return n==null&&(n=t),l["$<<"](n)})}return d},-1),o(v,"$expand_path",function e(o){var l=e.$$p||t,h=this,d=t,u=t;return e.$$p=null,o==null&&(o=t),s(o["$is_a?"](n("String")))&&(d=[],u=o.$split("/"),function(){try{var e=b("break");return a(u,"each",[],function u(h){var f=u.$$s==null?this:u.$$s,m=t;if(h==null&&(h=t),s(c(h.$size(),0)))if(d["$<<"](h),m=f.$node_at_path(i("/",d.$join("/"))),s(m["$is_a?"](n(n(y("GxG"),"Gui"),"TreeNode"))))return r(m.$gxg_get_state("expanded"),!1)&&(m.$expand(),a(n(y("GxG"),"DISPATCHER"),"post_event",["display"],function e(){var t=e.$$s==null?this:e.$$s;return a(t,"expand_path",[o],l.$to_proc())},{$$s:f}),e.$throw(t,u.$$is_lambda)),r(m.$node_path(),o)&&s(l["$respond_to?"]("call"))?l.$call():t;else a(n(y("GxG"),"DISPATCHER"),"post_event",["display"],function e(){var t=e.$$s==null?this:e.$$s;return a(t,"expand_path",[o],l.$to_proc())},{$$s:f}),e.$throw(t,u.$$is_lambda);else return t},{$$s:h})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}()),!0},-1),o(v,"$selection",m("selection")),o(v,"$select",function(o){var i=this;return o==null&&(o=t),s(o["$is_a?"](n(n(y("GxG"),"Gui"),"TreeNode")))&&j(i.selection,o)?(s(i.selection)&&i.selection.$unhighlight(),i.selection=o,i.selection.$highlight(),s(i.processors["$[]"]("select")["$respond_to?"]("call"))?i.processors["$[]"]("select").$call(i.selection):t):t},-1),o(v,"$expand",function(o){var i=this;return o==null&&(o=t),s(o["$is_a?"](n(n(y("GxG"),"Gui"),"TreeNode")))&&s(i.processors["$[]"]("expand")["$respond_to?"]("call"))?i.processors["$[]"]("expand").$call(o):t},-1),o(v,"$collapse",function(o){var i=this;return o==null&&(o=t),s(o["$is_a?"](n(n(y("GxG"),"Gui"),"TreeNode")))&&s(i.processors["$[]"]("collapse")["$respond_to?"]("call"))?i.processors["$[]"]("collapse").$call(o):t},-1)}(x[0],n(n(n(n("GxG"),"Gui"),"Vdom"),"BaseElement"),x),n(n("GxG"),"Gui").$register_component_class("tree",n(n(n("GxG"),"Gui"),"Tree")),function(l,d,u){var v=h(l,d,"TreeNode"),_=[v].concat(u),y=e.$r(_),b=v.$$prototype;return b.data=b.content=b.appearance=b.uuid=b.label=b.expander=t,o(v,"$_before_create",function e(){var i=e.$$p||t,o=this;return e.$$p=null,s(o.data["$is_a?"](n("Hash")))&&s(o.data["$[]"]("title"))&&(o.title=o.data["$[]"]("title")),p(o,f(o,"_before_create",e,!1,!0),"_before_create",[],null)}),g(v,"original_add_child","add_child"),o(v,"$add_child",function(o){var i=this;return o==null&&(o=t),s(o["$is_a?"](n(n(n("GxG"),"Database"),"DetachedHash")))?s(i.content)?i.content.$add_child(o):i.$original_add_child(o):t},-1),o(v,"$nodes",function(){var t=this;return s(t.content)?t.content.$children():new Map}),o(v,"$node_path",function(){for(var l=this,r=t,c=t,o=t,r="",c=[l],o=l.$parent();j(o,t);)s(o["$is_a?"](n(n(y("GxG"),"Gui"),"TreeNode")))&&c.$unshift(o),o=o.$parent(),s(o["$is_a?"](n(n(y("GxG"),"Gui"),"Tree")))&&(o=t);return a(c,"each",[],function(n){return n==null&&(n=t),r=i(r,"/"+n.$title())}),r}),o(v,"$find_child",function(n){var u=this,i=t,d=t,l=t,o=t;for(n==null&&(n=t),i=t,s(y("GxG")["$valid_uuid?"](n))?d=!0:d=!1,l=u.$children().$values();s(c(l.$size(),0));)if(o=l.$shift(),s(o)){if(s(d)){if(r(o.$uuid(),n)){i=o;break}}else if(r(o.$title(),n)){i=o;break}s(i)||a(o.$children().$values(),"each",[],function(n){return n==null&&(n=t),l["$<<"](n)})}return i},-1),o(v,"$update_appearance",function(o){var i=this;return o==null&&(o=t),!!s(i.appearance["$is_any?"](n("Hash"),n(n(n("GxG"),"Database"),"DetachedHash")))},-1),o(v,"$data",m("data")),o(v,"$appearance",m("appearance")),o(v,"$set_appearance",function(o){var i=this;return o==null&&(o=t),s(o["$is_any?"](n("Hash"),n(n(n("GxG"),"Database"),"DetachedHash")))?(i.appearance=o,i.$update_appearance()):t},-1),o(v,"$tree_node",function(){var t=this;return t.$find_parent_type(n(n(n("GxG"),"Gui"),"TreeNode"))}),o(v,"$tree",function(){var t=this;return t.$find_parent_type(n(n(n("GxG"),"Gui"),"Tree"))}),o(v,"$initialize",function e(o,i){var c=e.$$p||t,a=this,r=t;return e.$$p=null,a.content=t,a.appearance=new Map([["icon",a.$theme_icon("folder.svg")],["label","Untitled"]]),s(i["$is_any?"](n("Hash"),n(n(n("GxG"),"Database"),"DetachedHash")))&&(a.data=s(r=i["$[]"]("data"))?r:new Map([["title","Untitled"],["type","virtual_directory"],["content",new Map]]),a.appearance["$[]="]("icon",(s(r=i["$[]"]("icon"))?r:a.$theme_icon("folder.svg")).$to_s()),a.appearance["$[]="]("label",(s(r=i["$[]"]("label"))?r:a.data["$[]"]("title")).$to_s())),p(a,f(a,"initialize",e,!1,!0),"initialize",[o,i],null),a}),o(v,"$cascade",function(){var o=this,h=t,a=t,d=t,c=t,l=t,r=t,u=t,m=t,f=t,p=t,g=t,i=t,h=o.$new_component("org.gxg.gui.block.table");return h["$[]"]("settings")["$[]="]("nodepath",o.$node_path()),a=o.$new_component("org.gxg.gui.block.table"),d=o.$new_component("org.gxg.gui.image"),d["$title="]("expander "+o.uuid.$to_s()),d["$[]="]("options",new Map([["src",o.$theme_widget("collapse.svg")],["width",32],["height",32],["style",new Map([["clear","both"],["vertical-align","middle"]])]])),d["$[]="]("script",`
on(:mouseup) do |event|
the_node = self.tree_node()
if the_node
unless the_node.get_state(:disabled) == true
if self.get_state(:expanded) == true
self.set_attribute(:src, theme_widget('collapse.svg'))
self.set_state(:expanded,false)
the_node.collapse()
else
self.set_attribute(:src, theme_widget('expand.svg'))
self.set_state(:expanded,true)
the_node.expand()
end
end
end
end
`),c=n(n(n("GxG"),"Database"),"DetachedHash").$new(),c=o.$new_component("org.gxg.gui.block.table.cell"),c["$[]="]("options",new Map([["style",new Map([["float","left"],["width","32px"],["vertical-align","middle"]])]])),c["$[]"]("content")["$<<"](d),l=o.$new_component("org.gxg.gui.block.table.cell"),l["$title="]("icon "+o.uuid.$to_s()),l["$[]="]("options",new Map([["src",o.appearance["$[]"]("icon")],["style",new Map([["clear","both"],["width","32px"],["height","32px"],["vertical-align","middle"]])]])),l["$[]="]("script",`
on(:mouseup) do |event|
the_node = self.tree_node()
if the_node
the_tree = the_node.tree()
if the_tree
the_tree.select(the_node)
end
end
end
`),r=n(n(n("GxG"),"Database"),"DetachedHash").$new(),r=o.$new_component("org.gxg.gui.block.table.cell"),r["$[]="]("options",new Map([["style",new Map([["float","left"],["width","32px"],["vertical-align","middle"]])]])),r["$[]"]("content")["$<<"](l),u=o.$new_component("org.gxg.gui.label"),u["$title="]("title "+o.uuid.$to_s()),u["$[]="]("options",new Map([["content",o.appearance["$[]"]("label")],["style",new Map([["float","left"],["font-size","16px"],["vertical-align","middle"],["text-align","left"],["margin","2px"],["padding","2px"]])]])),u["$[]="]("script",`
on(:mouseup) do |event|
the_node = self.tree_node()
if the_node
the_tree = the_node.tree()
if the_tree
the_tree.select(the_node)
end
end
end
`),m=o.$new_component("org.gxg.gui.block.table.cell"),m["$[]="]("options",new Map([["style",new Map([["float","left"],["vertical-align","middle"]])]])),m["$[]"]("content")["$<<"](u),a=o.$new_component("org.gxg.gui.block.table.row"),a["$[]="]("script",`
on(:mouseenter) do |event|
the_node = self.tree_node()
if the_node
the_tree = the_node.highlight()
end
end
on(:mouseleave) do |event|
the_node = self.tree_node()
if the_node
the_tree = the_node.unhighlight()
end
end
`),a["$[]"]("content")["$<<"](c),a["$[]"]("content")["$<<"](r),a["$[]"]("content")["$<<"](m),f=o.$new_component("org.gxg.gui.list"),f["$title="]("content "+o.uuid.$to_s()),f["$[]="]("options",new Map([["width","100%"],["height","100%"],["style",new Map([["list-style","none"]])]])),p=o.$new_component("org.gxg.gui.block.table.cell"),p["$[]"]("content")["$<<"](f),g=o.$new_component("org.gxg.gui.block.table.row"),g["$[]"]("content")["$<<"](p),h["$[]"]("content")["$<<"](a),h["$[]"]("content")["$<<"](g),o.content=t,o.$page().$build_components(o,[h]),i=o.$page().$find_object_by("content "+o.uuid.$to_s()),s(i)&&(o.content=i),i=o.$page().$find_object_by("expander "+o.uuid.$to_s()),s(i)&&(o.expander=i),i=o.$page().$find_object_by("icon "+o.uuid.$to_s()),s(i)&&(o.icon=i),i=o.$page().$find_object_by("title "+o.uuid.$to_s()),s(i)?o.label=i:t}),o(v,"$highlight",function(n){var o=this;return n==null&&(n=t),s(o.label)?o.label.$merge_style(new Map([["background-color","#87acd5"]])):t},-1),o(v,"$unhighlight",function(n){var o=this;return n==null&&(n=t),s(o.label)?o.label.$merge_style(new Map([["background-color","#f2f2f2"]])):t},-1),o(v,"$expand",function(n){var o=this,i=t;return n==null&&(n=t),o.content.$show(n),o.$set_state("expanded",!0),s(o.expander)&&o.expander.$set_attribute("src",o.$page().$theme_widget("expand.svg")),i=o.$tree(),s(i)?i.$expand(o):t},-1),o(v,"$collapse",function(n){var o=this,i=t;return n==null&&(n=t),o.content.$hide(n),o.$set_state("expanded",!1),s(o.expander)&&o.expander.$set_attribute("src",o.$page().$theme_widget("collapse.svg")),i=o.$tree(),s(i)?i.$collapse(o):t},-1),o(v,"$enable",function(o){var i=this;return o==null&&(o=t),s(o["$is_any?"](n("Hash"),n(n(n("GxG"),"Database"),"DetachedHash")))?s(o["$is_a?"](n(n(n("GxG"),"Database"),"DetachedHash")))&&(o=o.$unpersist()):o=new Map([["origin",new Map([["opacity",.5]])],["destination",new Map([["opacity",1]])]]),a(i.$children(),"each_pair",[],function e(n,s){var i=e.$$s==null?this:e.$$s;return i.uuid==null&&(i.uuid=t),n==null&&(n=t),s==null&&(s=t),r(n,("content "+i.uuid.$to_s()).$to_sym())?t:(s.$set_state("disabled",!1),s.$animate(o))},{$$s:i})},-1),o(v,"$disable",function(o){var i=this;return o==null&&(o=t),s(o["$is_any?"](n("Hash"),n(n(n("GxG"),"Database"),"DetachedHash")))?s(o["$is_a?"](n(n(n("GxG"),"Database"),"DetachedHash")))&&(o=o.$unpersist()):o=new Map([["origin",new Map([["opacity",1]])],["destination",new Map([["opacity",.5]])]]),a(i.$children(),"each_pair",[],function e(n,s){var i=e.$$s==null?this:e.$$s;return i.uuid==null&&(i.uuid=t),n==null&&(n=t),s==null&&(s=t),r(n,("content "+i.uuid.$to_s()).$to_sym())?t:(s.$animate(o),s.$set_state("disabled",!0))},{$$s:i})},-1)}(x[0],n(n(n("GxG"),"Gui"),"ListItem"),x),n(n("GxG"),"Gui").$register_component_class("tree_node",n(n(n("GxG"),"Gui"),"TreeNode")),h(x[0],n(n(n(n("GxG"),"Gui"),"Vdom"),"BaseElement"),"Panel"),n(n("GxG"),"Gui").$register_component_class("panel",n(n(n("GxG"),"Gui"),"Panel")),function(n,m){var p=v(n,"Vdom"),f=[p].concat(m);return function(n,m,f){var g=h(n,m,"Page"),v=[g].concat(f),p=e.$r(v);return o(g,"$upload_dialog",function n(o,r){var R=n.$$p||t,h=this,M=t,f=t,S=t,A=t,T=t,k=t,_=t,L=t,O=t,x=t,z=t,N=t,m=t,y=t,v=t,j=t,F=t,w=t,E=t,C=t,g=t,b=t,D=t;if(n.$$p=null,o==null&&(o=t),r==null&&(r=t),h.$layout_refresh(),M=(s(f=r)?f:new Map([["title","Choose a file:"]]))["$[]"]("title").$to_s(),S=(s(f=r)?f:new Map([["banner","Choose a file to upload"]]))["$[]"]("banner").$to_s(),A=(s(f=r)?f:new Map([["destination",t]]))["$[]"]("destination").$to_s(),T=d(h.$layout_content_area()["$[]"]("page_width").$to_f(),.25).$to_i(),k=20,_=5,L=l(T,d(i(k,_),2)),O=d(i(k,_),2),x=16,s(c(S.$to_s().$size(),40))?z=d(u(S.$size().$to_f(),40),x.$to_f()).$round().$to_i():z=x,N=16,s(c(A.$size(),0))){m=h.$new_component("org.gxg.gui.form"),m["$[]"]("options")["$[]="]("action","/file_upload"),m["$[]"]("options")["$[]="]("method","POST"),m["$[]"]("options")["$[]="]("enctype","multipart/form-data"),m["$[]"]("options")["$[]="]("style",new Map([["background-color","#f2f2f2"],["padding","20px"],["margin","5px"],["width","100%"]])),O=330,y=h.$new_component("org.gxg.gui.input.file"),y["$title="]("file"),y["$[]"]("options")["$[]="]("name","file"),m["$[]"]("content")["$<<"](y),v=h.$new_component("org.gxg.gui.input.hidden"),v["$title="]("destination"),v["$[]"]("options")["$[]="]("name","destination"),v["$[]"]("options")["$[]="]("value",A),m["$[]"]("content")["$<<"](v),j=h.$new_component("org.gxg.gui.grid.container"),F=h.$new_component("org.gxg.gui.grid.x"),w=h.$new_component("org.gxg.gui.grid.x"),E=h.$new_component("org.gxg.gui.input.button"),C=h.$new_component("org.gxg.gui.input.button.submit"),F["$[]"]("content")["$<<"](E),w["$[]"]("content")["$<<"](C),j["$[]"]("content")["$<<"](F),j["$[]"]("content")["$<<"](w),m["$[]"]("content")["$<<"](j),E["$[]="]("script",`
on(:mouseup) do |event|
the_window = self.find_parent_type(::GxG::Gui::DialogBox)
form = self.find_parent_type(::GxG::Gui::Form)
if the_window && form
the_window.respond({:action => :cancel})
end
end
`),C["$[]="]("script",`
on(:mouseup) do |event|
the_window = self.find_parent_type(::GxG::Gui::DialogBox)
form = self.find_parent_type(::GxG::Gui::Form)
if the_window && form
page.set_busy true
::GxG::CONNECTION.post(form) do |response|
page.set_busy false
the_window.respond({:action => :upload, :destination => form.form_data[:destination].to_s})
end
end
end
`),g=h.$new_component("org.gxg.gui.application.viewport"),g["$title="]("gxg_selection_viewport"),g["$[]"]("options")["$[]="]("style",new Map([["overflow","hidden"],["width","100%"],["height","100%"]])),g["$[]"]("content")["$<<"](m),b=h.$new_component("org.gxg.gui.window.dialog"),b["$title="](M),b["$[]="]("options",new Map([["window_title",M],["states",new Map([["hidden",!0]])],["width",350],["height",O]])),b["$[]"]("content")["$<<"](g);try{return a(h,"dialog_open",[b,o,r],R.$to_proc()),!0}catch(t){if(e.rescue(t,[p("Exception")])){D=t;try{return h.$log_error(new Map([["error",D],["parameters",r]])),!1}finally{e.pop_exception(t)}}else throw t}}else return h.$log_error("You MUST provide a destination path"),!1},-1),o(g,"$choice_dialog",function n(o,h){var te=n.$$p||t,E=this,ee=t,g=t,y=t,F=t,M=t,S=t,J=t,D=t,Z=t,A=t,O=t,w=t,b=t,v=t,C=t,_=t,x=t,H=t,P=t,$=t,B=t,R=t,Q=t,T=t,I=t,L=t,V=t,N=t,W=t,U=t,K=t,f=t,Y=t,G=t,X=t,m=t,j=t,k=t,z=t,q=t;switch(n.$$p=null,o==null&&(o=t),h==null&&(h=t),E.$layout_refresh(),ee=(s(g=h)?g:new Map([["title","Choose"]]))["$[]"]("title").$to_s(),y=(s(g=h)?g:new Map([["banner","(Please provide some text here)"]]))["$[]"]("banner").$to_s(),F=(s(g=h)?g:new Map([["one",""]]))["$[]"]("one").$to_s(),M=(s(g=h)?g:new Map([["two",""]]))["$[]"]("two").$to_s(),S=(s(g=h)?g:new Map([["three",""]]))["$[]"]("three").$to_s(),J=(s(g=h)?g:new Map([["default",""]]))["$[]"]("default").$to_s(),D=s(g=(s(Z=h)?Z:new Map([["type","choose"]]))["$[]"]("type"))?g:"choose",A=d(E.$layout_content_area()["$[]"]("page_width").$to_f(),.25).$to_i(),O=20,w=5,b=l(A,d(i(O,w),2)),v=d(i(O,w),2),C=16,s(c(y.$to_s().$size(),40))?_=d(u(y.$size().$to_f(),40),C.$to_f()).$round().$to_i():_=C,x=16,H=new Map([["component","org.gxg.gui.text"],["options",new Map([["content",y],["style",new Map([["font-size",""+C+"px"],["width","100%"]])]])],["content",[]],["script",""]]),P=new Map([["component","org.gxg.gui.block.table.cell"],["options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["width","100%"],["height",_],["vertical-align","middle"]])]])],["content",[H]],["script",""]]),$=new Map([["component","org.gxg.gui.input.text"],["options",new Map([["title","data"],["content",J],["style",new Map([["background-color","#f2f2f2"],["font-size",""+x+"px"],["width","100%"]])]])],["content",[]],["script",""]]),B=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",[$]],["script",""]]),R=new Map([["component","org.gxg.gui.button"],["options",new Map([["content",F],["style",new Map([["padding","2px"],["width","80px"],["height","32px"]])]])],["content",[]],["script",""]]),R["$[]="]("script",`
on(:mouseup) do |event|
the_window = self.find_parent_type(::GxG::Gui::DialogBox)
if the_window
the_window.respond({:action => :one})
end
end
`),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",[R]],["script",""]]),T=new Map([["component","org.gxg.gui.button"],["options",new Map([["content",M],["style",new Map([["padding","2px"],["width","80px"],["height","32px"]])]])],["content",[]],["script",""]]),T["$[]="]("script",`
on(:mouseup) do |event|
the_window = self.find_parent_type(::GxG::Gui::DialogBox)
if the_window
the_window.respond({:action => :two})
end
end
`),I=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",[T]],["script",""]]),L=new Map([["component","org.gxg.gui.button"],["options",new Map([["content",S],["style",new Map([["padding","2px"],["width","80px"],["height","32px"]])]])],["content",[]],["script",""]]),L["$[]="]("script",`
on(:mouseup) do |event|
the_window = self.find_parent_type(::GxG::Gui::DialogBox)
if the_window
the_window.respond({:action => :three})
end
end
`),V=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",[L]],["script",""]]),N=new Map([["component","org.gxg.gui.button"],["options",new Map([["content","Cancel"],["style",new Map([["padding","2px"],["width","80px"],["height","32px"]])]])],["content",[]],["script",""]]),N["$[]="]("script",`
on(:mouseup) do |event|
the_window = self.find_parent_type(::GxG::Gui::DialogBox)
if the_window
the_window.respond({:action => :cancel})
end
end
`),W=new Map([["component","org.gxg.gui.block.table.cell"],["options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["vertical-align","middle"]])]])],["content",[N]],["script",""]]),U=new Map([["component","org.gxg.gui.block.table.row"],["options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["width","100%"]])]])],["content",[P]],["script",""]]),K=new Map([["component","org.gxg.gui.block.table.row"],["options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["width","100%"]])]])],["content",[B]],["script",""]]),f=new Map([["component","org.gxg.gui.block.table.row"],["options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["width","100%"]])]])],["content",[]],["script",""]]),Y=new Map([["component","org.gxg.gui.block.table"],["options",new Map([["style",new Map([["padding","5px"],["margin","0px"],["width","100%"]])]])],["content",[U]],["script",""]]),G=new Map([["component","org.gxg.gui.block.table"],["options",new Map([["style",new Map([["padding","5px"],["margin","0px"],["width","100%"]])]])],["content",[K]],["script",""]]),X=new Map([["component","org.gxg.gui.block.table"],["options",new Map([["style",new Map([["padding","5px"],["margin","0px"],["width","100%"]])]])],["content",[f]],["script",""]]),m=new Map([["component","org.gxg.gui.form"],["options",new Map([["style",new Map([["background-color","#f2f2f2"],["padding",""+O+"px"],["margin",""+w+"px"]])]])],["content",[]],["script",""]]),s(c(y.$size(),0))&&m["$[]"]("content")["$<<"](Y),D.valueOf()){case"choose":s(c(F.$size(),0))&&f["$[]"]("content")["$<<"](Q),s(c(M.$size(),0))&&f["$[]"]("content")["$<<"](I),s(c(S.$size(),0))&&f["$[]"]("content")["$<<"](V);break;case"alert":j=new Map([["component","org.gxg.gui.button"],["options",new Map([["content","OK"],["style",new Map([["padding","2px"],["width","80px"],["height","32px"]])]])],["content",[]],["script",""]]),j["$[]="]("script",`
on(:mouseup) do |event|
the_window = self.find_parent_type(::GxG::Gui::DialogBox)
if the_window
the_window.respond({:action => :ok})
end
end
`),k=new Map([["component","org.gxg.gui.block.table.cell"],["options",new Map([["style",new Map([["padding","0px"],["margin","0px"]])]])],["content",[j]],["script",""]]),f["$[]"]("content")["$<<"](k);break;case"input":f["$[]"]("content")["$<<"](W),j=new Map([["component","button"],["options",new Map([["content","OK"],["style",new Map([["padding","2px"],["width","80px"],["height","32px"]])]])],["content",[]],["script",""]]),j["$[]="]("script",`
on(:mouseup) do |event|
the_window = self.find_parent_type(::GxG::Gui::DialogBox)
form = self.find_parent_type(:form)
if the_window && form
the_window.respond({:action => :ok, :form => form.form_data()})
end
end
`),k=new Map([["component","org.gxg.gui.block.table.cell"],["options",new Map([["style",new Map([["padding","0px"],["margin","0px"]])]])],["content",[j]],["script",""]]),f["$[]"]("content")["$<<"](k),m["$[]"]("content")["$<<"](G);break;default:t}switch(m["$[]"]("content")["$<<"](X),m["$[]"]("options")["$[]"]("style")["$[]="]("width",""+A+"px"),s(c(y.$to_s().$size(),0))&&(m["$[]"]("content")["$[]"](0)["$[]"]("options")["$[]"]("style")["$[]="]("width",""+b+"px"),m["$[]"]("content")["$[]"](0)["$[]"]("options")["$[]"]("style")["$[]="]("height",""+_+"px"),m["$[]"]("content")["$[]"](0)["$[]"]("options")["$[]"]("style")["$[]="]("padding","10px 0px 10px 0px"),v=i(v,i(_,20))),r(D,"input")?(m["$[]"]("content")["$[]"](1)["$[]"]("options")["$[]"]("style")["$[]="]("width",""+b+"px"),m["$[]"]("content")["$[]"](1)["$[]"]("options")["$[]"]("style")["$[]="]("height",""+x+"px"),m["$[]"]("content")["$[]"](1)["$[]"]("options")["$[]"]("style")["$[]="]("padding","10px 0px 10px 0px"),v=i(v,i(x,20)),m["$[]"]("content")["$[]"](2)["$[]"]("options")["$[]"]("style")["$[]="]("width",""+b+"px"),m["$[]"]("content")["$[]"](2)["$[]"]("options")["$[]"]("style")["$[]="]("height","32px"),m["$[]"]("content")["$[]"](2)["$[]"]("options")["$[]"]("style")["$[]="]("padding","10px 0px 10px 0px"),v=i(v,52)):(m["$[]"]("content")["$[]"](1)["$[]"]("options")["$[]"]("style")["$[]="]("width",""+b+"px"),m["$[]"]("content")["$[]"](1)["$[]"]("options")["$[]"]("style")["$[]="]("height","32px"),m["$[]"]("content")["$[]"](1)["$[]"]("options")["$[]"]("style")["$[]="]("padding","10px 0px 10px 0px"),v=i(v,52)),v=i(v,32),m["$[]"]("options")["$[]"]("style")["$[]="]("height",""+l(v,d(i(O,w),2))+"px"),f["$[]"]("content").$size().valueOf()){case 1:f["$[]"]("content")["$[]"](0)["$[]"]("options")["$[]"]("style")["$[]="]("padding","5px 0px 5px "+l(u(b,2),25)+"px");break;case 2:f["$[]"]("content")["$[]"](0)["$[]"]("options")["$[]"]("style")["$[]="]("padding","5px 0px 5px "+l(u(b,4),12)+"px"),f["$[]"]("content")["$[]"](1)["$[]"]("options")["$[]"]("style")["$[]="]("padding","5px 0px 5px "+l(u(b,4),12)+"px");break;case 3:f["$[]"]("content")["$[]"](0)["$[]"]("options")["$[]"]("style")["$[]="]("padding","5px 0px 5px "+l(u(b,6),6)+"px"),f["$[]"]("content")["$[]"](1)["$[]"]("options")["$[]"]("style")["$[]="]("padding","5px 0px 5px "+l(u(b,6),6)+"px"),f["$[]"]("content")["$[]"](2)["$[]"]("options")["$[]"]("style")["$[]="]("padding","5px 0px 5px "+l(u(b,6),6)+"px");break;default:t}z=new Map([["component","org.gxg.gui.window.dialog"],["options",new Map([["window_title",ee],["states",new Map([["hidden",!0]])],["width",A],["height",v]])],["script",""],["content",[m]]]),z["$[]="]("script",`
on(:keyup) do |event|
if event[:which] == 27
self.respond({:action => :cancel})
end
end
`);try{return a(E,"dialog_open",[z,o,h],te.$to_proc()),!0}catch(t){if(e.rescue(t,[p("Exception")])){q=t;try{return E.$log_error(new Map([["error",q],["parameters",new Map]])),!1}finally{e.pop_exception(t)}}else throw t}},-1),o(g,"$vfs_dialog",function n(o,c){var K=n.$$p||t,d=this,f=t,v=t,_=t,A=t,$=t,h=t,j=t,g=t,V=t,T=t,W=t,u=t,L=t,k=t,C=t,S=t,x=t,F=t,O=t,z=t,D=t,N=t,E=t,R=t,P=t,H=t,I=t,B=t,m=t,M=t,b=t,y=t,U=t;switch(n.$$p=null,o==null&&(o=t),c==null&&(c=t),f="Unsupported Dialog Type",v="Unsupported",_=(s(A=c)?A:new Map([["type","folder"]]))["$[]"]("type"),_.valueOf()){case"save":case"save":f="Save As ...",v="Save";break;case"folder":case"folder":f="Choose Folder",v="Choose";break;case"object":case"object":f="Select Object",v="Select";break;default:t}switch($=`
def select(data=nil)
the_window = self.find_parent_type(::GxG::Gui::DialogBox)
if the_window
the_window.settings[:data] = @settings[:data]
menu_bar_header = page.find_object_by('gxg_path_menu_header')
if menu_bar_header
menu_bar_header.set_label(File.basename(@settings[:data]))
menu_bar_header.set_data(@settings[:data])
end
menu = page.find_object_by('gxg_path_menu')
if menu
menu.update_menu(@settings[:data])
end
sublist = page.find_object_by('gxg_path_subitems')
if sublist
sublist.update_appearance()
end
end
end
`,h=d.$new_component("org.gxg.gui.menu.bar"),h["$title="]("gxg_path_menu_bar"),h["$[]="]("settings",new Map([["path",s(A=c["$[]"]("path"))?A:"/"]])),j=d.$new_component("org.gxg.gui.menu.item"),j["$title="]("gxg_path_menu_header"),j["$[]="]("settings",new Map([["label",p("File").$basename(h["$[]"]("settings")["$[]"]("path"))],["data",t]])),g=d.$new_component("org.gxg.gui.menu"),g["$title="]("gxg_path_menu"),g["$[]="]("settings",new Map([["item_script",$]])),g["$[]="]("script",`
def update_menu(the_path=nil)
if the_path.is_a?(::String)
build_list = []
menu[:content] = []
#
menu_manifest = []
(0..(the_path.split('/').size - 1)).each do |the_index|
menu_manifest << (the_path.split('/')[0..(the_index)].join('/'))
end
menu_manifest.reverse.[1..-1].each do |the_subpath|
the_item = ::GxG::Database::DetachedHash.new
the_item[:component] = 'menu_item'
the_item[:settings] = {:label => File.basename(the_subpath), :data => the_subpath}
the_item[:options] = {}
the_item[:script] = @settings[:item_script].to_s
the_item[:content] = []
build_list << the_item
end
children.values.reverse.each do |the_child|
the_child.destroy
end
if build_list.size > 0
page.build_components(self, build_list)
end
#
end
end
`),V=[],a(e.Range.$new(0,l(h["$[]"]("settings")["$[]"]("path").$split("/").$size(),1),!1),"each",[],function(s){return s==null&&(s=t),V["$<<"](h["$[]"]("settings")["$[]"]("path").$split("/")["$[]"](e.Range.$new(0,s,!1)).$join("/"))}),a(V.$reverse()["$[]"](w(1,-1,!1)),"each",[],function e(n){var o=e.$$s==null?this:e.$$s,s=t;return n==null&&(n=t),s=o.$new_component("org.gxg.gui.menu.item"),s["$[]="]("settings",new Map([["label",p("File").$basename(n)],["data",n]])),s["$[]="]("script",$),g["$[]"]("content")["$<<"](s)},{$$s:d}),j["$[]"]("content")["$<<"](g),h["$[]"]("content")["$<<"](j),T=d.$new_component("org.gxg.gui.block.table.cell"),T["$[]="]("options",new Map([["style",new Map([["border","1px solid #c2c2c2"],["padding","0px"],["margin","0px"],["width","100%"]])]])),T["$[]="]("content",[h]),W=`
def highlight()
self.merge_style({:'background-color' => '#c2c2c2'})
end
def unhighlight()
self.merge_style({:'background-color' => '#ffffff'})
end
def select()
# unhighlight all others
parent.children.values.each do |the_child|
the_child.unhighlight()
end
# set selection
self.highlight()
the_window = self.find_parent_type(::GxG::Gui::DialogBox)
if the_window
the_window.settings[:selection] = self
end
end
on(:mouseup) do |the_event|
self.select()
end
`,u=d.$new_component("org.gxg.gui.list"),u["$title="]("gxg_path_subitems"),u["$[]="]("settings",new Map([["list_item_script",W]])),u["$[]="]("options",new Map([["style",new Map([["clear","both"],["list-style","none"],["padding","0px"],["margin","0px"]])]])),u["$[]="]("script",`
def add_list_item(the_icon=nil, the_path=nil, the_profile=nil)
the_window = self.find_parent_type(::GxG::Gui::DialogBox)
if the_window
#
the_item = ::GxG::Database::DetachedHash.new
the_item[:component] = 'list_tiem'
the_item[:settings] = {:label => File.basename(the_path), :data => the_path}
the_item[:options] = {}
the_item[:script] = @settings[:list_item_script].to_s
the_item[:content] = []
#
the_window.settings[:manifest][(the_item.uuid.to_s.to_sym)] = {:path => the_path, :profile => the_profile}
#
icon_item = ::GxG::Database::DetachedHash.new
icon_item[:component] = 'image'
icon_item[:settings] = {}
icon_item[:options] = {src => the_icon.to_s, :style => {:width => '16px', :height => '16px'}}
icon_item[:script] = '
on(:mouseup) do |the_event|
parent.select()
end
'
icon_item[:content] = []
#
label_item = ::GxG::Database::DetachedHash.new
label_item[:component] = 'label'
label_item[:settings] = {}
label_item[:options] = {:content => File.basename(the_path)}
label_item[:script] = '
on(:mouseup) do |the_event|
parent.select()
end
'
label_item[:content] = []
#
the_item[:content] << icon_item
the_item[:content] << label_item
page.build_components(self, [(the_item)])
true
else
false
end
end
#
def update_appearance(data=nil)
the_window = self.find_parent_type(::GxG::Gui::DialogBox)
if the_window
dialog_type = (the_window.settings[:type] || :folder)
the_path = the_window.settings[:data]
if the_path.is_a?(::String)
`+` #
`+` the_window.settings[:selection] = nil
`+` the_window.settings[:manifest] = {}
`+` # Clear List
`+` self.children.values.each do |the_child|
`+` the_child.destroy
`+` end
`+` # Rebuild List
`+` GxG::CONNECTION.entries({:location => (the_path)}) do |response|
`+` if response.is_a?(::Hash)
`+` response[:result].each do |the_profile|
`+` # add list item
`+` item_path = (the_path + '/' + the_profile[:title].to_s)
`+` if dialog_type == :folder
`+` if [:virtual_directory, :directory, :persisted_array].include?(the_profile[:type].to_s.to_sym)
`+` self.add_list_item(self.theme_icon('folder.svg'), item_path, the_profile)
`+` end
`+` else
`+` case (the_profile[:type].to_s.to_sym)
`+` when :virtual_directory, :directory, :persisted_array
`+` the_icon_path = self.theme_icon('folder.svg')
`+` when :persisted_hash
`+` the_icon_path = self.theme_icon('object.svg')
`+` else
`+` # Review: further qualify file type icons ??
`+` the_icon_path = self.theme_icon('file.svg')
`+` end
`+` self.add_list_item(the_icon_path, item_path, the_profile)
`+` end
`+` #
`+` end
`+` #
`+` end
`+` end
`+` #
`+` end
`+` end
`+` end
`+" "),_.valueOf()){case"save":u["$[]="]("script",i(i(u["$[]"]("script"),`
`),`
self.set_select_responder do |the_uuid|
if @manifest[(the_uuid.to_s.to_sym)]
# nothing
end
end
self.set_open_responder do |the_uuid|
if @manifest[(the_uuid.to_s.to_sym)]
if [:virtual_directory, :directory, :persisted_array].include?(@manifest[(the_uuid.to_s.to_sym)][:profile][:type].to_s.to_sym)
# open folder
the_window = self.find_parent_type(::GxG::Gui::DialogBox)
if the_window
menu_bar = the_window.find_child('path_menu_bar')
if menu_bar
GxG::DISPATCHER.post_event(:root) do
menu_bar.path = @manifest[(the_uuid.to_s.to_sym)][:path]
end
end
end
end
end
end
`));break;case"folder":u["$[]="]("script",i(i(u["$[]"]("script"),`
`),`
self.set_select_responder do |the_uuid|
if @manifest[(the_uuid.to_s.to_sym)]
# nothing
end
end
self.set_open_responder do |the_uuid|
if @manifest[(the_uuid.to_s.to_sym)]
if [:virtual_directory, :directory, :persisted_array].include?(@manifest[(the_uuid.to_s.to_sym)][:profile][:type].to_s.to_sym)
# open folder
the_window = self.find_parent_type(::GxG::Gui::DialogBox)
if the_window
menu_bar = the_window.find_child('path_menu_bar')
if menu_bar
GxG::DISPATCHER.post_event(:root) do
menu_bar.path = @manifest[(the_uuid.to_s.to_sym)][:path]
end
end
end
end
end
end
`));break;case"object":u["$[]="]("script",i(i(u["$[]"]("script"),`
`),`
self.set_select_responder do |the_uuid|
if @manifest[(the_uuid.to_s.to_sym)]
# if object selected enable Select button else disable it.
the_window = self.find_parent_type(::GxG::Gui::DialogBox)
if the_window
action_button = the_window.find_child('action_button')
if action_button
if [:file, :persisted_hash].include?(@manifest[(the_uuid.to_s.to_sym)][:profile][:type].to_s.to_sym)
action_button.enable()
else
action_button.disable()
end
end
end
end
end
self.set_open_responder do |the_uuid|
if @manifest[(the_uuid.to_s.to_sym)]
if [:virtual_directory, :directory, :persisted_array].include?(@manifest[(the_uuid.to_s.to_sym)][:profile][:type].to_s.to_sym)
# open folder
# first, disable Select button
the_window = self.find_parent_type(::GxG::Gui::DialogBox)
if the_window
menu_bar = the_window.find_child('path_menu_bar')
if menu_bar
GxG::DISPATCHER.post_event(:root) do
menu_bar.path = @manifest[(the_uuid.to_s.to_sym)][:profile][:path]
end
end
end
end
end
end
`));break;default:t}L=d.$new_component("org.gxg.gui.block"),L["$[]="]("options",new Map([["style",new Map([["width","100%"],["height","192px"],["overflow-y","scroll"]])]])),L["$[]="]("content",[u]),k=d.$new_component("org.gxg.gui.block.table.cell"),k["$[]="]("options",new Map([["style",new Map([["border","1px solid #c2c2c2"],["padding","0px"],["margin","0px"],["width","100%"]])]])),k["$[]="]("content",[L]),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%"]])]])),S=d.$new_component("org.gxg.gui.block.table.cell"),S["$[]="]("options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["width","100%"]])]])),S["$[]="]("content",[C]),x=d.$new_component("org.gxg.gui.input.button.submit"),x["$title="]("gxg_action_button"),x["$[]="]("options",new Map([["content",v],["style",new Map([["padding","0px"],["width","80px"],["height","32px"]])]])),x["$[]="]("script",`
on(:mouseup) do |event|
the_window = self.find_parent_type(::GxG::Gui::DialogBox)
form = self.find_parent_type(::GxG::Gui::Form)
if the_window && form
the_action = the_window.settings[:type].to_s.to_sym
the_path = the_window.settings[:data].to_s
if the_action == :save
the_path = (the_path + '/' + (form.form_data()[:gxg_save_name] || 'Untitled.data').to_s)
end
the_window.respond({:action => the_action, :path => the_path})
end
end
`),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",[x]),O=d.$new_component("org.gxg.gui.input.button.submit"),O["$title="]("gxg_cancel_button"),O["$[]="]("options",new Map([["content","Cancel"],["style",new Map([["padding","2px"],["width","80px"],["height","32px"]])]])),O["$[]="]("script",`
on(:mouseup) do |event|
the_window = self.find_parent_type(::GxG::Gui::DialogBox)
if the_window
the_window.respond({:action => :cancel})
end
end
`),z=d.$new_component("org.gxg.gui.block.table.cell"),z["$[]="]("options",new Map([["style",new Map([["padding","10px 0px 0px 35px"],["margin","0px"],["width","50%"]])]])),z["$[]="]("content",[O]),D=d.$new_component("org.gxg.gui.block.table.row"),D["$[]="]("options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["width","100%"]])]])),D["$[]="]("content",[T]),N=d.$new_component("org.gxg.gui.block.table.row"),N["$[]="]("options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["width","100%"]])]])),N["$[]="]("content",[k]),E=d.$new_component("org.gxg.gui.block.table.row"),E["$[]="]("options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["width","100%"]])]])),E["$[]="]("content",[S]),R=d.$new_component("org.gxg.gui.block.table.row"),R["$[]="]("options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["width","100%"]])]])),R["$[]="]("content",[z,F]),P=d.$new_component("org.gxg.gui.block.table"),P["$[]="]("options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["width","300px"],["height","32px"]])]])),P["$[]="]("content",[D]),H=d.$new_component("org.gxg.gui.block.table"),H["$[]="]("options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["width","300px"],["height","192px"]])]])),H["$[]="]("content",[N]),I=d.$new_component("org.gxg.gui.block.table"),I["$[]="]("options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["width","300px"],["height","32px"]])]])),I["$[]="]("content",[E]),B=d.$new_component("org.gxg.gui.block.table"),B["$[]="]("options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["width","300px"],["height","32px"]])]])),B["$[]="]("content",[R]),m=d.$new_component("org.gxg.gui.form"),m["$[]="]("options",new Map([["style",new Map([["background-color","#f2f2f2"],["padding","20px"],["margin","5px"],["width","100%"]])]])),m["$[]="]("content",[]),M=330,m["$[]"]("content")["$<<"](P),m["$[]"]("content")["$<<"](H),(r(_,"save")||r(_,"save"))&&(m["$[]"]("content")["$<<"](I),M=i(M,32)),m["$[]"]("content")["$<<"](B),b=d.$new_component("org.gxg.gui.application.viewport"),b["$title="]("gxg_selection_viewport"),b["$[]="]("options",new Map([["style",new Map([["overflow","hidden"],["width","100%"],["height","100%"]])]])),b["$[]="]("content",[m]),y=d.$new_component("org.gxg.gui.window.dialog"),y["$title="](f),y["$[]="]("options",new Map([["window_title",f],["states",new Map([["hidden",!0]])],["width",350],["height",M]])),y["$[]="]("content",[b]);try{return a(d,"dialog_open",[y,o,c],K.$to_proc()),!0}catch(t){if(e.rescue(t,[p("Exception")])){U=t;try{return d.$log_error(new Map([["error",U],["parameters",new Map]])),!1}finally{e.pop_exception(t)}}else throw t}},-1)}(f[0],null,f)}(x[0],x)}(x[0],x)}(y[0],y)},Opal.modules["web/gxg_comm"]=function(e){var d=e.module,h=e.klass,i=e.def,n=e.truthy,o=e.send,l=e.return_ivar,a=e.rb_gt,u=e.rb_lt,c=e.rb_plus,r=e.eqeq,f=e.rb_minus,m=[],t=e.nil,s=e.$$$;return e.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(m,p){var v=d(m,"GxG"),g=[v].concat(p);return function(a,r){var u=d(a,"Networking"),c=[u].concat(r);return function(a,r,c){var l=h(a,r,"SocketMonitor"),d=[l].concat(c),u=e.$r(d),m=l.$$prototype;return m.event_handlers=t,i(l,"$initialize",function(){var t=this;return t.event_handlers=new Map,t}),i(l,"$on",function e(i){var a,r=e.$$p||t,c=this;return e.$$p=null,i==null&&(i=t),n(i["$is_any?"](s("String"),s("Symbol")))&&n(r["$respond_to?"]("call"))?(a=[i.$to_s().$downcase().$to_sym(),r],o(c.event_handlers,"[]=",a),a[a.length-1]):t},-1),i(l,"$follow_up",function(o){var r=this,i=t,a=t;return o==null&&(o=new Map),i=s(u("GxG"),"DISPLAY_DETAILS")["$[]"]("socket").$next_message(),n(i["$is_a?"](s("Hash")))?(a=i.$keys()["$[]"](0),n(r.event_handlers["$[]"](a)["$respond_to?"]("call"))?r.event_handlers["$[]"](a).$call(i["$[]"](a)):t):t},-1)}(c[0],null,c),function(a,r,c){var d=h(a,r,"Socket"),f=[d].concat(c),u=e.$r(f),m=d.$$prototype;return m.inbox=m.socket=t,i(d,"$inbox",l("inbox")),i(d,"$add_to_inbox",function(o){var i=this,a=t;o==null&&(o="");try{return i.inbox["$<<"](s("JSON").$parse(o.$decode64(),new Map([["symbolize_names",!0]])))}catch(t){if(e.rescue(t,[u("Exception")])){a=t;try{return i.$log_error(new Map([["error",a],["parameters",o.$decode64()]]))}finally{e.pop_exception(t)}}else throw t}},-1),i(d,"$error_message",function(t){var n=this;return n.$log_error(new Map([["error",u("Exception").$new(t)]]))}),i(d,"$next_message",function(){var t=this;return t.inbox.$shift()}),i(d,"$write",function(o){var a=this,i=t;return o==null&&(o=""),n(o["$is_any?"](s("Hash"),s(s(s("GxG"),"Database"),"DetachedHash")))&&(n(o["$is_a?"](s("Hash")))?o=u("JSON").$generate(o).$to_s().$encode64():o=u("JSON").$generate(o.$export()).$to_s().$encode64()),i=a.socket,!!n(i)&&(i.send(o),!0)},-1),i(d,"$close",function(){var o=this,s=t,s=o.socket;return!!n(s)&&(s.close,o.socket=t,!0)}),i(d,"$open?",function(){var t=this;return!!n(t.socket)}),i(d,"$open",function(a){var l,c=this,d=t,h=t,r=t,m=t;c.socket=t,n(window.location.href["$include?"]("https://"))?d="wss://"+a:d="ws://"+a;try{h=new Map([["attach_display",!0]]).$to_json().$encode64(),r=new WebSocket(d),r.onopen=function(){r.send(h)},r.onmessage=function(t){e.eval("GxG::DISPLAY_DETAILS[:socket].add_to_inbox('"+t.data+"')")},r.onclose=function(){e.eval("GxG::DISPLAY_DETAILS[:socket].close")},r.onerror=function(t){e.eval("GxG::DISPLAY_DETAILS[:socket].error_message('"+t.message+"')")},c.socket=r}catch(t){if(e.rescue(t,[u("Exception")])){m=t;try{c.$log_error(new Map([["error",m],["parameters",new Map([["url",d.$to_s()]])]]))}finally{e.pop_exception(t)}}else throw t}return n(c.socket)?(l=["socket",c],o(s(s("GxG"),"DISPLAY_DETAILS"),"[]=",l),l[l.length-1]):t}),i(d,"$set_remote_uuid",function(s){var o=this;return s==null&&(s=t),!!n(u("GxG")["$valid_uuid?"](s))&&(o.remote_uuid=s.$to_sym(),!0)},-1),i(d,"$initialize",function(){var n=this;return n.uuid=u("GxG").$uuid_generate().$to_sym(),n.remote_uuid=t,n.inbox=[],n})}(c[0],null,c)}(g[0],g),function(m,p){var v=d(m,"Networking"),g=[v].concat(p);return function(d,m,p){var g=h(d,m,"Connector"),j=[g].concat(p),v=e.$r(j),b=g.$$prototype;return b.uuid=b.remote_uuid=b.heart_beat_timer=b.active=b.relative_url=b.host_prefix=b.display_path=b.csrf=t,i(g,"$remote_uuid",l("remote_uuid")),i(g,"$open?",l("active")),i(g,"$close",function(){var o=this,i=t,i=o.$new_message(new Map([["close",!0]]));return i["$[]="]("sender",o.uuid),i["$[]="]("to",o.remote_uuid),o.$pull(i,new Map([["synchronous",!0]])),o.active=!1,o.csrf=t,n(o.heart_beat_timer["$is_a?"](s("Hash")))&&s(v("GxG"),"DISPATCHER").$cancel_timer(o.heart_beat_timer),!0}),i(g,"$post",function i(r,c){var p=i.$$p||t,d=this,f=t,h=t,l=t,g=t,m=t,b=t;return i.$$p=null,r==null&&(r=""),c==null&&(c=new Map),n(d.active)?!!n(r["$is_a?"](s(s(s("GxG"),"Gui"),"Form")))&&(f=r.$get_attribute("action").$to_s(),n(a(f.$size(),0))?n(a(d.relative_url.$to_s().$size(),0))?h=""+d.host_prefix+d.relative_url.$to_s()+f.$to_s()+"?display="+d.display_path.$to_s():h=""+d.host_prefix+f.$to_s()+"?display="+d.display_path.$to_s():n(a(d.relative_url.$to_s().$size(),0))?h=""+d.host_prefix+d.relative_url.$to_s()+"?display="+d.display_path.$to_s():h=""+d.host_prefix+"?display="+d.display_path.$to_s(),l=new XMLHttpRequest,l.open("POST",h,!0),l.timeout=n(g=c["$[]"]("timeout"))?g:5e3,l.setRequestHeader("X-Requested-With","XMLHttpRequest"),l.setRequestHeader("Accept","application/json"),l.setRequestHeader("X-CSRF-Token",d.csrf),l.setRequestHeader("Content-Type","multipart/form-data"),m=o(v("Proc"),"new",[],function e(t){var n=e.$$s==null?this:e.$$s;return t==null&&(t=new Map([["error","unknown"]])),n.$log_error(t)},{$$arity:-1,$$s:d}),b=o(v("Proc"),"new",[],function o(){var a=o.$$s==null?this:o.$$s,c=t,r=t,i=t,c=l.status.$to_i();if(n(u(c,300)))try{return r=s("JSON").$parse(l.response,new Map([["symbolize_names",!0]])),a.$log_info(r.$inspect()),n(p["$respond_to?"]("call"))?p.$call(r):t}catch(t){if(e.rescue(t,[v("Exception")])){i=t;try{return a.$log_error(new Map([["error",i],["parameters",l.response]]))}finally{e.pop_exception(t)}}else throw t}else try{return m.$call(s("JSON").$parse(l.response,new Map([["symbolize_names",!0]])))}catch(t){if(e.rescue(t,[v("Exception")])){i=t;try{return a.$log_error(new Map([["error",i],["parameters",l.response]]))}finally{e.pop_exception(t)}}else throw t}},{$$s:d}),l.addEventListener("load",b),l.addEventListener("error",m),l.addEventListener("timeout",m),l.addEventListener("abort",m),l.send(r.$element()),!0):t},-1),i(g,"$download_file",function e(i,a){var l=e.$$p||t,c=this,r=t;return e.$$p=null,i==null&&(i=""),a==null&&(a=t),n(c["$open?"]())?!!(n(i["$is_a?"](s("String")))&&n(l))&&(r=c.$new_message(new Map([["download_file",new Map([["path",i]])]])),r["$[]="]("sender",c.uuid),r["$[]="]("to",c.remote_uuid),n(a["$respond_to?"]("call"))&&o(r,"on",["fail"],a.$to_proc()),o(r,"on",["success"],function(o){var i=t,a=t;if(o==null&&(o=t),n(o["$is_a?"](s("Hash")))){i=o["$[]"]("result")["$[]"]("file_name").$to_s(),a=o["$[]"]("result")["$[]"]("file_data").$decode64();const t=window.streamSaver,n=t.createWriteStream(i,{}),e=n.getWriter(),s=(new TextEncoder).encode(a);return e.write(s),e.close(),l.$call(!0)}return l.$call(!1)}),s(v("GxG"),"CONNECTION").$pull(r),!0):t},-1),i(g,"$push",function(r,c){var d=this,m=t,f=t,l=t,p=t,h=t,g=t;return r==null&&(r=t),c==null&&(c=new Map),n(d.active)?!!n(r["$is_a?"](s(s(s("GxG"),"Events"),"Message")))&&(n(a(d.relative_url.$to_s().$size(),0))?m=""+d.host_prefix+d.relative_url.$to_s()+"?display="+d.display_path.$to_s():m=""+d.host_prefix+"?display="+d.display_path.$to_s(),f=r.$body().$to_json().$to_s(),l=new XMLHttpRequest,l.open("PUT",m,!0),l.timeout=n(p=c["$[]"]("timeout"))?p:5e3,l.setRequestHeader("X-Requested-With","XMLHttpRequest"),l.setRequestHeader("Accept","application/json"),l.setRequestHeader("X-CSRF-Token",d.csrf),l.setRequestHeader("Content-Type","application/json"),h=o(v("Proc"),"new",[],function(n){return n==null&&(n=t),r.$fail(n)},-1),g=o(v("Proc"),"new",[],function o(){var c=o.$$s==null?this:o.$$s,i=t,a=t,i=l.status.$to_i();if(n(u(i,300)))try{return r.$succeed(s("JSON").$parse(l.response,new Map([["symbolize_names",!0]])))}catch(t){if(e.rescue(t,[v("Exception")])){a=t;try{return c.$log_error(new Map([["error",a],["parameters",l.response]]))}finally{e.pop_exception(t)}}else throw t}else return h.$call(i)},{$$s:d}),l.addEventListener("load",g),l.addEventListener("error",h),l.addEventListener("timeout",h),l.addEventListener("abort",h),l.send(f),!0):t},-1),i(g,"$pull",function(l,d){var m=this,g=t,p=t,h=t,b=t,f=t,j=t;return l==null&&(l=t),d==null&&(d=new Map([["synchronous",!1]])),n(m.active)?!!n(l["$is_a?"](s(s(s("GxG"),"Events"),"Message")))&&(g="display="+m.display_path.$to_s()+"&details="+l.$body().$to_json().$encode64(),n(a(m.relative_url.$to_s().$size(),0))?p=c(c(c(m.host_prefix.$to_s(),m.relative_url.$to_s()),"?"),g):p=c(c(m.host_prefix.$to_s(),"?"),g),h=new XMLHttpRequest,r(d["$[]"]("synchronous"),!0)?h.open("GET",p.$to_s(),!1):(h.open("GET",p.$to_s(),!0),h.timeout=n(b=d["$[]"]("timeout"))?b:6e5),h.setRequestHeader("X-Requested-With","XMLHttpRequest"),h.setRequestHeader("Accept","application/json"),f=o(v("Proc"),"new",[],function(n){return n==null&&(n=t),l.$fail(n)},-1),j=o(v("Proc"),"new",[],function o(){var r=o.$$s==null?this:o.$$s,i=t,a=t,i=h.status.$to_i();if(n(u(i,300)))try{return l.$succeed(s("JSON").$parse(h.response,new Map([["symbolize_names",!0]])))}catch(t){if(e.rescue(t,[v("Exception")])){a=t;try{return r.$log_error(new Map([["error",a],["parameters",h.response]]))}finally{e.pop_exception(t)}}else throw t}else return f.$call(i)},{$$s:m}),h.addEventListener("load",j),h.addEventListener("error",f),h.addEventListener("timeout",f),h.addEventListener("abort",f),h.send(null),!0):t},-1),i(g,"$push_message",function(n){return n==null&&(n=t),t},-1),i(g,"$pull_message",function(n){return n==null&&(n=new Map),t},-1),i(g,"$process_pending",function(n){return n==null&&(n=new Map),t},-1),i(g,"$push_object_portions",function e(n,s){var o=e.$$p||t;return e.$$p=null,n==null&&(n=new Map),s==null&&(s=t),t},-1),i(g,"$search_database",function e(i,a){var r=e.$$p||t,c=this;return e.$$p=null,i==null&&(i=new Map),a==null&&(a=t),!!(n(i["$is_a?"](s("Hash")))&&n(r))&&(o(c,"pull_data",[new Map([["search_database",new Map([["criteria",i]])]]),a],r.$to_proc()),!0)},-1),i(g,"$search_pull",function i(a,r){var c=i.$$p||t,l=this;return i.$$p=null,a==null&&(a=new Map),r==null&&(r=t),!!(n(a["$is_a?"](s("Hash")))&&n(c))&&(o(l,"pull_data",[new Map([["search_pull",new Map([["criteria",a]])]]),r],function o(i){var a=o.$$s==null?this:o.$$s,l=t;if(i==null&&(i=t),n(i["$is_a?"](s("Hash"))))if(n(i["$[]"]("result")))if(n(i["$[]"]("result")["$is_a?"](s("String"))))if(n(i["$[]"]("result").$to_s()["$base64?"]())&&(i=i["$[]"]("result").$decode64()),n(i.$to_s()["$json?"]()))try{return i=s("JSON").$parse(i.$to_s(),new Map([["symbolize_names",!0]])),c.$call(s(s("GxG"),"Database").$process_detached_import(i))}catch(t){if(e.rescue(t,[v("Exception")])){l=t;try{return a.$log_error(new Map([["error",l],["parameters",new Map([["data",i]])]]))}finally{e.pop_exception(t)}}else throw t}else return t;else return a.$log_error(new Map([["error",v("Exception").$new("Malformed Response Data")],["parameters",new Map([["data",i["$[]"]("result")]])]]));else return n(i["$[]"]("error"))&&n(r["$respond_to?"]("call"))?r.$call(i):t;else return t},{$$s:l}),!0)},-1),i(g,"$destroy_object",function e(i,a){var r=e.$$p||t,c=this;return e.$$p=null,i==null&&(i=t),a==null&&(a=t),!!(n(i)&&n(r))&&(o(c,"pull_data",[new Map([["destroy_object",new Map([["path",i]])]]),a],function(o){return o==null&&(o=t),n(o["$is_a?"](s("Hash")))?r.$call(o):t}),!0)},-1),i(g,"$push_data",function e(i,a){var l=e.$$p||t,c=this,r=t;return e.$$p=null,i==null&&(i=new Map),a==null&&(a=t),!!(n(i["$is_a?"](s("Hash")))&&n(l))&&(r=c.$new_message(i),r["$[]="]("sender",c.uuid),r["$[]="]("to",c.remote_uuid),n(a["$respond_to?"]("call"))&&o(r,"on",["fail"],a.$to_proc()),o(r,"on",["success"],function(n){return n==null&&(n=t),l.$call(n)}),s(v("GxG"),"CONNECTION").$push(r),!0)},-1),i(g,"$push_object",function e(i,r){var h=e.$$p||t,m=this,l=t,c=t,d=t,u=t;return e.$$p=null,i==null&&(i=new Map),r==null&&(r=t),!!(n(i["$is_a?"](s("Hash")))&&n(h))&&(l=t,c=new Map,n(i["$[]"]("object")["$is_any?"](s(s("GxG"),"BinaryArray"),s("String")))?n(a(i["$[]"]("path").$to_s().$size(),0))?(c["$[]="]("path",i["$[]"]("path")),c["$[]="]("object",i["$[]"]("object").$to_s().$encode64())):l="You MUST specify a :path to store the data into.":n(i["$[]"]("object")["$is_a?"](s(s(s("GxG"),"Database"),"DetachedHash")))?(n(a(i["$[]"]("path").$to_s().$size(),0))&&c["$[]="]("path",i["$[]"]("path")),c["$[]="]("uuid",i["$[]"]("object").$uuid().$to_s()),d=[],u=new Map([["formats",new Map],["records",[]]]),n(a(i["$[]"]("object").$format().$to_s().$size(),0))&&d["$<<"](i["$[]"]("object").$format()),o(i["$[]"]("object"),"search",[],function(o,i,r){return o==null&&(o=t),i==null&&(i=t),r==null&&(r=t),n(o["$is_a?"](s(s(s("GxG"),"Database"),"DetachedHash")))&&n(a(o.$format().$to_s().$size(),0))&&d["$<<"](o.$format()),n(o["$is_a?"](s(s(s("GxG"),"Database"),"PersistedArray")))&&n(a(o.$constraint().$to_s().$size(),0))?d["$<<"](o.$constraint()):t}),o(d,"each",[],function(i){var r,a=t;return i==null&&(i=t),a=s(v("GxG"),"DB")["$[]"]("formats")["$[]"](i.$to_s().$to_sym()).$clone(),n(a["$is_a?"](s("Hash")))?(a["$[]="]("content",a["$[]"]("content").$gxg_export()),(r=[i.$to_s().$to_sym(),a],o(u["$[]"]("formats"),"[]=",r),r[r.length-1])):t}),u["$[]"]("records")["$<<"](i["$[]"]("object").$export()),c["$[]="]("object",u)):l="Invalid Data Type",n(l)?(n(r["$respond_to?"]("call"))&&r.$call(new Map([["result",t],["error",l]])),!1):(o(m,"push_data",[new Map([["put_object",c]]),r],function(o){return o==null&&(o=t),n(o["$is_a?"](s("Hash")))?h.$call(o):t}),!0))},-1),i(g,"$pull_data",function i(a,r){var d=i.$$p||t,l=this,c=t;return i.$$p=null,a==null&&(a=new Map),r==null&&(r=t),n(a)&&n(d)?(c=l.$new_message(a),c["$[]="]("sender",l.uuid),c["$[]="]("to",l.remote_uuid),n(r["$respond_to?"]("call"))&&o(c,"on",["fail"],r.$to_proc()),o(c,"on",["success"],function o(i){var r=o.$$s==null?this:o.$$s,a=t,c=t;if(i==null&&(i=t),n(i["$is_a?"](s("Hash")))){if(a=t,n(i["$[]"]("result")["$is_a?"](s("String")))){if(n(i["$[]"]("result").$to_s()["$base64?"]())&&(a=i["$[]"]("result").$decode64()),n(a.$to_s()["$json?"]()))try{a=s("JSON").$parse(a.$to_s(),new Map([["symbolize_names",!0]]))}catch(t){if(e.rescue(t,[v("Exception")])){c=t;try{r.$log_error(new Map([["error",c],["parameters",new Map([["data",a]])]]))}finally{e.pop_exception(t)}}else throw t}return d.$call(a)}return r.$log_error(new Map([["error",v("Exception").$new("Malformed Response Data")],["parameters",new Map([["data",i["$[]"]("result")]])]]))}else return t},{$$s:l}),s(v("GxG"),"CONNECTION").$pull(c)):t},-1),i(g,"$pull_object",function e(i,a){var c=e.$$p||t,l=this,r=t;return e.$$p=null,i==null&&(i=t),a==null&&(a=t),!!(n(i)&&n(c))&&(n(v("GxG")["$valid_uuid?"](i.$to_s()))?r=new Map([["get_object",new Map([["uuid",i]])]]):r=new Map([["get_object",new Map([["path",i]])]]),o(l,"pull_data",[r,a],function(o){return o==null&&(o=t),n(o["$is_a?"](s("Hash")))?c.$call(s(s("GxG"),"Database").$process_detached_import(o)):t}),!0)},-1),i(g,"$load_format",function i(a,r){var c=i.$$p||t,l=this;return i.$$p=null,a==null&&(a=new Map),r==null&&(r=t),!!(n(a)&&n(c))&&(o(l,"pull_data",[new Map([["get_format",a]]),r],function o(i){var a=o.$$s==null?this:o.$$s,l=t;if(i==null&&(i=t),n(i["$is_a?"](s("Hash"))))if(n(i["$[]"]("result")))if(n(i["$[]"]("result")["$is_a?"](s("String"))))if(n(i["$[]"]("result").$to_s()["$base64?"]())&&(i=i["$[]"]("result").$decode64()),n(i.$to_s()["$json?"]()))try{return i=s("JSON").$parse(i.$to_s(),new Map([["symbolize_names",!0]])),s(s("GxG"),"Database").$process_detached_import(i),c.$call(new Map([["result",!0]]))}catch(t){if(e.rescue(t,[v("Exception")])){l=t;try{return a.$log_error(new Map([["error",l],["parameters",new Map([["data",i]])]]))}finally{e.pop_exception(t)}}else throw t}else return t;else return a.$log_error(new Map([["error",v("Exception").$new("Malformed Response Data")],["parameters",new Map([["data",i["$[]"]("result")]])]]));else return n(i["$[]"]("error"))&&n(r["$respond_to?"]("call"))?r.$call(i):t;else return t},{$$s:l}),!0)},-1),i(g,"$store_format",function e(i,c){var u=e.$$p||t,h=this,l=t,d=t;return e.$$p=null,i==null&&(i=new Map),c==null&&(c=t),!!(n(i)&&n(u))&&(r(i.$keys().$size(),0)?l=s(s("GxG"),"DB")["$[]"]("formats").$keys():(l=[],o(s(s("GxG"),"DB")["$[]"]("formats").$keys(),"each",[],function(o){return o==null&&(o=t),n(a(i["$[]"]("uuid").$to_s().$size(),0))&&r(o,i["$[]"]("uuid"))&&(n(l["$include?"](o))||l["$<<"](o)),n(a(i["$[]"]("type").$to_s().$size(),0))&&r(s(s("GxG"),"DB")["$[]"]("formats")["$[]"](o)["$[]"]("type"),i["$[]"]("type"))&&(n(l["$include?"](o))||l["$<<"](o)),n(a(i["$[]"]("ufs").$to_s().$size(),0))&&r(s(s("GxG"),"DB")["$[]"]("formats")["$[]"](o)["$[]"]("ufs"),i["$[]"]("ufs"))&&(n(l["$include?"](o))||l["$<<"](o)),n(a(i["$[]"]("title").$to_s().$size(),0))&&r(s(s("GxG"),"DB")["$[]"]("formats")["$[]"](o)["$[]"]("title"),i["$[]"]("title"))&&(n(l["$include?"](o))||l["$<<"](o)),n(a(i["$[]"]("version").$to_s().$size(),0))&&r(s(s("GxG"),"DB")["$[]"]("formats")["$[]"](o)["$[]"]("version"),i["$[]"]("version"))?n(l["$include?"](o))?t:l["$<<"](o):t})),d=new Map([["formats",new Map],["records",[]]]),o(l,"each",[],function(n){var i,a=t;return n==null&&(n=t),a=s(s("GxG"),"DB")["$[]"]("formats")["$[]"](n.$to_s().$to_sym()).$clone(),a["$[]="]("content",a["$[]"]("content").$gxg_export()),(i=[n.$to_s().$to_sym(),a],o(d["$[]"]("formats"),"[]=",i),i[i.length-1])}),o(h,"push_data",[new Map([["put_format",d]]),c],function(o){return o==null&&(o=t),n(o["$is_a?"](s("Hash")))?u.$call(o):t}),!0)},-1),i(g,"$get_permissions",function e(i,a){var r=e.$$p||t,c=this;return e.$$p=null,i==null&&(i=t),a==null&&(a=t),!!(n(i)&&n(r))&&(o(c,"pull_data",[new Map([["get_permissions",new Map([["path",i]])]]),a],function(o){return o==null&&(o=t),n(o["$is_a?"](s("Hash")))?r.$call(o):t}),!0)},-1),i(g,"$call_event",function e(i,a,r){var c=e.$$p||t,l=this;return e.$$p=null,i==null&&(i="core"),a==null&&(a=new Map([["interface",!0]])),r==null&&(r=t),n(l["$open?"]())?!!(n(a["$is_a?"](s("Hash")))&&n(c))&&(o(l,"pull_data",[new Map([["call_event",new Map([["service",i.$to_s()],["op_frame",a]])]]),r],c.$to_proc()),!0):t},-1),i(g,"$library_pull",function e(i,a){var r=e.$$p||t,c=this;return e.$$p=null,i==null&&(i=new Map),a==null&&(a=t),n(c["$open?"]())?!!(n(i["$is_a?"](s("Hash")))&&n(r))&&(o(c,"pull_data",[new Map([["get_library",i]]),a],function(n){return n==null&&(n=t),r.$call(n)}),!0):t},-1),i(g,"$format_pull",function e(i,a){var r=e.$$p||t,c=this;return e.$$p=null,i==null&&(i=new Map),a==null&&(a=t),n(c["$open?"]())?!!(n(i["$is_any?"](s("Array"),s("Hash")))&&n(r))&&(o(c,"pull_data",[new Map([["format_pull",i]]),a],function(n){return n==null&&(n=t),r.$call(n)}),!0):t},-1),i(g,"$format_push",function e(i,a){var r=e.$$p||t,c=this;return e.$$p=null,i==null&&(i=new Map),a==null&&(a=t),n(c["$open?"]())?!!(n(i["$is_a?"](s("Hash")))&&n(r))&&(o(c,"push_data",[new Map([["format_push",i]]),a],function(n){return n==null&&(n=t),r.$call(n)}),!0):t},-1),i(g,"$format_list",function e(i,a){var r=e.$$p||t,c=this;return e.$$p=null,i==null&&(i=new Map),a==null&&(a=t),n(c["$open?"]())?!!(n(i["$is_a?"](s("Hash")))&&n(r))&&(o(c,"pull_data",[new Map([["format_list",i]]),a],function(n){return n==null&&(n=t),r.$call(n)}),!0):t},-1),i(g,"$admin",function e(i,a){var r=e.$$p||t,c=this;return e.$$p=null,i==null&&(i=new Map),a==null&&(a=t),n(c["$open?"]())?!!(n(i["$is_a?"](s("Hash")))&&n(r))&&(o(c,"pull_data",[new Map([["admin",i]]),a],function(n){return n==null&&(n=t),r.$call(n)}),!0):t},-1),i(g,"$vfs",function e(i,a){var r=e.$$p||t,c=this;return e.$$p=null,i==null&&(i=new Map),a==null&&(a=t),!!n(c["$open?"]())&&!!(n(i["$is_a?"](s("Hash")))&&n(r))&&!!n(["vfs_mkfile","vfs_mkdir","vfs_rename","vfs_destroy","vfs_copy","vfs_move","set_permissions"]["$include?"](i.$keys()["$[]"](0)))&&(o(c,"pull_data",[i,a],function(n){return n==null&&(n=t),r.$call(n)}),!0)},-1),i(g,"$app_state_push",function e(i,a){var r=e.$$p||t,c=this;return e.$$p=null,i==null&&(i=new Map),a==null&&(a=t),!!(n(i["$is_a?"](s("Hash")))&&n(r))&&(o(c,"push_data",[new Map([["app_state_push",new Map([["application",i["$[]"]("application")],["data",i["$[]"]("data")]])]]),a],function(o){return o==null&&(o=t),n(o["$is_a?"](s("Hash")))?r.$call(o):t}),!0)},-1),i(g,"$app_state_pull",function e(i,a){var r=e.$$p||t,c=this;return e.$$p=null,i==null&&(i=new Map),a==null&&(a=t),n(c["$open?"]())?!!(n(i["$is_a?"](s("Hash")))&&n(r))&&(o(c,"pull_data",[new Map([["app_state_pull",new Map([["application",i["$[]"]("application")]])]]),a],function(n){return n==null&&(n=t),r.$call(n)}),!0):t},-1),i(g,"$application_open",function e(i,a){var c=e.$$p||t,l=this,r=t;return e.$$p=null,i==null&&(i=new Map),a==null&&(a=t),n(l["$open?"]())?!!(n(i["$is_a?"](s("Hash")))&&n(c))&&(n(i["$[]"]("name"))?o(l,"pull_data",[new Map([["application_open",new Map([["restore",n(r=i["$[]"]("restore"))&&r],["name",i["$[]"]("name")]])]]),a],function(n){return n==null&&(n=t),c.$call(n)}):o(l,"pull_data",[new Map([["application_open",new Map([["restore",n(r=i["$[]"]("restore"))&&r],["path",i["$[]"]("path")]])]]),a],function(n){return n==null&&(n=t),c.$call(n)}),!0):t},-1),i(g,"$application_close",function e(i,a){var r=e.$$p||t,c=this;return e.$$p=null,i==null&&(i=new Map),a==null&&(a=t),n(c["$open?"]())?!!(n(i["$is_a?"](s("Hash")))&&n(r))&&(o(c,"pull_data",[new Map([["application_close",new Map([["application",i["$[]"]("application")]])]]),a],function(n){return n==null&&(n=t),r.$call(n)}),!0):t},-1),i(g,"$application_list",function e(s){var i=e.$$p||t,a=this;return e.$$p=null,s==null&&(s=t),n(a["$open?"]())?!!n(i)&&(o(a,"pull_data",[new Map([["application_list",!0]]),s],function(n){return n==null&&(n=t),i.$call(n)}),!0):t},-1),i(g,"$application_menu",function e(s){var i=e.$$p||t,a=this;return e.$$p=null,s==null&&(s=t),n(a["$open?"]())?!!n(i)&&(o(a,"pull_data",[new Map([["application_menu",!0]]),s],function(n){return n==null&&(n=t),i.$call(n)}),!0):t},-1),i(g,"$entries",function e(i,a){var r=e.$$p||t,c=this;return e.$$p=null,i==null&&(i=new Map),a==null&&(a=t),n(c["$open?"]())?!!(n(i["$is_a?"](s("Hash")))&&n(r))&&(s(v("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$set_busy(!0),o(c,"pull_data",[new Map([["entries",new Map([["path",i["$[]"]("path")]])]]),a],function(n){return n==null&&(n=t),r.$call(n),s(v("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$set_busy(!1)}),!0):t},-1),i(g,"$heartbeat",function(){var a=this,i=t;return n(a.active)?(i=a.$new_message(new Map([["heartbeat",!0]])),i["$[]="]("sender",a.uuid.$to_s()),i["$[]="]("to",a.remote_uuid.$to_s()),o(i,"on",["success"],function(i){var a;return i==null&&(i=t),n(i["$is_a?"](s("Hash")))?(r(i["$[]"]("result")["$[]"]("status"),"credentialed"),(a=["server_status",i["$[]"]("result")["$[]"]("server").$to_s().$to_sym()],o(s(v("GxG"),"DISPLAY_DETAILS"),"[]=",a),a[a.length-1])):t}),s(v("GxG"),"CONNECTION").$pull(i)):t}),i(g,"$update_credential",function e(i,a){var d=e.$$p||t,l=this,u=t,c=t;return e.$$p=null,i==null&&(i=new Map),a==null&&(a=t),n(l["$open?"]())&&n(i["$is_a?"](s("Hash")))&&n(d)?(u=i.$to_json().$to_s().$encrypt(l.csrf.$to_s()).$encode64(),c=l.$new_message(new Map([["update_credential",u]])),c["$[]="]("sender",l.uuid),c["$[]="]("to",l.remote_uuid),c["$[]"]("body")["$[]="]("thread",c.$id().$to_s()),o(c,"on",["success"],function e(i){var a=e.$$s==null?this:e.$$s;return i==null&&(i=t),n(i["$is_a?"](s("Hash")))&&r(i["$[]"]("status"),"credentialed")&&(s(v("GxG"),"DISPLAY_DETAILS")["$[]="]("logged_in",!0),o(v("GXG_FEDERATION")["$[]"]("connections").$keys(),"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s.$socket().$send(new Map([["open_channel",n.$to_s()]]).$to_json().$encode64(),"text")},{$$s:a})),d.$call(i)},{$$s:l}),n(a)&&o(c,"on",["fail"],function(n){return n==null&&(n=t),a.$call(n)}),s(v("GxG"),"CONNECTION").$push(c)):t},-1),i(g,"$downgrade_credential",function e(){var c=e.$$p||t,i=this,a=t;return e.$$p=null,n(i.active)?(a=i.$new_message(new Map([["downgrade_credential",!0]])),a["$[]="]("sender",i.uuid.$to_s()),a["$[]="]("to",i.remote_uuid.$to_s()),o(a,"on",["success"],function e(i){var l=e.$$s==null?this:e.$$s,a=t;return i==null&&(i=t),n(i["$is_a?"](s("Hash")))&&r(i["$[]"]("status"),"uncredentialed")?(o(v("GXG_FEDERATION")["$[]"]("connections").$keys(),"each",[],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s.$socket().$send(new Map([["close_channel",n.$to_s()]]).$to_json().$encode64(),"text")},{$$s:l}),s(v("GxG"),"DISPLAY_DETAILS")["$[]="]("logged_in",!1),n(c["$respond_to?"]("call"))&&c.$call(i),a=new CustomEvent("credentialchanged",{detail:i["$[]"]("status").$to_s()}),window.dispatchEvent(a)):t},{$$s:i}),s(v("GxG"),"CONNECTION").$pull(a)):t}),i(g,"$action",function e(n,s){var o=e.$$p||t;return e.$$p=null,n==null&&(n=new Map),s==null&&(s=t),t},-1),i(g,"$relative_url",l("relative_url")),i(g,"$query",l("query")),i(g,"$article",l("article")),i(g,"$display_path",l("display_path")),i(g,"$secret",l("csrf")),i(g,"$initialize",function(){var l=this,g=t,m=t,h=t,d=t,p=t,u=t;return n(window.location.href["$include?"]("https://"))?l.host_prefix=c("https://",window.location.host):l.host_prefix=c("http://",window.location.host),l.relative_url="",g=v("File").$basename(window.location.pathname),m=window.location.pathname.$split("/"),h=m.$index(g),n(h["$is_a?"](s("Numeric")))&&n(a(h,1))&&(l.relative_url=m["$[]"](e.Range.$new(0,f(h,1),!1)).$join("/")),l.article=t,l.query=new Map,d=window.location.href.$split("?")["$[]"](1),n(d)?(l.article=d.$split("#")["$[]"](1),d=d.$split("#")["$[]"](0),n(d["$include?"]("&amp;"))?p=d.$split("&amp;"):p=d.$split("&"),o(p,"each",[],function e(n){var s,i=e.$$s==null?this:e.$$s,a=t;return i.query==null&&(i.query=t),n==null&&(n=t),a=n.$split("="),(s=[a["$[]"](0).$to_s().$to_sym(),a["$[]"](1)],o(i.query,"[]=",s),s[s.length-1])},{$$s:l})):l.article=window.location.href.$split("#")["$[]"](1),l.uuid=v("GxG").$uuid_generate().$to_sym(),l.remote_uuid=t,l.active=!0,l.display_path=t,l.in_busy=!1,l.out_busy=!1,l.pending=new Map,l.channels=new Map,l.buffers=new Map,l.csrf=t,l.the_connector=l,u=l.$new_message(new Map([["introduction",l.uuid.$to_s()]])),u["$[]="]("sender",l.uuid.$to_s()),u["$[]="]("to",l.host_prefix.$to_s()),o(u,"on",["success"],function i(a){var l=i.$$s==null?this:i.$$s;return a==null&&(a=t),r(a["$[]"]("result"),"OK")?(n(a["$[]"]("csrf"))&&(l.csrf=a["$[]"]("csrf")),r(a["$[]"]("status"),"credentialed")?s(v("GxG"),"DISPLAY_DETAILS")["$[]="]("logged_in",!0):s(v("GxG"),"DISPLAY_DETAILS")["$[]="]("logged_in",!1),n(a["$[]"]("relative_url"))&&(l.relative_url=a["$[]"]("relative_url")),r(a["$[]"]("display"),"unavailable")?alert("Display Resource Unavailable"):(l.display_path=a["$[]"]("display"),l.active=!0,o(s(v("GxG"),"DISPATCHER"),"post_event",["display"],function i(){var l,a=i.$$s==null?this:i.$$s;for(a.query==null&&(a.query=t),a.article==null&&(a.article=t),a.relative_url==null&&(a.relative_url=t);!r(document.readyState.$to_s(),"complete");)a.$sleep(.5);return s(s("GxG"),"DISPLAY_DETAILS")["$[]="]("query",a.query),s(s("GxG"),"DISPLAY_DETAILS")["$[]="]("article",a.article),l=function(t){e.GxG.$eval("GxG::DISPLAY_DETAILS[:socket].close"),t&&(t.returnValue="closing...");for(var n=0;n<5e8;n++);return"closing..."},window.addEventListener("unload",l,!1),window.addEventListener("onunload",l,!1),window.addEventListener("beforeunload",l,!1),window.addEventListener("onbeforeunload",l,!1),window.onbeforeunload=l,window.beforeunload=l,o(s(v("GxG"),"DISPATCHER"),"post_event",["display"],function(){return s(s(s("GxG"),"Gui"),"Vdom").$navigate_to(window.location.pathname)}),s(s("GxG"),"DISPLAY_DETAILS")["$[]="]("socket",s(s(s("GxG"),"Networking"),"Socket").$new()),s(s("GxG"),"DISPLAY_DETAILS")["$[]"]("socket").$open(c(c(c(window.location.host,"/"),a.relative_url),"/ws").$gsub("//","/")),o(s(s("GxG"),"SOCKET_MONITOR"),"on",["attach_socket"],function e(i){var a=e.$$s==null?this:e.$$s,r=t;return a.uuid==null&&(a.uuid=t),a.remote_uuid==null&&(a.remote_uuid=t),i==null&&(i=t),n(s("GxG")["$valid_uuid?"](i))?(r=a.$new_message(new Map([["attach_socket",i.$to_s()]])),r["$[]="]("sender",a.uuid),r["$[]="]("to",a.remote_uuid),o(r,"on",["success"],function e(n){var o=e.$$s==null?this:e.$$s;return o.uuid==null&&(o.uuid=t),n==null&&(n=t),s(s("GxG"),"CHANNELS").$create_channel(o.uuid)},{$$s:a}),s(v("GxG"),"CONNECTION").$push(r)):t},{$$s:a}),o(s(s("GxG"),"SOCKET_MONITOR"),"on",["payload"],function e(o){var r=e.$$s==null?this:e.$$s,i=t,a=t;return r.csrf==null&&(r.csrf=t),o==null&&(o=t),i=s(s(s("GxG"),"Events"),"Message").$import(o.$to_s().$decode64().$decrypt(r.csrf)),n(i["$is_a?"](s(s(s("GxG"),"Events"),"Message")))?(a=s(s("GxG"),"CHANNELS").$fetch_channel(i["$[]"]("to")),n(a)||(s(s("GxG"),"CHANNELS").$create_channel(i["$[]"]("to")),a=s(s("GxG"),"CHANNELS").$fetch_channel(i["$[]"]("to"))),n(a)?a.$write(i):t):t},{$$s:a}),o(s(s("GxG"),"DISPATCHER"),"add_periodic_timer",[new Map([["interval",.333]])],function(){return s(s("GxG"),"SOCKET_MONITOR").$follow_up()})},{$$s:l}))):t},{$$s:l}),o(u,"on",["fail"],function e(n){var s=e.$$s==null?this:e.$$s;return n==null&&(n=t),s.active=!1,s.$log_error(new Map([["error",v("Exception").$new("Communication Error")],["parameters",new Map([["response",n]])]]))},{$$s:l}),o(s(v("GxG"),"DISPATCHER"),"post_event",["communications"],function e(){var t=e.$$s==null?this:e.$$s;return s(v("GxG"),"CONNECTION").$pull(u),t.heart_beat_timer=o(s(v("GxG"),"DISPATCHER"),"add_periodic_timer",[new Map([["interval",60]])],function(){return s(v("GxG"),"CONNECTION").$heartbeat()})},{$$s:l}),l})}(g[0],null,g)}(g[0],g)}(m[0],m)},Opal.queue(function(e){var r=e.module,s=e.const_set,c=e.klass,o=e.def,t=e.top,i=[],a=e.nil,n=e.$$$;return e.add_stubs("require,to_i,new,private,[]"),t.$require("opal"),t.$require("opal/paths"),t.$require("bigdecimal"),t.$require("buffer"),t.$require("base64"),t.$require("console"),t.$require("date"),t.$require("delegate"),t.$require("enumerator"),t.$require("forwardable"),t.$require("iconv"),t.$require("json"),t.$require("js"),t.$require("observer"),t.$require("opal-parser"),t.$require("opal-platform"),t.$require("pathname"),t.$require("pp"),t.$require("promise"),t.$require("securerandom"),t.$require("singleton"),t.$require("stringio"),t.$require("strscan"),t.$require("thread"),t.$require("time"),t.$require("deps/chronic"),t.$require("web/gxg"),t.$require("web/gxg_augments"),t.$require("web/gxg_elements"),t.$require("web/gxg_events"),t.$require("web/gxg_database"),t.$require("web/gxg_libraries"),t.$require("web/gxg_applications"),t.$require("web/gxg_vdom"),t.$require("web/gxg_foundation"),t.$require("web/gxg_layout"),t.$require("web/gxg_windows"),t.$require("web/gxg_gui"),t.$require("web/gxg_comm"),function(e,t){var i=r(e,"GxG"),o=[i].concat(t);return s(o[0],"DISPLAY_DETAILS",new Map([["server_status","running"],["logged_in",!1],["host_path",""],["use_ssl",!1],["socket",a],["object",a],["theme","default"],["query",new Map],["article",a],["mode","browsing"]])),s(o[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]])),s(o[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()]])),s(o[0],"APPLICATIONS",new Map([["processes",new Map],["libraries",new Map],["viewports",new Map],["prefetching",!1]])),s(o[0],"ANIMATION",new Map([["animations",new Map],["assets",new Map]])),s(o[0],"DB",new Map([["formats",new Map]])),s(o[0],"CONNECTION",n(n(n("GxG"),"Networking"),"Connector").$new()),s(o[0],"SOCKET_MONITOR",n(n(n("GxG"),"Networking"),"SocketMonitor").$new()),s(o[0],"THEMES",new Map),s(o[0],"PAGES",new Map),s(o[0],"DOCUMENTS",new Map)}(i[0],i),function(e,t){var s=c(e,t,"Object");return s.$private(),o(s,"$page",function(){return n(n("GxG"),"DISPLAY_DETAILS")["$[]"]("object")}),o(s,"$applications",function(){return n(n("GxG"),"APPLICATIONS")["$[]"]("processes")}),o(s,"$libraries",function(){return n(n("GxG"),"APPLICATIONS")["$[]"]("libraries")}),o(s,"$viewports",function(){return n(n("GxG"),"APPLICATIONS")["$[]"]("viewports")}),o(s,"$connector",function(){return n(n("GxG"),"CONNECTION")}),o(s,"$socket",function(){return n(n("GxG"),"DISPLAY_DETAILS")["$[]"]("socket")}),o(s,"$sockets",function(){return n(n("GxG"),"SOCKET_MONITOR")}),o(s,"$documents",function(){return n(n("GxG"),"DOCUMENTS")})}(i[0],null)}),Opal.queue(function(e){var t=e.Kernel,n=e.nil;return e.add_stubs("exit"),t.$exit()})