/**
* Combined, minified redistributable GNU ease.js file.
*
* Copyright (C) 2010, 2011, 2012, 2013, 2014 Free Software Foundation, Inc.
* @license magnet:?xt=urn:btih:1f739d935676111cfff4b4693e3816e664797050&dn=gpl-3.0.txt GPL-v3-or-Later
*/
var easejs={};
(function(C){var g={},l=function(b){var e=b.replace(/^\.?\/|[^/]*?\/\.\.\/|\.js$/,""),e=g[e];if(void 0===e)throw"[ease.js] Undefined module: "+b;return e.exports};(function(b){var b=b.exports={},e={"public":1,"protected":2,"private":4,"static":8,"abstract":16,"const":32,virtual:64,override:128,proxy:256,weak:512},d={amods:e["public"]|e["protected"]|e["private"],virtual:e["abstract"]|e.virtual};b.kvals=e;b.kmasks=d;b.parseKeywords=function(b){var a=b,c=[],j=0,h={};if(1!==(c=(""+b).split(/\s+/)).length){a=c.pop();
for(b=c.length;b--;){var v=c[b],w=e[v];if(!w)throw Error("Unexpected keyword for '"+a+"': "+v);h[v]=!0;j|=w}}a.match(/^_[^_]/)&&!(j&d.amods)&&(h["private"]=!0,j|=e["private"]);return{name:a,keywords:h,bitwords:j}}})(g.prop_parser={},".");(function(b){function e(a){throw a;}function d(a,c,d){for(var b=d.length;b--;)null===d[b].match(/^[a-z_][a-z0-9_]*$/i)&&a(SyntaxError("Member "+c+" contains invalid parameter '"+d[b]+"'"))}function f(){return j?function(a,c,d){Object.defineProperty(a,c,{value:d,enumerable:!1,
writable:!1,configurable:!1})}:function(a,c,d){a[c]=d}}var a=b.exports={},c=l("./prop_parser").parseKeywords,j;a:{if("function"===typeof Object.defineProperty)try{Object.defineProperty({},"x",{});j=!0;break a}catch(h){}j=!1}a.freeze="function"===typeof Object.freeze?Object.freeze:function(){};a.definePropertyFallback=function(c){if(void 0===c)return!j;j=!c;a.defineSecureProp=f();return a};a.defineSecureProp=f();a.clone=function w(a,c){c=!!c;if(a instanceof Array){if(!c)return a.slice(0);for(var d=
[],b=0,e=a.length;b"}:function(){return"#"})}var b=null,e=this;d.toString=a?function(){return a}:function(){return"(Class)"};return d};k.prototype.createAbstractCtor=function(a){var c=this,d=function(){if(!c._extending)throw Error("Abstract class "+(a||"(anonymous)")+" cannot be instantiated");};d.toString=a?function(){return a}:
function(){return"(AbstractClass)"};return d};k.prototype._attachPropInit=function(a,c,d,b,e){var k=this;p.defineSecureProp(a,"__initProps",function(b){var b=!!b,m=a.___$$parent$$,m=m&&m.__initProps;"function"===typeof m&&m.call(this,!0);m=k._visFactory.createPropProxy(this,this.___$$vis$$,c["public"]);m=this.___$$vis$$[e]=k._visFactory.setup(m,c,d);b||p.defineSecureProp(m,"__inst",this)})};k.getMethodInstance=function(a,c){var d=a.___$$vis$$;return a.__iid&&d?d[c]:null}})(g.ClassBuilder={},".");
(function(b){var e=b.exports={};b.exports=e=function(d){if(!(this instanceof e))return new b.exports(d);this._factory=d};e.prototype.wrapMethod=function(d,b,a,c,e,h){return this._factory(d,b,a,c,e,h)}})(g.MethodWrapperFactory={},".");(function(b){(b.exports={}).standard={wrapOverride:function(b,d,f,a){return function(){var c=a(this,f)||this,j=void 0,h=c.__super;c.__super=d;j=b.apply(c,arguments);c.__super=h;return j===c?this:j}},wrapNew:function(b,d,f,a){return function(){var c=a(this,f)||this,d=
void 0,d=b.apply(c,arguments);return d===c?this:d}},wrapProxy:function(b,d,f,a,c,j){var h=j&&j["static"],d=function(){var d=a(this,f)||this,j=void 0,d=h?d.$(b):d[b];if(!(null!==d&&"object"===typeof d&&"function"===typeof d[c]))throw TypeError("Unable to proxy "+c+"() call to '"+b+"'; '"+b+"' is undefined or '"+c+"' is not a function.");j=d[c].apply(d,arguments);return j===d?this:j};d.__length=NaN;return d}}})(g.MethodWrappers={},".");(function(b){function e(a){return function(){return this.___$$super$$.prototype[a].apply(this.___$$pmo$$,
arguments)}}function d(a,c,d){if(c["private"])return(c["public"]||c["protected"])&&f(d),a["private"];if(c["protected"])return(c["public"]||c["private"])&&f(d),a["protected"];(c["private"]||c["protected"])&&f(d);return a["public"]}function f(a){throw TypeError("Only one access modifier may be used for definition of '"+a+"'");}function a(c,d,b){for(var e=h.length,f=null;e--;)if(f=j.getPropertyDescriptor(c[h[e]],d,!0))return{get:f.get,set:f.set,member:f.value};return void 0!==b?(c=b.___$$methods$$,e=
b.___$$props$$,b=((b.prototype||{}).___$$parent$$||{}).constructor,c&&a(c,d,b)||e&&a(e,d,b)||null):null}var c=b.exports={},j=l("./util");l("./warn");var h=["public","protected","private"];b.exports=function(a,c,d,e){if(!(this instanceof b.exports))return new b.exports(a,c,d,e);this._wrapMethod=a;this._wrapOverride=c;this._wrapProxy=d;this._validate=e};c=b.exports.prototype;c.initMembers=function(a,c,d){return{"public":a||{},"protected":c||{},"private":d||{}}};c.buildMethod=function(c,b,f,j,h,g,l,
t,s){var k=this._methodKeywordDefaults,k=(b=(t=a(c,f,t))?t.member:null)&&(b.___$$keywords$$||k),c=d(c,h,f);this._validate.validateMethod(f,j,h,t,k,s);if(h.proxy&&(!b||!h.weak))c[f]=this._createProxy(j,g,l,f,h);else if(b){if(h.weak&&!k["abstract"])return!1;if(h.override||k["abstract"])s=h["abstract"]?e(f):b,c[f]=this._overrideMethod(s,j,g,l);else throw Error("Method hiding not yet implemented (we should never get here; bug).");}else c[f]=h["abstract"]||h["private"]?j:this._overrideMethod(null,j,g,
l);c[f].___$$keywords$$=h;return!0};c._methodKeywordDefaults={virtual:!0};c.buildProp=function(c,b,e,f,j,h){h=(b=a(c,e,h))?b.member:null;this._validate.validateProperty(e,f,j,b,h?h[1]:null);d(c,j,e)[e]=[f,j]};c.buildGetterSetter=function(c,b,e,f,j,h,g,l,s){b=a(c,e,s);this._validate.validateGetterSetter(e,{},h,b,b&&b.get?b.get.___$$keywords$$:null);if(f)f=this._overrideMethod(null,f,g,l),f.___$$keywords$$=h;Object.defineProperty(d(c,h,e),e,{get:f,set:j?this._overrideMethod(null,j,g,l):j,enumerable:!0,
configurable:!1})};c._createProxy=function(a,c,d,b,e){return this._wrapProxy.wrapMethod(a,null,d,c,b,e)};c._overrideMethod=function(a,c,d,b){var e=null,e=(a?this._wrapOverride:this._wrapMethod).wrapMethod(c,a,b,d||function(){});j.defineSecureProp(e,"__length",c.__length||c.length);return e};c._getVisibilityValue=function(a){return a["protected"]?1:a["private"]?2:0};c.end=function(a){this._validate&&this._validate.end(a)}})(g.MemberBuilder={},".");(function(b){var e=b.exports={};b.exports=e=function(d){if(!(this instanceof
b.exports))return new b.exports(d);this._warningHandler=d||function(){}};e.prototype._initState=function(d){if(d.__vready)return d;d.warn={};d.__vready=!0;return d};e.prototype.end=function(d){for(var b in d.warn){var a=d.warn[b],c;for(c in a)this._warningHandler(a[c])}d.__vready=!1};e.prototype.validateMethod=function(d,b,a,c,e,h){this._initState(h);var g=c?c.member:null;if(a["abstract"]&&a["private"])throw TypeError("Method '"+d+"' cannot be both private and abstract");if(a["const"])throw TypeError("Cannot declare method '"+
d+"' as constant; keyword is redundant");if(a.virtual&&a["static"])throw TypeError("Cannot declare static method '"+d+"' as virtual");if(c&&(c.get||c.set))throw TypeError("Cannot override getter/setter '"+d+"' with method");if(a.proxy){if("string"!==typeof b)throw TypeError("Cannot declare proxy method '"+d+"'; string value expected");if(a["abstract"])throw TypeError("Proxy method '"+d+"' cannot be abstract");}if(g){if(e["private"])throw TypeError("Private member name '"+d+"' conflicts with supertype");
if("function"!==typeof g)throw TypeError("Cannot override property '"+d+"' with method");if(a.override&&!e.virtual){if(!a["abstract"])throw TypeError("Cannot override non-virtual method '"+d+"'");if(!e["abstract"])throw TypeError("Cannot perform abstract override on non-abstract method '"+d+"'");}if(a["abstract"]&&!a.weak&&!e["abstract"])throw TypeError("Cannot override concrete method '"+d+"' with abstract method");c=void 0===g.__length?g.length:g.__length;b=void 0===b.__length?b.length:b.__length;
a.proxy&&(b=NaN);a.weak&&!e["abstract"]&&(g=c,c=b,b=g);if(b]"}:function(){return"[object Interface]"}}function h(a){o.defineSecureProp(a,"isCompatible",function(b){return 0===v(a,b).length})}function v(a,b){var c=[];o.propParse(a.prototype,{method:function(a,d){"function"!==typeof b[a]?c.push([a,"missing"]):b[a].length