!function(a){"use strict";function b(a){a.Reflect=a.Reflect||{},a.Reflect.global=a.Reflect.global||a}if(!a.$traceurRuntime){b(a);var c=function(a){return typeof a};a.$traceurRuntime={options:{},setupGlobals:b,"typeof":c}}}("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this),function(){function a(a,b,c,d,e,f,g){var h=[];return a&&h.push(a,":"),c&&(h.push("//"),b&&h.push(b,"@"),h.push(c),d&&h.push(":",d)),e&&h.push(e),f&&h.push("?",f),g&&h.push("#",g),h.join("")}function b(a){return a.match(h)}function c(a){if("/"===a)return"/";for(var b="/"===a[0]?"/":"",c="/"===a.slice(-1)?"/":"",d=a.split("/"),e=[],f=0,g=0;g0;)e.unshift("..");0===e.length&&e.push(".")}return b+e.join("/")+c}function d(b){var d=b[i.PATH]||"";return d=c(d),b[i.PATH]=d,a(b[i.SCHEME],b[i.USER_INFO],b[i.DOMAIN],b[i.PORT],b[i.PATH],b[i.QUERY_DATA],b[i.FRAGMENT])}function e(a){var c=b(a);return d(c)}function f(a,c){var e=b(c),f=b(a);if(e[i.SCHEME])return d(e);e[i.SCHEME]=f[i.SCHEME];for(var g=i.SCHEME;g<=i.PORT;g++)e[g]||(e[g]=f[g]);if("/"==e[i.PATH][0])return d(e);var h=f[i.PATH],j=h.lastIndexOf("/");return h=h.slice(0,j+1)+e[i.PATH],e[i.PATH]=h,d(e)}function g(a){if(!a)return!1;if("/"===a[0])return!0;var c=b(a);return!!c[i.SCHEME]}var h=new RegExp("^(?:([^:/?#.]+):)?(?://(?:([^/?#]*)@)?([\\w\\d\\-\\u0100-\\uffff.%]*)(?::([0-9]+))?)?([^?#]+)?(?:\\?([^#]*))?(?:#(.*))?$"),i={SCHEME:1,USER_INFO:2,DOMAIN:3,PORT:4,PATH:5,QUERY_DATA:6,FRAGMENT:7};$traceurRuntime.canonicalizeUrl=e,$traceurRuntime.isAbsolute=g,$traceurRuntime.removeDotSegments=c,$traceurRuntime.resolveUrl=f}(),function(a){"use strict";function b(a,b){this.url=a,this.value_=b}function c(a,b){this.message=this.constructor.name+": "+this.stripCause(b)+" in "+a,b instanceof c||!b.stack?this.stack="":this.stack=this.stripStack(b.stack)}function d(a,b){var c=[],d=b-3;0>d&&(d=0);for(var e=d;b>e;e++)c.push(a[e]);return c}function e(a,b){var c=b+1;c>a.length-1&&(c=a.length-1);for(var d=[],e=b;c>=e;e++)d.push(a[e]);return d}function f(a){for(var b="",c=0;a-1>c;c++)b+="-";return b}function g(a,c){b.call(this,a,null),this.func=c}function h(a){if(a){var b=r.normalize(a);return o[b]}}function i(a){var b=arguments[1],c=Object.create(null);return Object.getOwnPropertyNames(a).forEach(function(d){var e,f;if(b===q){var g=Object.getOwnPropertyDescriptor(a,d);g.get&&(e=g.get)}e||(f=a[d],e=function(){return f}),Object.defineProperty(c,d,{get:e,enumerable:!0})}),Object.preventExtensions(c),c}var j,k=$traceurRuntime,l=k.canonicalizeUrl,m=k.resolveUrl,n=k.isAbsolute,o=Object.create(null);j=a.location&&a.location.href?m(a.location.href,"./"):"",c.prototype=Object.create(Error.prototype),c.prototype.constructor=c,c.prototype.stripError=function(a){return a.replace(/.*Error:/,this.constructor.name+":")},c.prototype.stripCause=function(a){return a?a.message?this.stripError(a.message):a+"":""},c.prototype.loadedBy=function(a){this.stack+="\n loaded by "+a},c.prototype.stripStack=function(a){var b=[];return a.split("\n").some(function(a){return/UncoatedModuleInstantiator/.test(a)?!0:void b.push(a)}),b[0]=this.stripError(b[0]),b.join("\n")},g.prototype=Object.create(b.prototype),g.prototype.getUncoatedModule=function(){var b=this;if(this.value_)return this.value_;try{var g;return void 0!==typeof $traceurRuntime&&$traceurRuntime.require&&(g=$traceurRuntime.require.bind(null,this.url)),this.value_=this.func.call(a,g)}catch(h){if(h instanceof c)throw h.loadedBy(this.url),h;if(h.stack){var i=this.func.toString().split("\n"),j=[];h.stack.split("\n").some(function(a,c){if(a.indexOf("UncoatedModuleInstantiator.getUncoatedModule")>0)return!0;var g=/(at\s[^\s]*\s).*>:(\d*):(\d*)\)/.exec(a);if(g){var h=parseInt(g[2],10);j=j.concat(d(i,h)),1===c?j.push(f(g[3])+"^ "+b.url):j.push(f(g[3])+"^"),j=j.concat(e(i,h)),j.push("= = = = = = = = =")}else j.push(a)}),h.stack=j.join("\n")}throw new c(this.url,h)}};var p=Object.create(null),q={},r={normalize:function(a,b,c){if("string"!=typeof a)throw new TypeError("module name must be a string, not "+typeof a);if(n(a))return l(a);if(/[^\.]\/\.\.\//.test(a))throw new Error("module name embeds /../: "+a);return"."===a[0]&&b?m(b,a):l(a)},get:function(a){var b=h(a);if(b){var c=p[b.url];return c?c:(c=i(b.getUncoatedModule(),q),p[b.url]=c)}},set:function(a,b){a=String(a),o[a]=new g(a,function(){return b}),p[a]=b},get baseURL(){return j},set baseURL(a){j=String(a)},registerModule:function(a,b,c){var d=r.normalize(a);if(o[d])throw new Error("duplicate module named "+d);o[d]=new g(d,c)},bundleStore:Object.create(null),register:function(a,b,c){b&&(b.length||c.length)?this.bundleStore[a]={deps:b,execute:function(){var a=arguments,d={};b.forEach(function(b,c){return d[b]=a[c]});var e=c.call(this,d);return e.execute.call(this),e.exports}}:this.registerModule(a,b,c)},getAnonymousModule:function(b){return new i(b.call(a),q)}},s=new i({ModuleStore:r});r.set("@traceur/src/runtime/ModuleStore.js",s);var t=$traceurRuntime.setupGlobals;$traceurRuntime.setupGlobals=function(a){t(a)},$traceurRuntime.ModuleStore=r,$traceurRuntime.registerModule=r.registerModule.bind(r),$traceurRuntime.getModule=r.get,$traceurRuntime.setModule=r.set,$traceurRuntime.normalizeModuleName=r.normalize}("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this),$traceurRuntime.registerModule("traceur@0.0.108/src/runtime/new-unique-string.js",[],function(){"use strict";function a(){return"__$"+(1e9*b()>>>1)+"$"+ ++c+"$__"}var b=Math.random,c=Date.now()%1e9,d=a;return{get default(){return d}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/runtime/has-native-symbols.js",[],function(){"use strict";function a(){return b}var b=!!Object.getOwnPropertySymbols&&"function"==typeof Symbol,c=a;return{get default(){return c}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/runtime/modules/symbols.js",[],function(){"use strict";function a(a){return{configurable:!0,enumerable:!1,value:a,writable:!0}}function b(a){var b=i();l(this,s,{value:this}),l(this,q,{value:b}),l(this,r,{value:a}),m(this),t[b]=this}function c(a){return t[a]}function d(a){for(var b=[],d=0;d3?("function"==typeof g&&(a.__proto__=g),a.prototype=i(e(g),b(d))):(c(d),a.prototype=d),k(a,"prototype",{configurable:!1,writable:!1}),j(a,b(f))}function e(a){if("function"==typeof a){var b=a.prototype;if(f(b)===b||null===b)return a.prototype;throw new g("super prototype must be an Object or null")}if(null===a)return null;throw new g("Super expression must either be null or a function, not "+typeof a+".")}var f=Object,g=TypeError,h=Object,i=h.create,j=h.defineProperties,k=h.defineProperty,l=h.getOwnPropertyDescriptor,m=h.getOwnPropertyNames,n=h.getOwnPropertySymbols,o={enumerable:!1},p=d;return{get default(){return p}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/runtime/modules/superConstructor.js",[],function(){"use strict";function a(a){return a.__proto__}var b=a;return{get default(){return b}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/runtime/modules/superDescriptor.js",[],function(){"use strict";function a(a,b){var e=d(a);do{var f=c(e,b);if(f)return f;e=d(e)}while(e)}var b=Object,c=b.getOwnPropertyDescriptor,d=b.getPrototypeOf,e=a;return{get default(){return e}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/runtime/modules/superGet.js",[],function(){"use strict";function a(a,c,d){var e=b(c,d);if(e){var f=e.value;return f?f:e.get?e.get.call(a):f}}var b=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./superDescriptor.js","traceur@0.0.108/src/runtime/modules/superGet.js"))["default"],c=a;return{get default(){return c}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/runtime/modules/superSet.js",[],function(){"use strict";function a(a,d,e,f){var g=b(d,e);if(g&&g.set)return g.set.call(a,f),f;throw c("super has no setter '"+e+"'.")}var b=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./superDescriptor.js","traceur@0.0.108/src/runtime/modules/superSet.js"))["default"],c=TypeError,d=a;return{get default(){return d}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/runtime/classes.js",[],function(){"use strict";var a=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./modules/createClass.js","traceur@0.0.108/src/runtime/classes.js"))["default"],b=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./modules/superConstructor.js","traceur@0.0.108/src/runtime/classes.js"))["default"],c=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./modules/superGet.js","traceur@0.0.108/src/runtime/classes.js"))["default"],d=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./modules/superSet.js","traceur@0.0.108/src/runtime/classes.js"))["default"];return $traceurRuntime.createClass=a,$traceurRuntime.superConstructor=b,$traceurRuntime.superGet=c,$traceurRuntime.superSet=d,{}}),$traceurRuntime.registerModule("traceur@0.0.108/src/runtime/modules/exportStar.js",[],function(){"use strict";function a(a){for(var b=arguments,e=function(e){var f,g=b[e],h=d(g),i=function(b){var d=h[b];return"__esModule"===d||"default"===d?0:void c(a,d,{get:function(){return g[d]},enumerable:!0})};a:for(var j=0;j=0;d--)if(void 0!==this.tryStack_[d]["catch"]){c=this.tryStack_[d]["catch"];break}null===c&&(c=A),this.tryStack_.push({"finally":b,finallyFallThrough:c})}null!==a&&this.tryStack_.push({"catch":a})},popTry:function(){this.tryStack_.pop()},maybeUncatchable:function(){if(this.storedException===B)throw B},get sent(){return this.maybeThrow(),this.sent_},set sent(a){this.sent_=a},get sentIgnoreThrow(){return this.sent_},maybeThrow:function(){if("throw"===this.action)throw this.action="next",this.sent_},end:function(){switch(this.state){case z:return this;case A:throw this.storedException;default:throw b(this.state)}},handleException:function(a){throw this.GState=y,this.state=z,a},wrapYieldStar:function(a){var b=this;return{next:function(b){return a.next(b)},"throw":function(c){var d;if(c===B){if(a["return"]){if(d=a["return"](b.returnValue),!d.done)return b.returnValue=b.oldReturnValue,d;b.returnValue=d.value}throw c}if(a["throw"])return a["throw"](c);throw a["return"]&&a["return"](),q("Inner iterator does not have a throw method")}}}};var C=n(),D=n();return e.prototype=f,u(f,"constructor",a(e)),f.prototype={constructor:f,next:function(a){return d(o(this,C),o(this,D),"next",a)},"throw":function(a){return d(o(this,C),o(this,D),"throw",a)},"return":function(a){var b=o(this,C);return b.oldReturnValue=b.returnValue,b.returnValue=a,d(b,o(this,D),"throw",B)}},t(f.prototype,{constructor:{enumerable:!1},next:{enumerable:!1},"throw":{enumerable:!1},"return":{enumerable:!1}}),Object.defineProperty(f.prototype,Symbol.iterator,a(function(){return this})),i.prototype=s(c.prototype),i.prototype.end=function(){switch(this.state){case z:this.resolve(this.returnValue);break;case A:this.reject(this.storedException);break;default:this.reject(b(this.state))}},i.prototype.handleException=function(){this.state=A},{get createGeneratorInstance(){return g},get initGeneratorFunction(){return h},get asyncWrap(){return j}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/runtime/modules/asyncWrap.js",[],function(){"use strict";var a=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./generators.js","traceur@0.0.108/src/runtime/modules/asyncWrap.js"));return{get default(){return a.asyncWrap}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/runtime/modules/initGeneratorFunction.js",[],function(){"use strict";var a=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./generators.js","traceur@0.0.108/src/runtime/modules/initGeneratorFunction.js"));return{get default(){return a.initGeneratorFunction}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/runtime/modules/createGeneratorInstance.js",[],function(){"use strict";var a=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./generators.js","traceur@0.0.108/src/runtime/modules/createGeneratorInstance.js"));return{get default(){return a.createGeneratorInstance}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/runtime/generators.js",[],function(){"use strict";var a=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./modules/asyncWrap.js","traceur@0.0.108/src/runtime/generators.js"))["default"],b=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./modules/initGeneratorFunction.js","traceur@0.0.108/src/runtime/generators.js"))["default"],c=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./modules/createGeneratorInstance.js","traceur@0.0.108/src/runtime/generators.js"))["default"];return $traceurRuntime.asyncWrap=a,$traceurRuntime.initGeneratorFunction=b,$traceurRuntime.createGeneratorInstance=c,{}}),$traceurRuntime.registerModule("traceur@0.0.108/src/runtime/modules/spawn.js",[],function(){"use strict";function a(a,b,c){return new Promise(function(d,e){function f(a){try{h(c.next(a))}catch(b){e(b)}}function g(a){try{h(c["throw"](a))}catch(b){e(b)}}function h(a){a.done?d(a.value):Promise.resolve(a.value).then(f,g)}h((c=c.apply(a,b)).next())})}var b=a;return{get default(){return b}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/runtime/spawn.js",[],function(){"use strict";var a=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./modules/spawn.js","traceur@0.0.108/src/runtime/spawn.js"))["default"];return $traceurRuntime.spawn=a,{}}),$traceurRuntime.registerModule("traceur@0.0.108/src/runtime/modules/getTemplateObject.js",[],function(){ "use strict";function a(a){var b=arguments[1],g=a.join("${}"),h=f[g];return h?h:(b||(b=e.call(a)),f[g]=d(c(b,"raw",{value:d(a)})))}var b=Object,c=b.defineProperty,d=b.freeze,e=Array.prototype.slice,f=Object.create(null),g=a;return{get default(){return g}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/runtime/template.js",[],function(){"use strict";var a=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./modules/getTemplateObject.js","traceur@0.0.108/src/runtime/template.js"))["default"];return $traceurRuntime.getTemplateObject=a,{}}),$traceurRuntime.registerModule("traceur@0.0.108/src/runtime/modules/spreadProperties.js",[],function(){"use strict";function a(a,b,c){d(a,b,{configurable:!0,enumerable:!0,value:c,writable:!0})}function b(b,c){if(null!=c){var d=function(d){for(var e=0;e>>0}function c(a){return a&&("object"==typeof a||"function"==typeof a)}function d(a){return"function"==typeof a}function e(a){return"number"==typeof a}function f(a){return a=+a,v(a)?0:0!==a&&u(a)?a>0?t(a):s(a):a}function g(a){var b=f(a);return 0>b?0:x(b,A)}function h(a){return c(a)?a[Symbol.iterator]:void 0}function i(a){return d(a)}function j(a,b){return{value:a,done:b}}function k(a,b,c){b in a||Object.defineProperty(a,b,c)}function l(a,b,c){k(a,b,{value:c,configurable:!0,enumerable:!1,writable:!0})}function m(a,b,c){k(a,b,{value:c,configurable:!1,enumerable:!1,writable:!1})}function n(a,b){for(var c=0;ca;a+=2){var b=r[a],c=r[a+1];b(c),r[a]=void 0,r[a+1]=void 0}k=0}function h(){try{var a=require,b=a("vertx");return i=b.runOnLoop||b.runOnContext,c()}catch(d){return f()}}var i,j,k=0,l=({}.toString,a),m="undefined"!=typeof window?window:void 0,n=m||{},o=n.MutationObserver||n.WebKitMutationObserver,p="undefined"==typeof self&&"undefined"!=typeof process&&"[object process]"==={}.toString.call(process),q="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel,r=new Array(1e3);return j=p?b():o?d():q?e():void 0===m&&"function"==typeof require?h():f(),{get default(){return l}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/runtime/polyfills/Promise.js",[],function(){"use strict";function a(a){return a&&"object"==typeof a&&void 0!==a.status_}function b(a){return a}function c(a){throw a}function d(a){var d=void 0!==arguments[1]?arguments[1]:b,f=void 0!==arguments[2]?arguments[2]:c,g=e(a.constructor);switch(a.status_){case void 0:throw TypeError;case 0:a.onResolve_.push(d,g),a.onReject_.push(f,g);break;case 1:k(a.value_,[d,g]);break;case-1:k(a.value_,[f,g])}return g.promise}function e(a){if(this===y){var b=g(new y(w));return{promise:b,resolve:function(a){h(b,a)},reject:function(a){i(b,a)}}}var c={};return c.promise=new a(function(a,b){c.resolve=a,c.reject=b}),c}function f(a,b,c,d,e){return a.status_=b,a.value_=c,a.onResolve_=d,a.onReject_=e,a}function g(a){return f(a,0,void 0,[],[])}function h(a,b){j(a,1,b,a.onResolve_)}function i(a,b){j(a,-1,b,a.onReject_)}function j(a,b,c,d){0===a.status_&&(k(c,d),f(a,b,c))}function k(a,b){o(function(){for(var c=0;c=i)return a[f]=void 0,c(void 0,!0);var j,k=b.charCodeAt(h);if(55296>k||k>56319||h+1===i)j=String.fromCharCode(k);else{var l=b.charCodeAt(h+1);j=56320>l||l>57343?String.fromCharCode(k):String.fromCharCode(k)+String.fromCharCode(l)}return a[g]=h+j.length,c(j,!1)},configurable:!0,enumerable:!0,writable:!0}),Object.defineProperty(b,Symbol.iterator,{value:function(){return this},configurable:!0,enumerable:!0,writable:!0}),b),{})}();return{get createStringIterator(){return a}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/runtime/polyfills/String.js",[],function(){"use strict";function a(a){var b=String(this);if(null==this||"[object RegExp]"==p.call(a))throw TypeError();var c=b.length,d=String(a),e=(d.length,arguments.length>1?arguments[1]:void 0),f=e?Number(e):0;isNaN(f)&&(f=0);var g=Math.min(Math.max(f,0),c);return q.call(b,d,f)==g}function b(a){var b=String(this);if(null==this||"[object RegExp]"==p.call(a))throw TypeError();var c=b.length,d=String(a),e=d.length,f=c;if(arguments.length>1){var g=arguments[1];void 0!==g&&(f=g?Number(g):0,isNaN(f)&&(f=0))}var h=Math.min(Math.max(f,0),c),i=h-e;return 0>i?!1:r.call(b,d,i)==i}function c(a){if(null==this)throw TypeError();var b=String(this);if(a&&"[object RegExp]"==p.call(a))throw TypeError();var c=b.length,d=String(a),e=d.length,f=arguments.length>1?arguments[1]:void 0,g=f?Number(f):0;g!=g&&(g=0);var h=Math.min(Math.max(g,0),c);return e+h>c?!1:-1!=q.call(b,d,g)}function d(a){if(null==this)throw TypeError();var b=String(this),c=a?Number(a):0;if(isNaN(c)&&(c=0),0>c||c==1/0)throw RangeError();if(0==c)return"";for(var d="";c--;)d+=b;return d}function e(a){if(null==this)throw TypeError();var b=String(this),c=b.length,d=a?Number(a):0;if(isNaN(d)&&(d=0),!(0>d||d>=c)){var e,f=b.charCodeAt(d);return f>=55296&&56319>=f&&c>d+1&&(e=b.charCodeAt(d+1),e>=56320&&57343>=e)?1024*(f-55296)+e-56320+65536:f}}function f(a){var b=a.raw,c=b.length>>>0;if(0===c)return"";for(var d="",e=0;;){if(d+=b[e],e+1===c)return d;d+=arguments[++e]}}function g(a){var b,c,d=[],e=Math.floor,f=-1,g=arguments.length;if(!g)return"";for(;++fh||h>1114111||e(h)!=h)throw RangeError("Invalid code point: "+h);65535>=h?d.push(h):(h-=65536,b=(h>>10)+55296,c=h%1024+56320,d.push(b,c))}return String.fromCharCode.apply(null,d)}function h(){var a=j(this),b=String(a);return k(b)}function i(i){var j=i.String;m(j.prototype,["codePointAt",e,"endsWith",b,"includes",c,"repeat",d,"startsWith",a]),m(j,["fromCodePoint",g,"raw",f]),n(j.prototype,h,Symbol)}var j=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../checkObjectCoercible.js","traceur@0.0.108/src/runtime/polyfills/String.js"))["default"],k=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./StringIterator.js","traceur@0.0.108/src/runtime/polyfills/String.js")).createStringIterator,l=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./utils.js","traceur@0.0.108/src/runtime/polyfills/String.js")),m=l.maybeAddFunctions,n=l.maybeAddIterator,o=l.registerPolyfill,p=Object.prototype.toString,q=String.prototype.indexOf,r=String.prototype.lastIndexOf;return o(i),{get startsWith(){return a},get endsWith(){return b},get includes(){return c},get repeat(){return d},get codePointAt(){return e},get raw(){return f},get fromCodePoint(){return g},get stringPrototypeIterator(){return h},get polyfillString(){return i}}}),$traceurRuntime.getModule("traceur@0.0.108/src/runtime/polyfills/String.js"),$traceurRuntime.registerModule("traceur@0.0.108/src/runtime/polyfills/ArrayIterator.js",[],function(){"use strict";function a(a,b){var c=f(a),d=new l;return d.iteratorObject_=c,d.arrayIteratorNextIndex_=0,d.arrayIterationKind_=b,d}function b(){return a(this,k)}function c(){return a(this,i)}function d(){return a(this,j)}var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./utils.js","traceur@0.0.108/src/runtime/polyfills/ArrayIterator.js")),f=e.toObject,g=e.toUint32,h=e.createIteratorResultObject,i=1,j=2,k=3,l=function(){function a(){}var b;return $traceurRuntime.createClass(a,(b={},Object.defineProperty(b,"next",{value:function(){var a=f(this),b=a.iteratorObject_;if(!b)throw new TypeError("Object is not an ArrayIterator");var c=a.arrayIteratorNextIndex_,d=a.arrayIterationKind_,e=g(b.length);return c>=e?(a.arrayIteratorNextIndex_=1/0,h(void 0,!0)):(a.arrayIteratorNextIndex_=c+1,d==j?h(b[c],!1):d==k?h([c,b[c]],!1):h(c,!1))},configurable:!0,enumerable:!0,writable:!0}),Object.defineProperty(b,Symbol.iterator,{value:function(){return this},configurable:!0,enumerable:!0,writable:!0}),b),{})}();return{get entries(){return b},get keys(){return c},get values(){return d}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/runtime/polyfills/Array.js",[],function(){"use strict";function a(a){var b,c,d=arguments[1],e=arguments[2],f=this,g=u(a),h=void 0!==d,i=0;if(h&&!n(d))throw TypeError();if(m(g)){b=o(f)?new f:[];var j=!0,k=!1,l=void 0;try{for(var p=void 0,q=g[Symbol.iterator]();!(j=(p=q.next()).done);j=!0){var r=p.value;h?b[i]=d.call(e,r,i):b[i]=r,i++}}catch(s){k=!0,l=s}finally{try{j||null==q["return"]||q["return"]()}finally{if(k)throw l}}return b.length=i,b}for(c=t(g.length),b=o(f)?new f(c):new Array(c);c>i;i++)h?b[i]="undefined"==typeof e?d(g[i],i):d.call(e,g[i],i):b[i]=g[i];return b.length=c,b}function b(){for(var a=[],b=0;bf;f++)e[f]=a[f];return e.length=d,e}function c(a){var b=void 0!==arguments[1]?arguments[1]:0,c=arguments[2],d=u(this),e=t(d.length),f=s(b),g=void 0!==c?s(c):e;for(f=0>f?Math.max(e+f,0):Math.min(f,e),g=0>g?Math.max(e+g,0):Math.min(g,e);g>f;)d[f]=a,f++;return d}function d(a){var b=arguments[1];return f(this,a,b)}function e(a){var b=arguments[1];return f(this,a,b,!0)}function f(a,b){var c=arguments[2],d=void 0!==arguments[3]?arguments[3]:!1,e=u(a),f=t(e.length);if(!n(b))throw TypeError();for(var g=0;f>g;g++){var h=e[g];if(b.call(c,h,g,e))return d?g:h}return d?-1:void 0}function g(f){var g=f,h=g.Array,l=g.Object,m=g.Symbol,n=k;m&&m.iterator&&h.prototype[m.iterator]&&(n=h.prototype[m.iterator]),p(h.prototype,["entries",i,"keys",j,"values",n,"fill",c,"find",d,"findIndex",e]),p(h,["from",a,"of",b]),q(h.prototype,n,m),q(l.getPrototypeOf([].values()),function(){return this},m)}var h=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ArrayIterator.js","traceur@0.0.108/src/runtime/polyfills/Array.js")),i=h.entries,j=h.keys,k=h.values,l=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./utils.js","traceur@0.0.108/src/runtime/polyfills/Array.js")),m=l.checkIterable,n=l.isCallable,o=l.isConstructor,p=l.maybeAddFunctions,q=l.maybeAddIterator,r=l.registerPolyfill,s=l.toInteger,t=l.toLength,u=l.toObject;return r(g),{get from(){return a},get of(){return b},get fill(){return c},get find(){return d},get findIndex(){return e},get polyfillArray(){return g}}}),$traceurRuntime.getModule("traceur@0.0.108/src/runtime/polyfills/Array.js"),$traceurRuntime.registerModule("traceur@0.0.108/src/runtime/polyfills/assign.js",[],function(){"use strict";function a(a){for(var c=1;cf;f++){var h=e[f];a[h]=d[h]}}return a}var b=Object.keys,c=a;return{get default(){return c}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/runtime/polyfills/Object.js",[],function(){"use strict";function a(a,b){return a===b?0!==a||1/a===1/b:a!==a&&b!==b}function b(a,b){var c,d,e=k(b),f=e.length;for(c=0;f>c;c++){e[c];d=j(b,e[c]),i(a,e[c],d)}return a}function c(c){var d=c.Object;e(d,["assign",g,"is",a,"mixin",b])}var d=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./utils.js","traceur@0.0.108/src/runtime/polyfills/Object.js")),e=d.maybeAddFunctions,f=d.registerPolyfill,g=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./assign.js","traceur@0.0.108/src/runtime/polyfills/Object.js"))["default"],h=Object,i=h.defineProperty,j=h.getOwnPropertyDescriptor,k=h.getOwnPropertyNames;return f(c),{get assign(){return g},get is(){return a},get mixin(){return b},get polyfillObject(){return c}}}),$traceurRuntime.getModule("traceur@0.0.108/src/runtime/polyfills/Object.js"),$traceurRuntime.registerModule("traceur@0.0.108/src/runtime/polyfills/Number.js",[],function(){"use strict";function a(a){return g(a)&&m(a)}function b(b){return a(b)&&k(b)===b}function c(a){return g(a)&&n(a)}function d(b){if(a(b)){var c=k(b);if(c===b)return l(c)<=o}return!1}function e(e){var f=e.Number;h(f,["MAX_SAFE_INTEGER",o,"MIN_SAFE_INTEGER",p,"EPSILON",q]),i(f,["isFinite",a,"isInteger",b,"isNaN",c,"isSafeInteger",d])}var f=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./utils.js","traceur@0.0.108/src/runtime/polyfills/Number.js")),g=f.isNumber,h=f.maybeAddConsts,i=f.maybeAddFunctions,j=f.registerPolyfill,k=f.toInteger,l=Math.abs,m=isFinite,n=isNaN,o=Math.pow(2,53)-1,p=-Math.pow(2,53)+1,q=Math.pow(2,-52);return j(e),{get MAX_SAFE_INTEGER(){return o},get MIN_SAFE_INTEGER(){return p},get EPSILON(){return q},get isFinite(){return a},get isInteger(){return b},get isNaN(){return c},get isSafeInteger(){return d},get polyfillNumber(){return e}}}),$traceurRuntime.getModule("traceur@0.0.108/src/runtime/polyfills/Number.js"),$traceurRuntime.registerModule("traceur@0.0.108/src/runtime/polyfills/fround.js",[],function(){"use strict";function a(a,b,c){function d(a){var b=k(a),c=a-b;return.5>c?b:c>.5?b+1:b%2?b+1:b}var e,f,g,h,o,p,q,r=(1<a?1:0):0===a?(f=0,g=0,e=1/a===-(1/0)?1:0):(e=0>a,a=j(a),a>=n(2,1-r)?(f=m(k(l(a)/i),1023),g=d(a/n(2,f)*n(2,c)),g/n(2,c)>=2&&(f+=1,g=1),f>r?(f=(1<>=1;return l.reverse(),g=l.join(""),h=(1<0?i*n(2,j-h)*(1+k/n(2,c)):0!==k?i*n(2,-(h-1))*(k/n(2,c)):0>i?-0:0}function c(a){return b(a,8,23)}function d(b){return a(b,8,23)}function e(a){return 0===a||!f(a)||g(a)?a:c(d(Number(a)))}var f=isFinite,g=isNaN,h=Math,i=h.LN2,j=h.abs,k=h.floor,l=h.log,m=h.min,n=h.pow;return{get fround(){return e}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/runtime/polyfills/Math.js",[],function(){"use strict";function a(a){if(a=x(+a),0==a)return 32;var b=0;return 0===(4294901760&a)&&(a<<=16,b+=16),0===(4278190080&a)&&(a<<=8,b+=8),0===(4026531840&a)&&(a<<=4,b+=4),0===(3221225472&a)&&(a<<=2,b+=2),0===(2147483648&a)&&(a<<=1,b+=1),b}function b(a,b){a=x(+a),b=x(+b);var c=a>>>16&65535,d=65535&a,e=b>>>16&65535,f=65535&b;return d*f+(c*f+d*e<<16>>>0)|0}function c(a){return a=+a,a>0?1:0>a?-1:a}function d(a){return.4342944819032518*F(a)}function e(a){return 1.4426950408889634*F(a)}function f(a){if(a=+a,-1>a||z(a))return NaN;if(0===a||a===1/0)return a;if(-1===a)return-(1/0);var b=0,c=50;if(0>a||a>1)return F(1+a);for(var d=1;c>d;d++)d%2===0?b-=G(a,d)/d:b+=G(a,d)/d;return b}function g(a){return a=+a,a===-(1/0)?-1:y(a)&&0!==a?D(a)-1:a}function h(a){return a=+a,0===a?1:z(a)?NaN:y(a)?(0>a&&(a=-a),a>21?D(a)/2:(D(a)+D(-a))/2):1/0}function i(a){return a=+a,y(a)&&0!==a?(D(a)-D(-a))/2:a}function j(a){if(a=+a,0===a)return a;if(!y(a))return c(a);var b=D(a),d=D(-a);return(b-d)/(b+d)}function k(a){return a=+a,1>a?NaN:y(a)?F(a+H(a+1)*H(a-1)):a}function l(a){return a=+a,0!==a&&y(a)?a>0?F(a+H(a*a+1)):-F(-a+H(a*a+1)):a}function m(a){return a=+a,-1===a?-(1/0):1===a?1/0:0===a?a:z(a)||-1>a||a>1?NaN:.5*F((1+a)/(1-a))}function n(a,b){for(var c=arguments.length,d=new Array(c),e=0,f=0;c>f;f++){var g=arguments[f];if(g=+g,g===1/0||g===-(1/0))return 1/0;g=B(g),g>e&&(e=g),d[f]=g}0===e&&(e=1);for(var h=0,i=0,f=0;c>f;f++){var g=d[f]/e,j=g*g-i,k=h+j;i=k-h-j,h=k}return H(h)*e}function o(a){return a=+a,a>0?E(a):0>a?C(a):a}function p(a){if(a=+a,0===a)return a;var b=0>a;b&&(a=-a);var c=G(a,1/3);return b?-c:c}function q(q){var s=q.Math;v(s,["acosh",k,"asinh",l,"atanh",m,"cbrt",p,"clz32",a,"cosh",h,"expm1",g,"fround",r,"hypot",n,"imul",b,"log10",d,"log1p",f,"log2",e,"sign",c,"sinh",i,"tanh",j,"trunc",o])}var r,s,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./fround.js","traceur@0.0.108/src/runtime/polyfills/Math.js")).fround,u=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./utils.js","traceur@0.0.108/src/runtime/polyfills/Math.js")),v=u.maybeAddFunctions,w=u.registerPolyfill,x=u.toUint32,y=isFinite,z=isNaN,A=Math,B=A.abs,C=A.ceil,D=A.exp,E=A.floor,F=A.log,G=A.pow,H=A.sqrt;return"function"==typeof Float32Array?(s=new Float32Array(1),r=function(a){return s[0]=Number(a),s[0]}):r=t,w(q),{get clz32(){return a},get imul(){return b},get sign(){return c},get log10(){return d},get log2(){return e},get log1p(){return f},get expm1(){return g},get cosh(){return h},get sinh(){return i},get tanh(){return j},get acosh(){return k},get asinh(){return l},get atanh(){return m},get hypot(){return n},get trunc(){return o},get fround(){return r},get cbrt(){return p},get polyfillMath(){return q}}}),$traceurRuntime.getModule("traceur@0.0.108/src/runtime/polyfills/Math.js"),$traceurRuntime.registerModule("traceur@0.0.108/src/runtime/polyfills/WeakMap.js",[],function(){ "use strict";function a(a){var b=a,c=b.WeakMap;b.Symbol;if(!c||!q())return!0;try{var d={},e=new c([[d,!1]]);return e.get(d)}catch(f){return!1}}function b(b){a(b)&&(b.WeakMap=u)}var c=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../private.js","traceur@0.0.108/src/runtime/polyfills/WeakMap.js")),d=c.createPrivateSymbol,e=c.deletePrivate,f=c.getPrivate,g=c.hasPrivate,h=c.setPrivate,i=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../frozen-data.js","traceur@0.0.108/src/runtime/polyfills/WeakMap.js")),j=i.deleteFrozen,k=i.getFrozen,l=i.hasFrozen,m=i.setFrozen,n=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./utils.js","traceur@0.0.108/src/runtime/polyfills/WeakMap.js")),o=n.isObject,p=n.registerPolyfill,q=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../has-native-symbols.js","traceur@0.0.108/src/runtime/polyfills/WeakMap.js"))["default"],r=Object,s=(r.defineProperty,r.getOwnPropertyDescriptor,r.isExtensible),t=TypeError,u=(Object.prototype.hasOwnProperty,function(){function a(){this.name_=d(),this.frozenData_=[]}return $traceurRuntime.createClass(a,{set:function(a,b){if(!o(a))throw new t("key must be an object");return s(a)?h(a,this.name_,b):m(this.frozenData_,a,b),this},get:function(a){return o(a)?s(a)?f(a,this.name_):k(this.frozenData_,a):void 0},"delete":function(a){return o(a)?s(a)?e(a,this.name_):j(this.frozenData_,a):!1},has:function(a){return o(a)?s(a)?g(a,this.name_):l(this.frozenData_,a):!1}},{})}());return p(b),{get WeakMap(){return u},get polyfillWeakMap(){return b}}}),$traceurRuntime.getModule("traceur@0.0.108/src/runtime/polyfills/WeakMap.js"),$traceurRuntime.registerModule("traceur@0.0.108/src/runtime/polyfills/WeakSet.js",[],function(){"use strict";function a(a){var b=a,c=b.WeakSet;b.Symbol;if(!c||!o())return!0;try{var d={},e=new c([[d]]);return!e.has(d)}catch(f){return!1}}function b(b){a(b)&&(b.WeakSet=s)}var c=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../private.js","traceur@0.0.108/src/runtime/polyfills/WeakSet.js")),d=c.createPrivateSymbol,e=c.deletePrivate,f=(c.getPrivate,c.hasPrivate),g=c.setPrivate,h=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../frozen-data.js","traceur@0.0.108/src/runtime/polyfills/WeakSet.js")),i=h.deleteFrozen,j=h.getFrozen,k=h.setFrozen,l=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./utils.js","traceur@0.0.108/src/runtime/polyfills/WeakSet.js")),m=l.isObject,n=l.registerPolyfill,o=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../has-native-symbols.js","traceur@0.0.108/src/runtime/polyfills/WeakSet.js"))["default"],p=Object,q=(p.defineProperty,p.isExtensible),r=TypeError,s=(Object.prototype.hasOwnProperty,function(){function a(){this.name_=d(),this.frozenData_=[]}return $traceurRuntime.createClass(a,{add:function(a){if(!m(a))throw new r("value must be an object");return q(a)?g(a,this.name_,!0):k(this.frozenData_,a,a),this},"delete":function(a){return m(a)?q(a)?e(a,this.name_):i(this.frozenData_,a):!1},has:function(a){return m(a)?q(a)?f(a,this.name_):j(this.frozenData_,a)===a:!1}},{})}());return n(b),{get WeakSet(){return s},get polyfillWeakSet(){return b}}}),$traceurRuntime.getModule("traceur@0.0.108/src/runtime/polyfills/WeakSet.js"),$traceurRuntime.registerModule("traceur@0.0.108/src/runtime/polyfills/polyfills.js",[],function(){"use strict";var a=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./utils.js","traceur@0.0.108/src/runtime/polyfills/polyfills.js")).polyfillAll;a(Reflect.global);var b=$traceurRuntime.setupGlobals;return $traceurRuntime.setupGlobals=function(c){b(c),a(c)},{}}),$traceurRuntime.getModule("traceur@0.0.108/src/runtime/polyfills/polyfills.js"),$traceurRuntime.registerModule("traceur@0.0.108/src/util/SourceRange.js",[],function(){"use strict";var a=function(){function a(a,b){this.start=a,this.end=b}return $traceurRuntime.createClass(a,{toString:function(){var a=this.start.source.contents;return a.slice(this.start.offset,this.end.offset)}},{})}();return{get SourceRange(){return a}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/util/ErrorReporter.js",[],function(){"use strict";function a(a,b){var c=arguments[2],d=0;return b=b.replace(/%./g,function(a){switch(a){case"%s":return c&&c[d++];case"%%":return"%"}return a}),a&&(b=a+": "+b),b}var b=($traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./SourceRange.js","traceur@0.0.108/src/util/ErrorReporter.js")).SourceRange,function(){function a(){this.hadError_=!1}return $traceurRuntime.createClass(a,{reportError:function(a,b){this.hadError_=!0,this.reportMessageInternal(a,b)},reportMessageInternal:function(a,b){a&&(b=a.start+": "+b),console.error(b)},hadError:function(){return this.hadError_},clearError:function(){this.hadError_=!1}},{})}());return b.format=a,{get ErrorReporter(){return b},get format(){return a}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/util/MutedErrorReporter.js",[],function(){"use strict";var a=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ErrorReporter.js","traceur@0.0.108/src/util/MutedErrorReporter.js")).ErrorReporter,b=function(a){function b(){$traceurRuntime.superConstructor(b).apply(this,arguments)}return $traceurRuntime.createClass(b,{reportMessageInternal:function(a,b,c){}},{},a)}(a);return{get MutedErrorReporter(){return b}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/Options.js",[],function(){"use strict";function a(a){var b=Object.create(null);return Object.keys(a).forEach(function(c){Object.defineProperty(b,c,{enumerable:!0,value:a[c]})}),b}function b(a,b){k[a]=!0,b===n&&(l[a]=!0);var c=b===o;j[a]=c}function c(a){j[a]=!1}function d(a){switch(a){case"false":return!1;case"true":case!0:return!0;default:return!!a&&String(a)}}function e(a){return a.replace(/-\w/g,function(a){return a[1].toUpperCase()})}function f(a){return a.replace(/[A-Z]/g,function(a){return"-"+a.toLowerCase()})}function g(a,b){a.option("--referrer ","Bracket output code with System.referrerName=",function(a){return b.setOption("referrer",a),System.map=System.semverMap(a),a}),a.option("--modules <"+m.join(", ")+">","select the output format for modules",function(a){b.modules=a}),a.option("--moduleName [true|false|default]","true for named, false for anonymous modules; default depends on --modules",function(a){a="true"===a?!0:"false"===a?!1:"default",b.moduleName=a}),a.option("--outputLanguage ","compilation target language",function(a){if("es6"!==a&&"es5"!==a)throw new Error("outputLanguage must be one of es5, es6");b.outputLanguage=a}),a.option("--source-maps [file|inline|memory]","sourceMaps generated to file or inline with data: URL",function(a){return b.sourceMaps=a}),a.option("--source-root ","sourcemap sourceRoot value. false to omit, true for directory of output file.",function(a){return"false"===a?a=!1:"true"===a&&(a=!0),b.sourceRoot=a}),a.option("--low-resolution-source-maps","Lower sourceMaps granularity to one mapping per output line",function(){return b.lowResolutionSourceMap=!0}),a.option("--experimental","Turns on all experimental features",function(){b.experimental=!0}),a.option("--atscript","Turns on all AtScript features",function(){b.atscript=!0}),Object.keys(b).forEach(function(c){var d=f(c);if(!a.optionFor("--"+c)&&!a.optionFor("--"+d))if(c in k)a.option("--"+d+" [true|false|parse]",s[c]),a.on(d,function(a){return b.setOptionCoerced(d,a)});else{if(null===b[c])throw new Error("Unexpected null commandOption "+c);a.option("--"+d,s[c]),a.on(d,function(){return b.setOption(d,!0)})}}),b.setDefaults()}var h=a({annotations:!1,arrayComprehension:!1,arrowFunctions:!0,asyncFunctions:!1,asyncGenerators:!1,blockBinding:!0,classes:!0,commentCallback:!1,computedPropertyNames:!0,debug:!1,debugNames:!1,defaultParameters:!0,destructuring:!0,exponentiation:!1,exportFromExtended:!1,forOf:!0,forOn:!1,freeVariableChecker:!1,generatorComprehension:!1,generators:!0,inputSourceMap:!1,jsx:!1,lowResolutionSourceMap:!1,memberVariables:!1,moduleName:"default",modules:"bootstrap",numericLiterals:!0,outputLanguage:"es5",properTailCalls:!1,propertyMethods:!0,propertyNameShorthand:!0,referrer:"",require:!1,restParameters:!0,script:!1,sourceMaps:!1,sourceRoot:!1,spread:!0,spreadProperties:!1,symbols:!0,templateLiterals:!0,types:!1,unicodeEscapeSequences:!0,unicodeExpressions:!0,validate:!1}),i=h,j=Object.create(null),k=Object.create(null),l=Object.create(null),m=["amd","commonjs","closure","instantiate","inline","bootstrap","parse"],n=0,o=1;b("arrowFunctions",o),b("blockBinding",o),b("classes",o),b("computedPropertyNames",o),b("defaultParameters",o),b("destructuring",o),b("forOf",o),b("generators",o),b("modules","SPECIAL"),b("numericLiterals",o),b("propertyMethods",o),b("propertyNameShorthand",o),b("restParameters",o),b("sourceMaps","SPECIAL"),b("spread",o),b("symbols",o),b("templateLiterals",o),b("unicodeEscapeSequences",o),b("unicodeExpressions",o),b("properTailCalls",n),b("annotations",n),b("arrayComprehension",n),b("asyncFunctions",n),b("asyncGenerators",n),b("exponentiation",n),b("exportFromExtended",n),b("forOn",n),b("generatorComprehension",n),b("jsx",n),b("memberVariables",n),b("require",n),b("spreadProperties",n),b("types",n);var p={};Object.keys(k).forEach(function(a){Object.defineProperty(p,a,{get:function(){var b=this.proxiedOptions_[a];return"parse"===b?!1:b},enumerable:!0})});var q={};Object.keys(k).forEach(function(a){Object.defineProperty(q,a,{get:function(){return!!this.proxiedOptions_[a]},enumerable:!0})}),c("commentCallback"),c("debug"),c("debugNames"),c("freeVariableChecker"),c("script"),c("validate");var r=function(){function a(){var a=void 0!==arguments[0]?arguments[0]:Object.create(null);this.reset(),Object.defineProperties(this,{modules_:{value:i.modules,writable:!0,enumerable:!1},sourceMaps_:{value:i.sourceMaps,writable:!0,enumerable:!1},sourceRoot_:{value:i.sourceRoot,writable:!0,enumerable:!1},transformOptions:{value:Object.create(p,{proxiedOptions_:{value:this,enumerable:!1}}),enumerable:!1},parseOptions:{value:Object.create(q,{proxiedOptions_:{value:this,enumerable:!1}}),enumerable:!1}}),this.setFromObject(a)}return $traceurRuntime.createClass(a,{set experimental(a){var b=this;a=d(a),Object.keys(l).forEach(function(c){b[c]=a})},get experimental(){var a,b=this;return Object.keys(l).every(function(c){var d=b[c];return void 0===a?(a=d,!0):d!==a?(a=null,!1):!0}),a},get atscript(){return this.types&&this.annotations&&this.memberVariables},set atscript(a){this.types=a,this.annotations=a,this.memberVariables=a},get modules(){return this.modules_},set modules(a){if("boolean"!=typeof a||a||(a="bootstrap"),-1===m.indexOf(a))throw new Error("Invalid 'modules' option '"+a+"', not in "+m.join(", "));this.modules_=a},get sourceMaps(){return this.sourceMaps_},set sourceMaps(a){if(null===a||"boolean"==typeof a)return void(this.sourceMaps_=a?"file":!1);if("file"!==a&&"inline"!==a&&"memory"!==a)throw new Error("Option sourceMaps should be [false|inline|file|memory], not "+a);this.sourceMaps_=a},reset:function(){var a=arguments[0],b=this,c=void 0===a;Object.keys(j).forEach(function(a){b[a]=c&&j[a]}),this.setDefaults()},setDefaults:function(){this.modules="bootstrap",this.moduleName="default",this.outputLanguage="es5",this.referrer="",this.sourceMaps=!1,this.sourceRoot=!1,this.lowResolutionSourceMap=!1,this.inputSourceMap=!1},setFromObject:function(a){var b=this;return Object.keys(this).forEach(function(c){c in a&&b.setOption(c,a[c])}),this.modules=a.modules||this.modules,"boolean"!=typeof a.sourceMaps&&"string"!=typeof a.sourceMaps||(this.sourceMaps=a.sourceMaps),void 0!==a.sourceRoot&&(this.sourceRoot=a.sourceRoot),this},setOption:function(a,b){if(a=e(a),!(a in this))throw Error("Unknown option: "+a);this[a]=b},diff:function(a){var b=this,c=[];return Object.keys(this).forEach(function(d){b[d]!==a[d]&&c.push({key:d,now:$traceurRuntime.options[d],v01:a[d]})}),c}},{experimental:function(){return new a(l)},atscript:function(){return new a({types:!0,annotations:!0,memberVariables:!0})},listUnknownOptions:function(a){var b=[];return Object.keys(a).forEach(function(a){a in h||b.push(a)}),b}})}(),s={experimental:"Turns on all experimental features",require:"Generate require function argument for node when modules=register",sourceMaps:"Generate source map and ('file') write to .map or ('inline') append data URL"},t=function(a){function b(){$traceurRuntime.superConstructor(b).apply(this,arguments)}return $traceurRuntime.createClass(b,{parseCommand:function(a){var b=/--([^=]+)(?:=(.+))?/,c=b.exec(a);c&&this.setOptionCoerced(c[1],c[2])},setOptionCoerced:function(a,b){b="undefined"!=typeof b&&null!==b?d(b):!0,this.setOption(a,b)}},{fromString:function(a){return b.fromArgv(a.split(/\s+/))},fromArgv:function(a){var c=new b;return a.forEach(function(a){return c.parseCommand(a)}),c}},a)}(r);return{get optionsV01(){return h},get versionLockedOptions(){return i},get Options(){return r},get CommandOptions(){return t},get toDashCase(){return f},get addOptions(){return g}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/loader/webLoader.js",[],function(){"use strict";var a={load:function(a,b,c){var d=new XMLHttpRequest;return d.onload=function(){if(200==d.status||0==d.status)b(d.responseText);else{var e;e=404===d.status?"File not found '"+a+"'":d.status+d.statusText,c(e)}d=null},d.onerror=function(a){c(a)},d.open("GET",a,!0),d.send(),function(){d&&d.abort()}}};return{get webLoader(){return a}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/WebPageTranscoder.js",[],function(){"use strict";var a=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./util/ErrorReporter.js","traceur@0.0.108/src/WebPageTranscoder.js")).ErrorReporter,b=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./Options.js","traceur@0.0.108/src/WebPageTranscoder.js")).CommandOptions,c=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./loader/webLoader.js","traceur@0.0.108/src/WebPageTranscoder.js")).webLoader,d='script[type="module"],script[type="text/traceur"]',e=function(){function e(){var a=void 0!==arguments[0]?arguments[0]:document.location.href,b=void 0!==arguments[1]?arguments[1]:new Options;this.url=a,this.numPending_=0,this.numberInlined_=0,this.traceurOptions_=b}return $traceurRuntime.createClass(e,{asyncLoad_:function(a,b,d){var e=this;this.numPending_++,c.load(a,function(c){c?b(c):console.warn("Failed to load",a),--e.numPending_<=0&&d()},function(b){console.error("WebPageTranscoder FAILED to load "+a,b.stack||b)})},addFileFromScriptElement:function(a,c,d){var e=this.traceurOptions_,f=a.getAttribute("traceurOptions");f&&(e=b.fromString(f));var g,h={address:c,referrerName:window.location.href,name:c,metadata:{traceurOptions:e}};g="module"===a.type?System.module(d,h):System.script(d,h),g["catch"](function(a){console.error(a.stack||a)})},nextInlineScriptName_:function(){if(this.numberInlined_+=1,!this.inlineScriptNameBase_){var a=this.url.split(".");a.pop(),this.inlineScriptNameBase_=a.join(".")}return this.inlineScriptNameBase_+"_inline_script_"+this.numberInlined_+".js"},addFilesFromScriptElements:function(a,b){for(var c=0,d=a.length;d>c;c++){var e=a[c];if(e.src){var f=e.src;this.asyncLoad_(f,this.addFileFromScriptElement.bind(this,e,f),b)}else{var g=this.nextInlineScriptName_(),h=e.textContent;this.addFileFromScriptElement(e,g,h)}}this.numPending_<=0&&b()},get reporter(){return this.reporter_||(this.reporter_=new a),this.reporter_},putFile:function(a){var b=document.createElement("script");b.setAttribute("data-traceur-src-url",a.name),b.textContent=a.generatedSource;var c=a.scriptElement.parentNode;c.insertBefore(b,a.scriptElement||null)},selectAndProcessScripts:function(a){var b=d,c=document.querySelectorAll(b);return c.length?void this.addFilesFromScriptElements(c,function(){a()}):void a()},run:function(){var a=void 0!==arguments[0]?arguments[0]:function(){},b=this,c=document.readyState;"complete"===c||"loaded"===c?this.selectAndProcessScripts(a):document.addEventListener("DOMContentLoaded",function(){return b.selectAndProcessScripts(a)},!1)}},{})}();return{get scriptSelector(){return d},get WebPageTranscoder(){return e}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/util/StringSet.js",[],function(){"use strict";function a(a){if("string"!=typeof a)throw new TypeError}var b=function(){function b(){this.storage_=Object.create(null)}return $traceurRuntime.createClass(b,{add:function(b){a(b),this.storage_[b]=!0},has:function(b){return a(b),void 0!==this.storage_[b]},"delete":function(b){a(b),delete this.storage_[b]},isEmpty:function(){for(var a in this.storage_)return!1;return!0},valuesAsArray:function(){return Object.keys(this.storage_)},forEach:function(a){for(var b in this.storage_)a(b)}},{})}();return{get StringSet(){return b}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/util/StringMap.js",[],function(){"use strict";function a(a){if("string"!=typeof a)throw new TypeError}var b=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./StringSet.js","traceur@0.0.108/src/util/StringMap.js")).StringSet,c=function(){function c(){this.storage_=Object.create(null)}return $traceurRuntime.createClass(c,{set:function(b,c){a(b),this.storage_[b]=c},get:function(b){return a(b),this.storage_[b]},"delete":function(b){a(b),delete this.storage_[b]},has:function(b){return a(b),void 0!==this.storage_[b]},keysAsArray:function(){return Object.keys(this.storage_)},keysAsSet:function(){var a=new b;return this.forEach(function(b){return a.add(b)}),a},forEach:function(a){for(var b in this.storage_)a(b,this.storage_[b])}},{})}();return{get StringMap(){return c}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/HTMLImportTranscoder.js",[],function(){"use strict";var a=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./util/StringMap.js","traceur@0.0.108/src/HTMLImportTranscoder.js")).StringMap,b=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./WebPageTranscoder.js","traceur@0.0.108/src/HTMLImportTranscoder.js")),c=b.WebPageTranscoder,d=b.scriptSelector,e="link[rel=import][href]",f=function(){function b(){this.importsToProcess_=[]}return $traceurRuntime.createClass(b,{findAllChildrenHTMLImports_:function(a){for(var b=0;b0&&this.findAllChildrenHTMLImports_(d),this.importsToProcess_.push(c)}},filterHTMLImports_:function(b){this.findAllChildrenHTMLImports_(b);for(var c=[],e=new a,f=0;f0&&c.push({href:g.href,scripts:h})}}return this.importsToProcess_=[],c},selectAndProcessHTMLImports:function(a,b){var d=this.filterHTMLImports_(a);0===d.length&&b();var e=d.length;d.forEach(function(a){var d=new c(a.href);d.addFilesFromScriptElements(a.scripts,function(){e--,0===e&&b&&b()})})},run:function(){var a=void 0!==arguments[0]?arguments[0]:function(){},b=this,c=document.readyState;if("complete"===c||"loaded"===c){var d=document.querySelectorAll(e);d.length>0&&this.selectAndProcessHTMLImports(d,a)}else document.addEventListener("HTMLImportsLoaded",function(c){var d=c.detail&&c.detail.allImports?c.detail.allImports:document.querySelectorAll(e);d.length>0&&b.selectAndProcessHTMLImports(d,a)})}},{})}();return{get HTMLImportTranscoder(){return f}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/util/CollectingErrorReporter.js",[],function(){"use strict";var a=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../util/ErrorReporter.js","traceur@0.0.108/src/util/CollectingErrorReporter.js")).ErrorReporter,b=function(a){function b(a){$traceurRuntime.superConstructor(b).call(this),this.message=a?a.join("\n"):"",this.name="MultipleErrors",this.errors=a}return $traceurRuntime.createClass(b,{},{},a)}(Error),c=function(a){function c(){$traceurRuntime.superConstructor(c).call(this),this.errors=[]}return $traceurRuntime.createClass(c,{reportMessageInternal:function(a,b){this.errors.push(a.start+": "+b)},errorsAsString:function(){return this.toError().message},toError:function(){return new b(this.errors)}},{},a)}(a);return{get MultipleErrors(){return b},get CollectingErrorReporter(){return c}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/util-imports.js",[],function(){"use strict";$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./util/MutedErrorReporter.js","traceur@0.0.108/src/util-imports.js"));var a=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./WebPageTranscoder.js","traceur@0.0.108/src/util-imports.js")),b=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./HTMLImportTranscoder.js","traceur@0.0.108/src/util-imports.js")),c=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./Options.js","traceur@0.0.108/src/util-imports.js")),d=c.addOptions,e=c.CommandOptions,f=c.Options,g=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./util/ErrorReporter.js","traceur@0.0.108/src/util-imports.js")).ErrorReporter,h=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./util/CollectingErrorReporter.js","traceur@0.0.108/src/util-imports.js")).CollectingErrorReporter,i={addOptions:d,CommandOptions:e,CollectingErrorReporter:h,ErrorReporter:g,Options:f};return{get WebPageTranscoder(){return a.WebPageTranscoder},get HTMLImportTranscoder(){return b.HTMLImportTranscoder},get util(){return i}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/syntax/trees/ParseTreeType.js",[],function(){"use strict";var a="ANNOTATION",b="ANON_BLOCK",c="ARGUMENT_LIST",d="ARRAY_COMPREHENSION",e="ARRAY_LITERAL",f="ARRAY_PATTERN",g="ARRAY_TYPE",h="ARROW_FUNCTION",i="ASSIGNMENT_ELEMENT",j="AWAIT_EXPRESSION",k="BINARY_EXPRESSION",l="BINDING_ELEMENT",m="BINDING_IDENTIFIER",n="BLOCK",o="BREAK_STATEMENT",p="CALL_EXPRESSION",q="CALL_SIGNATURE",r="CASE_CLAUSE",s="CATCH",t="CLASS_DECLARATION",u="CLASS_EXPRESSION",v="COMMA_EXPRESSION",w="COMPREHENSION_FOR",x="COMPREHENSION_IF",y="COMPUTED_PROPERTY_NAME",z="CONDITIONAL_EXPRESSION",A="CONSTRUCT_SIGNATURE",B="CONSTRUCTOR_TYPE",C="CONTINUE_STATEMENT",D="COVER_FORMALS",E="COVER_INITIALIZED_NAME",F="DEBUGGER_STATEMENT",G="DEFAULT_CLAUSE",H="DO_WHILE_STATEMENT",I="EMPTY_STATEMENT",J="EXPORT_DECLARATION",K="EXPORT_DEFAULT",L="EXPORT_SPECIFIER",M="EXPORT_SPECIFIER_SET",N="EXPORT_STAR",O="EXPRESSION_STATEMENT",P="FINALLY",Q="FOR_IN_STATEMENT",R="FOR_OF_STATEMENT",S="FOR_ON_STATEMENT",T="FOR_STATEMENT",U="FORMAL_PARAMETER",V="FORMAL_PARAMETER_LIST",W="FORWARD_DEFAULT_EXPORT",X="FUNCTION_BODY",Y="FUNCTION_DECLARATION",Z="FUNCTION_EXPRESSION",$="FUNCTION_TYPE",_="GENERATOR_COMPREHENSION",aa="GET_ACCESSOR",ba="IDENTIFIER_EXPRESSION",ca="IF_STATEMENT",da="IMPORT_CLAUSE_PAIR",ea="IMPORT_DECLARATION",fa="IMPORT_SPECIFIER",ga="IMPORT_SPECIFIER_SET",ha="IMPORT_TYPE_CLAUSE",ia="IMPORTED_BINDING",ja="INDEX_SIGNATURE",ka="INTERFACE_DECLARATION",la="JSX_ATTRIBUTE",ma="JSX_ELEMENT",na="JSX_ELEMENT_NAME",oa="JSX_PLACEHOLDER",pa="JSX_SPREAD_ATTRIBUTE",qa="JSX_TEXT",ra="LABELLED_STATEMENT",sa="LITERAL_EXPRESSION",ta="LITERAL_PROPERTY_NAME",ua="MEMBER_EXPRESSION",va="MEMBER_LOOKUP_EXPRESSION",wa="METHOD",xa="METHOD_SIGNATURE",ya="MODULE",za="MODULE_SPECIFIER",Aa="NAME_SPACE_EXPORT",Ba="NAME_SPACE_IMPORT",Ca="NAMED_EXPORT",Da="NEW_EXPRESSION",Ea="OBJECT_LITERAL",Fa="OBJECT_PATTERN",Ga="OBJECT_PATTERN_FIELD",Ha="OBJECT_TYPE",Ia="PAREN_EXPRESSION",Ja="POSTFIX_EXPRESSION",Ka="PREDEFINED_TYPE",La="PROPERTY_NAME_ASSIGNMENT",Ma="PROPERTY_NAME_SHORTHAND",Na="PROPERTY_SIGNATURE",Oa="PROPERTY_VARIABLE_DECLARATION",Pa="REST_PARAMETER",Qa="RETURN_STATEMENT",Ra="SCRIPT",Sa="SET_ACCESSOR",Ta="SPREAD_EXPRESSION",Ua="SPREAD_PATTERN_ELEMENT",Va="STATE_MACHINE",Wa="SUPER_EXPRESSION",Xa="SWITCH_STATEMENT",Ya="SYNTAX_ERROR_TREE",Za="TEMPLATE_LITERAL_EXPRESSION",$a="TEMPLATE_LITERAL_PORTION",_a="TEMPLATE_SUBSTITUTION",ab="THIS_EXPRESSION",bb="THROW_STATEMENT",cb="TRY_STATEMENT",db="TYPE_ALIAS_DECLARATION",eb="TYPE_ARGUMENTS",fb="TYPE_NAME",gb="TYPE_PARAMETER",hb="TYPE_PARAMETERS",ib="TYPE_REFERENCE",jb="UNARY_EXPRESSION",kb="UNION_TYPE",lb="VARIABLE_DECLARATION",mb="VARIABLE_DECLARATION_LIST",nb="VARIABLE_STATEMENT",ob="WHILE_STATEMENT",pb="WITH_STATEMENT",qb="YIELD_EXPRESSION";return{get ANNOTATION(){return a},get ANON_BLOCK(){return b},get ARGUMENT_LIST(){return c},get ARRAY_COMPREHENSION(){return d},get ARRAY_LITERAL(){return e},get ARRAY_PATTERN(){return f},get ARRAY_TYPE(){return g},get ARROW_FUNCTION(){return h},get ASSIGNMENT_ELEMENT(){return i},get AWAIT_EXPRESSION(){return j},get BINARY_EXPRESSION(){return k},get BINDING_ELEMENT(){return l},get BINDING_IDENTIFIER(){return m},get BLOCK(){return n},get BREAK_STATEMENT(){return o},get CALL_EXPRESSION(){return p},get CALL_SIGNATURE(){return q},get CASE_CLAUSE(){return r},get CATCH(){return s},get CLASS_DECLARATION(){return t},get CLASS_EXPRESSION(){return u},get COMMA_EXPRESSION(){return v},get COMPREHENSION_FOR(){return w},get COMPREHENSION_IF(){return x},get COMPUTED_PROPERTY_NAME(){return y},get CONDITIONAL_EXPRESSION(){return z},get CONSTRUCT_SIGNATURE(){return A},get CONSTRUCTOR_TYPE(){return B},get CONTINUE_STATEMENT(){return C},get COVER_FORMALS(){return D},get COVER_INITIALIZED_NAME(){return E},get DEBUGGER_STATEMENT(){return F},get DEFAULT_CLAUSE(){return G},get DO_WHILE_STATEMENT(){return H},get EMPTY_STATEMENT(){return I},get EXPORT_DECLARATION(){return J},get EXPORT_DEFAULT(){return K},get EXPORT_SPECIFIER(){return L},get EXPORT_SPECIFIER_SET(){return M},get EXPORT_STAR(){return N},get EXPRESSION_STATEMENT(){return O},get FINALLY(){return P},get FOR_IN_STATEMENT(){return Q},get FOR_OF_STATEMENT(){return R},get FOR_ON_STATEMENT(){return S},get FOR_STATEMENT(){return T},get FORMAL_PARAMETER(){return U},get FORMAL_PARAMETER_LIST(){return V},get FORWARD_DEFAULT_EXPORT(){return W},get FUNCTION_BODY(){return X},get FUNCTION_DECLARATION(){return Y},get FUNCTION_EXPRESSION(){return Z},get FUNCTION_TYPE(){return $},get GENERATOR_COMPREHENSION(){return _},get GET_ACCESSOR(){return aa},get IDENTIFIER_EXPRESSION(){return ba},get IF_STATEMENT(){return ca},get IMPORT_CLAUSE_PAIR(){return da},get IMPORT_DECLARATION(){return ea},get IMPORT_SPECIFIER(){return fa},get IMPORT_SPECIFIER_SET(){return ga},get IMPORT_TYPE_CLAUSE(){return ha},get IMPORTED_BINDING(){return ia},get INDEX_SIGNATURE(){return ja},get INTERFACE_DECLARATION(){return ka},get JSX_ATTRIBUTE(){return la},get JSX_ELEMENT(){return ma},get JSX_ELEMENT_NAME(){return na},get JSX_PLACEHOLDER(){return oa},get JSX_SPREAD_ATTRIBUTE(){return pa},get JSX_TEXT(){return qa},get LABELLED_STATEMENT(){return ra},get LITERAL_EXPRESSION(){return sa},get LITERAL_PROPERTY_NAME(){return ta},get MEMBER_EXPRESSION(){return ua},get MEMBER_LOOKUP_EXPRESSION(){return va},get METHOD(){return wa},get METHOD_SIGNATURE(){return xa},get MODULE(){return ya},get MODULE_SPECIFIER(){return za},get NAME_SPACE_EXPORT(){return Aa},get NAME_SPACE_IMPORT(){return Ba},get NAMED_EXPORT(){return Ca},get NEW_EXPRESSION(){return Da},get OBJECT_LITERAL(){return Ea},get OBJECT_PATTERN(){return Fa},get OBJECT_PATTERN_FIELD(){return Ga},get OBJECT_TYPE(){return Ha},get PAREN_EXPRESSION(){return Ia},get POSTFIX_EXPRESSION(){return Ja},get PREDEFINED_TYPE(){return Ka},get PROPERTY_NAME_ASSIGNMENT(){return La},get PROPERTY_NAME_SHORTHAND(){return Ma},get PROPERTY_SIGNATURE(){return Na},get PROPERTY_VARIABLE_DECLARATION(){return Oa},get REST_PARAMETER(){return Pa},get RETURN_STATEMENT(){return Qa},get SCRIPT(){return Ra},get SET_ACCESSOR(){return Sa},get SPREAD_EXPRESSION(){return Ta},get SPREAD_PATTERN_ELEMENT(){return Ua},get STATE_MACHINE(){return Va},get SUPER_EXPRESSION(){return Wa},get SWITCH_STATEMENT(){return Xa},get SYNTAX_ERROR_TREE(){return Ya},get TEMPLATE_LITERAL_EXPRESSION(){return Za},get TEMPLATE_LITERAL_PORTION(){return $a},get TEMPLATE_SUBSTITUTION(){return _a},get THIS_EXPRESSION(){return ab},get THROW_STATEMENT(){return bb},get TRY_STATEMENT(){return cb},get TYPE_ALIAS_DECLARATION(){return db},get TYPE_ARGUMENTS(){return eb},get TYPE_NAME(){return fb},get TYPE_PARAMETER(){return gb},get TYPE_PARAMETERS(){return hb},get TYPE_REFERENCE(){return ib},get UNARY_EXPRESSION(){return jb},get UNION_TYPE(){return kb},get VARIABLE_DECLARATION(){return lb},get VARIABLE_DECLARATION_LIST(){return mb},get VARIABLE_STATEMENT(){return nb},get WHILE_STATEMENT(){return ob},get WITH_STATEMENT(){return pb},get YIELD_EXPRESSION(){return qb}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/syntax/TokenType.js",[],function(){"use strict";var a="&",b="&=",c="&&",d="=>",e="@",f="`",g="!",h="|",i="|=",j="break",k="^",l="^=",m="case",n="catch",o="class",p=">",q="}",r=")",s="]",t=":",u=",",v="const",w="continue",x="debugger",y="default",z="delete",A="do",B="...",C="else",D="End of File",E="enum",F="=",G="==",H="===",I="error",J="export",K="extends",L="false",M="finally",N="for",O="function",P=">=",Q="identifier",R="if",S="implements",T="import",U="in",V="instanceof",W="interface",X="jsx identifier",Y="<<",Z="<<=",$="<=",_="let",aa="-",ba="-=",ca="--",da="new",ea="no substitution template",fa="!=",ga="!==",ha="null",ia="number literal",ja="<",ka="{",la="(",ma="[",na="||",oa="package",pa="%",qa="%=",ra=".",sa="+",ta="+=",ua="++",va="private",wa="protected",xa="public",ya="?",za="regular expression literal",Aa="return",Ba=">>",Ca=">>=",Da=";",Ea="/",Fa="/=",Ga="*",Ha="*=",Ia="**",Ja="**=",Ka="static",La="string literal",Ma="super",Na="switch",Oa="template head",Pa="template middle",Qa="template tail",Ra="this",Sa="throw",Ta="~",Ua="true",Va="try",Wa="typeof",Xa=">>>",Ya=">>>=",Za="var",$a="void",_a="while",ab="with",bb="yield";return{get AMPERSAND(){return a},get AMPERSAND_EQUAL(){return b},get AND(){return c},get ARROW(){return d},get AT(){return e},get BACK_QUOTE(){return f},get BANG(){return g},get BAR(){return h},get BAR_EQUAL(){return i},get BREAK(){return j},get CARET(){return k},get CARET_EQUAL(){return l},get CASE(){return m},get CATCH(){return n},get CLASS(){return o},get CLOSE_ANGLE(){return p},get CLOSE_CURLY(){return q},get CLOSE_PAREN(){return r},get CLOSE_SQUARE(){return s},get COLON(){return t},get COMMA(){return u},get CONST(){return v},get CONTINUE(){return w},get DEBUGGER(){return x},get DEFAULT(){return y},get DELETE(){return z},get DO(){return A},get DOT_DOT_DOT(){return B},get ELSE(){return C},get END_OF_FILE(){return D},get ENUM(){return E},get EQUAL(){return F},get EQUAL_EQUAL(){return G},get EQUAL_EQUAL_EQUAL(){return H},get ERROR(){return I},get EXPORT(){return J},get EXTENDS(){return K},get FALSE(){return L},get FINALLY(){return M},get FOR(){return N},get FUNCTION(){return O},get GREATER_EQUAL(){return P},get IDENTIFIER(){return Q},get IF(){return R},get IMPLEMENTS(){return S},get IMPORT(){return T},get IN(){return U},get INSTANCEOF(){return V},get INTERFACE(){return W},get JSX_IDENTIFIER(){return X},get LEFT_SHIFT(){return Y},get LEFT_SHIFT_EQUAL(){return Z},get LESS_EQUAL(){return $},get LET(){return _},get MINUS(){return aa},get MINUS_EQUAL(){return ba},get MINUS_MINUS(){return ca},get NEW(){return da},get NO_SUBSTITUTION_TEMPLATE(){return ea},get NOT_EQUAL(){return fa},get NOT_EQUAL_EQUAL(){return ga},get NULL(){return ha},get NUMBER(){return ia},get OPEN_ANGLE(){return ja},get OPEN_CURLY(){return ka},get OPEN_PAREN(){return la},get OPEN_SQUARE(){return ma},get OR(){return na},get PACKAGE(){return oa},get PERCENT(){return pa},get PERCENT_EQUAL(){return qa},get PERIOD(){return ra},get PLUS(){return sa},get PLUS_EQUAL(){return ta},get PLUS_PLUS(){return ua},get PRIVATE(){return va},get PROTECTED(){return wa},get PUBLIC(){return xa},get QUESTION(){return ya},get REGULAR_EXPRESSION(){return za},get RETURN(){return Aa},get RIGHT_SHIFT(){return Ba},get RIGHT_SHIFT_EQUAL(){return Ca},get SEMI_COLON(){return Da},get SLASH(){return Ea},get SLASH_EQUAL(){return Fa},get STAR(){return Ga},get STAR_EQUAL(){return Ha},get STAR_STAR(){return Ia},get STAR_STAR_EQUAL(){ return Ja},get STATIC(){return Ka},get STRING(){return La},get SUPER(){return Ma},get SWITCH(){return Na},get TEMPLATE_HEAD(){return Oa},get TEMPLATE_MIDDLE(){return Pa},get TEMPLATE_TAIL(){return Qa},get THIS(){return Ra},get THROW(){return Sa},get TILDE(){return Ta},get TRUE(){return Ua},get TRY(){return Va},get TYPEOF(){return Wa},get UNSIGNED_RIGHT_SHIFT(){return Xa},get UNSIGNED_RIGHT_SHIFT_EQUAL(){return Ya},get VAR(){return Za},get VOID(){return $a},get WHILE(){return _a},get WITH(){return ab},get YIELD(){return bb}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/syntax/Token.js",[],function(){"use strict";function a(a){switch(a){case c:case d:case e:case f:case g:case h:case i:case j:case k:case l:case m:case n:case o:return!0}return!1}var b=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./TokenType.js","traceur@0.0.108/src/syntax/Token.js")),c=b.AMPERSAND_EQUAL,d=b.BAR_EQUAL,e=b.CARET_EQUAL,f=b.EQUAL,g=b.LEFT_SHIFT_EQUAL,h=b.MINUS_EQUAL,i=b.PERCENT_EQUAL,j=b.PLUS_EQUAL,k=b.RIGHT_SHIFT_EQUAL,l=b.SLASH_EQUAL,m=b.STAR_EQUAL,n=b.STAR_STAR_EQUAL,o=b.UNSIGNED_RIGHT_SHIFT_EQUAL,p=function(){function b(a,b){this.type=a,this.location=b}return $traceurRuntime.createClass(b,{toString:function(){return this.type},isAssignmentOperator:function(){return a(this.type)},isKeyword:function(){return!1},isStrictKeyword:function(){return!1}},{})}();return{get Token(){return p},get isAssignmentOperator(){return a}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/util/JSON.js",[],function(){"use strict";function a(a){var c=void 0!==arguments[1]?arguments[1]:function(a,b){return b};return b(c("",a),c)}function b(a,c){var d,e;if(Array.isArray(a)){var f=a.length;d=Array(f);for(var g=0;f>g;g++)e=b(c(String(g),a[g]),c),d[g]=void 0===e?null:e;return d}return a instanceof Object?(d={},Object.keys(a).forEach(function(f){e=b(c(f,a[f]),c),void 0!==e&&(d[f]=e)}),d):a}return{get transform(){return a}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/syntax/PredefinedName.js",[],function(){"use strict";var a="$arguments",b="any",c="apply",d="arguments",e="Array",f="as",g="async",h="async star",i="await",j="bind",k="call",l="configurable",m="constructor",n="create",o="current",p="defineProperty",q="enumerable",r="freeze",s="from",t="Function",u="get",v="has",w="length",x="module",y="new",z="Object",A="Object",B="of",C="on",D="preventExtensions",E="prototype",F="push",G="set",H="slice",I="this",J="$traceurRuntime",K="type",L="undefined",M="writable";return{get $ARGUMENTS(){return a},get ANY(){return b},get APPLY(){return c},get ARGUMENTS(){return d},get ARRAY(){return e},get AS(){return f},get ASYNC(){return g},get ASYNC_STAR(){return h},get AWAIT(){return i},get BIND(){return j},get CALL(){return k},get CONFIGURABLE(){return l},get CONSTRUCTOR(){return m},get CREATE(){return n},get CURRENT(){return o},get DEFINE_PROPERTY(){return p},get ENUMERABLE(){return q},get FREEZE(){return r},get FROM(){return s},get FUNCTION(){return t},get GET(){return u},get HAS(){return v},get LENGTH(){return w},get MODULE(){return x},get NEW(){return y},get OBJECT(){return z},get OBJECT_NAME(){return A},get OF(){return B},get ON(){return C},get PREVENT_EXTENSIONS(){return D},get PROTOTYPE(){return E},get PUSH(){return F},get SET(){return G},get SLICE(){return H},get THIS(){return I},get TRACEUR_RUNTIME(){return J},get TYPE(){return K},get UNDEFINED(){return L},get WRITABLE(){return M}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/syntax/trees/ParseTree.js",[],function(){"use strict";var a=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeType.js","traceur@0.0.108/src/syntax/trees/ParseTree.js")),b=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../TokenType.js","traceur@0.0.108/src/syntax/trees/ParseTree.js")),c=b.IDENTIFIER,d=b.STAR,e=b.STRING,f=b.VAR,g=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../Token.js","traceur@0.0.108/src/syntax/trees/ParseTree.js")).Token,h=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../../util/JSON.js","traceur@0.0.108/src/syntax/trees/ParseTree.js")),i=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../PredefinedName.js","traceur@0.0.108/src/syntax/trees/ParseTree.js")),j=i.ASYNC,k=i.ASYNC_STAR,l=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeType.js","traceur@0.0.108/src/syntax/trees/ParseTree.js")),m=l.ARRAY_COMPREHENSION,n=l.ARRAY_LITERAL,o=l.ARRAY_PATTERN,p=l.ARROW_FUNCTION,q=l.AWAIT_EXPRESSION,r=l.BINARY_EXPRESSION,s=l.BINDING_IDENTIFIER,t=l.BLOCK,u=l.BREAK_STATEMENT,v=l.CALL_EXPRESSION,w=l.CLASS_DECLARATION,x=l.CLASS_EXPRESSION,y=l.COMMA_EXPRESSION,z=l.CONDITIONAL_EXPRESSION,A=l.CONSTRUCTOR_TYPE,B=l.CONTINUE_STATEMENT,C=l.DEBUGGER_STATEMENT,D=l.DO_WHILE_STATEMENT,E=l.EMPTY_STATEMENT,F=l.EXPORT_DECLARATION,G=l.EXPRESSION_STATEMENT,H=l.FOR_IN_STATEMENT,I=l.FOR_OF_STATEMENT,J=l.FOR_ON_STATEMENT,K=l.FOR_STATEMENT,L=l.FORMAL_PARAMETER,M=l.FUNCTION_DECLARATION,N=l.FUNCTION_EXPRESSION,O=l.FUNCTION_TYPE,P=l.GENERATOR_COMPREHENSION,Q=l.IDENTIFIER_EXPRESSION,R=l.IF_STATEMENT,S=l.IMPORT_DECLARATION,T=l.IMPORTED_BINDING,U=l.INTERFACE_DECLARATION,V=l.JSX_ELEMENT,W=l.LABELLED_STATEMENT,X=l.LITERAL_EXPRESSION,Y=l.LITERAL_PROPERTY_NAME,Z=l.MEMBER_EXPRESSION,$=l.MEMBER_LOOKUP_EXPRESSION,_=l.NEW_EXPRESSION,aa=l.OBJECT_LITERAL,ba=l.OBJECT_PATTERN,ca=l.OBJECT_TYPE,da=l.PAREN_EXPRESSION,ea=l.POSTFIX_EXPRESSION,fa=l.PREDEFINED_TYPE,ga=l.PROPERTY_NAME_SHORTHAND,ha=l.REST_PARAMETER,ia=l.RETURN_STATEMENT,ja=l.SPREAD_EXPRESSION,ka=l.SPREAD_PATTERN_ELEMENT,la=l.SUPER_EXPRESSION,ma=l.SWITCH_STATEMENT,na=l.TEMPLATE_LITERAL_EXPRESSION,oa=l.THIS_EXPRESSION,pa=l.THROW_STATEMENT,qa=l.TRY_STATEMENT,ra=l.TYPE_ALIAS_DECLARATION,sa=l.TYPE_NAME,ta=l.TYPE_REFERENCE,ua=l.UNARY_EXPRESSION,va=l.VARIABLE_DECLARATION,wa=l.VARIABLE_STATEMENT,xa=l.WHILE_STATEMENT,ya=l.WITH_STATEMENT,za=l.YIELD_EXPRESSION,Aa=function(){function a(a){this.location=a}return $traceurRuntime.createClass(a,{isPattern:function(){switch(this.type){case o:case ba:return!0;default:return!1}},isLeftHandSideExpression:function(){switch(this.type){case o:case Q:case Z:case $:case ba:return!0;case da:return this.expression.isLeftHandSideExpression();default:return!1}},isAssignmentExpression:function(){switch(this.type){case m:case n:case p:case q:case r:case v:case x:case z:case N:case P:case Q:case V:case X:case Z:case $:case _:case aa:case da:case ea:case na:case la:case oa:case ua:case za:return!0;default:return!1}},isMemberExpression:function(){switch(this.type){case oa:case x:case la:case Q:case V:case X:case n:case aa:case da:case na:case N:case $:case Z:case v:return!0;case _:return null!==this.args}return!1},isExpression:function(){return this.isAssignmentExpression()||this.type===y},isAssignmentOrSpread:function(){return this.isAssignmentExpression()||this.type===ja},isRestParameter:function(){return this.type===ha||this.type===L&&this.parameter.isRestParameter()},isSpreadPatternElement:function(){return this.type===ka},isStatementListItem:function(){return this.isStatement()||this.isDeclaration()||this.type===ra},isStatement:function(){switch(this.type){case t:case wa:case E:case G:case R:case B:case u:case ia:case ya:case W:case pa:case qa:case C:return!0}return this.isBreakableStatement()},isDeclaration:function(){switch(this.type){case M:case w:return!0}return this.isLexicalDeclaration()},isLexicalDeclaration:function(){switch(this.type){case wa:return this.declarations.declarationType!==f}return!1},isBreakableStatement:function(){switch(this.type){case ma:return!0}return this.isIterationStatement()},isIterationStatement:function(){switch(this.type){case D:case H:case I:case J:case K:case xa:return!0}return!1},isScriptElement:function(){switch(this.type){case w:case F:case M:case S:case U:case va:case ra:return!0}return this.isStatement()},isGenerator:function(){return null!==this.functionKind&&this.functionKind.type===d},isAsyncFunction:function(){return null!==this.functionKind&&this.functionKind.type===c&&this.functionKind.value===j},isAsyncGenerator:function(){return null!==this.functionKind&&this.functionKind.type===c&&this.functionKind.value===k},isType:function(){switch(this.type){case A:case O:case ca:case fa:case sa:case ta:return!0}return!1},getDirectivePrologueStringToken_:function(){var a=this;return a.type===G&&(a=a.expression)&&a.type===X&&(a=a.literalToken)?a.type!==e?null:a:null},isDirectivePrologue:function(){return null!==this.getDirectivePrologueStringToken_()},isUseStrictDirective:function(){var a=this.getDirectivePrologueStringToken_();if(!a)return!1;var b=a.value;return'"use strict"'===b||"'use strict'"===b},toJSON:function(){return h.transform(this,a.replacer)},stringify:function(){var b=void 0!==arguments[0]?arguments[0]:2;return JSON.stringify(this,a.replacer,b)},getStringValue:function(){switch(this.type){case Q:case s:return this.identifierToken.toString();case T:return this.binding.getStringValue();case ga:return this.name.toString();case Y:return this.literalToken.toString()}throw new Error("Not yet implemented")}},{stripLocation:function(a,b){return"location"!==a?b:void 0},replacer:function(b,c){if(c instanceof a||c instanceof g){var d={type:c.type};return Object.keys(c).forEach(function(a){"location"!==a&&(d[a]=c[a])}),d}return c}})}();return{get ParseTreeType(){return a},get ParseTree(){return Aa}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/syntax/trees/ParseTrees.js",[],function(){"use strict";var a=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTree.js","traceur@0.0.108/src/syntax/trees/ParseTrees.js")).ParseTree,b=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeType.js","traceur@0.0.108/src/syntax/trees/ParseTrees.js")),c=b.ANNOTATION,d=function(a){function b(a,c,d){$traceurRuntime.superConstructor(b).call(this,a),this.name=c,this.args=d}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformAnnotation(this)},visit:function(a){a.visitAnnotation(this)},get type(){return c}},{},a)}(a),e=b.ANON_BLOCK,f=function(a){function b(a,c){$traceurRuntime.superConstructor(b).call(this,a),this.statements=c}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformAnonBlock(this)},visit:function(a){a.visitAnonBlock(this)},get type(){return e}},{},a)}(a),g=b.ARGUMENT_LIST,h=function(a){function b(a,c){$traceurRuntime.superConstructor(b).call(this,a),this.args=c}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformArgumentList(this)},visit:function(a){a.visitArgumentList(this)},get type(){return g}},{},a)}(a),i=b.ARRAY_COMPREHENSION,j=function(a){function b(a,c,d){$traceurRuntime.superConstructor(b).call(this,a),this.comprehensionList=c,this.expression=d}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformArrayComprehension(this)},visit:function(a){a.visitArrayComprehension(this)},get type(){return i}},{},a)}(a),k=b.ARRAY_LITERAL,l=function(a){function b(a,c){$traceurRuntime.superConstructor(b).call(this,a),this.elements=c}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformArrayLiteral(this)},visit:function(a){a.visitArrayLiteral(this)},get type(){return k}},{},a)}(a),m=b.ARRAY_PATTERN,n=function(a){function b(a,c){$traceurRuntime.superConstructor(b).call(this,a),this.elements=c}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformArrayPattern(this)},visit:function(a){a.visitArrayPattern(this)},get type(){return m}},{},a)}(a),o=b.ARRAY_TYPE,p=function(a){function b(a,c){$traceurRuntime.superConstructor(b).call(this,a),this.elementType=c}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformArrayType(this)},visit:function(a){a.visitArrayType(this)},get type(){return o}},{},a)}(a),q=b.ARROW_FUNCTION,r=function(a){function b(a,c,d,e){$traceurRuntime.superConstructor(b).call(this,a),this.functionKind=c,this.parameterList=d,this.body=e}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformArrowFunction(this)},visit:function(a){a.visitArrowFunction(this)},get type(){return q}},{},a)}(a),s=b.ASSIGNMENT_ELEMENT,t=function(a){function b(a,c,d){$traceurRuntime.superConstructor(b).call(this,a),this.assignment=c,this.initializer=d}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformAssignmentElement(this)},visit:function(a){a.visitAssignmentElement(this)},get type(){return s}},{},a)}(a),u=b.AWAIT_EXPRESSION,v=function(a){function b(a,c){$traceurRuntime.superConstructor(b).call(this,a),this.expression=c}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformAwaitExpression(this)},visit:function(a){a.visitAwaitExpression(this)},get type(){return u}},{},a)}(a),w=b.BINARY_EXPRESSION,x=function(a){function b(a,c,d,e){$traceurRuntime.superConstructor(b).call(this,a),this.left=c,this.operator=d,this.right=e}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformBinaryExpression(this)},visit:function(a){a.visitBinaryExpression(this)},get type(){return w}},{},a)}(a),y=b.BINDING_ELEMENT,z=function(a){function b(a,c,d){$traceurRuntime.superConstructor(b).call(this,a),this.binding=c,this.initializer=d}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformBindingElement(this)},visit:function(a){a.visitBindingElement(this)},get type(){return y}},{},a)}(a),A=b.BINDING_IDENTIFIER,B=function(a){function b(a,c){$traceurRuntime.superConstructor(b).call(this,a),this.identifierToken=c}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformBindingIdentifier(this)},visit:function(a){a.visitBindingIdentifier(this)},get type(){return A}},{},a)}(a),C=b.BLOCK,D=function(a){function b(a,c){$traceurRuntime.superConstructor(b).call(this,a),this.statements=c}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformBlock(this)},visit:function(a){a.visitBlock(this)},get type(){return C}},{},a)}(a),E=b.BREAK_STATEMENT,F=function(a){function b(a,c){$traceurRuntime.superConstructor(b).call(this,a),this.name=c}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformBreakStatement(this)},visit:function(a){a.visitBreakStatement(this)},get type(){return E}},{},a)}(a),G=b.CALL_EXPRESSION,H=function(a){function b(a,c,d){$traceurRuntime.superConstructor(b).call(this,a),this.operand=c,this.args=d}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformCallExpression(this)},visit:function(a){a.visitCallExpression(this)},get type(){return G}},{},a)}(a),I=b.CALL_SIGNATURE,J=function(a){function b(a,c,d,e){$traceurRuntime.superConstructor(b).call(this,a),this.typeParameters=c,this.parameterList=d,this.returnType=e}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformCallSignature(this)},visit:function(a){a.visitCallSignature(this)},get type(){return I}},{},a)}(a),K=b.CASE_CLAUSE,L=function(a){function b(a,c,d){$traceurRuntime.superConstructor(b).call(this,a),this.expression=c,this.statements=d}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformCaseClause(this)},visit:function(a){a.visitCaseClause(this)},get type(){return K}},{},a)}(a),M=b.CATCH,N=function(a){function b(a,c,d){$traceurRuntime.superConstructor(b).call(this,a),this.binding=c,this.catchBody=d}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformCatch(this)},visit:function(a){a.visitCatch(this)},get type(){return M}},{},a)}(a),O=b.CLASS_DECLARATION,P=function(a){function b(a,c,d,e,f,g){$traceurRuntime.superConstructor(b).call(this,a),this.name=c,this.superClass=d,this.elements=e,this.annotations=f,this.typeParameters=g}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformClassDeclaration(this)},visit:function(a){a.visitClassDeclaration(this)},get type(){return O}},{},a)}(a),Q=b.CLASS_EXPRESSION,R=function(a){function b(a,c,d,e,f,g){$traceurRuntime.superConstructor(b).call(this,a),this.name=c,this.superClass=d,this.elements=e,this.annotations=f,this.typeParameters=g}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformClassExpression(this)},visit:function(a){a.visitClassExpression(this)},get type(){return Q}},{},a)}(a),S=b.COMMA_EXPRESSION,T=function(a){function b(a,c){$traceurRuntime.superConstructor(b).call(this,a),this.expressions=c}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformCommaExpression(this)},visit:function(a){a.visitCommaExpression(this)},get type(){return S}},{},a)}(a),U=b.COMPREHENSION_FOR,V=function(a){function b(a,c,d){$traceurRuntime.superConstructor(b).call(this,a),this.left=c,this.iterator=d}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformComprehensionFor(this)},visit:function(a){a.visitComprehensionFor(this)},get type(){return U}},{},a)}(a),W=b.COMPREHENSION_IF,X=function(a){function b(a,c){$traceurRuntime.superConstructor(b).call(this,a),this.expression=c}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformComprehensionIf(this)},visit:function(a){a.visitComprehensionIf(this)},get type(){return W}},{},a)}(a),Y=b.COMPUTED_PROPERTY_NAME,Z=function(a){function b(a,c){$traceurRuntime.superConstructor(b).call(this,a),this.expression=c}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformComputedPropertyName(this)},visit:function(a){a.visitComputedPropertyName(this)},get type(){return Y}},{},a)}(a),$=b.CONDITIONAL_EXPRESSION,_=function(a){function b(a,c,d,e){$traceurRuntime.superConstructor(b).call(this,a),this.condition=c,this.left=d,this.right=e}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformConditionalExpression(this)},visit:function(a){a.visitConditionalExpression(this)},get type(){return $}},{},a)}(a),aa=b.CONSTRUCT_SIGNATURE,ba=function(a){function b(a,c,d,e){$traceurRuntime.superConstructor(b).call(this,a),this.typeParameters=c,this.parameterList=d,this.returnType=e}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformConstructSignature(this)},visit:function(a){a.visitConstructSignature(this)},get type(){return aa}},{},a)}(a),ca=b.CONSTRUCTOR_TYPE,da=function(a){function b(a,c,d,e){$traceurRuntime.superConstructor(b).call(this,a),this.typeParameters=c,this.parameterList=d,this.returnType=e}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformConstructorType(this)},visit:function(a){a.visitConstructorType(this)},get type(){return ca}},{},a)}(a),ea=b.CONTINUE_STATEMENT,fa=function(a){function b(a,c){$traceurRuntime.superConstructor(b).call(this,a),this.name=c}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformContinueStatement(this)},visit:function(a){a.visitContinueStatement(this)},get type(){return ea}},{},a)}(a),ga=b.COVER_FORMALS,ha=function(a){function b(a,c){$traceurRuntime.superConstructor(b).call(this,a),this.expressions=c}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformCoverFormals(this)},visit:function(a){a.visitCoverFormals(this)},get type(){return ga}},{},a)}(a),ia=b.COVER_INITIALIZED_NAME,ja=function(a){function b(a,c,d,e){$traceurRuntime.superConstructor(b).call(this,a),this.name=c,this.equalToken=d,this.initializer=e}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformCoverInitializedName(this)},visit:function(a){a.visitCoverInitializedName(this)},get type(){return ia}},{},a)}(a),ka=b.DEBUGGER_STATEMENT,la=function(a){function b(a){$traceurRuntime.superConstructor(b).call(this,a)}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformDebuggerStatement(this)},visit:function(a){a.visitDebuggerStatement(this)},get type(){return ka}},{},a)}(a),ma=b.DEFAULT_CLAUSE,na=function(a){function b(a,c){$traceurRuntime.superConstructor(b).call(this,a),this.statements=c}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformDefaultClause(this)},visit:function(a){a.visitDefaultClause(this)},get type(){return ma}},{},a)}(a),oa=b.DO_WHILE_STATEMENT,pa=function(a){function b(a,c,d){$traceurRuntime.superConstructor(b).call(this,a),this.body=c,this.condition=d}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformDoWhileStatement(this)},visit:function(a){a.visitDoWhileStatement(this)},get type(){return oa}},{},a)}(a),qa=b.EMPTY_STATEMENT,ra=function(a){function b(a){$traceurRuntime.superConstructor(b).call(this,a)}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformEmptyStatement(this)},visit:function(a){a.visitEmptyStatement(this)},get type(){return qa}},{},a)}(a),sa=b.EXPORT_DECLARATION,ta=function(a){function b(a,c,d){$traceurRuntime.superConstructor(b).call(this,a),this.declaration=c,this.annotations=d}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformExportDeclaration(this)},visit:function(a){a.visitExportDeclaration(this)},get type(){return sa}},{},a)}(a),ua=b.EXPORT_DEFAULT,va=function(a){function b(a,c){$traceurRuntime.superConstructor(b).call(this,a),this.expression=c}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformExportDefault(this)},visit:function(a){a.visitExportDefault(this)},get type(){return ua}},{},a)}(a),wa=b.EXPORT_SPECIFIER,xa=function(a){function b(a,c,d){$traceurRuntime.superConstructor(b).call(this,a),this.lhs=c,this.rhs=d}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformExportSpecifier(this)},visit:function(a){a.visitExportSpecifier(this)},get type(){return wa}},{},a)}(a),ya=b.EXPORT_SPECIFIER_SET,za=function(a){function b(a,c){$traceurRuntime.superConstructor(b).call(this,a),this.specifiers=c}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformExportSpecifierSet(this)},visit:function(a){a.visitExportSpecifierSet(this)},get type(){return ya}},{},a)}(a),Aa=b.EXPORT_STAR,Ba=function(a){function b(a){$traceurRuntime.superConstructor(b).call(this,a)}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformExportStar(this)},visit:function(a){a.visitExportStar(this)},get type(){return Aa}},{},a)}(a),Ca=b.EXPRESSION_STATEMENT,Da=function(a){function b(a,c){$traceurRuntime.superConstructor(b).call(this,a),this.expression=c}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformExpressionStatement(this)},visit:function(a){a.visitExpressionStatement(this)},get type(){return Ca}},{},a)}(a),Ea=b.FINALLY,Fa=function(a){function b(a,c){$traceurRuntime.superConstructor(b).call(this,a),this.block=c}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformFinally(this)},visit:function(a){a.visitFinally(this)},get type(){return Ea}},{},a)}(a),Ga=b.FOR_IN_STATEMENT,Ha=function(a){function b(a,c,d,e){$traceurRuntime.superConstructor(b).call(this,a),this.initializer=c,this.collection=d,this.body=e}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformForInStatement(this)},visit:function(a){a.visitForInStatement(this)},get type(){return Ga}},{},a)}(a),Ia=b.FOR_OF_STATEMENT,Ja=function(a){function b(a,c,d,e){$traceurRuntime.superConstructor(b).call(this,a),this.initializer=c,this.collection=d,this.body=e}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformForOfStatement(this)},visit:function(a){a.visitForOfStatement(this)},get type(){return Ia}},{},a)}(a),Ka=b.FOR_ON_STATEMENT,La=function(a){function b(a,c,d,e){$traceurRuntime.superConstructor(b).call(this,a),this.initializer=c,this.observable=d,this.body=e}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformForOnStatement(this)},visit:function(a){a.visitForOnStatement(this)},get type(){return Ka}},{},a)}(a),Ma=b.FOR_STATEMENT,Na=function(a){function b(a,c,d,e,f){$traceurRuntime.superConstructor(b).call(this,a),this.initializer=c,this.condition=d,this.increment=e,this.body=f}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformForStatement(this)},visit:function(a){a.visitForStatement(this)},get type(){return Ma}},{},a)}(a),Oa=b.FORMAL_PARAMETER,Pa=function(a){function b(a,c,d,e){$traceurRuntime.superConstructor(b).call(this,a),this.parameter=c,this.typeAnnotation=d,this.annotations=e}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformFormalParameter(this)},visit:function(a){a.visitFormalParameter(this)},get type(){return Oa}},{},a)}(a),Qa=b.FORMAL_PARAMETER_LIST,Ra=function(a){function b(a,c){$traceurRuntime.superConstructor(b).call(this,a),this.parameters=c}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformFormalParameterList(this)},visit:function(a){a.visitFormalParameterList(this)},get type(){return Qa}},{},a)}(a),Sa=b.FORWARD_DEFAULT_EXPORT,Ta=function(a){function b(a,c){$traceurRuntime.superConstructor(b).call(this,a),this.name=c}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformForwardDefaultExport(this)},visit:function(a){a.visitForwardDefaultExport(this)},get type(){return Sa}},{},a)}(a),Ua=b.FUNCTION_BODY,Va=function(a){function b(a,c){$traceurRuntime.superConstructor(b).call(this,a),this.statements=c}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformFunctionBody(this)},visit:function(a){a.visitFunctionBody(this)},get type(){return Ua}},{},a)}(a),Wa=b.FUNCTION_DECLARATION,Xa=function(a){function b(a,c,d,e,f,g,h){$traceurRuntime.superConstructor(b).call(this,a),this.name=c,this.functionKind=d,this.parameterList=e,this.typeAnnotation=f,this.annotations=g,this.body=h}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformFunctionDeclaration(this)},visit:function(a){a.visitFunctionDeclaration(this)},get type(){return Wa}},{},a)}(a),Ya=b.FUNCTION_EXPRESSION,Za=function(a){function b(a,c,d,e,f,g,h){$traceurRuntime.superConstructor(b).call(this,a),this.name=c,this.functionKind=d,this.parameterList=e,this.typeAnnotation=f,this.annotations=g,this.body=h}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformFunctionExpression(this)},visit:function(a){a.visitFunctionExpression(this)},get type(){return Ya}},{},a)}(a),$a=b.FUNCTION_TYPE,_a=function(a){function b(a,c,d,e){$traceurRuntime.superConstructor(b).call(this,a),this.typeParameters=c,this.parameterList=d,this.returnType=e}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformFunctionType(this)},visit:function(a){a.visitFunctionType(this)},get type(){return $a}},{},a)}(a),ab=b.GENERATOR_COMPREHENSION,bb=function(a){function b(a,c,d){$traceurRuntime.superConstructor(b).call(this,a),this.comprehensionList=c,this.expression=d}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformGeneratorComprehension(this)},visit:function(a){a.visitGeneratorComprehension(this)},get type(){return ab}},{},a)}(a),cb=b.GET_ACCESSOR,db=function(a){function b(a,c,d,e,f,g){$traceurRuntime.superConstructor(b).call(this,a),this.isStatic=c,this.name=d,this.typeAnnotation=e,this.annotations=f,this.body=g}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformGetAccessor(this)},visit:function(a){a.visitGetAccessor(this)},get type(){return cb}},{},a)}(a),eb=b.IDENTIFIER_EXPRESSION,fb=function(a){function b(a,c){$traceurRuntime.superConstructor(b).call(this,a),this.identifierToken=c}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformIdentifierExpression(this)},visit:function(a){a.visitIdentifierExpression(this)},get type(){return eb}},{},a)}(a),gb=b.IF_STATEMENT,hb=function(a){function b(a,c,d,e){$traceurRuntime.superConstructor(b).call(this,a),this.condition=c,this.ifClause=d,this.elseClause=e}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformIfStatement(this)},visit:function(a){a.visitIfStatement(this)},get type(){return gb}},{},a)}(a),ib=b.IMPORTED_BINDING,jb=function(a){function b(a,c){$traceurRuntime.superConstructor(b).call(this,a),this.binding=c}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformImportedBinding(this)},visit:function(a){a.visitImportedBinding(this)},get type(){return ib}},{},a)}(a),kb=b.IMPORT_CLAUSE_PAIR,lb=function(a){function b(a,c,d){$traceurRuntime.superConstructor(b).call(this,a),this.first=c,this.second=d}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformImportClausePair(this)},visit:function(a){a.visitImportClausePair(this)},get type(){return kb}},{},a)}(a),mb=b.IMPORT_DECLARATION,nb=function(a){function b(a,c,d){$traceurRuntime.superConstructor(b).call(this,a),this.importClause=c,this.moduleSpecifier=d}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformImportDeclaration(this)},visit:function(a){a.visitImportDeclaration(this)},get type(){return mb}},{},a)}(a),ob=b.IMPORT_SPECIFIER,pb=function(a){function b(a,c,d){$traceurRuntime.superConstructor(b).call(this,a),this.binding=c,this.name=d}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformImportSpecifier(this)},visit:function(a){a.visitImportSpecifier(this)},get type(){return ob}},{},a)}(a),qb=b.IMPORT_SPECIFIER_SET,rb=function(a){function b(a,c){$traceurRuntime.superConstructor(b).call(this,a),this.specifiers=c}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformImportSpecifierSet(this)},visit:function(a){a.visitImportSpecifierSet(this)},get type(){return qb}},{},a)}(a),sb=b.IMPORT_TYPE_CLAUSE,tb=function(a){function b(a,c){$traceurRuntime.superConstructor(b).call(this,a),this.clause=c}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformImportTypeClause(this)},visit:function(a){a.visitImportTypeClause(this)},get type(){return sb}},{},a)}(a),ub=b.INDEX_SIGNATURE,vb=function(a){function b(a,c,d,e){$traceurRuntime.superConstructor(b).call(this,a),this.name=c,this.indexType=d,this.typeAnnotation=e}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformIndexSignature(this)},visit:function(a){a.visitIndexSignature(this)},get type(){return ub}},{},a)}(a),wb=b.INTERFACE_DECLARATION,xb=function(a){function b(a,c,d,e,f){$traceurRuntime.superConstructor(b).call(this,a),this.name=c,this.typeParameters=d,this.extendsClause=e,this.objectType=f}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformInterfaceDeclaration(this)},visit:function(a){a.visitInterfaceDeclaration(this)},get type(){return wb}},{},a)}(a),yb=b.JSX_ATTRIBUTE,zb=function(a){function b(a,c,d){$traceurRuntime.superConstructor(b).call(this,a),this.name=c,this.value=d}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformJsxAttribute(this)},visit:function(a){a.visitJsxAttribute(this)},get type(){return yb}},{},a)}(a),Ab=b.JSX_ELEMENT,Bb=function(a){function b(a,c,d,e){$traceurRuntime.superConstructor(b).call(this,a),this.name=c,this.attributes=d,this.children=e}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformJsxElement(this)},visit:function(a){a.visitJsxElement(this)},get type(){return Ab}},{},a)}(a),Cb=b.JSX_ELEMENT_NAME,Db=function(a){function b(a,c){$traceurRuntime.superConstructor(b).call(this,a),this.names=c}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformJsxElementName(this)},visit:function(a){a.visitJsxElementName(this)},get type(){return Cb}},{},a)}(a),Eb=b.JSX_PLACEHOLDER,Fb=function(a){function b(a,c){$traceurRuntime.superConstructor(b).call(this,a),this.expression=c}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformJsxPlaceholder(this)},visit:function(a){a.visitJsxPlaceholder(this)},get type(){return Eb}},{},a)}(a),Gb=b.JSX_SPREAD_ATTRIBUTE,Hb=function(a){function b(a,c){$traceurRuntime.superConstructor(b).call(this,a),this.expression=c}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformJsxSpreadAttribute(this)},visit:function(a){a.visitJsxSpreadAttribute(this); },get type(){return Gb}},{},a)}(a),Ib=b.JSX_TEXT,Jb=function(a){function b(a,c){$traceurRuntime.superConstructor(b).call(this,a),this.value=c}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformJsxText(this)},visit:function(a){a.visitJsxText(this)},get type(){return Ib}},{},a)}(a),Kb=b.LABELLED_STATEMENT,Lb=function(a){function b(a,c,d){$traceurRuntime.superConstructor(b).call(this,a),this.name=c,this.statement=d}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformLabelledStatement(this)},visit:function(a){a.visitLabelledStatement(this)},get type(){return Kb}},{},a)}(a),Mb=b.LITERAL_EXPRESSION,Nb=function(a){function b(a,c){$traceurRuntime.superConstructor(b).call(this,a),this.literalToken=c}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformLiteralExpression(this)},visit:function(a){a.visitLiteralExpression(this)},get type(){return Mb}},{},a)}(a),Ob=b.LITERAL_PROPERTY_NAME,Pb=function(a){function b(a,c){$traceurRuntime.superConstructor(b).call(this,a),this.literalToken=c}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformLiteralPropertyName(this)},visit:function(a){a.visitLiteralPropertyName(this)},get type(){return Ob}},{},a)}(a),Qb=b.MEMBER_EXPRESSION,Rb=function(a){function b(a,c,d){$traceurRuntime.superConstructor(b).call(this,a),this.operand=c,this.memberName=d}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformMemberExpression(this)},visit:function(a){a.visitMemberExpression(this)},get type(){return Qb}},{},a)}(a),Sb=b.MEMBER_LOOKUP_EXPRESSION,Tb=function(a){function b(a,c,d){$traceurRuntime.superConstructor(b).call(this,a),this.operand=c,this.memberExpression=d}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformMemberLookupExpression(this)},visit:function(a){a.visitMemberLookupExpression(this)},get type(){return Sb}},{},a)}(a),Ub=b.METHOD,Vb=function(a){function b(a,c,d,e,f,g,h,i,j){$traceurRuntime.superConstructor(b).call(this,a),this.isStatic=c,this.functionKind=d,this.name=e,this.parameterList=f,this.typeAnnotation=g,this.annotations=h,this.body=i,this.debugName=j}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformMethod(this)},visit:function(a){a.visitMethod(this)},get type(){return Ub}},{},a)}(a),Wb=b.METHOD_SIGNATURE,Xb=function(a){function b(a,c,d,e){$traceurRuntime.superConstructor(b).call(this,a),this.name=c,this.optional=d,this.callSignature=e}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformMethodSignature(this)},visit:function(a){a.visitMethodSignature(this)},get type(){return Wb}},{},a)}(a),Yb=b.MODULE,Zb=function(a){function b(a,c,d){$traceurRuntime.superConstructor(b).call(this,a),this.scriptItemList=c,this.moduleName=d}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformModule(this)},visit:function(a){a.visitModule(this)},get type(){return Yb}},{},a)}(a),$b=b.MODULE_SPECIFIER,_b=function(a){function b(a,c){$traceurRuntime.superConstructor(b).call(this,a),this.token=c}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformModuleSpecifier(this)},visit:function(a){a.visitModuleSpecifier(this)},get type(){return $b}},{},a)}(a),ac=b.NAME_SPACE_EXPORT,bc=function(a){function b(a,c){$traceurRuntime.superConstructor(b).call(this,a),this.name=c}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformNameSpaceExport(this)},visit:function(a){a.visitNameSpaceExport(this)},get type(){return ac}},{},a)}(a),cc=b.NAME_SPACE_IMPORT,dc=function(a){function b(a,c){$traceurRuntime.superConstructor(b).call(this,a),this.binding=c}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformNameSpaceImport(this)},visit:function(a){a.visitNameSpaceImport(this)},get type(){return cc}},{},a)}(a),ec=b.NAMED_EXPORT,fc=function(a){function b(a,c,d){$traceurRuntime.superConstructor(b).call(this,a),this.exportClause=c,this.moduleSpecifier=d}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformNamedExport(this)},visit:function(a){a.visitNamedExport(this)},get type(){return ec}},{},a)}(a),gc=b.NEW_EXPRESSION,hc=function(a){function b(a,c,d){$traceurRuntime.superConstructor(b).call(this,a),this.operand=c,this.args=d}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformNewExpression(this)},visit:function(a){a.visitNewExpression(this)},get type(){return gc}},{},a)}(a),ic=b.OBJECT_LITERAL,jc=function(a){function b(a,c){$traceurRuntime.superConstructor(b).call(this,a),this.propertyNameAndValues=c}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformObjectLiteral(this)},visit:function(a){a.visitObjectLiteral(this)},get type(){return ic}},{},a)}(a),kc=b.OBJECT_PATTERN,lc=function(a){function b(a,c){$traceurRuntime.superConstructor(b).call(this,a),this.fields=c}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformObjectPattern(this)},visit:function(a){a.visitObjectPattern(this)},get type(){return kc}},{},a)}(a),mc=b.OBJECT_PATTERN_FIELD,nc=function(a){function b(a,c,d){$traceurRuntime.superConstructor(b).call(this,a),this.name=c,this.element=d}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformObjectPatternField(this)},visit:function(a){a.visitObjectPatternField(this)},get type(){return mc}},{},a)}(a),oc=b.OBJECT_TYPE,pc=function(a){function b(a,c){$traceurRuntime.superConstructor(b).call(this,a),this.typeMembers=c}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformObjectType(this)},visit:function(a){a.visitObjectType(this)},get type(){return oc}},{},a)}(a),qc=b.PAREN_EXPRESSION,rc=function(a){function b(a,c){$traceurRuntime.superConstructor(b).call(this,a),this.expression=c}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformParenExpression(this)},visit:function(a){a.visitParenExpression(this)},get type(){return qc}},{},a)}(a),sc=b.POSTFIX_EXPRESSION,tc=function(a){function b(a,c,d){$traceurRuntime.superConstructor(b).call(this,a),this.operand=c,this.operator=d}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformPostfixExpression(this)},visit:function(a){a.visitPostfixExpression(this)},get type(){return sc}},{},a)}(a),uc=b.PREDEFINED_TYPE,vc=function(a){function b(a,c){$traceurRuntime.superConstructor(b).call(this,a),this.typeToken=c}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformPredefinedType(this)},visit:function(a){a.visitPredefinedType(this)},get type(){return uc}},{},a)}(a),wc=b.SCRIPT,xc=function(a){function b(a,c,d){$traceurRuntime.superConstructor(b).call(this,a),this.scriptItemList=c,this.moduleName=d}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformScript(this)},visit:function(a){a.visitScript(this)},get type(){return wc}},{},a)}(a),yc=b.PROPERTY_NAME_ASSIGNMENT,zc=function(a){function b(a,c,d){$traceurRuntime.superConstructor(b).call(this,a),this.name=c,this.value=d}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformPropertyNameAssignment(this)},visit:function(a){a.visitPropertyNameAssignment(this)},get type(){return yc}},{},a)}(a),Ac=b.PROPERTY_NAME_SHORTHAND,Bc=function(a){function b(a,c){$traceurRuntime.superConstructor(b).call(this,a),this.name=c}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformPropertyNameShorthand(this)},visit:function(a){a.visitPropertyNameShorthand(this)},get type(){return Ac}},{},a)}(a),Cc=b.PROPERTY_VARIABLE_DECLARATION,Dc=function(a){function b(a,c,d,e,f,g){$traceurRuntime.superConstructor(b).call(this,a),this.isStatic=c,this.name=d,this.typeAnnotation=e,this.annotations=f,this.initializer=g}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformPropertyVariableDeclaration(this)},visit:function(a){a.visitPropertyVariableDeclaration(this)},get type(){return Cc}},{},a)}(a),Ec=b.PROPERTY_SIGNATURE,Fc=function(a){function b(a,c,d,e){$traceurRuntime.superConstructor(b).call(this,a),this.name=c,this.optional=d,this.typeAnnotation=e}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformPropertySignature(this)},visit:function(a){a.visitPropertySignature(this)},get type(){return Ec}},{},a)}(a),Gc=b.REST_PARAMETER,Hc=function(a){function b(a,c){$traceurRuntime.superConstructor(b).call(this,a),this.identifier=c}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformRestParameter(this)},visit:function(a){a.visitRestParameter(this)},get type(){return Gc}},{},a)}(a),Ic=b.RETURN_STATEMENT,Jc=function(a){function b(a,c){$traceurRuntime.superConstructor(b).call(this,a),this.expression=c}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformReturnStatement(this)},visit:function(a){a.visitReturnStatement(this)},get type(){return Ic}},{},a)}(a),Kc=b.SET_ACCESSOR,Lc=function(a){function b(a,c,d,e,f,g){$traceurRuntime.superConstructor(b).call(this,a),this.isStatic=c,this.name=d,this.parameterList=e,this.annotations=f,this.body=g}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformSetAccessor(this)},visit:function(a){a.visitSetAccessor(this)},get type(){return Kc}},{},a)}(a),Mc=b.SPREAD_EXPRESSION,Nc=function(a){function b(a,c){$traceurRuntime.superConstructor(b).call(this,a),this.expression=c}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformSpreadExpression(this)},visit:function(a){a.visitSpreadExpression(this)},get type(){return Mc}},{},a)}(a),Oc=b.SPREAD_PATTERN_ELEMENT,Pc=function(a){function b(a,c){$traceurRuntime.superConstructor(b).call(this,a),this.lvalue=c}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformSpreadPatternElement(this)},visit:function(a){a.visitSpreadPatternElement(this)},get type(){return Oc}},{},a)}(a),Qc=b.SUPER_EXPRESSION,Rc=function(a){function b(a){$traceurRuntime.superConstructor(b).call(this,a)}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformSuperExpression(this)},visit:function(a){a.visitSuperExpression(this)},get type(){return Qc}},{},a)}(a),Sc=b.SWITCH_STATEMENT,Tc=function(a){function b(a,c,d){$traceurRuntime.superConstructor(b).call(this,a),this.expression=c,this.caseClauses=d}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformSwitchStatement(this)},visit:function(a){a.visitSwitchStatement(this)},get type(){return Sc}},{},a)}(a),Uc=b.SYNTAX_ERROR_TREE,Vc=function(a){function b(a,c,d){$traceurRuntime.superConstructor(b).call(this,a),this.nextToken=c,this.message=d}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformSyntaxErrorTree(this)},visit:function(a){a.visitSyntaxErrorTree(this)},get type(){return Uc}},{},a)}(a),Wc=b.TEMPLATE_LITERAL_EXPRESSION,Xc=function(a){function b(a,c,d){$traceurRuntime.superConstructor(b).call(this,a),this.operand=c,this.elements=d}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformTemplateLiteralExpression(this)},visit:function(a){a.visitTemplateLiteralExpression(this)},get type(){return Wc}},{},a)}(a),Yc=b.TEMPLATE_LITERAL_PORTION,Zc=function(a){function b(a,c){$traceurRuntime.superConstructor(b).call(this,a),this.value=c}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformTemplateLiteralPortion(this)},visit:function(a){a.visitTemplateLiteralPortion(this)},get type(){return Yc}},{},a)}(a),$c=b.TEMPLATE_SUBSTITUTION,_c=function(a){function b(a,c){$traceurRuntime.superConstructor(b).call(this,a),this.expression=c}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformTemplateSubstitution(this)},visit:function(a){a.visitTemplateSubstitution(this)},get type(){return $c}},{},a)}(a),ad=b.THIS_EXPRESSION,bd=function(a){function b(a){$traceurRuntime.superConstructor(b).call(this,a)}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformThisExpression(this)},visit:function(a){a.visitThisExpression(this)},get type(){return ad}},{},a)}(a),cd=b.THROW_STATEMENT,dd=function(a){function b(a,c){$traceurRuntime.superConstructor(b).call(this,a),this.value=c}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformThrowStatement(this)},visit:function(a){a.visitThrowStatement(this)},get type(){return cd}},{},a)}(a),ed=b.TRY_STATEMENT,fd=function(a){function b(a,c,d,e){$traceurRuntime.superConstructor(b).call(this,a),this.body=c,this.catchBlock=d,this.finallyBlock=e}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformTryStatement(this)},visit:function(a){a.visitTryStatement(this)},get type(){return ed}},{},a)}(a),gd=b.TYPE_ALIAS_DECLARATION,hd=function(a){function b(a,c,d){$traceurRuntime.superConstructor(b).call(this,a),this.name=c,this.value=d}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformTypeAliasDeclaration(this)},visit:function(a){a.visitTypeAliasDeclaration(this)},get type(){return gd}},{},a)}(a),id=b.TYPE_ARGUMENTS,jd=function(a){function b(a,c){$traceurRuntime.superConstructor(b).call(this,a),this.args=c}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformTypeArguments(this)},visit:function(a){a.visitTypeArguments(this)},get type(){return id}},{},a)}(a),kd=b.TYPE_NAME,ld=function(a){function b(a,c,d){$traceurRuntime.superConstructor(b).call(this,a),this.moduleName=c,this.name=d}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformTypeName(this)},visit:function(a){a.visitTypeName(this)},get type(){return kd}},{},a)}(a),md=b.TYPE_PARAMETER,nd=function(a){function b(a,c,d){$traceurRuntime.superConstructor(b).call(this,a),this.identifierToken=c,this.extendsType=d}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformTypeParameter(this)},visit:function(a){a.visitTypeParameter(this)},get type(){return md}},{},a)}(a),od=b.TYPE_PARAMETERS,pd=function(a){function b(a,c){$traceurRuntime.superConstructor(b).call(this,a),this.parameters=c}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformTypeParameters(this)},visit:function(a){a.visitTypeParameters(this)},get type(){return od}},{},a)}(a),qd=b.TYPE_REFERENCE,rd=function(a){function b(a,c,d){$traceurRuntime.superConstructor(b).call(this,a),this.typeName=c,this.args=d}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformTypeReference(this)},visit:function(a){a.visitTypeReference(this)},get type(){return qd}},{},a)}(a),sd=b.UNARY_EXPRESSION,td=function(a){function b(a,c,d){$traceurRuntime.superConstructor(b).call(this,a),this.operator=c,this.operand=d}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformUnaryExpression(this)},visit:function(a){a.visitUnaryExpression(this)},get type(){return sd}},{},a)}(a),ud=b.UNION_TYPE,vd=function(a){function b(a,c){$traceurRuntime.superConstructor(b).call(this,a),this.types=c}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformUnionType(this)},visit:function(a){a.visitUnionType(this)},get type(){return ud}},{},a)}(a),wd=b.VARIABLE_DECLARATION,xd=function(a){function b(a,c,d,e){$traceurRuntime.superConstructor(b).call(this,a),this.lvalue=c,this.typeAnnotation=d,this.initializer=e}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformVariableDeclaration(this)},visit:function(a){a.visitVariableDeclaration(this)},get type(){return wd}},{},a)}(a),yd=b.VARIABLE_DECLARATION_LIST,zd=function(a){function b(a,c,d){$traceurRuntime.superConstructor(b).call(this,a),this.declarationType=c,this.declarations=d}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformVariableDeclarationList(this)},visit:function(a){a.visitVariableDeclarationList(this)},get type(){return yd}},{},a)}(a),Ad=b.VARIABLE_STATEMENT,Bd=function(a){function b(a,c){$traceurRuntime.superConstructor(b).call(this,a),this.declarations=c}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformVariableStatement(this)},visit:function(a){a.visitVariableStatement(this)},get type(){return Ad}},{},a)}(a),Cd=b.WHILE_STATEMENT,Dd=function(a){function b(a,c,d){$traceurRuntime.superConstructor(b).call(this,a),this.condition=c,this.body=d}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformWhileStatement(this)},visit:function(a){a.visitWhileStatement(this)},get type(){return Cd}},{},a)}(a),Ed=b.WITH_STATEMENT,Fd=function(a){function b(a,c,d){$traceurRuntime.superConstructor(b).call(this,a),this.expression=c,this.body=d}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformWithStatement(this)},visit:function(a){a.visitWithStatement(this)},get type(){return Ed}},{},a)}(a),Gd=b.YIELD_EXPRESSION,Hd=function(a){function b(a,c,d){$traceurRuntime.superConstructor(b).call(this,a),this.expression=c,this.isYieldFor=d}return $traceurRuntime.createClass(b,{transform:function(a){return a.transformYieldExpression(this)},visit:function(a){a.visitYieldExpression(this)},get type(){return Gd}},{},a)}(a);return{get Annotation(){return d},get AnonBlock(){return f},get ArgumentList(){return h},get ArrayComprehension(){return j},get ArrayLiteral(){return l},get ArrayPattern(){return n},get ArrayType(){return p},get ArrowFunction(){return r},get AssignmentElement(){return t},get AwaitExpression(){return v},get BinaryExpression(){return x},get BindingElement(){return z},get BindingIdentifier(){return B},get Block(){return D},get BreakStatement(){return F},get CallExpression(){return H},get CallSignature(){return J},get CaseClause(){return L},get Catch(){return N},get ClassDeclaration(){return P},get ClassExpression(){return R},get CommaExpression(){return T},get ComprehensionFor(){return V},get ComprehensionIf(){return X},get ComputedPropertyName(){return Z},get ConditionalExpression(){return _},get ConstructSignature(){return ba},get ConstructorType(){return da},get ContinueStatement(){return fa},get CoverFormals(){return ha},get CoverInitializedName(){return ja},get DebuggerStatement(){return la},get DefaultClause(){return na},get DoWhileStatement(){return pa},get EmptyStatement(){return ra},get ExportDeclaration(){return ta},get ExportDefault(){return va},get ExportSpecifier(){return xa},get ExportSpecifierSet(){return za},get ExportStar(){return Ba},get ExpressionStatement(){return Da},get Finally(){return Fa},get ForInStatement(){return Ha},get ForOfStatement(){return Ja},get ForOnStatement(){return La},get ForStatement(){return Na},get FormalParameter(){return Pa},get FormalParameterList(){return Ra},get ForwardDefaultExport(){return Ta},get FunctionBody(){return Va},get FunctionDeclaration(){return Xa},get FunctionExpression(){return Za},get FunctionType(){return _a},get GeneratorComprehension(){return bb},get GetAccessor(){return db},get IdentifierExpression(){return fb},get IfStatement(){return hb},get ImportedBinding(){return jb},get ImportClausePair(){return lb},get ImportDeclaration(){return nb},get ImportSpecifier(){return pb},get ImportSpecifierSet(){return rb},get ImportTypeClause(){return tb},get IndexSignature(){return vb},get InterfaceDeclaration(){return xb},get JsxAttribute(){return zb},get JsxElement(){return Bb},get JsxElementName(){return Db},get JsxPlaceholder(){return Fb},get JsxSpreadAttribute(){return Hb},get JsxText(){return Jb},get LabelledStatement(){return Lb},get LiteralExpression(){return Nb},get LiteralPropertyName(){return Pb},get MemberExpression(){return Rb},get MemberLookupExpression(){return Tb},get Method(){return Vb},get MethodSignature(){return Xb},get Module(){return Zb},get ModuleSpecifier(){return _b},get NameSpaceExport(){return bc},get NameSpaceImport(){return dc},get NamedExport(){return fc},get NewExpression(){return hc},get ObjectLiteral(){return jc},get ObjectPattern(){return lc},get ObjectPatternField(){return nc},get ObjectType(){return pc},get ParenExpression(){return rc},get PostfixExpression(){return tc},get PredefinedType(){return vc},get Script(){return xc},get PropertyNameAssignment(){return zc},get PropertyNameShorthand(){return Bc},get PropertyVariableDeclaration(){return Dc},get PropertySignature(){return Fc},get RestParameter(){return Hc},get ReturnStatement(){return Jc},get SetAccessor(){return Lc},get SpreadExpression(){return Nc},get SpreadPatternElement(){return Pc},get SuperExpression(){return Rc},get SwitchStatement(){return Tc},get SyntaxErrorTree(){return Vc},get TemplateLiteralExpression(){return Xc},get TemplateLiteralPortion(){return Zc},get TemplateSubstitution(){return _c},get ThisExpression(){return bd},get ThrowStatement(){return dd},get TryStatement(){return fd},get TypeAliasDeclaration(){return hd},get TypeArguments(){return jd},get TypeName(){return ld},get TypeParameter(){return nd},get TypeParameters(){return pd},get TypeReference(){return rd},get UnaryExpression(){return td},get UnionType(){return vd},get VariableDeclaration(){return xd},get VariableDeclarationList(){return zd},get VariableStatement(){return Bd},get WhileStatement(){return Dd},get WithStatement(){return Fd},get YieldExpression(){return Hd}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/codegeneration/ParseTreeTransformer.js",[],function(){"use strict";var a=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTrees.js","traceur@0.0.108/src/codegeneration/ParseTreeTransformer.js")),b=a.Annotation,c=a.AnonBlock,d=a.ArgumentList,e=a.ArrayComprehension,f=a.ArrayLiteral,g=a.ArrayPattern,h=a.ArrayType,i=a.ArrowFunction,j=a.AssignmentElement,k=a.AwaitExpression,l=a.BinaryExpression,m=a.BindingElement,n=(a.BindingIdentifier,a.Block),o=(a.BreakStatement,a.CallExpression),p=a.CallSignature,q=a.CaseClause,r=a.Catch,s=a.ClassDeclaration,t=a.ClassExpression,u=a.CommaExpression,v=a.ComprehensionFor,w=a.ComprehensionIf,x=a.ComputedPropertyName,y=a.ConditionalExpression,z=a.ConstructSignature,A=a.ConstructorType,B=(a.ContinueStatement,a.CoverFormals),C=a.CoverInitializedName,D=(a.DebuggerStatement,a.DefaultClause),E=a.DoWhileStatement,F=(a.EmptyStatement,a.ExportDeclaration),G=a.ExportDefault,H=(a.ExportSpecifier,a.ExportSpecifierSet),I=(a.ExportStar,a.ExpressionStatement),J=a.Finally,K=a.ForInStatement,L=a.ForOfStatement,M=a.ForOnStatement,N=a.ForStatement,O=a.FormalParameter,P=a.FormalParameterList,Q=(a.ForwardDefaultExport,a.FunctionBody),R=a.FunctionDeclaration,S=a.FunctionExpression,T=a.FunctionType,U=a.GeneratorComprehension,V=a.GetAccessor,W=(a.IdentifierExpression,a.IfStatement),X=a.ImportedBinding,Y=a.ImportClausePair,Z=a.ImportDeclaration,$=a.ImportSpecifier,_=a.ImportSpecifierSet,aa=a.ImportTypeClause,ba=a.IndexSignature,ca=a.InterfaceDeclaration,da=a.JsxAttribute,ea=a.JsxElement,fa=(a.JsxElementName,a.JsxPlaceholder),ga=a.JsxSpreadAttribute,ha=(a.JsxText,a.LabelledStatement),ia=(a.LiteralExpression,a.LiteralPropertyName,a.MemberExpression),ja=a.MemberLookupExpression,ka=a.Method,la=a.MethodSignature,ma=a.Module,na=(a.ModuleSpecifier,a.NameSpaceExport,a.NameSpaceImport),oa=a.NamedExport,pa=a.NewExpression,qa=a.ObjectLiteral,ra=a.ObjectPattern,sa=a.ObjectPatternField,ta=a.ObjectType,ua=a.ParenExpression,va=a.PostfixExpression,wa=(a.PredefinedType,a.Script),xa=a.PropertyNameAssignment,ya=(a.PropertyNameShorthand,a.PropertyVariableDeclaration),za=a.PropertySignature,Aa=a.RestParameter,Ba=a.ReturnStatement,Ca=a.SetAccessor,Da=a.SpreadExpression,Ea=a.SpreadPatternElement,Fa=(a.SuperExpression,a.SwitchStatement),Ga=(a.SyntaxErrorTree,a.TemplateLiteralExpression),Ha=(a.TemplateLiteralPortion,a.TemplateSubstitution),Ia=(a.ThisExpression,a.ThrowStatement),Ja=a.TryStatement,Ka=a.TypeAliasDeclaration,La=a.TypeArguments,Ma=a.TypeName,Na=a.TypeParameter,Oa=a.TypeParameters,Pa=a.TypeReference,Qa=a.UnaryExpression,Ra=a.UnionType,Sa=a.VariableDeclaration,Ta=a.VariableDeclarationList,Ua=a.VariableStatement,Va=a.WhileStatement,Wa=a.WithStatement,Xa=a.YieldExpression,Ya=function(){function a(){}return $traceurRuntime.createClass(a,{transformAny:function(a){return null===a?null:a.transform(this)},transformList:function(a){for(var b,d=null,e=0;e=this.value.length-1?{value:void 0,done:!0}:{value:this.value[this.index],done:!1}},configurable:!0,enumerable:!0,writable:!0}),Object.defineProperty(b,"parse",{value:function(){if(-1===this.value.indexOf("\\"))return this.value.slice(1,-1);var a="",b=!0,c=!1,d=void 0;try{for(var e=void 0,f=this[Symbol.iterator]();!(b=(e=f.next()).done);b=!0){var g=e.value;a+="\\"===g?this.parseEscapeSequence():g}}catch(h){c=!0,d=h}finally{try{b||null==f["return"]||f["return"]()}finally{if(c)throw d}}return a},configurable:!0,enumerable:!0,writable:!0}),Object.defineProperty(b,"parseEscapeSequence",{value:function(){var a=this.next().value;switch(a){case"\n":case"\r":case"\u2028":case"\u2029":return"";case"0":return"\x00";case"b":return"\b";case"f":return"\f";case"n":return"\n";case"r":return"\r";case"t":return" ";case"v":return"\x0B";case"x":return String.fromCharCode(parseInt(this.next().value+this.next().value,16));case"u":var b=this.next().value;if("{"===b){for(var c="";"}"!==(b=this.next().value);)c+=b;var d=parseInt(c,16);if(65535>=d)return String.fromCharCode(d);var e=Math.floor((d-65536)/1024)+55296,f=(d-65536)%1024+56320;return String.fromCharCode(e,f)}return String.fromCharCode(parseInt(b+this.next().value+this.next().value+this.next().value,16));default:if(Number(a)<8)throw new Error("Octal literals are not supported");return a}},configurable:!0,enumerable:!0,writable:!0}),b),{})}(),g=function(a){function b(a,c,d){$traceurRuntime.superConstructor(b).call(this,a,d),this.value=c}return $traceurRuntime.createClass(b,{toString:function(){return this.value},get processedValue(){switch(this.type){case c:return null;case d:var a=this.value;if(48===a.charCodeAt(0))switch(a.charCodeAt(1)){case 66:case 98:return parseInt(this.value.slice(2),2);case 79:case 111:return parseInt(this.value.slice(2),8)}return Number(this.value);case e:var b=new f(this.value);return b.parse();default:throw new Error("Not implemented")}}},{},a)}(a);return{get LiteralToken(){return g}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/util/assert.js",[],function(){"use strict";function a(a){if(!a&&$traceurRuntime.options.debug)throw Error("Assertion failed")}return{get assert(){return a}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/codegeneration/ParseTreeFactory.js",[],function(){"use strict";function a(a){return new Ka(a,null)}function b(a){return new ya(null,a)}function c(a){return new za(Qa,JSON.stringify(a),null)}function d(a){return new Ka(a?Ra:Na,null)}function e(){return new za(Oa,"null",null)}function f(a){return new za(Pa,String(a),null)}function g(){return new qb(null,[])}function h(a){var b=o(a);return new pb(null,new Xa(null,b,null),null,[])}function i(a){return new Va(null,a)}function j(){return i([])}function k(a){return new Wa(null,a)}function l(){return k([])}function m(b,c){return new Ya(null,b,a(Ma),c)}function n(a,b,c){return new Ya(null,a,b,c)}function o(a){if("string"==typeof a)a=b(a);else{if(a.type===Ca.BINDING_IDENTIFIER)return a;if(a.type===Ca.IDENTIFIER_EXPRESSION)return new Za(a.location,a.identifierToken)}return new Za(null,a)}function p(a){var b=o(a);return new vb(b.location,b)}function q(){return new jb(null)}function r(){return s([])}function s(a){return new $a(null,a)}function t(a){return new rb(null,a)}function u(a,b){return Ta("FUNCTION_BODY"===a.type),y(fa(O(g(),a)),b)}function v(a){return Ta("FUNCTION_BODY"===a.type),w(fa(O(g(),a)))}function w(a){var b=void 0!==arguments[1]?arguments[1]:j();return new ab(null,a,b)}function x(){var a=void 0!==arguments[0]?arguments[0]:null;return new _a(null,a)}function y(a,b){return w(Y(a,Ea),i([b]))}function z(a,b){return new bb(null,a,b)}function A(a,b){return a=o(a),new cb(null,a,b)}function B(a,b,c){return new db(null,a,b,c,[])}function C(a){return new eb(null,a)}function D(a,b,c){return new fb(null,a,b,c)}function E(){var a=void 0!==arguments[0]?arguments[0]:null;return new gb(null,a)}function F(a){return new hb(null,a)}function G(a,b){return new ib(null,a,b)}function H(a,b){return J(m(a,b))}function I(a){var b=arguments[1];return J(w(a,b))}function J(a){return new kb(null,a)}function K(a){return new lb(null,a)}function L(a,b,c){return new nb(null,a,b,c)}function M(a,b,c){return new mb(null,a,b,c)}function N(a,b,c,d){return new ob(null,a,b,c,d)}function O(a,b){return Ta("FUNCTION_BODY"===b.type),new sb(null,null,!1,a,null,[],b)}function P(a){return"string"==typeof a?a=b(a):a instanceof Za&&(a=a.identifierToken),new tb(null,a)}function Q(){return P(Ja)}function R(a,b){var c=void 0!==arguments[2]?arguments[2]:null;return new ub(null,a,b,c)}function S(a){return new wb(null,c(a))}function T(a){return new wb(null,d(a))}function U(){return T(!0)}function V(){return T(!1)}function W(){return new wb(null,e())}function X(a){return new wb(null,f(a))}function Y(a,c){for(var d=[],e=2;e=0;b--)a.releaseTempName(this.identifiers[b])}},{})}(),t=function(){function a(a){this.thisName=null,this.argumentName=null,this.tempVarStatements=[],this.declarationType_=a.blockBinding&&!a.transformOptions.blockBinding?h:i}return $traceurRuntime.createClass(a,{push:function(a){this.tempVarStatements.push(a)},pop:function(){return this.tempVarStatements.pop()},release:function(a){for(var b=this.tempVarStatements.length-1;b>=0;b--)a.releaseTempName(this.tempVarStatements[b].name)},isEmpty:function(){return!this.tempVarStatements.length},createVariableStatement:function(){for(var a=[],b=new f,c=0;ca)return Ub[a];switch(a){case 160:case 65279:case 8232:case 8233:return!0}return!1}function b(a){switch(a){case 10:case 13:case 8232:case 8233:return!0}return!1}function c(a){return a>=48&&57>=a}function d(a){return 128>a&&Wb[a]}function e(a){return 48===a||49===a}function f(a){return a>=48&&55>=a}function g(a){return 128>a?Yb[a]:i(Ka,a)}function h(a){return 128>a?$b[a]:i(Ka,a)||i(Ja,a)||8204===a||8205===a}function i(a,b){for(var c=0;ce;e++)if(b(bc.charCodeAt(e)))return null;return a}function R(a){return T().type===a}function S(a){return W().type===a}function T(){return dc||(dc=ca())}function U(){return T().type}function V(){return T().location}function W(){return dc||(dc=ca()),fc||(fc=ca()),fc}function X(){for(;!xa()&&Y();)ya()}function Y(){return a(gc)}function Z(){for(;$(););}function $(){X();var a=gc;if(47===a)switch(a=bc.charCodeAt(ac+1)){case 47:return aa(),!0;case 42:return ba(),!0}return!1}function _(a,b){kc.commentCallback&&jc.handleComment(hc.getSourceRange(a,b))}function aa(){var a=ac;for(ac+=2;!xa()&&!b(bc.charCodeAt(ac++)););za(),_(a,ac)}function ba(){var a=ac,b=bc.indexOf("*/",ac+2);ac=-1!==b?b+2:cc,za(),_(a,ac)}function ca(){Z();var a=ac;if(xa())return ga(bb,a);var b=gc;switch(ya(),b){case 123:return ga(sb,a);case 125:return ga(Xa,a);case 40:return ga(tb,a);case 41:return ga(Ya,a);case 91:return ga(ub,a);case 93:return ga(Za,a);case 46:switch(gc){case 46:if(46===bc.charCodeAt(ac+1))return ya(),ya(),ga(ab,a);break;default:if(c(gc))return da(a)}return ga(yb,a);case 59:return ga(Gb,a);case 44:return ga(_a,a);case 126:return ga(Rb,a);case 63:return ga(Cb,a);case 58:return ga($a,a);case 60:switch(gc){case 60:return ya(),61===gc?(ya(),ga(ib,a)):ga(hb,a);case 61:return ya(),ga(jb,a);default:return ga(rb,a)}case 62:switch(gc){case 62:switch(ya(),gc){case 61:return ya(),ga(Fb,a);case 62:return ya(),61===gc?(ya(),ga(Tb,a)):ga(Sb,a);default:return ga(Eb,a)}case 61:return ya(),ga(gb,a);default:return ga(Wa,a)}case 61:return 61===gc?(ya(),61===gc?(ya(),ga(eb,a)):ga(db,a)):62===gc&&kc.arrowFunctions?(ya(),ga(Pa,a)):ga(cb,a);case 33:return 61===gc?(ya(),61===gc?(ya(),ga(pb,a)):ga(ob,a)):ga(Ra,a);case 42:return 61===gc?(ya(),ga(Kb,a)):42===gc&&kc.exponentiation?(ya(),61===gc?(ya(),ga(Mb,a)):ga(Lb,a)):ga(Jb,a);case 37:return 61===gc?(ya(),ga(xb,a)):ga(wb,a);case 94:return 61===gc?(ya(),ga(Va,a)):ga(Ua,a);case 47:return 61===gc?(ya(),ga(Ib,a)):ga(Hb,a);case 43:switch(gc){case 43:return ya(),ga(Bb,a);case 61:return ya(),ga(Ab,a);default:return ga(zb,a)}case 45:switch(gc){case 45:return ya(),ga(mb,a);case 61:return ya(),ga(lb,a);default:return ga(kb,a)}case 38:switch(gc){case 38:return ya(),ga(Oa,a);case 61:return ya(),ga(Na,a);default:return ga(Ma,a)}case 124:switch(gc){case 124:return ya(),ga(vb,a);case 61:return ya(),ga(Ta,a);default:return ga(Sa,a)}case 96:return E(a);case 64:return ga(Qa,a);case 48:return fa(a);case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return ea(a);case 34:case 39:return ja(a,b);default:return ia(a,b)}}function da(a){return ta(),sa(a)}function ea(a){return ta(),ra(a)}function fa(a){switch(gc){case 46:return ra(a);case 88:case 120:return ya(),d(gc)||Aa("Hex Integer Literal must contain at least one digit",a),ua(),new Ea(qb,ka(a),t(a));case 66:case 98:if(!kc.numericLiterals)break;return ya(),e(gc)||Aa("Binary Integer Literal must contain at least one digit",a),va(),new Ea(qb,ka(a),t(a));case 79:case 111:if(!kc.numericLiterals)break;return ya(),f(gc)||Aa("Octal Integer Literal must contain at least one digit",a),wa(),new Ea(qb,ka(a),t(a));case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return ea(a)}return new Ea(qb,ka(a),t(a))}function ga(a,b){return new Ga(a,t(b))}function ha(){var a=ac;return 117===gc&&(ya(),pa()&&pa()&&pa()&&pa())?parseInt(ka(a+1),16):(Aa("Invalid unicode escape sequence in identifier",a-1),0)}function ia(a,b){var c;if(92===b&&(b=ha(),c=[b]),!g(b))return Aa("Character code '"+b+"' is not a valid identifier start char",a),ga(fb,a);for(;;)if(b=gc,h(b))ya();else{if(92!==b)break;if(ya(),b=ha(),c||(c=[]),c.push(b), !h(b))return ga(fb,a)}var d=bc.slice(a,ac),e=Ha(d);if(e)return new Da(d,e,t(a));if(c){var f=0;d=d.replace(/\\u..../g,function(a){return String.fromCharCode(c[f++])})}return new Ba(t(a),d)}function ja(a,b){for(;la(b);)if(!ma())return new Ea(Nb,ka(a),t(a));return gc!==b?Aa("Unterminated String Literal",a):ya(),new Ea(Nb,ka(a),t(a))}function ka(a){return bc.substring(a,ac)}function la(a){return!xa()&&gc!==a&&!b(gc)}function ma(){return 92===gc?na():(ya(),!0)}function na(){if(ya(),xa())return Aa("Unterminated string literal escape sequence"),!1;if(b(gc))return qa(),!0;var a=gc;switch(ya(),a){case 39:case 34:case 92:case 98:case 102:case 110:case 114:case 116:case 118:case 48:return!0;case 120:return pa()&&pa();case 117:return oa();default:return!0}}function oa(){if(123===gc&&kc.unicodeEscapeSequences){ya();var a=ac;if(!d(gc))return Aa("Hex digit expected",a),!1;if(ua(),125!==gc)return Aa("Hex digit expected",a),!1;var b=ka(a,ac);return parseInt(b,16)>1114111?(Aa("The code point in a Unicode escape sequence cannot exceed 10FFFF",a),!1):(ya(),!0)}return pa()&&pa()&&pa()&&pa()}function pa(){return d(gc)?(ya(),!0):(Aa("Hex digit expected"),!1)}function qa(){var a=gc;ya(),13===a&&10===gc&&ya()}function ra(a){return 46===gc&&(ya(),ta()),sa(a)}function sa(a){switch(gc){case 101:case 69:switch(ya(),gc){case 43:case 45:ya()}c(gc)||Aa("Exponent part must contain at least one digit",a),ta()}return new Ea(qb,ka(a),t(a))}function ta(){for(;c(gc);)ya()}function ua(){for(;d(gc);)ya()}function va(){for(;e(gc);)ya()}function wa(){for(;f(gc);)ya()}function xa(){return ac===cc}function ya(){ac++,za()}function za(){gc=bc.charCodeAt(ac)}function Aa(a){var b=void 0!==arguments[1]?arguments[1]:ac,c=void 0!==arguments[2]?arguments[2]:ac,d=r(b),e=r(c),f=new Fa(d,e);ic.reportError(f,a)}for(var Ba=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./IdentifierToken.js","traceur@0.0.108/src/syntax/Scanner.js")).IdentifierToken,Ca=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./JsxIdentifierToken.js","traceur@0.0.108/src/syntax/Scanner.js")).JsxIdentifierToken,Da=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./KeywordToken.js","traceur@0.0.108/src/syntax/Scanner.js")).KeywordToken,Ea=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./LiteralToken.js","traceur@0.0.108/src/syntax/Scanner.js")).LiteralToken,Fa=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../util/SourceRange.js","traceur@0.0.108/src/syntax/Scanner.js")).SourceRange,Ga=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./Token.js","traceur@0.0.108/src/syntax/Scanner.js")).Token,Ha=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./Keywords.js","traceur@0.0.108/src/syntax/Scanner.js")).getKeywordType,Ia=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./unicode-tables.js","traceur@0.0.108/src/syntax/Scanner.js")),Ja=Ia.idContinueTable,Ka=Ia.idStartTable,La=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./TokenType.js","traceur@0.0.108/src/syntax/Scanner.js")),Ma=La.AMPERSAND,Na=La.AMPERSAND_EQUAL,Oa=La.AND,Pa=La.ARROW,Qa=La.AT,Ra=La.BANG,Sa=La.BAR,Ta=La.BAR_EQUAL,Ua=La.CARET,Va=La.CARET_EQUAL,Wa=La.CLOSE_ANGLE,Xa=La.CLOSE_CURLY,Ya=La.CLOSE_PAREN,Za=La.CLOSE_SQUARE,$a=La.COLON,_a=La.COMMA,ab=La.DOT_DOT_DOT,bb=La.END_OF_FILE,cb=La.EQUAL,db=La.EQUAL_EQUAL,eb=La.EQUAL_EQUAL_EQUAL,fb=La.ERROR,gb=La.GREATER_EQUAL,hb=La.LEFT_SHIFT,ib=La.LEFT_SHIFT_EQUAL,jb=La.LESS_EQUAL,kb=La.MINUS,lb=La.MINUS_EQUAL,mb=La.MINUS_MINUS,nb=La.NO_SUBSTITUTION_TEMPLATE,ob=La.NOT_EQUAL,pb=La.NOT_EQUAL_EQUAL,qb=La.NUMBER,rb=La.OPEN_ANGLE,sb=La.OPEN_CURLY,tb=La.OPEN_PAREN,ub=La.OPEN_SQUARE,vb=La.OR,wb=La.PERCENT,xb=La.PERCENT_EQUAL,yb=La.PERIOD,zb=La.PLUS,Ab=La.PLUS_EQUAL,Bb=La.PLUS_PLUS,Cb=La.QUESTION,Db=La.REGULAR_EXPRESSION,Eb=La.RIGHT_SHIFT,Fb=La.RIGHT_SHIFT_EQUAL,Gb=La.SEMI_COLON,Hb=La.SLASH,Ib=La.SLASH_EQUAL,Jb=La.STAR,Kb=La.STAR_EQUAL,Lb=La.STAR_STAR,Mb=La.STAR_STAR_EQUAL,Nb=La.STRING,Ob=La.TEMPLATE_HEAD,Pb=La.TEMPLATE_MIDDLE,Qb=La.TEMPLATE_TAIL,Rb=La.TILDE,Sb=La.UNSIGNED_RIGHT_SHIFT,Tb=La.UNSIGNED_RIGHT_SHIFT_EQUAL,Ub=[],Vb=0;128>Vb;Vb++)Ub[Vb]=Vb>=9&&13>=Vb||32===Vb;for(var Wb=[],Xb=0;128>Xb;Xb++)Wb[Xb]=Xb>=48&&57>=Xb||Xb>=65&&70>=Xb||Xb>=97&&102>=Xb;for(var Yb=[],Zb=0;128>Zb;Zb++)Yb[Zb]=36===Zb||Zb>=65&&90>=Zb||95===Zb||Zb>=97&&122>=Zb;for(var $b=[],_b=0;128>_b;_b++)$b[_b]=g(_b)||c(_b);var ac,bc,cc,dc,ec,fc,gc,hc,ic,jc,kc;return{get isWhitespace(){return a},get isLineTerminator(){return b},get isIdentifierPart(){return h},get init(){return l},get getLastToken(){return m},get nextRegularExpressionLiteralToken(){return n},get nextTemplateLiteralToken(){return o},get setIndex(){return p},get getPosition(){return q},get nextCloseAngle(){return s},get peekJsxToken(){return H},get nextJsxToken(){return I},get nextJsxTextToken(){return L},get nextToken(){return P},get peekTokenNoLineTerminator(){return Q},get peek(){return R},get peekLookahead(){return S},get peekToken(){return T},get peekType(){return U},get peekLocation(){return V},get peekTokenLookahead(){return W},get isAtEnd(){return xa}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/semantics/ConstructorValidator.js",[],function(){"use strict";function a(a,b){var c=new d(b);return c.visitAny(a),c.hasError?!1:c.found?!0:(b.reportError(a.location,"Derived constructor must call super()"),!1)}var b=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTreeType.js","traceur@0.0.108/src/semantics/ConstructorValidator.js")).SUPER_EXPRESSION,c=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../codegeneration/FindVisitor.js","traceur@0.0.108/src/semantics/ConstructorValidator.js")).FindVisitor,d=function(a){function c(a){$traceurRuntime.superConstructor(c).call(this),this.reporter_=a,this.hasError=!1}return $traceurRuntime.createClass(c,{visitClassExpression:function(a){this.visitAny(a.superClass)},visitClassDeclaration:function(a){this.visitAny(a.superClass)},visitThisExpression:function(a){this.reportError_(a.location,"this")},visitCallExpression:function(a){return a.operand.type===b?(this.visitAny(a.args),void(this.found=!0)):void $traceurRuntime.superGet(this,c.prototype,"visitCallExpression").call(this,a)},visitSuperExpression:function(a){this.reportError_(a.location,"super property")},reportError_:function(a,b){this.reporter_.reportError(a,"'"+b+"' is not allowed before super()"),this.hasError=!0,this.found=!0}},{},a)}(c);return{get validateConstructor(){return a}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/staticsemantics/validateParameters.js",[],function(){"use strict";var a=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/ParseTreeVisitor.js","traceur@0.0.108/src/staticsemantics/validateParameters.js")).ParseTreeVisitor,b=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../util/StringSet.js","traceur@0.0.108/src/staticsemantics/validateParameters.js")).StringSet,c=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/Keywords.js","traceur@0.0.108/src/staticsemantics/validateParameters.js")).isStrictKeyword,d=function(a){function d(a,c){$traceurRuntime.superConstructor(d).call(this),this.reporter_=c,this.names_=new b,this.errors_=[],this.reportStrictKeywords_=a,this.reportDuplicates_=a}return $traceurRuntime.createClass(d,{visitBindingIdentifier:function(a){var b=a.identifierToken.toString();this.reportStrictKeywords_&&(c(b)||"eval"===b||"arguments"===b)&&this.reporter_.reportError(a.location,b+" is a reserved identifier"),this.names_.has(b)&&this.maybeReportDuplicateError_(b,a.location),this.names_.add(b)},visitBindingElement:function(a){null!==a.initializer&&this.reportEarlierErrors_(),this.visitAny(a.binding)},visitRestParameter:function(a){this.reportEarlierErrors_(),this.visitAny(a.identifier)},visitFormalParameter:function(a){this.visitAny(a.parameter)},visitArrayPattern:function(a){this.reportEarlierErrors_(),$traceurRuntime.superGet(this,d.prototype,"visitArrayPattern").call(this,a)},visitObjectPattern:function(a){this.reportEarlierErrors_(),$traceurRuntime.superGet(this,d.prototype,"visitObjectPattern").call(this,a)},reportDuplicateError_:function(a,b){this.reporter_.reportError(b,"Duplicate parameter name "+a)},maybeReportDuplicateError_:function(a,b){this.reportDuplicates_?this.reportDuplicateError_(a,b):this.errors_.push(a,b)},reportEarlierErrors_:function(){if(!this.reportDuplicates_){this.reportDuplicates_=!0;for(var a=0;a1||a(e)?this.parseForStatement2_(b,d):(c=W(),c===Ua?this.parseForInStatement_(b,d):this.peekOf_()?this.parseForOfStatement_(b,d):this.allowForOn_&&this.peekOn_()?this.parseForOnStatement_(b,d):(this.checkInitializers_(d),this.parseForStatement2_(b,d)))}if(c===xb)return this.parseForStatement2_(b,null);var f=this.coverInitializedNameCount_,g=this.parseExpressionAllowPattern_(je);return c=W(),c===Ua||this.peekOf_()||this.allowForOn_&&this.peekOn_()?(g=this.transformLeftHandSideExpression_(g),this.validateAssignmentTarget_(g,"assignment"),this.peekOf_()?this.parseForOfStatement_(b,g):this.allowForOn_&&this.peekOn_()?this.parseForOnStatement_(b,g):this.parseForInStatement_(b,g)):(this.ensureNoCoverInitializedNames_(g,f),this.parseForStatement2_(b,g))},peekOf_:function(){return this.options_.forOf&&this.peekPredefinedString_(A)},peekOn_:function(){return this.options_.forOn&&this.peekPredefinedString_(B)},parseForOfStatement_:function(a,b){this.eatId_();var c=this.parseExpression_(ie);this.eat_(sa);var d=this.parseStatement_();return new Jc(this.getTreeLocation_(a),b,c,d)},parseForOnStatement_:function(a,b){this.eatId_();var c=this.parseExpression_(ie);this.eat_(sa);var d=this.parseStatement_();return new Kc(this.getTreeLocation_(a),b,c,d)},checkInitializers_:function(a){if(this.options_.blockBinding&&a.declarationType===wa)for(var b=a.declarationType,c=0;cc:f>=c){var h=O(),i=this.getTreeStartLocation_(),j=this.parseUnaryExpression_(),k=this.parseBinaryExpressionHelper_(i,j,f,d);b=this.toPrimaryExpression_(b),k=this.toPrimaryExpression_(k);var l=new bc(this.getTreeLocation_(a),b,h,k);return this.parseBinaryExpressionHelper_(a,l,c,d)}return b},parseUnaryExpression_:function(){var a=this.getTreeStartLocation_();if(this.allowAwait_&&this.peekPredefinedString_(w)){this.eatId_();var b;return this.allowYield_&&P(Tb)?b=this.parseYieldExpression_(ie):(b=this.parseUnaryExpression_(),b=this.toPrimaryExpression_(b)),new ac(this.getTreeLocation_(a),b)}if(this.peekUnaryOperator_(W())){var c=O(),d=this.parseUnaryExpression_();if(d=this.toPrimaryExpression_(d),d.type!==q)switch(c.type){case qb:case ab:this.validateAssignmentTarget_(d,"prefix operation")}return new ae(this.getTreeLocation_(a),c,d)}return this.parsePostfixExpression_()},peekUnaryOperator_:function(a){switch(a){case Aa:case Qb:case Nb:case qb:case ab:case pb:case _a:case Kb:case ja:return!0;default:return!1}},parsePostfixExpression_:function(){for(var a=this.getTreeStartLocation_(),b=this.parseLeftHandSideExpression_();this.peekPostfixOperator_(W());){b=this.toPrimaryExpression_(b);var c=O();this.validateAssignmentTarget_(b,"postfix operation"),b=new Bd(this.getTreeLocation_(a),b,c)}return b},peekPostfixOperator_:function(a){switch(a){case qb:case ab:var b=V();return null!==b}return!1},parseLeftHandSideExpression_:function(){var a=this.getTreeStartLocation_(),b=this.parseNewExpression_();if(!(b instanceof vd)||null!==b.args)a:for(;;)switch(W()){case jb:b=this.toPrimaryExpression_(b),b=this.parseCallExpression_(a,b);break;case kb:b=this.toPrimaryExpression_(b),b=this.parseMemberLookupExpression_(a,b);break;case ob:b=this.toPrimaryExpression_(b),b=this.parseMemberExpression_(a,b);break;case cb:case Gb:if(!this.options_.templateLiterals)break a;b=this.toPrimaryExpression_(b),this.options_.templateLiterals&&(b=this.parseTemplateLiteral_(b));break;default:break a}return b},parseMemberExpressionNoNew_:function(){var a,b=this.getTreeStartLocation_();a=W()===Oa?this.parseFunctionExpression_():this.parsePrimaryExpression_();a:for(;;)switch(W()){case kb:a=this.toPrimaryExpression_(a),a=this.parseMemberLookupExpression_(b,a);break;case ob:a=this.toPrimaryExpression_(a),a=this.parseMemberExpression_(b,a);break;case cb:case Gb:if(!this.options_.templateLiterals)break a;a=this.toPrimaryExpression_(a),a=this.parseTemplateLiteral_(a);break;default:break a}return a},parseMemberExpression_:function(a,b){this.eat_(ob);var c=this.eatIdName_();return new md(this.getTreeLocation_(a),b,c)},parseMemberLookupExpression_:function(a,b){this.eat_(kb);var c=this.parseExpression_(ie);return this.eat_(ta),new nd(this.getTreeLocation_(a),b,c)},parseCallExpression_:function(a,b){var c=this.parseArguments_();return new gc(this.getTreeLocation_(a),b,c)},parseNewExpression_:function(){var a,b;switch(W()){case bb:b=this.getTreeStartLocation_(),this.eat_(bb),a=P(Eb)?this.parseSuperExpression_(!0):this.toPrimaryExpression_(this.parseNewExpression_());var c=null;return P(jb)&&(c=this.parseArguments_()),new vd(this.getTreeLocation_(b),a,c);case Eb:return this.parseSuperExpression_(!1);default:return this.parseMemberExpressionNoNew_()}},parseArguments_:function(){var a=this.getTreeStartLocation_(),b=[];if(this.eat_(jb),!P(sa))for(b.push(this.parseArgument_());this.eatIf_(va);)b.push(this.parseArgument_());return this.eat_(sa),new Vb(this.getTreeLocation_(a),b)},parseArgument_:function(){return this.peekSpread_(W())?this.parseSpreadExpression_():this.parseAssignmentExpression_(ie)},parseArrowFunction_:function(a,b,c){var d,e=this,f=qe;c&&c.value===u&&(f|=ue);var g=this.pushFunctionState_(f),i=function(b){return new Nc(e.getTreeLocation_(a),[new Mc(b.location,new cc(b.location,b,null),null,[])])};switch(b.type){case m:d=i(new dc(b.location,b.identifierToken));break;case h:d=i(b);break;case l:d=b;break;default:d=this.toFormalParameters_(a,b,c)}this.eat_(ha);var j=this.parseConciseBody_(d);return this.popFunctionState_(g),new $b(this.getTreeLocation_(a),c,d,j)},parseCoverFormals_:function(a){var b=[];if(!P(sa))do{var c=W();if(this.peekRest_(c)){b.push(this.parseRestParameter_());break}b.push(this.parseAssignmentExpression_(ie)),!this.eatIf_(va)}while(!P(sa)&&!I());return this.eat_(sa),new uc(this.getTreeLocation_(a),b)},ensureNoCoverInitializedNames_:function(a,b){if(b!==this.coverInitializedNameCount_){var c=new me;if(c.visitAny(a),c.found){var d=c.errorToken;this.reportError_(d.location,"Unexpected token "+d)}}},toPrimaryExpression_:function(a){return a.type===k?this.coverFormalsToParenExpression_(a):a},validateCoverFormalsAsParenExpression_:function(a){for(var b=0;b1?new mc(b[0].location,b):b[0],new Ad(a.location,c)}var d="Unexpected token )";this.reportError_(a.location,d)}return a},toFormalParameters_:function(a,b,c){return X(a.offset),this.parseArrowFormalParameters_(c)},parseArrowFormalParameters_:function(a){a&&this.eat_(Qa),this.eat_(jb);var b=this.parseFormalParameters_();return this.eat_(sa),b},peekArrow_:function(a){return a===ha&&this.options_.arrowFunctions},parseConciseBody_:function(a){return P(ib)?this.parseFunctionBody_(a):(ca(a,this.strictMode_,this.errorReporter_),this.parseAssignmentExpression_(ie))},parseGeneratorComprehension_:function(a){var b=this.parseComprehensionList_(),c=this.parseAssignmentExpression_(ie);return this.eat_(sa),new Tc(this.getTreeLocation_(a),b,c)},parseForBinding_:function(){return this.peekPattern_(W())?this.parseBindingPattern_():this.parseBindingIdentifier_()},peekPattern_:function(a){return this.options_.destructuring&&(this.peekObjectPattern_(a)||this.peekArrayPattern_(a))},peekArrayPattern_:function(a){return a===kb},peekObjectPattern_:function(a){return a===ib},parseBindingPattern_:function(){return this.parsePattern_(!0)},parsePattern_:function(a){return this.peekArrayPattern_(W())?this.parseArrayPattern_(a):this.parseObjectPattern_(a)},parseArrayBindingPattern_:function(){return this.parseArrayPattern_(!0)},parsePatternElement_:function(a){return a?this.parseBindingElement_():this.parseAssignmentElement_()},parsePatternRestElement_:function(a){return a?this.parseBindingRestElement_():this.parseAssignmentRestElement_()},parseArrayPattern_:function(a){var b=this.getTreeStartLocation_(),c=[];for(this.eat_(kb);;){var d=W();if(d===va)c.push(null);else{if(this.peekSpread_(d)){c.push(this.parsePatternRestElement_(a));break}if(d===ta||d===Ea)break;c.push(this.parsePatternElement_(a))}d=W(),d!==ta&&this.eat_(va)}return this.eat_(ta),new Yb(this.getTreeLocation_(b),c)},parseBindingElementList_:function(a){for(this.parseElisionOpt_(a),a.push(this.parseBindingElement_());this.eatIf_(va);)this.parseElisionOpt_(a),a.push(this.parseBindingElement_())},parseElisionOpt_:function(a){for(;this.eatIf_(va);)a.push(null)},peekBindingElement_:function(a){return this.peekBindingIdentifier_(a)||this.peekPattern_(a)},parseBindingElement_:function(){var a=this.getTreeStartLocation_(),b=this.parseBindingElementBinding_(),c=this.parseBindingElementInitializer_(le);return new cc(this.getTreeLocation_(a),b,c)},parseBindingElementBinding_:function(){return this.peekPattern_(W())?this.parseBindingPattern_():this.parseBindingIdentifier_()},parseBindingElementInitializer_:function(a){return P(Fa)||a?this.parseInitializer_(ie):null},parseBindingRestElement_:function(){var a=this.getTreeStartLocation_();this.eat_(Ca);var b=this.parseBindingIdentifier_();return new Md(this.getTreeLocation_(a),b)},parseObjectPattern_:function(a){var b=this.getTreeStartLocation_(),c=[];this.eat_(ib);for(var d;(d=W())!==ra&&d!==Ea&&(c.push(this.parsePatternProperty_(a)),this.eatIf_(va)););return this.eat_(ra),new xd(this.getTreeLocation_(b),c)},parsePatternProperty_:function(a){var b=this.getTreeStartLocation_(),c=this.parsePropertyName_(),d=c.type!==n||!c.literalToken.isStrictKeyword()&&c.literalToken.type!==Qa;if(d||P(ua)){this.eat_(ua);var e=this.parsePatternElement_(a);return new yd(this.getTreeLocation_(b),c,e)}var f=c.literalToken;if(this.strictMode_&&f.isStrictKeyword()&&this.reportReservedIdentifier_(f),a){var g=new dc(c.location,f),h=this.parseInitializerOpt_(ie);return new cc(this.getTreeLocation_(b),g,h)}var i=new Vc(c.location,f),j=this.parseInitializerOpt_(ie);return new _b(this.getTreeLocation_(b),i,j)},parseAssignmentPattern_:function(){return this.parsePattern_(!1)},parseArrayAssignmentPattern_:function(){return this.parseArrayPattern_(!1)},parseAssignmentElement_:function(){var a=this.getTreeStartLocation_(),b=this.parseDestructuringAssignmentTarget_(),c=this.parseInitializerOpt_(ie);return new _b(this.getTreeLocation_(a),b,c)},parseDestructuringAssignmentTarget_:function(){switch(W()){case kb:return this.parseArrayAssignmentPattern_();case ib:return this.parseObjectAssignmentPattern_()}var a=this.parseLeftHandSideExpression_();return a=this.coverFormalsToParenExpression_(a),this.validateAssignmentTarget_(a,"assignment"),a},parseAssignmentRestElement_:function(){var a=this.getTreeStartLocation_();this.eat_(Ca);var b=this.parseDestructuringAssignmentTarget_();return new Md(this.getTreeLocation_(a),b)},parseObjectAssignmentPattern_:function(){return this.parseObjectPattern_(!1)},parseAssignmentProperty_:function(){return this.parsePatternProperty_(!1)},parseTemplateLiteral_:function(a){var b=a?a.location.start:this.getTreeStartLocation_(),c=O(),d=[new Rd(c.location,c)];if(c.type===cb)return new Qd(this.getTreeLocation_(b),a,d);var e=this.parseExpression_(ie);for(d.push(new Sd(e.location,e));e.type!==q&&(c=N(),c.type!==Ia&&c.type!==Ea)&&(d.push(new Rd(c.location,c)),c.type!==Hb);)e=this.parseExpression_(ie),d.push(new Sd(e.location,e));return new Qd(this.getTreeLocation_(b),a,d)},parseTypeAnnotationOpt_:function(){return this.options_.types&&this.eatOpt_(ua)?this.parseType_():null},parseType_:function(){switch(W()){case bb:return this.parseConstructorType_();case jb:case hb:return this.parseFunctionType_()}var a=this.getTreeStartLocation_(),b=this.parsePrimaryType_();return this.parseUnionTypeSuffix_(a,b)},parsePrimaryType_:function(){var a,b,c=this.getTreeStartLocation_();switch(W()){case Qb:b=O(),a=new Cd(this.getTreeLocation_(c),b);break;case Qa:switch(T().value){case"any":case"boolean":case"number":case"string":case"symbol":b=O(),a=new Cd(this.getTreeLocation_(c),b);break;default:a=this.parseTypeReference_()}break;case Nb:a=this.parseTypeQuery_(c);break;case ib:a=this.parseObjectType_();break;default:return this.parseUnexpectedToken_()}return this.parseArrayTypeSuffix_(c,a)},parseTypeReference_:function(){var a=this.getTreeStartLocation_(),b=this.parseTypeName_();if(P(hb)){var c=this.parseTypeArguments_();return new _d(this.getTreeLocation_(a),b,c)}return b},parseUnionTypeSuffix_:function(a,b){if(P(ka)){var c=[b];for(this.eat_(ka);;)if(c.push(this.parsePrimaryType_()),!this.eatIf_(ka))break;return new be(this.getTreeLocation_(a),c)}return b},parseArrayTypeSuffix_:function(a,b){var c=V();return c&&c.type===kb?(this.eat_(kb),this.eat_(ta),b=new Zb(this.getTreeLocation_(a),b),this.parseArrayTypeSuffix_(a,b)):b},parseTypeArguments_:function(){var a=this.getTreeStartLocation_();this.eat_(hb);for(var b=[this.parseType_()];P(va);)this.eat_(va),b.push(this.parseType_());var c=J();return c.type!==qa?this.parseUnexpectedToken_(c):new Xd(this.getTreeLocation_(a),b)},parseConstructorType_:function(){var a=this.getTreeStartLocation_();this.eat_(bb);var b=this.parseTypeParametersOpt_();this.eat_(jb);var c=this.parseFormalParameters_();this.eat_(sa),this.eat_(ha);var d=this.parseType_();return new sc(this.getTreeLocation_(a),b,c,d)},parseObjectType_:function(){var a=this.getTreeStartLocation_(),b=[];this.eat_(ib);for(var c;this.peekTypeMember_(c=W())&&(b.push(this.parseTypeMember_(c)),this.eatIf_(xb)););return this.eat_(ra),new zd(this.getTreeLocation_(a),b)},peekTypeMember_:function(a){switch(a){case bb:case jb:case hb:case kb:case Qa:case Db:case gb:return!0;default:return T().isKeyword()}},parseTypeMember_:function(a){ switch(a){case bb:return this.parseConstructSignature_();case jb:case hb:return this.parseCallSignature_();case kb:return this.parseIndexSignature_()}var b=this.getTreeStartLocation_(),c=this.parseLiteralPropertyName_(),d=this.eatIf_(ub);if(a=W(),a===hb||a===jb){var e=this.parseCallSignature_();return new pd(this.getTreeLocation_(b),c,d,e)}var f=this.parseTypeAnnotationOpt_();return new Fd(this.getTreeLocation_(b),c,d,f)},parseCallSignature_:function(){var a=this.getTreeStartLocation_(),b=this.parseTypeParametersOpt_();this.eat_(jb);var c=this.parseFormalParameters_();this.eat_(sa);var d=this.parseTypeAnnotationOpt_();return new hc(this.getTreeLocation_(a),b,c,d)},parseConstructSignature_:function(){var a=this.getTreeStartLocation_();this.eat_(bb);var b=this.parseTypeParametersOpt_();this.eat_(jb);var c=this.parseFormalParameters_();this.eat_(sa);var d=this.parseTypeAnnotationOpt_();return new rc(this.getTreeLocation_(a),b,c,d)},parseIndexSignature_:function(){var a=this.getTreeStartLocation_();this.eat_(kb);var b=this.eatId_();this.eat_(ua);var c,d=this.getTreeStartLocation_();c=this.peekPredefinedString_("string")?this.eatId_("string"):this.eatId_("number");var e=new Cd(this.getTreeLocation_(d),c);this.eat_(ta),this.eat_(ua);var f=this.parseType_();return new bd(this.getTreeLocation_(a),b,e,f)},parseFunctionType_:function(){var a=this.getTreeStartLocation_(),b=this.parseTypeParametersOpt_();this.eat_(jb);var c=this.parseFormalParameters_();this.eat_(sa),this.eat_(ha);var d=this.parseType_();return new Sc(this.getTreeLocation_(a),b,c,d)},parseTypeQuery_:function(a){throw"NYI"},peekTypeParameters_:function(){return P(hb)},parseTypeParametersOpt_:function(){return P(hb)?this.parseTypeParameters_():null},parseTypeParameters_:function(){var a=this.getTreeStartLocation_();this.eat_(hb);for(var b=[this.parseTypeParameter_()];P(va);)this.eat_(va),b.push(this.parseTypeParameter_());return this.eat_(qa),new $d(this.getTreeLocation_(a),b)},parseTypeParameter_:function(){var a=this.getTreeStartLocation_(),b=this.eatId_(),c=null;return this.eatIf_(Ka)&&(c=this.parseType_()),new Zd(this.getTreeLocation_(a),b,c)},parseNamedOrPredefinedType_:function(){var a=this.getTreeStartLocation_();switch(T().value){case"any":case"number":case"boolean":case"string":var b=O();return new Cd(this.getTreeLocation_(a),b);default:return this.parseTypeName_()}},parseTypeName_:function(){for(var a=this.getTreeStartLocation_(),b=this.eatId_(),c=new Yd(this.getTreeLocation_(a),null,b);this.eatIf_(ob);){var d=this.eatIdName_();c=new Yd(this.getTreeLocation_(a),c,d)}return c},parseInterfaceDeclaration_:function(){var a=this.getTreeStartLocation_();this.eat_(Wa);var b,c=this.eatId_(),d=this.parseTypeParametersOpt_();b=this.eatIf_(Ka)?this.parseInterfaceExtendsClause_():[];var e=this.parseObjectType_();return new cd(this.getTreeLocation_(a),c,d,b,e)},parseInterfaceExtendsClause_:function(){for(var a=[this.parseTypeReference_()];this.eatIf_(va);)a.push(this.parseTypeReference_());return a},parseAnnotatedDeclarations_:function(a){this.pushAnnotations_();var b,c=W();return b=a?this.parseModuleItem_(c):this.parseStatementListItem_(c),this.annotations_.length>0&&this.reportError_(this.annotations_[0].location,"Unsupported annotated expression"),b},parseAnnotations_:function(){for(var a=[];this.eatIf_(ia);)a.push(this.parseAnnotation_());return a},pushAnnotations_:function(){this.annotations_=this.parseAnnotations_()},popAnnotations_:function(){var a=this.annotations_;return this.annotations_=[],a},parseAnnotation_:function(){var a=this.getTreeStartLocation_(),b=this.parseMemberExpressionNoNew_(),c=null;return P(jb)&&(c=this.parseArguments_()),new xc(this.getTreeLocation_(a),b,c)},parseTypeAliasDeclaration_:function(){var a=this.getTreeStartLocation_();this.eatId_(D);var b=this.eatId_();this.eat_(Fa);var c=this.parseType_();return this.eatPossibleImplicitSemiColon_(),new Wd(this.getTreeLocation_(a),b,c)},parseJsxElement_:function(){var a=this.eatJsx_(hb);return this.parseJsxElementContinuation_(a.location.start)},parseJsxElementContinuation_:function(a){var d=this.parseJsxElementName_(),e=this.parseJsxAttributes_(),f=[];switch(Q().type){case yb:L(),this.eat_(qa);break;case qa:K();a:for(;;){var g=K();switch(g.type){case Db:f.push(new id(g.location,g));continue;case ib:var h=g.location.start,i=null;P(ra)||(i=this.parseAssignmentExpression_(ie)),this.eatJsx_(ra);var j=new gd(this.getTreeLocation_(h),i);f.push(j);continue;case hb:var k=g.location.start;if(Q().type===yb){L();break a}var l=this.parseJsxElementContinuation_(k);f.push(l),X(l.location.end.offset);continue;default:return this.parseSyntaxError_("Unexpected token")}}var m=this.parseJsxElementName_();b(d,m)||this.reportError_(m.location,"Non matching JSX closing tag. Expected "+c(d)+", found "+c(m)),this.eat_(qa);break;default:return this.parseSyntaxError_("Unexpected token")}var n=new ed(this.getTreeLocation_(a),d,e,f);return n},parseJsxElementName_:function(){var a=[],b=this.eatJsx_(Xa),c=b.location.start;for(a.push(b);Q().type===ob;){L();var d=this.eatJsx_(Xa);a.push(d)}return new fd(this.getTreeLocation_(c),a)},parseJsxAttributes_:function(){var a=[];a:for(;;)switch(Q().type){case Xa:a.push(this.parseJsxAttribute_());break;case ib:a.push(this.parseJsxSpreadAttribute_());break;default:break a}return a},parseJsxAttribute_:function(){var a=this.eatJsx_(Xa),b=a.location.start,c=null;return Q().type===Fa&&(this.eatJsx_(Fa),c=this.parseJsxAttributeValue_()),new dd(this.getTreeLocation_(b),a,c)},parseJsxAttributeValue_:function(){var a=Q(),b=a.location.start;switch(a.type){case Db:return L(),new kd(this.getTreeLocation_(b),a);case ib:L();var c=this.parseAssignmentExpression_(ie);return this.eatJsx_(ra),new gd(this.getTreeLocation_(b),c);case hb:return this.parseJsxElement_()}return this.parseSyntaxError_("Unexpected token")},parseJsxSpreadAttribute_:function(){var a=Q(),b=a.location.start;L(),this.eatJsx_(Ca);var c=this.parseAssignmentExpression_(ie);return this.eatJsx_(ra),new hd(this.getTreeLocation_(b),c)},eatPossibleImplicitSemiColon_:function(){var a=V();if(a){switch(a.type){case xb:return void O();case Ea:case ra:return}this.reportError_(a.location,"Semi-colon expected")}},peekImplicitSemiColon_:function(){switch(W()){case xb:case ra:case Ea:return!0}var a=V();return null===a},eatOpt_:function(a){return P(a)?O():null},eatIdOpt_:function(){return P(Qa)?this.eatId_():null},eatId_:function(){var a=arguments[0],b=O();if(b.type===Qa)return a&&b.value!==a&&this.reportExpectedError_(b,a),b;if(b.isStrictKeyword()){if(!this.strictMode_)return new e(b.location,b.type);this.reportReservedIdentifier_(b)}else this.reportExpectedError_(b,a||"identifier");return b},eatIdName_:function(){var a=O();return a.type!==Qa?a.isKeyword()?new e(a.location,a.type):(this.reportExpectedError_(a,"identifier"),null):a},eat_:function(a){return this.isExpectedToken_(O(),a)},eatIf_:function(a){return P(a)?(O(),!0):!1},eatJsx_:function(a){return this.isExpectedToken_(L(),a)},isExpectedToken_:function(a,b){return a.type!==b&&this.reportExpectedError_(a,b),a},reportExpectedError_:function(a,b){this.reportError_(a.location,"Unexpected token "+a)},getTreeStartLocation_:function(){return R().start},getTreeEndLocation_:function(){return G().location.end},getTreeLocation_:function(a){return new Y(a,this.getTreeEndLocation_())},handleComment:function(a){},isAtEnd:function(){return I()},reportError_:function(a,b){this.errorReporter_.reportError(a,b)},reportReservedIdentifier_:function(a){this.reportError_(a.location,a.type+" is a reserved identifier")},validateAssignmentTarget_:function(a,b){a.isPattern()||da(a,this.strictMode_)||this.reportError_(a.location,"Invalid left-hand side expression in "+b)}},{})}();return{get Parser(){return xe}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/util/SourcePosition.js",[],function(){"use strict";var a=function(){function a(a,b){this.source=a,this.offset=b,this.line_=-1,this.column_=-1}return $traceurRuntime.createClass(a,{get line(){return-1===this.line_&&(this.line_=this.source.lineNumberTable.getLine(this.offset)),this.line_},get column(){return-1===this.column_&&(this.column_=this.source.lineNumberTable.getColumn(this.offset)),this.column_},toString:function(){var a=this.source?this.source.name:"";return a+":"+(this.line+1)+":"+(this.column+1)}},{})}();return{get SourcePosition(){return a}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/syntax/LineNumberTable.js",[],function(){"use strict";function a(a){for(var b=[0],c=1,f=0;fa)return 0;var b;if(a=0;c--)if(this.lineStartOffsets_[c]<=a){b=c;break}}else for(var d=this.lastLine_;!0;d++)if(this.lineStartOffsets_[d]>a){b=d-1;break}return this.lastLine_=b,this.lastOffset_=a,b},offsetOfLine:function(a){return this.ensureLineStartOffsets_(),this.lineStartOffsets_[a]},getColumn:function(a){var b=this.getLine(a);return a-this.lineStartOffsets_[b]},getSourceRange:function(a,b){return new c(this.getSourcePosition(a),this.getSourcePosition(b))}},{})}();return{get LineNumberTable(){return f}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/syntax/SourceFile.js",[],function(){"use strict";var a=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./LineNumberTable.js","traceur@0.0.108/src/syntax/SourceFile.js")).LineNumberTable,b=function(){function b(b,c){this.name=b,this.contents=c,this.lineNumberTable=new a(this)}return $traceurRuntime.createClass(b,{},{})}();return{get SourceFile(){return b}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/codegeneration/PlaceholderParser.js",[],function(){"use strict";function a(a){var c=new Map;return function(d){for(var e=[],f=1;f2?b.declarations:(d||(d=V(a.initializer)),b=new ba(d),this.desugarPattern_(b,a.lvalue),b.declarations)},desugarPattern_:function(a,b){var c,g=this,h=!1;switch(b.type){case d:c=b,this.pushTempScope();var i=S(this.addTempVar()),j=S(this.addTempVar());a.createIterator(i);for(var k=0;k0},transformExportDeclaration:function(a){return this.exportVisitor_.visitAny(a),this.transformAny(a.declaration)},transformExportDefault:function(a){switch(a.expression.type){case o:case s:var b=a.expression.name,d=F(b.identifierToken);return new c(null,[a.expression,N($traceurRuntime.getTemplateObject(["var $__default = ",""]),d)])}return N($traceurRuntime.getTemplateObject(["var $__default = ",""]),a.expression)},transformNamedExport:function(a){var b=a.moduleSpecifier;if(b){var d=this.transformAny(b),e=this.getTempVarNameForModuleSpecifier(b);return J(x,e,d)}return new c(null,[])},transformModuleSpecifier:function(a){y(this.moduleName);var b=a.token.processedValue;return L($traceurRuntime.getTemplateObject(["$traceurRuntime.getModule(\n $traceurRuntime.normalizeModuleName(",", ","));"]),b,this.moduleName)},transformImportDeclaration:function(a){if(a.importClause.type===u)return new c(null,[]);if(a.importClause.type===t&&0===a.importClause.specifiers.length)return E(this.transformAny(a.moduleSpecifier));var b=this.transformAny(a.importClause),d=this.transformAny(a.moduleSpecifier),e=J(x,b,d);if(this.options.transformOptions.destructuring||!this.options.parseOptions.destructuring){var f=new P(this.identifierGenerator,this.reporter,this.options);e=e.transform(f)}return e},transformImportSpecifierSet:function(a){var b=this.transformList(a.specifiers);return new g(null,b)},transformNameSpaceImport:function(a){return a.binding.binding},transformImportSpecifier:function(a){var b=a.binding.binding,c=new d(b.location,b,null);if(a.name){var f=new e(a.name.location,a.name);return new h(a.location,f,c)}return c}},{},b)}(m);return{get ModuleTransformer(){return Q}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/codegeneration/globalThis.js",[],function(){"use strict";function a(){return b||(b=c($traceurRuntime.getTemplateObject(["Reflect.global"]))),b}var b,c=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./PlaceholderParser.js","traceur@0.0.108/src/codegeneration/globalThis.js")).parseExpression,d=a;return{get default(){return d}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/codegeneration/FindInFunctionScope.js",[],function(){"use strict";var a=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./FindVisitor.js","traceur@0.0.108/src/codegeneration/FindInFunctionScope.js")).FindVisitor,b=function(a){function b(){$traceurRuntime.superConstructor(b).apply(this,arguments)}return $traceurRuntime.createClass(b,{visitFunctionDeclaration:function(a){this.visitList(a.annotations)},visitFunctionExpression:function(a){this.visitList(a.annotations)},visitSetAccessor:function(a){this.visitAny(a.name),this.visitList(a.annotations)},visitGetAccessor:function(a){this.visitAny(a.name),this.visitList(a.annotations)},visitMethod:function(a){this.visitAny(a.name),this.visitList(a.annotations)}},{},a)}(a);return{get FindInFunctionScope(){return b}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/codegeneration/scopeContainsThis.js",[],function(){"use strict";function a(a){var b=new c;return b.visitAny(a),b.found}var b=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./FindInFunctionScope.js","traceur@0.0.108/src/codegeneration/scopeContainsThis.js")).FindInFunctionScope,c=function(a){function b(){$traceurRuntime.superConstructor(b).apply(this,arguments)}return $traceurRuntime.createClass(b,{visitThisExpression:function(a){this.found=!0}},{},a)}(b),d=a;return{get default(){return d}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/codegeneration/AmdTransformer.js",[],function(){"use strict";var a=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ModuleTransformer.js","traceur@0.0.108/src/codegeneration/AmdTransformer.js")).ModuleTransformer,b=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeFactory.js","traceur@0.0.108/src/codegeneration/AmdTransformer.js")),c=b.createIdentifierExpression,d=b.createFormalParameter,e=b.createStringLiteralToken,f=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./globalThis.js","traceur@0.0.108/src/codegeneration/AmdTransformer.js"))["default"],g=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./PlaceholderParser.js","traceur@0.0.108/src/codegeneration/AmdTransformer.js")),h=g.parseExpression,i=g.parseStatement,j=g.parseStatements,k=g.parsePropertyDefinition,l=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTrees.js","traceur@0.0.108/src/codegeneration/AmdTransformer.js")),m=l.FormalParameterList,n=l.FunctionBody,o=l.FunctionExpression,p=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./scopeContainsThis.js","traceur@0.0.108/src/codegeneration/AmdTransformer.js"))["default"],q=function(a){function b(a,c){var d=arguments[2];$traceurRuntime.superConstructor(b).call(this,a,c,d),this.dependencies=[],this.anonymousModule=d&&!d.bundle&&d.moduleName!==!0}return $traceurRuntime.createClass(b,{getModuleName:function(a){return this.anonymousModule?null:a.moduleName},getExportProperties:function(){var a=$traceurRuntime.superGet(this,b.prototype,"getExportProperties").call(this);return this.exportVisitor_.hasExports()&&a.push(k($traceurRuntime.getTemplateObject(["__esModule: true"]))),a},moduleProlog:function(){var a=this.dependencies.map(function(a){var b=c(a.local);return i($traceurRuntime.getTemplateObject(["if (!"," || !",".__esModule)\n "," = {default: ","}"]),b,b,b,b)});return $traceurRuntime.superGet(this,b.prototype,"moduleProlog").call(this).concat(a)},wrapModule:function(a){var b=this.dependencies.map(function(a){return a.path}),c=this.dependencies.map(function(a){return d(a.local)}),e=a.some(p),g=new m(null,c),i=new n(null,a),k=new o(null,null,null,g,null,[],i);return e&&(k=h($traceurRuntime.getTemplateObject(["",".bind(",")"]),k,f())),this.moduleName?j($traceurRuntime.getTemplateObject(["define(",", ",", ",");"]),this.moduleName,b,k):j($traceurRuntime.getTemplateObject(["define(",", ",");"]),b,k)},transformModuleSpecifier:function(a){var b=this.getTempIdentifier(),d=a.token.processedValue,f=e(d.replace(/\.js$/,""));return this.dependencies.push({path:f,local:b}),c(b)}},{},a)}(a);return{get AmdTransformer(){return q}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/staticsemantics/PropName.js",[],function(){"use strict";function a(b){switch(b.type){case e:var k=b.literalToken;return k.isKeyword()||k.type===j?k.toString():String(b.literalToken.processedValue);case c:return"";case h:return b.name.toString();case f:case g:case d:case i:return a(b.name)}}var b=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTreeType.js","traceur@0.0.108/src/staticsemantics/PropName.js")),c=b.COMPUTED_PROPERTY_NAME,d=b.GET_ACCESSOR,e=b.LITERAL_PROPERTY_NAME,f=b.METHOD,g=b.PROPERTY_NAME_ASSIGNMENT,h=b.PROPERTY_NAME_SHORTHAND,i=b.SET_ACCESSOR,j=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/TokenType.js","traceur@0.0.108/src/staticsemantics/PropName.js")).IDENTIFIER;return{get propName(){return a}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/codegeneration/AnnotationsTransformer.js",[],function(){"use strict";var a=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeTransformer.js","traceur@0.0.108/src/codegeneration/AnnotationsTransformer.js")).ParseTreeTransformer,b=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/PredefinedName.js","traceur@0.0.108/src/codegeneration/AnnotationsTransformer.js")).CONSTRUCTOR,c=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/TokenType.js","traceur@0.0.108/src/codegeneration/AnnotationsTransformer.js")).STRING,d=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTrees.js","traceur@0.0.108/src/codegeneration/AnnotationsTransformer.js")),e=d.AnonBlock,f=d.ClassDeclaration,g=d.ExportDeclaration,h=d.FormalParameter,i=d.FunctionDeclaration,j=d.GetAccessor,k=d.LiteralExpression,l=d.Method,m=d.SetAccessor,n=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../staticsemantics/PropName.js","traceur@0.0.108/src/codegeneration/AnnotationsTransformer.js")).propName,o=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeFactory.js","traceur@0.0.108/src/codegeneration/AnnotationsTransformer.js")),p=o.createArgumentList,q=o.createArrayLiteral,r=(o.createAssignmentStatement,o.createIdentifierExpression),s=o.createMemberExpression,t=o.createNewExpression,u=o.createStringLiteralToken,v=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./PlaceholderParser.js","traceur@0.0.108/src/codegeneration/AnnotationsTransformer.js")),w=v.parseExpression,x=v.parseStatement,y=function(){function a(){this.className=null,this.isExport=!1,this.constructorParameters=[],this.annotations=[],this.metadata=[]}return $traceurRuntime.createClass(a,{get inClassScope(){return null!==this.className}},{})}(),z=function(a){function d(){$traceurRuntime.superConstructor(d).call(this),this.stack_=[new y]}return $traceurRuntime.createClass(d,{transformExportDeclaration:function(a){var b,c=this.pushAnnotationScope_();c.isExport=!0,(b=c.annotations).push.apply(b,$traceurRuntime.spread(a.annotations));var d=this.transformAny(a.declaration);return(d!==a.declaration||a.annotations.length>0)&&(a=new g(a.location,d,[])),this.appendMetadata_(a)},transformClassDeclaration:function(a){var b,c,e=this.scope.isExport?this.scope.annotations:[],g=this.pushAnnotationScope_();return g.className=a.name,(b=g.annotations).push.apply(b,$traceurRuntime.spread(e,a.annotations)),a=$traceurRuntime.superGet(this,d.prototype,"transformClassDeclaration").call(this,a),(c=g.metadata).unshift.apply(c,$traceurRuntime.spread(this.transformMetadata_(r(a.name),g.annotations,g.constructorParameters))),a.annotations.length>0&&(a=new f(a.location,a.name,a.superClass,a.elements,[],null)),this.appendMetadata_(a)},transformFunctionDeclaration:function(a){var b,c,e=this.scope.isExport?this.scope.annotations:[],f=this.pushAnnotationScope_();return(b=f.annotations).push.apply(b,$traceurRuntime.spread(e,a.annotations)),(c=f.metadata).push.apply(c,$traceurRuntime.spread(this.transformMetadata_(r(a.name),f.annotations,a.parameterList.parameters))),a=$traceurRuntime.superGet(this,d.prototype,"transformFunctionDeclaration").call(this,a),a.annotations.length>0&&(a=new i(a.location,a.name,a.functionKind,a.parameterList,a.typeAnnotation,[],a.body)),this.appendMetadata_(a)},transformFormalParameter:function(a){return a.annotations.length>0&&(a=new h(a.location,a.parameter,a.typeAnnotation,[])),$traceurRuntime.superGet(this,d.prototype,"transformFormalParameter").call(this,a)},transformGetAccessor:function(a){var b;return this.scope.inClassScope?((b=this.scope.metadata).push.apply(b,$traceurRuntime.spread(this.transformMetadata_(this.transformAccessor_(a,this.scope.className,"get"),a.annotations,[]))),a.annotations.length>0&&(a=new j(a.location,a.isStatic,a.name,a.typeAnnotation,[],a.body)),$traceurRuntime.superGet(this,d.prototype,"transformGetAccessor").call(this,a)):$traceurRuntime.superGet(this,d.prototype,"transformGetAccessor").call(this,a)},transformSetAccessor:function(a){var b;if(!this.scope.inClassScope)return $traceurRuntime.superGet(this,d.prototype,"transformSetAccessor").call(this,a);(b=this.scope.metadata).push.apply(b,$traceurRuntime.spread(this.transformMetadata_(this.transformAccessor_(a,this.scope.className,"set"),a.annotations,a.parameterList.parameters)));var c=this.transformAny(a.parameterList);return(c!==a.parameterList||a.annotations.length>0)&&(a=new m(a.location,a.isStatic,a.name,c,[],a.body)),$traceurRuntime.superGet(this,d.prototype,"transformSetAccessor").call(this,a)},transformMethod:function(a){var c,e;if(!this.scope.inClassScope)return $traceurRuntime.superGet(this,d.prototype,"transformMethod").call(this,a);a.isStatic||n(a)!==b?(e=this.scope.metadata).push.apply(e,$traceurRuntime.spread(this.transformMetadata_(this.transformPropertyMethod_(a,this.scope.className),a.annotations,a.parameterList.parameters))):((c=this.scope.annotations).push.apply(c,$traceurRuntime.spread(a.annotations)),this.scope.constructorParameters=a.parameterList.parameters);var f=this.transformAny(a.parameterList);return(f!==a.parameterList||a.annotations.length>0)&&(a=new l(a.location,a.isStatic,a.functionKind,a.name,f,a.typeAnnotation,[],a.body,a.debugName)),$traceurRuntime.superGet(this,d.prototype,"transformMethod").call(this,a)},appendMetadata_:function(a){var b,c=this.stack_.pop().metadata;return c.length>0&&(this.scope.isExport?(b=this.scope.metadata).push.apply(b,$traceurRuntime.spread(c)):a=new e(null,$traceurRuntime.spread([a],c))),a},transformClassReference_:function(a,b){var c=r(b);return a.isStatic||(c=s(c,"prototype")),c},transformPropertyMethod_:function(a,b){return s(this.transformClassReference_(a,b),a.name.literalToken)},transformAccessor_:function(a,b,c){var d=p([this.transformClassReference_(a,b),this.createLiteralStringExpression_(a.name)]),e=w($traceurRuntime.getTemplateObject(["Object.getOwnPropertyDescriptor(",")"]),d);return s(e,c)},transformParameters_:function(a){var b=this,c=!1;return a=a.map(function(a){var d,e=[];return a.typeAnnotation&&e.push(b.transformAny(a.typeAnnotation)),a.annotations&&a.annotations.length>0&&(d=e).push.apply(d,$traceurRuntime.spread(b.transformAnnotations_(a.annotations))),e.length>0?(c=!0,q(e)):q([])}),c?a:[]},transformAnnotations_:function(a){return a.map(function(a){return t(a.name,a.args)})},transformMetadata_:function(a,b,c){var d=[];return null!==b&&(b=this.transformAnnotations_(b),b.length>0&&d.push(this.createDefinePropertyStatement_(a,"annotations",q(b)))),null!==c&&(c=this.transformParameters_(c),c.length>0&&d.push(this.createDefinePropertyStatement_(a,"parameters",q(c)))),d},createDefinePropertyStatement_:function(a,b,c){return x($traceurRuntime.getTemplateObject(["Object.defineProperty(",", ",",\n {get: function() {return ","}});"]),a,b,c)},createLiteralStringExpression_:function(a){var b=a.literalToken;return a.literalToken.type!==c&&(b=u(a.literalToken.value)),new k(null,b)},get scope(){return this.stack_[this.stack_.length-1]},pushAnnotationScope_:function(){var a=new y;return this.stack_.push(a),a}},{},a)}(a);return{get AnnotationsTransformer(){return z}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/semantics/util.js",[],function(){"use strict";function a(a){for(var b=0;b0; },visitLoop_:function(a,c){if(a.initializer.type!==f||a.initializer.declarationType===b)return void c();var d=this.pushScope(a);c(),this.popScope(d)},visitForInStatement:function(a){var b=this;this.visitLoop_(a,function(){return $traceurRuntime.superGet(b,d.prototype,"visitForInStatement").call(b,a)})},visitForOfStatement:function(a){var b=this;this.visitLoop_(a,function(){return $traceurRuntime.superGet(b,d.prototype,"visitForOfStatement").call(b,a)})},visitForStatement:function(a){var b=this;a.initializer?this.visitLoop_(a,function(){return $traceurRuntime.superGet(b,d.prototype,"visitForStatement").call(b,a)}):$traceurRuntime.superGet(this,d.prototype,"visitForStatement").call(this,a)},visitComprehension_:function(a){for(var b=[],c=0;c=0;f--)b[f]&&this.popScope(b[f])},visitArrayComprehension:function(a){this.visitComprehension_(a)},visitGeneratorComprehension:function(a){this.visitComprehension_(a)},visitPredefinedType:function(a){},visitTypeArguments:function(a){},visitFunctionType:function(a){}},{},a)}(a);return{get ScopeVisitor(){return g}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/semantics/ScopeChainBuilder.js",[],function(){"use strict";var a=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/TokenType.js","traceur@0.0.108/src/semantics/ScopeChainBuilder.js")),b=a.CONST,c=a.LET,d=a.VAR,e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ScopeVisitor.js","traceur@0.0.108/src/semantics/ScopeChainBuilder.js")).ScopeVisitor,f=function(a){function e(a){$traceurRuntime.superConstructor(e).call(this),this.reporter=a,this.declarationType_=null}return $traceurRuntime.createClass(e,{visitCatch:function(a){var b=this.pushScope(a);this.declarationType_=c,this.visitAny(a.binding),this.visitList(a.catchBody.statements),this.popScope(b)},visitImportedBinding:function(a){this.declarationType_=b,$traceurRuntime.superGet(this,e.prototype,"visitImportedBinding").call(this,a)},visitVariableDeclarationList:function(a){this.declarationType_=a.declarationType,$traceurRuntime.superGet(this,e.prototype,"visitVariableDeclarationList").call(this,a)},visitBindingIdentifier:function(a){this.declareVariable(a)},visitFunctionExpression:function(a){var c=this.pushScope(a);a.name&&(this.declarationType_=b,this.visitAny(a.name)),this.visitAny(a.parameterList),c.inGenerator=a.isGenerator(),this.visitAny(a.body),this.popScope(c)},visitFormalParameter:function(a){this.declarationType_=d,$traceurRuntime.superGet(this,e.prototype,"visitFormalParameter").call(this,a)},visitFunctionDeclaration:function(a){if(this.scope)if(this.scope.isVarScope)this.declarationType_=d,this.visitAny(a.name);else{if(!this.scope.strictMode){var b=this.scope.getVarScope();b&&b.addVar(a.name,this.reporter)}this.declarationType_=c,this.visitAny(a.name)}this.visitFunctionBodyForScope(a,a.parameterList,a.body)},visitClassDeclaration:function(a){this.visitAny(a.superClass),this.declarationType_=c,this.visitAny(a.name);var d=this.pushScope(a);this.declarationType_=b,this.visitAny(a.name),this.visitList(a.elements),this.popScope(d)},visitClassExpression:function(a){this.visitAny(a.superClass);var c;a.name&&(c=this.pushScope(a),this.declarationType_=b,this.visitAny(a.name)),this.visitList(a.elements),a.name&&this.popScope(c)},visitComprehensionFor:function(a){this.declarationType_=c,$traceurRuntime.superGet(this,e.prototype,"visitComprehensionFor").call(this,a)},declareVariable:function(a){this.scope.addBinding(a,this.declarationType_,this.reporter)}},{},a)}(e);return{get ScopeChainBuilder(){return f}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/semantics/VariableBinder.js",[],function(){"use strict";function a(a){var b=arguments[1],d=new c(null);d.visitAny(a);var e=d.getScopeForTree(a),f=e.getLexicalBindingNames();if(!b)return f;var g=e.getVariableBindingNames();return g.forEach(function(a){return f.add(a)}),f}function b(a){var b=new c(null);b.visitAny(a);var d=b.getScopeForTree(a);return d.getAllBindingNames()}var c=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ScopeChainBuilder.js","traceur@0.0.108/src/semantics/VariableBinder.js")).ScopeChainBuilder;return{get variablesInBlock(){return a},get variablesInFunction(){return b}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/codegeneration/ScopeTransformer.js",[],function(){"use strict";function a(a){var b=new m;if(null!==a&&a.type===n&&a.declarationType!==o)for(var c=new s(b),d=0;d=0;w--){var x=c.comprehensionList[w];switch(x.type){case j:var y=this.transformAny(x.expression);d=q(y,d);break;case i:var z=this.transformAny(x.left),A=this.transformAny(x.iterator),B=s(u,z,null);d=o(B,A,d);break;default:throw new Error("Unreachable.")}}d=a(this,d),v.push(d),t&&v.push(t);var C=h?new k(f,null):null,D=new b(null,null,C,n(),null,[],p(v));return r(m(D))}},{},c)}(c);return{get ComprehensionTransformer(){return t}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/codegeneration/ArrayComprehensionTransformer.js",[],function(){"use strict";var a=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ComprehensionTransformer.js","traceur@0.0.108/src/codegeneration/ArrayComprehensionTransformer.js")).ComprehensionTransformer,b=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeFactory.js","traceur@0.0.108/src/codegeneration/ArrayComprehensionTransformer.js")).createIdentifierExpression,c=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./PlaceholderParser.js","traceur@0.0.108/src/codegeneration/ArrayComprehensionTransformer.js")).parseStatement,d=function(a){function d(){$traceurRuntime.superConstructor(d).apply(this,arguments)}return $traceurRuntime.createClass(d,{transformArrayComprehension:function(a){this.pushTempScope();var d=this.transformAny(a.expression),e=b(this.getTempIdentifier()),f=b(this.getTempIdentifier()),g=c($traceurRuntime.getTemplateObject(["var "," = 0, "," = [];"]),e,f),h=c($traceurRuntime.getTemplateObject(["","[","++] = ",";"]),f,e,d),i=c($traceurRuntime.getTemplateObject(["return ",";"]),f),j=null;return f=this.transformComprehension(a,h,j,g,i),this.popTempScope(),f}},{},a)}(a);return{get ArrayComprehensionTransformer(){return d}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/codegeneration/ParenTrait.js",[],function(){"use strict";function a(a){return new k(a.location,a)}function b(b){return function(b){function d(){$traceurRuntime.superConstructor(d).apply(this,arguments)}return $traceurRuntime.createClass(d,{transformVariableDeclaration:function(b){var c=this.transformAny(b.lvalue),d=this.transformAny(b.typeAnnotation),e=this.transformAny(b.initializer);if(null!==e&&e.type===p)e=a(e);else if(b.lvalue===c&&b.typeAnnotation===d&&b.initializer===e)return b;return new m(b.location,c,d,e)},transformExpressionStatement:function(b){var c=this.transformAny(b.expression);switch(c.type){case r:case s:case q:c=a(c)}return b.expression===c?b:new i(b.location,c)},transformNewExpression:function(b){var c=this.transformAny(b.operand),d=this.transformAny(b.args);switch(c.type){case o:case t:c=a(c)}return c===b.operand&&d===b.args?b:new j(b.location,c,d)},transformExpressionList_:function(b){for(var c=this.transformList(b),d=null,e=0;e0&&f.push(k(j(u,this.variableDeclarations_)));var g=d(b.statements);return f.push(l($traceurRuntime.getTemplateObject(["\n return $traceurRuntime.createAsyncGeneratorInstance(\n async function (",") {\n ","\n }, ",");"]),this.ctx_,g,c)),e(f)},addTempVarForArguments:function(){var a=this.getTempIdentifier();return this.variableDeclarations_.push(i(a,f(t))),a},addTempVarForThis:function(){var a=this.getTempIdentifier();return this.variableDeclarations_.push(i(a,h())),a}},{transformAsyncGeneratorBody:function(a,b,c,d,e){return new m(a,b,c).transformAsyncGeneratorBody_(d,e)}},b)}(s(m));return{get AsyncGeneratorTransformer(){return v}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/codegeneration/AsyncGeneratorTransformPass.js",[],function(){"use strict";var a=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./AsyncGeneratorTransformer.js","traceur@0.0.108/src/codegeneration/AsyncGeneratorTransformPass.js")).AsyncGeneratorTransformer,b=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./TempVarTransformer.js","traceur@0.0.108/src/codegeneration/AsyncGeneratorTransformPass.js")).TempVarTransformer,c=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTrees.js","traceur@0.0.108/src/codegeneration/AsyncGeneratorTransformPass.js")),d=c.AnonBlock,e=c.FunctionDeclaration,f=c.FunctionExpression,g=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeFactory.js","traceur@0.0.108/src/codegeneration/AsyncGeneratorTransformPass.js")),h=g.createBindingIdentifier,i=g.createIdentifierExpression,j=g.createIdentifierToken,k=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./PlaceholderParser.js","traceur@0.0.108/src/codegeneration/AsyncGeneratorTransformPass.js")),l=k.parseExpression,m=k.parseStatement,n=function(b){function c(a,b,d){$traceurRuntime.superConstructor(c).call(this,a,b,d),this.transformOptions_=d.transformOptions,this.inBlock_=!1}return $traceurRuntime.createClass(c,{needsTransform_:function(a){return this.transformOptions_.asyncGenerators&&a.isAsyncGenerator()},transformFunctionDeclaration:function(a){if(!this.needsTransform_(a))return $traceurRuntime.superGet(this,c.prototype,"transformFunctionDeclaration").call(this,a);var b=i(a.name.identifierToken),f=l($traceurRuntime.getTemplateObject(["$traceurRuntime.initAsyncGeneratorFunction(",")"]),b),g=i(this.inBlock_?this.getTempIdentifier():this.addTempVar(f)),h=this.transformFunction_(a,e,g);return this.inBlock_?new d(null,[h,m($traceurRuntime.getTemplateObject(["var "," = ",""]),g,f)]):h},transformFunctionExpression:function(a){if(!this.needsTransform_(a))return $traceurRuntime.superGet(this,c.prototype,"transformFunctionExpression").call(this,a);var b;a.name?b=a.name.identifierToken:(b=j(this.getTempIdentifier()),a=new f(a.location,h(b),a.functionKind,a.parameterList,a.typeAnnotation,a.annotations,a.body));var d=this.transformFunction_(a,f,i(b));return l($traceurRuntime.getTemplateObject(["$traceurRuntime.initAsyncGeneratorFunction(",")"]),d)},transformFunction_:function(b,d,e){var f=$traceurRuntime.superGet(this,c.prototype,"transformAny").call(this,b.body);f=a.transformAsyncGeneratorBody(this.identifierGenerator,this.reporter,this.options,f,e);var g=null;return new d(b.location,b.name,g,b.parameterList,b.typeAnnotation||null,b.annotations||null,f)},transformBlock:function(a){var b=this.inBlock_;this.inBlock_=!0;var d=$traceurRuntime.superGet(this,c.prototype,"transformBlock").call(this,a);return this.inBlock_=b,d}},{},b)}(b);return{get AsyncGeneratorTransformPass(){return n}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/codegeneration/FindArguments.js",[],function(){"use strict";var a=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/PredefinedName.js","traceur@0.0.108/src/codegeneration/FindArguments.js")).ARGUMENTS,b=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./FindInFunctionScope.js","traceur@0.0.108/src/codegeneration/FindArguments.js")).FindInFunctionScope,c=function(b){function c(){$traceurRuntime.superConstructor(c).apply(this,arguments)}return $traceurRuntime.createClass(c,{visitIdentifierExpression:function(b){b.identifierToken.value===a&&(this.found=!0)}},{},b)}(b);return{get default(){return c}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/codegeneration/AsyncToGeneratorTransformer.js",[],function(){ "use strict";function a(a){var d=new c;d.visitAny(a);var f=d.found?n(b):o(),g=k($traceurRuntime.getTemplateObject(["return $traceurRuntime.spawn(this, ",", function*() { "," });"]),f,a);return new e(a.location,[g])}var b=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/PredefinedName.js","traceur@0.0.108/src/codegeneration/AsyncToGeneratorTransformer.js")).ARGUMENTS,c=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./FindArguments.js","traceur@0.0.108/src/codegeneration/AsyncToGeneratorTransformer.js"))["default"],d=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTrees.js","traceur@0.0.108/src/codegeneration/AsyncToGeneratorTransformer.js")),e=d.FunctionBody,f=d.FunctionDeclaration,g=d.FunctionExpression,h=d.Method,i=d.YieldExpression,j=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParenTrait.js","traceur@0.0.108/src/codegeneration/AsyncToGeneratorTransformer.js")).ParenTrait,k=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./PlaceholderParser.js","traceur@0.0.108/src/codegeneration/AsyncToGeneratorTransformer.js")).parseStatement,l=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./TempVarTransformer.js","traceur@0.0.108/src/codegeneration/AsyncToGeneratorTransformer.js")).TempVarTransformer,m=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeFactory.js","traceur@0.0.108/src/codegeneration/AsyncToGeneratorTransformer.js")),n=m.createIdentifierExpression,o=m.createNullLiteral,p=function(b){function c(a,b,d){$traceurRuntime.superConstructor(c).call(this,a,b,d),this.inAsyncFunction_=!1}return $traceurRuntime.createClass(c,{transformFunctionDeclaration:function(a){return a.isAsyncFunction()?this.transformFunctionShared_(a,f):$traceurRuntime.superGet(this,c.prototype,"transformFunctionDeclaration").call(this,a)},transformFunctionExpression:function(a){return a.isAsyncFunction()?this.transformFunctionShared_(a,g):$traceurRuntime.superGet(this,c.prototype,"transformFunctionExpression").call(this,a)},transformFunctionShared_:function(a,b){var c=this.transformAny(a.parameterList),d=this.transformAny(a.typeAnnotation),e=this.transformList(a.annotations),f=this.transformAsyncBody_(a.body);return new b(a.location,a.name,null,c,d,e,f)},transformAsyncBody_:function(b){var c=this.inAsyncFunction_;return this.inAsyncFunction_=!0,b=this.transformFunctionBody(b),b=a(b),this.inAsyncFunction_=c,b},transformMethod:function(a){if(a.isAsyncFunction()){var b=this.transformAny(a.name),d=this.transformAny(a.parameterList),e=this.transformAny(a.typeAnnotation),f=this.transformList(a.annotations),g=this.transformAsyncBody_(a.body);return new h(a.location,a.isStatic,null,b,d,e,f,g,a.debugName)}return $traceurRuntime.superGet(this,c.prototype,"transformMethod").call(this,a)},transformAwaitExpression:function(a){if(this.inAsyncFunction_){var b=this.transformAny(a.expression);return new i(a.location,b,!1)}return $traceurRuntime.superGet(this,c.prototype,"transformAwaitExpression").call(this,a)}},{},b)}(j(l));return{get AsyncToGeneratorTransformer(){return p}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/codegeneration/FindIdentifiers.js",[],function(){"use strict";var a=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../semantics/ScopeVisitor.js","traceur@0.0.108/src/codegeneration/FindIdentifiers.js")).ScopeVisitor,b=function(a){function b(a,c){$traceurRuntime.superConstructor(b).call(this),this.filterFunction_=c,this.found_=!1,this.visitAny(a)}return $traceurRuntime.createClass(b,{visitIdentifierExpression:function(a){this.filterFunction_(a.identifierToken.value,this.scope.tree)&&(this.found=!0)},get found(){return this.found_},set found(a){a&&(this.found_=!0)},visitAny:function(a){!this.found_&&a&&a.visit(this)},visitList:function(a){if(a)for(var b=0;!this.found_&&b0},getVariableNames:function(){return this.hoistedVariables_.valuesAsArray()},getVariableStatement:function(){if(!this.hasVariables())return new b(null,[]);var a=this.getVariableNames().map(function(a){return v(a,null)});return new i(null,new h(null,o,a))},getFunctions:function(){return this.hoistedFunctions_},prependVariables:function(a){return this.hasVariables()?w(a,this.getVariableStatement()):a},prependFunctions:function(a){return this.hasFunctions()?w(a,this.getFunctionDeclarations()):a},transformVariableStatement:function(a){var c=this.transformAny(a.declarations);return c===a.declarations?a:null===c?new b(null,[]):c.type===l?new i(a.location,c):s(c)},transformVariableDeclaration:function(a){var b=this.transformAny(a.lvalue),c=this.transformAny(a.initializer);if(c){var d=q(b,c);return b.type===k&&(d=u(d)),d}return null},transformObjectPattern:function(a){var b=this.keepBindingIdentifiers_;this.keepBindingIdentifiers_=!0;var c=$traceurRuntime.superGet(this,j.prototype,"transformObjectPattern").call(this,a);return this.keepBindingIdentifiers_=b,c},transformArrayPattern:function(a){var b=this.keepBindingIdentifiers_;this.keepBindingIdentifiers_=!0;var c=$traceurRuntime.superGet(this,j.prototype,"transformArrayPattern").call(this,a);return this.keepBindingIdentifiers_=b,c},transformBindingIdentifier:function(a){var b=a.identifierToken;return this.addVariable(b.value),this.keepBindingIdentifiers_?a:t(b)},transformVariableDeclarationList:function(a){if(a.declarationType===o||!this.inBlockOrFor_){var b=this.transformList(a.declarations);return b=b.filter(function(a){return a}),0===b.length?null:1===b.length?b[0]:r(b)}return a},transformCatch:function(a){var b=this.transformAny(a.catchBody);return b===a.catchBody?a:new c(a.location,a.binding,b)},transformForInStatement:function(a){return this.transformLoop_(a,e)},transformForOfStatement:function(a){return this.transformLoop_(a,f)},transformForOnStatement:function(a){return this.transformLoop_(a,f)},transformLoop_:function(a,b){var c=this.transformLoopIninitaliser_(a.initializer),d=this.transformAny(a.collection),e=this.transformAny(a.body);return c===a.initializer&&d===a.collection&&e===a.body?a:new b(a.location,c,d,e)},transformLoopIninitaliser_:function(a){return a.type!==l||a.declarationType!==o?a:this.transformAny(a.declarations[0].lvalue)},transformForStatement:function(a){var b=this.inBlockOrFor_;this.inBlockOrFor_=!0;var c=this.transformAny(a.initializer);this.inBlockOrFor_=b;var d=this.transformAny(a.condition),e=this.transformAny(a.increment),f=this.transformAny(a.body);return c===a.initializer&&d===a.condition&&e===a.increment&&f===a.body?a:new g(a.location,c,d,e,f)},transformBlock:function(a){var b=this.inBlockOrFor_;return this.inBlockOrFor_=!0,a=$traceurRuntime.superGet(this,j.prototype,"transformBlock").call(this,a),this.inBlockOrFor_=b,a},addMachineVariable:function(a){this.machineVariables_[a]=!0},transformClassDeclaration:function(a){return a},transformClassExpression:function(a){return a},transformFunctionDeclaration:function(a){return this.shouldHoistFunctions_?(this.addFunctionDeclaration(a),new b(null,[])):a},transformFunctionExpression:function(a){return a},transformGetAccessor:function(a){return a},transformSetAccessor:function(a){return a},transformMethod:function(a){return a},transformArrowFunction:function(a){return a},transformComprehensionFor:function(a){return a}},{},a)}(m),y=x;return{get default(){return y}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/codegeneration/generator/CPSTransformer.js",[],function(){"use strict";function a(a){var b=new $;return b.visitAny(a),b.found}function b(a){return a.type===j?b(a.expression):new n(a.location,a.statements)}var c=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../AlphaRenamer.js","traceur@0.0.108/src/codegeneration/generator/CPSTransformer.js")).AlphaRenamer,d=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./BreakContinueTransformer.js","traceur@0.0.108/src/codegeneration/generator/CPSTransformer.js")).BreakContinueTransformer,e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../../syntax/trees/ParseTreeType.js","traceur@0.0.108/src/codegeneration/generator/CPSTransformer.js")),f=e.BLOCK,g=e.CASE_CLAUSE,h=e.CONDITIONAL_EXPRESSION,i=e.EXPRESSION_STATEMENT,j=e.PAREN_EXPRESSION,k=e.STATE_MACHINE,l=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../../syntax/trees/ParseTrees.js","traceur@0.0.108/src/codegeneration/generator/CPSTransformer.js")),m=l.AnonBlock,n=l.Block,o=l.CaseClause,p=l.IfStatement,q=l.SwitchStatement,r=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./CatchState.js","traceur@0.0.108/src/codegeneration/generator/CPSTransformer.js")).CatchState,s=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ConditionalState.js","traceur@0.0.108/src/codegeneration/generator/CPSTransformer.js")).ConditionalState,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../ExplodeExpressionTransformer.js","traceur@0.0.108/src/codegeneration/generator/CPSTransformer.js")).ExplodeExpressionTransformer,u=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./FallThroughState.js","traceur@0.0.108/src/codegeneration/generator/CPSTransformer.js")).FallThroughState,v=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./FinallyFallThroughState.js","traceur@0.0.108/src/codegeneration/generator/CPSTransformer.js")).FinallyFallThroughState,w=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./FinallyState.js","traceur@0.0.108/src/codegeneration/generator/CPSTransformer.js")).FinallyState,x=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../FindInFunctionScope.js","traceur@0.0.108/src/codegeneration/generator/CPSTransformer.js")).FindInFunctionScope,y=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../ParseTreeTransformer.js","traceur@0.0.108/src/codegeneration/generator/CPSTransformer.js")).ParseTreeTransformer,z=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../../util/StringMap.js","traceur@0.0.108/src/codegeneration/generator/CPSTransformer.js")).StringMap,A=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../TempVarTransformer.js","traceur@0.0.108/src/codegeneration/generator/CPSTransformer.js")).TempVarTransformer,B=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../../util/assert.js","traceur@0.0.108/src/codegeneration/generator/CPSTransformer.js")).assert,C=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../PlaceholderParser.js","traceur@0.0.108/src/codegeneration/generator/CPSTransformer.js")),D=C.parseExpression,E=C.parseStatement,F=C.parseStatements,G=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./State.js","traceur@0.0.108/src/codegeneration/generator/CPSTransformer.js")).State,H=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./StateAllocator.js","traceur@0.0.108/src/codegeneration/generator/CPSTransformer.js")).StateAllocator,I=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../../syntax/trees/StateMachine.js","traceur@0.0.108/src/codegeneration/generator/CPSTransformer.js")).StateMachine,J=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./SwitchState.js","traceur@0.0.108/src/codegeneration/generator/CPSTransformer.js")),K=J.SwitchClause,L=J.SwitchState,M=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./TryState.js","traceur@0.0.108/src/codegeneration/generator/CPSTransformer.js")).TryState,N=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../ParseTreeFactory.js","traceur@0.0.108/src/codegeneration/generator/CPSTransformer.js")),O=N.createAssignStateStatement,P=N.createBreakStatement,Q=N.createCaseClause,R=N.createDefaultClause,S=N.createExpressionStatement,T=N.createFunctionBody,U=N.createIdentifierExpression,V=N.createMemberExpression,W=N.createNumberLiteral,X=N.createSwitchStatement,Y=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../HoistVariablesTransformer.js","traceur@0.0.108/src/codegeneration/generator/CPSTransformer.js"))["default"],Z=function(){ function a(a,b,c){this.name=a,this.continueState=b,this.fallThroughState=c}return $traceurRuntime.createClass(a,{},{})}(),$=function(a){function b(){$traceurRuntime.superConstructor(b).apply(this,arguments)}return $traceurRuntime.createClass(b,{visitBreakStatement:function(a){this.found=!0},visitContinueStatement:function(a){this.found=!0},visitStateMachine:function(a){this.found=!0},visitYieldExpression:function(a){this.found=!0}},{},a)}(x),_=function(a){function b(){$traceurRuntime.superConstructor(b).call(this,!0)}return $traceurRuntime.createClass(b,{prependVariables:function(a){return a},prependFunctions:function(a){return a}},{},a)}(Y),aa=function(b){function e(a,b,c){$traceurRuntime.superConstructor(e).call(this,a,b,c),this.stateAllocator_=new H,this.labelSet_=new z,this.currentLabel_=null,this.hoistVariablesTransformer_=new _}return $traceurRuntime.createClass(e,{expressionNeedsStateMachine:function(a){return!1},allocateState:function(){return this.stateAllocator_.allocateState()},transformBlock:function(a){var b=this.getLabels_(),c=this.clearCurrentLabel_(),d=$traceurRuntime.superGet(this,e.prototype,"transformBlock").call(this,a),f=this.transformStatementList_(d.statements);if(null===f)return d;if(c){for(var g=[],h=0;h=0;s--){var t=i[s];if(t.type===g){var u=t;n=this.addSwitchClauseStates_(n,m,j,u.statements,o,q),p.push(new K(u.expression,n))}else{r=!0;var v=t;n=this.addSwitchClauseStates_(n,m,j,v.statements,o,q),p.push(new K(null,n))}}r||p.push(new K(null,m)),o.push(new L(l,f,p.reverse()));var w=new I(l,m,o.reverse(),q);return h&&(w=h.append(w)),w},addSwitchClauseStates_:function(a,b,c,d,e,f){for(var g,h=this.ensureTransformedList_(d),i=0;i0){var j=b(g);d||(d=this.getDefaultConstructor_(a)),d=E(d,j,a.superClass)}return d&&f.splice(i,0,d),{elements:f,initStaticVars:h}},transformClassDeclaration:function(b){var c=this.transformClassElements_(b),d=c.elements,g=c.initStaticVars,h=this.transformAny(b.superClass),i=new f(b.location,b.name,h,d,b.annotations,b.typeParameters);if(0===g.length)return i;var j=a(b.name.identifierToken,g);return j=C(j,i),new e(null,j)},transformClassExpression:function(b){var c=this.transformClassElements_(b),d=c.elements,e=c.initStaticVars,f=this.transformAny(b.superClass),h=new g(b.location,b.name,f,d,b.annotations,b.typeParameters);if(0===e.length)return h;this.pushTempScope();var j=this.getTempIdentifier(),l=u(j),m=new i(l.location,l),n=$traceurRuntime.spread([A($traceurRuntime.getTemplateObject(["let "," = ",""]),j,h)],a(l,e),[new k(null,m)]),o=t(n);return this.popTempScope(),v(o)},getDefaultConstructor_:function(a){if(a.superClass){var b=x(u("args")),d=new h(null,[b]),e=t([A($traceurRuntime.getTemplateObject(["super(...args)"]))]),f=w(c);return new j(a.location,!1,null,f,d,null,[],e,null)}return z($traceurRuntime.getTemplateObject(["constructor() {}"]))}},{},d)}(q);return{get MemberVariableTransformer(){return F}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/outputgeneration/ParseTreeWriter.js",[],function(){"use strict";function a(a,b){return!((a!==aa&&a!==ba||b!==aa&&b!==ba)&&(a!==ja&&a!==ka||b!==ja&&b!==ka))}var b=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTreeType.js","traceur@0.0.108/src/outputgeneration/ParseTreeWriter.js")),c=b.BLOCK,d=b.CLASS_DECLARATION,e=b.FUNCTION_DECLARATION,f=b.IF_STATEMENT,g=b.LITERAL_EXPRESSION,h=b.POSTFIX_EXPRESSION,i=b.UNARY_EXPRESSION,j=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/ParseTreeVisitor.js","traceur@0.0.108/src/outputgeneration/ParseTreeWriter.js")).ParseTreeVisitor,k=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/PredefinedName.js","traceur@0.0.108/src/outputgeneration/ParseTreeWriter.js")),l=k.AS,m=k.ASYNC,n=k.AWAIT,o=k.FROM,p=k.GET,q=k.OF,r=k.ON,s=k.SET,t=k.TYPE,u=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/Scanner.js","traceur@0.0.108/src/outputgeneration/ParseTreeWriter.js")),v=u.isIdentifierPart,w=u.isWhitespace,x=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/TokenType.js","traceur@0.0.108/src/outputgeneration/ParseTreeWriter.js")),y=x.ARROW,z=x.AT,A=x.BACK_QUOTE,B=x.BAR,C=x.BREAK,D=x.CASE,E=x.CATCH,F=x.CLASS,G=x.CLOSE_ANGLE,H=x.CLOSE_CURLY,I=x.CLOSE_PAREN,J=x.CLOSE_SQUARE,K=x.COLON,L=x.COMMA,M=x.CONTINUE,N=x.DEBUGGER,O=x.DEFAULT,P=x.DO,Q=x.DOT_DOT_DOT,R=x.ELSE,S=x.EQUAL,T=x.EXPORT,U=x.EXTENDS,V=x.FINALLY,W=x.FOR,X=x.FUNCTION,Y=x.IF,Z=x.IMPORT,$=x.IN,_=x.INTERFACE,aa=x.MINUS,ba=x.MINUS_MINUS,ca=x.NEW,da=x.NUMBER,ea=x.OPEN_ANGLE,fa=x.OPEN_CURLY,ga=x.OPEN_PAREN,ha=x.OPEN_SQUARE,ia=x.PERIOD,ja=x.PLUS,ka=x.PLUS_PLUS,la=x.QUESTION,ma=x.RETURN,na=x.SEMI_COLON,oa=x.SLASH,pa=x.STAR,qa=x.STATIC,ra=x.SUPER,sa=x.SWITCH,ta=x.THIS,ua=x.THROW,va=x.TRY,wa=x.WHILE,xa=x.WITH,ya=x.YIELD,za="\n",Aa=function(b){function j(){var a,b=void 0!==arguments[0]?arguments[0]:{},c=void 0===(a=b.prettyPrint)?!0:a;$traceurRuntime.superConstructor(j).call(this),this.prettyPrint_=c,this.result_="",this.currentLine_="",this.lastCode_=-1,this.indentDepth_=0,this.currentParameterTypeAnnotation_=null}return $traceurRuntime.createClass(j,{toString:function(){return this.currentLine_.length>0&&(this.result_+=this.currentLine_,this.currentLine_="",this.lastCode_=-1),this.result_},visitAnnotation:function(a){this.write_(z),this.visitAny(a.name),null!==a.args&&(this.write_(ga),this.writeList_(a.args.args,L,!1),this.write_(I))},visitArgumentList:function(a){this.write_(ga),this.writeList_(a.args,L,!1),this.write_(I)},visitArrayComprehension:function(a){ this.write_(ha),this.visitList(a.comprehensionList),this.visitAny(a.expression),this.write_(J)},visitArrayLiteral:function(a){this.write_(ha),this.writeList_(a.elements,L,!1),null===a.elements[a.elements.length-1]&&(this.write_(L),this.writeSpace_()),this.write_(J)},visitArrayPattern:function(a){this.write_(ha),this.writeList_(a.elements,L,!1),null===a.elements[a.elements.length-1]&&(this.write_(L),this.writeSpace_()),this.write_(J)},visitArrayType:function(a){this.visitAny(a.elementType),this.write_(ha),this.write_(J)},visitArrowFunction:function(a){a.functionKind&&(this.writeToken_(a.functionKind),this.writeSpace_()),this.write_(ga),this.visitAny(a.parameterList),this.write_(I),this.writeSpace_(),this.write_(y),this.writeSpace_(),this.visitAny(a.body)},visitAssignmentElement:function(a){this.visitAny(a.assignment),a.initializer&&(this.writeSpace_(),this.write_(S),this.writeSpace_(),this.visitAny(a.initializer))},visitAwaitExpression:function(a){this.write_(n),this.writeSpace_(),this.visitAny(a.expression)},visitBinaryExpression:function(b){var c=b.left;this.visitAny(c);var d=b.operator;c.type===h&&a(c.operator.type,d.type)?this.writeRequiredSpace_():this.writeSpace_(),this.writeToken_(d);var e=b.right;e.type===i&&a(d.type,e.operator.type)?this.writeRequiredSpace_():this.writeSpace_(),this.visitAny(e)},visitBindingElement:function(a){var b=this.currentParameterTypeAnnotation_;this.currentParameterTypeAnnotation_=null,this.visitAny(a.binding),this.writeTypeAnnotation_(b),a.initializer&&(this.writeSpace_(),this.write_(S),this.writeSpace_(),this.visitAny(a.initializer))},visitBindingIdentifier:function(a){this.writeToken_(a.identifierToken)},visitBlock:function(a){this.writeOpenCurly_(),this.writelnList_(a.statements,null),this.writeCloseCurly_()},visitBreakStatement:function(a){this.write_(C),null!==a.name&&(this.writeSpace_(),this.writeToken_(a.name)),this.write_(na)},visitCallExpression:function(a){this.visitAny(a.operand),this.visitAny(a.args)},visitCallSignature:function(a){a.typeParameters&&this.visitAny(a.typeParameters),this.write_(ga),this.visitAny(a.parameterList),this.write_(I),this.writeTypeAnnotation_(a.returnType)},visitCaseClause:function(a){this.write_(D),this.writeSpace_(),this.visitAny(a.expression),this.write_(K),this.indentDepth_++,this.writelnList_(a.statements,null),this.indentDepth_--},visitCatch:function(a){this.write_(E),this.writeSpace_(),this.write_(ga),this.visitAny(a.binding),this.write_(I),this.writeSpace_(),this.visitAny(a.catchBody)},visitClassShared_:function(a){this.writeAnnotations_(a.annotations),this.write_(F),this.writeSpace_(),this.visitAny(a.name),null!==a.typeParameters&&this.visitAny(a.typeParameters),null!==a.superClass&&(this.writeSpace_(),this.write_(U),this.writeSpace_(),this.visitAny(a.superClass)),this.writeSpace_(),this.writeOpenCurly_(),this.writelnList_(a.elements,null),this.writeCloseCurly_()},visitClassDeclaration:function(a){this.visitClassShared_(a)},visitClassExpression:function(a){this.visitClassShared_(a)},visitCommaExpression:function(a){this.writeList_(a.expressions,L,!1)},visitComprehensionFor:function(a){this.write_(W),this.writeSpace_(),this.write_(ga),this.visitAny(a.left),this.writeSpace_(),this.write_(q),this.writeSpace_(),this.visitAny(a.iterator),this.write_(I),this.writeSpace_()},visitComprehensionIf:function(a){this.write_(Y),this.writeSpace_(),this.write_(ga),this.visitAny(a.expression),this.write_(I),this.writeSpace_()},visitComputedPropertyName:function(a){this.write_(ha),this.visitAny(a.expression),this.write_(J)},visitConstructSignature:function(a){this.write_(ca),this.writeSpace_(),this.visitCallSignature(a)},visitConstructorType:function(a){this.write_(ca),this.writeSpace_(),this.visitFunctionType(a)},visitConditionalExpression:function(a){this.visitAny(a.condition),this.writeSpace_(),this.write_(la),this.writeSpace_(),this.visitAny(a.left),this.writeSpace_(),this.write_(K),this.writeSpace_(),this.visitAny(a.right)},visitContinueStatement:function(a){this.write_(M),null!==a.name&&(this.writeSpace_(),this.writeToken_(a.name)),this.write_(na)},visitCoverInitializedName:function(a){this.writeToken_(a.name),this.writeSpace_(),this.writeToken_(a.equalToken),this.writeSpace_(),this.visitAny(a.initializer)},visitDebuggerStatement:function(a){this.write_(N),this.write_(na)},visitDefaultClause:function(a){this.write_(O),this.write_(K),this.indentDepth_++,this.writelnList_(a.statements,null),this.indentDepth_--},visitDoWhileStatement:function(a){this.write_(P),this.visitAnyBlockOrIndent_(a.body),this.writeSpace_(),this.write_(wa),this.writeSpace_(),this.write_(ga),this.visitAny(a.condition),this.write_(I),this.write_(na)},visitEmptyStatement:function(a){this.write_(na)},visitExportDeclaration:function(a){this.writeAnnotations_(a.annotations),this.write_(T),this.writeSpace_(),this.visitAny(a.declaration)},visitExportDefault:function(a){switch(this.write_(O),this.writeSpace_(),this.visitAny(a.expression),a.expression.type){case d:case e:break;default:this.write_(na)}},visitNameSpaceExport:function(a){this.write_(pa),this.writeSpace_(),this.write_(l),this.writeSpace_(),this.writeToken_(a.name)},visitNameSpaceImport:function(a){this.write_(pa),this.writeSpace_(),this.write_(l),this.writeSpace_(),this.visitAny(a.binding)},visitNamedExport:function(a){this.visitAny(a.exportClause),a.moduleSpecifier&&(this.writeSpace_(),this.write_(o),this.writeSpace_(),this.visitAny(a.moduleSpecifier)),this.write_(na)},visitExportSpecifier:function(a){this.writeToken_(a.lhs),a.rhs&&(this.writeSpace_(),this.write_(l),this.writeSpace_(),this.writeToken_(a.rhs))},visitExportSpecifierSet:function(a){this.writeOpenCurly_(),this.writeList_(a.specifiers,L,!1),this.writeCloseCurly_()},visitExportStar:function(a){this.write_(pa)},visitExpressionStatement:function(a){this.visitAny(a.expression),this.write_(na)},visitFinally:function(a){this.write_(V),this.writeSpace_(),this.visitAny(a.block)},visitForOfStatement:function(a){this.write_(W),this.writeSpace_(),this.write_(ga),this.visitAny(a.initializer),this.writeSpace_(),this.write_(q),this.writeSpace_(),this.visitAny(a.collection),this.write_(I),this.visitAnyBlockOrIndent_(a.body)},visitForOnStatement:function(a){this.write_(W),this.writeSpace_(),this.write_(ga),this.visitAny(a.initializer),this.writeSpace_(),this.write_(r),this.writeSpace_(),this.visitAny(a.observable),this.write_(I),this.visitAnyBlockOrIndent_(a.body)},visitForInStatement:function(a){this.write_(W),this.writeSpace_(),this.write_(ga),this.visitAny(a.initializer),this.writeSpace_(),this.write_($),this.writeSpace_(),this.visitAny(a.collection),this.write_(I),this.visitAnyBlockOrIndent_(a.body)},visitForStatement:function(a){this.write_(W),this.writeSpace_(),this.write_(ga),this.visitAny(a.initializer),this.write_(na),this.writeSpace_(),this.visitAny(a.condition),this.write_(na),this.writeSpace_(),this.visitAny(a.increment),this.write_(I),this.visitAnyBlockOrIndent_(a.body)},visitFormalParameterList:function(a){for(var b=!0,c=0;c0&&(this.writeSpace_(),this.write_(U),this.writeSpace_(),this.writeList_(a.extendsClause,L,!1)),this.writeSpace_(),this.visitAny(a.objectType)},visitAnyBlockOrIndent_:function(a){a.type===c?(this.writeSpace_(),this.visitAny(a)):this.visitAnyIndented_(a)},visitAnyIndented_:function(a){var b=void 0!==arguments[1]?arguments[1]:1;this.prettyPrint_&&(this.indentDepth_+=b,this.writeln_()),this.visitAny(a),this.prettyPrint_&&(this.indentDepth_-=b,this.writeln_())},visitImportClausePair:function(a){this.visitAny(a.first),this.write_(L),this.writeSpace_(),this.visitAny(a.second)},visitImportDeclaration:function(a){this.write_(Z),this.writeSpace_(),a.importClause&&(this.visitAny(a.importClause),this.writeSpace_(),this.write_(o),this.writeSpace_()),this.visitAny(a.moduleSpecifier),this.write_(na)},visitImportSpecifier:function(a){a.name&&(this.writeToken_(a.name),this.writeSpace_(),this.write_(l),this.writeSpace_()),this.visitAny(a.binding)},visitImportSpecifierSet:function(a){a.specifiers.type===pa?this.write_(pa):(this.writeOpenCurly_(),this.writelnList_(a.specifiers,L),this.writeCloseCurly_())},visitImportTypeClause:function(a){this.write_(t),this.writeSpace_(),this.visitAny(a.clause)},visitJsxAttribute:function(a){this.writeToken_(a.name),null!==a.value&&(this.write_(S),this.visitAny(a.value))},visitJsxElement:function(a){this.write_(ea),this.visitAny(a.name);for(var b=0;b0&&this.write_(ia),this.writeToken_(a.names[b])},visitJsxPlaceholder:function(a){this.write_(fa),null!==a.expression&&this.visitAny(a.expression),this.write_(H)},visitJsxSpreadAttribute:function(a){this.write_(fa),this.write_(Q),this.visitAny(a.expression),this.write_(H)},visitJsxText:function(a){this.writeToken_(a.value)},visitLabelledStatement:function(a){this.writeToken_(a.name),this.write_(K),this.writeSpace_(),this.visitAny(a.statement)},visitLiteralExpression:function(a){this.writeToken_(a.literalToken)},visitLiteralPropertyName:function(a){this.writeToken_(a.literalToken)},visitMemberExpression:function(a){this.visitAny(a.operand),a.operand.type===g&&a.operand.literalToken.type===da&&(/\.|e|E/.test(a.operand.literalToken.value)||this.writeRequiredSpace_()),this.write_(ia),this.writeToken_(a.memberName)},visitMemberLookupExpression:function(a){this.visitAny(a.operand),this.write_(ha),this.visitAny(a.memberExpression),this.write_(J)},visitMethodSignature:function(a){this.visitAny(a.name),a.optional&&this.write_(la),this.visitAny(a.callSignature),this.write_(na)},visitSyntaxErrorTree:function(a){this.write_("(function() {"+("throw SyntaxError("+JSON.stringify(a.message)+");")+"})()")},visitModule:function(a){this.writelnList_(a.scriptItemList,null)},visitModuleSpecifier:function(a){this.writeToken_(a.token)},visitNewExpression:function(a){this.write_(ca),this.writeSpace_(),this.visitAny(a.operand),this.visitAny(a.args)},visitObjectLiteral:function(a){this.writeOpenCurly_(),a.propertyNameAndValues.length>1&&this.writeln_(),this.writelnList_(a.propertyNameAndValues,L),a.propertyNameAndValues.length>1&&this.writeln_(),this.writeCloseCurly_()},visitObjectPattern:function(a){this.writeOpenCurly_(),this.writelnList_(a.fields,L),this.writeCloseCurly_()},visitObjectPatternField:function(a){this.visitAny(a.name),null!==a.element&&(this.write_(K),this.writeSpace_(),this.visitAny(a.element))},visitObjectType:function(a){this.writeOpenCurly_(),this.writelnList_(a.typeMembers,null),this.writeCloseCurly_()},visitParenExpression:function(a){this.write_(ga),$traceurRuntime.superGet(this,j.prototype,"visitParenExpression").call(this,a),this.write_(I)},visitPostfixExpression:function(a){this.visitAny(a.operand),a.operand.type===h&&a.operand.operator.type===a.operator.type&&this.writeRequiredSpace_(),this.writeToken_(a.operator)},visitPredefinedType:function(a){this.writeToken_(a.typeToken)},visitScript:function(a){this.writelnList_(a.scriptItemList,null)},visitMethod:function(a){this.writeAnnotations_(a.annotations),a.isStatic&&(this.write_(qa),this.writeSpace_()),(a.isAsyncFunction()||a.isAsyncGenerator())&&this.write_(m),(a.isGenerator()||a.isAsyncGenerator())&&this.write_(pa),a.isAsyncGenerator()&&this.writeSpace_(),this.visitAny(a.name),this.write_(ga),this.visitAny(a.parameterList),this.write_(I),this.writeSpace_(),this.writeTypeAnnotation_(a.typeAnnotation),this.visitAny(a.body)},visitPropertyNameAssignment:function(a){this.visitAny(a.name),this.write_(K),this.writeSpace_(),this.visitAny(a.value)},visitPropertyNameShorthand:function(a){this.writeToken_(a.name)},visitPropertyVariableDeclaration:function(a){this.writeAnnotations_(a.annotations),a.isStatic&&(this.write_(qa),this.writeSpace_()),this.visitAny(a.name),this.writeTypeAnnotation_(a.typeAnnotation),a.initalizer&&(this.writeSpace_(),this.write_(S),this.writeSpace_(),this.visitAny(a.initializer)),this.write_(na)},visitPropertySignature:function(a){this.visitAny(a.name),a.optional&&this.write_(la),this.writeTypeAnnotation_(a.typeAnnotation),this.write_(na)},visitTemplateLiteralExpression:function(a){a.operand&&(this.visitAny(a.operand),this.writeSpace_()),this.writeRaw_(A),this.visitList(a.elements),this.writeRaw_(A)},visitTemplateLiteralPortion:function(a){this.writeToken_(a.value)},visitTemplateSubstitution:function(a){this.writeRaw_("$"),this.writeRaw_(fa),this.visitAny(a.expression),this.writeRaw_(H)},visitReturnStatement:function(a){this.write_(ma),a.expression&&(this.writeSpace_(a.expression),this.visitAny(a.expression)),this.write_(na)},visitRestParameter:function(a){this.write_(Q),this.visitAny(a.identifier)},visitSetAccessor:function(a){this.writeAnnotations_(a.annotations),a.isStatic&&(this.write_(qa),this.writeSpace_()),this.write_(s),this.writeSpace_(),this.visitAny(a.name),this.write_(ga),this.visitAny(a.parameterList),this.write_(I),this.writeSpace_(),this.visitAny(a.body)},visitSpreadExpression:function(a){this.write_(Q),this.visitAny(a.expression)},visitSpreadPatternElement:function(a){this.write_(Q),this.visitAny(a.lvalue)},visitStateMachine:function(a){throw new Error("State machines cannot be converted to source")},visitSuperExpression:function(a){this.write_(ra)},visitSwitchStatement:function(a){this.write_(sa),this.writeSpace_(),this.write_(ga),this.visitAny(a.expression),this.write_(I),this.writeSpace_(),this.writeOpenCurly_(),this.writelnList_(a.caseClauses,null),this.writeCloseCurly_()},visitThisExpression:function(a){this.write_(ta)},visitThrowStatement:function(a){this.write_(ua),this.writeSpace_(),this.visitAny(a.value),this.write_(na)},visitTryStatement:function(a){this.write_(va),this.writeSpace_(),this.visitAny(a.body),a.catchBlock&&(this.writeSpace_(),this.visitAny(a.catchBlock)),a.finallyBlock&&(this.writeSpace_(),this.visitAny(a.finallyBlock))},visitTypeAliasDeclaration:function(a){this.write_(t),this.writeRequiredSpace_(),this.writeToken_(a.name),this.writeSpace_(),this.write_(S),this.writeSpace_(),this.visitAny(a.value),this.write_(na)},visitTypeArguments:function(a){this.write_(ea);var b=a.args;this.visitAny(b[0]);for(var c=1;c0&&this.writeln_(),this.writeList_(a,"",!0),a.length>0&&this.writeln_())},writeList_:function(a,b,c){for(var d=void 0!==arguments[3]?arguments[3]:0,e=!0,f=0;f1&&(this.indentDepth_-=d)},writeRaw_:function(a){this.currentLine_+=a,this.lastCode_=a.charCodeAt(a.length-1)},writeToken_:function(a){this.write_(a.toString())},write_:function(a){if(this.prettyPrint_&&0===this.currentLine_.length)for(var b=0,c=this.indentDepth_;c>b;b++)this.writeRaw_(" ");this.needsSpace_(a)&&this.writeRaw_(" "),this.writeRaw_(a)},writeCloseCurly_:function(){this.indentDepth_--,this.write_(H)},writeOpenCurly_:function(){this.write_(fa),this.indentDepth_++},writeSpace_:function(){this.prettyPrint_&&!w(this.lastCode_)&&this.writeRaw_(" ")},writeRequiredSpace_:function(){w(this.lastCode_)||this.writeRaw_(" ")},writeTypeAnnotation_:function(a){null!==a&&(this.write_(K),this.writeSpace_(),this.visitAny(a))},writeAnnotations_:function(a){var b=void 0!==arguments[1]?arguments[1]:this.prettyPrint_;a.length>0&&(this.writeList_(a,"",b),b&&this.writeln_())},needsSpace_:function(a){var b=this.lastCode_;if(w(b))return!1;var c=a.toString().charCodeAt(0);return v(c)&&(v(b)||47===b)}},{},b)}(j);return{get ParseTreeWriter(){return Aa}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/outputgeneration/ParseTreeMapWriter.js",[],function(){"use strict";function a(a,b){var c;if(!a||"@"===a[0])return a;if(!b)return a;var d=a.split("/"),e=b.split("/");if(e[e.length-1])throw new Error("rootPath must end in /");var f=0,g=[],h=!1;if(d.forEach(function(a,b){return h||a!==e[b]?(h=!0,void g.push(a)):void f++}),1>f||f===e.length)return a;for(var i=e.length-f-1,j=[];i--;)j.push("..");return(c=j).push.apply(c,$traceurRuntime.spread(g)),j.join("/")}var b=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeWriter.js","traceur@0.0.108/src/outputgeneration/ParseTreeMapWriter.js")).ParseTreeWriter,c=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../util/StringSet.js","traceur@0.0.108/src/outputgeneration/ParseTreeMapWriter.js")).StringSet,d=function(b){function d(a){var b=arguments[1];$traceurRuntime.superConstructor(d).call(this,b),this.sourceMapGenerator_=a.sourceMapGenerator,this.lowResolution_=a.lowResolution,this.basepath_=a.basepath,this.outputLineCount_=1,this.isFirstMapping_=!0,this.sourcesInMap_=new c,this.relativeSourceName_="",this.generated_=null,this.original_=null,this.previousMapping_=null}return $traceurRuntime.createClass(d,{visitAny:function(a){null!==a&&(null!==a.location&&this.enterBranch(a.location),$traceurRuntime.superGet(this,d.prototype,"visitAny").call(this,a),null!==a.location&&this.exitBranch(a.location))},writeCurrentln_:function(){$traceurRuntime.superGet(this,d.prototype,"writeCurrentln_").call(this),this.flushMappings(),this.outputLineCount_++,this.generated_={line:this.outputLineCount_,column:0},this.flushMappings()},write_:function(a){this.generate(),$traceurRuntime.superGet(this,d.prototype,"write_").call(this,a),this.generate()},generate:function(){var a=this.currentLine_.length,b=a?a-1:0;this.generated_={line:this.outputLineCount_,column:b},this.flushMappings()},enterBranch:function(a){var b=a.start,c=b.line,d=b.column,e=b.source;this.originate(c,d,e)},exitBranch:function(a){var b=a.end,c=b.line,d=b.column,e=b.source;this.originate(c,d?d-1:0,e)},originate:function(b,c,d){b++,this.original_&&this.original_.line!==b&&this.flushMappings(),this.original_={line:b,column:c};var e=d.name;e&&!this.sourcesInMap_.has(e)&&(this.sourcesInMap_.add(e),this.relativeSourceName_=a(e,this.basepath_),this.sourceMapGenerator_.setSourceContent(this.relativeSourceName_,d.contents)),this.flushMappings()},flushMappings:function(){this.original_&&this.generated_&&(this.addMapping(),this.original_=null,this.generated_=null)},isSame:function(a,b){return a.line===b.line&&a.column===b.column},skipMapping:function(){return this.previousMapping_?this.lowResolution_&&this.previousMapping_.generated.line===this.generated_.line?!0:this.isSame(this.previousMapping_.generated,this.generated_)&&this.isSame(this.previousMapping_.original,this.original_)?!0:void 0:!1},addMapping:function(){if(!this.skipMapping()){var a={generated:this.generated_,original:this.original_,source:this.relativeSourceName_};this.sourceMapGenerator_.addMapping(a),this.previousMapping_=a}}},{},b)}(b);return{get ParseTreeMapWriter(){return d},get relativePath(){return a}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/outputgeneration/SourceMapIntegration.js",[],function(){"use strict";function a(a,b){var c=function(b){return a[b]},d=a[b]={},e=null;return function(a){a(c,d,e)}}var b,c={};if(b=a(c,"./util"),"function"!=typeof b)var b=require("amdefine")(module,require);if(b(function(a,b,c){function d(a,b,c){if(b in a)return a[b];if(3===arguments.length)return c;throw new Error('"'+b+'" is a required argument.')}function e(a){var b=a.match(o);return b?{scheme:b[1],auth:b[2],host:b[3],port:b[4],path:b[5]}:null}function f(a){var b="";return a.scheme&&(b+=a.scheme+":"),b+="//",a.auth&&(b+=a.auth+"@"),a.host&&(b+=a.host),a.port&&(b+=":"+a.port),a.path&&(b+=a.path),b}function g(a){var b=a,c=e(a);if(c){if(!c.path)return a;b=c.path}for(var d="/"===b.charAt(0),g=b.split(/\/+/),h=void 0,i=0,j=g.length-1;j>=0;j--)h=g[j],"."===h?g.splice(j,1):".."===h?i++:i>0&&(""===h?(g.splice(j+1,i),i=0):(g.splice(j,2),i--));return b=g.join("/"),""===b&&(b=d?"/":"."),c?(c.path=b,f(c)):b}function h(a,b){""===a&&(a="."),""===b&&(b=".");var c=e(b),d=e(a);if(d&&(a=d.path||"/"),c&&!c.scheme)return d&&(c.scheme=d.scheme),f(c);if(c||b.match(p))return b;if(d&&!d.host&&!d.path)return d.host=b,f(d);var h="/"===b.charAt(0)?b:g(a.replace(/\/+$/,"")+"/"+b);return d?(d.path=h,f(d)):h}function i(a,b){""===a&&(a="."),a=a.replace(/\/$/,"");var c=e(a);return"/"==b.charAt(0)&&c&&"/"==c.path?b.slice(1):0===b.indexOf(a+"/")?b.substr(a.length+1):b}function j(a){return"$"+a}function k(a){return a.substr(1)}function l(a,b){var c=a||"",d=b||"";return(c>d)-(d>c)}function m(a,b,c){var d;return(d=l(a.source,b.source))?d:(d=a.originalLine-b.originalLine)?d:(d=a.originalColumn-b.originalColumn,d||c?d:(d=l(a.name,b.name))?d:(d=a.generatedLine-b.generatedLine,d?d:a.generatedColumn-b.generatedColumn))}function n(a,b,c){var d;return(d=a.generatedLine-b.generatedLine)?d:(d=a.generatedColumn-b.generatedColumn,d||c?d:(d=l(a.source,b.source))?d:(d=a.originalLine-b.originalLine)?d:(d=a.originalColumn-b.originalColumn,d?d:l(a.name,b.name)))}b.getArg=d;var o=/^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.]*)(?::(\d+))?(\S*)$/,p=/^data:.+\,.+$/;b.urlParse=e,b.urlGenerate=f,b.normalize=g,b.join=h,b.relative=i,b.toSetString=j,b.fromSetString=k,b.compareByOriginalPositions=m,b.compareByGeneratedPositions=n}),b=a(c,"./array-set"),"function"!=typeof b)var b=require("amdefine")(module,require);if(b(function(a,b,c){function d(){this._array=[],this._set={}}var e=a("./util");d.fromArray=function(a,b){for(var c=new d,e=0,f=a.length;f>e;e++)c.add(a[e],b);return c},d.prototype.add=function(a,b){var c=this.has(a),d=this._array.length;c&&!b||this._array.push(a),c||(this._set[e.toSetString(a)]=d)},d.prototype.has=function(a){return Object.prototype.hasOwnProperty.call(this._set,e.toSetString(a))},d.prototype.indexOf=function(a){if(this.has(a))return this._set[e.toSetString(a)];throw new Error('"'+a+'" is not in the set.')},d.prototype.at=function(a){if(a>=0&&aa?(-a<<1)+1:(a<<1)+0}function e(a){var b=1===(1&a),c=a>>1;return b?-c:c}var f=a("./base64"),g=5,h=1<>>=g,e>0&&(b|=j),c+=f.encode(b);while(e>0);return c},b.decode=function(a,b){var c,d,h=0,k=a.length,l=0,m=0;do{if(h>=k)throw new Error("Expected more digits in base 64 VLQ value.");d=f.decode(a.charAt(h++)),c=!!(d&j),d&=i,l+=d<0?b-g>1?d(g,b,c,e,f):g:g-a>1?d(a,g,c,e,f):0>a?-1:a}b.search=function(a,b,c){return 0===b.length?-1:d(-1,b.length,a,b,c)}}),b=a(c,"./mapping-list"),"function"!=typeof b)var b=require("amdefine")(module,require);if(b(function(a,b,c){function d(a,b){var c=a.generatedLine,d=b.generatedLine,e=a.generatedColumn,g=b.generatedColumn;return d>c||d==c&&g>=e||f.compareByGeneratedPositions(a,b)<=0}function e(){this._array=[],this._sorted=!0,this._last={generatedLine:-1,generatedColumn:0}}var f=a("./util");e.prototype.unsortedForEach=function(a,b){this._array.forEach(a,b)},e.prototype.add=function(a){d(this._last,a)?(this._last=a,this._array.push(a)):(this._sorted=!1,this._array.push(a))},e.prototype.toArray=function(){return this._sorted||(this._array.sort(f.compareByGeneratedPositions),this._sorted=!0),this._array},b.MappingList=e}),b=a(c,"./source-map-generator"),"function"!=typeof b)var b=require("amdefine")(module,require);if(b(function(a,b,c){function d(a){a||(a={}),this._file=f.getArg(a,"file",null),this._sourceRoot=f.getArg(a,"sourceRoot",null),this._skipValidation=f.getArg(a,"skipValidation",!1),this._sources=new g,this._names=new g,this._mappings=new h,this._sourcesContents=null}var e=a("./base64-vlq"),f=a("./util"),g=a("./array-set").ArraySet,h=a("./mapping-list").MappingList;d.prototype._version=3,d.fromSourceMap=function(a){var b=a.sourceRoot,c=new d({file:a.file,sourceRoot:b});return a.eachMapping(function(a){var d={generated:{line:a.generatedLine,column:a.generatedColumn}};null!=a.source&&(d.source=a.source,null!=b&&(d.source=f.relative(b,d.source)),d.original={line:a.originalLine,column:a.originalColumn},null!=a.name&&(d.name=a.name)),c.addMapping(d)}),a.sources.forEach(function(b){var d=a.sourceContentFor(b);null!=d&&c.setSourceContent(b,d)}),c},d.prototype.addMapping=function(a){var b=f.getArg(a,"generated"),c=f.getArg(a,"original",null),d=f.getArg(a,"source",null),e=f.getArg(a,"name",null);this._skipValidation||this._validateMapping(b,c,d,e),null==d||this._sources.has(d)||this._sources.add(d),null==e||this._names.has(e)||this._names.add(e),this._mappings.add({generatedLine:b.line,generatedColumn:b.column,originalLine:null!=c&&c.line,originalColumn:null!=c&&c.column,source:d,name:e})},d.prototype.setSourceContent=function(a,b){var c=a;null!=this._sourceRoot&&(c=f.relative(this._sourceRoot,c)),null!=b?(this._sourcesContents||(this._sourcesContents={}),this._sourcesContents[f.toSetString(c)]=b):this._sourcesContents&&(delete this._sourcesContents[f.toSetString(c)],0===Object.keys(this._sourcesContents).length&&(this._sourcesContents=null))},d.prototype.applySourceMap=function(a,b,c){var d=b;if(null==b){if(null==a.file)throw new Error('SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map\'s "file" property. Both were omitted.');d=a.file}var e=this._sourceRoot;null!=e&&(d=f.relative(e,d));var h=new g,i=new g;this._mappings.unsortedForEach(function(b){if(b.source===d&&null!=b.originalLine){var g=a.originalPositionFor({line:b.originalLine,column:b.originalColumn});null!=g.source&&(b.source=g.source,null!=c&&(b.source=f.join(c,b.source)),null!=e&&(b.source=f.relative(e,b.source)),b.originalLine=g.line,b.originalColumn=g.column,null!=g.name&&(b.name=g.name))}var j=b.source;null==j||h.has(j)||h.add(j);var k=b.name;null==k||i.has(k)||i.add(k)},this),this._sources=h,this._names=i,a.sources.forEach(function(b){var d=a.sourceContentFor(b);null!=d&&(null!=c&&(b=f.join(c,b)),null!=e&&(b=f.relative(e,b)),this.setSourceContent(b,d))},this)},d.prototype._validateMapping=function(a,b,c,d){if((!(a&&"line"in a&&"column"in a&&a.line>0&&a.column>=0)||b||c||d)&&!(a&&"line"in a&&"column"in a&&b&&"line"in b&&"column"in b&&a.line>0&&a.column>=0&&b.line>0&&b.column>=0&&c))throw new Error("Invalid mapping: "+JSON.stringify({generated:a,source:c,original:b,name:d}))},d.prototype._serializeMappings=function(){for(var a,b=0,c=1,d=0,g=0,h=0,i=0,j="",k=this._mappings.toArray(),l=0,m=k.length;m>l;l++){if(a=k[l],a.generatedLine!==c)for(b=0;a.generatedLine!==c;)j+=";",c++;else if(l>0){if(!f.compareByGeneratedPositions(a,k[l-1]))continue;j+=","}j+=e.encode(a.generatedColumn-b),b=a.generatedColumn,null!=a.source&&(j+=e.encode(this._sources.indexOf(a.source)-i),i=this._sources.indexOf(a.source), j+=e.encode(a.originalLine-1-g),g=a.originalLine-1,j+=e.encode(a.originalColumn-d),d=a.originalColumn,null!=a.name&&(j+=e.encode(this._names.indexOf(a.name)-h),h=this._names.indexOf(a.name)))}return j},d.prototype._generateSourcesContent=function(a,b){return a.map(function(a){if(!this._sourcesContents)return null;null!=b&&(a=f.relative(b,a));var c=f.toSetString(a);return Object.prototype.hasOwnProperty.call(this._sourcesContents,c)?this._sourcesContents[c]:null},this)},d.prototype.toJSON=function(){var a={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};return null!=this._file&&(a.file=this._file),null!=this._sourceRoot&&(a.sourceRoot=this._sourceRoot),this._sourcesContents&&(a.sourcesContent=this._generateSourcesContent(a.sources,a.sourceRoot)),a},d.prototype.toString=function(){return JSON.stringify(this)},b.SourceMapGenerator=d}),b=a(c,"./source-map-consumer"),"function"!=typeof b)var b=require("amdefine")(module,require);if(b(function(a,b,c){function d(a){var b=a;"string"==typeof a&&(b=JSON.parse(a.replace(/^\)\]\}'/,"")));var c=e.getArg(b,"version"),d=e.getArg(b,"sources"),f=e.getArg(b,"names",[]),h=e.getArg(b,"sourceRoot",null),i=e.getArg(b,"sourcesContent",null),j=e.getArg(b,"mappings"),k=e.getArg(b,"file",null);if(c!=this._version)throw new Error("Unsupported version: "+c);d=d.map(e.normalize),this._names=g.fromArray(f,!0),this._sources=g.fromArray(d,!0),this.sourceRoot=h,this.sourcesContent=i,this._mappings=j,this.file=k}var e=a("./util"),f=a("./binary-search"),g=a("./array-set").ArraySet,h=a("./base64-vlq");d.fromSourceMap=function(a){var b=Object.create(d.prototype);return b._names=g.fromArray(a._names.toArray(),!0),b._sources=g.fromArray(a._sources.toArray(),!0),b.sourceRoot=a._sourceRoot,b.sourcesContent=a._generateSourcesContent(b._sources.toArray(),b.sourceRoot),b.file=a._file,b.__generatedMappings=a._mappings.toArray().slice(),b.__originalMappings=a._mappings.toArray().slice().sort(e.compareByOriginalPositions),b},d.prototype._version=3,Object.defineProperty(d.prototype,"sources",{get:function(){return this._sources.toArray().map(function(a){return null!=this.sourceRoot?e.join(this.sourceRoot,a):a},this)}}),d.prototype.__generatedMappings=null,Object.defineProperty(d.prototype,"_generatedMappings",{get:function(){return this.__generatedMappings||(this.__generatedMappings=[],this.__originalMappings=[],this._parseMappings(this._mappings,this.sourceRoot)),this.__generatedMappings}}),d.prototype.__originalMappings=null,Object.defineProperty(d.prototype,"_originalMappings",{get:function(){return this.__originalMappings||(this.__generatedMappings=[],this.__originalMappings=[],this._parseMappings(this._mappings,this.sourceRoot)),this.__originalMappings}}),d.prototype._nextCharIsMappingSeparator=function(a){var b=a.charAt(0);return";"===b||","===b},d.prototype._parseMappings=function(a,b){for(var c,d=1,f=0,g=0,i=0,j=0,k=0,l=a,m={};l.length>0;)if(";"===l.charAt(0))d++,l=l.slice(1),f=0;else if(","===l.charAt(0))l=l.slice(1);else{if(c={},c.generatedLine=d,h.decode(l,m),c.generatedColumn=f+m.value,f=c.generatedColumn,l=m.rest,l.length>0&&!this._nextCharIsMappingSeparator(l)){if(h.decode(l,m),c.source=this._sources.at(j+m.value),j+=m.value,l=m.rest,0===l.length||this._nextCharIsMappingSeparator(l))throw new Error("Found a source, but no line and column");if(h.decode(l,m),c.originalLine=g+m.value,g=c.originalLine,c.originalLine+=1,l=m.rest,0===l.length||this._nextCharIsMappingSeparator(l))throw new Error("Found a source and line, but no column");h.decode(l,m),c.originalColumn=i+m.value,i=c.originalColumn,l=m.rest,l.length>0&&!this._nextCharIsMappingSeparator(l)&&(h.decode(l,m),c.name=this._names.at(k+m.value),k+=m.value,l=m.rest)}this.__generatedMappings.push(c),"number"==typeof c.originalLine&&this.__originalMappings.push(c)}this.__generatedMappings.sort(e.compareByGeneratedPositions),this.__originalMappings.sort(e.compareByOriginalPositions)},d.prototype._findMapping=function(a,b,c,d,e){if(a[c]<=0)throw new TypeError("Line must be greater than or equal to 1, got "+a[c]);if(a[d]<0)throw new TypeError("Column must be greater than or equal to 0, got "+a[d]);return f.search(a,b,e)},d.prototype.computeColumnSpans=function(){for(var a=0;a=0){var d=this._generatedMappings[c];if(d.generatedLine===b.generatedLine){var f=e.getArg(d,"source",null);return null!=f&&null!=this.sourceRoot&&(f=e.join(this.sourceRoot,f)),{source:f,line:e.getArg(d,"originalLine",null),column:e.getArg(d,"originalColumn",null),name:e.getArg(d,"name",null)}}}return{source:null,line:null,column:null,name:null}},d.prototype.sourceContentFor=function(a){if(!this.sourcesContent)return null;if(null!=this.sourceRoot&&(a=e.relative(this.sourceRoot,a)),this._sources.has(a))return this.sourcesContent[this._sources.indexOf(a)];var b;if(null!=this.sourceRoot&&(b=e.urlParse(this.sourceRoot))){var c=a.replace(/^file:\/\//,"");if("file"==b.scheme&&this._sources.has(c))return this.sourcesContent[this._sources.indexOf(c)];if((!b.path||"/"==b.path)&&this._sources.has("/"+a))return this.sourcesContent[this._sources.indexOf("/"+a)]}throw new Error('"'+a+'" is not in the SourceMap.')},d.prototype.generatedPositionFor=function(a){var b={source:e.getArg(a,"source"),originalLine:e.getArg(a,"line"),originalColumn:e.getArg(a,"column")};null!=this.sourceRoot&&(b.source=e.relative(this.sourceRoot,b.source));var c=this._findMapping(b,this._originalMappings,"originalLine","originalColumn",e.compareByOriginalPositions);if(c>=0){var d=this._originalMappings[c];return{line:e.getArg(d,"generatedLine",null),column:e.getArg(d,"generatedColumn",null),lastColumn:e.getArg(d,"lastGeneratedColumn",null)}}return{line:null,column:null,lastColumn:null}},d.prototype.allGeneratedPositionsFor=function(a){var b={source:e.getArg(a,"source"),originalLine:e.getArg(a,"line"),originalColumn:1/0};null!=this.sourceRoot&&(b.source=e.relative(this.sourceRoot,b.source));var c=[],d=this._findMapping(b,this._originalMappings,"originalLine","originalColumn",e.compareByOriginalPositions);if(d>=0)for(var f=this._originalMappings[d];f&&f.originalLine===b.originalLine;)c.push({line:e.getArg(f,"generatedLine",null),column:e.getArg(f,"generatedColumn",null),lastColumn:e.getArg(f,"lastGeneratedColumn",null)}),f=this._originalMappings[--d];return c.reverse()},d.GENERATED_ORDER=1,d.ORIGINAL_ORDER=2,d.prototype.eachMapping=function(a,b,c){var f,g=b||null,h=c||d.GENERATED_ORDER;switch(h){case d.GENERATED_ORDER:f=this._generatedMappings;break;case d.ORIGINAL_ORDER:f=this._originalMappings;break;default:throw new Error("Unknown order of iteration.")}var i=this.sourceRoot;f.map(function(a){var b=a.source;return null!=b&&null!=i&&(b=e.join(i,b)),{source:b,generatedLine:a.generatedLine,generatedColumn:a.generatedColumn,originalLine:a.originalLine,originalColumn:a.originalColumn,name:a.name}}).forEach(a,g)},b.SourceMapConsumer=d}),b=a(c,"./source-node"),"function"!=typeof b)var b=require("amdefine")(module,require);b(function(a,b,c){function d(a,b,c,d,e){this.children=[],this.sourceContents={},this.line=null==a?null:a,this.column=null==b?null:b,this.source=null==c?null:c,this.name=null==e?null:e,this[i]=!0,null!=d&&this.add(d)}var e=a("./source-map-generator").SourceMapGenerator,f=a("./util"),g=/(\r?\n)/,h=10,i="$$$isSourceNode$$$";d.fromStringWithSourceMap=function(a,b,c){function e(a,b){if(null===a||void 0===a.source)h.add(b);else{var e=c?f.join(c,a.source):a.source;h.add(new d(a.originalLine,a.originalColumn,e,b,a.name))}}var h=new d,i=a.split(g),j=function(){var a=i.shift(),b=i.shift()||"";return a+b},k=1,l=0,m=null;return b.eachMapping(function(a){if(null!==m){if(!(k0&&(m&&e(m,j()),h.add(i.join(""))),b.sources.forEach(function(a){var d=b.sourceContentFor(a);null!=d&&(null!=c&&(a=f.join(c,a)),h.setSourceContent(a,d))}),h},d.prototype.add=function(a){if(Array.isArray(a))a.forEach(function(a){this.add(a)},this);else{if(!a[i]&&"string"!=typeof a)throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+a);a&&this.children.push(a)}return this},d.prototype.prepend=function(a){if(Array.isArray(a))for(var b=a.length-1;b>=0;b--)this.prepend(a[b]);else{if(!a[i]&&"string"!=typeof a)throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+a);this.children.unshift(a)}return this},d.prototype.walk=function(a){for(var b,c=0,d=this.children.length;d>c;c++)b=this.children[c],b[i]?b.walk(a):""!==b&&a(b,{source:this.source,line:this.line,column:this.column,name:this.name})},d.prototype.join=function(a){var b,c,d=this.children.length;if(d>0){for(b=[],c=0;d-1>c;c++)b.push(this.children[c]),b.push(a);b.push(this.children[c]),this.children=b}return this},d.prototype.replaceRight=function(a,b){var c=this.children[this.children.length-1];return c[i]?c.replaceRight(a,b):"string"==typeof c?this.children[this.children.length-1]=c.replace(a,b):this.children.push("".replace(a,b)),this},d.prototype.setSourceContent=function(a,b){this.sourceContents[f.toSetString(a)]=b},d.prototype.walkSourceContents=function(a){for(var b=0,c=this.children.length;c>b;b++)this.children[b][i]&&this.children[b].walkSourceContents(a);for(var d=Object.keys(this.sourceContents),b=0,c=d.length;c>b;b++)a(f.fromSetString(d[b]),this.sourceContents[d[b]])},d.prototype.toString=function(){var a="";return this.walk(function(b){a+=b}),a},d.prototype.toStringWithSourceMap=function(a){var b={code:"",line:1,column:0},c=new e(a),d=!1,f=null,g=null,i=null,j=null;return this.walk(function(a,e){b.code+=a,null!==e.source&&null!==e.line&&null!==e.column?(f===e.source&&g===e.line&&i===e.column&&j===e.name||c.addMapping({source:e.source,original:{line:e.line,column:e.column},generated:{line:b.line,column:b.column},name:e.name}),f=e.source,g=e.line,i=e.column,j=e.name,d=!0):d&&(c.addMapping({generated:{line:b.line,column:b.column}}),f=null,d=!1);for(var k=0,l=a.length;l>k;k++)a.charCodeAt(k)===h?(b.line++,b.column=0,k+1===l?(f=null,d=!1):d&&c.addMapping({source:e.source,original:{line:e.line,column:e.column},generated:{line:b.line,column:b.column},name:e.name})):b.column++}),this.walkSourceContents(function(a,b){c.setSourceContent(a,b)}),{code:b.code,map:c}},b.SourceNode=d});var d=c["./source-map-generator"].SourceMapGenerator,e=c["./source-map-consumer"].SourceMapConsumer,f=c["./source-node"].SourceNode,g=c["./util"].join;return{get SourceMapGenerator(){return d},get SourceMapConsumer(){return e},get SourceNode(){return f},get join(){return g}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/outputgeneration/toSource.js",[],function(){"use strict";function a(a){var e=arguments[1],f=void 0!==arguments[2]?arguments[2]:"",g=arguments[3],h=e&&e.sourceMapGenerator,i=e&&e.sourceMaps;!h&&i&&(h=new d({file:f,sourceRoot:g,skipValidation:!0}));var j,k={sourceMapGenerator:h,sourceRoot:g,lowResolution:e&&e.lowResolutionSourceMap};return j=h?new b(k,e):new c(e),j.visitAny(a),[j.toString(),h&&h.toString()]}var b=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeMapWriter.js","traceur@0.0.108/src/outputgeneration/toSource.js")).ParseTreeMapWriter,c=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeWriter.js","traceur@0.0.108/src/outputgeneration/toSource.js")).ParseTreeWriter,d=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./SourceMapIntegration.js","traceur@0.0.108/src/outputgeneration/toSource.js")).SourceMapGenerator;return{get toSource(){return a}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/outputgeneration/TreeWriter.js",[],function(){"use strict";function a(a){var c,d,e=arguments[1],f=void 0!==arguments[2]?arguments[2]:"",g=arguments[3],h=b(a,e,f,g),i=(c=h[Symbol.iterator](),(d=c.next()).done?void 0:d.value),j=(d=c.next()).done?void 0:d.value;return j&&(e.generatedSourceMap=j),i}var b=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./toSource.js","traceur@0.0.108/src/outputgeneration/TreeWriter.js")).toSource,c=function(){function a(){}return $traceurRuntime.createClass(a,{},{})}();return c.write=a,{get write(){return a},get TreeWriter(){return c}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/syntax/ParseTreeValidator.js",[],function(){"use strict";var a=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTrees.js","traceur@0.0.108/src/syntax/ParseTreeValidator.js")).NewExpression,b=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeVisitor.js","traceur@0.0.108/src/syntax/ParseTreeValidator.js")).ParseTreeVisitor,c=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../outputgeneration/TreeWriter.js","traceur@0.0.108/src/syntax/ParseTreeValidator.js")).TreeWriter,d=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./TokenType.js","traceur@0.0.108/src/syntax/ParseTreeValidator.js")),e=d.AMPERSAND,f=d.AMPERSAND_EQUAL,g=d.AND,h=d.BAR,i=d.BAR_EQUAL,j=d.CARET,k=d.CARET_EQUAL,l=d.CLOSE_ANGLE,m=d.EQUAL,n=d.EQUAL_EQUAL,o=d.EQUAL_EQUAL_EQUAL,p=d.GREATER_EQUAL,q=d.IDENTIFIER,r=d.IN,s=d.INSTANCEOF,t=d.LEFT_SHIFT,u=d.LEFT_SHIFT_EQUAL,v=d.LESS_EQUAL,w=d.MINUS,x=d.MINUS_EQUAL,y=d.NOT_EQUAL,z=d.NOT_EQUAL_EQUAL,A=d.NUMBER,B=d.OPEN_ANGLE,C=d.OR,D=d.PERCENT,E=d.PERCENT_EQUAL,F=d.PLUS,G=d.PLUS_EQUAL,H=d.RIGHT_SHIFT,I=d.RIGHT_SHIFT_EQUAL,J=d.SLASH,K=d.SLASH_EQUAL,L=d.STAR,M=d.STAR_EQUAL,N=d.STAR_STAR,O=d.STAR_STAR_EQUAL,P=d.STRING,Q=d.UNSIGNED_RIGHT_SHIFT,R=d.UNSIGNED_RIGHT_SHIFT_EQUAL,S=d.YIELD,T=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./trees/ParseTreeType.js","traceur@0.0.108/src/syntax/ParseTreeValidator.js")),U=T.ARRAY_PATTERN,V=T.ASSIGNMENT_ELEMENT,W=T.BINDING_ELEMENT,X=T.BINDING_IDENTIFIER,Y=T.BLOCK,Z=T.CASE_CLAUSE,$=T.CATCH,_=T.CLASS_DECLARATION,aa=T.COMPUTED_PROPERTY_NAME,ba=T.DEFAULT_CLAUSE,ca=T.EXPORT_DEFAULT,da=T.EXPORT_SPECIFIER,ea=T.EXPORT_SPECIFIER_SET,fa=T.EXPORT_STAR,ga=T.FINALLY,ha=T.FORMAL_PARAMETER,ia=T.FORMAL_PARAMETER_LIST,ja=T.FORWARD_DEFAULT_EXPORT,ka=T.FUNCTION_BODY,la=T.FUNCTION_DECLARATION,ma=T.GET_ACCESSOR,na=T.IDENTIFIER_EXPRESSION,oa=T.IMPORTED_BINDING,pa=T.IMPORT_CLAUSE_PAIR,qa=T.IMPORT_SPECIFIER_SET,ra=T.IMPORT_TYPE_CLAUSE,sa=T.JSX_ATTRIBUTE,ta=T.JSX_ELEMENT_NAME,ua=T.JSX_ELEMENT,va=T.JSX_PLACEHOLDER,wa=T.JSX_SPREAD_ATTRIBUTE,xa=T.JSX_TEXT,ya=T.LITERAL_PROPERTY_NAME,za=T.METHOD,Aa=T.MODULE_SPECIFIER,Ba=T.NAMED_EXPORT,Ca=T.NAME_SPACE_EXPORT,Da=T.NAME_SPACE_IMPORT,Ea=T.OBJECT_PATTERN,Fa=T.OBJECT_PATTERN_FIELD,Ga=T.PROPERTY_NAME_ASSIGNMENT,Ha=T.PROPERTY_NAME_SHORTHAND,Ia=T.PROPERTY_VARIABLE_DECLARATION,Ja=T.REST_PARAMETER,Ka=T.SET_ACCESSOR,La=T.SPREAD_EXPRESSION,Ma=T.TEMPLATE_LITERAL_PORTION,Na=T.TEMPLATE_SUBSTITUTION,Oa=T.TYPE_ALIAS_DECLARATION,Pa=T.TYPE_ARGUMENTS,Qa=T.TYPE_NAME,Ra=T.TYPE_PARAMETER,Sa=T.TYPE_PARAMETERS,Ta=T.VARIABLE_DECLARATION_LIST,Ua=T.VARIABLE_STATEMENT,Va=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../util/assert.js","traceur@0.0.108/src/syntax/ParseTreeValidator.js")).assert,Wa=function(a){function b(a,c){$traceurRuntime.superConstructor(b).call(this),this.tree=a,this.message=c}return $traceurRuntime.createClass(b,{},{},a)}(Error),Xa=function(b){function c(){$traceurRuntime.superConstructor(c).apply(this,arguments)}return $traceurRuntime.createClass(c,{fail_:function(a,b){throw new Wa(a,b)},check_:function(a,b,c){a||this.fail_(b,c)},checkVisit_:function(a,b,c){this.check_(a,b,c),this.visitAny(b)},checkType_:function(a,b,c){this.checkVisit_(b.type===a,b,c)},visitArgumentList:function(a){for(var b=0;b0,a,"expected at least one identifier");for(var b=0;b=b,d,"no more than one default clause allowed")):this.checkType_(Z,d,"case or default clause expected")}},visitThrowStatement:function(a){null!==a.value&&this.checkVisit_(a.value.isExpression(),a.value,"expression expected")},visitTryStatement:function(a){this.checkType_(Y,a.body,"block expected"),null!==a.catchBlock&&this.checkType_($,a.catchBlock,"catch block expected"),null!==a.finallyBlock&&this.checkType_(ga,a.finallyBlock,"finally block expected"),null===a.catchBlock&&null===a.finallyBlock&&this.fail_(a,"either catch or finally must be present")},visitTypeArguments:function(a){for(var b=a.args,c=0;ce;){if(c=a[e],d=a[e+1],b>=c&&d>b)return b==c?d==c+1?(a.splice(e,2),a):(a[e]=b+1,a):b==d-1?(a[e+1]=b,a):(a.splice(e,2,c,b,b+1,d),a);e+=2}return a},z=function(a,b,c){if(b>c)throw Error(e.rangeOrder);for(var d,f,g=0;gc)return a;if(d>=b&&c>=f)a.splice(g,2);else{if(b>=d&&f>c)return b==d?(a[g]=c+1,a[g+1]=f+1,a):(a.splice(g,2,d,b,c+1,f+1),a);if(b>=d&&f>=b)a[g+1]=b;else if(c>=d&&f>=c)return a[g]=c+1,a;g+=2}}return a},A=function(a,b){var c,d,f=0,g=null,h=a.length;if(0>b||b>1114111)throw RangeError(e.codePointRange);for(;h>f;){if(c=a[f],d=a[f+1],b>=c&&d>b)return a;if(b==c-1)return a[f]=b,a;if(c>b)return a.splice(null!=g?g+2:0,0,b,b+1),a;if(b==d)return b+1==a[f+2]?(a.splice(f,4,c,a[f+3]),a):(a[f+1]=b+1,a);g=f,f+=2}return a.push(b,b+1),a},B=function(a,b){for(var c,d,e=0,f=a.slice(),g=b.length;g>e;)c=b[e],d=b[e+1]-1,f=c==d?A(f,c):D(f,c,d),e+=2;return f},C=function(a,b){for(var c,d,e=0,f=a.slice(),g=b.length;g>e;)c=b[e],d=b[e+1]-1,f=c==d?y(f,c):z(f,c,d),e+=2;return f},D=function(a,b,c){if(b>c)throw Error(e.rangeOrder);if(0>b||b>1114111||0>c||c>1114111)throw RangeError(e.codePointRange);for(var d,f,g=0,h=!1,i=a.length;i>g;){if(d=a[g],f=a[g+1],h){if(d==c+1)return a.splice(g-1,2),a;if(d>c)return a;d>=b&&c>=d&&(f>b&&c>=f-1?(a.splice(g,2),g-=2):(a.splice(g-1,2),g-=2))}else{if(d==c+1)return a[g]=b,a;if(d>c)return a.splice(g,0,b,c+1),a;if(b>=d&&f>b&&f>=c+1)return a;b>=d&&f>b||f==b?(a[g+1]=c+1,h=!0):d>=b&&c+1>=f&&(a[g]=b,a[g+1]=c+1,h=!0)}g+=2}return h||a.push(b,c+1),a},E=function(a,b){var c=0,d=a.length,e=a[c],f=a[d-1];if(d>=2&&(e>b||b>f))return!1;for(;d>c;){if(e=a[c],f=a[c+1],b>=e&&f>b)return!0;c+=2}return!1},F=function(a,b){for(var c,d=0,e=b.length,f=[];e>d;)c=b[d],E(a,c)&&f.push(c),++d;return x(f)},G=function(a){return!a.length},H=function(a){return 2==a.length&&a[0]+1==a[1]},I=function(a){for(var b,c,d=0,e=[],f=a.length;f>d;){for(b=a[d],c=a[d+1];c>b;)e.push(b),++b;d+=2}return e},J=Math.floor,K=function(a){return parseInt(J((a-65536)/1024)+f,10)},L=function(a){return parseInt((a-65536)%1024+h,10)},M=String.fromCharCode,N=function(a){var b;return b=9==a?"\\t":10==a?"\\n":12==a?"\\f":13==a?"\\r":92==a?"\\\\":36==a||a>=40&&43>=a||45==a||46==a||63==a||a>=91&&94>=a||a>=123&&125>=a?"\\"+M(a):a>=32&&126>=a?M(a):255>=a?"\\x"+u(v(a),2):"\\u"+u(v(a),4)},O=function(a){var b,c=a.length,d=a.charCodeAt(0);return d>=f&&g>=d&&c>1?(b=a.charCodeAt(1),1024*(d-f)+b-h+65536):d},P=function(a){var b,c,d="",e=0,f=a.length;if(H(a))return N(a[0]);for(;f>e;)b=a[e],c=a[e+1]-1,d+=b==c?N(b):b+1==c?N(b)+N(c):N(b)+"-"+N(c),e+=2;return"["+d+"]"},Q=function(a){for(var b,c,d=[],e=[],j=[],k=[],l=0,m=a.length;m>l;)b=a[l],c=a[l+1]-1,f>b?(f>c&&j.push(b,c+1),c>=f&&g>=c&&(j.push(b,f),d.push(f,c+1)),c>=h&&i>=c&&(j.push(b,f),d.push(f,g+1),e.push(h,c+1)),c>i&&(j.push(b,f),d.push(f,g+1),e.push(h,i+1),65535>=c?j.push(i+1,c+1):(j.push(i+1,65536),k.push(65536,c+1)))):b>=f&&g>=b?(c>=f&&g>=c&&d.push(b,c+1),c>=h&&i>=c&&(d.push(b,g+1),e.push(h,c+1)),c>i&&(d.push(b,g+1),e.push(h,i+1),65535>=c?j.push(i+1,c+1):(j.push(i+1,65536),k.push(65536,c+1)))):b>=h&&i>=b?(c>=h&&i>=c&&e.push(b,c+1),c>i&&(e.push(b,i+1),65535>=c?j.push(i+1,c+1):(j.push(i+1,65536),k.push(65536,c+1)))):b>i&&65535>=b?65535>=c?j.push(b,c+1):(j.push(b,65536),k.push(65536,c+1)):k.push(b,c+1),l+=2;return{loneHighSurrogates:d,loneLowSurrogates:e,bmp:j,astral:k}},R=function(a){for(var b,c,d,e,f,g,h=[],i=[],j=!1,k=-1,l=a.length;++kj;){b=a[j],c=a[j+1]-1,d=K(b),e=L(b),f=K(c),g=L(c);var o=e==h,p=g==i,q=!1;d==f||o&&p?(m.push([[d,f+1],[e,g+1]]),q=!0):m.push([[d,d+1],[e,i+1]]),!q&&f>d+1&&(p?(m.push([[d+1,f+1],[h,g+1]]),q=!0):m.push([[d+1,f],[h,i+1]])),q||m.push([[f,f+1],[h,g+1]]),k=d,l=f,j+=2}return R(m)},U=function(a){var b=[];return p(a,function(a){var c=a[0],d=a[1];b.push(P(c)+P(d))}),b.join("|")},V=function(a,b){var c=[],d=Q(a),e=d.loneHighSurrogates,f=d.loneLowSurrogates,g=d.bmp,h=d.astral,i=(!G(d.astral),!G(e)),j=!G(f),k=T(h);return b&&(g=B(g,e),i=!1,g=B(g,f),j=!1),G(g)||c.push(P(g)),k.length&&c.push(U(k)),i&&c.push(P(e)+"(?![\\uDC00-\\uDFFF])"),j&&c.push("(?:[^\\uD800-\\uDBFF]|^)"+P(f)),c.join("|")},W=function(a){return arguments.length>1&&(a=w.call(arguments)),this instanceof W?(this.data=[],a?this.add(a):this):(new W).add(a)};W.version="1.2.0";var X=W.prototype;o(X,{add:function(a){var b=this;return null==a?b:a instanceof W?(b.data=B(b.data,a.data),b):(arguments.length>1&&(a=w.call(arguments)),r(a)?(p(a,function(a){b.add(a)}),b):(b.data=A(b.data,s(a)?a:O(a)),b))},remove:function(a){var b=this;return null==a?b:a instanceof W?(b.data=C(b.data,a.data),b):(arguments.length>1&&(a=w.call(arguments)),r(a)?(p(a,function(a){b.remove(a)}),b):(b.data=y(b.data,s(a)?a:O(a)),b))},addRange:function(a,b){var c=this;return c.data=D(c.data,s(a)?a:O(a),s(b)?b:O(b)),c},removeRange:function(a,b){var c=this,d=s(a)?a:O(a),e=s(b)?b:O(b);return c.data=z(c.data,d,e),c},intersection:function(a){var b=this,c=a instanceof W?I(a.data):a;return b.data=F(b.data,c),b},contains:function(a){return E(this.data,s(a)?a:O(a))},clone:function(){var a=new W;return a.data=this.data.slice(0),a},toString:function(a){var b=V(this.data,a?a.bmpOnly:!1);return b.replace(l,"\\0$1")},toRegExp:function(a){return RegExp(this.toString(),a||"")},valueOf:function(){return I(this.data)}}),X.toArray=X.valueOf,"function"==typeof define&&"object"==typeof define.amd&&define.amd?define(function(){return W}):b&&!b.nodeType?c?c.exports=W:b.regenerate=W:a.regenerate=W}(this),i.regenerate=j.exports||window.regenerate,function(){function a(){var a,b,c=16384,d=[],e=-1,f=arguments.length;if(!f)return"";for(var g="";++eh||h>1114111||z(h)!=h)throw RangeError("Invalid code point: "+h);65535>=h?d.push(h):(h-=65536,a=(h>>10)+55296,b=h%1024+56320,d.push(a,b)),(e+1==f||d.length>c)&&(g+=y.apply(null,d),d.length=0)}return g}function b(a,c){if(-1==c.indexOf("|")){if(a==c)return;throw Error("Invalid node type: "+a)}if(c=b.hasOwnProperty(c)?b[c]:b[c]=RegExp("^(?:"+c+")$"),!c.test(a))throw Error("Invalid node type: "+a)}function c(a){var b=a.type;if(c.hasOwnProperty(b)&&"function"==typeof c[b])return c[b](a);throw Error("Invalid node type: "+b)}function d(a){b(a.type,"alternative");var c=a.body,d=c?c.length:0;if(1==d)return r(c[0]);for(var e=-1,f="";++e=55296&&56319>=c&&(d=v().charCodeAt(0),d>=56320&&57343>=d))return Z++,f("symbol",1024*(c-55296)+d-56320+65536,Z-2,Z)}return f("symbol",c,Z-1,Z)}function i(a,b,d){return c({type:"disjunction",body:a,range:[b,d]})}function j(){return c({type:"dot",range:[Z-1,Z]})}function k(a){return c({type:"characterClassEscape",value:a,range:[Z-2,Z]})}function l(a){return c({type:"reference",matchIndex:parseInt(a,10),range:[Z-1-a.length,Z]})}function m(a,b,d,e){return c({type:"group",behavior:a,body:b,range:[d,e]})}function n(a,b,d,e){return null==e&&(d=Z-1,e=Z),c({type:"quantifier",min:a,max:b,greedy:!0,body:null,range:[d,e]})}function o(a,b,d){return c({type:"alternative",body:a,range:[b,d]})}function p(a,b,d,e){return c({type:"characterClass",body:a,negative:b,range:[d,e]})}function q(a,b,d,e){return a.codePoint>b.codePoint&&U("invalid range in character class",a.raw+"-"+b.raw,d,e),c({type:"characterClassRange",min:a,max:b,range:[d,e]})}function r(a){return"alternative"===a.type?a.body:[a]}function s(b){b=b||1;var c=a.substring(Z,Z+b);return Z+=b||1,c}function t(a){u(a)||U("character",a)}function u(b){return a.indexOf(b,Z)===Z?s(b.length):void 0}function v(){return a[Z]}function w(b){return a.indexOf(b,Z)===Z}function x(b){return a[Z+1]===b}function y(b){var c=a.substring(Z),d=c.match(b);return d&&(d.range=[],d.range[0]=Z,s(d[0].length),d.range[1]=Z),d}function z(){var a=[],b=Z;for(a.push(A());u("|");)a.push(A());return 1===a.length?a[0]:i(a,b,Z)}function A(){for(var a,b=[],c=Z;a=B();)b.push(a);return 1===b.length?b[0]:o(b,c,Z)}function B(){if(Z>=a.length||w("|")||w(")"))return null;var b=D();if(b)return b;var c=F();c||U("Expected atom");var e=E()||!1;return e?(e.body=r(c),d(e,c.range[0]),e):c}function C(a,b,c,d){var e=null,f=Z;if(u(a))e=b;else{if(!u(c))return!1;e=d}var g=z();g||U("Expected disjunction"),t(")");var h=m(e,r(g),f,Z);return"normal"==e&&X&&W++,h}function D(){return u("^")?e("start",1):u("$")?e("end",1):u("\\b")?e("boundary",2):u("\\B")?e("not-boundary",2):C("(?=","lookahead","(?!","negativeLookahead")}function E(){var a,b,c,d,e=Z;return u("*")?b=n(0):u("+")?b=n(1):u("?")?b=n(0,1):(a=y(/^\{([0-9]+)\}/))?(c=parseInt(a[1],10),b=n(c,c,a.range[0],a.range[1])):(a=y(/^\{([0-9]+),\}/))?(c=parseInt(a[1],10),b=n(c,void 0,a.range[0],a.range[1])):(a=y(/^\{([0-9]+),([0-9]+)\}/))&&(c=parseInt(a[1],10), d=parseInt(a[2],10),c>d&&U("numbers out of order in {} quantifier","",e,Z),b=n(c,d,a.range[0],a.range[1])),b&&u("?")&&(b.greedy=!1,b.range[1]+=1),b}function F(){var a;return(a=y(/^[^^$\\.*+?(){[|]/))?h(a):u(".")?j():u("\\")?(a=I(),a||U("atomEscape"),a):(a=N())?a:C("(?:","ignore","(","normal")}function G(a){if(Y){var b,d;if("unicodeEscape"==a.kind&&(b=a.codePoint)>=55296&&56319>=b&&w("\\")&&x("u")){var e=Z;Z++;var f=H();"unicodeEscape"==f.kind&&(d=f.codePoint)>=56320&&57343>=d?(a.range[1]=f.range[1],a.codePoint=1024*(b-55296)+d-56320+65536,a.type="value",a.kind="unicodeCodePointEscape",c(a)):Z=e}}return a}function H(){return I(!0)}function I(a){var b,c=Z;if(b=J())return b;if(a){if(u("b"))return g("singleEscape",8,"\\b");u("B")&&U("\\B not possible inside of CharacterClass","",c)}return b=K()}function J(){var a,b;if(a=y(/^(?!0)\d+/)){b=a[0];var c=parseInt(a[0],10);return W>=c?l(a[0]):(V.push(c),s(-a[0].length),(a=y(/^[0-7]{1,3}/))?g("octal",parseInt(a[0],8),a[0],1):(a=h(y(/^[89]/)),d(a,a.range[0]-1)))}return(a=y(/^[0-7]{1,3}/))?(b=a[0],/^0{1,3}$/.test(b)?g("null",0,"0",b.length+1):g("octal",parseInt(b,8),b,1)):(a=y(/^[dDsSwW]/))?k(a[0]):!1}function K(){var a;if(a=y(/^[fnrtv]/)){var b=0;switch(a[0]){case"t":b=9;break;case"n":b=10;break;case"v":b=11;break;case"f":b=12;break;case"r":b=13}return g("singleEscape",b,"\\"+a[0])}return(a=y(/^c([a-zA-Z])/))?g("controlLetter",a[1].charCodeAt(0)%32,a[1],2):(a=y(/^x([0-9a-fA-F]{2})/))?g("hexadecimalEscape",parseInt(a[1],16),a[1],2):(a=y(/^u([0-9a-fA-F]{4})/))?G(g("unicodeEscape",parseInt(a[1],16),a[1],2)):Y&&(a=y(/^u\{([0-9a-fA-F]+)\}/))?g("unicodeCodePointEscape",parseInt(a[1],16),a[1],4):M()}function L(a){var b=new RegExp("[ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮ̀-ʹͶͷͺ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁ҃-҇Ҋ-ԯԱ-Ֆՙա-և֑-ׇֽֿׁׂׅׄא-תװ-ײؐ-ؚؠ-٩ٮ-ۓە-ۜ۟-۪ۨ-ۼۿܐ-݊ݍ-ޱ߀-ߵߺࠀ-࠭ࡀ-࡛ࢠ-ࢲࣤ-ॣ०-९ॱ-ঃঅ-ঌএঐও-নপ-রলশ-হ়-ৄেৈো-ৎৗড়ঢ়য়-ৣ০-ৱਁ-ਃਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹ਼ਾ-ੂੇੈੋ-੍ੑਖ਼-ੜਫ਼੦-ੵઁ-ઃઅ-ઍએ-ઑઓ-નપ-રલળવ-હ઼-ૅે-ૉો-્ૐૠ-ૣ૦-૯ଁ-ଃଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହ଼-ୄେୈୋ-୍ୖୗଡ଼ଢ଼ୟ-ୣ୦-୯ୱஂஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹா-ூெ-ைொ-்ௐௗ௦-௯ఀ-ఃఅ-ఌఎ-ఐఒ-నప-హఽ-ౄె-ైొ-్ౕౖౘౙౠ-ౣ౦-౯ಁ-ಃಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹ಼-ೄೆ-ೈೊ-್ೕೖೞೠ-ೣ೦-೯ೱೲഁ-ഃഅ-ഌഎ-ഐഒ-ഺഽ-ൄെ-ൈൊ-ൎൗൠ-ൣ൦-൯ൺ-ൿංඃඅ-ඖක-නඳ-රලව-ෆ්ා-ුූෘ-ෟ෦-෯ෲෳก-ฺเ-๎๐-๙ກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ູົ-ຽເ-ໄໆ່-ໍ໐-໙ໜ-ໟༀ༘༙༠-༩༹༵༷༾-ཇཉ-ཬཱ-྄྆-ྗྙ-ྼ࿆က-၉ၐ-ႝႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚ፝-፟ᎀ-ᎏᎠ-Ᏼᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛸᜀ-ᜌᜎ-᜔ᜠ-᜴ᝀ-ᝓᝠ-ᝬᝮ-ᝰᝲᝳក-៓ៗៜ៝០-៩᠋-᠍᠐-᠙ᠠ-ᡷᢀ-ᢪᢰ-ᣵᤀ-ᤞᤠ-ᤫᤰ-᤻᥆-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉ᧐-᧙ᨀ-ᨛᨠ-ᩞ᩠-᩿᩼-᪉᪐-᪙ᪧ᪰-᪽ᬀ-ᭋ᭐-᭙᭫-᭳ᮀ-᯳ᰀ-᰷᱀-᱉ᱍ-ᱽ᳐-᳔᳒-ᳶ᳸᳹ᴀ-᷵᷼-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼ‌‍‿⁀⁔ⁱⁿₐ-ₜ⃐-⃥⃜⃡-⃰ℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯ⵿-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞⷠ-ⷿⸯ々-〇〡-〯〱-〵〸-〼ぁ-ゖ゙゚ゝ-ゟァ-ヺー-ヿㄅ-ㄭㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿌ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘫꙀ-꙯ꙴ-꙽ꙿ-ꚝꚟ-꛱ꜗ-ꜟꜢ-ꞈꞋ-ꞎꞐ-ꞭꞰꞱꟷ-ꠧꡀ-ꡳꢀ-꣄꣐-꣙꣠-ꣷꣻ꤀-꤭ꤰ-꥓ꥠ-ꥼꦀ-꧀ꧏ-꧙ꧠ-ꧾꨀ-ꨶꩀ-ꩍ꩐-꩙ꩠ-ꩶꩺ-ꫂꫛ-ꫝꫠ-ꫯꫲ-꫶ꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ꭟꭤꭥꯀ-ꯪ꯬꯭꯰-꯹가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻ︀-️︠-︭︳︴﹍-﹏ﹰ-ﹴﹶ-ﻼ0-9A-Z_a-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ]");return 36===a||95===a||a>=65&&90>=a||a>=97&&122>=a||a>=48&&57>=a||92===a||a>=128&&b.test(String.fromCharCode(a))}function M(){var a,b="‌",c="‍";return L(v())?u(b)?g("identifier",8204,b):u(c)?g("identifier",8205,c):null:(a=s(),g("identifier",a.charCodeAt(0),a,1))}function N(){var a,b=Z;return(a=y(/^\[\^/))?(a=O(),t("]"),p(a,!0,b,Z)):u("[")?(a=O(),t("]"),p(a,!1,b,Z)):null}function O(){var a;return w("]")?[]:(a=Q(),a||U("nonEmptyClassRanges"),a)}function P(a){var b,c,d;if(w("-")&&!x("]")){t("-"),d=S(),d||U("classAtom"),c=Z;var e=O();return e||U("classRanges"),b=a.range[0],"empty"===e.type?[q(a,d,b,c)]:[q(a,d,b,c)].concat(e)}return d=R(),d||U("nonEmptyClassRangesNoDash"),[a].concat(d)}function Q(){var a=S();return a||U("classAtom"),w("]")?[a]:P(a)}function R(){var a=S();return a||U("classAtom"),w("]")?a:P(a)}function S(){return u("-")?h("-"):T()}function T(){var a;return(a=y(/^[^\\\]-]/))?h(a[0]):u("\\")?(a=H(),a||U("classEscape"),G(a)):void 0}function U(b,c,d,e){d=null==d?Z:d,e=null==e?d:e;var f=Math.max(0,d-10),g=Math.min(e+10,a.length),h=" "+a.substring(f,g),i=" "+new Array(d-f+1).join(" ")+"^";throw SyntaxError(b+" at position "+d+(c?": "+c:"")+"\n"+h+"\n"+i)}var V=[],W=0,X=!0,Y=-1!==(b||"").indexOf("u"),Z=0;a=String(a),""===a&&(a="(?:)");var $=z();$.range[1]!==a.length&&U("Could not parse entire input - got stuck","",$.range[1]);for(var _=0;_-1:!1,y=b?b.indexOf("u")>-1:!1,c(d,h(d)),n(d)};var z=j.exports;return{get regexpuRewritePattern(){return z}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/codegeneration/RegularExpressionTransformer.js",[],function(){"use strict";var a=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeTransformer.js","traceur@0.0.108/src/codegeneration/RegularExpressionTransformer.js")).ParseTreeTransformer,b=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTrees.js","traceur@0.0.108/src/codegeneration/RegularExpressionTransformer.js")).LiteralExpression,c=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/LiteralToken.js","traceur@0.0.108/src/codegeneration/RegularExpressionTransformer.js")).LiteralToken,d=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/TokenType.js","traceur@0.0.108/src/codegeneration/RegularExpressionTransformer.js")).REGULAR_EXPRESSION,e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../outputgeneration/regexpuRewritePattern.js","traceur@0.0.108/src/codegeneration/RegularExpressionTransformer.js")).regexpuRewritePattern,f=function(a){function f(){$traceurRuntime.superConstructor(f).apply(this,arguments)}return $traceurRuntime.createClass(f,{transformLiteralExpression:function(a){var f=a.literalToken;if(f.type===d){var g=f.value,h=g.lastIndexOf("/"),i=g.slice(1,h),j=g.slice(h+1);if(-1!==j.indexOf("u")){var k="/"+e(i,j)+"/"+j.replace("u","");return new b(a.location,new c(d,k,f.location))}}return a}},{},a)}(a);return{get RegularExpressionTransformer(){return f}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/codegeneration/RestParameterTransformer.js",[],function(){"use strict";function a(a){var b=a.parameters;return b.length>0&&b[b.length-1].isRestParameter()}function b(a){var b=a.parameters;return b[b.length-1].parameter.identifier.identifierToken}var c=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTrees.js","traceur@0.0.108/src/codegeneration/RestParameterTransformer.js")).FormalParameterList,d=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParameterTransformer.js","traceur@0.0.108/src/codegeneration/RestParameterTransformer.js")).ParameterTransformer,e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeFactory.js","traceur@0.0.108/src/codegeneration/RestParameterTransformer.js")).createIdentifierToken,f=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./PlaceholderParser.js","traceur@0.0.108/src/codegeneration/RestParameterTransformer.js")).parseStatement,g=function(d){function g(){$traceurRuntime.superConstructor(g).apply(this,arguments)}return $traceurRuntime.createClass(g,{transformFormalParameterList:function(d){var h=$traceurRuntime.superGet(this,g.prototype,"transformFormalParameterList").call(this,d);if(a(h)){var i,j=new c(h.location,h.parameters.slice(0,-1)),k=h.parameters.length-1,l=e(this.getTempIdentifier()),m=b(h);return i=k?f($traceurRuntime.getTemplateObject(["\n for (var "," = [], "," = ",";\n "," < arguments.length; ","++)\n ","["," - ","] = arguments[","];"]),m,l,k,l,l,m,l,k,l):f($traceurRuntime.getTemplateObject(["\n for (var "," = [], "," = 0;\n "," < arguments.length; ","++)\n ","[","] = arguments[","];"]),m,l,l,l,m,l,l),this.parameterStatements.push(i),j}return h}},{},d)}(d);return{get RestParameterTransformer(){return g}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/codegeneration/SpreadTransformer.js",[],function(){"use strict";function a(a){return a.some(function(a){return a&&a.type===j})}var b=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/PredefinedName.js","traceur@0.0.108/src/codegeneration/SpreadTransformer.js")),c=b.APPLY,d=b.BIND,e=b.FUNCTION,f=b.PROTOTYPE,g=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTreeType.js","traceur@0.0.108/src/codegeneration/SpreadTransformer.js")),h=g.MEMBER_EXPRESSION,i=g.MEMBER_LOOKUP_EXPRESSION,j=g.SPREAD_EXPRESSION,k=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./TempVarTransformer.js","traceur@0.0.108/src/codegeneration/SpreadTransformer.js")).TempVarTransformer,l=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeFactory.js","traceur@0.0.108/src/codegeneration/SpreadTransformer.js")),m=l.createArgumentList,n=l.createArrayLiteral,o=l.createAssignmentExpression,p=l.createCallExpression,q=l.createEmptyArgumentList,r=l.createIdentifierExpression,s=l.createMemberExpression,t=l.createMemberLookupExpression,u=l.createNewExpression,v=l.createNullLiteral,w=l.createParenExpression,x=l.createVoid0,y=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./PlaceholderParser.js","traceur@0.0.108/src/codegeneration/SpreadTransformer.js")).parseExpression,z=function(b){function g(){$traceurRuntime.superConstructor(g).apply(this,arguments)}return $traceurRuntime.createClass(g,{createArrayFromElements_:function(a){for(var b,c=a.length,d=[],e=0;c>e;e++)a[e]&&a[e].type===j?(b&&(d.push(n(b)),b=null),d.push(this.transformAny(a[e].expression))):(b||(b=[]),b.push(this.transformAny(a[e])));return b&&d.push(n(b)),y($traceurRuntime.getTemplateObject(["$traceurRuntime.spread(",")"]),m(d))},desugarCallSpread_:function(a){var b,d,e=this.transformAny(a.operand);if(this.pushTempScope(),e.type===h){var f=r(this.addTempVar()),g=w(o(f,e.operand)),j=e.memberName;d=f,b=s(g,j)}else if(a.operand.type===i){var k=r(this.addTempVar()),l=w(o(k,e.operand)),n=this.transformAny(e.memberExpression);d=k,b=t(l,n)}else d=x(),b=e;this.popTempScope();var q=this.createArrayFromElements_(a.args.args);return p(s(b,c),m([d,q]))},desugarNewSpread_:function(a){var b=$traceurRuntime.spread([v()],a.args.args);return b=this.createArrayFromElements_(b),u(w(p(s(e,f,d,c),m([this.transformAny(a.operand),b]))),q())},transformArrayLiteral:function(b){return a(b.elements)?this.createArrayFromElements_(b.elements):$traceurRuntime.superGet(this,g.prototype,"transformArrayLiteral").call(this,b)},transformCallExpression:function(b){return a(b.args.args)?this.desugarCallSpread_(b):$traceurRuntime.superGet(this,g.prototype,"transformCallExpression").call(this,b)},transformNewExpression:function(b){return null!==b.args&&a(b.args.args)?this.desugarNewSpread_(b):$traceurRuntime.superGet(this,g.prototype,"transformNewExpression").call(this,b)}},{},b)}(k);return{get SpreadTransformer(){return z}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/codegeneration/SuperTransformer.js",[],function(){"use strict";function a(a){return(a.type===l||a.type===m)&&a.operand.type===n}var b=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./TempVarTransformer.js","traceur@0.0.108/src/codegeneration/SuperTransformer.js")).TempVarTransformer,c=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTrees.js","traceur@0.0.108/src/codegeneration/SuperTransformer.js")),d=c.ArgumentList,e=c.ClassDeclaration,f=c.ClassExpression,g=c.GetAccessor,h=c.MemberExpression,i=c.Method,j=c.SetAccessor,k=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTreeType.js","traceur@0.0.108/src/codegeneration/SuperTransformer.js")),l=k.MEMBER_EXPRESSION,m=k.MEMBER_LOOKUP_EXPRESSION,n=k.SUPER_EXPRESSION,o=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/TokenType.js","traceur@0.0.108/src/codegeneration/SuperTransformer.js")),p=o.EQUAL,q=o.MINUS_MINUS,r=o.PLUS_PLUS,s=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeFactory.js","traceur@0.0.108/src/codegeneration/SuperTransformer.js")),t=s.createAssignmentExpression,u=s.createBindingIdentifier,v=s.createIdentifierExpression,w=s.createIdentifierToken,x=s.createParenExpression,y=s.createStringLiteral,z=s.createThisExpression,A=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./PlaceholderParser.js","traceur@0.0.108/src/codegeneration/SuperTransformer.js")).parseExpression,B=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ExplodeExpressionTransformer.js","traceur@0.0.108/src/codegeneration/SuperTransformer.js")).ExplodeExpressionTransformer,C=function(){function a(a,b){this.transformer=a,this.home_=b,this.tempName=b?null:a.getTempIdentifier(),this.hasSuper=!1}return $traceurRuntime.createClass(a,{get home(){return this.hasSuper=!0,null===this.home_&&(this.home_=v(w(this.tempName))),this.home_}},{})}(),D=function(a){function b(a,c){var d=null;null!==c.name&&(d=v(c.name.identifierToken)),$traceurRuntime.superConstructor(b).call(this,a,d),this.name_=c.name}return $traceurRuntime.createClass(b,{get name(){return null!==this.name_?this.name_:this.hasSuper?u(this.home.identifierToken):null}},{},a)}(C),E=function(a){function b(a,c){$traceurRuntime.superConstructor(b).call(this,a,null),this.classState=c}return $traceurRuntime.createClass(b,{get home(){var a=this.classState.home;return new h(null,a,w("prototype"))}},{},a)}(C),F=function(b){function c(a,b,d){$traceurRuntime.superConstructor(c).call(this,a,b,d),this.stateStack_=[]}return $traceurRuntime.createClass(c,{pushState:function(a){this.stateStack_.push(a)},popState:function(){return this.stateStack_.pop()},peekState:function(){return this.stateStack_[this.stateStack_.length-1]},transformObjectLiteral:function(a){var b=new C(this,null);this.pushState(b),this.pushState(b);var d=$traceurRuntime.superGet(this,c.prototype,"transformObjectLiteral").call(this,a);return this.popState(),this.popState(),b.hasSuper?(this.registerTempVarName(b.tempName),t(b.home,d)):(this.releaseTempName(b.tempName),d)},transformClassExpression:function(a){var b=this.transformAny(a.superClass),c=this.transformList(a.annotations),d=new D(this,a),e=new E(this,d);this.pushState(d),this.pushState(e);var g=this.transformList(a.elements);if(this.popState(),this.popState(),null===a.name&&null!==a.superClass)d.home;else if(a.superClass===b&&a.elements===g&&a.annotations===c)return a;return new f(a.location,d.name,b,g,a.annotations,a.typeParameters)},transformClassDeclaration:function(a){var b=this.transformAny(a.superClass),c=this.transformList(a.annotations),d=new D(this,a),f=new E(this,d);this.pushState(d),this.pushState(f);var g=this.transformList(a.elements);return this.popState(),this.popState(),a.superClass===b&&a.elements===g&&a.annotations===c?a:new e(a.location,a.name,b,g,a.annotations,a.typeParameters)},transformMethod:function(a){var b,c=this.transformAny(a.name);a.isStatic&&(b=this.popState());var d=this.transformAny(a.parameterList),e=this.transformAny(a.body);return a.isStatic&&this.pushState(b),a.name===c&&a.parameterList===d&&a.body===e?a:new i(a.location,a.isStatic,a.functionKind,c,d,a.typeAnnotation,a.annotations,e,a.debugName)},transformGetAccessor:function(a){var b,c=this.transformAny(a.name);a.isStatic&&(b=this.popState());var d=this.transformAny(a.body);return a.isStatic&&this.pushState(b),a.name===c&&a.body===d?a:new g(a.location,a.isStatic,c,a.typeAnnotation,a.annotations,d)},transformSetAccessor:function(a){var b,c=this.transformAny(a.name);a.isStatic&&(b=this.popState());var d=this.transformAny(a.parameterList),e=this.transformAny(a.body);return a.isStatic&&this.pushState(b),a.name===c&&a.parameterList===d&&a.body===e?a:new j(a.location,a.isStatic,c,d,a.annotations,e)},transformComputedPropertyName:function(a){var b=this.popState(),d=this.popState(),e=$traceurRuntime.superGet(this,c.prototype,"transformComputedPropertyName").call(this,a);return this.pushState(d),this.pushState(b),e},transformSuperExpression:function(a){throw new Error("unreachable")},transformMemberShared_:function(a){var b=this.peekState().home;return A($traceurRuntime.getTemplateObject(["$traceurRuntime.superGet(this, ",", ",")"]),b,a)},transformMemberExpression:function(a){return a.operand.type===n?this.transformMemberShared_(a.memberName.value):$traceurRuntime.superGet(this,c.prototype,"transformMemberExpression").call(this,a)},transformMemberLookupExpression:function(a){return a.operand.type===n?this.transformMemberShared_(a.memberExpression):$traceurRuntime.superGet(this,c.prototype,"transformMemberLookupExpression").call(this,a)},transformCallExpression:function(b){var e,f;if(b.operand.type===n){f=this.transformAny(b.args),f=new d(b.location,$traceurRuntime.spread([z()],f.args));var g=this.stateStack_[this.stateStack_.length-2].home;e=A($traceurRuntime.getTemplateObject(["$traceurRuntime.superConstructor(",")"]),g)}else{if(!a(b.operand))return $traceurRuntime.superGet(this,c.prototype,"transformCallExpression").call(this,b);e=this.transformAny(b.operand),f=this.transformAny(b.args),f=new d(f.location,$traceurRuntime.spread([z()],f.args))}return A($traceurRuntime.getTemplateObject(["",".call(",")"]),e,f)},transformBinaryExpression:function(b){if(b.operator.isAssignmentOperator()&&a(b.left)){if(b.operator.type!==p){var d=new B(this).transformAny(b);return this.transformAny(x(d))}var e=b.left.type===m?b.left.memberExpression:y(b.left.memberName.value),f=this.transformAny(b.right),g=this.peekState().home;return A($traceurRuntime.getTemplateObject(["$traceurRuntime.superSet(this, ",", ",", ",")"]),g,e,f)}return $traceurRuntime.superGet(this,c.prototype,"transformBinaryExpression").call(this,b)},transformUnaryExpression:function(a){var b=this.transformIncrementDecrement_(a);return b?b:$traceurRuntime.superGet(this,c.prototype,"transformUnaryExpression").call(this,a)},transformPostfixExpression:function(a){var b=this.transformIncrementDecrement_(a);return b?b:$traceurRuntime.superGet(this,c.prototype,"transformPostfixExpression").call(this,a)},transformIncrementDecrement_:function(b){var c=b.operator,d=b.operand;if((c.type===r||c.type===q)&&a(d)){var e=new B(this).transformAny(b);return e!==b&&(e=x(e)),this.transformAny(e)}return null}},{},b)}(b);return{get SuperTransformer(){return F}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/codegeneration/SymbolTransformer.js",[],function(){"use strict";function a(a){switch(a.operator.type){case m:case n:case o:case p:return!0}return!1}function b(a){return a.type===j&&a.operator.type===q}function c(a){if(a.type!==i)return!1;var b=a.literalToken.processedValue;switch(b){case"symbol":case"object":return!1}return!0}var d=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTrees.js","traceur@0.0.108/src/codegeneration/SymbolTransformer.js")),e=d.BinaryExpression,f=d.UnaryExpression,g=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTreeType.js","traceur@0.0.108/src/codegeneration/SymbolTransformer.js")),h=g.IDENTIFIER_EXPRESSION,i=g.LITERAL_EXPRESSION,j=g.UNARY_EXPRESSION,k=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeTransformer.js","traceur@0.0.108/src/codegeneration/SymbolTransformer.js")).ParseTreeTransformer,l=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/TokenType.js","traceur@0.0.108/src/codegeneration/SymbolTransformer.js")),m=l.EQUAL_EQUAL,n=l.EQUAL_EQUAL_EQUAL,o=l.NOT_EQUAL,p=l.NOT_EQUAL_EQUAL,q=l.TYPEOF,r=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./PlaceholderParser.js","traceur@0.0.108/src/codegeneration/SymbolTransformer.js")).parseExpression,s=function(d){function g(){$traceurRuntime.superConstructor(g).apply(this,arguments)}return $traceurRuntime.createClass(g,{transformTypeofOperand_:function(a){var b=this.transformAny(a.operand);return new f(a.location,a.operator,b)},transformBinaryExpression:function(d){if(a(d)){if(b(d.left)&&c(d.right)){var f=this.transformTypeofOperand_(d.left),h=d.right;return new e(d.location,f,d.operator,h)}if(b(d.right)&&c(d.left)){var i=d.left,j=this.transformTypeofOperand_(d.right);return new e(d.location,i,d.operator,j)}}return $traceurRuntime.superGet(this,g.prototype,"transformBinaryExpression").call(this,d)},transformUnaryExpression:function(a){if(a.operator.type!==q)return $traceurRuntime.superGet(this,g.prototype,"transformUnaryExpression").call(this,a);var b=this.transformAny(a.operand),c=this.getRuntimeTypeof(b);return b.type===h?r($traceurRuntime.getTemplateObject(["(typeof "," === 'undefined' ?\n 'undefined' : ",")"]),b,c):c},getRuntimeTypeof:function(a){return r($traceurRuntime.getTemplateObject(["$traceurRuntime.typeof(",")"]),a)}},{},d)}(k);return{get SymbolTransformer(){return s}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/codegeneration/TemplateLiteralTransformer.js",[],function(){"use strict";function a(a,b){return new l(a,new m(u,b,a))}function b(b){for(var f=[],g=[],h=!0,i=0;ih;h++){var i=c[h];if(i.type===j){if(""===i.value.value)continue;e&&2===h&&(f=f.right)}var k=this.transformAny(c[h]);f=y(f,g,k)}return new C(f)}},{},c)}(n(o));return{get TemplateLiteralTransformer(){return D}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/codegeneration/TypeToExpressionTransformer.js",[],function(){"use strict";var a=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeTransformer.js","traceur@0.0.108/src/codegeneration/TypeToExpressionTransformer.js")).ParseTreeTransformer,b=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTrees.js","traceur@0.0.108/src/codegeneration/TypeToExpressionTransformer.js")),c=b.ArgumentList,d=b.IdentifierExpression,e=b.MemberExpression,f=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./PlaceholderParser.js","traceur@0.0.108/src/codegeneration/TypeToExpressionTransformer.js")).parseExpression,g=function(a){function b(){$traceurRuntime.superConstructor(b).apply(this,arguments)}return $traceurRuntime.createClass(b,{transformTypeName:function(a){if(a.moduleName){var b=this.transformAny(a.moduleName);return new e(a.location,b,a.name)}return new d(a.location,a.name)},transformPredefinedType:function(a){return f($traceurRuntime.getTemplateObject(["$traceurRuntime.type.",")"]),a.typeToken)},transformTypeReference:function(a){var b=this.transformAny(a.typeName),d=this.transformAny(a.args),e=new c(a.location,$traceurRuntime.spread([b],d));return f($traceurRuntime.getTemplateObject(["$traceurRuntime.genericType(",")"]),e)},transformTypeArguments:function(a){return this.transformList(a.args)}},{},a)}(a);return{get TypeToExpressionTransformer(){return g}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/codegeneration/TypeTransformer.js",[],function(){"use strict";var a=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTrees.js","traceur@0.0.108/src/codegeneration/TypeTransformer.js")),b=a.AnonBlock,c=a.FormalParameter,d=a.FunctionDeclaration,e=a.FunctionExpression,f=a.GetAccessor,g=a.Method,h=a.VariableDeclaration,i=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTreeType.js","traceur@0.0.108/src/codegeneration/TypeTransformer.js")),j=i.IMPORT_TYPE_CLAUSE,k=i.TYPE_ALIAS_DECLARATION,l=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeTransformer.js","traceur@0.0.108/src/codegeneration/TypeTransformer.js")).ParseTreeTransformer,m=function(a){function i(){$traceurRuntime.superConstructor(i).apply(this,arguments)}return $traceurRuntime.createClass(i,{transformVariableDeclaration:function(a){return a.typeAnnotation&&(a=new h(a.location,a.lvalue,null,a.initializer)),$traceurRuntime.superGet(this,i.prototype,"transformVariableDeclaration").call(this,a)},transformFormalParameter:function(a){return null!==a.typeAnnotation?new c(a.location,a.parameter,null,[]):a},transformFunctionDeclaration:function(a){return a.typeAnnotation&&(a=new d(a.location,a.name,a.functionKind,a.parameterList,null,a.annotations,a.body)),$traceurRuntime.superGet(this,i.prototype,"transformFunctionDeclaration").call(this,a); },transformFunctionExpression:function(a){return a.typeAnnotation&&(a=new e(a.location,a.name,a.functionKind,a.parameterList,null,a.annotations,a.body)),$traceurRuntime.superGet(this,i.prototype,"transformFunctionExpression").call(this,a)},transformMethod:function(a){return a.typeAnnotation&&(a=new g(a.location,a.isStatic,a.functionKind,a.name,a.parameterList,null,a.annotations,a.body,a.debugName)),$traceurRuntime.superGet(this,i.prototype,"transformMethod").call(this,a)},transformGetAccessor:function(a){return a.typeAnnotation&&(a=new f(a.location,a.isStatic,a.name,null,a.annotations,a.body)),$traceurRuntime.superGet(this,i.prototype,"transformGetAccessor").call(this,a)},transformInterfaceDeclaration:function(a){return new b(null,[])},transformExportDeclaration:function(a){return a.declaration.type===k?new b(null,[]):$traceurRuntime.superGet(this,i.prototype,"transformExportDeclaration").call(this,a)},transformTypeAliasDeclaration:function(a){return new b(null,[])},transformImportDeclaration:function(a){return a.importClause&&a.importClause.type!==j?$traceurRuntime.superGet(this,i.prototype,"transformImportDeclaration").call(this,a):new b(null,[])}},{},a)}(l);return{get TypeTransformer(){return m}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/codegeneration/UnicodeEscapeSequenceTransformer.js",[],function(){"use strict";function a(a){return"0000".slice(a.length)+a}function b(a){return a.type===g&&h.test(a.value)}function c(b){return b.value.replace(h,function(b,c,d){var e=c.length%2===1;if(e)return b;var f,g=parseInt(d,16);if(65535>=g)f="\\u"+a(g.toString(16).toUpperCase());else{var h=Math.floor((g-65536)/1024)+55296,i=(g-65536)%1024+56320;f="\\u"+h.toString(16).toUpperCase()+"\\u"+i.toString(16).toUpperCase()}return c+f})}var d=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeTransformer.js","traceur@0.0.108/src/codegeneration/UnicodeEscapeSequenceTransformer.js")).ParseTreeTransformer,e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTrees.js","traceur@0.0.108/src/codegeneration/UnicodeEscapeSequenceTransformer.js")).LiteralExpression,f=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/LiteralToken.js","traceur@0.0.108/src/codegeneration/UnicodeEscapeSequenceTransformer.js")).LiteralToken,g=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/TokenType.js","traceur@0.0.108/src/codegeneration/UnicodeEscapeSequenceTransformer.js")).STRING,h=/(\\*)\\u{([0-9a-fA-F]+)}/g,i=function(a){function d(){$traceurRuntime.superConstructor(d).apply(this,arguments)}return $traceurRuntime.createClass(d,{transformLiteralExpression:function(a){var d=a.literalToken;if(b(d)){var h=c(d);return new e(a.location,new f(g,h,d.location))}return a}},{},a)}(d);return{get UnicodeEscapeSequenceTransformer(){return i}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/codegeneration/UniqueIdentifierGenerator.js",[],function(){"use strict";var a=function(){function a(){this.identifierIndex=0}return $traceurRuntime.createClass(a,{generateUniqueIdentifier:function(){return"$__"+this.identifierIndex++}},{})}();return{get UniqueIdentifierGenerator(){return a}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/semantics/ConstChecker.js",[],function(){"use strict";function a(a,b){var c=new h(b);c.visitAny(a);var d=new i(c,b);d.visitAny(a)}var b=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTreeType.js","traceur@0.0.108/src/semantics/ConstChecker.js")).IDENTIFIER_EXPRESSION,c=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/TokenType.js","traceur@0.0.108/src/semantics/ConstChecker.js")),d=c.CONST,e=c.MINUS_MINUS,f=c.PLUS_PLUS,g=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ScopeVisitor.js","traceur@0.0.108/src/semantics/ConstChecker.js")).ScopeVisitor,h=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ScopeChainBuilder.js","traceur@0.0.108/src/semantics/ConstChecker.js")).ScopeChainBuilder,i=function(a){function c(a,b){$traceurRuntime.superConstructor(c).call(this),this.scopeBuilder_=a,this.reporter_=b}return $traceurRuntime.createClass(c,{pushScope:function(a){return this.scope=this.scopeBuilder_.getScopeForTree(a)},visitUnaryExpression:function(a){a.operand.type!==b||a.operator.type!==f&&a.operator.type!==e||this.validateMutation_(a.operand),$traceurRuntime.superGet(this,c.prototype,"visitUnaryExpression").call(this,a)},visitPostfixExpression:function(a){a.operand.type===b&&this.validateMutation_(a.operand),$traceurRuntime.superGet(this,c.prototype,"visitPostfixExpression").call(this,a)},visitBinaryExpression:function(a){a.left.type===b&&a.operator.isAssignmentOperator()&&this.validateMutation_(a.left),$traceurRuntime.superGet(this,c.prototype,"visitBinaryExpression").call(this,a)},validateMutation_:function(a){if(!this.inWithBlock){var b=this.scope.getBinding(a);if(null!==b){var c=b,e=c.type,f=c.tree;e===d&&this.reportError_(a.location,f.getStringValue()+" is read-only")}}},reportError_:function(a,b){this.reporter_.reportError(a,b)}},{},a)}(g);return{get ConstChecker(){return i},get validate(){return a}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/semantics/FreeVariableChecker.js",[],function(){"use strict";function a(a,b){var d=void 0!==arguments[2]?arguments[2]:Reflect.global,e=new c(b,d);e.visitAny(a)}var b=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ScopeChainBuilderWithReferences.js","traceur@0.0.108/src/semantics/FreeVariableChecker.js")).ScopeChainBuilderWithReferences,c=function(a){function b(a,c){$traceurRuntime.superConstructor(b).call(this,a),this.global_=c}return $traceurRuntime.createClass(b,{referenceFound:function(a,b){this.scope.getBinding(a)||b in this.global_||this.reporter.reportError(a.location,b+" is not defined")}},{},a)}(b);return{get validate(){return a}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/codegeneration/FromOptionsTransformer.js",[],function(){"use strict";var a=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./AmdTransformer.js","traceur@0.0.108/src/codegeneration/FromOptionsTransformer.js")).AmdTransformer,b=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./AnnotationsTransformer.js","traceur@0.0.108/src/codegeneration/FromOptionsTransformer.js")).AnnotationsTransformer,c=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ArrayComprehensionTransformer.js","traceur@0.0.108/src/codegeneration/FromOptionsTransformer.js")).ArrayComprehensionTransformer,d=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ArrowFunctionTransformer.js","traceur@0.0.108/src/codegeneration/FromOptionsTransformer.js")).ArrowFunctionTransformer,e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./AsyncGeneratorTransformPass.js","traceur@0.0.108/src/codegeneration/FromOptionsTransformer.js")).AsyncGeneratorTransformPass,f=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./AsyncToGeneratorTransformer.js","traceur@0.0.108/src/codegeneration/FromOptionsTransformer.js")).AsyncToGeneratorTransformer,g=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./BlockBindingTransformer.js","traceur@0.0.108/src/codegeneration/FromOptionsTransformer.js")).BlockBindingTransformer,h=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ClassTransformer.js","traceur@0.0.108/src/codegeneration/FromOptionsTransformer.js")).ClassTransformer,i=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ClosureModuleTransformer.js","traceur@0.0.108/src/codegeneration/FromOptionsTransformer.js")).ClosureModuleTransformer,j=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./CommonJsModuleTransformer.js","traceur@0.0.108/src/codegeneration/FromOptionsTransformer.js")).CommonJsModuleTransformer,k=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./DefaultParametersTransformer.js","traceur@0.0.108/src/codegeneration/FromOptionsTransformer.js")).DefaultParametersTransformer,l=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./DestructuringTransformer.js","traceur@0.0.108/src/codegeneration/FromOptionsTransformer.js")).DestructuringTransformer,m=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ExponentiationTransformer.js","traceur@0.0.108/src/codegeneration/FromOptionsTransformer.js")).ExponentiationTransformer,n=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ForOfTransformer.js","traceur@0.0.108/src/codegeneration/FromOptionsTransformer.js")).ForOfTransformer,o=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ForOnTransformer.js","traceur@0.0.108/src/codegeneration/FromOptionsTransformer.js")).ForOnTransformer,p=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./GeneratorComprehensionTransformer.js","traceur@0.0.108/src/codegeneration/FromOptionsTransformer.js")).GeneratorComprehensionTransformer,q=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./GeneratorTransformPass.js","traceur@0.0.108/src/codegeneration/FromOptionsTransformer.js")).GeneratorTransformPass,r=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./InlineModuleTransformer.js","traceur@0.0.108/src/codegeneration/FromOptionsTransformer.js")).InlineModuleTransformer,s=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./InstantiateModuleTransformer.js","traceur@0.0.108/src/codegeneration/FromOptionsTransformer.js")).InstantiateModuleTransformer,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./JsxTransformer.js","traceur@0.0.108/src/codegeneration/FromOptionsTransformer.js")).JsxTransformer,u=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./MemberVariableTransformer.js","traceur@0.0.108/src/codegeneration/FromOptionsTransformer.js")).MemberVariableTransformer,v=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ModuleTransformer.js","traceur@0.0.108/src/codegeneration/FromOptionsTransformer.js")).ModuleTransformer,w=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./MultiTransformer.js","traceur@0.0.108/src/codegeneration/FromOptionsTransformer.js")).MultiTransformer,x=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./NumericLiteralTransformer.js","traceur@0.0.108/src/codegeneration/FromOptionsTransformer.js")).NumericLiteralTransformer,y=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ObjectLiteralTransformer.js","traceur@0.0.108/src/codegeneration/FromOptionsTransformer.js")).ObjectLiteralTransformer,z=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ProperTailCallTransformer.js","traceur@0.0.108/src/codegeneration/FromOptionsTransformer.js")).ProperTailCallTransformer,A=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./PropertyNameShorthandTransformer.js","traceur@0.0.108/src/codegeneration/FromOptionsTransformer.js")).PropertyNameShorthandTransformer,B=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./RegularExpressionTransformer.js","traceur@0.0.108/src/codegeneration/FromOptionsTransformer.js")).RegularExpressionTransformer,C=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./RestParameterTransformer.js","traceur@0.0.108/src/codegeneration/FromOptionsTransformer.js")).RestParameterTransformer,D=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./SpreadPropertiesTransformer.js","traceur@0.0.108/src/codegeneration/FromOptionsTransformer.js")).SpreadPropertiesTransformer,E=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./SpreadTransformer.js","traceur@0.0.108/src/codegeneration/FromOptionsTransformer.js")).SpreadTransformer,F=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./SuperTransformer.js","traceur@0.0.108/src/codegeneration/FromOptionsTransformer.js")).SuperTransformer,G=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./SymbolTransformer.js","traceur@0.0.108/src/codegeneration/FromOptionsTransformer.js")).SymbolTransformer,H=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./TemplateLiteralTransformer.js","traceur@0.0.108/src/codegeneration/FromOptionsTransformer.js")).TemplateLiteralTransformer,I=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./TypeToExpressionTransformer.js","traceur@0.0.108/src/codegeneration/FromOptionsTransformer.js")).TypeToExpressionTransformer,J=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./TypeTransformer.js","traceur@0.0.108/src/codegeneration/FromOptionsTransformer.js")).TypeTransformer,K=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./UnicodeEscapeSequenceTransformer.js","traceur@0.0.108/src/codegeneration/FromOptionsTransformer.js")).UnicodeEscapeSequenceTransformer,L=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./UniqueIdentifierGenerator.js","traceur@0.0.108/src/codegeneration/FromOptionsTransformer.js")).UniqueIdentifierGenerator,M=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../semantics/ConstChecker.js","traceur@0.0.108/src/codegeneration/FromOptionsTransformer.js")).validate,N=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../semantics/FreeVariableChecker.js","traceur@0.0.108/src/codegeneration/FromOptionsTransformer.js")).validate,O=function(w){function O(w,P){var Q;$traceurRuntime.superConstructor(O).call(this,w,P.validate);var R=P.transformOptions,S=new L,T=(Q=this,function(a){Q.append(function(b){return new a(S,w,P).transformAny(b)})});if(R.blockBinding&&this.append(function(a){return M(a,w),a}),P.freeVariableChecker&&this.append(function(a){return N(a,w),a}),R.exponentiation&&T(m),R.numericLiterals&&T(x),R.unicodeExpressions&&T(B),R.jsx&&T(t),R.templateLiterals&&T(H),R.types&&R.annotations&&T(I),R.unicodeEscapeSequences&&T(K),R.annotations&&T(b),R.propertyNameShorthand&&T(A),R.memberVariables&&T(u),R.classes&&T(F),R.arrowFunctions&&T(d),R.classes&&T(h),R.spreadProperties&&T(D),(R.propertyMethods||R.computedPropertyNames||R.properTailCalls)&&T(y),R.generatorComprehension&&T(p),R.arrayComprehension&&T(c),R.forOf&&T(n),R.asyncGenerators&&T(e),R.forOn&&T(o),R.restParameters&&T(C),R.defaultParameters&&T(k),R.destructuring&&T(l),R.types&&T(J),R.spread&&T(E),R.blockBinding&&this.append(function(a){var b=new g(S,w,a);return b.transformAny(a)}),R.asyncFunctions&&"parse"===P.generators?T(f):(R.generators||R.asyncFunctions)&&T(q),R.symbols&&T(G),R.properTailCalls&&T(z),R.modules)switch(R.modules){case"commonjs":T(j);break;case"amd":T(a);break;case"closure":T(i);break;case"inline":T(r);break;case"instantiate":T(s);break;case"bootstrap":T(v);break;case"parse":break;default:throw new Error("Invalid modules transform option")}}return $traceurRuntime.createClass(O,{},{},w)}(w);return{get FromOptionsTransformer(){return O}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/codegeneration/InlineES6ModuleTransformer.js",[],function(){"use strict";var a=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/TokenType.js","traceur@0.0.108/src/codegeneration/InlineES6ModuleTransformer.js")),b=a.CONST,c=a.LET,d=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ModuleTransformer.js","traceur@0.0.108/src/codegeneration/InlineES6ModuleTransformer.js")).ModuleTransformer,e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeFactory.js","traceur@0.0.108/src/codegeneration/InlineES6ModuleTransformer.js")),f=e.createAssignmentStatement,g=e.createArgumentList,h=e.createBindingIdentifier,i=e.createCallExpression,j=e.createExpressionStatement,k=e.createForInStatement,l=e.createFunctionBody,m=e.createIfStatement,n=e.createImmediatelyInvokedFunctionExpression,o=e.createIdentifierExpression,p=e.createMemberLookupExpression,q=e.createMemberExpression,r=e.createObjectLiteral,s=e.createScopedExpression,t=e.createReturnStatement,u=e.createUseStrictDirective,v=e.createVariableDeclarationList,w=e.createVariableStatement,x=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./globalThis.js","traceur@0.0.108/src/codegeneration/InlineES6ModuleTransformer.js"))["default"],y=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./scopeContainsThis.js","traceur@0.0.108/src/codegeneration/InlineES6ModuleTransformer.js"))["default"],z=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTreeType.js","traceur@0.0.108/src/codegeneration/InlineES6ModuleTransformer.js")).IMPORT_SPECIFIER_SET,A=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTrees.js","traceur@0.0.108/src/codegeneration/InlineES6ModuleTransformer.js")).AnonBlock,B=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./PlaceholderParser.js","traceur@0.0.108/src/codegeneration/InlineES6ModuleTransformer.js")).parseStatement,C=0,D=function(a){function d(a,b,c,e){$traceurRuntime.superConstructor(d).call(this,a,b,c),this.metadata_=e}return $traceurRuntime.createClass(d,{moduleProlog:function(){return[u()]},wrapModule:function(a){var c=this.moduleName||"anon_"+ ++C,d=this.getTempVarNameForModuleName(c);if(this.isRootModule)return a.pop(),a;var e,f=l(a);return e=a.some(y)?s(f,x()):n(f),[w(b,d,e)]},transformExportDeclaration:function(a){return this.isRootModule?a:(this.exportVisitor_.visitAny(a),this.transformAny(a.declaration))},transformImportDeclaration:function(a){if(!a.importClause||a.importClause.type===z&&0===a.importClause.specifiers.length)return j(this.transformAny(a.moduleSpecifier));var c=this.transformAny(a.importClause),d=this.transformAny(a.moduleSpecifier);return w(b,c,d)},transformNamedExport:function(a){return new A(null,[])},appendExportStatement:function(a){var b=this,d=this.getExportProperties(),e=r(d);if(this.exportVisitor_.starExports.length){var h=this.exportVisitor_.starExports,j=h.map(function(a){return o(b.getTempVarNameForModuleSpecifier(a))});d.length&&j.push(e);var l=this.getTempIdentifier();a.push(w(c,l,r("")));var n=this.getTempIdentifier();return j.forEach(function(b){a.push(k(v(c,n,null),b,m(i(q(b,"hasOwnProperty"),g([o(n)])),f(p(o(l),o(n)),p(b,o(n))))))}),a.push(t(o(l))),a}return a.push(B($traceurRuntime.getTemplateObject(["return ",""]),e)),a},transformModuleSpecifier:function(a){return h(this.getTempVarNameForModuleSpecifier(a))},get isRootModule(){return this.moduleName===(this.metadata_&&this.metadata_.rootModule)}},{},a)}(d);return{get InlineES6ModuleTransformer(){return D}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/codegeneration/PureES6Transformer.js",[],function(){"use strict";var a=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./AnnotationsTransformer.js","traceur@0.0.108/src/codegeneration/PureES6Transformer.js")).AnnotationsTransformer,b=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./AsyncToGeneratorTransformer.js","traceur@0.0.108/src/codegeneration/PureES6Transformer.js")).AsyncToGeneratorTransformer,c=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./InlineES6ModuleTransformer.js","traceur@0.0.108/src/codegeneration/PureES6Transformer.js")).InlineES6ModuleTransformer,d=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./JsxTransformer.js","traceur@0.0.108/src/codegeneration/PureES6Transformer.js")).JsxTransformer,e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./MemberVariableTransformer.js","traceur@0.0.108/src/codegeneration/PureES6Transformer.js")).MemberVariableTransformer,f=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./MultiTransformer.js","traceur@0.0.108/src/codegeneration/PureES6Transformer.js")).MultiTransformer,g=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./SpreadPropertiesTransformer.js","traceur@0.0.108/src/codegeneration/PureES6Transformer.js")).SpreadPropertiesTransformer,h=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./TypeTransformer.js","traceur@0.0.108/src/codegeneration/PureES6Transformer.js")).TypeTransformer,i=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./UniqueIdentifierGenerator.js","traceur@0.0.108/src/codegeneration/PureES6Transformer.js")).UniqueIdentifierGenerator,j=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../semantics/FreeVariableChecker.js","traceur@0.0.108/src/codegeneration/PureES6Transformer.js")).validate,k=function(f){function k(f,l,m){var n;$traceurRuntime.superConstructor(k).call(this,f,l.validate);var o=new i,p=(n=this,function(a){n.append(function(b){return new a(o,f,l,m).transformAny(b)})});l.freeVariableChecker&&this.append(function(a){return j(a,f),a}),l.jsx&&p(d),l.spreadProperties&&p(g),l.memberVariables&&p(e),p(a),p(h),p(b),"inline"===l.modules&&p(c)}return $traceurRuntime.createClass(k,{},{},f)}(f);return{get PureES6Transformer(){return k}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/Compiler.js",[],function(){"use strict";function a(){for(var a=[],b=0;bb?null:a.substring(0,b+1)}var c=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./codegeneration/module/AttachModuleNameTransformer.js","traceur@0.0.108/src/Compiler.js")).AttachModuleNameTransformer,d=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./codegeneration/FromOptionsTransformer.js","traceur@0.0.108/src/Compiler.js")).FromOptionsTransformer,e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./syntax/Parser.js","traceur@0.0.108/src/Compiler.js")).Parser,f=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./codegeneration/PureES6Transformer.js","traceur@0.0.108/src/Compiler.js")).PureES6Transformer,g=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./syntax/SourceFile.js","traceur@0.0.108/src/Compiler.js")).SourceFile,h=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./util/CollectingErrorReporter.js","traceur@0.0.108/src/Compiler.js")).CollectingErrorReporter,i=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./Options.js","traceur@0.0.108/src/Compiler.js")),j=i.Options,k=i.versionLockedOptions,l=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./outputgeneration/ParseTreeMapWriter.js","traceur@0.0.108/src/Compiler.js")).ParseTreeMapWriter,m=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./outputgeneration/ParseTreeWriter.js","traceur@0.0.108/src/Compiler.js")).ParseTreeWriter,n=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./outputgeneration/SourceMapIntegration.js","traceur@0.0.108/src/Compiler.js")),o=n.SourceMapConsumer,p=n.SourceMapGenerator,q=function(){function i(){var a=void 0!==arguments[0]?arguments[0]:{};this.options_=new j(this.defaultOptions()),this.options_.setFromObject(a),this.sourceMapConfiguration_=null,this.sourceMapInfo_=null,this.sourceMapCache_=null}return $traceurRuntime.createClass(i,{compile:function(a){var b=void 0!==arguments[1]?arguments[1]:"",c=void 0!==arguments[2]?arguments[2]:"",d=arguments[3];b=this.normalize(b),c=this.normalize(c);var e=this.parse(a,b);e=this.transform(e,b);var f=b!==c?b:void 0;return void 0===d&&(d=this.options_.sourceRoot),this.write(e,c,d,f)},throwIfErrors:function(a){if(a.hadError())throw a.toError()},parse:function(a){var b=void 0!==arguments[1]?arguments[1]:"";b=this.normalize(b),this.sourceMapCache_=null,this.sourceMapConfiguration_=null;var c=new h,d=new g(b,a),f=new e(d,c,this.options_),i=this.options_.script?f.parseScript():f.parseModule();return this.throwIfErrors(c),i},transform:function(a){var b,e=arguments[1],g=arguments[2];if(e){var i=new c(e);a=i.transformAny(a)}var j=new h;b="es6"===this.options_.outputLanguage.toLowerCase()?new f(j,this.options_,g):new d(j,this.options_);var k=b.transform(a);return this.throwIfErrors(j),k},createSourceMapConfiguration_:function(a){var c=arguments[1],d=arguments[2];return this.options_.sourceMaps?{sourceMapGenerator:new p({file:a,sourceRoot:c,skipValidation:!0}),basepath:b(a),inputSourceMap:this.options_.inputSourceMap,sourceURL:d,outputName:a}:void 0},getSourceMap:function(){if(this.sourceMapCache_)return this.sourceMapCache_;if(this.sourceMapConfiguration_){var a=this.sourceMapConfiguration_.sourceMapGenerator.toString(),b=this.sourceMapConfiguration_.inputSourceMap;if(b){var c=p.fromSourceMap(new o(a));c.applySourceMap(new o(b)),a=c.toJSON()}return this.sourceMapCache_=a,a}},get sourceMapInfo(){if(!this.sourceMapInfo_&&this.sourceMapConfiguration_){var a=this.getSourceMap();this.sourceMapInfo_={url:this.sourceMapConfiguration_.sourceURL,outputName:this.sourceMapConfiguration_.outputName,map:a}}return this.sourceMapInfo_},write:function(a){var c=arguments[1],d=arguments[2],e=arguments[3];c=this.normalize(c),void 0===d&&(d=this.options_.sourceRoot),d=d===!0?b(c):d?this.normalize(d):void 0;var f;this.sourceMapCache_=null,this.sourceMapConfiguration_=this.createSourceMapConfiguration_(c,d,e),this.sourceMapConfiguration_?(this.sourceMapConfiguration_.lowResolution=this.options_.lowResolutionSourceMap,f=new l(this.sourceMapConfiguration_,this.options_)):f=new m(this.options_),f.visitAny(a);var g=f.toString(),h=this.debuggerLink(e,c);return h&&(g+=h),g},debuggerLink:function(a,b){if(this.sourceMapConfiguration_){if("memory"===this.options_.sourceMaps)return;var c=this.sourceMappingURL(a||b||"unnamed.js");return"//# sourceMappingURL="+c+"\n"}return a?"//# sourceURL="+a+"\n":void 0},sourceName:function(a){return a},sourceMappingURL:function(a){return"inline"===this.options_.sourceMaps&&Reflect.global.btoa?"data:application/json;base64,"+btoa(unescape(encodeURIComponent(this.getSourceMap()))):(a=a||"unamed.js",a=a.split("/").pop(),a+".map")},sourceNameFromTree:function(a){return a.location.start.source.name},defaultOptions:function(){return k},normalize:function(a){return a&&a.replace(/\\/g,"/")}},{script:function(a){var b=void 0!==arguments[1]?arguments[1]:{};return b=new j(b),b.script=!0,new i(b).compile(a)},module:function(a){var b=void 0!==arguments[1]?arguments[1]:{};return b=new j(b),b.modules="bootstrap",new i(b).compile(a)},amdOptions:function(){var b=void 0!==arguments[0]?arguments[0]:{},c={modules:"amd",sourceMaps:!1,moduleName:!1};return a(c,b)},closureOptions:function(){var b=void 0!==arguments[0]?arguments[0]:{},c={modules:"closure",sourceMaps:!1,moduleName:!0};return a(c,b)},commonJSOptions:function(){var b=void 0!==arguments[0]?arguments[0]:{},c={modules:"commonjs",sourceMaps:!1,moduleName:!1};return a(c,b)}})}();return{get Compiler(){return q}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/codegeneration/CloneTreeTransformer.js",[],function(){"use strict";var a=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeTransformer.js","traceur@0.0.108/src/codegeneration/CloneTreeTransformer.js")).ParseTreeTransformer,b=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTrees.js","traceur@0.0.108/src/codegeneration/CloneTreeTransformer.js")),c=b.BindingIdentifier,d=b.BreakStatement,e=b.ContinueStatement,f=b.DebuggerStatement,g=b.EmptyStatement,h=b.ExportSpecifier,i=b.ExportStar,j=b.IdentifierExpression,k=b.LiteralExpression,l=b.ModuleSpecifier,m=b.PredefinedType,n=b.PropertyNameShorthand,o=b.TemplateLiteralPortion,p=b.SuperExpression,q=b.ThisExpression,r=function(a){function b(){$traceurRuntime.superConstructor(b).apply(this,arguments)}return $traceurRuntime.createClass(b,{transformBindingIdentifier:function(a){return new c(a.location,a.identifierToken)},transformBreakStatement:function(a){return new d(a.location,a.name)},transformContinueStatement:function(a){return new e(a.location,a.name)},transformDebuggerStatement:function(a){return new f(a.location)},transformEmptyStatement:function(a){return new g(a.location)},transformExportSpecifier:function(a){return new h(a.location,a.lhs,a.rhs)},transformExportStar:function(a){return new i(a.location)},transformIdentifierExpression:function(a){return new j(a.location,a.identifierToken)},transformList:function(a){return a?0===a.length?[]:$traceurRuntime.superGet(this,b.prototype,"transformList").call(this,a):null},transformLiteralExpression:function(a){return new k(a.location,a.literalToken)},transformModuleSpecifier:function(a){return new l(a.location,a.token)},transformPredefinedType:function(a){return new m(a.location,a.typeToken)},transformPropertyNameShorthand:function(a){return new n(a.location,a.name)},transformTemplateLiteralPortion:function(a){return new o(a.location,a.value)},transformSuperExpression:function(a){return new p(a.location)},transformThisExpression:function(a){return new q(a.location)}},{},a)}(a);return r.cloneTree=function(a){return(new r).transformAny(a)},{get CloneTreeTransformer(){return r}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/codegeneration/module/createModuleEvaluationStatement.js",[],function(){"use strict";function a(a){return b($traceurRuntime.getTemplateObject(["$traceurRuntime.getModule("," +'')"]),a)}var b=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../PlaceholderParser.js","traceur@0.0.108/src/codegeneration/module/createModuleEvaluationStatement.js")).parseStatement;return{get createModuleEvaluationStatement(){return a}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/compiler-imports.js",[],function(){"use strict";var a=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./Compiler.js","traceur@0.0.108/src/compiler-imports.js")),b=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./syntax/Parser.js","traceur@0.0.108/src/compiler-imports.js")).Parser,c=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./syntax/trees/ParseTrees.js","traceur@0.0.108/src/compiler-imports.js")).Script,d=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./syntax/SourceFile.js","traceur@0.0.108/src/compiler-imports.js")).SourceFile,e={Parser:b,SourceFile:d,trees:{Script:c}},f=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./outputgeneration/ParseTreeMapWriter.js","traceur@0.0.108/src/compiler-imports.js")).ParseTreeMapWriter,g=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./outputgeneration/ParseTreeWriter.js","traceur@0.0.108/src/compiler-imports.js")).ParseTreeWriter,h=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./outputgeneration/regexpuRewritePattern.js","traceur@0.0.108/src/compiler-imports.js")).regexpuRewritePattern,i=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./outputgeneration/SourceMapIntegration.js","traceur@0.0.108/src/compiler-imports.js")).SourceMapConsumer,j=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./outputgeneration/SourceMapIntegration.js","traceur@0.0.108/src/compiler-imports.js")).SourceMapGenerator,k=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./outputgeneration/TreeWriter.js","traceur@0.0.108/src/compiler-imports.js")).TreeWriter,l={ParseTreeMapWriter:f,ParseTreeWriter:g,regexpuRewritePattern:h,SourceMapConsumer:i,SourceMapGenerator:j,TreeWriter:k},m=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./codegeneration/module/AttachModuleNameTransformer.js","traceur@0.0.108/src/compiler-imports.js")).AttachModuleNameTransformer,n=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./codegeneration/CloneTreeTransformer.js","traceur@0.0.108/src/compiler-imports.js")).CloneTreeTransformer,o=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./codegeneration/FromOptionsTransformer.js","traceur@0.0.108/src/compiler-imports.js")).FromOptionsTransformer,p=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./codegeneration/PureES6Transformer.js","traceur@0.0.108/src/compiler-imports.js")).PureES6Transformer,q=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./codegeneration/module/createModuleEvaluationStatement.js","traceur@0.0.108/src/compiler-imports.js")).createModuleEvaluationStatement,r=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./codegeneration/PlaceholderParser.js","traceur@0.0.108/src/compiler-imports.js")),s=r.parseExpression,t=r.parseModule,u=r.parseScript,v=r.parseStatement,w={ CloneTreeTransformer:n,FromOptionsTransformer:o,PureES6Transformer:p,parseExpression:s,parseModule:t,parseScript:u,parseStatement:v,module:{AttachModuleNameTransformer:m,createModuleEvaluationStatement:q}};return{get Compiler(){return a.Compiler},get syntax(){return e},get outputgeneration(){return l},get codegeneration(){return w}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/codegeneration/module/ValidationVisitor.js",[],function(){"use strict";var a=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ModuleVisitor.js","traceur@0.0.108/src/codegeneration/module/ValidationVisitor.js")).ModuleVisitor,b=function(a){function b(){$traceurRuntime.superConstructor(b).apply(this,arguments)}return $traceurRuntime.createClass(b,{checkExport_:function(a,b){var c=this.validatingModuleDescription_;if(c&&!c.getExport(b)){var d=c.normalizedName;this.reportError(a,"'"+b+"' is not exported by '"+d+"'")}},checkImport_:function(a,b){var c=this.moduleSymbol.getImport(b);c?this.reportError(a,"'"+b+"' was previously imported at "+c.location.start):this.moduleSymbol.addImport(b,a)},visitAndValidate_:function(a,b){var c=this.validatingModuleDescription_;this.validatingModuleDescription_=a,this.visitAny(b),this.validatingModuleDescription_=c},visitNamedExport:function(a){if(a.moduleSpecifier){var b=a.moduleSpecifier.token.processedValue,c=this.getExportsListForModuleSpecifier(b);this.visitAndValidate_(c,a.exportClause)}},visitExportSpecifier:function(a){this.checkExport_(a,a.lhs.value)},visitForwardDefaultExport:function(a){this.checkExport_(a,"default")},visitImportDeclaration:function(a){var b=a.moduleSpecifier.token.processedValue,c=this.getExportsListForModuleSpecifier(b);this.visitAndValidate_(c,a.importClause)},visitImportSpecifier:function(a){var b=a.binding.getStringValue(),c=a.name?a.name.value:b;this.checkImport_(a,b),this.checkExport_(a,c)},visitImportedBinding:function(a){var b=a.binding.getStringValue();this.checkImport_(a,b),this.checkExport_(a,"default")},visitNameSpaceImport:function(a){var b=a.binding.binding.getStringValue();this.checkImport_(a,b)}},{},a)}(a);return{get ValidationVisitor(){return b}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/codegeneration/module/ExportListBuilder.js",[],function(){"use strict";function a(a,d,e){function f(b){for(var c=0;c=0;c--){var f=new b(e,d,a[c]);f.visitAny(a[c].tree)}}g(b),f(c)}var b=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ExportVisitor.js","traceur@0.0.108/src/codegeneration/module/ExportListBuilder.js")).ExportVisitor,c=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ValidationVisitor.js","traceur@0.0.108/src/codegeneration/module/ExportListBuilder.js")).ValidationVisitor;return{get buildExportList(){return a}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/codegeneration/module/ModuleSpecifierVisitor.js",[],function(){"use strict";var a=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../../syntax/ParseTreeVisitor.js","traceur@0.0.108/src/codegeneration/module/ModuleSpecifierVisitor.js")).ParseTreeVisitor,b=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../../util/StringSet.js","traceur@0.0.108/src/codegeneration/module/ModuleSpecifierVisitor.js")).StringSet,c=function(a){function c(a){$traceurRuntime.superConstructor(c).call(this),this.options_=a,this.moduleSpecifiers_=new b}return $traceurRuntime.createClass(c,{get moduleSpecifiers(){return this.moduleSpecifiers_.valuesAsArray()},visitModuleSpecifier:function(a){this.moduleSpecifiers_.add(a.token.processedValue)}},{},a)}(a);return{get ModuleSpecifierVisitor(){return c}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/loader/system-map.js",[],function(){"use strict";function a(a,b){var c=b.split("/"),d=a.split("/");if(c.length>d.length)return 0;for(var e=0;eg&&(e=b,g=b.split("/").length,f=j,h=j.split("/").length)})}if(e){var l=c.split("/").splice(g).join("/");return i=b[f][e]+(l?"/"+l:"")}})}if(i)return i;if(Object.getOwnPropertyNames(b).forEach(function(d){var f=b[d];f&&"string"==typeof f&&a(c,d)>g&&(e=d,g=d.split("/").length)}),!e)return c;var j=c.split("/").splice(g).join("/");return b[e]+(j?"/"+j:"")}var c={applyMap:b};return{get systemjs(){return c}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/loader/LoaderCompiler.js",[],function(){"use strict";var a=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../codegeneration/module/ExportListBuilder.js","traceur@0.0.108/src/loader/LoaderCompiler.js")).buildExportList,b=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../util/CollectingErrorReporter.js","traceur@0.0.108/src/loader/LoaderCompiler.js")).CollectingErrorReporter,c=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../Compiler.js","traceur@0.0.108/src/loader/LoaderCompiler.js")).Compiler,d=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../codegeneration/module/ModuleSpecifierVisitor.js","traceur@0.0.108/src/loader/LoaderCompiler.js")).ModuleSpecifierVisitor,e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../codegeneration/module/ModuleSymbol.js","traceur@0.0.108/src/loader/LoaderCompiler.js")).ModuleSymbol,f=($traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/Parser.js","traceur@0.0.108/src/loader/LoaderCompiler.js")).Parser,$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/SourceFile.js","traceur@0.0.108/src/loader/LoaderCompiler.js")).SourceFile,$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./system-map.js","traceur@0.0.108/src/loader/LoaderCompiler.js")).systemjs,$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../codegeneration/UniqueIdentifierGenerator.js","traceur@0.0.108/src/loader/LoaderCompiler.js")).UniqueIdentifierGenerator),g=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../util/url.js","traceur@0.0.108/src/loader/LoaderCompiler.js")),h=(g.isAbsolute,g.resolveUrl,$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../util/assert.js","traceur@0.0.108/src/loader/LoaderCompiler.js")).assert),i=3,j=(new f,0),k=function(){function f(){}return $traceurRuntime.createClass(f,{getModuleSpecifiers:function(a){this.parse(a);var b=new d(a.metadata.traceurOptions);return b.visit(a.metadata.tree),b.moduleSpecifiers},parse:function(a){h(!a.metadata.tree);var b=a.metadata,d=b.traceurOptions;"script"===a.type&&(d.script=!0),b.compiler=new c(d);var e=a.metadata.sourceName=a.address||a.normalizedName||"(unnamed)#"+String(++j);b.tree=b.compiler.parse(a.source,e)},transform:function(a){var b=a.metadata;b.transformedTree=b.compiler.transform(b.tree,a.normalizedName,b)},write:function(a){var b=a.metadata,c=b.outputName||b.sourceName||"",d=(b.sourceRoot,b.sourceName||a.normalizedName||a.address);b.transcoded=b.compiler.write(b.transformedTree,c,void 0,d)},evaluateCodeUnit:function(a){var b=(0,eval)(a.metadata.transcoded);return a.metadata.transformedTree=null,b},analyzeDependencies:function(b,c){for(var d=[],f=0;f=i),g.state==i){var j=g.metadata.moduleSymbol=new e(g.metadata.tree,g.normalizedName);d.push(j)}}this.checkForErrors(function(b){return a(d,c,b)})},checkForErrors:function(a){var c=new b,d=a(c);if(c.hadError())throw c.toError();return d}},{})}();return{get LoaderCompiler(){return k}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/loader/InternalLoader.js",[],function(){"use strict";function a(a){var b=[];return a.forEach(function(a){b.push(a)}),b}var b=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../util/assert.js","traceur@0.0.108/src/loader/InternalLoader.js")).assert,c=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./LoaderCompiler.js","traceur@0.0.108/src/loader/InternalLoader.js")).LoaderCompiler,d=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../codegeneration/module/ModuleSymbol.js","traceur@0.0.108/src/loader/InternalLoader.js")).ExportsList,e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../util/url.js","traceur@0.0.108/src/loader/InternalLoader.js")),f=e.isAbsolute,g=(e.resolveUrl,$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../Options.js","traceur@0.0.108/src/loader/InternalLoader.js")).Options),h=0,i=1,j=2,k=3,l=4,m=5,n=6,o=7,p=(function(a){function b(a,c){$traceurRuntime.superConstructor(b).call(this),this.message=a,this.tree=c,this.name="LoaderError"}return $traceurRuntime.createClass(b,{},{},a)}(Error),function(){function a(a,b,c,d,e,f,g){var i=this;this.promise=new Promise(function(j,k){i.loaderCompiler=a,i.normalizedName=b,i.type=c,i.name_=e,i.referrerName_=f,i.address=g,i.state_=d||h,i.error=null,i.result=null,i.metadata_={},i.dependencies=[],i.resolve=j,i.reject=k})}return $traceurRuntime.createClass(a,{get state(){return this.state_},set state(a){if(a=b})},getCodeUnitForModuleSpecifier:function(a,b){var c=this.loader_.normalize(a,b);return this.getCodeUnit_(c,"module").codeUnit},getExportsListForModuleSpecifier:function(a,b){var c=this.getCodeUnitForModuleSpecifier(a,b),e=c.metadata.moduleSymbol;if(!e){if(!c.result)throw new Error("InternalError: "+a+" is not a module, required by "+b);e=new d(c.normalizedName),e.addExportsFromModule(c.result)}return e},handleCodeUnitLoaded:function(a){var b=this,c=a.normalizedName;try{var d=a.getModuleSpecifiers();if(a.state=k,!d)return void this.abortAll("No module specifiers in "+c);a.dependencies=d.map(function(d){return b.getOrCreateCodeUnit_(d,c,null,b.defaultModuleMetadata_(a.metadata))})}catch(e){return void this.rejectOneAndAll(a,e)}if(a.dependencies.forEach(function(a){b.load_(a)}),this.areAll(k))try{"module"===a.type&&this.analyze(),this.transform(),this.evaluate()}catch(e){this.rejectOneAndAll(a,e)}},rejectOneAndAll:function(a,b){a.state.ERROR,a.error=b,a.reject(b),this.abortAll(b)},handleCodeUnitLoadError:function(a){var b=a.error?String(a.error)+"\n":"Failed to load '"+a.address+"'.\n";b+=a.nameTrace()+this.loader_.nameTrace(a),this.rejectOneAndAll(a,new Error(b))},abortAll:function(a){this.cache.forEach(function(b){b.state!==o&&b.reject(a)})},analyze:function(){this.loaderCompiler.analyzeDependencies(a(this.cache),this)},transform:function(){this.transformDependencies_(a(this.cache))},transformDependencies_:function(a,b){for(var c=0;c=m)){if(d.state===l){var e=d.normalizedName,f=b;return void this.rejectOneAndAll(d,new Error("Unsupported circular dependency between "+e+" and "+f))}d.state=l;try{this.transformCodeUnit_(d)}catch(g){return void this.rejectOneAndAll(d,g)}}}},transformCodeUnit_:function(a){if(this.transformDependencies_(a.dependencies,a.normalizedName),a.state!==o){this.loaderCompiler.transform(a),a.state=m,this.loaderCompiler.write(a);var b=a.metadata.compiler.sourceMapInfo;b&&(this.sourceMapsByURL_[b.url]=b.map,this.sourceMapsByOutputName_[b.outputName]=b.map),this.loader_.instantiate(a)}},orderDependencies:function(){function a(d){b.has(d)||(b.set(d,!0),d.dependencies.forEach(a),c.push(d))}var b=new Map,c=[];return this.cache.forEach(a),c},evaluate:function(){for(var a=this.orderDependencies(),b=0;b=n)){var d=void 0;try{d=c.evaluate()}catch(e){return void this.rejectOneAndAll(c,e)}c.result=d,c.source=null}}for(var b=0;b=n||(c.state=n,c.resolve(c.result))}}},{})}(),v={CodeUnit:p,EvalCodeUnit:t,LoadCodeUnit:s,LoaderCompiler:c};return{get InternalLoader(){return u},get internals(){return v}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/loader/Loader.js",[],function(){"use strict";function a(){throw new Error("Unimplemented Loader function, see extended class")}var b=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./InternalLoader.js","traceur@0.0.108/src/loader/Loader.js")).InternalLoader,c=function(){function c(a){this.internalLoader_=new b(this,a),this.loaderCompiler_=a}return $traceurRuntime.createClass(c,{"import":function(a){var b=void 0!==arguments[1]?arguments[1]:{},c=b.referrerName,d=b.address,e=b.metadata,f=this;return this.internalLoader_.load(a,c,d,e).then(function(a){return f.get(a.normalizedName)})},module:function(a){var b=void 0!==arguments[1]?arguments[1]:{},c=b.referrerName,d=b.address,e=b.metadata;return this.internalLoader_.module(a,c,d,e)},define:function(a,b){var c=void 0!==arguments[2]?arguments[2]:{},d=c.address,e=c.metadata;return this.internalLoader_.define(a,b,d,e)},get:function(b){a()},set:function(b,c){a()},normalize:function(b,c,d){a()},locate:function(b){a()},fetch:function(b){a()},translate:function(b){a()},instantiate:function(b){a()}},{})}();return{get throwAbstractMethod(){return a},get Loader(){return c},get LoaderCompiler(){return LoaderCompiler}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/loader/version.js",[],function(){"use strict";var a="0.0.108";return{get version(){return a}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/loader/TraceurLoader.js",[],function(){"use strict";var a=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../util/url.js","traceur@0.0.108/src/loader/TraceurLoader.js")),b=a.isAbsolute,c=a.resolveUrl,d=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./Loader.js","traceur@0.0.108/src/loader/TraceurLoader.js")).Loader,e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./LoaderCompiler.js","traceur@0.0.108/src/loader/TraceurLoader.js")).LoaderCompiler,f=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../Options.js","traceur@0.0.108/src/loader/TraceurLoader.js")).Options,g=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./system-map.js","traceur@0.0.108/src/loader/TraceurLoader.js")).systemjs,h=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./webLoader.js","traceur@0.0.108/src/loader/TraceurLoader.js")).webLoader,i=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./version.js","traceur@0.0.108/src/loader/TraceurLoader.js")).version,j=($traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../WebPageTranscoder.js","traceur@0.0.108/src/loader/TraceurLoader.js")).WebPageTranscoder,0),k=function(a){function d(a,b){var c=void 0!==arguments[2]?arguments[2]:new e;$traceurRuntime.superConstructor(d).call(this,c),this.fileLoader_=a,this.baseURL_=b&&String(b),this.moduleStore_=$traceurRuntime.ModuleStore}return $traceurRuntime.createClass(d,{get baseURL(){return this.baseURL_},set baseURL(a){this.baseURL_=String(a)},get:function(a){return this.moduleStore_.get(a)},set:function(a,b){this.moduleStore_.set(a,b)},normalize:function(a,b,c){var d=this.moduleStore_.normalize(a,b,c);return"undefined"!=typeof g&&System.map?g.applyMap(System.map,d,b):d},locate:function(a){a.metadata.traceurOptions=a.metadata.traceurOptions||{};var d=a.normalizedName,e=a.metadata.traceurOptions,f=a.metadata&&a.metadata.baseURL;f=f||this.baseURL;var g=e&&e.referrer;if(g){for(var h=Math.min(g.length,f.length),i=0,j=0;h>j;j++){var k=g[g.length-1-j];if(k!==f[f.length-1-j])break;i++}if(i){var l=g.slice(0,-i),m=f.slice(0,-i);0===d.indexOf(l)&&(d=d.replace(l,m))}}return b(d)||f&&(a.metadata.baseURL=f,d=c(f,d)),d},sourceName:function(a){var b=a.metadata.traceurOptions,c=a.address;if(b.sourceMaps){var d=this.baseURL;c?d&&0===c.indexOf(d)&&(c=c.substring(d.length)):c=this.baseURL+String(j++)}return c},nameTrace:function(a){var b="";a.metadata.locateMap&&(b+=this.locateMapTrace(a));var c=a.metadata.baseURL||this.baseURL;return b+=c?this.baseURLTrace(c):"No baseURL\n"},locateMapTrace:function(a){var b=a.metadata.locateMap;return"locate found '"+b.pattern+"' -> '"+b.replacement+"'\n"},baseURLTrace:function(a){return"locate resolved against base '"+a+"'\n"},fetch:function(a){var b=this;return new Promise(function(c,d){a?a.address&&"string"==typeof a.address?b.fileLoader_.load(a.address,c,d):d(new TypeError("fetch({address}) missing required string.")):d(new TypeError("fetch requires argument object"))})},translate:function(a){return a.source},instantiate:function(a){var b=a;b.name,b.metadata,b.address,b.source,b.sourceMap;return new Promise(function(a,b){a(void 0)})},bundledModule:function(a){return this.moduleStore_.bundleStore[a]},importAll:function(a){var b=void 0!==arguments[1]?arguments[1]:{},c=b.referrerName,d=b.address,e=b.metadata,f=this;return Promise.all(a.map(function(a){return f["import"](a,{referrerName:c,address:d,metadata:e})}))},loadAsScript:function(a){var b,c=void 0!==arguments[1]?arguments[1]:{},d=c.referrerName,e=c.address,f=void 0===(b=c.metadata)?{}:b;return f.traceurOptions=f.traceurOptions||{},f.traceurOptions.script=!0,this.internalLoader_.load(a,d,e,f).then(function(a){return a.result})},loadAsScriptAll:function(a){var b=void 0!==arguments[1]?arguments[1]:{},c=b.referrerName,d=b.address,e=b.metadata,f=this;return Promise.all(a.map(function(a){return f.loadAsScript(a,{referrerName:c,address:d,metadata:e})}))},script:function(a){var b=void 0!==arguments[1]?arguments[1]:{},c=b.name,d=b.referrerName,e=b.address,f=b.metadata;return this.internalLoader_.script(a,c,d,e,f)},semVerRegExp_:function(){return/^(\d+)\.(\d+)\.(\d+)(?:-([0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))?(?:\+[0-9A-Za-z-]+)?$/},semverMap:function(a){var b=a.indexOf("/");0>b&&(b=a.length);var c=a.slice(0,b),d=c.indexOf("@");if(-1!==d){var e=c.slice(d+1),f=this.semVerRegExp_().exec(e);if(f){var g=f[1],h=f[2],i=c.slice(0,d),j=Object.create(null);return j[i]=c,j[i+"@"+g]=c,j[i+"@"+g+"."+h]=c,j}throw new Error("semverMap found no matching semver regexp in "+e)}throw new Error("semverMap expected name@semver, got "+c+" "+a)},get version(){return i},getSourceMap:function(a){return this.internalLoader_.getSourceMap(a)},register:function(a,b,c){$traceurRuntime.ModuleStore.register(a,b,c)},registerModule:function(a,b,c){$traceurRuntime.ModuleStore.registerModule(a,b,c)},dirname:function(a){var b=a.lastIndexOf("/");return-1===b?".":0===b?"/":a.slice(0,b)}},{},a)}(d),l=function(a){function b(){$traceurRuntime.superConstructor(b).call(this,h,window.location.href,new e)}return $traceurRuntime.createClass(b,{loadScriptTypeModule:function(){var a=void 0!==arguments[0]?arguments[0]:new f;new traceur.WebPageTranscoder(document.location.href,a).run()}},{},a)}(k);return{get TraceurLoader(){return k},get BrowserTraceurLoader(){return l}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/node/NodeLoaderCompiler.js",[],function(){"use strict";var a=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../loader/LoaderCompiler.js","traceur@0.0.108/src/node/NodeLoaderCompiler.js")).LoaderCompiler,b=function(a){function b(){$traceurRuntime.superConstructor(b).call(this),this.sourceMapsInMemory_=!1}return $traceurRuntime.createClass(b,{evaluateCodeUnit:function(a){var b=require("vm").runInThisContext,c=require("semver"),d=a.metadata.transcoded,e=a.address||a.normalizedName;"memory"===a.metadata.traceurOptions.sourceMaps&&this.enableMemorySourceMaps_();var f;f=c.gte(process.version,"0.12.0")?{filename:e}:e;var g=b(d,f);return a.metadata.transformedTree=null,g},enableMemorySourceMaps_:function(){this.sourceMapsInMemory_||(require("source-map-support").install({retrieveSourceMap:function(a){try{var b=System.getSourceMap(a);if(b)return{url:a,map:b}}catch(c){console.error("retrieveSourceMap FAILED ",c)}}}),this.sourceMapsInMemory_=!0)}},{},a)}(a);return{get NodeLoaderCompiler(){return b}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/loader/InlineLoaderCompiler.js",[],function(){"use strict";var a=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./LoaderCompiler.js","traceur@0.0.108/src/loader/InlineLoaderCompiler.js")).LoaderCompiler,b=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTrees.js","traceur@0.0.108/src/loader/InlineLoaderCompiler.js")).Script,c=function(a){function c(a){$traceurRuntime.superConstructor(c).call(this),this.elements=a}return $traceurRuntime.createClass(c,{write:function(){},evaluateCodeUnit:function(a){var b,c=a.metadata.transformedTree;(b=this.elements).push.apply(b,$traceurRuntime.spread(c.scriptItemList))},toTree:function(){return new b(null,this.elements,null)}},{},a)}(a);return{get InlineLoaderCompiler(){return c}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/loader/NodeTraceurLoader.js",[],function(){"use strict";var a=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./TraceurLoader.js","traceur@0.0.108/src/loader/NodeTraceurLoader.js")).TraceurLoader,b=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../node/NodeLoaderCompiler.js","traceur@0.0.108/src/loader/NodeTraceurLoader.js")).NodeLoaderCompiler,c=function(a){function c(){var a=require("path"),d=require("../node/nodeLoader.js"),e=(a.resolve("./")+"/").replace(/\\/g,"/");$traceurRuntime.superConstructor(c).call(this,d,e,new b),this.traceurMap_=null}return $traceurRuntime.createClass(c,{getSourceMap:function(a){var b=$traceurRuntime.superGet(this,c.prototype,"getSourceMap").call(this,a);if(!b&&a.replace(/\\/g,"/").endsWith("/bin/traceur.js")){if(!this.traceurMap_){var d=require("fs");this.traceurMap_=d.readFileSync(a+".map","utf8")}b=this.traceurMap_}return b}},{},a)}(a);return{get NodeTraceurLoader(){return c}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/loader/loader-imports.js",[],function(){"use strict";var a=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./Loader.js","traceur@0.0.108/src/loader/loader-imports.js")).Loader,b=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./LoaderCompiler.js","traceur@0.0.108/src/loader/loader-imports.js")).LoaderCompiler,c=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./TraceurLoader.js","traceur@0.0.108/src/loader/loader-imports.js")).BrowserTraceurLoader,d=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../node/NodeLoaderCompiler.js","traceur@0.0.108/src/loader/loader-imports.js")).NodeLoaderCompiler,e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./InlineLoaderCompiler.js","traceur@0.0.108/src/loader/loader-imports.js")).InlineLoaderCompiler,f=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./NodeTraceurLoader.js","traceur@0.0.108/src/loader/loader-imports.js")).NodeTraceurLoader,g=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./TraceurLoader.js","traceur@0.0.108/src/loader/loader-imports.js")).TraceurLoader,h={BrowserTraceurLoader:c,InlineLoaderCompiler:e,Loader:a,LoaderCompiler:b,NodeLoaderCompiler:d,NodeTraceurLoader:f,TraceurLoader:g};return{get loader(){return h}}}),$traceurRuntime.registerModule("traceur@0.0.108/src/traceur.js",[],function(){"use strict";var a=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./util-imports.js","traceur@0.0.108/src/traceur.js")),b=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./compiler-imports.js","traceur@0.0.108/src/traceur.js")),c=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./loader/loader-imports.js","traceur@0.0.108/src/traceur.js"));return $traceurRuntime.exportStar({},a,b,c)}),$traceurRuntime.registerModule("traceur@0.0.108/src/traceur-import.js",[],function(){"use strict";var a=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./traceur.js","traceur@0.0.108/src/traceur-import.js"));return Reflect.global.traceur=a,$traceurRuntime.ModuleStore.set("traceur@",a),{}}),$traceurRuntime.getModule("traceur@0.0.108/src/traceur-import.js");