text: (window.webpackJsonp=window.webpackJsonp||[]).push([[88],{sRKF:function(e,t){!function(e){"use strict";if(!e.$traceurRuntime){setupGlobals(e);e.$traceurRuntime={options:{},setupGlobals:setupGlobals,typeof:function(e){return typeof e}}}function setupGlobals(e){e.Reflect=e.Reflect||{},e.Reflect.global=e.Reflect.global||e}}("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this),function(){var e=new RegExp("^(?:([^:/?#.]+):)?(?://(?:([^/?#]*)@)?([\\w\\d\\-\\u0100-\\uffff.%]*)(?::([0-9]+))?)?([^?#]+)?(?:\\?([^#]*))?(?:#(.*))?$"),t=1,r=2,n=3,i=4,a=5,s=6,o=7;function split(t){return t.match(e)}function removeDotSegments(e){if("/"===e)return"/";for(var t="/"===e[0]?"/":"",r="/"===e.slice(-1)?"/":"",n=e.split("/"),i=[],a=0,s=0;s<n.length;s++){var o=n[s];switch(o){case"":case".":break;case"..":i.length?i.pop():a++;break;default:i.push(o)}}if(!t){for(;a-- >0;)i.unshift("..");0===i.length&&i.push(".")}return t+i.join("/")+r}function joinAndCanonicalizePath(e){var u=e[a]||"";return u=removeDotSegments(u),e[a]=u,function buildFromEncodedParts(e,t,r,n,i,a,s){var o=[];return e&&o.push(e,":"),r&&(o.push("//"),t&&o.push(t,"@"),o.push(r),n&&o.push(":",n)),i&&o.push(i),a&&o.push("?",a),s&&o.push("#",s),o.join("")}(e[t],e[r],e[n],e[i],e[a],e[s],e[o])}$traceurRuntime.canonicalizeUrl=function canonicalizeUrl(e){return joinAndCanonicalizePath(split(e))},$traceurRuntime.isAbsolute=function isAbsolute(e){return!!e&&("/"===e[0]||!!split(e)[t])},$traceurRuntime.removeDotSegments=removeDotSegments,$traceurRuntime.resolveUrl=function resolveUrl(e,r){var n=split(r),s=split(e);if(n[t])return joinAndCanonicalizePath(n);n[t]=s[t];for(var o=t;o<=i;o++)n[o]||(n[o]=s[o]);if("/"==n[a][0])return joinAndCanonicalizePath(n);var u=s[a],c=u.lastIndexOf("/");return u=u.slice(0,c+1)+n[a],n[a]=u,joinAndCanonicalizePath(n)}}(),function(e){"use strict";var t,r=$traceurRuntime,n=r.canonicalizeUrl,i=r.resolveUrl,a=r.isAbsolute,s=Object.create(null);function UncoatedModuleEntry(e,t){this.url=e,this.value_=t}function ModuleEvaluationError(e,t){this.message=this.constructor.name+": "+this.stripCause(t)+" in "+e,t instanceof ModuleEvaluationError||!t.stack?this.stack="":this.stack=this.stripStack(t.stack)}function columnSpacing(e){for(var t="",r=0;r<e-1;r++)t+="-";return t}function UncoatedModuleInstantiator(e,t){UncoatedModuleEntry.call(this,e,null),this.func=t}t=e.location&&e.location.href?i(e.location.href,"./"):"",ModuleEvaluationError.prototype=Object.create(Error.prototype),ModuleEvaluationError.prototype.constructor=ModuleEvaluationError,ModuleEvaluationError.prototype.stripError=function(e){return e.replace(/.*Error:/,this.constructor.name+":")},ModuleEvaluationError.prototype.stripCause=function(e){return e?e.message?this.stripError(e.message):e+"":""},ModuleEvaluationError.prototype.loadedBy=function(e){this.stack+="\n loaded by "+e},ModuleEvaluationError.prototype.stripStack=function(e){var t=[];return e.split("\n").some((function(e){if(/UncoatedModuleInstantiator/.test(e))return!0;t.push(e)})),t[0]=this.stripError(t[0]),t.join("\n")},UncoatedModuleInstantiator.prototype=Object.create(UncoatedModuleEntry.prototype),UncoatedModuleInstantiator.prototype.getUncoatedModule=function(){var t=this;if(this.value_)return this.value_;try{var r;return void 0!==typeof $traceurRuntime&&$traceurRuntime.require&&(r=$traceurRuntime.require.bind(null,this.url)),this.value_=this.func.call(e,r)}catch(e){if(e instanceof ModuleEvaluationError)throw e.loadedBy(this.url),e;if(e.stack){var n=this.func.toString().split("\n"),i=[];e.stack.split("\n").some((function(e,r){if(e.indexOf("UncoatedModuleInstantiator.getUncoatedModule")>0)return!0;var a=/(at\s[^\s]*\s).*>:(\d*):(\d*)\)/.exec(e);if(a){var s=parseInt(a[2],10);i=i.concat(function beforeLines(e,t){var r=[],n=t-3;n<0&&(n=0);for(var i=n;i<t;i++)r.push(e[i]);return r}(n,s)),1===r?i.push(columnSpacing(a[3])+"^ "+t.url):i.push(columnSpacing(a[3])+"^"),(i=i.concat(function afterLines(e,t){var r=t+1;r>e.length-1&&(r=e.length-1);for(var n=[],i=t;i<=r;i++)n.push(e[i]);return n}(n,s))).push("= = = = = = = = =")}else i.push(e)})),e.stack=i.join("\n")}throw new ModuleEvaluationError(this.url,e)}};var o=Object.create(null),u={};function Module(e){var t=arguments[1],r=Object.create(null);return Object.getOwnPropertyNames(e).forEach((function(n){var i,a;if(t===u){var s=Object.getOwnPropertyDescriptor(e,n);s.get&&(i=s.get)}i||(a=e[n],i=function(){return a}),Object.defineProperty(r,n,{get:i,enumerable:!0})})),Object.preventExtensions(r),r}var c={normalize:function(e,t,r){if("string"!=typeof e)throw new TypeError("module name must be a string, not "+typeof e);if(a(e))return n(e);if(/[^\.]\/\.\.\//.test(e))throw new Error("module name embeds /../: "+e);return"."===e[0]&&t?i(t,e):n(e)},get:function(e){var t=function getUncoatedModuleInstantiator(e){if(e){var t=c.normalize(e);return s[t]}}(e);if(t){var r=o[t.url];return r||(r=Module(t.getUncoatedModule(),u),o[t.url]=r)}},set:function(e,t){e=String(e),s[e]=new UncoatedModuleInstantiator(e,(function(){return t})),o[e]=t},get baseURL(){return t},set baseURL(e){t=String(e)},registerModule:function(e,t,r){var n=c.normalize(e);if(s[n])throw new Error("duplicate module named "+n);s[n]=new UncoatedModuleInstantiator(n,r)},bundleStore:Object.create(null),register:function(e,t,r){t&&(t.length||r.length)?this.bundleStore[e]={deps:t,execute:function(){var e=arguments,n={};t.forEach((function(t,r){return n[t]=e[r]}));var i=r.call(this,n);return i.execute.call(this),i.exports}}:this.registerModule(e,t,r)},getAnonymousModule:function(e){return new Module(e(),u)}},l=new Module({ModuleStore:c});c.set("@traceur/src/runtime/ModuleStore.js",l);var m=$traceurRuntime.setupGlobals;$traceurRuntime.setupGlobals=function(e){m(e)},$traceurRuntime.ModuleStore=c,$traceurRuntime.registerModule=c.registerModule.bind(c),$traceurRuntime.getModule=c.get,$traceurRuntime.setModule=c.set,$traceurRuntime.normalizeModuleName=c.normalize}("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this),$traceurRuntime.registerModule("traceur@0.0.111/src/runtime/new-unique-string.js",[],(function(){"use strict";var e=Math.random,t=Date.now()%1e9;function newUniqueString(){return"__$"+(1e9*e()>>>1)+"$"+ ++t+"$__"}return{get default(){return newUniqueString}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/runtime/has-native-symbols.js",[],(function(){"use strict";var e=!!Object.getOwnPropertySymbols&&"function"==typeof Symbol;function hasNativeSymbol(){return e}return{get default(){return hasNativeSymbol}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/runtime/modules/symbols.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../new-unique-string.js","traceur@0.0.111/src/runtime/modules/symbols.js")).default,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../has-native-symbols.js","traceur@0.0.111/src/runtime/modules/symbols.js")).default,r=Object.create,n=Object.defineProperty,i=Object.freeze,a=Object.getOwnPropertyNames,s=Object.keys,o=TypeError;function nonEnum(e){return{configurable:!0,enumerable:!1,value:e,writable:!0}}var u=e(),c=e(),l=e(),m=r(null),p=function Symbol(e){var t=new SymbolValue(e);if(!(this instanceof p))return t;throw new o("Symbol cannot be new'ed")};function SymbolValue(t){var r=e();n(this,l,{value:this}),n(this,u,{value:r}),n(this,c,{value:t}),i(this),m[r]=this}function removeSymbolKeys(e){for(var t,r=[],n=0;n<e.length;n++)t=e[n],m[t]||r.push(e[n]);return r}function getOwnPropertyNames(e){return removeSymbolKeys(a(e))}function keys(e){return removeSymbolKeys(s(e))}function getOwnPropertySymbols(e){for(var t=[],r=a(e),n=0;n<r.length;n++){var i=m[r[n]];i&&t.push(i)}return t}n(p.prototype,"constructor",nonEnum(p)),n(p.prototype,"toString",nonEnum((function(){return this[l][u]}))),n(p.prototype,"valueOf",nonEnum((function(){var e=this[l];if(!e)throw o("Conversion from symbol to string");return e[u]}))),n(SymbolValue.prototype,"constructor",nonEnum(p)),n(SymbolValue.prototype,"toString",{value:p.prototype.toString,enumerable:!1}),n(SymbolValue.prototype,"valueOf",{value:p.prototype.valueOf,enumerable:!1}),i(SymbolValue.prototype),function polyfillSymbol(e){var r=e.Object;t()||(e.Symbol=p,r.getOwnPropertyNames=getOwnPropertyNames,r.keys=keys,n(r,"getOwnPropertySymbols",nonEnum(getOwnPropertySymbols))),e.Symbol.iterator||(e.Symbol.iterator=e.Symbol("Symbol.iterator")),e.Symbol.observer||(e.Symbol.observer=e.Symbol("Symbol.observer"))}("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:void 0);var f=t()?function(e){return typeof e}:function(e){return e instanceof SymbolValue?"symbol":typeof e};return{get typeof(){return f}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/runtime/modules/typeof.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./symbols.js","traceur@0.0.111/src/runtime/modules/typeof.js"));return{get default(){return e.typeof}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/runtime/symbols.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./modules/typeof.js","traceur@0.0.111/src/runtime/symbols.js")).default;return $traceurRuntime.typeof=e,{}})),$traceurRuntime.registerModule("traceur@0.0.111/src/runtime/modules/createClass.js",[],(function(){"use strict";var e=Object,t=TypeError,r=Object,n=r.create,i=r.defineProperties,a=r.defineProperty,s=r.getOwnPropertyDescriptor,o=r.getOwnPropertyNames,u=r.getOwnPropertySymbols;function forEachPropertyKey(e,t){o(e).forEach(t),u&&u(e).forEach(t)}function getDescriptors(e){var t={};return forEachPropertyKey(e,(function(r){t[r]=s(e,r),t[r].enumerable=!1})),t}var c={enumerable:!1};function makePropertiesNonEnumerable(e){forEachPropertyKey(e,(function(t){a(e,t,c)}))}function createClass(e,t,r,s){return a(t,"constructor",{value:e,configurable:!0,enumerable:!1,writable:!0}),arguments.length>3?("function"==typeof s&&(e.__proto__=s),e.prototype=n(getProtoParent(s),getDescriptors(t))):(makePropertiesNonEnumerable(t),e.prototype=t),a(e,"prototype",{configurable:!1,writable:!1}),i(e,getDescriptors(r))}function getProtoParent(r){if("function"==typeof r){var n=r.prototype;if(e(n)===n||null===n)return r.prototype;throw new t("super prototype must be an Object or null")}if(null===r)return null;throw new t("Super expression must either be null or a function, not "+typeof r+".")}return{get default(){return createClass}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/runtime/modules/superConstructor.js",[],(function(){"use strict";function superConstructor(e){return e.__proto__}return{get default(){return superConstructor}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/runtime/modules/superDescriptor.js",[],(function(){"use strict";var e=Object,t=e.getOwnPropertyDescriptor,r=e.getPrototypeOf;function superDescriptor(e,n){var i=r(e);do{var a=t(i,n);if(a)return a;i=r(i)}while(i)}return{get default(){return superDescriptor}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/runtime/modules/superGet.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./superDescriptor.js","traceur@0.0.111/src/runtime/modules/superGet.js")).default;function superGet(t,r,n){var i=e(r,n);if(i){var a=i.value;return a||(i.get?i.get.call(t):a)}}return{get default(){return superGet}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/runtime/modules/superSet.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./superDescriptor.js","traceur@0.0.111/src/runtime/modules/superSet.js")).default,t=TypeError;function superSet(r,n,i,a){var s=e(n,i);if(s&&s.set)return s.set.call(r,a),a;throw t("super has no setter '"+i+"'.")}return{get default(){return superSet}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/runtime/classes.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./modules/createClass.js","traceur@0.0.111/src/runtime/classes.js")).default,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./modules/superConstructor.js","traceur@0.0.111/src/runtime/classes.js")).default,r=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./modules/superGet.js","traceur@0.0.111/src/runtime/classes.js")).default,n=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./modules/superSet.js","traceur@0.0.111/src/runtime/classes.js")).default;return $traceurRuntime.createClass=e,$traceurRuntime.superConstructor=t,$traceurRuntime.superGet=r,$traceurRuntime.superSet=n,{}})),$traceurRuntime.registerModule("traceur@0.0.111/src/runtime/modules/exportStar.js",[],(function(){"use strict";var e=Object,t=e.defineProperty,r=e.getOwnPropertyNames;function exportStar(e){for(var n=arguments,$__3=function(i){var a=n[i],s=r(a),$__5=function(r){var n=s[r];if("__esModule"===n||"default"===n)return 0;t(e,n,{get:function(){return a[n]},enumerable:!0})};e:for(var o=0;o<s.length;o++)switch($__5(o)){case 0:continue e}},i=1;i<arguments.length;i++)$__3(i);return e}return{get default(){return exportStar}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/runtime/exportStar.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./modules/exportStar.js","traceur@0.0.111/src/runtime/exportStar.js")).default;return $traceurRuntime.exportStar=e,{}})),$traceurRuntime.registerModule("traceur@0.0.111/src/runtime/private-symbol.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./new-unique-string.js","traceur@0.0.111/src/runtime/private-symbol.js")).default,t="function"==typeof Symbol?Symbol:void 0,r=Object.getOwnPropertySymbols,n=(0,Object.create)(null);function isPrivateSymbol(e){return n[e]}function createPrivateSymbol(){var r=(t||e)();return n[r]=!0,r}function hasPrivate(e,t){return hasOwnProperty.call(e,t)}function deletePrivate(e,t){return!!hasPrivate(e,t)&&(delete e[t],!0)}function setPrivate(e,t,r){e[t]=r}function getPrivate(e,t){var r=e[t];if(void 0!==r)return hasOwnProperty.call(e,t)?r:void 0}function init(){r&&(Object.getOwnPropertySymbols=function getOwnPropertySymbols(e){for(var t=[],n=r(e),i=0;i<n.length;i++){var a=n[i];isPrivateSymbol(a)||t.push(a)}return t})}return{get isPrivateSymbol(){return isPrivateSymbol},get createPrivateSymbol(){return createPrivateSymbol},get hasPrivate(){return hasPrivate},get deletePrivate(){return deletePrivate},get setPrivate(){return setPrivate},get getPrivate(){return getPrivate},get init(){return init}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/runtime/private-weak-map.js",[],(function(){"use strict";var e="function"==typeof WeakMap?WeakMap:void 0;function isPrivateSymbol(e){return!1}function createPrivateSymbol(){return new e}function hasPrivate(e,t){return t.has(e)}function deletePrivate(e,t){return t.delete(e)}function setPrivate(e,t,r){t.set(e,r)}function getPrivate(e,t){return t.get(e)}function init(){}return{get isPrivateSymbol(){return isPrivateSymbol},get createPrivateSymbol(){return createPrivateSymbol},get hasPrivate(){return hasPrivate},get deletePrivate(){return deletePrivate},get setPrivate(){return setPrivate},get getPrivate(){return getPrivate},get init(){return init}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/runtime/private.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./private-symbol.js","traceur@0.0.111/src/runtime/private.js")),t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./private-weak-map.js","traceur@0.0.111/src/runtime/private.js")),r="function"==typeof WeakMap?t:e,n=r.isPrivateSymbol,i=r.createPrivateSymbol,a=r.hasPrivate,s=r.deletePrivate,o=r.setPrivate,u=r.getPrivate;return r.init(),{get isPrivateSymbol(){return n},get createPrivateSymbol(){return i},get hasPrivate(){return a},get deletePrivate(){return s},get setPrivate(){return o},get getPrivate(){return u}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/runtime/modules/properTailCalls.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../private.js","traceur@0.0.111/src/runtime/modules/properTailCalls.js")),t=e.getPrivate,r=e.setPrivate,n=e.createPrivateSymbol,i=Function.prototype.call.bind(Function.prototype.apply),a=Object.create(null),s=null;function createContinuation(e,t,r){return[a,e,t,r]}function isContinuation(e){return e&&e[0]===a}function $construct(e,t){return new(function $bind(e,t,r){for(var n=[t],a=0;a<r.length;a++)n[a+1]=r[a];return i(Function.prototype.bind,e,n)}(e,null,t))}function isTailRecursive(e){return!!t(e,s)}function tailCall(e,t,r){var n=r[0];if(isContinuation(n))return n=i(e,t,n[3]);for(n=createContinuation(e,t,r);;){if(!isContinuation(n=isTailRecursive(e)?i(e,n[2],[n]):i(e,n[2],n[3])))return n;e=n[1]}}function construct(){return isTailRecursive(this)?$construct(this,[createContinuation(null,null,arguments)]):$construct(this,arguments)}function initTailRecursiveFunction(e){return null===s&&function setupProperTailCalls(){s=n(),Function.prototype.call=initTailRecursiveFunction((function call(e){var t=tailCall((function(e){for(var t=[],r=1;r<arguments.length;++r)t[r-1]=arguments[r];var n=createContinuation(this,e,t);return n}),this,arguments);return t})),Function.prototype.apply=initTailRecursiveFunction((function apply(e,t){var r=tailCall((function(e,t){return createContinuation(this,e,t)}),this,arguments);return r}))}(),r(e,s,!0),e}return{get createContinuation(){return createContinuation},get tailCall(){return tailCall},get construct(){return construct},get initTailRecursiveFunction(){return initTailRecursiveFunction}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/runtime/modules/initTailRecursiveFunction.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./properTailCalls.js","traceur@0.0.111/src/runtime/modules/initTailRecursiveFunction.js"));return{get default(){return e.initTailRecursiveFunction}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/runtime/modules/call.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./properTailCalls.js","traceur@0.0.111/src/runtime/modules/call.js"));return{get default(){return e.tailCall}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/runtime/modules/continuation.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./properTailCalls.js","traceur@0.0.111/src/runtime/modules/continuation.js"));return{get default(){return e.createContinuation}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/runtime/modules/construct.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./properTailCalls.js","traceur@0.0.111/src/runtime/modules/construct.js"));return{get default(){return e.construct}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/runtime/properTailCalls.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./modules/initTailRecursiveFunction.js","traceur@0.0.111/src/runtime/properTailCalls.js")).default,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./modules/call.js","traceur@0.0.111/src/runtime/properTailCalls.js")).default,r=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./modules/continuation.js","traceur@0.0.111/src/runtime/properTailCalls.js")).default,n=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./modules/construct.js","traceur@0.0.111/src/runtime/properTailCalls.js")).default;return $traceurRuntime.initTailRecursiveFunction=e,$traceurRuntime.call=t,$traceurRuntime.continuation=r,$traceurRuntime.construct=n,{}})),$traceurRuntime.registerModule("traceur@0.0.111/src/runtime/relativeRequire.js",[],(function(){"use strict";var e;return $traceurRuntime.require=function relativeRequire(t,r){if(e=e||"undefined"!=typeof require&&require("path"),!function isDirectory(e){return"/"===e.slice(-1)}(r)&&!function isAbsolute(e){return"/"===e[0]}(r))return function isRelative(e){return"."===e[0]}(r)?require(e.resolve(e.dirname(t),r)):require(r)},{}})),$traceurRuntime.registerModule("traceur@0.0.111/src/runtime/checkObjectCoercible.js",[],(function(){"use strict";var e=TypeError;function checkObjectCoercible(t){if(null==t)throw new e("Value cannot be converted to an Object");return t}return{get default(){return checkObjectCoercible}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/runtime/modules/spread.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../checkObjectCoercible.js","traceur@0.0.111/src/runtime/modules/spread.js")).default;function spread(){for(var t,r=[],n=0,i=0;i<arguments.length;i++){var a=e(arguments[i]);if("function"!=typeof a[Symbol.iterator])throw new TypeError("Cannot spread non-iterable object.");for(var s=a[Symbol.iterator]();!(t=s.next()).done;)r[n++]=t.value}return r}return{get default(){return spread}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/runtime/spread.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./modules/spread.js","traceur@0.0.111/src/runtime/spread.js")).default;return $traceurRuntime.spread=e,{}})),$traceurRuntime.registerModule("traceur@0.0.111/src/runtime/modules/iteratorToArray.js",[],(function(){"use strict";function iteratorToArray(e){for(var t,r=[],n=0;!(t=e.next()).done;)r[n++]=t.value;return r}return{get default(){return iteratorToArray}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/runtime/destructuring.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./modules/iteratorToArray.js","traceur@0.0.111/src/runtime/destructuring.js")).default;return $traceurRuntime.iteratorToArray=e,{}})),$traceurRuntime.registerModule("traceur@0.0.111/src/runtime/modules/async.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../private.js","traceur@0.0.111/src/runtime/modules/async.js")),t=e.createPrivateSymbol,r=e.getPrivate,n=e.setPrivate,i=Object,a=i.create,s=i.defineProperty,o=t();function AsyncGeneratorFunction(){}function AsyncGeneratorFunctionPrototype(){}AsyncGeneratorFunction.prototype=AsyncGeneratorFunctionPrototype,AsyncGeneratorFunctionPrototype.constructor=AsyncGeneratorFunction,s(AsyncGeneratorFunctionPrototype,"constructor",{enumerable:!1});var u=$traceurRuntime.createClass((function u(e){var t=this;this.decoratedObserver=createDecoratedGenerator(e,(function(){t.done=!0})),this.done=!1,this.inReturn=!1}),{throw:function(e){if(!this.inReturn)throw e},yield:function(e){if(this.done)throw void(this.inReturn=!0);var t;try{t=this.decoratedObserver.next(e)}catch(e){throw this.done=!0,e}if(void 0!==t){if(t.done)throw this.done=!0,void(this.inReturn=!0);return t.value}},yieldFor:function(e){var t=this;return observeForEach(e[Symbol.observer].bind(e),(function(e){if(t.done)this.return();else{var r;try{r=t.decoratedObserver.next(e)}catch(e){throw t.done=!0,e}if(void 0!==r)return r.done&&(t.done=!0),r}}))}},{});function initAsyncGeneratorFunction(e){return e.prototype=a(AsyncGeneratorFunctionPrototype.prototype),e.__proto__=AsyncGeneratorFunctionPrototype,e}function createAsyncGeneratorInstance(e,t){for(var r=[],i=2;i<arguments.length;i++)r[i-2]=arguments[i];var s=a(t.prototype);return n(s,o,e),s}function observeForEach(e,t){return new Promise((function(r,n){var i=e({next:function(e){return t.call(i,e)},throw:function(e){n(e)},return:function(e){r(e)}})}))}function schedule(e){return Promise.resolve().then(e)}AsyncGeneratorFunctionPrototype.prototype[Symbol.observer]=function(e){var t=r(this,o),n=new u(e);return schedule((function(){return t(n)})).then((function(e){n.done||n.decoratedObserver.return(e)})).catch((function(e){n.done||n.decoratedObserver.throw(e)})),n.decoratedObserver},s(AsyncGeneratorFunctionPrototype.prototype,Symbol.observer,{enumerable:!1});var c=Symbol(),l=Symbol(),m=$traceurRuntime.createClass((function m(e,t){this[c]=e,this[l]=t}),{next:function(e){var t=this[c].next(e);return void 0!==t&&t.done&&this[l].call(this),t},throw:function(e){return this[l].call(this),this[c].throw(e)},return:function(e){return this[l].call(this),this[c].return(e)}},{});function createDecoratedGenerator(e,t){return new m(e,t)}return Array.prototype[Symbol.observer]=function(e){var t=!1,r=createDecoratedGenerator(e,(function(){return t=!0})),n=!0,i=!1,a=void 0;try{for(var s=void 0,o=this[Symbol.iterator]();!(n=(s=o.next()).done);n=!0){var u=s.value;if(r.next(u),t)return}}catch(e){i=!0,a=e}finally{try{n||null==o.return||o.return()}finally{if(i)throw a}}return r.return(),r},s(Array.prototype,Symbol.observer,{enumerable:!1}),{get initAsyncGeneratorFunction(){return initAsyncGeneratorFunction},get createAsyncGeneratorInstance(){return createAsyncGeneratorInstance},get observeForEach(){return observeForEach},get schedule(){return schedule},get createDecoratedGenerator(){return createDecoratedGenerator}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/runtime/modules/initAsyncGeneratorFunction.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./async.js","traceur@0.0.111/src/runtime/modules/initAsyncGeneratorFunction.js"));return{get default(){return e.initAsyncGeneratorFunction}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/runtime/modules/createAsyncGeneratorInstance.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./async.js","traceur@0.0.111/src/runtime/modules/createAsyncGeneratorInstance.js"));return{get default(){return e.createAsyncGeneratorInstance}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/runtime/modules/observeForEach.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./async.js","traceur@0.0.111/src/runtime/modules/observeForEach.js"));return{get default(){return e.observeForEach}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/runtime/modules/schedule.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./async.js","traceur@0.0.111/src/runtime/modules/schedule.js"));return{get default(){return e.schedule}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/runtime/modules/createDecoratedGenerator.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./async.js","traceur@0.0.111/src/runtime/modules/createDecoratedGenerator.js"));return{get default(){return e.createDecoratedGenerator}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/runtime/async.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./modules/initAsyncGeneratorFunction.js","traceur@0.0.111/src/runtime/async.js")).default,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./modules/createAsyncGeneratorInstance.js","traceur@0.0.111/src/runtime/async.js")).default,r=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./modules/observeForEach.js","traceur@0.0.111/src/runtime/async.js")).default,n=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./modules/schedule.js","traceur@0.0.111/src/runtime/async.js")).default,i=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./modules/createDecoratedGenerator.js","traceur@0.0.111/src/runtime/async.js")).default;return $traceurRuntime.initAsyncGeneratorFunction=e,$traceurRuntime.createAsyncGeneratorInstance=t,$traceurRuntime.observeForEach=r,$traceurRuntime.schedule=n,$traceurRuntime.createDecoratedGenerator=i,{}})),$traceurRuntime.registerModule("traceur@0.0.111/src/runtime/modules/generators.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../private.js","traceur@0.0.111/src/runtime/modules/generators.js")),t=e.createPrivateSymbol,r=e.getPrivate,n=e.setPrivate,i=TypeError,a=Object,s=a.create,o=a.defineProperties,u=a.defineProperty;function nonEnum(e){return{configurable:!0,enumerable:!1,value:e,writable:!0}}function getInternalError(e){return new Error("Traceur compiler bug: invalid state in state machine: "+e)}var c={};function GeneratorContext(){this.state=0,this.GState=0,this.storedException=void 0,this.finallyFallThrough=void 0,this.sent_=void 0,this.returnValue=void 0,this.oldReturnValue=void 0,this.tryStack_=[]}function nextOrThrow(e,t,r,n){switch(e.GState){case 1:throw new Error('"'+r+'" on executing generator');case 3:if("next"==r)return{value:void 0,done:!0};if(n===c)return{value:e.returnValue,done:!0};throw n;case 0:if("throw"===r){if(e.GState=3,n===c)return{value:e.returnValue,done:!0};throw n}if(void 0!==n)throw i("Sent value to newborn generator");case 2:var a;e.GState=1,e.action=r,e.sent=n;try{a=t(e)}catch(t){if(t!==c)throw t;a=e}var s=a===e;return s&&(a=e.returnValue),e.GState=s?3:2,{value:a,done:s}}}GeneratorContext.prototype={pushTry:function(e,t){if(null!==t){for(var r=null,n=this.tryStack_.length-1;n>=0;n--)if(void 0!==this.tryStack_[n].catch){r=this.tryStack_[n].catch;break}null===r&&(r=-3),this.tryStack_.push({finally:t,finallyFallThrough:r})}null!==e&&this.tryStack_.push({catch:e})},popTry:function(){this.tryStack_.pop()},maybeUncatchable:function(){if(this.storedException===c)throw c},get sent(){return this.maybeThrow(),this.sent_},set sent(e){this.sent_=e},get sentIgnoreThrow(){return this.sent_},maybeThrow:function(){if("throw"===this.action)throw this.action="next",this.sent_},end:function(){switch(this.state){case-2:return this;case-3:throw this.storedException;default:throw getInternalError(this.state)}},handleException:function(e){throw this.GState=3,this.state=-2,e},wrapYieldStar:function(e){var t=this;return{next:function(t){return e.next(t)},throw:function(r){var n;if(r===c){if(e.return){if(!(n=e.return(t.returnValue)).done)return t.returnValue=t.oldReturnValue,n;t.returnValue=n.value}throw r}if(e.throw)return e.throw(r);throw e.return&&e.return(),i("Inner iterator does not have a throw method")}}}};var l=t(),m=t();function GeneratorFunction(){}function GeneratorFunctionPrototype(){}function createGeneratorInstance(e,t,r){var i=getMoveNext(e,r),a=new GeneratorContext,o=s(t.prototype);return n(o,l,a),n(o,m,i),o}function initGeneratorFunction(e){return e.prototype=s(GeneratorFunctionPrototype.prototype),e.__proto__=GeneratorFunctionPrototype,e}function AsyncFunctionContext(){GeneratorContext.call(this),this.err=void 0;var e=this;e.result=new Promise((function(t,r){e.resolve=t,e.reject=r}))}function asyncWrap(e,t){var r=getMoveNext(e,t),n=new AsyncFunctionContext;return n.createCallback=function(e){return function(t){n.state=e,n.value=t,r(n)}},n.errback=function(e){handleCatch(n,e),r(n)},r(n),n.result}function getMoveNext(e,t){return function(r){for(;;)try{return e.call(t,r)}catch(e){handleCatch(r,e)}}}function handleCatch(e,t){e.storedException=t;var r=e.tryStack_[e.tryStack_.length-1];r?(e.state=void 0!==r.catch?r.catch:r.finally,void 0!==r.finallyFallThrough&&(e.finallyFallThrough=r.finallyFallThrough)):e.handleException(t)}return GeneratorFunction.prototype=GeneratorFunctionPrototype,u(GeneratorFunctionPrototype,"constructor",nonEnum(GeneratorFunction)),GeneratorFunctionPrototype.prototype={constructor:GeneratorFunctionPrototype,next:function(e){return nextOrThrow(r(this,l),r(this,m),"next",e)},throw:function(e){return nextOrThrow(r(this,l),r(this,m),"throw",e)},return:function(e){var t=r(this,l);return t.oldReturnValue=t.returnValue,t.returnValue=e,nextOrThrow(t,r(this,m),"throw",c)}},o(GeneratorFunctionPrototype.prototype,{constructor:{enumerable:!1},next:{enumerable:!1},throw:{enumerable:!1},return:{enumerable:!1}}),Object.defineProperty(GeneratorFunctionPrototype.prototype,Symbol.iterator,nonEnum((function(){return this}))),AsyncFunctionContext.prototype=s(GeneratorContext.prototype),AsyncFunctionContext.prototype.end=function(){switch(this.state){case-2:this.resolve(this.returnValue);break;case-3:this.reject(this.storedException);break;default:this.reject(getInternalError(this.state))}},AsyncFunctionContext.prototype.handleException=function(){this.state=-3},{get createGeneratorInstance(){return createGeneratorInstance},get initGeneratorFunction(){return initGeneratorFunction},get asyncWrap(){return asyncWrap}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/runtime/modules/asyncWrap.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./generators.js","traceur@0.0.111/src/runtime/modules/asyncWrap.js"));return{get default(){return e.asyncWrap}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/runtime/modules/initGeneratorFunction.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./generators.js","traceur@0.0.111/src/runtime/modules/initGeneratorFunction.js"));return{get default(){return e.initGeneratorFunction}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/runtime/modules/createGeneratorInstance.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./generators.js","traceur@0.0.111/src/runtime/modules/createGeneratorInstance.js"));return{get default(){return e.createGeneratorInstance}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/runtime/generators.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./modules/asyncWrap.js","traceur@0.0.111/src/runtime/generators.js")).default,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./modules/initGeneratorFunction.js","traceur@0.0.111/src/runtime/generators.js")).default,r=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./modules/createGeneratorInstance.js","traceur@0.0.111/src/runtime/generators.js")).default;return $traceurRuntime.asyncWrap=e,$traceurRuntime.initGeneratorFunction=t,$traceurRuntime.createGeneratorInstance=r,{}})),$traceurRuntime.registerModule("traceur@0.0.111/src/runtime/modules/spawn.js",[],(function(){"use strict";function spawn(e,t,r){return new Promise((function(n,i){function fulfill(e){try{step(r.next(e))}catch(e){i(e)}}function rejected(e){try{step(r.throw(e))}catch(e){i(e)}}function step(e){e.done?n(e.value):Promise.resolve(e.value).then(fulfill,rejected)}step((r=r.apply(e,t)).next())}))}return{get default(){return spawn}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/runtime/spawn.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./modules/spawn.js","traceur@0.0.111/src/runtime/spawn.js")).default;return $traceurRuntime.spawn=e,{}})),$traceurRuntime.registerModule("traceur@0.0.111/src/runtime/modules/getTemplateObject.js",[],(function(){"use strict";var e=Object,t=e.defineProperty,r=e.freeze,n=Array.prototype.slice,i=Object.create(null);function getTemplateObject(e){var a=arguments[1],s=e.join("${}"),o=i[s];return o||(a||(a=n.call(e)),i[s]=r(t(a,"raw",{value:r(e)})))}return{get default(){return getTemplateObject}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/runtime/template.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./modules/getTemplateObject.js","traceur@0.0.111/src/runtime/template.js")).default;return $traceurRuntime.getTemplateObject=e,{}})),$traceurRuntime.registerModule("traceur@0.0.111/src/runtime/modules/spreadProperties.js",[],(function(){"use strict";var e=Object,t=e.defineProperty,r=e.getOwnPropertyNames,n=e.getOwnPropertySymbols,i=e.propertyIsEnumerable;function copyDataProperties(e,a){if(null!=a){var copy=function(r){for(var n=0;n<r.length;n++){var s=r[n];if(i.call(a,s)){var o=a[s];t(e,s,{configurable:!0,enumerable:!0,value:o,writable:!0})}}};copy(r(a)),copy(n(a))}}var $__default=function(){for(var e=arguments[0],t=1;t<arguments.length;t++)copyDataProperties(e,arguments[t]);return e};return{get default(){return $__default}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/runtime/jsx.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./modules/spreadProperties.js","traceur@0.0.111/src/runtime/jsx.js")).default;return $traceurRuntime.spreadProperties=e,{}})),$traceurRuntime.registerModule("traceur@0.0.111/src/runtime/runtime-modules.js",[],(function(){"use strict";return $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./symbols.js","traceur@0.0.111/src/runtime/runtime-modules.js")),$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./classes.js","traceur@0.0.111/src/runtime/runtime-modules.js")),$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./exportStar.js","traceur@0.0.111/src/runtime/runtime-modules.js")),$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./properTailCalls.js","traceur@0.0.111/src/runtime/runtime-modules.js")),$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./relativeRequire.js","traceur@0.0.111/src/runtime/runtime-modules.js")),$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./spread.js","traceur@0.0.111/src/runtime/runtime-modules.js")),$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./destructuring.js","traceur@0.0.111/src/runtime/runtime-modules.js")),$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./async.js","traceur@0.0.111/src/runtime/runtime-modules.js")),$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./generators.js","traceur@0.0.111/src/runtime/runtime-modules.js")),$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./spawn.js","traceur@0.0.111/src/runtime/runtime-modules.js")),$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./template.js","traceur@0.0.111/src/runtime/runtime-modules.js")),$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./jsx.js","traceur@0.0.111/src/runtime/runtime-modules.js")),{}})),$traceurRuntime.getModule("traceur@0.0.111/src/runtime/runtime-modules.js"),$traceurRuntime.registerModule("traceur@0.0.111/src/runtime/frozen-data.js",[],(function(){"use strict";function findIndex(e,t){for(var r=0;r<e.length;r+=2)if(e[r]===t)return r;return-1}function setFrozen(e,t,r){-1===findIndex(e,t)&&e.push(t,r)}function getFrozen(e,t){var r=findIndex(e,t);if(-1!==r)return e[r+1]}function hasFrozen(e,t){return-1!==findIndex(e,t)}function deleteFrozen(e,t){var r=findIndex(e,t);return-1!==r&&(e.splice(r,2),!0)}return{get setFrozen(){return setFrozen},get getFrozen(){return getFrozen},get hasFrozen(){return hasFrozen},get deleteFrozen(){return deleteFrozen}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/runtime/polyfills/utils.js",[],(function(){"use strict";var e=Math.ceil,t=Math.floor,r=isFinite,n=isNaN,i=Math.pow,a=Math.min,s=TypeError,o=Object;function toObject(e){if(null==e)throw s();return o(e)}function toUint32(e){return e>>>0}function isObject(e){return e&&("object"==typeof e||"function"==typeof e)}function isCallable(e){return"function"==typeof e}function isNumber(e){return"number"==typeof e}function toInteger(i){return n(i=+i)?0:0!==i&&r(i)?i>0?t(i):e(i):i}var u=i(2,53)-1;function toLength(e){var t=toInteger(e);return t<0?0:a(t,u)}function checkIterable(e){return isObject(e)?e[Symbol.iterator]:void 0}function isConstructor(e){return isCallable(e)}function createIteratorResultObject(e,t){return{value:e,done:t}}function maybeDefine(e,t,r){t in e||Object.defineProperty(e,t,r)}function maybeDefineMethod(e,t,r){maybeDefine(e,t,{value:r,configurable:!0,enumerable:!1,writable:!0})}function maybeDefineConst(e,t,r){maybeDefine(e,t,{value:r,configurable:!1,enumerable:!1,writable:!1})}function maybeAddFunctions(e,t){for(var r=0;r<t.length;r+=2){maybeDefineMethod(e,t[r],t[r+1])}}function maybeAddConsts(e,t){for(var r=0;r<t.length;r+=2){maybeDefineConst(e,t[r],t[r+1])}}function maybeAddIterator(e,t,r){r&&r.iterator&&!e[r.iterator]&&(e["@@iterator"]&&(t=e["@@iterator"]),Object.defineProperty(e,r.iterator,{value:t,configurable:!0,enumerable:!1,writable:!0}))}var c=[];function registerPolyfill(e){c.push(e)}function polyfillAll(e){c.forEach((function(t){return t(e)}))}return{get toObject(){return toObject},get toUint32(){return toUint32},get isObject(){return isObject},get isCallable(){return isCallable},get isNumber(){return isNumber},get toInteger(){return toInteger},get toLength(){return toLength},get checkIterable(){return checkIterable},get isConstructor(){return isConstructor},get createIteratorResultObject(){return createIteratorResultObject},get maybeDefine(){return maybeDefine},get maybeDefineMethod(){return maybeDefineMethod},get maybeDefineConst(){return maybeDefineConst},get maybeAddFunctions(){return maybeAddFunctions},get maybeAddConsts(){return maybeAddConsts},get maybeAddIterator(){return maybeAddIterator},get registerPolyfill(){return registerPolyfill},get polyfillAll(){return polyfillAll}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/runtime/polyfills/Map.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../private.js","traceur@0.0.111/src/runtime/polyfills/Map.js")),t=e.createPrivateSymbol,r=e.getPrivate,n=e.setPrivate,i=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../frozen-data.js","traceur@0.0.111/src/runtime/polyfills/Map.js")),a=i.deleteFrozen,s=i.getFrozen,o=i.setFrozen,u=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./utils.js","traceur@0.0.111/src/runtime/polyfills/Map.js")),c=u.isObject,l=u.registerPolyfill,m=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../has-native-symbols.js","traceur@0.0.111/src/runtime/polyfills/Map.js")).default,p=Object,f=p.defineProperty,h=(p.getOwnPropertyDescriptor,p.hasOwnProperty),d=p.isExtensible,g={},T=1,y=t();function getHashCodeForObject(e){return r(e,y)}function lookupIndex(e,t){if("string"==typeof t)return e.stringIndex_[t];if(c(t)){if(!d(t))return s(e.frozenData_,t);var r=getHashCodeForObject(t);if(void 0===r)return;return e.objectIndex_[r]}return e.primitiveIndex_[t]}function initMap(e){e.entries_=[],e.objectIndex_=Object.create(null),e.stringIndex_=Object.create(null),e.primitiveIndex_=Object.create(null),e.frozenData_=[],e.deletedCount_=0}var R=$traceurRuntime.createClass((function R(){var e,t,r=arguments[0];if(!c(this))throw new TypeError("Map called on incompatible type");if(h.call(this,"entries_"))throw new TypeError("Map can not be reentrantly initialised");if(initMap(this),null!=r){var n=!0,i=!1,a=void 0;try{for(var s=void 0,o=r[Symbol.iterator]();!(n=(s=o.next()).done);n=!0){var u=s.value,l=(t=(e=u[Symbol.iterator]()).next()).done?void 0:t.value,m=(t=e.next()).done?void 0:t.value;this.set(l,m)}}catch(e){i=!0,a=e}finally{try{n||null==o.return||o.return()}finally{if(i)throw a}}}}),{get size(){return this.entries_.length/2-this.deletedCount_},get:function(e){var t=lookupIndex(this,e);if(void 0!==t)return this.entries_[t+1]},set:function(e,t){var r=lookupIndex(this,e);if(void 0!==r)this.entries_[r+1]=t;else if(r=this.entries_.length,this.entries_[r]=e,this.entries_[r+1]=t,c(e))if(d(e)){var i=function getOrSetHashCodeForObject(e){var t=getHashCodeForObject(e);return t||(t=T++,n(e,y,t)),t}(e);this.objectIndex_[i]=r}else o(this.frozenData_,e,r);else"string"==typeof e?this.stringIndex_[e]=r:this.primitiveIndex_[e]=r;return this},has:function(e){return void 0!==lookupIndex(this,e)},delete:function(e){var t=lookupIndex(this,e);if(void 0===t)return!1;if(this.entries_[t]=g,this.entries_[t+1]=void 0,this.deletedCount_++,c(e))if(d(e)){var r=getHashCodeForObject(e);delete this.objectIndex_[r]}else a(this.frozenData_,e);else"string"==typeof e?delete this.stringIndex_[e]:delete this.primitiveIndex_[e];return!0},clear:function(){initMap(this)},forEach:function(e){for(var t=arguments[1],r=0;r<this.entries_.length;r+=2){var n=this.entries_[r],i=this.entries_[r+1];n!==g&&e.call(t,i,n,this)}},entries:$traceurRuntime.initGeneratorFunction((function $__13(){var e,t,r;return $traceurRuntime.createGeneratorInstance((function(n){for(;;)switch(n.state){case 0:e=0,n.state=12;break;case 12:n.state=e<this.entries_.length?8:-2;break;case 4:e+=2,n.state=12;break;case 8:t=this.entries_[e],r=this.entries_[e+1],n.state=9;break;case 9:n.state=t===g?4:6;break;case 6:return n.state=2,[t,r];case 2:n.maybeThrow(),n.state=4;break;default:return n.end()}}),$__13,this)})),keys:$traceurRuntime.initGeneratorFunction((function $__14(){var e,t;return $traceurRuntime.createGeneratorInstance((function(r){for(;;)switch(r.state){case 0:e=0,r.state=12;break;case 12:r.state=e<this.entries_.length?8:-2;break;case 4:e+=2,r.state=12;break;case 8:t=this.entries_[e],this.entries_[e+1],r.state=9;break;case 9:r.state=t===g?4:6;break;case 6:return r.state=2,t;case 2:r.maybeThrow(),r.state=4;break;default:return r.end()}}),$__14,this)})),values:$traceurRuntime.initGeneratorFunction((function $__15(){var e,t,r;return $traceurRuntime.createGeneratorInstance((function(n){for(;;)switch(n.state){case 0:e=0,n.state=12;break;case 12:n.state=e<this.entries_.length?8:-2;break;case 4:e+=2,n.state=12;break;case 8:t=this.entries_[e],r=this.entries_[e+1],n.state=9;break;case 9:n.state=t===g?4:6;break;case 6:return n.state=2,r;case 2:n.maybeThrow(),n.state=4;break;default:return n.end()}}),$__15,this)}))},{});function polyfillMap(e){(function needsPolyfill(e){var t=e,r=t.Map,n=t.Symbol;if(!(r&&m()&&r.prototype[n.iterator]&&r.prototype.entries))return!0;try{return 1!==new r([[]]).size}catch(e){return!1}})(e)&&(e.Map=R)}return f(R.prototype,Symbol.iterator,{configurable:!0,writable:!0,value:R.prototype.entries}),l(polyfillMap),{get Map(){return R},get polyfillMap(){return polyfillMap}}})),$traceurRuntime.getModule("traceur@0.0.111/src/runtime/polyfills/Map.js"),$traceurRuntime.registerModule("traceur@0.0.111/src/runtime/polyfills/Set.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./utils.js","traceur@0.0.111/src/runtime/polyfills/Set.js")),t=e.isObject,r=e.registerPolyfill,n=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./Map.js","traceur@0.0.111/src/runtime/polyfills/Set.js")).Map,i=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../has-native-symbols.js","traceur@0.0.111/src/runtime/polyfills/Set.js")).default,a=Object.prototype.hasOwnProperty,s=$traceurRuntime.createClass((function s(){var e=arguments[0];if(!t(this))throw new TypeError("Set called on incompatible type");if(a.call(this,"map_"))throw new TypeError("Set can not be reentrantly initialised");if(this.map_=new n,null!=e){var r=!0,i=!1,s=void 0;try{for(var o=void 0,u=e[Symbol.iterator]();!(r=(o=u.next()).done);r=!0){var c=o.value;this.add(c)}}catch(e){i=!0,s=e}finally{try{r||null==u.return||u.return()}finally{if(i)throw s}}}}),{get size(){return this.map_.size},has:function(e){return this.map_.has(e)},add:function(e){return this.map_.set(e,e),this},delete:function(e){return this.map_.delete(e)},clear:function(){return this.map_.clear()},forEach:function(e){var t=arguments[1],r=this;return this.map_.forEach((function(n,i){e.call(t,i,i,r)}))},values:$traceurRuntime.initGeneratorFunction((function $__12(){var e,t;return $traceurRuntime.createGeneratorInstance((function(r){for(;;)switch(r.state){case 0:e=r.wrapYieldStar(this.map_.keys()[Symbol.iterator]()),r.sent=void 0,r.action="next",r.state=12;break;case 12:t=e[r.action](r.sentIgnoreThrow),r.state=9;break;case 9:r.state=t.done?3:2;break;case 3:r.sent=t.value,r.state=-2;break;case 2:return r.state=12,t.value;default:return r.end()}}),$__12,this)})),entries:$traceurRuntime.initGeneratorFunction((function $__15(){var e,t;return $traceurRuntime.createGeneratorInstance((function(r){for(;;)switch(r.state){case 0:e=r.wrapYieldStar(this.map_.entries()[Symbol.iterator]()),r.sent=void 0,r.action="next",r.state=12;break;case 12:t=e[r.action](r.sentIgnoreThrow),r.state=9;break;case 9:r.state=t.done?3:2;break;case 3:r.sent=t.value,r.state=-2;break;case 2:return r.state=12,t.value;default:return r.end()}}),$__15,this)}))},{});function polyfillSet(e){(function needsPolyfill(e){var t=e,r=t.Set,n=t.Symbol;if(!(r&&i()&&r.prototype[n.iterator]&&r.prototype.values))return!0;try{return 1!==new r([1]).size}catch(e){return!1}})(e)&&(e.Set=s)}return Object.defineProperty(s.prototype,Symbol.iterator,{configurable:!0,writable:!0,value:s.prototype.values}),Object.defineProperty(s.prototype,"keys",{configurable:!0,writable:!0,value:s.prototype.values}),r(polyfillSet),{get Set(){return s},get polyfillSet(){return polyfillSet}}})),$traceurRuntime.getModule("traceur@0.0.111/src/runtime/polyfills/Set.js"),$traceurRuntime.registerModule("traceur@0.0.111/node_modules/rsvp/lib/rsvp/asap.js",[],(function(){"use strict";var e,t=0;function asap(e,r){u[t]=e,u[t+1]=r,2===(t+=2)&&o()}var r="undefined"!=typeof window?window:void 0,n=r||{},i=n.MutationObserver||n.WebKitMutationObserver,a="undefined"==typeof self&&"undefined"!=typeof process&&"[object process]"==={}.toString.call(process),s="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel;function useSetTimeout(){return function(){setTimeout(flush,1)}}var o,u=new Array(1e3);function flush(){for(var e=0;e<t;e+=2){(0,u[e])(u[e+1]),u[e]=void 0,u[e+1]=void 0}t=0}return o=a?function useNextTick(){var e=process.nextTick,t=process.versions.node.match(/^(?:(\d+)\.)?(?:(\d+)\.)?(\*|\d+)$/);return Array.isArray(t)&&"0"===t[1]&&"10"===t[2]&&(e=setImmediate),function(){e(flush)}}():i?function useMutationObserver(){var e=0,t=new i(flush),r=document.createTextNode("");return t.observe(r,{characterData:!0}),function(){r.data=e=++e%2}}():s?function useMessageChannel(){var e=new MessageChannel;return e.port1.onmessage=flush,function(){e.port2.postMessage(0)}}():void 0===r&&"function"==typeof require?function attemptVertex(){try{var t=require("vertx");return e=t.runOnLoop||t.runOnContext,function useVertxTimer(){return function(){e(flush)}}()}catch(e){return useSetTimeout()}}():useSetTimeout(),{get default(){return asap}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/runtime/polyfills/Promise.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../../../node_modules/rsvp/lib/rsvp/asap.js","traceur@0.0.111/src/runtime/polyfills/Promise.js")).default,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./utils.js","traceur@0.0.111/src/runtime/polyfills/Promise.js")),r=t.isObject,n=t.registerPolyfill,i=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../private.js","traceur@0.0.111/src/runtime/polyfills/Promise.js")),a=i.createPrivateSymbol,s=i.getPrivate,o=i.setPrivate,u={};function isPromise(e){return e&&"object"==typeof e&&void 0!==e.status_}function idResolveHandler(e){return e}function idRejectHandler(e){throw e}function chain(e){var t=void 0!==arguments[1]?arguments[1]:idResolveHandler,r=void 0!==arguments[2]?arguments[2]:idRejectHandler,n=getDeferred(e.constructor);switch(e.status_){case void 0:throw TypeError;case 0:e.onResolve_.push(t,n),e.onReject_.push(r,n);break;case 1:promiseEnqueue(e.value_,[t,n]);break;case-1:promiseEnqueue(e.value_,[r,n])}return n.promise}function getDeferred(e){if(this===l){var t=promiseInit(new l(u));return{promise:t,resolve:function(e){promiseResolve(t,e)},reject:function(e){promiseReject(t,e)}}}var r={};return r.promise=new e((function(e,t){r.resolve=e,r.reject=t})),r}function promiseSet(e,t,r,n,i){return e.status_=t,e.value_=r,e.onResolve_=n,e.onReject_=i,e}function promiseInit(e){return promiseSet(e,0,void 0,[],[])}var c=$traceurRuntime.createClass((function c(e){if(e!==u){if("function"!=typeof e)throw new TypeError;var t=promiseInit(this);try{e((function(e){promiseResolve(t,e)}),(function(e){promiseReject(t,e)}))}catch(e){promiseReject(t,e)}}}),{catch:function(e){return this.then(void 0,e)},then:function(e,t){"function"!=typeof e&&(e=idResolveHandler),"function"!=typeof t&&(t=idRejectHandler);var n=this,i=this.constructor;return chain(this,(function(a){return(a=function promiseCoerce(e,t){if(!isPromise(t)&&r(t)){var n;try{n=t.then}catch(r){var i=m.call(e,r);return o(t,p,i),i}if("function"==typeof n){var a=s(t,p);if(a)return a;var u=getDeferred(e);o(t,p,u.promise);try{n.call(t,u.resolve,u.reject)}catch(e){u.reject(e)}return u.promise}}return t}(i,a))===n?t(new TypeError):isPromise(a)?a.then(e,t):e(a)}),t)}},{resolve:function(e){return this===l?isPromise(e)?e:promiseSet(new l(u),1,e):new this((function(t,r){t(e)}))},reject:function(e){return this===l?promiseSet(new l(u),-1,e):new this((function(t,r){r(e)}))},all:function(e){var t=getDeferred(this),r=[];try{var makeCountdownFunction=function(e){return function(i){r[e]=i,0==--n&&t.resolve(r)}},n=0,i=0,a=!0,s=!1,o=void 0;try{for(var u=void 0,c=e[Symbol.iterator]();!(a=(u=c.next()).done);a=!0){var l=u.value,m=makeCountdownFunction(i);this.resolve(l).then(m,(function(e){t.reject(e)})),++i,++n}}catch(e){s=!0,o=e}finally{try{a||null==c.return||c.return()}finally{if(s)throw o}}0===n&&t.resolve(r)}catch(e){t.reject(e)}return t.promise},race:function(e){var t=getDeferred(this);try{for(var r=0;r<e.length;r++)this.resolve(e[r]).then((function(e){t.resolve(e)}),(function(e){t.reject(e)}))}catch(e){t.reject(e)}return t.promise}}),l=c,m=l.reject;function promiseResolve(e,t){promiseDone(e,1,t,e.onResolve_)}function promiseReject(e,t){promiseDone(e,-1,t,e.onReject_)}function promiseDone(e,t,r,n){0===e.status_&&(promiseEnqueue(r,n),promiseSet(e,t,r))}function promiseEnqueue(t,r){e((function(){for(var e=0;e<r.length;e+=2)promiseHandle(t,r[e],r[e+1])}))}function promiseHandle(e,t,r){try{var n=t(e);if(n===r.promise)throw new TypeError;isPromise(n)?chain(n,r.resolve,r.reject):r.resolve(n)}catch(e){try{r.reject(e)}catch(e){}}}var p=a();function polyfillPromise(e){e.Promise||(e.Promise=c)}return n(polyfillPromise),{get Promise(){return c},get polyfillPromise(){return polyfillPromise}}})),$traceurRuntime.getModule("traceur@0.0.111/src/runtime/polyfills/Promise.js"),$traceurRuntime.registerModule("traceur@0.0.111/src/runtime/polyfills/StringIterator.js",[],(function(){"use strict";var e,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./utils.js","traceur@0.0.111/src/runtime/polyfills/StringIterator.js")),r=t.createIteratorResultObject,n=t.isObject,i=Object.prototype.hasOwnProperty,a=Symbol("iteratedString"),s=Symbol("stringIteratorNextIndex"),o=$traceurRuntime.createClass((function o(){}),(e={},Object.defineProperty(e,"next",{value:function(){var e=this;if(!n(e)||!i.call(e,a))throw new TypeError("this must be a StringIterator object");var t=e[a];if(void 0===t)return r(void 0,!0);var o=e[s],u=t.length;if(o>=u)return e[a]=void 0,r(void 0,!0);var c,l=t.charCodeAt(o);if(l<55296||l>56319||o+1===u)c=String.fromCharCode(l);else{var m=t.charCodeAt(o+1);c=m<56320||m>57343?String.fromCharCode(l):String.fromCharCode(l)+String.fromCharCode(m)}return e[s]=o+c.length,r(c,!1)},configurable:!0,enumerable:!0,writable:!0}),Object.defineProperty(e,Symbol.iterator,{value:function(){return this},configurable:!0,enumerable:!0,writable:!0}),e),{});function createStringIterator(e){var t=String(e),r=Object.create(o.prototype);return r[a]=t,r[s]=0,r}return{get createStringIterator(){return createStringIterator}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/runtime/polyfills/String.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../checkObjectCoercible.js","traceur@0.0.111/src/runtime/polyfills/String.js")).default,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./StringIterator.js","traceur@0.0.111/src/runtime/polyfills/String.js")).createStringIterator,r=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./utils.js","traceur@0.0.111/src/runtime/polyfills/String.js")),n=r.maybeAddFunctions,i=r.maybeAddIterator,a=r.registerPolyfill,s=Object.prototype.toString,o=String.prototype.indexOf,u=String.prototype.lastIndexOf;function startsWith(e){var t=String(this);if(null==this||"[object RegExp]"==s.call(e))throw TypeError();var r=t.length,n=String(e),i=(n.length,arguments.length>1?arguments[1]:void 0),a=i?Number(i):0;isNaN(a)&&(a=0);var u=Math.min(Math.max(a,0),r);return o.call(t,n,a)==u}function endsWith(e){var t=String(this);if(null==this||"[object RegExp]"==s.call(e))throw TypeError();var r=t.length,n=String(e),i=n.length,a=r;if(arguments.length>1){var o=arguments[1];void 0!==o&&(a=o?Number(o):0,isNaN(a)&&(a=0))}var c=Math.min(Math.max(a,0),r),l=c-i;return!(l<0)&&u.call(t,n,l)==l}function includes(e){if(null==this)throw TypeError();var t=String(this);if(e&&"[object RegExp]"==s.call(e))throw TypeError();var r=t.length,n=String(e),i=n.length,a=arguments.length>1?arguments[1]:void 0,u=a?Number(a):0;u!=u&&(u=0);var c=Math.min(Math.max(u,0),r);return!(i+c>r)&&-1!=o.call(t,n,u)}function repeat(e){if(null==this)throw TypeError();var t=String(this),r=e?Number(e):0;if(isNaN(r)&&(r=0),r<0||r==1/0)throw RangeError();if(0==r)return"";for(var n="";r--;)n+=t;return n}function codePointAt(e){if(null==this)throw TypeError();var t=String(this),r=t.length,n=e?Number(e):0;if(isNaN(n)&&(n=0),!(n<0||n>=r)){var i,a=t.charCodeAt(n);return a>=55296&&a<=56319&&r>n+1&&(i=t.charCodeAt(n+1))>=56320&&i<=57343?1024*(a-55296)+i-56320+65536:a}}function raw(e){var t=e.raw,r=t.length>>>0;if(0===r)return"";for(var n="",i=0;;){if(n+=t[i],i+1===r)return n;n+=arguments[++i]}}function fromCodePoint(e){var t,r,n=[],i=Math.floor,a=-1,s=arguments.length;if(!s)return"";for(;++a<s;){var o=Number(arguments[a]);if(!isFinite(o)||o<0||o>1114111||i(o)!=o)throw RangeError("Invalid code point: "+o);o<=65535?n.push(o):(t=55296+((o-=65536)>>10),r=o%1024+56320,n.push(t,r))}return String.fromCharCode.apply(null,n)}function stringPrototypeIterator(){var r=e(this),n=String(r);return t(n)}function polyfillString(e){var t=e.String;n(t.prototype,["codePointAt",codePointAt,"endsWith",endsWith,"includes",includes,"repeat",repeat,"startsWith",startsWith]),n(t,["fromCodePoint",fromCodePoint,"raw",raw]),i(t.prototype,stringPrototypeIterator,Symbol)}return a(polyfillString),{get startsWith(){return startsWith},get endsWith(){return endsWith},get includes(){return includes},get repeat(){return repeat},get codePointAt(){return codePointAt},get raw(){return raw},get fromCodePoint(){return fromCodePoint},get stringPrototypeIterator(){return stringPrototypeIterator},get polyfillString(){return polyfillString}}})),$traceurRuntime.getModule("traceur@0.0.111/src/runtime/polyfills/String.js"),$traceurRuntime.registerModule("traceur@0.0.111/src/runtime/polyfills/ArrayIterator.js",[],(function(){"use strict";var e,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./utils.js","traceur@0.0.111/src/runtime/polyfills/ArrayIterator.js")),r=t.toObject,n=t.toUint32,i=t.createIteratorResultObject,a=$traceurRuntime.createClass((function a(){}),(e={},Object.defineProperty(e,"next",{value:function(){var e=r(this),t=e.iteratorObject_;if(!t)throw new TypeError("Object is not an ArrayIterator");var a=e.arrayIteratorNextIndex_,s=e.arrayIterationKind_;return a>=n(t.length)?(e.arrayIteratorNextIndex_=1/0,i(void 0,!0)):(e.arrayIteratorNextIndex_=a+1,i(2==s?t[a]:3==s?[a,t[a]]:a,!1))},configurable:!0,enumerable:!0,writable:!0}),Object.defineProperty(e,Symbol.iterator,{value:function(){return this},configurable:!0,enumerable:!0,writable:!0}),e),{});function createArrayIterator(e,t){var n=r(e),i=new a;return i.iteratorObject_=n,i.arrayIteratorNextIndex_=0,i.arrayIterationKind_=t,i}function entries(){return createArrayIterator(this,3)}function keys(){return createArrayIterator(this,1)}function values(){return createArrayIterator(this,2)}return{get entries(){return entries},get keys(){return keys},get values(){return values}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/runtime/polyfills/Array.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ArrayIterator.js","traceur@0.0.111/src/runtime/polyfills/Array.js")),t=e.entries,r=e.keys,n=e.values,i=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./utils.js","traceur@0.0.111/src/runtime/polyfills/Array.js")),a=i.checkIterable,s=i.isCallable,o=i.isConstructor,u=i.maybeAddFunctions,c=i.maybeAddIterator,l=i.registerPolyfill,m=i.toInteger,p=i.toLength,f=i.toObject;function from(e){var t,r,n=arguments[1],i=arguments[2],u=this,c=f(e),l=void 0!==n,m=0;if(l&&!s(n))throw TypeError();if(a(c)){t=o(u)?new u:[];var h=!0,d=!1,g=void 0;try{for(var T=void 0,y=c[Symbol.iterator]();!(h=(T=y.next()).done);h=!0){var R=T.value;t[m]=l?n.call(i,R,m):R,m++}}catch(e){d=!0,g=e}finally{try{h||null==y.return||y.return()}finally{if(d)throw g}}return t.length=m,t}for(r=p(c.length),t=o(u)?new u(r):new Array(r);m<r;m++)t[m]=l?void 0===i?n(c[m],m):n.call(i,c[m],m):c[m];return t.length=r,t}function of(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];for(var r=this,n=e.length,i=o(r)?new r(n):new Array(n),a=0;a<n;a++)i[a]=e[a];return i.length=n,i}function fill(e){var t=void 0!==arguments[1]?arguments[1]:0,r=arguments[2],n=f(this),i=p(n.length),a=m(t),s=void 0!==r?m(r):i;for(a=a<0?Math.max(i+a,0):Math.min(a,i),s=s<0?Math.max(i+s,0):Math.min(s,i);a<s;)n[a]=e,a++;return n}function find(e){var t=arguments[1];return findHelper(this,e,t)}function findIndex(e){var t=arguments[1];return findHelper(this,e,t,!0)}function findHelper(e,t){var r=arguments[2],n=void 0!==arguments[3]&&arguments[3],i=f(e),a=p(i.length);if(!s(t))throw TypeError();for(var o=0;o<a;o++){var u=i[o];if(t.call(r,u,o,i))return n?o:u}return n?-1:void 0}function polyfillArray(e){var i=e,a=i.Array,s=i.Object,o=i.Symbol,l=n;o&&o.iterator&&a.prototype[o.iterator]&&(l=a.prototype[o.iterator]),u(a.prototype,["entries",t,"keys",r,"values",l,"fill",fill,"find",find,"findIndex",findIndex]),u(a,["from",from,"of",of]),c(a.prototype,l,o),c(s.getPrototypeOf([].values()),(function(){return this}),o)}return l(polyfillArray),{get from(){return from},get of(){return of},get fill(){return fill},get find(){return find},get findIndex(){return findIndex},get polyfillArray(){return polyfillArray}}})),$traceurRuntime.getModule("traceur@0.0.111/src/runtime/polyfills/Array.js"),$traceurRuntime.registerModule("traceur@0.0.111/src/runtime/polyfills/assign.js",[],(function(){"use strict";var e=Object.keys;function assign(t){for(var r=1;r<arguments.length;r++){var n=arguments[r],i=null==n?[]:e(n),a=void 0,s=i.length;for(a=0;a<s;a++){var o=i[a];t[o]=n[o]}}return t}return{get default(){return assign}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/runtime/polyfills/Object.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./utils.js","traceur@0.0.111/src/runtime/polyfills/Object.js")),t=e.maybeAddFunctions,r=e.registerPolyfill,n=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./assign.js","traceur@0.0.111/src/runtime/polyfills/Object.js")).default,i=Object,a=i.defineProperty,s=i.getOwnPropertyDescriptor,o=i.getOwnPropertyNames;function is(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}function mixin(e,t){var r,n,i=o(t),u=i.length;for(r=0;r<u;r++){i[r];n=s(t,i[r]),a(e,i[r],n)}return e}function polyfillObject(e){var r=e.Object;t(r,["assign",n,"is",is,"mixin",mixin])}return r(polyfillObject),{get assign(){return n},get is(){return is},get mixin(){return mixin},get polyfillObject(){return polyfillObject}}})),$traceurRuntime.getModule("traceur@0.0.111/src/runtime/polyfills/Object.js"),$traceurRuntime.registerModule("traceur@0.0.111/src/runtime/polyfills/Number.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./utils.js","traceur@0.0.111/src/runtime/polyfills/Number.js")),t=e.isNumber,r=e.maybeAddConsts,n=e.maybeAddFunctions,i=e.registerPolyfill,a=e.toInteger,s=Math.abs,o=isFinite,u=isNaN,c=Math.pow(2,53)-1,l=1-Math.pow(2,53),m=Math.pow(2,-52);function NumberIsFinite(e){return t(e)&&o(e)}function isInteger(e){return NumberIsFinite(e)&&a(e)===e}function NumberIsNaN(e){return t(e)&&u(e)}function isSafeInteger(e){if(NumberIsFinite(e)){var t=a(e);if(t===e)return s(t)<=c}return!1}function polyfillNumber(e){var t=e.Number;r(t,["MAX_SAFE_INTEGER",c,"MIN_SAFE_INTEGER",l,"EPSILON",m]),n(t,["isFinite",NumberIsFinite,"isInteger",isInteger,"isNaN",NumberIsNaN,"isSafeInteger",isSafeInteger])}return i(polyfillNumber),{get MAX_SAFE_INTEGER(){return c},get MIN_SAFE_INTEGER(){return l},get EPSILON(){return m},get isFinite(){return NumberIsFinite},get isInteger(){return isInteger},get isNaN(){return NumberIsNaN},get isSafeInteger(){return isSafeInteger},get polyfillNumber(){return polyfillNumber}}})),$traceurRuntime.getModule("traceur@0.0.111/src/runtime/polyfills/Number.js"),$traceurRuntime.registerModule("traceur@0.0.111/src/runtime/polyfills/fround.js",[],(function(){"use strict";var e=isFinite,t=isNaN,r=Math,n=r.LN2,i=r.abs,a=r.floor,s=r.log,o=r.min,u=r.pow;function unpackF32(e){return function unpackIEEE754(e,t,r){var n,i,a,s,o,c,l,m,p=[];for(n=e.length;n;n-=1)for(a=e[n-1],i=8;i;i-=1)p.push(a%2?1:0),a>>=1;return p.reverse(),s=p.join(""),o=(1<<t-1)-1,c=parseInt(s.substring(0,1),2)?-1:1,l=parseInt(s.substring(1,1+t),2),m=parseInt(s.substring(1+t),2),l===(1<<t)-1?0!==m?NaN:c*(1/0):l>0?c*u(2,l-o)*(1+m/u(2,r)):0!==m?c*u(2,-(o-1))*(m/u(2,r)):c<0?-0:0}(e,8,23)}function packF32(e){return function packIEEE754(e,t,r){var c,l,m,p,f,h,d,g=(1<<t-1)-1;function roundToEven(e){var t=a(e),r=e-t;return r<.5?t:r>.5||t%2?t+1:t}for(e!=e?(l=(1<<t)-1,m=u(2,r-1),c=0):e===1/0||e===-1/0?(l=(1<<t)-1,m=0,c=e<0?1:0):0===e?(l=0,m=0,c=1/e==-1/0?1:0):(c=e<0,(e=i(e))>=u(2,1-g)?(l=o(a(s(e)/n),1023),(m=roundToEven(e/u(2,l)*u(2,r)))/u(2,r)>=2&&(l+=1,m=1),l>g?(l=(1<<t)-1,m=0):(l+=g,m-=u(2,r))):(l=0,m=roundToEven(e/u(2,1-g-r)))),f=[],p=r;p;p-=1)f.push(m%2?1:0),m=a(m/2);for(p=t;p;p-=1)f.push(l%2?1:0),l=a(l/2);for(f.push(c?1:0),f.reverse(),h=f.join(""),d=[];h.length;)d.push(parseInt(h.substring(0,8),2)),h=h.substring(8);return d}(e,8,23)}function fround(r){return 0===r||!e(r)||t(r)?r:unpackF32(packF32(Number(r)))}return{get fround(){return fround}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/runtime/polyfills/Math.js",[],(function(){"use strict";var e,t,r=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./fround.js","traceur@0.0.111/src/runtime/polyfills/Math.js")).fround,n=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./utils.js","traceur@0.0.111/src/runtime/polyfills/Math.js")),i=n.maybeAddFunctions,a=n.registerPolyfill,s=n.toUint32,o=isFinite,u=isNaN,c=Math,l=c.abs,m=c.ceil,p=c.exp,f=c.floor,h=c.log,d=c.pow,g=c.sqrt;function clz32(e){if(0==(e=s(+e)))return 32;var t=0;return 0==(4294901760&e)&&(e<<=16,t+=16),0==(4278190080&e)&&(e<<=8,t+=8),0==(4026531840&e)&&(e<<=4,t+=4),0==(3221225472&e)&&(e<<=2,t+=2),0==(2147483648&e)&&(e<<=1,t+=1),t}function imul(e,t){var r=65535&(e=s(+e)),n=65535&(t=s(+t));return r*n+((e>>>16&65535)*n+r*(t>>>16&65535)<<16>>>0)|0}function sign(e){return(e=+e)>0?1:e<0?-1:e}function log10(e){return.4342944819032518*h(e)}function log2(e){return 1.4426950408889634*h(e)}function log1p(e){if((e=+e)<-1||u(e))return NaN;if(0===e||e===1/0)return e;if(-1===e)return-1/0;var t=0;if(e<0||e>1)return h(1+e);for(var r=1;r<50;r++)r%2==0?t-=d(e,r)/r:t+=d(e,r)/r;return t}function expm1(e){return(e=+e)===-1/0?-1:o(e)&&0!==e?p(e)-1:e}function cosh(e){return 0===(e=+e)?1:u(e)?NaN:o(e)?(e<0&&(e=-e),e>21?p(e)/2:(p(e)+p(-e))/2):1/0}function sinh(e){return o(e=+e)&&0!==e?(p(e)-p(-e))/2:e}function tanh(e){if(0===(e=+e))return e;if(!o(e))return sign(e);var t=p(e),r=p(-e);return(t-r)/(t+r)}function acosh(e){return(e=+e)<1?NaN:o(e)?h(e+g(e+1)*g(e-1)):e}function asinh(e){return 0!==(e=+e)&&o(e)?e>0?h(e+g(e*e+1)):-h(-e+g(e*e+1)):e}function atanh(e){return-1===(e=+e)?-1/0:1===e?1/0:0===e?e:u(e)||e<-1||e>1?NaN:.5*h((1+e)/(1-e))}function hypot(e,t){for(var r=arguments.length,n=new Array(r),i=0,a=0;a<r;a++){if((u=+(u=arguments[a]))===1/0||u===-1/0)return 1/0;(u=l(u))>i&&(i=u),n[a]=u}0===i&&(i=1);var s=0,o=0;for(a=0;a<r;a++){var u,c=(u=n[a]/i)*u-o,m=s+c;o=m-s-c,s=m}return g(s)*i}function trunc(e){return(e=+e)>0?f(e):e<0?m(e):e}function cbrt(e){if(0===(e=+e))return e;var t=e<0;t&&(e=-e);var r=d(e,1/3);return t?-r:r}function polyfillMath(t){var r=t.Math;i(r,["acosh",acosh,"asinh",asinh,"atanh",atanh,"cbrt",cbrt,"clz32",clz32,"cosh",cosh,"expm1",expm1,"fround",e,"hypot",hypot,"imul",imul,"log10",log10,"log1p",log1p,"log2",log2,"sign",sign,"sinh",sinh,"tanh",tanh,"trunc",trunc])}return"function"==typeof Float32Array?(t=new Float32Array(1),e=function(e){return t[0]=Number(e),t[0]}):e=r,a(polyfillMath),{get clz32(){return clz32},get imul(){return imul},get sign(){return sign},get log10(){return log10},get log2(){return log2},get log1p(){return log1p},get expm1(){return expm1},get cosh(){return cosh},get sinh(){return sinh},get tanh(){return tanh},get acosh(){return acosh},get asinh(){return asinh},get atanh(){return atanh},get hypot(){return hypot},get trunc(){return trunc},get fround(){return e},get cbrt(){return cbrt},get polyfillMath(){return polyfillMath}}})),$traceurRuntime.getModule("traceur@0.0.111/src/runtime/polyfills/Math.js"),$traceurRuntime.registerModule("traceur@0.0.111/src/runtime/polyfills/WeakMap.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../private.js","traceur@0.0.111/src/runtime/polyfills/WeakMap.js")),t=e.createPrivateSymbol,r=e.deletePrivate,n=e.getPrivate,i=e.hasPrivate,a=e.setPrivate,s=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../frozen-data.js","traceur@0.0.111/src/runtime/polyfills/WeakMap.js")),o=s.deleteFrozen,u=s.getFrozen,c=s.hasFrozen,l=s.setFrozen,m=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./utils.js","traceur@0.0.111/src/runtime/polyfills/WeakMap.js")),p=m.isObject,f=m.registerPolyfill,h=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../has-native-symbols.js","traceur@0.0.111/src/runtime/polyfills/WeakMap.js")).default,d=Object,g=(d.defineProperty,d.getOwnPropertyDescriptor,d.isExtensible),T=TypeError,y=(Object.prototype.hasOwnProperty,$traceurRuntime.createClass((function y(){this.name_=t(),this.frozenData_=[]}),{set:function(e,t){if(!p(e))throw new T("key must be an object");return g(e)?a(e,this.name_,t):l(this.frozenData_,e,t),this},get:function(e){if(p(e))return g(e)?n(e,this.name_):u(this.frozenData_,e)},delete:function(e){return!!p(e)&&(g(e)?r(e,this.name_):o(this.frozenData_,e))},has:function(e){return!!p(e)&&(g(e)?i(e,this.name_):c(this.frozenData_,e))}},{}));function polyfillWeakMap(e){(function needsPolyfill(e){var t=e,r=t.WeakMap;if(t.Symbol,!r||!h())return!0;try{var n={};return new r([[n,!1]]).get(n)}catch(e){return!1}})(e)&&(e.WeakMap=y)}return f(polyfillWeakMap),{get WeakMap(){return y},get polyfillWeakMap(){return polyfillWeakMap}}})),$traceurRuntime.getModule("traceur@0.0.111/src/runtime/polyfills/WeakMap.js"),$traceurRuntime.registerModule("traceur@0.0.111/src/runtime/polyfills/WeakSet.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../private.js","traceur@0.0.111/src/runtime/polyfills/WeakSet.js")),t=e.createPrivateSymbol,r=e.deletePrivate,n=(e.getPrivate,e.hasPrivate),i=e.setPrivate,a=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../frozen-data.js","traceur@0.0.111/src/runtime/polyfills/WeakSet.js")),s=a.deleteFrozen,o=a.getFrozen,u=a.setFrozen,c=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./utils.js","traceur@0.0.111/src/runtime/polyfills/WeakSet.js")),l=c.isObject,m=c.registerPolyfill,p=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../has-native-symbols.js","traceur@0.0.111/src/runtime/polyfills/WeakSet.js")).default,f=Object,h=(f.defineProperty,f.isExtensible),d=TypeError,g=(Object.prototype.hasOwnProperty,$traceurRuntime.createClass((function g(){this.name_=t(),this.frozenData_=[]}),{add:function(e){if(!l(e))throw new d("value must be an object");return h(e)?i(e,this.name_,!0):u(this.frozenData_,e,e),this},delete:function(e){return!!l(e)&&(h(e)?r(e,this.name_):s(this.frozenData_,e))},has:function(e){return!!l(e)&&(h(e)?n(e,this.name_):o(this.frozenData_,e)===e)}},{}));function polyfillWeakSet(e){(function needsPolyfill(e){var t=e,r=t.WeakSet;if(t.Symbol,!r||!p())return!0;try{var n={};return!new r([[n]]).has(n)}catch(e){return!1}})(e)&&(e.WeakSet=g)}return m(polyfillWeakSet),{get WeakSet(){return g},get polyfillWeakSet(){return polyfillWeakSet}}})),$traceurRuntime.getModule("traceur@0.0.111/src/runtime/polyfills/WeakSet.js"),$traceurRuntime.registerModule("traceur@0.0.111/src/runtime/polyfills/polyfills.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./utils.js","traceur@0.0.111/src/runtime/polyfills/polyfills.js")).polyfillAll;e(Reflect.global);var t=$traceurRuntime.setupGlobals;return $traceurRuntime.setupGlobals=function(r){t(r),e(r)},{}})),$traceurRuntime.getModule("traceur@0.0.111/src/runtime/polyfills/polyfills.js"),$traceurRuntime.registerModule("traceur@0.0.111/src/util/SourceRange.js",[],(function(){"use strict";var e=$traceurRuntime.createClass((function e(t,r){this.start=t,this.end=r}),{toString:function(){return this.start.source.contents.slice(this.start.offset,this.end.offset)}},{});return{get SourceRange(){return e}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/util/ErrorReporter.js",[],(function(){"use strict";$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./SourceRange.js","traceur@0.0.111/src/util/ErrorReporter.js")).SourceRange;var e=$traceurRuntime.createClass((function e(){this.hadError_=!1}),{reportError:function(e,t){this.hadError_=!0,this.reportMessageInternal(e,t)},reportMessageInternal:function(e,t){e&&(t=e.start+": "+t),console.error(t)},hadError:function(){return this.hadError_},clearError:function(){this.hadError_=!1}},{});function format(e,t){var r=arguments[2],n=0;return t=t.replace(/%./g,(function(e){switch(e){case"%s":return r&&r[n++];case"%%":return"%"}return e})),e&&(t=e+": "+t),t}return e.format=format,{get ErrorReporter(){return e},get format(){return format}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/util/MutedErrorReporter.js",[],(function(){"use strict";var e,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ErrorReporter.js","traceur@0.0.111/src/util/MutedErrorReporter.js")).ErrorReporter,r=(e=t,$traceurRuntime.createClass((function MutedErrorReporter(){$traceurRuntime.superConstructor(MutedErrorReporter).apply(this,arguments)}),{reportMessageInternal:function(e,t,r){}},{},e));return{get MutedErrorReporter(){return r}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/Options.js",[],(function(){"use strict";var e=function enumerableOnlyObject(e){var t=Object.create(null);return Object.keys(e).forEach((function(r){Object.defineProperty(t,r,{enumerable:!0,value:e[r]})})),t}({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,importRuntime:!1,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}),t=e,r=Object.create(null),n=Object.create(null),i=Object.create(null),a=["amd","commonjs","closure","instantiate","inline","bootstrap","parse"];function addFeatureOption(e,t){n[e]=!0,0===t&&(i[e]=!0);var a=1===t;r[e]=a}function addBoolOption(e){r[e]=!1}addFeatureOption("arrowFunctions",1),addFeatureOption("blockBinding",1),addFeatureOption("classes",1),addFeatureOption("computedPropertyNames",1),addFeatureOption("defaultParameters",1),addFeatureOption("destructuring",1),addFeatureOption("forOf",1),addFeatureOption("generators",1),addFeatureOption("modules","SPECIAL"),addFeatureOption("numericLiterals",1),addFeatureOption("propertyMethods",1),addFeatureOption("propertyNameShorthand",1),addFeatureOption("restParameters",1),addFeatureOption("sourceMaps","SPECIAL"),addFeatureOption("spread",1),addFeatureOption("symbols",1),addFeatureOption("templateLiterals",1),addFeatureOption("unicodeEscapeSequences",1),addFeatureOption("unicodeExpressions",1),addFeatureOption("properTailCalls",0),addFeatureOption("annotations",0),addFeatureOption("arrayComprehension",0),addFeatureOption("asyncFunctions",0),addFeatureOption("asyncGenerators",0),addFeatureOption("exponentiation",0),addFeatureOption("exportFromExtended",0),addFeatureOption("forOn",0),addFeatureOption("generatorComprehension",0),addFeatureOption("importRuntime",0),addFeatureOption("jsx",0),addFeatureOption("memberVariables",0),addFeatureOption("require",0),addFeatureOption("spreadProperties",0),addFeatureOption("types",0);var s={};Object.keys(n).forEach((function(e){Object.defineProperty(s,e,{get:function(){var t=this.proxiedOptions_[e];return"parse"!==t&&t},enumerable:!0})}));var o={};Object.keys(n).forEach((function(e){Object.defineProperty(o,e,{get:function(){return!!this.proxiedOptions_[e]},enumerable:!0})})),addBoolOption("commentCallback"),addBoolOption("debug"),addBoolOption("debugNames"),addBoolOption("freeVariableChecker"),addBoolOption("script"),addBoolOption("validate");var u=function(){function Options(){var e=void 0!==arguments[0]?arguments[0]:Object.create(null);this.reset(),Object.defineProperties(this,{modules_:{value:t.modules,writable:!0,enumerable:!1},sourceMaps_:{value:t.sourceMaps,writable:!0,enumerable:!1},sourceRoot_:{value:t.sourceRoot,writable:!0,enumerable:!1},transformOptions:{value:Object.create(s,{proxiedOptions_:{value:this,enumerable:!1}}),enumerable:!1},parseOptions:{value:Object.create(o,{proxiedOptions_:{value:this,enumerable:!1}}),enumerable:!1}}),this.setFromObject(e)}return $traceurRuntime.createClass(Options,{set experimental(e){var t=this;e=coerceOptionValue(e),Object.keys(i).forEach((function(r){t[r]=e}))},get experimental(){var e,t=this;return Object.keys(i).every((function(r){var n=t[r];return void 0===e?(e=n,!0):n===e||(e=null,!1)})),e},get atscript(){return this.types&&this.annotations&&this.memberVariables},set atscript(e){this.types=e,this.annotations=e,this.memberVariables=e},get modules(){return this.modules_},set modules(e){if("boolean"!=typeof e||e||(e="bootstrap"),-1===a.indexOf(e))throw new Error("Invalid 'modules' option '"+e+"', not in "+a.join(", "));this.modules_=e},get sourceMaps(){return this.sourceMaps_},set sourceMaps(e){if(null!==e&&"boolean"!=typeof e){if("file"!==e&&"inline"!==e&&"memory"!==e)throw new Error("Option sourceMaps should be [false|inline|file|memory], not "+e);this.sourceMaps_=e}else this.sourceMaps_=!!e&&"file"},reset:function(){var e=arguments[0],t=this,n=void 0===e;Object.keys(r).forEach((function(e){t[e]=n&&r[e]})),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(e){var t=this;return Object.keys(this).forEach((function(r){r in e&&t.setOption(r,e[r])})),this.modules=e.modules||this.modules,"boolean"!=typeof e.sourceMaps&&"string"!=typeof e.sourceMaps||(this.sourceMaps=e.sourceMaps),void 0!==e.sourceRoot&&(this.sourceRoot=e.sourceRoot),this},setOption:function(e,t){if(!((e=function toCamelCase(e){return e.replace(/-\w/g,(function(e){return e[1].toUpperCase()}))}(e))in this))throw Error("Unknown option: "+e);this[e]=t},diff:function(e){var t=this,r=[];return Object.keys(this).forEach((function(n){t[n]!==e[n]&&r.push({key:n,now:$traceurRuntime.options[n],v01:e[n]})})),r}},{experimental:function(){return new Options(i)},atscript:function(){return new Options({types:!0,annotations:!0,memberVariables:!0})},listUnknownOptions:function(t){var r=[];return Object.keys(t).forEach((function(t){t in e||r.push(t)})),r}})}(),c={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"},l=function(e){function CommandOptions(){$traceurRuntime.superConstructor(CommandOptions).apply(this,arguments)}return $traceurRuntime.createClass(CommandOptions,{parseCommand:function(e){var t=/--([^=]+)(?:=(.+))?/.exec(e);t&&this.setOptionCoerced(t[1],t[2])},setOptionCoerced:function(e,t){t=null==t||coerceOptionValue(t),this.setOption(e,t)}},{fromString:function(e){return CommandOptions.fromArgv(e.split(/\s+/))},fromArgv:function(e){var t=new CommandOptions;return e.forEach((function(e){return t.parseCommand(e)})),t}},e)}(u);function coerceOptionValue(e){switch(e){case"false":return!1;case"true":case!0:return!0;default:return!!e&&String(e)}}function toDashCase(e){return e.replace(/[A-Z]/g,(function(e){return"-"+e.toLowerCase()}))}function addOptions(e,t){e.option("--referrer <name>","Bracket output code with System.referrerName=<name>",(function(e){return t.setOption("referrer",e),System.map=System.semverMap(e),e})),e.option("--modules <"+a.join(", ")+">","select the output format for modules",(function(e){t.modules=e})),e.option("--moduleName [true|false|default]","true for named, false for anonymous modules; default depends on --modules",(function(e){e="true"===e||"false"!==e&&"default",t.moduleName=e})),e.option("--outputLanguage <es6|es5>","compilation target language",(function(e){if("es6"!==e&&"es5"!==e)throw new Error("outputLanguage must be one of es5, es6");t.outputLanguage=e})),e.option("--source-maps [file|inline|memory]","sourceMaps generated to file or inline with data: URL",(function(e){return t.sourceMaps=e})),e.option("--source-root <true|false|string>","sourcemap sourceRoot value. false to omit, true for directory of output file.",(function(e){return"false"===e?e=!1:"true"===e&&(e=!0),t.sourceRoot=e})),e.option("--low-resolution-source-maps","Lower sourceMaps granularity to one mapping per output line",(function(){return t.lowResolutionSourceMap=!0})),e.option("--experimental","Turns on all experimental features",(function(){t.experimental=!0})),e.option("--atscript","Turns on all AtScript features",(function(){t.atscript=!0})),Object.keys(t).forEach((function(r){var i=toDashCase(r);if(!e.optionFor("--"+r)&&!e.optionFor("--"+i))if(r in n)e.option("--"+i+" [true|false|parse]",c[r]),e.on(i,(function(e){return t.setOptionCoerced(i,e)}));else{if(null===t[r])throw new Error("Unexpected null commandOption "+r);e.option("--"+i,c[r]),e.on(i,(function(){return t.setOption(i,!0)}))}})),t.setDefaults()}return{get optionsV01(){return e},get versionLockedOptions(){return t},get Options(){return u},get CommandOptions(){return l},get toDashCase(){return toDashCase},get addOptions(){return addOptions}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/loader/webLoader.js",[],(function(){"use strict";var e={load:function(e,t,r){var n=new XMLHttpRequest;return n.onload=function(){var i;200==n.status||0==n.status?t(n.responseText):(i=404===n.status?"File not found '"+e+"'":n.status+n.statusText,r(i));n=null},n.onerror=function(e){r(e)},n.open("GET",e,!0),n.send(),function(){n&&n.abort()}}};return{get webLoader(){return e}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/WebPageTranscoder.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./util/ErrorReporter.js","traceur@0.0.111/src/WebPageTranscoder.js")).ErrorReporter,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./Options.js","traceur@0.0.111/src/WebPageTranscoder.js")).CommandOptions,r=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./loader/webLoader.js","traceur@0.0.111/src/WebPageTranscoder.js")).webLoader,n='script[type="module"],script[type="text/traceur"]',i=$traceurRuntime.createClass((function i(){var e=void 0!==arguments[0]?arguments[0]:document.location.href,t=void 0!==arguments[1]?arguments[1]:new Options;this.url=e,this.numPending_=0,this.numberInlined_=0,this.traceurOptions_=t}),{asyncLoad_:function(e,t,n){var i=this;this.numPending_++,r.load(e,(function(r){r?t(r):console.warn("Failed to load",e),--i.numPending_<=0&&n()}),(function(t){console.error("WebPageTranscoder FAILED to load "+e,t.stack||t)}))},addFileFromScriptElement:function(e,r,n){var i=this.traceurOptions_,a=e.getAttribute("traceurOptions");a&&(i=t.fromString(a));var s={address:r,referrerName:window.location.href,name:r,metadata:{traceurOptions:i}};("module"===e.type?System.module(n,s):System.script(n,s)).catch((function(e){console.error(e.stack||e)}))},nextInlineScriptName_:function(){if(this.numberInlined_+=1,!this.inlineScriptNameBase_){var e=this.url.split(".");e.pop(),this.inlineScriptNameBase_=e.join(".")}return this.inlineScriptNameBase_+"_inline_script_"+this.numberInlined_+".js"},addFilesFromScriptElements:function(e,t){for(var r=0,n=e.length;r<n;r++){var i=e[r];if(i.src){var a=i.src;this.asyncLoad_(a,this.addFileFromScriptElement.bind(this,i,a),t)}else{var s=this.nextInlineScriptName_(),o=i.textContent;this.addFileFromScriptElement(i,s,o)}}this.numPending_<=0&&t()},get reporter(){return this.reporter_||(this.reporter_=new e),this.reporter_},putFile:function(e){var t=document.createElement("script");t.setAttribute("data-traceur-src-url",e.name),t.textContent=e.generatedSource,e.scriptElement.parentNode.insertBefore(t,e.scriptElement||null)},selectAndProcessScripts:function(e){var t=document.querySelectorAll('script[type="module"],script[type="text/traceur"]');t.length?this.addFilesFromScriptElements(t,(function(){e()})):e()},run:function(){var e=void 0!==arguments[0]?arguments[0]:function(){},t=this,r=document.readyState;"complete"===r||"loaded"===r?this.selectAndProcessScripts(e):document.addEventListener("DOMContentLoaded",(function(){return t.selectAndProcessScripts(e)}),!1)}},{});return{get scriptSelector(){return n},get WebPageTranscoder(){return i}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/util/StringSet.js",[],(function(){"use strict";function assertString(e){if("string"!=typeof e)throw new TypeError}var e=$traceurRuntime.createClass((function e(){this.storage_=Object.create(null)}),{add:function(e){assertString(e),this.storage_[e]=!0},has:function(e){return assertString(e),void 0!==this.storage_[e]},delete:function(e){assertString(e),delete this.storage_[e]},isEmpty:function(){for(var e in this.storage_)return!1;return!0},valuesAsArray:function(){return Object.keys(this.storage_)},forEach:function(e){for(var t in this.storage_)e(t)}},{});return{get StringSet(){return e}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/util/StringMap.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./StringSet.js","traceur@0.0.111/src/util/StringMap.js")).StringSet;function assertString(e){if("string"!=typeof e)throw new TypeError}var t=$traceurRuntime.createClass((function t(){this.storage_=Object.create(null)}),{set:function(e,t){assertString(e),this.storage_[e]=t},get:function(e){return assertString(e),this.storage_[e]},delete:function(e){assertString(e),delete this.storage_[e]},has:function(e){return assertString(e),void 0!==this.storage_[e]},keysAsArray:function(){return Object.keys(this.storage_)},keysAsSet:function(){var t=new e;return this.forEach((function(e){return t.add(e)})),t},forEach:function(e){for(var t in this.storage_)e(t,this.storage_[t])}},{});return{get StringMap(){return t}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/HTMLImportTranscoder.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./util/StringMap.js","traceur@0.0.111/src/HTMLImportTranscoder.js")).StringMap,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./WebPageTranscoder.js","traceur@0.0.111/src/HTMLImportTranscoder.js")),r=t.WebPageTranscoder,n=t.scriptSelector,i="link[rel=import][href]",a=$traceurRuntime.createClass((function a(){this.importsToProcess_=[]}),{findAllChildrenHTMLImports_:function(e){for(var t=0;t<e.length;t++){var r=e[t],n=r.import.querySelectorAll(i);n.length>0&&this.findAllChildrenHTMLImports_(n),this.importsToProcess_.push(r)}},filterHTMLImports_:function(t){this.findAllChildrenHTMLImports_(t);for(var r=[],i=new e,a=0;a<this.importsToProcess_.length;a++){var s=this.importsToProcess_[a];if(!i.has(s.href)){i.set(s.href,0);var o=s.import.querySelectorAll(n);o.length>0&&r.push({href:s.href,scripts:o})}}return this.importsToProcess_=[],r},selectAndProcessHTMLImports:function(e,t){var n=this.filterHTMLImports_(e);0===n.length&&t();var i=n.length;n.forEach((function(e){new r(e.href).addFilesFromScriptElements(e.scripts,(function(){0==--i&&t&&t()}))}))},run:function(){var e=void 0!==arguments[0]?arguments[0]:function(){},t=this,r=document.readyState;if("complete"===r||"loaded"===r){var n=document.querySelectorAll(i);n.length>0&&this.selectAndProcessHTMLImports(n,e)}else document.addEventListener("HTMLImportsLoaded",(function(r){var n=r.detail&&r.detail.allImports?r.detail.allImports:document.querySelectorAll(i);n.length>0&&t.selectAndProcessHTMLImports(n,e)}))}},{});return{get HTMLImportTranscoder(){return a}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/util/CollectingErrorReporter.js",[],(function(){"use strict";var e,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../util/ErrorReporter.js","traceur@0.0.111/src/util/CollectingErrorReporter.js")).ErrorReporter,r=(e=Error,$traceurRuntime.createClass((function MultipleErrors(e){$traceurRuntime.superConstructor(MultipleErrors).call(this),this.message=e?e.join("\n"):"",this.name="MultipleErrors",this.errors=e}),{},{},e)),n=function(e){return $traceurRuntime.createClass((function CollectingErrorReporter(){$traceurRuntime.superConstructor(CollectingErrorReporter).call(this),this.errors=[]}),{reportMessageInternal:function(e,t){this.errors.push(e.start+": "+t)},errorsAsString:function(){return this.toError().message},toError:function(){return new r(this.errors)}},{},e)}(t);return{get MultipleErrors(){return r},get CollectingErrorReporter(){return n}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/util-imports.js",[],(function(){"use strict";$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./util/MutedErrorReporter.js","traceur@0.0.111/src/util-imports.js"));var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./WebPageTranscoder.js","traceur@0.0.111/src/util-imports.js")),t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./HTMLImportTranscoder.js","traceur@0.0.111/src/util-imports.js")),r=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./Options.js","traceur@0.0.111/src/util-imports.js")),n=r.addOptions,i=r.CommandOptions,a=r.Options,s=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./util/ErrorReporter.js","traceur@0.0.111/src/util-imports.js")).ErrorReporter,o={addOptions:n,CommandOptions:i,CollectingErrorReporter:$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./util/CollectingErrorReporter.js","traceur@0.0.111/src/util-imports.js")).CollectingErrorReporter,ErrorReporter:s,Options:a};return{get WebPageTranscoder(){return e.WebPageTranscoder},get HTMLImportTranscoder(){return t.HTMLImportTranscoder},get util(){return o}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/syntax/trees/ParseTreeType.js",[],(function(){"use strict";return{get ANNOTATION(){return"ANNOTATION"},get ANON_BLOCK(){return"ANON_BLOCK"},get ARGUMENT_LIST(){return"ARGUMENT_LIST"},get ARRAY_COMPREHENSION(){return"ARRAY_COMPREHENSION"},get ARRAY_LITERAL(){return"ARRAY_LITERAL"},get ARRAY_PATTERN(){return"ARRAY_PATTERN"},get ARRAY_TYPE(){return"ARRAY_TYPE"},get ARROW_FUNCTION(){return"ARROW_FUNCTION"},get ASSIGNMENT_ELEMENT(){return"ASSIGNMENT_ELEMENT"},get AWAIT_EXPRESSION(){return"AWAIT_EXPRESSION"},get BINARY_EXPRESSION(){return"BINARY_EXPRESSION"},get BINDING_ELEMENT(){return"BINDING_ELEMENT"},get BINDING_IDENTIFIER(){return"BINDING_IDENTIFIER"},get BLOCK(){return"BLOCK"},get BREAK_STATEMENT(){return"BREAK_STATEMENT"},get CALL_EXPRESSION(){return"CALL_EXPRESSION"},get CALL_SIGNATURE(){return"CALL_SIGNATURE"},get CASE_CLAUSE(){return"CASE_CLAUSE"},get CATCH(){return"CATCH"},get CLASS_DECLARATION(){return"CLASS_DECLARATION"},get CLASS_EXPRESSION(){return"CLASS_EXPRESSION"},get COMMA_EXPRESSION(){return"COMMA_EXPRESSION"},get COMPREHENSION_FOR(){return"COMPREHENSION_FOR"},get COMPREHENSION_IF(){return"COMPREHENSION_IF"},get COMPUTED_PROPERTY_NAME(){return"COMPUTED_PROPERTY_NAME"},get CONDITIONAL_EXPRESSION(){return"CONDITIONAL_EXPRESSION"},get CONSTRUCT_SIGNATURE(){return"CONSTRUCT_SIGNATURE"},get CONSTRUCTOR_TYPE(){return"CONSTRUCTOR_TYPE"},get CONTINUE_STATEMENT(){return"CONTINUE_STATEMENT"},get COVER_FORMALS(){return"COVER_FORMALS"},get COVER_INITIALIZED_NAME(){return"COVER_INITIALIZED_NAME"},get DEBUGGER_STATEMENT(){return"DEBUGGER_STATEMENT"},get DEFAULT_CLAUSE(){return"DEFAULT_CLAUSE"},get DO_WHILE_STATEMENT(){return"DO_WHILE_STATEMENT"},get EMPTY_STATEMENT(){return"EMPTY_STATEMENT"},get EXPORT_DECLARATION(){return"EXPORT_DECLARATION"},get EXPORT_DEFAULT(){return"EXPORT_DEFAULT"},get EXPORT_SPECIFIER(){return"EXPORT_SPECIFIER"},get EXPORT_SPECIFIER_SET(){return"EXPORT_SPECIFIER_SET"},get EXPORT_STAR(){return"EXPORT_STAR"},get EXPRESSION_STATEMENT(){return"EXPRESSION_STATEMENT"},get FINALLY(){return"FINALLY"},get FOR_IN_STATEMENT(){return"FOR_IN_STATEMENT"},get FOR_OF_STATEMENT(){return"FOR_OF_STATEMENT"},get FOR_ON_STATEMENT(){return"FOR_ON_STATEMENT"},get FOR_STATEMENT(){return"FOR_STATEMENT"},get FORMAL_PARAMETER(){return"FORMAL_PARAMETER"},get FORMAL_PARAMETER_LIST(){return"FORMAL_PARAMETER_LIST"},get FORWARD_DEFAULT_EXPORT(){return"FORWARD_DEFAULT_EXPORT"},get FUNCTION_BODY(){return"FUNCTION_BODY"},get FUNCTION_DECLARATION(){return"FUNCTION_DECLARATION"},get FUNCTION_EXPRESSION(){return"FUNCTION_EXPRESSION"},get FUNCTION_TYPE(){return"FUNCTION_TYPE"},get GENERATOR_COMPREHENSION(){return"GENERATOR_COMPREHENSION"},get GET_ACCESSOR(){return"GET_ACCESSOR"},get IDENTIFIER_EXPRESSION(){return"IDENTIFIER_EXPRESSION"},get IF_STATEMENT(){return"IF_STATEMENT"},get IMPORT_CLAUSE_PAIR(){return"IMPORT_CLAUSE_PAIR"},get IMPORT_DECLARATION(){return"IMPORT_DECLARATION"},get IMPORT_SPECIFIER(){return"IMPORT_SPECIFIER"},get IMPORT_SPECIFIER_SET(){return"IMPORT_SPECIFIER_SET"},get IMPORT_TYPE_CLAUSE(){return"IMPORT_TYPE_CLAUSE"},get IMPORTED_BINDING(){return"IMPORTED_BINDING"},get INDEX_SIGNATURE(){return"INDEX_SIGNATURE"},get INTERFACE_DECLARATION(){return"INTERFACE_DECLARATION"},get JSX_ATTRIBUTE(){return"JSX_ATTRIBUTE"},get JSX_ELEMENT(){return"JSX_ELEMENT"},get JSX_ELEMENT_NAME(){return"JSX_ELEMENT_NAME"},get JSX_PLACEHOLDER(){return"JSX_PLACEHOLDER"},get JSX_SPREAD_ATTRIBUTE(){return"JSX_SPREAD_ATTRIBUTE"},get JSX_TEXT(){return"JSX_TEXT"},get LABELLED_STATEMENT(){return"LABELLED_STATEMENT"},get LITERAL_EXPRESSION(){return"LITERAL_EXPRESSION"},get LITERAL_PROPERTY_NAME(){return"LITERAL_PROPERTY_NAME"},get MEMBER_EXPRESSION(){return"MEMBER_EXPRESSION"},get MEMBER_LOOKUP_EXPRESSION(){return"MEMBER_LOOKUP_EXPRESSION"},get METHOD(){return"METHOD"},get METHOD_SIGNATURE(){return"METHOD_SIGNATURE"},get MODULE(){return"MODULE"},get MODULE_SPECIFIER(){return"MODULE_SPECIFIER"},get NAME_SPACE_EXPORT(){return"NAME_SPACE_EXPORT"},get NAME_SPACE_IMPORT(){return"NAME_SPACE_IMPORT"},get NAMED_EXPORT(){return"NAMED_EXPORT"},get NEW_EXPRESSION(){return"NEW_EXPRESSION"},get OBJECT_LITERAL(){return"OBJECT_LITERAL"},get OBJECT_PATTERN(){return"OBJECT_PATTERN"},get OBJECT_PATTERN_FIELD(){return"OBJECT_PATTERN_FIELD"},get OBJECT_TYPE(){return"OBJECT_TYPE"},get PAREN_EXPRESSION(){return"PAREN_EXPRESSION"},get POSTFIX_EXPRESSION(){return"POSTFIX_EXPRESSION"},get PREDEFINED_TYPE(){return"PREDEFINED_TYPE"},get PROPERTY_NAME_ASSIGNMENT(){return"PROPERTY_NAME_ASSIGNMENT"},get PROPERTY_NAME_SHORTHAND(){return"PROPERTY_NAME_SHORTHAND"},get PROPERTY_SIGNATURE(){return"PROPERTY_SIGNATURE"},get PROPERTY_VARIABLE_DECLARATION(){return"PROPERTY_VARIABLE_DECLARATION"},get REST_PARAMETER(){return"REST_PARAMETER"},get RETURN_STATEMENT(){return"RETURN_STATEMENT"},get SCRIPT(){return"SCRIPT"},get SET_ACCESSOR(){return"SET_ACCESSOR"},get SPREAD_EXPRESSION(){return"SPREAD_EXPRESSION"},get SPREAD_PATTERN_ELEMENT(){return"SPREAD_PATTERN_ELEMENT"},get STATE_MACHINE(){return"STATE_MACHINE"},get SUPER_EXPRESSION(){return"SUPER_EXPRESSION"},get SWITCH_STATEMENT(){return"SWITCH_STATEMENT"},get SYNTAX_ERROR_TREE(){return"SYNTAX_ERROR_TREE"},get TEMPLATE_LITERAL_EXPRESSION(){return"TEMPLATE_LITERAL_EXPRESSION"},get TEMPLATE_LITERAL_PORTION(){return"TEMPLATE_LITERAL_PORTION"},get TEMPLATE_SUBSTITUTION(){return"TEMPLATE_SUBSTITUTION"},get THIS_EXPRESSION(){return"THIS_EXPRESSION"},get THROW_STATEMENT(){return"THROW_STATEMENT"},get TRY_STATEMENT(){return"TRY_STATEMENT"},get TYPE_ALIAS_DECLARATION(){return"TYPE_ALIAS_DECLARATION"},get TYPE_ARGUMENTS(){return"TYPE_ARGUMENTS"},get TYPE_NAME(){return"TYPE_NAME"},get TYPE_PARAMETER(){return"TYPE_PARAMETER"},get TYPE_PARAMETERS(){return"TYPE_PARAMETERS"},get TYPE_REFERENCE(){return"TYPE_REFERENCE"},get UNARY_EXPRESSION(){return"UNARY_EXPRESSION"},get UNION_TYPE(){return"UNION_TYPE"},get VARIABLE_DECLARATION(){return"VARIABLE_DECLARATION"},get VARIABLE_DECLARATION_LIST(){return"VARIABLE_DECLARATION_LIST"},get VARIABLE_STATEMENT(){return"VARIABLE_STATEMENT"},get WHILE_STATEMENT(){return"WHILE_STATEMENT"},get WITH_STATEMENT(){return"WITH_STATEMENT"},get YIELD_EXPRESSION(){return"YIELD_EXPRESSION"}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/syntax/TokenType.js",[],(function(){"use strict";return{get AMPERSAND(){return"&"},get AMPERSAND_EQUAL(){return"&="},get AND(){return"&&"},get ARROW(){return"=>"},get AT(){return"@"},get BACK_QUOTE(){return"`"},get BANG(){return"!"},get BAR(){return"|"},get BAR_EQUAL(){return"|="},get BREAK(){return"break"},get CARET(){return"^"},get CARET_EQUAL(){return"^="},get CASE(){return"case"},get CATCH(){return"catch"},get CLASS(){return"class"},get CLOSE_ANGLE(){return">"},get CLOSE_CURLY(){return"}"},get CLOSE_PAREN(){return")"},get CLOSE_SQUARE(){return"]"},get COLON(){return":"},get COMMA(){return","},get CONST(){return"const"},get CONTINUE(){return"continue"},get DEBUGGER(){return"debugger"},get DEFAULT(){return"default"},get DELETE(){return"delete"},get DO(){return"do"},get DOT_DOT_DOT(){return"..."},get ELSE(){return"else"},get END_OF_FILE(){return"End of File"},get ENUM(){return"enum"},get EQUAL(){return"="},get EQUAL_EQUAL(){return"=="},get EQUAL_EQUAL_EQUAL(){return"==="},get ERROR(){return"error"},get EXPORT(){return"export"},get EXTENDS(){return"extends"},get FALSE(){return"false"},get FINALLY(){return"finally"},get FOR(){return"for"},get FUNCTION(){return"function"},get GREATER_EQUAL(){return">="},get IDENTIFIER(){return"identifier"},get IF(){return"if"},get IMPLEMENTS(){return"implements"},get IMPORT(){return"import"},get IN(){return"in"},get INSTANCEOF(){return"instanceof"},get INTERFACE(){return"interface"},get JSX_IDENTIFIER(){return"jsx identifier"},get LEFT_SHIFT(){return"<<"},get LEFT_SHIFT_EQUAL(){return"<<="},get LESS_EQUAL(){return"<="},get LET(){return"let"},get MINUS(){return"-"},get MINUS_EQUAL(){return"-="},get MINUS_MINUS(){return"--"},get NEW(){return"new"},get NO_SUBSTITUTION_TEMPLATE(){return"no substitution template"},get NOT_EQUAL(){return"!="},get NOT_EQUAL_EQUAL(){return"!=="},get NULL(){return"null"},get NUMBER(){return"number literal"},get OPEN_ANGLE(){return"<"},get OPEN_CURLY(){return"{"},get OPEN_PAREN(){return"("},get OPEN_SQUARE(){return"["},get OR(){return"||"},get PACKAGE(){return"package"},get PERCENT(){return"%"},get PERCENT_EQUAL(){return"%="},get PERIOD(){return"."},get PLUS(){return"+"},get PLUS_EQUAL(){return"+="},get PLUS_PLUS(){return"++"},get PRIVATE(){return"private"},get PROTECTED(){return"protected"},get PUBLIC(){return"public"},get QUESTION(){return"?"},get REGULAR_EXPRESSION(){return"regular expression literal"},get RETURN(){return"return"},get RIGHT_SHIFT(){return">>"},get RIGHT_SHIFT_EQUAL(){return">>="},get SEMI_COLON(){return";"},get SLASH(){return"/"},get SLASH_EQUAL(){return"/="},get STAR(){return"*"},get STAR_EQUAL(){return"*="},get STAR_STAR(){return"**"},get STAR_STAR_EQUAL(){return"**="},get STATIC(){return"static"},get STRING(){return"string literal"},get SUPER(){return"super"},get SWITCH(){return"switch"},get TEMPLATE_HEAD(){return"template head"},get TEMPLATE_MIDDLE(){return"template middle"},get TEMPLATE_TAIL(){return"template tail"},get THIS(){return"this"},get THROW(){return"throw"},get TILDE(){return"~"},get TRUE(){return"true"},get TRY(){return"try"},get TYPEOF(){return"typeof"},get UNSIGNED_RIGHT_SHIFT(){return">>>"},get UNSIGNED_RIGHT_SHIFT_EQUAL(){return">>>="},get VAR(){return"var"},get VOID(){return"void"},get WHILE(){return"while"},get WITH(){return"with"},get YIELD(){return"yield"}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/syntax/Token.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./TokenType.js","traceur@0.0.111/src/syntax/Token.js")),t=e.AMPERSAND_EQUAL,r=e.BAR_EQUAL,n=e.CARET_EQUAL,i=e.EQUAL,a=e.LEFT_SHIFT_EQUAL,s=e.MINUS_EQUAL,o=e.PERCENT_EQUAL,u=e.PLUS_EQUAL,c=e.RIGHT_SHIFT_EQUAL,l=e.SLASH_EQUAL,m=e.STAR_EQUAL,p=e.STAR_STAR_EQUAL,f=e.UNSIGNED_RIGHT_SHIFT_EQUAL,h=$traceurRuntime.createClass((function h(e,t){this.type=e,this.location=t}),{toString:function(){return this.type},isAssignmentOperator:function(){return isAssignmentOperator(this.type)},isKeyword:function(){return!1},isStrictKeyword:function(){return!1}},{});function isAssignmentOperator(e){switch(e){case t:case r:case n:case i:case a:case s:case o:case u:case c:case l:case m:case p:case f:return!0}return!1}return{get Token(){return h},get isAssignmentOperator(){return isAssignmentOperator}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/util/JSON.js",[],(function(){"use strict";function transform(e){var t=void 0!==arguments[1]?arguments[1]:function(e,t){return t};return transform_(t("",e),t)}function transform_(e,t){var r,n;if(Array.isArray(e)){var i=e.length;r=Array(i);for(var a=0;a<i;a++)n=transform_(t(String(a),e[a]),t),r[a]=void 0===n?null:n;return r}return e instanceof Object?(r={},Object.keys(e).forEach((function(i){void 0!==(n=transform_(t(i,e[i]),t))&&(r[i]=n)})),r):e}return{get transform(){return transform}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/syntax/PredefinedName.js",[],(function(){"use strict";return{get $ARGUMENTS(){return"$arguments"},get ANY(){return"any"},get APPLY(){return"apply"},get ARGUMENTS(){return"arguments"},get ARRAY(){return"Array"},get AS(){return"as"},get ASYNC(){return"async"},get ASYNC_STAR(){return"async star"},get AWAIT(){return"await"},get BIND(){return"bind"},get CALL(){return"call"},get CONFIGURABLE(){return"configurable"},get CONSTRUCTOR(){return"constructor"},get CREATE(){return"create"},get CURRENT(){return"current"},get DEFINE_PROPERTY(){return"defineProperty"},get ENUMERABLE(){return"enumerable"},get FREEZE(){return"freeze"},get FROM(){return"from"},get FUNCTION(){return"Function"},get GET(){return"get"},get HAS(){return"has"},get LENGTH(){return"length"},get MODULE(){return"module"},get NEW(){return"new"},get OBJECT(){return"Object"},get OBJECT_NAME(){return"Object"},get OF(){return"of"},get ON(){return"on"},get PREVENT_EXTENSIONS(){return"preventExtensions"},get PROTOTYPE(){return"prototype"},get PUSH(){return"push"},get SET(){return"set"},get SLICE(){return"slice"},get THIS(){return"this"},get TRACEUR_RUNTIME(){return"$traceurRuntime"},get TYPE(){return"type"},get UNDEFINED(){return"undefined"},get WRITABLE(){return"writable"}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/syntax/trees/ParseTree.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeType.js","traceur@0.0.111/src/syntax/trees/ParseTree.js")),t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../TokenType.js","traceur@0.0.111/src/syntax/trees/ParseTree.js")),r=t.IDENTIFIER,n=t.STAR,i=t.STRING,a=t.VAR,s=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../Token.js","traceur@0.0.111/src/syntax/trees/ParseTree.js")).Token,o=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../../util/JSON.js","traceur@0.0.111/src/syntax/trees/ParseTree.js")),u=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../PredefinedName.js","traceur@0.0.111/src/syntax/trees/ParseTree.js")),c=u.ASYNC,l=u.ASYNC_STAR,m=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeType.js","traceur@0.0.111/src/syntax/trees/ParseTree.js")),p=m.ARRAY_COMPREHENSION,f=m.ARRAY_LITERAL,h=m.ARRAY_PATTERN,d=m.ARROW_FUNCTION,g=m.AWAIT_EXPRESSION,T=m.BINARY_EXPRESSION,y=m.BINDING_IDENTIFIER,R=m.BLOCK,S=m.BREAK_STATEMENT,_=m.CALL_EXPRESSION,v=m.CLASS_DECLARATION,E=m.CLASS_EXPRESSION,M=m.COMMA_EXPRESSION,A=m.CONDITIONAL_EXPRESSION,x=m.CONSTRUCTOR_TYPE,$=m.CONTINUE_STATEMENT,C=m.DEBUGGER_STATEMENT,N=m.DO_WHILE_STATEMENT,P=m.EMPTY_STATEMENT,b=m.EXPORT_DECLARATION,w=m.EXPRESSION_STATEMENT,j=m.FOR_IN_STATEMENT,L=m.FOR_OF_STATEMENT,I=m.FOR_ON_STATEMENT,O=m.FOR_STATEMENT,F=m.FORMAL_PARAMETER,k=m.FUNCTION_DECLARATION,D=m.FUNCTION_EXPRESSION,B=m.FUNCTION_TYPE,z=m.GENERATOR_COMPREHENSION,V=m.IDENTIFIER_EXPRESSION,G=m.IF_STATEMENT,U=m.IMPORT_DECLARATION,W=m.IMPORTED_BINDING,H=m.INTERFACE_DECLARATION,Y=m.JSX_ELEMENT,X=m.LABELLED_STATEMENT,J=m.LITERAL_EXPRESSION,K=m.LITERAL_PROPERTY_NAME,q=m.MEMBER_EXPRESSION,Q=m.MEMBER_LOOKUP_EXPRESSION,Z=m.NEW_EXPRESSION,ee=m.OBJECT_LITERAL,te=m.OBJECT_PATTERN,re=m.OBJECT_TYPE,ne=m.PAREN_EXPRESSION,ie=m.POSTFIX_EXPRESSION,ae=m.PREDEFINED_TYPE,se=m.PROPERTY_NAME_SHORTHAND,oe=m.REST_PARAMETER,ue=m.RETURN_STATEMENT,ce=m.SPREAD_EXPRESSION,le=m.SPREAD_PATTERN_ELEMENT,me=m.SUPER_EXPRESSION,pe=m.SWITCH_STATEMENT,fe=m.TEMPLATE_LITERAL_EXPRESSION,he=m.THIS_EXPRESSION,de=m.THROW_STATEMENT,ge=m.TRY_STATEMENT,Te=m.TYPE_ALIAS_DECLARATION,ye=m.TYPE_NAME,Re=m.TYPE_REFERENCE,Se=m.UNARY_EXPRESSION,_e=m.VARIABLE_DECLARATION,ve=m.VARIABLE_STATEMENT,Ee=m.WHILE_STATEMENT,Me=m.WITH_STATEMENT,Ae=m.YIELD_EXPRESSION,xe=function(){function ParseTree(e){this.location=e}return $traceurRuntime.createClass(ParseTree,{isPattern:function(){switch(this.type){case h:case te:return!0;default:return!1}},isLeftHandSideExpression:function(){switch(this.type){case h:case V:case q:case Q:case te:return!0;case ne:return this.expression.isLeftHandSideExpression();default:return!1}},isAssignmentExpression:function(){switch(this.type){case p:case f:case d:case g:case T:case _:case E:case A:case D:case z:case V:case Y:case J:case q:case Q:case Z:case ee:case ne:case ie:case fe:case me:case he:case Se:case Ae:return!0;default:return!1}},isMemberExpression:function(){switch(this.type){case he:case E:case me:case V:case Y:case J:case f:case ee:case ne:case fe:case D:case Q:case q:case _:return!0;case Z:return null!==this.args}return!1},isExpression:function(){return this.isAssignmentExpression()||this.type===M},isAssignmentOrSpread:function(){return this.isAssignmentExpression()||this.type===ce},isRestParameter:function(){return this.type===oe||this.type===F&&this.parameter.isRestParameter()},isSpreadPatternElement:function(){return this.type===le},isStatementListItem:function(){return this.isStatement()||this.isDeclaration()||this.type===Te},isStatement:function(){switch(this.type){case R:case ve:case P:case w:case G:case $:case S:case ue:case Me:case X:case de:case ge:case C:return!0}return this.isBreakableStatement()},isDeclaration:function(){switch(this.type){case k:case v:return!0}return this.isLexicalDeclaration()},isLexicalDeclaration:function(){switch(this.type){case ve:return this.declarations.declarationType!==a}return!1},isBreakableStatement:function(){switch(this.type){case pe:return!0}return this.isIterationStatement()},isIterationStatement:function(){switch(this.type){case N:case j:case L:case I:case O:case Ee:return!0}return!1},isScriptElement:function(){switch(this.type){case v:case b:case k:case U:case H:case _e:case Te:return!0}return this.isStatement()},isGenerator:function(){return null!==this.functionKind&&this.functionKind.type===n},isAsyncFunction:function(){return null!==this.functionKind&&this.functionKind.type===r&&this.functionKind.value===c},isAsyncGenerator:function(){return null!==this.functionKind&&this.functionKind.type===r&&this.functionKind.value===l},isType:function(){switch(this.type){case x:case B:case re:case ae:case ye:case Re:return!0}return!1},getDirectivePrologueStringToken_:function(){var e=this;return e.type===w&&(e=e.expression)&&e.type===J&&(e=e.literalToken)?e.type!==i?null:e:null},isDirectivePrologue:function(){return null!==this.getDirectivePrologueStringToken_()},isUseStrictDirective:function(){var e=this.getDirectivePrologueStringToken_();if(!e)return!1;var t=e.value;return'"use strict"'===t||"'use strict'"===t},toJSON:function(){return o.transform(this,ParseTree.replacer)},stringify:function(){var e=void 0!==arguments[0]?arguments[0]:2;return JSON.stringify(this,ParseTree.replacer,e)},getStringValue:function(){switch(this.type){case V:case y:return this.identifierToken.toString();case W:return this.binding.getStringValue();case se:return this.name.toString();case K:return this.literalToken.toString()}throw new Error("Not yet implemented")}},{stripLocation:function(e,t){if("location"!==e)return t},replacer:function(e,t){if(t instanceof ParseTree||t instanceof s){var r={type:t.type};return Object.keys(t).forEach((function(e){"location"!==e&&(r[e]=t[e])})),r}return t}})}();return{get ParseTreeType(){return e},get ParseTree(){return xe}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/syntax/trees/ParseTrees.js",[],(function(){"use strict";var e,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTree.js","traceur@0.0.111/src/syntax/trees/ParseTrees.js")).ParseTree,r=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeType.js","traceur@0.0.111/src/syntax/trees/ParseTrees.js")),n=r.ANNOTATION,i=(e=t,$traceurRuntime.createClass((function Annotation(e,t,r){$traceurRuntime.superConstructor(Annotation).call(this,e),this.name=t,this.args=r}),{transform:function(e){return e.transformAnnotation(this)},visit:function(e){e.visitAnnotation(this)},get type(){return n}},{},e)),a=r.ANON_BLOCK,s=function(e){return $traceurRuntime.createClass((function AnonBlock(e,t){$traceurRuntime.superConstructor(AnonBlock).call(this,e),this.statements=t}),{transform:function(e){return e.transformAnonBlock(this)},visit:function(e){e.visitAnonBlock(this)},get type(){return a}},{},e)}(t),o=r.ARGUMENT_LIST,u=function(e){return $traceurRuntime.createClass((function ArgumentList(e,t){$traceurRuntime.superConstructor(ArgumentList).call(this,e),this.args=t}),{transform:function(e){return e.transformArgumentList(this)},visit:function(e){e.visitArgumentList(this)},get type(){return o}},{},e)}(t),c=r.ARRAY_COMPREHENSION,l=function(e){return $traceurRuntime.createClass((function ArrayComprehension(e,t,r){$traceurRuntime.superConstructor(ArrayComprehension).call(this,e),this.comprehensionList=t,this.expression=r}),{transform:function(e){return e.transformArrayComprehension(this)},visit:function(e){e.visitArrayComprehension(this)},get type(){return c}},{},e)}(t),m=r.ARRAY_LITERAL,p=function(e){return $traceurRuntime.createClass((function ArrayLiteral(e,t){$traceurRuntime.superConstructor(ArrayLiteral).call(this,e),this.elements=t}),{transform:function(e){return e.transformArrayLiteral(this)},visit:function(e){e.visitArrayLiteral(this)},get type(){return m}},{},e)}(t),f=r.ARRAY_PATTERN,h=function(e){return $traceurRuntime.createClass((function ArrayPattern(e,t){$traceurRuntime.superConstructor(ArrayPattern).call(this,e),this.elements=t}),{transform:function(e){return e.transformArrayPattern(this)},visit:function(e){e.visitArrayPattern(this)},get type(){return f}},{},e)}(t),d=r.ARRAY_TYPE,g=function(e){return $traceurRuntime.createClass((function ArrayType(e,t){$traceurRuntime.superConstructor(ArrayType).call(this,e),this.elementType=t}),{transform:function(e){return e.transformArrayType(this)},visit:function(e){e.visitArrayType(this)},get type(){return d}},{},e)}(t),T=r.ARROW_FUNCTION,y=function(e){return $traceurRuntime.createClass((function ArrowFunction(e,t,r,n){$traceurRuntime.superConstructor(ArrowFunction).call(this,e),this.functionKind=t,this.parameterList=r,this.body=n}),{transform:function(e){return e.transformArrowFunction(this)},visit:function(e){e.visitArrowFunction(this)},get type(){return T}},{},e)}(t),R=r.ASSIGNMENT_ELEMENT,S=function(e){return $traceurRuntime.createClass((function AssignmentElement(e,t,r){$traceurRuntime.superConstructor(AssignmentElement).call(this,e),this.assignment=t,this.initializer=r}),{transform:function(e){return e.transformAssignmentElement(this)},visit:function(e){e.visitAssignmentElement(this)},get type(){return R}},{},e)}(t),_=r.AWAIT_EXPRESSION,v=function(e){return $traceurRuntime.createClass((function AwaitExpression(e,t){$traceurRuntime.superConstructor(AwaitExpression).call(this,e),this.expression=t}),{transform:function(e){return e.transformAwaitExpression(this)},visit:function(e){e.visitAwaitExpression(this)},get type(){return _}},{},e)}(t),E=r.BINARY_EXPRESSION,M=function(e){return $traceurRuntime.createClass((function BinaryExpression(e,t,r,n){$traceurRuntime.superConstructor(BinaryExpression).call(this,e),this.left=t,this.operator=r,this.right=n}),{transform:function(e){return e.transformBinaryExpression(this)},visit:function(e){e.visitBinaryExpression(this)},get type(){return E}},{},e)}(t),A=r.BINDING_ELEMENT,x=function(e){return $traceurRuntime.createClass((function BindingElement(e,t,r){$traceurRuntime.superConstructor(BindingElement).call(this,e),this.binding=t,this.initializer=r}),{transform:function(e){return e.transformBindingElement(this)},visit:function(e){e.visitBindingElement(this)},get type(){return A}},{},e)}(t),$=r.BINDING_IDENTIFIER,C=function(e){return $traceurRuntime.createClass((function BindingIdentifier(e,t){$traceurRuntime.superConstructor(BindingIdentifier).call(this,e),this.identifierToken=t}),{transform:function(e){return e.transformBindingIdentifier(this)},visit:function(e){e.visitBindingIdentifier(this)},get type(){return $}},{},e)}(t),N=r.BLOCK,P=function(e){return $traceurRuntime.createClass((function Block(e,t){$traceurRuntime.superConstructor(Block).call(this,e),this.statements=t}),{transform:function(e){return e.transformBlock(this)},visit:function(e){e.visitBlock(this)},get type(){return N}},{},e)}(t),b=r.BREAK_STATEMENT,w=function(e){return $traceurRuntime.createClass((function BreakStatement(e,t){$traceurRuntime.superConstructor(BreakStatement).call(this,e),this.name=t}),{transform:function(e){return e.transformBreakStatement(this)},visit:function(e){e.visitBreakStatement(this)},get type(){return b}},{},e)}(t),j=r.CALL_EXPRESSION,L=function(e){return $traceurRuntime.createClass((function CallExpression(e,t,r){$traceurRuntime.superConstructor(CallExpression).call(this,e),this.operand=t,this.args=r}),{transform:function(e){return e.transformCallExpression(this)},visit:function(e){e.visitCallExpression(this)},get type(){return j}},{},e)}(t),I=r.CALL_SIGNATURE,O=function(e){return $traceurRuntime.createClass((function CallSignature(e,t,r,n){$traceurRuntime.superConstructor(CallSignature).call(this,e),this.typeParameters=t,this.parameterList=r,this.returnType=n}),{transform:function(e){return e.transformCallSignature(this)},visit:function(e){e.visitCallSignature(this)},get type(){return I}},{},e)}(t),F=r.CASE_CLAUSE,k=function(e){return $traceurRuntime.createClass((function CaseClause(e,t,r){$traceurRuntime.superConstructor(CaseClause).call(this,e),this.expression=t,this.statements=r}),{transform:function(e){return e.transformCaseClause(this)},visit:function(e){e.visitCaseClause(this)},get type(){return F}},{},e)}(t),D=r.CATCH,B=function(e){return $traceurRuntime.createClass((function Catch(e,t,r){$traceurRuntime.superConstructor(Catch).call(this,e),this.binding=t,this.catchBody=r}),{transform:function(e){return e.transformCatch(this)},visit:function(e){e.visitCatch(this)},get type(){return D}},{},e)}(t),z=r.CLASS_DECLARATION,V=function(e){return $traceurRuntime.createClass((function ClassDeclaration(e,t,r,n,i,a){$traceurRuntime.superConstructor(ClassDeclaration).call(this,e),this.name=t,this.superClass=r,this.elements=n,this.annotations=i,this.typeParameters=a}),{transform:function(e){return e.transformClassDeclaration(this)},visit:function(e){e.visitClassDeclaration(this)},get type(){return z}},{},e)}(t),G=r.CLASS_EXPRESSION,U=function(e){return $traceurRuntime.createClass((function ClassExpression(e,t,r,n,i,a){$traceurRuntime.superConstructor(ClassExpression).call(this,e),this.name=t,this.superClass=r,this.elements=n,this.annotations=i,this.typeParameters=a}),{transform:function(e){return e.transformClassExpression(this)},visit:function(e){e.visitClassExpression(this)},get type(){return G}},{},e)}(t),W=r.COMMA_EXPRESSION,H=function(e){return $traceurRuntime.createClass((function CommaExpression(e,t){$traceurRuntime.superConstructor(CommaExpression).call(this,e),this.expressions=t}),{transform:function(e){return e.transformCommaExpression(this)},visit:function(e){e.visitCommaExpression(this)},get type(){return W}},{},e)}(t),Y=r.COMPREHENSION_FOR,X=function(e){return $traceurRuntime.createClass((function ComprehensionFor(e,t,r){$traceurRuntime.superConstructor(ComprehensionFor).call(this,e),this.left=t,this.iterator=r}),{transform:function(e){return e.transformComprehensionFor(this)},visit:function(e){e.visitComprehensionFor(this)},get type(){return Y}},{},e)}(t),J=r.COMPREHENSION_IF,K=function(e){return $traceurRuntime.createClass((function ComprehensionIf(e,t){$traceurRuntime.superConstructor(ComprehensionIf).call(this,e),this.expression=t}),{transform:function(e){return e.transformComprehensionIf(this)},visit:function(e){e.visitComprehensionIf(this)},get type(){return J}},{},e)}(t),q=r.COMPUTED_PROPERTY_NAME,Q=function(e){return $traceurRuntime.createClass((function ComputedPropertyName(e,t){$traceurRuntime.superConstructor(ComputedPropertyName).call(this,e),this.expression=t}),{transform:function(e){return e.transformComputedPropertyName(this)},visit:function(e){e.visitComputedPropertyName(this)},get type(){return q}},{},e)}(t),Z=r.CONDITIONAL_EXPRESSION,ee=function(e){return $traceurRuntime.createClass((function ConditionalExpression(e,t,r,n){$traceurRuntime.superConstructor(ConditionalExpression).call(this,e),this.condition=t,this.left=r,this.right=n}),{transform:function(e){return e.transformConditionalExpression(this)},visit:function(e){e.visitConditionalExpression(this)},get type(){return Z}},{},e)}(t),te=r.CONSTRUCT_SIGNATURE,re=function(e){return $traceurRuntime.createClass((function ConstructSignature(e,t,r,n){$traceurRuntime.superConstructor(ConstructSignature).call(this,e),this.typeParameters=t,this.parameterList=r,this.returnType=n}),{transform:function(e){return e.transformConstructSignature(this)},visit:function(e){e.visitConstructSignature(this)},get type(){return te}},{},e)}(t),ne=r.CONSTRUCTOR_TYPE,ie=function(e){return $traceurRuntime.createClass((function ConstructorType(e,t,r,n){$traceurRuntime.superConstructor(ConstructorType).call(this,e),this.typeParameters=t,this.parameterList=r,this.returnType=n}),{transform:function(e){return e.transformConstructorType(this)},visit:function(e){e.visitConstructorType(this)},get type(){return ne}},{},e)}(t),ae=r.CONTINUE_STATEMENT,se=function(e){return $traceurRuntime.createClass((function ContinueStatement(e,t){$traceurRuntime.superConstructor(ContinueStatement).call(this,e),this.name=t}),{transform:function(e){return e.transformContinueStatement(this)},visit:function(e){e.visitContinueStatement(this)},get type(){return ae}},{},e)}(t),oe=r.COVER_FORMALS,ue=function(e){return $traceurRuntime.createClass((function CoverFormals(e,t){$traceurRuntime.superConstructor(CoverFormals).call(this,e),this.expressions=t}),{transform:function(e){return e.transformCoverFormals(this)},visit:function(e){e.visitCoverFormals(this)},get type(){return oe}},{},e)}(t),ce=r.COVER_INITIALIZED_NAME,le=function(e){return $traceurRuntime.createClass((function CoverInitializedName(e,t,r,n){$traceurRuntime.superConstructor(CoverInitializedName).call(this,e),this.name=t,this.equalToken=r,this.initializer=n}),{transform:function(e){return e.transformCoverInitializedName(this)},visit:function(e){e.visitCoverInitializedName(this)},get type(){return ce}},{},e)}(t),me=r.DEBUGGER_STATEMENT,pe=function(e){return $traceurRuntime.createClass((function DebuggerStatement(e){$traceurRuntime.superConstructor(DebuggerStatement).call(this,e)}),{transform:function(e){return e.transformDebuggerStatement(this)},visit:function(e){e.visitDebuggerStatement(this)},get type(){return me}},{},e)}(t),fe=r.DEFAULT_CLAUSE,he=function(e){return $traceurRuntime.createClass((function DefaultClause(e,t){$traceurRuntime.superConstructor(DefaultClause).call(this,e),this.statements=t}),{transform:function(e){return e.transformDefaultClause(this)},visit:function(e){e.visitDefaultClause(this)},get type(){return fe}},{},e)}(t),de=r.DO_WHILE_STATEMENT,ge=function(e){return $traceurRuntime.createClass((function DoWhileStatement(e,t,r){$traceurRuntime.superConstructor(DoWhileStatement).call(this,e),this.body=t,this.condition=r}),{transform:function(e){return e.transformDoWhileStatement(this)},visit:function(e){e.visitDoWhileStatement(this)},get type(){return de}},{},e)}(t),Te=r.EMPTY_STATEMENT,ye=function(e){return $traceurRuntime.createClass((function EmptyStatement(e){$traceurRuntime.superConstructor(EmptyStatement).call(this,e)}),{transform:function(e){return e.transformEmptyStatement(this)},visit:function(e){e.visitEmptyStatement(this)},get type(){return Te}},{},e)}(t),Re=r.EXPORT_DECLARATION,Se=function(e){return $traceurRuntime.createClass((function ExportDeclaration(e,t,r){$traceurRuntime.superConstructor(ExportDeclaration).call(this,e),this.declaration=t,this.annotations=r}),{transform:function(e){return e.transformExportDeclaration(this)},visit:function(e){e.visitExportDeclaration(this)},get type(){return Re}},{},e)}(t),_e=r.EXPORT_DEFAULT,ve=function(e){return $traceurRuntime.createClass((function ExportDefault(e,t){$traceurRuntime.superConstructor(ExportDefault).call(this,e),this.expression=t}),{transform:function(e){return e.transformExportDefault(this)},visit:function(e){e.visitExportDefault(this)},get type(){return _e}},{},e)}(t),Ee=r.EXPORT_SPECIFIER,Me=function(e){return $traceurRuntime.createClass((function ExportSpecifier(e,t,r){$traceurRuntime.superConstructor(ExportSpecifier).call(this,e),this.lhs=t,this.rhs=r}),{transform:function(e){return e.transformExportSpecifier(this)},visit:function(e){e.visitExportSpecifier(this)},get type(){return Ee}},{},e)}(t),Ae=r.EXPORT_SPECIFIER_SET,xe=function(e){return $traceurRuntime.createClass((function ExportSpecifierSet(e,t){$traceurRuntime.superConstructor(ExportSpecifierSet).call(this,e),this.specifiers=t}),{transform:function(e){return e.transformExportSpecifierSet(this)},visit:function(e){e.visitExportSpecifierSet(this)},get type(){return Ae}},{},e)}(t),$e=r.EXPORT_STAR,Ce=function(e){return $traceurRuntime.createClass((function ExportStar(e){$traceurRuntime.superConstructor(ExportStar).call(this,e)}),{transform:function(e){return e.transformExportStar(this)},visit:function(e){e.visitExportStar(this)},get type(){return $e}},{},e)}(t),Ne=r.EXPRESSION_STATEMENT,Pe=function(e){return $traceurRuntime.createClass((function ExpressionStatement(e,t){$traceurRuntime.superConstructor(ExpressionStatement).call(this,e),this.expression=t}),{transform:function(e){return e.transformExpressionStatement(this)},visit:function(e){e.visitExpressionStatement(this)},get type(){return Ne}},{},e)}(t),be=r.FINALLY,we=function(e){return $traceurRuntime.createClass((function Finally(e,t){$traceurRuntime.superConstructor(Finally).call(this,e),this.block=t}),{transform:function(e){return e.transformFinally(this)},visit:function(e){e.visitFinally(this)},get type(){return be}},{},e)}(t),je=r.FOR_IN_STATEMENT,Le=function(e){return $traceurRuntime.createClass((function ForInStatement(e,t,r,n){$traceurRuntime.superConstructor(ForInStatement).call(this,e),this.initializer=t,this.collection=r,this.body=n}),{transform:function(e){return e.transformForInStatement(this)},visit:function(e){e.visitForInStatement(this)},get type(){return je}},{},e)}(t),Ie=r.FOR_OF_STATEMENT,Oe=function(e){return $traceurRuntime.createClass((function ForOfStatement(e,t,r,n){$traceurRuntime.superConstructor(ForOfStatement).call(this,e),this.initializer=t,this.collection=r,this.body=n}),{transform:function(e){return e.transformForOfStatement(this)},visit:function(e){e.visitForOfStatement(this)},get type(){return Ie}},{},e)}(t),Fe=r.FOR_ON_STATEMENT,ke=function(e){return $traceurRuntime.createClass((function ForOnStatement(e,t,r,n){$traceurRuntime.superConstructor(ForOnStatement).call(this,e),this.initializer=t,this.observable=r,this.body=n}),{transform:function(e){return e.transformForOnStatement(this)},visit:function(e){e.visitForOnStatement(this)},get type(){return Fe}},{},e)}(t),De=r.FOR_STATEMENT,Be=function(e){return $traceurRuntime.createClass((function ForStatement(e,t,r,n,i){$traceurRuntime.superConstructor(ForStatement).call(this,e),this.initializer=t,this.condition=r,this.increment=n,this.body=i}),{transform:function(e){return e.transformForStatement(this)},visit:function(e){e.visitForStatement(this)},get type(){return De}},{},e)}(t),ze=r.FORMAL_PARAMETER,Ve=function(e){return $traceurRuntime.createClass((function FormalParameter(e,t,r,n){$traceurRuntime.superConstructor(FormalParameter).call(this,e),this.parameter=t,this.typeAnnotation=r,this.annotations=n}),{transform:function(e){return e.transformFormalParameter(this)},visit:function(e){e.visitFormalParameter(this)},get type(){return ze}},{},e)}(t),Ge=r.FORMAL_PARAMETER_LIST,Ue=function(e){return $traceurRuntime.createClass((function FormalParameterList(e,t){$traceurRuntime.superConstructor(FormalParameterList).call(this,e),this.parameters=t}),{transform:function(e){return e.transformFormalParameterList(this)},visit:function(e){e.visitFormalParameterList(this)},get type(){return Ge}},{},e)}(t),We=r.FORWARD_DEFAULT_EXPORT,He=function(e){return $traceurRuntime.createClass((function ForwardDefaultExport(e,t){$traceurRuntime.superConstructor(ForwardDefaultExport).call(this,e),this.name=t}),{transform:function(e){return e.transformForwardDefaultExport(this)},visit:function(e){e.visitForwardDefaultExport(this)},get type(){return We}},{},e)}(t),Ye=r.FUNCTION_BODY,Xe=function(e){return $traceurRuntime.createClass((function FunctionBody(e,t){$traceurRuntime.superConstructor(FunctionBody).call(this,e),this.statements=t}),{transform:function(e){return e.transformFunctionBody(this)},visit:function(e){e.visitFunctionBody(this)},get type(){return Ye}},{},e)}(t),Je=r.FUNCTION_DECLARATION,Ke=function(e){return $traceurRuntime.createClass((function FunctionDeclaration(e,t,r,n,i,a,s){$traceurRuntime.superConstructor(FunctionDeclaration).call(this,e),this.name=t,this.functionKind=r,this.parameterList=n,this.typeAnnotation=i,this.annotations=a,this.body=s}),{transform:function(e){return e.transformFunctionDeclaration(this)},visit:function(e){e.visitFunctionDeclaration(this)},get type(){return Je}},{},e)}(t),qe=r.FUNCTION_EXPRESSION,Qe=function(e){return $traceurRuntime.createClass((function FunctionExpression(e,t,r,n,i,a,s){$traceurRuntime.superConstructor(FunctionExpression).call(this,e),this.name=t,this.functionKind=r,this.parameterList=n,this.typeAnnotation=i,this.annotations=a,this.body=s}),{transform:function(e){return e.transformFunctionExpression(this)},visit:function(e){e.visitFunctionExpression(this)},get type(){return qe}},{},e)}(t),Ze=r.FUNCTION_TYPE,et=function(e){return $traceurRuntime.createClass((function FunctionType(e,t,r,n){$traceurRuntime.superConstructor(FunctionType).call(this,e),this.typeParameters=t,this.parameterList=r,this.returnType=n}),{transform:function(e){return e.transformFunctionType(this)},visit:function(e){e.visitFunctionType(this)},get type(){return Ze}},{},e)}(t),tt=r.GENERATOR_COMPREHENSION,rt=function(e){return $traceurRuntime.createClass((function GeneratorComprehension(e,t,r){$traceurRuntime.superConstructor(GeneratorComprehension).call(this,e),this.comprehensionList=t,this.expression=r}),{transform:function(e){return e.transformGeneratorComprehension(this)},visit:function(e){e.visitGeneratorComprehension(this)},get type(){return tt}},{},e)}(t),nt=r.GET_ACCESSOR,it=function(e){return $traceurRuntime.createClass((function GetAccessor(e,t,r,n,i,a){$traceurRuntime.superConstructor(GetAccessor).call(this,e),this.isStatic=t,this.name=r,this.typeAnnotation=n,this.annotations=i,this.body=a}),{transform:function(e){return e.transformGetAccessor(this)},visit:function(e){e.visitGetAccessor(this)},get type(){return nt}},{},e)}(t),at=r.IDENTIFIER_EXPRESSION,st=function(e){return $traceurRuntime.createClass((function IdentifierExpression(e,t){$traceurRuntime.superConstructor(IdentifierExpression).call(this,e),this.identifierToken=t}),{transform:function(e){return e.transformIdentifierExpression(this)},visit:function(e){e.visitIdentifierExpression(this)},get type(){return at}},{},e)}(t),ot=r.IF_STATEMENT,ut=function(e){return $traceurRuntime.createClass((function IfStatement(e,t,r,n){$traceurRuntime.superConstructor(IfStatement).call(this,e),this.condition=t,this.ifClause=r,this.elseClause=n}),{transform:function(e){return e.transformIfStatement(this)},visit:function(e){e.visitIfStatement(this)},get type(){return ot}},{},e)}(t),ct=r.IMPORTED_BINDING,lt=function(e){return $traceurRuntime.createClass((function ImportedBinding(e,t){$traceurRuntime.superConstructor(ImportedBinding).call(this,e),this.binding=t}),{transform:function(e){return e.transformImportedBinding(this)},visit:function(e){e.visitImportedBinding(this)},get type(){return ct}},{},e)}(t),mt=r.IMPORT_CLAUSE_PAIR,pt=function(e){return $traceurRuntime.createClass((function ImportClausePair(e,t,r){$traceurRuntime.superConstructor(ImportClausePair).call(this,e),this.first=t,this.second=r}),{transform:function(e){return e.transformImportClausePair(this)},visit:function(e){e.visitImportClausePair(this)},get type(){return mt}},{},e)}(t),ft=r.IMPORT_DECLARATION,ht=function(e){return $traceurRuntime.createClass((function ImportDeclaration(e,t,r){$traceurRuntime.superConstructor(ImportDeclaration).call(this,e),this.importClause=t,this.moduleSpecifier=r}),{transform:function(e){return e.transformImportDeclaration(this)},visit:function(e){e.visitImportDeclaration(this)},get type(){return ft}},{},e)}(t),dt=r.IMPORT_SPECIFIER,gt=function(e){return $traceurRuntime.createClass((function ImportSpecifier(e,t,r){$traceurRuntime.superConstructor(ImportSpecifier).call(this,e),this.binding=t,this.name=r}),{transform:function(e){return e.transformImportSpecifier(this)},visit:function(e){e.visitImportSpecifier(this)},get type(){return dt}},{},e)}(t),Tt=r.IMPORT_SPECIFIER_SET,yt=function(e){return $traceurRuntime.createClass((function ImportSpecifierSet(e,t){$traceurRuntime.superConstructor(ImportSpecifierSet).call(this,e),this.specifiers=t}),{transform:function(e){return e.transformImportSpecifierSet(this)},visit:function(e){e.visitImportSpecifierSet(this)},get type(){return Tt}},{},e)}(t),Rt=r.IMPORT_TYPE_CLAUSE,St=function(e){return $traceurRuntime.createClass((function ImportTypeClause(e,t){$traceurRuntime.superConstructor(ImportTypeClause).call(this,e),this.clause=t}),{transform:function(e){return e.transformImportTypeClause(this)},visit:function(e){e.visitImportTypeClause(this)},get type(){return Rt}},{},e)}(t),_t=r.INDEX_SIGNATURE,vt=function(e){return $traceurRuntime.createClass((function IndexSignature(e,t,r,n){$traceurRuntime.superConstructor(IndexSignature).call(this,e),this.name=t,this.indexType=r,this.typeAnnotation=n}),{transform:function(e){return e.transformIndexSignature(this)},visit:function(e){e.visitIndexSignature(this)},get type(){return _t}},{},e)}(t),Et=r.INTERFACE_DECLARATION,Mt=function(e){return $traceurRuntime.createClass((function InterfaceDeclaration(e,t,r,n,i){$traceurRuntime.superConstructor(InterfaceDeclaration).call(this,e),this.name=t,this.typeParameters=r,this.extendsClause=n,this.objectType=i}),{transform:function(e){return e.transformInterfaceDeclaration(this)},visit:function(e){e.visitInterfaceDeclaration(this)},get type(){return Et}},{},e)}(t),At=r.JSX_ATTRIBUTE,xt=function(e){return $traceurRuntime.createClass((function JsxAttribute(e,t,r){$traceurRuntime.superConstructor(JsxAttribute).call(this,e),this.name=t,this.value=r}),{transform:function(e){return e.transformJsxAttribute(this)},visit:function(e){e.visitJsxAttribute(this)},get type(){return At}},{},e)}(t),$t=r.JSX_ELEMENT,Ct=function(e){return $traceurRuntime.createClass((function JsxElement(e,t,r,n){$traceurRuntime.superConstructor(JsxElement).call(this,e),this.name=t,this.attributes=r,this.children=n}),{transform:function(e){return e.transformJsxElement(this)},visit:function(e){e.visitJsxElement(this)},get type(){return $t}},{},e)}(t),Nt=r.JSX_ELEMENT_NAME,Pt=function(e){return $traceurRuntime.createClass((function JsxElementName(e,t){$traceurRuntime.superConstructor(JsxElementName).call(this,e),this.names=t}),{transform:function(e){return e.transformJsxElementName(this)},visit:function(e){e.visitJsxElementName(this)},get type(){return Nt}},{},e)}(t),bt=r.JSX_PLACEHOLDER,wt=function(e){return $traceurRuntime.createClass((function JsxPlaceholder(e,t){$traceurRuntime.superConstructor(JsxPlaceholder).call(this,e),this.expression=t}),{transform:function(e){return e.transformJsxPlaceholder(this)},visit:function(e){e.visitJsxPlaceholder(this)},get type(){return bt}},{},e)}(t),jt=r.JSX_SPREAD_ATTRIBUTE,Lt=function(e){return $traceurRuntime.createClass((function JsxSpreadAttribute(e,t){$traceurRuntime.superConstructor(JsxSpreadAttribute).call(this,e),this.expression=t}),{transform:function(e){return e.transformJsxSpreadAttribute(this)},visit:function(e){e.visitJsxSpreadAttribute(this)},get type(){return jt}},{},e)}(t),It=r.JSX_TEXT,Ot=function(e){return $traceurRuntime.createClass((function JsxText(e,t){$traceurRuntime.superConstructor(JsxText).call(this,e),this.value=t}),{transform:function(e){return e.transformJsxText(this)},visit:function(e){e.visitJsxText(this)},get type(){return It}},{},e)}(t),Ft=r.LABELLED_STATEMENT,kt=function(e){return $traceurRuntime.createClass((function LabelledStatement(e,t,r){$traceurRuntime.superConstructor(LabelledStatement).call(this,e),this.name=t,this.statement=r}),{transform:function(e){return e.transformLabelledStatement(this)},visit:function(e){e.visitLabelledStatement(this)},get type(){return Ft}},{},e)}(t),Dt=r.LITERAL_EXPRESSION,Bt=function(e){return $traceurRuntime.createClass((function LiteralExpression(e,t){$traceurRuntime.superConstructor(LiteralExpression).call(this,e),this.literalToken=t}),{transform:function(e){return e.transformLiteralExpression(this)},visit:function(e){e.visitLiteralExpression(this)},get type(){return Dt}},{},e)}(t),zt=r.LITERAL_PROPERTY_NAME,Vt=function(e){return $traceurRuntime.createClass((function LiteralPropertyName(e,t){$traceurRuntime.superConstructor(LiteralPropertyName).call(this,e),this.literalToken=t}),{transform:function(e){return e.transformLiteralPropertyName(this)},visit:function(e){e.visitLiteralPropertyName(this)},get type(){return zt}},{},e)}(t),Gt=r.MEMBER_EXPRESSION,Ut=function(e){return $traceurRuntime.createClass((function MemberExpression(e,t,r){$traceurRuntime.superConstructor(MemberExpression).call(this,e),this.operand=t,this.memberName=r}),{transform:function(e){return e.transformMemberExpression(this)},visit:function(e){e.visitMemberExpression(this)},get type(){return Gt}},{},e)}(t),Wt=r.MEMBER_LOOKUP_EXPRESSION,Ht=function(e){return $traceurRuntime.createClass((function MemberLookupExpression(e,t,r){$traceurRuntime.superConstructor(MemberLookupExpression).call(this,e),this.operand=t,this.memberExpression=r}),{transform:function(e){return e.transformMemberLookupExpression(this)},visit:function(e){e.visitMemberLookupExpression(this)},get type(){return Wt}},{},e)}(t),Yt=r.METHOD,Xt=function(e){return $traceurRuntime.createClass((function Method(e,t,r,n,i,a,s,o,u){$traceurRuntime.superConstructor(Method).call(this,e),this.isStatic=t,this.functionKind=r,this.name=n,this.parameterList=i,this.typeAnnotation=a,this.annotations=s,this.body=o,this.debugName=u}),{transform:function(e){return e.transformMethod(this)},visit:function(e){e.visitMethod(this)},get type(){return Yt}},{},e)}(t),Jt=r.METHOD_SIGNATURE,Kt=function(e){return $traceurRuntime.createClass((function MethodSignature(e,t,r,n){$traceurRuntime.superConstructor(MethodSignature).call(this,e),this.name=t,this.optional=r,this.callSignature=n}),{transform:function(e){return e.transformMethodSignature(this)},visit:function(e){e.visitMethodSignature(this)},get type(){return Jt}},{},e)}(t),qt=r.MODULE,Qt=function(e){return $traceurRuntime.createClass((function Module(e,t,r){$traceurRuntime.superConstructor(Module).call(this,e),this.scriptItemList=t,this.moduleName=r}),{transform:function(e){return e.transformModule(this)},visit:function(e){e.visitModule(this)},get type(){return qt}},{},e)}(t),Zt=r.MODULE_SPECIFIER,er=function(e){return $traceurRuntime.createClass((function ModuleSpecifier(e,t){$traceurRuntime.superConstructor(ModuleSpecifier).call(this,e),this.token=t}),{transform:function(e){return e.transformModuleSpecifier(this)},visit:function(e){e.visitModuleSpecifier(this)},get type(){return Zt}},{},e)}(t),tr=r.NAME_SPACE_EXPORT,rr=function(e){return $traceurRuntime.createClass((function NameSpaceExport(e,t){$traceurRuntime.superConstructor(NameSpaceExport).call(this,e),this.name=t}),{transform:function(e){return e.transformNameSpaceExport(this)},visit:function(e){e.visitNameSpaceExport(this)},get type(){return tr}},{},e)}(t),nr=r.NAME_SPACE_IMPORT,ir=function(e){return $traceurRuntime.createClass((function NameSpaceImport(e,t){$traceurRuntime.superConstructor(NameSpaceImport).call(this,e),this.binding=t}),{transform:function(e){return e.transformNameSpaceImport(this)},visit:function(e){e.visitNameSpaceImport(this)},get type(){return nr}},{},e)}(t),ar=r.NAMED_EXPORT,sr=function(e){return $traceurRuntime.createClass((function NamedExport(e,t,r){$traceurRuntime.superConstructor(NamedExport).call(this,e),this.exportClause=t,this.moduleSpecifier=r}),{transform:function(e){return e.transformNamedExport(this)},visit:function(e){e.visitNamedExport(this)},get type(){return ar}},{},e)}(t),or=r.NEW_EXPRESSION,ur=function(e){return $traceurRuntime.createClass((function NewExpression(e,t,r){$traceurRuntime.superConstructor(NewExpression).call(this,e),this.operand=t,this.args=r}),{transform:function(e){return e.transformNewExpression(this)},visit:function(e){e.visitNewExpression(this)},get type(){return or}},{},e)}(t),cr=r.OBJECT_LITERAL,lr=function(e){return $traceurRuntime.createClass((function ObjectLiteral(e,t){$traceurRuntime.superConstructor(ObjectLiteral).call(this,e),this.propertyNameAndValues=t}),{transform:function(e){return e.transformObjectLiteral(this)},visit:function(e){e.visitObjectLiteral(this)},get type(){return cr}},{},e)}(t),mr=r.OBJECT_PATTERN,pr=function(e){return $traceurRuntime.createClass((function ObjectPattern(e,t){$traceurRuntime.superConstructor(ObjectPattern).call(this,e),this.fields=t}),{transform:function(e){return e.transformObjectPattern(this)},visit:function(e){e.visitObjectPattern(this)},get type(){return mr}},{},e)}(t),fr=r.OBJECT_PATTERN_FIELD,hr=function(e){return $traceurRuntime.createClass((function ObjectPatternField(e,t,r){$traceurRuntime.superConstructor(ObjectPatternField).call(this,e),this.name=t,this.element=r}),{transform:function(e){return e.transformObjectPatternField(this)},visit:function(e){e.visitObjectPatternField(this)},get type(){return fr}},{},e)}(t),dr=r.OBJECT_TYPE,gr=function(e){return $traceurRuntime.createClass((function ObjectType(e,t){$traceurRuntime.superConstructor(ObjectType).call(this,e),this.typeMembers=t}),{transform:function(e){return e.transformObjectType(this)},visit:function(e){e.visitObjectType(this)},get type(){return dr}},{},e)}(t),Tr=r.PAREN_EXPRESSION,yr=function(e){return $traceurRuntime.createClass((function ParenExpression(e,t){$traceurRuntime.superConstructor(ParenExpression).call(this,e),this.expression=t}),{transform:function(e){return e.transformParenExpression(this)},visit:function(e){e.visitParenExpression(this)},get type(){return Tr}},{},e)}(t),Rr=r.POSTFIX_EXPRESSION,Sr=function(e){return $traceurRuntime.createClass((function PostfixExpression(e,t,r){$traceurRuntime.superConstructor(PostfixExpression).call(this,e),this.operand=t,this.operator=r}),{transform:function(e){return e.transformPostfixExpression(this)},visit:function(e){e.visitPostfixExpression(this)},get type(){return Rr}},{},e)}(t),_r=r.PREDEFINED_TYPE,vr=function(e){return $traceurRuntime.createClass((function PredefinedType(e,t){$traceurRuntime.superConstructor(PredefinedType).call(this,e),this.typeToken=t}),{transform:function(e){return e.transformPredefinedType(this)},visit:function(e){e.visitPredefinedType(this)},get type(){return _r}},{},e)}(t),Er=r.SCRIPT,Mr=function(e){return $traceurRuntime.createClass((function Script(e,t,r){$traceurRuntime.superConstructor(Script).call(this,e),this.scriptItemList=t,this.moduleName=r}),{transform:function(e){return e.transformScript(this)},visit:function(e){e.visitScript(this)},get type(){return Er}},{},e)}(t),Ar=r.PROPERTY_NAME_ASSIGNMENT,xr=function(e){return $traceurRuntime.createClass((function PropertyNameAssignment(e,t,r){$traceurRuntime.superConstructor(PropertyNameAssignment).call(this,e),this.name=t,this.value=r}),{transform:function(e){return e.transformPropertyNameAssignment(this)},visit:function(e){e.visitPropertyNameAssignment(this)},get type(){return Ar}},{},e)}(t),$r=r.PROPERTY_NAME_SHORTHAND,Cr=function(e){return $traceurRuntime.createClass((function PropertyNameShorthand(e,t){$traceurRuntime.superConstructor(PropertyNameShorthand).call(this,e),this.name=t}),{transform:function(e){return e.transformPropertyNameShorthand(this)},visit:function(e){e.visitPropertyNameShorthand(this)},get type(){return $r}},{},e)}(t),Nr=r.PROPERTY_VARIABLE_DECLARATION,Pr=function(e){return $traceurRuntime.createClass((function PropertyVariableDeclaration(e,t,r,n,i,a){$traceurRuntime.superConstructor(PropertyVariableDeclaration).call(this,e),this.isStatic=t,this.name=r,this.typeAnnotation=n,this.annotations=i,this.initializer=a}),{transform:function(e){return e.transformPropertyVariableDeclaration(this)},visit:function(e){e.visitPropertyVariableDeclaration(this)},get type(){return Nr}},{},e)}(t),br=r.PROPERTY_SIGNATURE,wr=function(e){return $traceurRuntime.createClass((function PropertySignature(e,t,r,n){$traceurRuntime.superConstructor(PropertySignature).call(this,e),this.name=t,this.optional=r,this.typeAnnotation=n}),{transform:function(e){return e.transformPropertySignature(this)},visit:function(e){e.visitPropertySignature(this)},get type(){return br}},{},e)}(t),jr=r.REST_PARAMETER,Lr=function(e){return $traceurRuntime.createClass((function RestParameter(e,t){$traceurRuntime.superConstructor(RestParameter).call(this,e),this.identifier=t}),{transform:function(e){return e.transformRestParameter(this)},visit:function(e){e.visitRestParameter(this)},get type(){return jr}},{},e)}(t),Ir=r.RETURN_STATEMENT,Or=function(e){return $traceurRuntime.createClass((function ReturnStatement(e,t){$traceurRuntime.superConstructor(ReturnStatement).call(this,e),this.expression=t}),{transform:function(e){return e.transformReturnStatement(this)},visit:function(e){e.visitReturnStatement(this)},get type(){return Ir}},{},e)}(t),Fr=r.SET_ACCESSOR,kr=function(e){return $traceurRuntime.createClass((function SetAccessor(e,t,r,n,i,a){$traceurRuntime.superConstructor(SetAccessor).call(this,e),this.isStatic=t,this.name=r,this.parameterList=n,this.annotations=i,this.body=a}),{transform:function(e){return e.transformSetAccessor(this)},visit:function(e){e.visitSetAccessor(this)},get type(){return Fr}},{},e)}(t),Dr=r.SPREAD_EXPRESSION,Br=function(e){return $traceurRuntime.createClass((function SpreadExpression(e,t){$traceurRuntime.superConstructor(SpreadExpression).call(this,e),this.expression=t}),{transform:function(e){return e.transformSpreadExpression(this)},visit:function(e){e.visitSpreadExpression(this)},get type(){return Dr}},{},e)}(t),zr=r.SPREAD_PATTERN_ELEMENT,Vr=function(e){return $traceurRuntime.createClass((function SpreadPatternElement(e,t){$traceurRuntime.superConstructor(SpreadPatternElement).call(this,e),this.lvalue=t}),{transform:function(e){return e.transformSpreadPatternElement(this)},visit:function(e){e.visitSpreadPatternElement(this)},get type(){return zr}},{},e)}(t),Gr=r.SUPER_EXPRESSION,Ur=function(e){return $traceurRuntime.createClass((function SuperExpression(e){$traceurRuntime.superConstructor(SuperExpression).call(this,e)}),{transform:function(e){return e.transformSuperExpression(this)},visit:function(e){e.visitSuperExpression(this)},get type(){return Gr}},{},e)}(t),Wr=r.SWITCH_STATEMENT,Hr=function(e){return $traceurRuntime.createClass((function SwitchStatement(e,t,r){$traceurRuntime.superConstructor(SwitchStatement).call(this,e),this.expression=t,this.caseClauses=r}),{transform:function(e){return e.transformSwitchStatement(this)},visit:function(e){e.visitSwitchStatement(this)},get type(){return Wr}},{},e)}(t),Yr=r.SYNTAX_ERROR_TREE,Xr=function(e){return $traceurRuntime.createClass((function SyntaxErrorTree(e,t,r){$traceurRuntime.superConstructor(SyntaxErrorTree).call(this,e),this.nextToken=t,this.message=r}),{transform:function(e){return e.transformSyntaxErrorTree(this)},visit:function(e){e.visitSyntaxErrorTree(this)},get type(){return Yr}},{},e)}(t),Jr=r.TEMPLATE_LITERAL_EXPRESSION,Kr=function(e){return $traceurRuntime.createClass((function TemplateLiteralExpression(e,t,r){$traceurRuntime.superConstructor(TemplateLiteralExpression).call(this,e),this.operand=t,this.elements=r}),{transform:function(e){return e.transformTemplateLiteralExpression(this)},visit:function(e){e.visitTemplateLiteralExpression(this)},get type(){return Jr}},{},e)}(t),qr=r.TEMPLATE_LITERAL_PORTION,Qr=function(e){return $traceurRuntime.createClass((function TemplateLiteralPortion(e,t){$traceurRuntime.superConstructor(TemplateLiteralPortion).call(this,e),this.value=t}),{transform:function(e){return e.transformTemplateLiteralPortion(this)},visit:function(e){e.visitTemplateLiteralPortion(this)},get type(){return qr}},{},e)}(t),Zr=r.TEMPLATE_SUBSTITUTION,en=function(e){return $traceurRuntime.createClass((function TemplateSubstitution(e,t){$traceurRuntime.superConstructor(TemplateSubstitution).call(this,e),this.expression=t}),{transform:function(e){return e.transformTemplateSubstitution(this)},visit:function(e){e.visitTemplateSubstitution(this)},get type(){return Zr}},{},e)}(t),tn=r.THIS_EXPRESSION,rn=function(e){return $traceurRuntime.createClass((function ThisExpression(e){$traceurRuntime.superConstructor(ThisExpression).call(this,e)}),{transform:function(e){return e.transformThisExpression(this)},visit:function(e){e.visitThisExpression(this)},get type(){return tn}},{},e)}(t),nn=r.THROW_STATEMENT,an=function(e){return $traceurRuntime.createClass((function ThrowStatement(e,t){$traceurRuntime.superConstructor(ThrowStatement).call(this,e),this.value=t}),{transform:function(e){return e.transformThrowStatement(this)},visit:function(e){e.visitThrowStatement(this)},get type(){return nn}},{},e)}(t),sn=r.TRY_STATEMENT,on=function(e){return $traceurRuntime.createClass((function TryStatement(e,t,r,n){$traceurRuntime.superConstructor(TryStatement).call(this,e),this.body=t,this.catchBlock=r,this.finallyBlock=n}),{transform:function(e){return e.transformTryStatement(this)},visit:function(e){e.visitTryStatement(this)},get type(){return sn}},{},e)}(t),un=r.TYPE_ALIAS_DECLARATION,cn=function(e){return $traceurRuntime.createClass((function TypeAliasDeclaration(e,t,r){$traceurRuntime.superConstructor(TypeAliasDeclaration).call(this,e),this.name=t,this.value=r}),{transform:function(e){return e.transformTypeAliasDeclaration(this)},visit:function(e){e.visitTypeAliasDeclaration(this)},get type(){return un}},{},e)}(t),ln=r.TYPE_ARGUMENTS,mn=function(e){return $traceurRuntime.createClass((function TypeArguments(e,t){$traceurRuntime.superConstructor(TypeArguments).call(this,e),this.args=t}),{transform:function(e){return e.transformTypeArguments(this)},visit:function(e){e.visitTypeArguments(this)},get type(){return ln}},{},e)}(t),pn=r.TYPE_NAME,fn=function(e){return $traceurRuntime.createClass((function TypeName(e,t,r){$traceurRuntime.superConstructor(TypeName).call(this,e),this.moduleName=t,this.name=r}),{transform:function(e){return e.transformTypeName(this)},visit:function(e){e.visitTypeName(this)},get type(){return pn}},{},e)}(t),hn=r.TYPE_PARAMETER,dn=function(e){return $traceurRuntime.createClass((function TypeParameter(e,t,r){$traceurRuntime.superConstructor(TypeParameter).call(this,e),this.identifierToken=t,this.extendsType=r}),{transform:function(e){return e.transformTypeParameter(this)},visit:function(e){e.visitTypeParameter(this)},get type(){return hn}},{},e)}(t),gn=r.TYPE_PARAMETERS,Tn=function(e){return $traceurRuntime.createClass((function TypeParameters(e,t){$traceurRuntime.superConstructor(TypeParameters).call(this,e),this.parameters=t}),{transform:function(e){return e.transformTypeParameters(this)},visit:function(e){e.visitTypeParameters(this)},get type(){return gn}},{},e)}(t),yn=r.TYPE_REFERENCE,Rn=function(e){return $traceurRuntime.createClass((function TypeReference(e,t,r){$traceurRuntime.superConstructor(TypeReference).call(this,e),this.typeName=t,this.args=r}),{transform:function(e){return e.transformTypeReference(this)},visit:function(e){e.visitTypeReference(this)},get type(){return yn}},{},e)}(t),Sn=r.UNARY_EXPRESSION,_n=function(e){return $traceurRuntime.createClass((function UnaryExpression(e,t,r){$traceurRuntime.superConstructor(UnaryExpression).call(this,e),this.operator=t,this.operand=r}),{transform:function(e){return e.transformUnaryExpression(this)},visit:function(e){e.visitUnaryExpression(this)},get type(){return Sn}},{},e)}(t),vn=r.UNION_TYPE,En=function(e){return $traceurRuntime.createClass((function UnionType(e,t){$traceurRuntime.superConstructor(UnionType).call(this,e),this.types=t}),{transform:function(e){return e.transformUnionType(this)},visit:function(e){e.visitUnionType(this)},get type(){return vn}},{},e)}(t),Mn=r.VARIABLE_DECLARATION,An=function(e){return $traceurRuntime.createClass((function VariableDeclaration(e,t,r,n){$traceurRuntime.superConstructor(VariableDeclaration).call(this,e),this.lvalue=t,this.typeAnnotation=r,this.initializer=n}),{transform:function(e){return e.transformVariableDeclaration(this)},visit:function(e){e.visitVariableDeclaration(this)},get type(){return Mn}},{},e)}(t),xn=r.VARIABLE_DECLARATION_LIST,$n=function(e){return $traceurRuntime.createClass((function VariableDeclarationList(e,t,r){$traceurRuntime.superConstructor(VariableDeclarationList).call(this,e),this.declarationType=t,this.declarations=r}),{transform:function(e){return e.transformVariableDeclarationList(this)},visit:function(e){e.visitVariableDeclarationList(this)},get type(){return xn}},{},e)}(t),Cn=r.VARIABLE_STATEMENT,Nn=function(e){return $traceurRuntime.createClass((function VariableStatement(e,t){$traceurRuntime.superConstructor(VariableStatement).call(this,e),this.declarations=t}),{transform:function(e){return e.transformVariableStatement(this)},visit:function(e){e.visitVariableStatement(this)},get type(){return Cn}},{},e)}(t),Pn=r.WHILE_STATEMENT,bn=function(e){return $traceurRuntime.createClass((function WhileStatement(e,t,r){$traceurRuntime.superConstructor(WhileStatement).call(this,e),this.condition=t,this.body=r}),{transform:function(e){return e.transformWhileStatement(this)},visit:function(e){e.visitWhileStatement(this)},get type(){return Pn}},{},e)}(t),wn=r.WITH_STATEMENT,jn=function(e){return $traceurRuntime.createClass((function WithStatement(e,t,r){$traceurRuntime.superConstructor(WithStatement).call(this,e),this.expression=t,this.body=r}),{transform:function(e){return e.transformWithStatement(this)},visit:function(e){e.visitWithStatement(this)},get type(){return wn}},{},e)}(t),Ln=r.YIELD_EXPRESSION,In=function(e){return $traceurRuntime.createClass((function YieldExpression(e,t,r){$traceurRuntime.superConstructor(YieldExpression).call(this,e),this.expression=t,this.isYieldFor=r}),{transform:function(e){return e.transformYieldExpression(this)},visit:function(e){e.visitYieldExpression(this)},get type(){return Ln}},{},e)}(t);return{get Annotation(){return i},get AnonBlock(){return s},get ArgumentList(){return u},get ArrayComprehension(){return l},get ArrayLiteral(){return p},get ArrayPattern(){return h},get ArrayType(){return g},get ArrowFunction(){return y},get AssignmentElement(){return S},get AwaitExpression(){return v},get BinaryExpression(){return M},get BindingElement(){return x},get BindingIdentifier(){return C},get Block(){return P},get BreakStatement(){return w},get CallExpression(){return L},get CallSignature(){return O},get CaseClause(){return k},get Catch(){return B},get ClassDeclaration(){return V},get ClassExpression(){return U},get CommaExpression(){return H},get ComprehensionFor(){return X},get ComprehensionIf(){return K},get ComputedPropertyName(){return Q},get ConditionalExpression(){return ee},get ConstructSignature(){return re},get ConstructorType(){return ie},get ContinueStatement(){return se},get CoverFormals(){return ue},get CoverInitializedName(){return le},get DebuggerStatement(){return pe},get DefaultClause(){return he},get DoWhileStatement(){return ge},get EmptyStatement(){return ye},get ExportDeclaration(){return Se},get ExportDefault(){return ve},get ExportSpecifier(){return Me},get ExportSpecifierSet(){return xe},get ExportStar(){return Ce},get ExpressionStatement(){return Pe},get Finally(){return we},get ForInStatement(){return Le},get ForOfStatement(){return Oe},get ForOnStatement(){return ke},get ForStatement(){return Be},get FormalParameter(){return Ve},get FormalParameterList(){return Ue},get ForwardDefaultExport(){return He},get FunctionBody(){return Xe},get FunctionDeclaration(){return Ke},get FunctionExpression(){return Qe},get FunctionType(){return et},get GeneratorComprehension(){return rt},get GetAccessor(){return it},get IdentifierExpression(){return st},get IfStatement(){return ut},get ImportedBinding(){return lt},get ImportClausePair(){return pt},get ImportDeclaration(){return ht},get ImportSpecifier(){return gt},get ImportSpecifierSet(){return yt},get ImportTypeClause(){return St},get IndexSignature(){return vt},get InterfaceDeclaration(){return Mt},get JsxAttribute(){return xt},get JsxElement(){return Ct},get JsxElementName(){return Pt},get JsxPlaceholder(){return wt},get JsxSpreadAttribute(){return Lt},get JsxText(){return Ot},get LabelledStatement(){return kt},get LiteralExpression(){return Bt},get LiteralPropertyName(){return Vt},get MemberExpression(){return Ut},get MemberLookupExpression(){return Ht},get Method(){return Xt},get MethodSignature(){return Kt},get Module(){return Qt},get ModuleSpecifier(){return er},get NameSpaceExport(){return rr},get NameSpaceImport(){return ir},get NamedExport(){return sr},get NewExpression(){return ur},get ObjectLiteral(){return lr},get ObjectPattern(){return pr},get ObjectPatternField(){return hr},get ObjectType(){return gr},get ParenExpression(){return yr},get PostfixExpression(){return Sr},get PredefinedType(){return vr},get Script(){return Mr},get PropertyNameAssignment(){return xr},get PropertyNameShorthand(){return Cr},get PropertyVariableDeclaration(){return Pr},get PropertySignature(){return wr},get RestParameter(){return Lr},get ReturnStatement(){return Or},get SetAccessor(){return kr},get SpreadExpression(){return Br},get SpreadPatternElement(){return Vr},get SuperExpression(){return Ur},get SwitchStatement(){return Hr},get SyntaxErrorTree(){return Xr},get TemplateLiteralExpression(){return Kr},get TemplateLiteralPortion(){return Qr},get TemplateSubstitution(){return en},get ThisExpression(){return rn},get ThrowStatement(){return an},get TryStatement(){return on},get TypeAliasDeclaration(){return cn},get TypeArguments(){return mn},get TypeName(){return fn},get TypeParameter(){return dn},get TypeParameters(){return Tn},get TypeReference(){return Rn},get UnaryExpression(){return _n},get UnionType(){return En},get VariableDeclaration(){return An},get VariableDeclarationList(){return $n},get VariableStatement(){return Nn},get WhileStatement(){return bn},get WithStatement(){return jn},get YieldExpression(){return In}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/ParseTreeTransformer.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTrees.js","traceur@0.0.111/src/codegeneration/ParseTreeTransformer.js")),t=e.Annotation,r=e.AnonBlock,n=e.ArgumentList,i=e.ArrayComprehension,a=e.ArrayLiteral,s=e.ArrayPattern,o=e.ArrayType,u=e.ArrowFunction,c=e.AssignmentElement,l=e.AwaitExpression,m=e.BinaryExpression,p=e.BindingElement,f=(e.BindingIdentifier,e.Block),h=(e.BreakStatement,e.CallExpression),d=e.CallSignature,g=e.CaseClause,T=e.Catch,y=e.ClassDeclaration,R=e.ClassExpression,S=e.CommaExpression,_=e.ComprehensionFor,v=e.ComprehensionIf,E=e.ComputedPropertyName,M=e.ConditionalExpression,A=e.ConstructSignature,x=e.ConstructorType,$=(e.ContinueStatement,e.CoverFormals),C=e.CoverInitializedName,N=(e.DebuggerStatement,e.DefaultClause),P=e.DoWhileStatement,b=(e.EmptyStatement,e.ExportDeclaration),w=e.ExportDefault,j=(e.ExportSpecifier,e.ExportSpecifierSet),L=(e.ExportStar,e.ExpressionStatement),I=e.Finally,O=e.ForInStatement,F=e.ForOfStatement,k=e.ForOnStatement,D=e.ForStatement,B=e.FormalParameter,z=e.FormalParameterList,V=(e.ForwardDefaultExport,e.FunctionBody),G=e.FunctionDeclaration,U=e.FunctionExpression,W=e.FunctionType,H=e.GeneratorComprehension,Y=e.GetAccessor,X=(e.IdentifierExpression,e.IfStatement),J=e.ImportedBinding,K=e.ImportClausePair,q=e.ImportDeclaration,Q=e.ImportSpecifier,Z=e.ImportSpecifierSet,ee=e.ImportTypeClause,te=e.IndexSignature,re=e.InterfaceDeclaration,ne=e.JsxAttribute,ie=e.JsxElement,ae=(e.JsxElementName,e.JsxPlaceholder),se=e.JsxSpreadAttribute,oe=(e.JsxText,e.LabelledStatement),ue=(e.LiteralExpression,e.LiteralPropertyName,e.MemberExpression),ce=e.MemberLookupExpression,le=e.Method,me=e.MethodSignature,pe=e.Module,fe=(e.ModuleSpecifier,e.NameSpaceExport,e.NameSpaceImport),he=e.NamedExport,de=e.NewExpression,ge=e.ObjectLiteral,Te=e.ObjectPattern,ye=e.ObjectPatternField,Re=e.ObjectType,Se=e.ParenExpression,_e=e.PostfixExpression,ve=(e.PredefinedType,e.Script),Ee=e.PropertyNameAssignment,Me=(e.PropertyNameShorthand,e.PropertyVariableDeclaration),Ae=e.PropertySignature,xe=e.RestParameter,$e=e.ReturnStatement,Ce=e.SetAccessor,Ne=e.SpreadExpression,Pe=e.SpreadPatternElement,be=(e.SuperExpression,e.SwitchStatement),we=(e.SyntaxErrorTree,e.TemplateLiteralExpression),je=(e.TemplateLiteralPortion,e.TemplateSubstitution),Le=(e.ThisExpression,e.ThrowStatement),Ie=e.TryStatement,Oe=e.TypeAliasDeclaration,Fe=e.TypeArguments,ke=e.TypeName,De=e.TypeParameter,Be=e.TypeParameters,ze=e.TypeReference,Ve=e.UnaryExpression,Ge=e.UnionType,Ue=e.VariableDeclaration,We=e.VariableDeclarationList,He=e.VariableStatement,Ye=e.WhileStatement,Xe=e.WithStatement,Je=e.YieldExpression,Ke=$traceurRuntime.createClass((function Ke(){}),{transformAny:function(e){return null===e?null:e.transform(this)},transformList:function(e){for(var t,n=null,i=0;i<e.length;i++){var a=e[i],s=this.transformAny(a);null==n&&a==s||(null===n&&(n=e.slice(0,i)),s instanceof r?(t=n).push.apply(t,$traceurRuntime.spread(s.statements)):n.push(s))}return n||e},transformStateMachine:function(e){throw Error("State machines should not live outside of the GeneratorTransformer.")},transformToBlockOrStatement:function(e){var t=this.transformAny(e);return t instanceof r?new f(t.location,t.statements):t},transformAnnotation:function(e){var r=this.transformAny(e.name),n=this.transformAny(e.args);return r===e.name&&n===e.args?e:new t(e.location,r,n)},transformAnonBlock:function(e){var t=this.transformList(e.statements);return t===e.statements?e:new r(e.location,t)},transformArgumentList:function(e){var t=this.transformList(e.args);return t===e.args?e:new n(e.location,t)},transformArrayComprehension:function(e){var t=this.transformList(e.comprehensionList),r=this.transformAny(e.expression);return t===e.comprehensionList&&r===e.expression?e:new i(e.location,t,r)},transformArrayLiteral:function(e){var t=this.transformList(e.elements);return t===e.elements?e:new a(e.location,t)},transformArrayPattern:function(e){var t=this.transformList(e.elements);return t===e.elements?e:new s(e.location,t)},transformArrayType:function(e){var t=this.transformAny(e.elementType);return t===e.elementType?e:new o(e.location,t)},transformArrowFunction:function(e){var t=this.transformAny(e.parameterList),r=this.transformAny(e.body);return t===e.parameterList&&r===e.body?e:new u(e.location,e.functionKind,t,r)},transformAssignmentElement:function(e){var t=this.transformAny(e.assignment),r=this.transformAny(e.initializer);return t===e.assignment&&r===e.initializer?e:new c(e.location,t,r)},transformAwaitExpression:function(e){var t=this.transformAny(e.expression);return t===e.expression?e:new l(e.location,t)},transformBinaryExpression:function(e){var t=this.transformAny(e.left),r=this.transformAny(e.right);return t===e.left&&r===e.right?e:new m(e.location,t,e.operator,r)},transformBindingElement:function(e){var t=this.transformAny(e.binding),r=this.transformAny(e.initializer);return t===e.binding&&r===e.initializer?e:new p(e.location,t,r)},transformBindingIdentifier:function(e){return e},transformBlock:function(e){var t=this.transformList(e.statements);return t===e.statements?e:new f(e.location,t)},transformBreakStatement:function(e){return e},transformCallExpression:function(e){var t=this.transformAny(e.operand),r=this.transformAny(e.args);return t===e.operand&&r===e.args?e:new h(e.location,t,r)},transformCallSignature:function(e){var t=this.transformAny(e.typeParameters),r=this.transformAny(e.parameterList),n=this.transformAny(e.returnType);return t===e.typeParameters&&r===e.parameterList&&n===e.returnType?e:new d(e.location,t,r,n)},transformCaseClause:function(e){var t=this.transformAny(e.expression),r=this.transformList(e.statements);return t===e.expression&&r===e.statements?e:new g(e.location,t,r)},transformCatch:function(e){var t=this.transformAny(e.binding),r=this.transformAny(e.catchBody);return t===e.binding&&r===e.catchBody?e:new T(e.location,t,r)},transformClassDeclaration:function(e){var t=this.transformAny(e.name),r=this.transformAny(e.superClass),n=this.transformList(e.elements),i=this.transformList(e.annotations),a=this.transformAny(e.typeParameters);return t===e.name&&r===e.superClass&&n===e.elements&&i===e.annotations&&a===e.typeParameters?e:new y(e.location,t,r,n,i,a)},transformClassExpression:function(e){var t=this.transformAny(e.name),r=this.transformAny(e.superClass),n=this.transformList(e.elements),i=this.transformList(e.annotations),a=this.transformAny(e.typeParameters);return t===e.name&&r===e.superClass&&n===e.elements&&i===e.annotations&&a===e.typeParameters?e:new R(e.location,t,r,n,i,a)},transformCommaExpression:function(e){var t=this.transformList(e.expressions);return t===e.expressions?e:new S(e.location,t)},transformComprehensionFor:function(e){var t=this.transformAny(e.left),r=this.transformAny(e.iterator);return t===e.left&&r===e.iterator?e:new _(e.location,t,r)},transformComprehensionIf:function(e){var t=this.transformAny(e.expression);return t===e.expression?e:new v(e.location,t)},transformComputedPropertyName:function(e){var t=this.transformAny(e.expression);return t===e.expression?e:new E(e.location,t)},transformConditionalExpression:function(e){var t=this.transformAny(e.condition),r=this.transformAny(e.left),n=this.transformAny(e.right);return t===e.condition&&r===e.left&&n===e.right?e:new M(e.location,t,r,n)},transformConstructSignature:function(e){var t=this.transformAny(e.typeParameters),r=this.transformAny(e.parameterList),n=this.transformAny(e.returnType);return t===e.typeParameters&&r===e.parameterList&&n===e.returnType?e:new A(e.location,t,r,n)},transformConstructorType:function(e){var t=this.transformAny(e.typeParameters),r=this.transformAny(e.parameterList),n=this.transformAny(e.returnType);return t===e.typeParameters&&r===e.parameterList&&n===e.returnType?e:new x(e.location,t,r,n)},transformContinueStatement:function(e){return e},transformCoverFormals:function(e){var t=this.transformList(e.expressions);return t===e.expressions?e:new $(e.location,t)},transformCoverInitializedName:function(e){var t=this.transformAny(e.initializer);return t===e.initializer?e:new C(e.location,e.name,e.equalToken,t)},transformDebuggerStatement:function(e){return e},transformDefaultClause:function(e){var t=this.transformList(e.statements);return t===e.statements?e:new N(e.location,t)},transformDoWhileStatement:function(e){var t=this.transformToBlockOrStatement(e.body),r=this.transformAny(e.condition);return t===e.body&&r===e.condition?e:new P(e.location,t,r)},transformEmptyStatement:function(e){return e},transformExportDeclaration:function(e){var t=this.transformAny(e.declaration),r=this.transformList(e.annotations);return t===e.declaration&&r===e.annotations?e:new b(e.location,t,r)},transformExportDefault:function(e){var t=this.transformAny(e.expression);return t===e.expression?e:new w(e.location,t)},transformExportSpecifier:function(e){return e},transformExportSpecifierSet:function(e){var t=this.transformList(e.specifiers);return t===e.specifiers?e:new j(e.location,t)},transformExportStar:function(e){return e},transformExpressionStatement:function(e){var t=this.transformAny(e.expression);return t===e.expression?e:new L(e.location,t)},transformFinally:function(e){var t=this.transformAny(e.block);return t===e.block?e:new I(e.location,t)},transformForInStatement:function(e){var t=this.transformAny(e.initializer),r=this.transformAny(e.collection),n=this.transformToBlockOrStatement(e.body);return t===e.initializer&&r===e.collection&&n===e.body?e:new O(e.location,t,r,n)},transformForOfStatement:function(e){var t=this.transformAny(e.initializer),r=this.transformAny(e.collection),n=this.transformToBlockOrStatement(e.body);return t===e.initializer&&r===e.collection&&n===e.body?e:new F(e.location,t,r,n)},transformForOnStatement:function(e){var t=this.transformAny(e.initializer),r=this.transformAny(e.observable),n=this.transformToBlockOrStatement(e.body);return t===e.initializer&&r===e.observable&&n===e.body?e:new k(e.location,t,r,n)},transformForStatement:function(e){var t=this.transformAny(e.initializer),r=this.transformAny(e.condition),n=this.transformAny(e.increment),i=this.transformToBlockOrStatement(e.body);return t===e.initializer&&r===e.condition&&n===e.increment&&i===e.body?e:new D(e.location,t,r,n,i)},transformFormalParameter:function(e){var t=this.transformAny(e.parameter),r=this.transformAny(e.typeAnnotation),n=this.transformList(e.annotations);return t===e.parameter&&r===e.typeAnnotation&&n===e.annotations?e:new B(e.location,t,r,n)},transformFormalParameterList:function(e){var t=this.transformList(e.parameters);return t===e.parameters?e:new z(e.location,t)},transformForwardDefaultExport:function(e){return e},transformFunctionBody:function(e){var t=this.transformList(e.statements);return t===e.statements?e:new V(e.location,t)},transformFunctionDeclaration:function(e){var t=this.transformAny(e.name),r=this.transformAny(e.parameterList),n=this.transformAny(e.typeAnnotation),i=this.transformList(e.annotations),a=this.transformAny(e.body);return t===e.name&&r===e.parameterList&&n===e.typeAnnotation&&i===e.annotations&&a===e.body?e:new G(e.location,t,e.functionKind,r,n,i,a)},transformFunctionExpression:function(e){var t=this.transformAny(e.name),r=this.transformAny(e.parameterList),n=this.transformAny(e.typeAnnotation),i=this.transformList(e.annotations),a=this.transformAny(e.body);return t===e.name&&r===e.parameterList&&n===e.typeAnnotation&&i===e.annotations&&a===e.body?e:new U(e.location,t,e.functionKind,r,n,i,a)},transformFunctionType:function(e){var t=this.transformAny(e.typeParameters),r=this.transformAny(e.parameterList),n=this.transformAny(e.returnType);return t===e.typeParameters&&r===e.parameterList&&n===e.returnType?e:new W(e.location,t,r,n)},transformGeneratorComprehension:function(e){var t=this.transformList(e.comprehensionList),r=this.transformAny(e.expression);return t===e.comprehensionList&&r===e.expression?e:new H(e.location,t,r)},transformGetAccessor:function(e){var t=this.transformAny(e.name),r=this.transformAny(e.typeAnnotation),n=this.transformList(e.annotations),i=this.transformAny(e.body);return t===e.name&&r===e.typeAnnotation&&n===e.annotations&&i===e.body?e:new Y(e.location,e.isStatic,t,r,n,i)},transformIdentifierExpression:function(e){return e},transformIfStatement:function(e){var t=this.transformAny(e.condition),r=this.transformToBlockOrStatement(e.ifClause),n=this.transformToBlockOrStatement(e.elseClause);return t===e.condition&&r===e.ifClause&&n===e.elseClause?e:new X(e.location,t,r,n)},transformImportedBinding:function(e){var t=this.transformAny(e.binding);return t===e.binding?e:new J(e.location,t)},transformImportClausePair:function(e){var t=this.transformAny(e.first),r=this.transformAny(e.second);return t===e.first&&r===e.second?e:new K(e.location,t,r)},transformImportDeclaration:function(e){var t=this.transformAny(e.importClause),r=this.transformAny(e.moduleSpecifier);return t===e.importClause&&r===e.moduleSpecifier?e:new q(e.location,t,r)},transformImportSpecifier:function(e){var t=this.transformAny(e.binding);return t===e.binding?e:new Q(e.location,t,e.name)},transformImportSpecifierSet:function(e){var t=this.transformList(e.specifiers);return t===e.specifiers?e:new Z(e.location,t)},transformImportTypeClause:function(e){var t=this.transformAny(e.clause);return t===e.clause?e:new ee(e.location,t)},transformIndexSignature:function(e){var t=this.transformAny(e.indexType),r=this.transformAny(e.typeAnnotation);return t===e.indexType&&r===e.typeAnnotation?e:new te(e.location,e.name,t,r)},transformInterfaceDeclaration:function(e){var t=this.transformAny(e.typeParameters),r=this.transformAny(e.objectType);return t===e.typeParameters&&r===e.objectType?e:new re(e.location,e.name,t,e.extendsClause,r)},transformJsxAttribute:function(e){var t=this.transformAny(e.value);return t===e.value?e:new ne(e.location,e.name,t)},transformJsxElement:function(e){var t=this.transformAny(e.name),r=this.transformList(e.attributes),n=this.transformList(e.children);return t===e.name&&r===e.attributes&&n===e.children?e:new ie(e.location,t,r,n)},transformJsxElementName:function(e){return e},transformJsxPlaceholder:function(e){var t=this.transformAny(e.expression);return t===e.expression?e:new ae(e.location,t)},transformJsxSpreadAttribute:function(e){var t=this.transformAny(e.expression);return t===e.expression?e:new se(e.location,t)},transformJsxText:function(e){return e},transformLabelledStatement:function(e){var t=this.transformAny(e.statement);return t===e.statement?e:new oe(e.location,e.name,t)},transformLiteralExpression:function(e){return e},transformLiteralPropertyName:function(e){return e},transformMemberExpression:function(e){var t=this.transformAny(e.operand);return t===e.operand?e:new ue(e.location,t,e.memberName)},transformMemberLookupExpression:function(e){var t=this.transformAny(e.operand),r=this.transformAny(e.memberExpression);return t===e.operand&&r===e.memberExpression?e:new ce(e.location,t,r)},transformMethod:function(e){var t=this.transformAny(e.name),r=this.transformAny(e.parameterList),n=this.transformAny(e.typeAnnotation),i=this.transformList(e.annotations),a=this.transformAny(e.body),s=this.transformAny(e.debugName);return t===e.name&&r===e.parameterList&&n===e.typeAnnotation&&i===e.annotations&&a===e.body&&s===e.debugName?e:new le(e.location,e.isStatic,e.functionKind,t,r,n,i,a,s)},transformMethodSignature:function(e){var t=this.transformAny(e.name),r=this.transformAny(e.callSignature);return t===e.name&&r===e.callSignature?e:new me(e.location,t,e.optional,r)},transformModule:function(e){var t=this.transformList(e.scriptItemList);return t===e.scriptItemList?e:new pe(e.location,t,e.moduleName)},transformModuleSpecifier:function(e){return e},transformNameSpaceExport:function(e){return e},transformNameSpaceImport:function(e){var t=this.transformAny(e.binding);return t===e.binding?e:new fe(e.location,t)},transformNamedExport:function(e){var t=this.transformAny(e.exportClause),r=this.transformAny(e.moduleSpecifier);return t===e.exportClause&&r===e.moduleSpecifier?e:new he(e.location,t,r)},transformNewExpression:function(e){var t=this.transformAny(e.operand),r=this.transformAny(e.args);return t===e.operand&&r===e.args?e:new de(e.location,t,r)},transformObjectLiteral:function(e){var t=this.transformList(e.propertyNameAndValues);return t===e.propertyNameAndValues?e:new ge(e.location,t)},transformObjectPattern:function(e){var t=this.transformList(e.fields);return t===e.fields?e:new Te(e.location,t)},transformObjectPatternField:function(e){var t=this.transformAny(e.name),r=this.transformAny(e.element);return t===e.name&&r===e.element?e:new ye(e.location,t,r)},transformObjectType:function(e){var t=this.transformList(e.typeMembers);return t===e.typeMembers?e:new Re(e.location,t)},transformParenExpression:function(e){var t=this.transformAny(e.expression);return t===e.expression?e:new Se(e.location,t)},transformPostfixExpression:function(e){var t=this.transformAny(e.operand);return t===e.operand?e:new _e(e.location,t,e.operator)},transformPredefinedType:function(e){return e},transformScript:function(e){var t=this.transformList(e.scriptItemList);return t===e.scriptItemList?e:new ve(e.location,t,e.moduleName)},transformPropertyNameAssignment:function(e){var t=this.transformAny(e.name),r=this.transformAny(e.value);return t===e.name&&r===e.value?e:new Ee(e.location,t,r)},transformPropertyNameShorthand:function(e){return e},transformPropertyVariableDeclaration:function(e){var t=this.transformAny(e.name),r=this.transformAny(e.typeAnnotation),n=this.transformList(e.annotations),i=this.transformAny(e.initializer);return t===e.name&&r===e.typeAnnotation&&n===e.annotations&&i===e.initializer?e:new Me(e.location,e.isStatic,t,r,n,i)},transformPropertySignature:function(e){var t=this.transformAny(e.name),r=this.transformAny(e.typeAnnotation);return t===e.name&&r===e.typeAnnotation?e:new Ae(e.location,t,e.optional,r)},transformRestParameter:function(e){var t=this.transformAny(e.identifier);return t===e.identifier?e:new xe(e.location,t)},transformReturnStatement:function(e){var t=this.transformAny(e.expression);return t===e.expression?e:new $e(e.location,t)},transformSetAccessor:function(e){var t=this.transformAny(e.name),r=this.transformAny(e.parameterList),n=this.transformList(e.annotations),i=this.transformAny(e.body);return t===e.name&&r===e.parameterList&&n===e.annotations&&i===e.body?e:new Ce(e.location,e.isStatic,t,r,n,i)},transformSpreadExpression:function(e){var t=this.transformAny(e.expression);return t===e.expression?e:new Ne(e.location,t)},transformSpreadPatternElement:function(e){var t=this.transformAny(e.lvalue);return t===e.lvalue?e:new Pe(e.location,t)},transformSuperExpression:function(e){return e},transformSwitchStatement:function(e){var t=this.transformAny(e.expression),r=this.transformList(e.caseClauses);return t===e.expression&&r===e.caseClauses?e:new be(e.location,t,r)},transformSyntaxErrorTree:function(e){return e},transformTemplateLiteralExpression:function(e){var t=this.transformAny(e.operand),r=this.transformList(e.elements);return t===e.operand&&r===e.elements?e:new we(e.location,t,r)},transformTemplateLiteralPortion:function(e){return e},transformTemplateSubstitution:function(e){var t=this.transformAny(e.expression);return t===e.expression?e:new je(e.location,t)},transformThisExpression:function(e){return e},transformThrowStatement:function(e){var t=this.transformAny(e.value);return t===e.value?e:new Le(e.location,t)},transformTryStatement:function(e){var t=this.transformAny(e.body),r=this.transformAny(e.catchBlock),n=this.transformAny(e.finallyBlock);return t===e.body&&r===e.catchBlock&&n===e.finallyBlock?e:new Ie(e.location,t,r,n)},transformTypeAliasDeclaration:function(e){var t=this.transformAny(e.value);return t===e.value?e:new Oe(e.location,e.name,t)},transformTypeArguments:function(e){var t=this.transformList(e.args);return t===e.args?e:new Fe(e.location,t)},transformTypeName:function(e){var t=this.transformAny(e.moduleName);return t===e.moduleName?e:new ke(e.location,t,e.name)},transformTypeParameter:function(e){var t=this.transformAny(e.extendsType);return t===e.extendsType?e:new De(e.location,e.identifierToken,t)},transformTypeParameters:function(e){var t=this.transformList(e.parameters);return t===e.parameters?e:new Be(e.location,t)},transformTypeReference:function(e){var t=this.transformAny(e.typeName),r=this.transformAny(e.args);return t===e.typeName&&r===e.args?e:new ze(e.location,t,r)},transformUnaryExpression:function(e){var t=this.transformAny(e.operand);return t===e.operand?e:new Ve(e.location,e.operator,t)},transformUnionType:function(e){var t=this.transformList(e.types);return t===e.types?e:new Ge(e.location,t)},transformVariableDeclaration:function(e){var t=this.transformAny(e.lvalue),r=this.transformAny(e.typeAnnotation),n=this.transformAny(e.initializer);return t===e.lvalue&&r===e.typeAnnotation&&n===e.initializer?e:new Ue(e.location,t,r,n)},transformVariableDeclarationList:function(e){var t=this.transformList(e.declarations);return t===e.declarations?e:new We(e.location,e.declarationType,t)},transformVariableStatement:function(e){var t=this.transformAny(e.declarations);return t===e.declarations?e:new He(e.location,t)},transformWhileStatement:function(e){var t=this.transformAny(e.condition),r=this.transformToBlockOrStatement(e.body);return t===e.condition&&r===e.body?e:new Ye(e.location,t,r)},transformWithStatement:function(e){var t=this.transformAny(e.expression),r=this.transformToBlockOrStatement(e.body);return t===e.expression&&r===e.body?e:new Xe(e.location,t,r)},transformYieldExpression:function(e){var t=this.transformAny(e.expression);return t===e.expression?e:new Je(e.location,t,e.isYieldFor)}},{});return{get ParseTreeTransformer(){return Ke}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/module/AttachModuleNameTransformer.js",[],(function(){"use strict";var e,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../ParseTreeTransformer.js","traceur@0.0.111/src/codegeneration/module/AttachModuleNameTransformer.js")).ParseTreeTransformer,r=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../../syntax/trees/ParseTrees.js","traceur@0.0.111/src/codegeneration/module/AttachModuleNameTransformer.js")),n=r.Module,i=r.Script,a=(e=t,$traceurRuntime.createClass((function AttachModuleNameTransformer(e){$traceurRuntime.superConstructor(AttachModuleNameTransformer).call(this),this.moduleName_=e}),{transformModule:function(e){return new n(e.location,e.scriptItemList,this.moduleName_)},transformScript:function(e){return new i(e.location,e.scriptItemList,this.moduleName_)}},{},e));return{get AttachModuleNameTransformer(){return a}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/syntax/IdentifierToken.js",[],(function(){"use strict";var e,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./Token.js","traceur@0.0.111/src/syntax/IdentifierToken.js")).Token,r=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./TokenType.js","traceur@0.0.111/src/syntax/IdentifierToken.js")).IDENTIFIER,n=(e=t,$traceurRuntime.createClass((function IdentifierToken(e,t){$traceurRuntime.superConstructor(IdentifierToken).call(this,r,e),this.value=t}),{toString:function(){return this.value}},{},e));return{get IdentifierToken(){return n}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/syntax/LiteralToken.js",[],(function(){"use strict";var e,t,r=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./Token.js","traceur@0.0.111/src/syntax/LiteralToken.js")).Token,n=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./TokenType.js","traceur@0.0.111/src/syntax/LiteralToken.js")),i=n.NULL,a=n.NUMBER,s=n.STRING,o=$traceurRuntime.createClass((function o(e){this.value=e,this.index=0}),(e={},Object.defineProperty(e,Symbol.iterator,{value:function(){return this},configurable:!0,enumerable:!0,writable:!0}),Object.defineProperty(e,"next",{value:function(){return++this.index>=this.value.length-1?{value:void 0,done:!0}:{value:this.value[this.index],done:!1}},configurable:!0,enumerable:!0,writable:!0}),Object.defineProperty(e,"parse",{value:function(){if(-1===this.value.indexOf("\\"))return this.value.slice(1,-1);var e="",t=!0,r=!1,n=void 0;try{for(var i=void 0,a=this[Symbol.iterator]();!(t=(i=a.next()).done);t=!0){var s=i.value;e+="\\"===s?this.parseEscapeSequence():s}}catch(e){r=!0,n=e}finally{try{t||null==a.return||a.return()}finally{if(r)throw n}}return e},configurable:!0,enumerable:!0,writable:!0}),Object.defineProperty(e,"parseEscapeSequence",{value:function(){var e=this.next().value;switch(e){case"\n":case"\r":case"\u2028":case"\u2029":return"";case"0":return"\0";case"b":return"\b";case"f":return"\f";case"n":return"\n";case"r":return"\r";case"t":return"\t";case"v":return"\v";case"x":return String.fromCharCode(parseInt(this.next().value+this.next().value,16));case"u":var t=this.next().value;if("{"===t){for(var r="";"}"!==(t=this.next().value);)r+=t;var n=parseInt(r,16);if(n<=65535)return String.fromCharCode(n);var i=Math.floor((n-65536)/1024)+55296,a=(n-65536)%1024+56320;return String.fromCharCode(i,a)}return String.fromCharCode(parseInt(t+this.next().value+this.next().value+this.next().value,16));default:if(Number(e)<8)throw new Error("Octal literals are not supported");return e}},configurable:!0,enumerable:!0,writable:!0}),e),{}),u=(t=r,$traceurRuntime.createClass((function LiteralToken(e,t,r){$traceurRuntime.superConstructor(LiteralToken).call(this,e,r),this.value=t}),{toString:function(){return this.value},get processedValue(){switch(this.type){case i:return null;case a:var e=this.value;if(48===e.charCodeAt(0))switch(e.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 s:return new o(this.value).parse();default:throw new Error("Not implemented")}}},{},t));return{get LiteralToken(){return u}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/util/assert.js",[],(function(){"use strict";function assert(e){if(!e&&$traceurRuntime.options.debug)throw Error("Assertion failed")}return{get assert(){return assert}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/ParseTreeFactory.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/IdentifierToken.js","traceur@0.0.111/src/codegeneration/ParseTreeFactory.js")).IdentifierToken,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/LiteralToken.js","traceur@0.0.111/src/codegeneration/ParseTreeFactory.js")).LiteralToken,r=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTree.js","traceur@0.0.111/src/codegeneration/ParseTreeFactory.js")),n=r.ParseTree,i=r.ParseTreeType,a=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/PredefinedName.js","traceur@0.0.111/src/codegeneration/ParseTreeFactory.js")),s=a.CALL,o=a.CREATE,u=a.DEFINE_PROPERTY,c=a.FREEZE,l=a.OBJECT,m=a.UNDEFINED,p=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/Token.js","traceur@0.0.111/src/codegeneration/ParseTreeFactory.js")).Token,f=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/TokenType.js","traceur@0.0.111/src/codegeneration/ParseTreeFactory.js")),h=f.EQUAL,d=f.FALSE,g=f.NULL,T=f.NUMBER,y=f.STRING,R=f.TRUE,S=f.VOID,_=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../util/assert.js","traceur@0.0.111/src/codegeneration/ParseTreeFactory.js")).assert,v=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTrees.js","traceur@0.0.111/src/codegeneration/ParseTreeFactory.js")),E=v.ArgumentList,M=v.ArrayLiteral,A=v.BindingElement,x=v.BinaryExpression,$=v.BindingIdentifier,C=v.Block,N=v.BreakStatement,P=v.CallExpression,b=v.CaseClause,w=v.Catch,j=v.ClassDeclaration,L=v.CommaExpression,I=v.ConditionalExpression,O=v.ContinueStatement,F=v.DefaultClause,k=v.DoWhileStatement,D=v.EmptyStatement,B=v.ExpressionStatement,z=v.Finally,V=v.ForInStatement,G=v.ForOfStatement,U=v.ForStatement,W=v.FormalParameter,H=v.FormalParameterList,Y=v.FunctionBody,X=v.FunctionExpression,J=v.IdentifierExpression,K=v.IfStatement,q=v.ImportedBinding,Q=v.LiteralExpression,Z=v.LiteralPropertyName,ee=v.MemberExpression,te=v.MemberLookupExpression,re=v.NewExpression,ne=v.ObjectLiteral,ie=v.ParenExpression,ae=v.PostfixExpression,se=v.Script,oe=v.PropertyNameAssignment,ue=v.RestParameter,ce=v.ReturnStatement,le=(v.SpreadExpression,v.SwitchStatement),me=v.ThisExpression,pe=v.ThrowStatement,fe=v.TryStatement,he=v.UnaryExpression,de=v.VariableDeclaration,ge=v.VariableDeclarationList,Te=v.VariableStatement,ye=v.WhileStatement,Re=v.WithStatement;Array.prototype.slice.call.bind(Array.prototype.slice),Array.prototype.map.call.bind(Array.prototype.map);function createOperatorToken(e){return new p(e,null)}function createIdentifierToken(t){return new e(null,t)}function createStringLiteralToken(e){return new t(y,JSON.stringify(e),null)}function createBooleanLiteralToken(e){return new p(e?R:d,null)}function createNullLiteralToken(){return new t(g,"null",null)}function createNumberLiteralToken(e){return new t(T,String(e),null)}function createEmptyParameterList(){return new H(null,[])}function createFormalParameter(e){var t=createBindingIdentifier(e);return new W(null,new A(null,t,null),null,[])}function createArgumentList(e){return new E(null,e)}function createEmptyArgumentList(){return createArgumentList([])}function createArrayLiteral(e){return new M(null,e)}function createEmptyArrayLiteral(){return createArrayLiteral([])}function createAssignmentExpression(e,t){return new x(null,e,createOperatorToken(h),t)}function createBinaryExpression(e,t,r){return new x(null,e,t,r)}function createBindingIdentifier(e){if("string"==typeof e)e=createIdentifierToken(e);else{if(e.type===i.BINDING_IDENTIFIER)return e;if(e.type===i.IDENTIFIER_EXPRESSION)return new $(e.location,e.identifierToken)}return new $(null,e)}function createImportedBinding(e){var t=createBindingIdentifier(e);return new q(t.location,t)}function createEmptyStatement(){return new D(null)}function createEmptyBlock(){return createBlock([])}function createBlock(e){return new C(null,e)}function createFunctionBody(e){return new Y(null,e)}function createScopedExpression(e,t){return _("FUNCTION_BODY"===e.type),function createCallCall(e,t){return createCallExpression(createMemberExpression(e,s),createArgumentList([t]))}(createParenExpression(createFunctionExpression(createEmptyParameterList(),e)),t)}function createImmediatelyInvokedFunctionExpression(e){return _("FUNCTION_BODY"===e.type),createCallExpression(createParenExpression(createFunctionExpression(createEmptyParameterList(),e)))}function createCallExpression(e){var t=void 0!==arguments[1]?arguments[1]:createEmptyArgumentList();return new P(null,e,t)}function createBreakStatement(){var e=void 0!==arguments[0]?arguments[0]:null;return new N(null,e)}function createCaseClause(e,t){return new b(null,e,t)}function createCatch(e,t){return e=createBindingIdentifier(e),new w(null,e,t)}function createClassDeclaration(e,t,r){return new j(null,e,t,r,[])}function createCommaExpression(e){return new L(null,e)}function createConditionalExpression(e,t,r){return new I(null,e,t,r)}function createContinueStatement(){var e=void 0!==arguments[0]?arguments[0]:null;return new O(null,e)}function createDefaultClause(e){return new F(null,e)}function createDoWhileStatement(e,t){return new k(null,e,t)}function createAssignmentStatement(e,t){return createExpressionStatement(createAssignmentExpression(e,t))}function createCallStatement(e){var t=arguments[1];return createExpressionStatement(createCallExpression(e,t))}function createExpressionStatement(e){return new B(null,e)}function createFinally(e){return new z(null,e)}function createForOfStatement(e,t,r){return new G(null,e,t,r)}function createForInStatement(e,t,r){return new V(null,e,t,r)}function createForStatement(e,t,r,n){return new U(null,e,t,r,n)}function createFunctionExpression(e,t){return _("FUNCTION_BODY"===t.type),new X(null,null,!1,e,null,[],t)}function createIdentifierExpression(e){return"string"==typeof e?e=createIdentifierToken(e):e instanceof $&&(e=e.identifierToken),new J(null,e)}function createUndefinedExpression(){return createIdentifierExpression(m)}function createIfStatement(e,t){var r=void 0!==arguments[2]?arguments[2]:null;return new K(null,e,t,r)}function createStringLiteral(e){return new Q(null,createStringLiteralToken(e))}function createBooleanLiteral(e){return new Q(null,createBooleanLiteralToken(e))}function createTrueLiteral(){return createBooleanLiteral(!0)}function createFalseLiteral(){return createBooleanLiteral(!1)}function createNullLiteral(){return new Q(null,createNullLiteralToken())}function createNumberLiteral(e){return new Q(null,createNumberLiteralToken(e))}function createMemberExpression(r,n){for(var i=[],a=2;a<arguments.length;a++)i[a-2]=arguments[a];("string"==typeof r||r instanceof e)&&(r=createIdentifierExpression(r)),"string"==typeof n&&(n=createIdentifierToken(n)),n instanceof t&&(n=new Q(null,n));for(var s=n instanceof Q?new te(null,r,n):new ee(null,r,n),o=0;o<i.length;o++)s=createMemberExpression(s,i[o]);return s}function createMemberLookupExpression(e,t){return new te(null,e,t)}function createThisExpression(){return new me(null)}function createNewExpression(e,t){return new re(null,e,t)}function createObjectFreeze(e){return createCallExpression(createMemberExpression(l,c),createArgumentList([e]))}function createObjectCreate(e){var t=arguments[1],r=[e];return t&&r.push(t),createCallExpression(createMemberExpression(l,o),createArgumentList(r))}function createObjectLiteralForDescriptor(e){return createObjectLiteral(Object.keys(e).map((function(t){var r=e[t];return r instanceof n||(r=createBooleanLiteral(!!r)),createPropertyNameAssignment(t,r)})))}function createDefineProperty(e,t,r){return"string"==typeof t&&(t=createStringLiteral(t)),createCallExpression(createMemberExpression(l,u),createArgumentList([e,t,createObjectLiteralForDescriptor(r)]))}function createObjectLiteral(e){return new ne(null,e)}function createParenExpression(e){return new ie(null,e)}function createPostfixExpression(e,t){return new ae(null,e,t)}function createScript(e){return new se(null,e,null)}function createPropertyNameAssignment(e,t){return"string"==typeof e&&(e=createLiteralPropertyName(e)),new oe(null,e,t)}function createLiteralPropertyName(e){return new Z(null,createIdentifierToken(e))}function createRestParameter(e){var t=new ue(null,createBindingIdentifier(e));return new W(null,t,null,[])}function createReturnStatement(e){return new ce(null,e)}function createSwitchStatement(e,t){return new le(null,e,t)}function createThrowStatement(e){return new pe(null,e)}function createTryStatement(e,t){var r=void 0!==arguments[2]?arguments[2]:null;return new fe(null,e,t,r)}function createUnaryExpression(e,t){return new he(null,e,t)}function createUseStrictDirective(){return createExpressionStatement(createStringLiteral("use strict"))}function createVariableDeclarationList(e,t){var r=arguments[2];if(t instanceof Array){var n=t;return new ge(null,e,n)}var i=t;return createVariableDeclarationList(e,[createVariableDeclaration(i,r)])}function createVariableDeclaration(e,t){return e instanceof n&&(e.type===i.BINDING_IDENTIFIER||e.type===i.OBJECT_PATTERN||e.type===i.ARRAY_PATTERN)||(e=createBindingIdentifier(e)),new de(null,e,null,t)}function createVariableStatement(e){var t=arguments[1],r=arguments[2];if(e instanceof ge)return new Te(null,e);var n=e,i=createVariableDeclarationList(n,t,r);return createVariableStatement(i)}function createVoid0(){return createParenExpression(createUnaryExpression(createOperatorToken(S),createNumberLiteral(0)))}function createWhileStatement(e,t){return new ye(null,e,t)}function createWithStatement(e,t){return new Re(null,e,t)}function createAssignStateStatement(e){return createAssignmentStatement(createMemberExpression("$ctx","state"),createNumberLiteral(e))}return{get createOperatorToken(){return createOperatorToken},get createIdentifierToken(){return createIdentifierToken},get createStringLiteralToken(){return createStringLiteralToken},get createBooleanLiteralToken(){return createBooleanLiteralToken},get createNullLiteralToken(){return createNullLiteralToken},get createNumberLiteralToken(){return createNumberLiteralToken},get createEmptyParameterList(){return createEmptyParameterList},get createFormalParameter(){return createFormalParameter},get createArgumentList(){return createArgumentList},get createEmptyArgumentList(){return createEmptyArgumentList},get createArrayLiteral(){return createArrayLiteral},get createEmptyArrayLiteral(){return createEmptyArrayLiteral},get createAssignmentExpression(){return createAssignmentExpression},get createBinaryExpression(){return createBinaryExpression},get createBindingIdentifier(){return createBindingIdentifier},get createImportedBinding(){return createImportedBinding},get createEmptyStatement(){return createEmptyStatement},get createEmptyBlock(){return createEmptyBlock},get createBlock(){return createBlock},get createFunctionBody(){return createFunctionBody},get createScopedExpression(){return createScopedExpression},get createImmediatelyInvokedFunctionExpression(){return createImmediatelyInvokedFunctionExpression},get createCallExpression(){return createCallExpression},get createBreakStatement(){return createBreakStatement},get createCaseClause(){return createCaseClause},get createCatch(){return createCatch},get createClassDeclaration(){return createClassDeclaration},get createCommaExpression(){return createCommaExpression},get createConditionalExpression(){return createConditionalExpression},get createContinueStatement(){return createContinueStatement},get createDefaultClause(){return createDefaultClause},get createDoWhileStatement(){return createDoWhileStatement},get createAssignmentStatement(){return createAssignmentStatement},get createCallStatement(){return createCallStatement},get createExpressionStatement(){return createExpressionStatement},get createFinally(){return createFinally},get createForOfStatement(){return createForOfStatement},get createForInStatement(){return createForInStatement},get createForStatement(){return createForStatement},get createFunctionExpression(){return createFunctionExpression},get createIdentifierExpression(){return createIdentifierExpression},get createUndefinedExpression(){return createUndefinedExpression},get createIfStatement(){return createIfStatement},get createStringLiteral(){return createStringLiteral},get createBooleanLiteral(){return createBooleanLiteral},get createTrueLiteral(){return createTrueLiteral},get createFalseLiteral(){return createFalseLiteral},get createNullLiteral(){return createNullLiteral},get createNumberLiteral(){return createNumberLiteral},get createMemberExpression(){return createMemberExpression},get createMemberLookupExpression(){return createMemberLookupExpression},get createThisExpression(){return createThisExpression},get createNewExpression(){return createNewExpression},get createObjectFreeze(){return createObjectFreeze},get createObjectCreate(){return createObjectCreate},get createObjectLiteralForDescriptor(){return createObjectLiteralForDescriptor},get createDefineProperty(){return createDefineProperty},get createObjectLiteral(){return createObjectLiteral},get createParenExpression(){return createParenExpression},get createPostfixExpression(){return createPostfixExpression},get createScript(){return createScript},get createPropertyNameAssignment(){return createPropertyNameAssignment},get createLiteralPropertyName(){return createLiteralPropertyName},get createRestParameter(){return createRestParameter},get createReturnStatement(){return createReturnStatement},get createSwitchStatement(){return createSwitchStatement},get createThrowStatement(){return createThrowStatement},get createTryStatement(){return createTryStatement},get createUnaryExpression(){return createUnaryExpression},get createUseStrictDirective(){return createUseStrictDirective},get createVariableDeclarationList(){return createVariableDeclarationList},get createVariableDeclaration(){return createVariableDeclaration},get createVariableStatement(){return createVariableStatement},get createVoid0(){return createVoid0},get createWhileStatement(){return createWhileStatement},get createWithStatement(){return createWithStatement},get createAssignStateStatement(){return createAssignStateStatement}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/syntax/ParseTreeVisitor.js",[],(function(){"use strict";var e=$traceurRuntime.createClass((function e(){}),{visitAny:function(e){null!==e&&e.visit(this)},visit:function(e){this.visitAny(e)},visitList:function(e){if(e)for(var t=0;t<e.length;t++)this.visitAny(e[t])},visitStateMachine:function(e){throw Error("State machines should not live outside of the GeneratorTransformer.")},visitAnnotation:function(e){this.visitAny(e.name),this.visitAny(e.args)},visitAnonBlock:function(e){this.visitList(e.statements)},visitArgumentList:function(e){this.visitList(e.args)},visitArrayComprehension:function(e){this.visitList(e.comprehensionList),this.visitAny(e.expression)},visitArrayLiteral:function(e){this.visitList(e.elements)},visitArrayPattern:function(e){this.visitList(e.elements)},visitArrayType:function(e){this.visitAny(e.elementType)},visitArrowFunction:function(e){this.visitAny(e.parameterList),this.visitAny(e.body)},visitAssignmentElement:function(e){this.visitAny(e.assignment),this.visitAny(e.initializer)},visitAwaitExpression:function(e){this.visitAny(e.expression)},visitBinaryExpression:function(e){this.visitAny(e.left),this.visitAny(e.right)},visitBindingElement:function(e){this.visitAny(e.binding),this.visitAny(e.initializer)},visitBindingIdentifier:function(e){},visitBlock:function(e){this.visitList(e.statements)},visitBreakStatement:function(e){},visitCallExpression:function(e){this.visitAny(e.operand),this.visitAny(e.args)},visitCallSignature:function(e){this.visitAny(e.typeParameters),this.visitAny(e.parameterList),this.visitAny(e.returnType)},visitCaseClause:function(e){this.visitAny(e.expression),this.visitList(e.statements)},visitCatch:function(e){this.visitAny(e.binding),this.visitAny(e.catchBody)},visitClassDeclaration:function(e){this.visitAny(e.name),this.visitAny(e.superClass),this.visitList(e.elements),this.visitList(e.annotations),this.visitAny(e.typeParameters)},visitClassExpression:function(e){this.visitAny(e.name),this.visitAny(e.superClass),this.visitList(e.elements),this.visitList(e.annotations),this.visitAny(e.typeParameters)},visitCommaExpression:function(e){this.visitList(e.expressions)},visitComprehensionFor:function(e){this.visitAny(e.left),this.visitAny(e.iterator)},visitComprehensionIf:function(e){this.visitAny(e.expression)},visitComputedPropertyName:function(e){this.visitAny(e.expression)},visitConditionalExpression:function(e){this.visitAny(e.condition),this.visitAny(e.left),this.visitAny(e.right)},visitConstructSignature:function(e){this.visitAny(e.typeParameters),this.visitAny(e.parameterList),this.visitAny(e.returnType)},visitConstructorType:function(e){this.visitAny(e.typeParameters),this.visitAny(e.parameterList),this.visitAny(e.returnType)},visitContinueStatement:function(e){},visitCoverFormals:function(e){this.visitList(e.expressions)},visitCoverInitializedName:function(e){this.visitAny(e.initializer)},visitDebuggerStatement:function(e){},visitDefaultClause:function(e){this.visitList(e.statements)},visitDoWhileStatement:function(e){this.visitAny(e.body),this.visitAny(e.condition)},visitEmptyStatement:function(e){},visitExportDeclaration:function(e){this.visitAny(e.declaration),this.visitList(e.annotations)},visitExportDefault:function(e){this.visitAny(e.expression)},visitExportSpecifier:function(e){},visitExportSpecifierSet:function(e){this.visitList(e.specifiers)},visitExportStar:function(e){},visitExpressionStatement:function(e){this.visitAny(e.expression)},visitFinally:function(e){this.visitAny(e.block)},visitForInStatement:function(e){this.visitAny(e.initializer),this.visitAny(e.collection),this.visitAny(e.body)},visitForOfStatement:function(e){this.visitAny(e.initializer),this.visitAny(e.collection),this.visitAny(e.body)},visitForOnStatement:function(e){this.visitAny(e.initializer),this.visitAny(e.observable),this.visitAny(e.body)},visitForStatement:function(e){this.visitAny(e.initializer),this.visitAny(e.condition),this.visitAny(e.increment),this.visitAny(e.body)},visitFormalParameter:function(e){this.visitAny(e.parameter),this.visitAny(e.typeAnnotation),this.visitList(e.annotations)},visitFormalParameterList:function(e){this.visitList(e.parameters)},visitForwardDefaultExport:function(e){},visitFunctionBody:function(e){this.visitList(e.statements)},visitFunctionDeclaration:function(e){this.visitAny(e.name),this.visitAny(e.parameterList),this.visitAny(e.typeAnnotation),this.visitList(e.annotations),this.visitAny(e.body)},visitFunctionExpression:function(e){this.visitAny(e.name),this.visitAny(e.parameterList),this.visitAny(e.typeAnnotation),this.visitList(e.annotations),this.visitAny(e.body)},visitFunctionType:function(e){this.visitAny(e.typeParameters),this.visitAny(e.parameterList),this.visitAny(e.returnType)},visitGeneratorComprehension:function(e){this.visitList(e.comprehensionList),this.visitAny(e.expression)},visitGetAccessor:function(e){this.visitAny(e.name),this.visitAny(e.typeAnnotation),this.visitList(e.annotations),this.visitAny(e.body)},visitIdentifierExpression:function(e){},visitIfStatement:function(e){this.visitAny(e.condition),this.visitAny(e.ifClause),this.visitAny(e.elseClause)},visitImportedBinding:function(e){this.visitAny(e.binding)},visitImportClausePair:function(e){this.visitAny(e.first),this.visitAny(e.second)},visitImportDeclaration:function(e){this.visitAny(e.importClause),this.visitAny(e.moduleSpecifier)},visitImportSpecifier:function(e){this.visitAny(e.binding)},visitImportSpecifierSet:function(e){this.visitList(e.specifiers)},visitImportTypeClause:function(e){this.visitAny(e.clause)},visitIndexSignature:function(e){this.visitAny(e.indexType),this.visitAny(e.typeAnnotation)},visitInterfaceDeclaration:function(e){this.visitAny(e.typeParameters),this.visitAny(e.objectType)},visitJsxAttribute:function(e){this.visitAny(e.value)},visitJsxElement:function(e){this.visitAny(e.name),this.visitList(e.attributes),this.visitList(e.children)},visitJsxElementName:function(e){},visitJsxPlaceholder:function(e){this.visitAny(e.expression)},visitJsxSpreadAttribute:function(e){this.visitAny(e.expression)},visitJsxText:function(e){},visitLabelledStatement:function(e){this.visitAny(e.statement)},visitLiteralExpression:function(e){},visitLiteralPropertyName:function(e){},visitMemberExpression:function(e){this.visitAny(e.operand)},visitMemberLookupExpression:function(e){this.visitAny(e.operand),this.visitAny(e.memberExpression)},visitMethod:function(e){this.visitAny(e.name),this.visitAny(e.parameterList),this.visitAny(e.typeAnnotation),this.visitList(e.annotations),this.visitAny(e.body),this.visitAny(e.debugName)},visitMethodSignature:function(e){this.visitAny(e.name),this.visitAny(e.callSignature)},visitModule:function(e){this.visitList(e.scriptItemList)},visitModuleSpecifier:function(e){},visitNameSpaceExport:function(e){},visitNameSpaceImport:function(e){this.visitAny(e.binding)},visitNamedExport:function(e){this.visitAny(e.exportClause),this.visitAny(e.moduleSpecifier)},visitNewExpression:function(e){this.visitAny(e.operand),this.visitAny(e.args)},visitObjectLiteral:function(e){this.visitList(e.propertyNameAndValues)},visitObjectPattern:function(e){this.visitList(e.fields)},visitObjectPatternField:function(e){this.visitAny(e.name),this.visitAny(e.element)},visitObjectType:function(e){this.visitList(e.typeMembers)},visitParenExpression:function(e){this.visitAny(e.expression)},visitPostfixExpression:function(e){this.visitAny(e.operand)},visitPredefinedType:function(e){},visitScript:function(e){this.visitList(e.scriptItemList)},visitPropertyNameAssignment:function(e){this.visitAny(e.name),this.visitAny(e.value)},visitPropertyNameShorthand:function(e){},visitPropertyVariableDeclaration:function(e){this.visitAny(e.name),this.visitAny(e.typeAnnotation),this.visitList(e.annotations),this.visitAny(e.initializer)},visitPropertySignature:function(e){this.visitAny(e.name),this.visitAny(e.typeAnnotation)},visitRestParameter:function(e){this.visitAny(e.identifier)},visitReturnStatement:function(e){this.visitAny(e.expression)},visitSetAccessor:function(e){this.visitAny(e.name),this.visitAny(e.parameterList),this.visitList(e.annotations),this.visitAny(e.body)},visitSpreadExpression:function(e){this.visitAny(e.expression)},visitSpreadPatternElement:function(e){this.visitAny(e.lvalue)},visitSuperExpression:function(e){},visitSwitchStatement:function(e){this.visitAny(e.expression),this.visitList(e.caseClauses)},visitSyntaxErrorTree:function(e){},visitTemplateLiteralExpression:function(e){this.visitAny(e.operand),this.visitList(e.elements)},visitTemplateLiteralPortion:function(e){},visitTemplateSubstitution:function(e){this.visitAny(e.expression)},visitThisExpression:function(e){},visitThrowStatement:function(e){this.visitAny(e.value)},visitTryStatement:function(e){this.visitAny(e.body),this.visitAny(e.catchBlock),this.visitAny(e.finallyBlock)},visitTypeAliasDeclaration:function(e){this.visitAny(e.value)},visitTypeArguments:function(e){this.visitList(e.args)},visitTypeName:function(e){this.visitAny(e.moduleName)},visitTypeParameter:function(e){this.visitAny(e.extendsType)},visitTypeParameters:function(e){this.visitList(e.parameters)},visitTypeReference:function(e){this.visitAny(e.typeName),this.visitAny(e.args)},visitUnaryExpression:function(e){this.visitAny(e.operand)},visitUnionType:function(e){this.visitList(e.types)},visitVariableDeclaration:function(e){this.visitAny(e.lvalue),this.visitAny(e.typeAnnotation),this.visitAny(e.initializer)},visitVariableDeclarationList:function(e){this.visitList(e.declarations)},visitVariableStatement:function(e){this.visitAny(e.declarations)},visitWhileStatement:function(e){this.visitAny(e.condition),this.visitAny(e.body)},visitWithStatement:function(e){this.visitAny(e.expression),this.visitAny(e.body)},visitYieldExpression:function(e){this.visitAny(e.expression)}},{});return{get ParseTreeVisitor(){return e}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/FindVisitor.js",[],(function(){"use strict";var e,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/ParseTreeVisitor.js","traceur@0.0.111/src/codegeneration/FindVisitor.js")).ParseTreeVisitor,r=(e=t,$traceurRuntime.createClass((function FindVisitor(){var e=arguments[0];$traceurRuntime.superConstructor(FindVisitor).call(this),this.found_=!1,this.shouldContinue_=!0,this.keepOnGoing_=e}),{get found(){return this.found_},set found(e){e&&(this.found_=!0,this.keepOnGoing_||(this.shouldContinue_=!1))},visitAny:function(e){this.shouldContinue_&&e&&e.visit(this)},visitList:function(e){if(e)for(var t=0;this.shouldContinue_&&t<e.length;t++)this.visitAny(e[t])}},{},e));return{get FindVisitor(){return r}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/util/SyntaxErrorReporter.js",[],(function(){"use strict";var e,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ErrorReporter.js","traceur@0.0.111/src/util/SyntaxErrorReporter.js")),r=t.ErrorReporter,n=t.format,i=(e=r,$traceurRuntime.createClass((function SyntaxErrorReporter(){$traceurRuntime.superConstructor(SyntaxErrorReporter).apply(this,arguments)}),{reportMessageInternal:function(e,t){var r=n(e,t);throw new SyntaxError(r)}},{},e));return{get SyntaxErrorReporter(){return i}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/syntax/JsxIdentifierToken.js",[],(function(){"use strict";var e,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./Token.js","traceur@0.0.111/src/syntax/JsxIdentifierToken.js")).Token,r=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./TokenType.js","traceur@0.0.111/src/syntax/JsxIdentifierToken.js")).JSX_IDENTIFIER,n=(e=t,$traceurRuntime.createClass((function JsxIdentifierToken(e,t){$traceurRuntime.superConstructor(JsxIdentifierToken).call(this,r,e),this.value=t}),{toString:function(){return this.value}},{},e));return{get JsxIdentifierToken(){return n}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/syntax/Keywords.js",[],(function(){"use strict";var e=Object.create(null);function getKeywordType(t){return e[t]}function isStrictKeyword(e){return 2===getKeywordType(e)}return["break","case","catch","class","const","continue","debugger","default","delete","do","else","export","finally","for","function","if","import","in","instanceof","let","new","return","super","switch","this","throw","try","typeof","var","void","while","with","enum","extends","null","true","false"].forEach((function(t){e[t]=1})),["implements","interface","package","private","protected","public","static","yield"].forEach((function(t){e[t]=2})),{get NORMAL_KEYWORD(){return 1},get STRICT_KEYWORD(){return 2},get getKeywordType(){return getKeywordType},get isStrictKeyword(){return isStrictKeyword}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/syntax/KeywordToken.js",[],(function(){"use strict";var e,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./Keywords.js","traceur@0.0.111/src/syntax/KeywordToken.js")).STRICT_KEYWORD,r=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./Token.js","traceur@0.0.111/src/syntax/KeywordToken.js")).Token,n=(e=r,$traceurRuntime.createClass((function KeywordToken(e,r,n){$traceurRuntime.superConstructor(KeywordToken).call(this,e,n),this.isStrictKeyword_=r===t}),{isKeyword:function(){return!0},isStrictKeyword:function(){return this.isStrictKeyword_}},{},e));return{get KeywordToken(){return n}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/syntax/unicode-tables.js",[],(function(){"use strict";var e=[170,170,181,181,186,186,192,214,216,246,248,442,443,443,444,447,448,451,452,659,660,660,661,687,688,705,710,721,736,740,748,748,750,750,880,883,884,884,886,887,890,890,891,893,895,895,902,902,904,906,908,908,910,929,931,1013,1015,1153,1162,1327,1329,1366,1369,1369,1377,1415,1488,1514,1520,1522,1568,1599,1600,1600,1601,1610,1646,1647,1649,1747,1749,1749,1765,1766,1774,1775,1786,1788,1791,1791,1808,1808,1810,1839,1869,1957,1969,1969,1994,2026,2036,2037,2042,2042,2048,2069,2074,2074,2084,2084,2088,2088,2112,2136,2208,2226,2308,2361,2365,2365,2384,2384,2392,2401,2417,2417,2418,2432,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2493,2493,2510,2510,2524,2525,2527,2529,2544,2545,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2649,2652,2654,2654,2674,2676,2693,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2749,2749,2768,2768,2784,2785,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2869,2873,2877,2877,2908,2909,2911,2913,2929,2929,2947,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,3001,3024,3024,3077,3084,3086,3088,3090,3112,3114,3129,3133,3133,3160,3161,3168,3169,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3261,3261,3294,3294,3296,3297,3313,3314,3333,3340,3342,3344,3346,3386,3389,3389,3406,3406,3424,3425,3450,3455,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3585,3632,3634,3635,3648,3653,3654,3654,3713,3714,3716,3716,3719,3720,3722,3722,3725,3725,3732,3735,3737,3743,3745,3747,3749,3749,3751,3751,3754,3755,3757,3760,3762,3763,3773,3773,3776,3780,3782,3782,3804,3807,3840,3840,3904,3911,3913,3948,3976,3980,4096,4138,4159,4159,4176,4181,4186,4189,4193,4193,4197,4198,4206,4208,4213,4225,4238,4238,4256,4293,4295,4295,4301,4301,4304,4346,4348,4348,4349,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4744,4746,4749,4752,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4822,4824,4880,4882,4885,4888,4954,4992,5007,5024,5108,5121,5740,5743,5759,5761,5786,5792,5866,5870,5872,5873,5880,5888,5900,5902,5905,5920,5937,5952,5969,5984,5996,5998,6e3,6016,6067,6103,6103,6108,6108,6176,6210,6211,6211,6212,6263,6272,6312,6314,6314,6320,6389,6400,6430,6480,6509,6512,6516,6528,6571,6593,6599,6656,6678,6688,6740,6823,6823,6917,6963,6981,6987,7043,7072,7086,7087,7098,7141,7168,7203,7245,7247,7258,7287,7288,7293,7401,7404,7406,7409,7413,7414,7424,7467,7468,7530,7531,7543,7544,7544,7545,7578,7579,7615,7680,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8305,8305,8319,8319,8336,8348,8450,8450,8455,8455,8458,8467,8469,8469,8472,8472,8473,8477,8484,8484,8486,8486,8488,8488,8490,8493,8494,8494,8495,8500,8501,8504,8505,8505,8508,8511,8517,8521,8526,8526,8544,8578,8579,8580,8581,8584,11264,11310,11312,11358,11360,11387,11388,11389,11390,11492,11499,11502,11506,11507,11520,11557,11559,11559,11565,11565,11568,11623,11631,11631,11648,11670,11680,11686,11688,11694,11696,11702,11704,11710,11712,11718,11720,11726,11728,11734,11736,11742,12293,12293,12294,12294,12295,12295,12321,12329,12337,12341,12344,12346,12347,12347,12348,12348,12353,12438,12443,12444,12445,12446,12447,12447,12449,12538,12540,12542,12543,12543,12549,12589,12593,12686,12704,12730,12784,12799,13312,19893,19968,40908,40960,40980,40981,40981,40982,42124,42192,42231,42232,42237,42240,42507,42508,42508,42512,42527,42538,42539,42560,42605,42606,42606,42623,42623,42624,42651,42652,42653,42656,42725,42726,42735,42775,42783,42786,42863,42864,42864,42865,42887,42888,42888,42891,42894,42896,42925,42928,42929,42999,42999,43e3,43001,43002,43002,43003,43009,43011,43013,43015,43018,43020,43042,43072,43123,43138,43187,43250,43255,43259,43259,43274,43301,43312,43334,43360,43388,43396,43442,43471,43471,43488,43492,43494,43494,43495,43503,43514,43518,43520,43560,43584,43586,43588,43595,43616,43631,43632,43632,43633,43638,43642,43642,43646,43695,43697,43697,43701,43702,43705,43709,43712,43712,43714,43714,43739,43740,43741,43741,43744,43754,43762,43762,43763,43764,43777,43782,43785,43790,43793,43798,43808,43814,43816,43822,43824,43866,43868,43871,43876,43877,43968,44002,44032,55203,55216,55238,55243,55291,63744,64109,64112,64217,64256,64262,64275,64279,64285,64285,64287,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65136,65140,65142,65276,65313,65338,65345,65370,65382,65391,65392,65392,65393,65437,65438,65439,65440,65470,65474,65479,65482,65487,65490,65495,65498,65500,65536,65547,65549,65574,65576,65594,65596,65597,65599,65613,65616,65629,65664,65786,65856,65908,66176,66204,66208,66256,66304,66335,66352,66368,66369,66369,66370,66377,66378,66378,66384,66421,66432,66461,66464,66499,66504,66511,66513,66517,66560,66639,66640,66717,66816,66855,66864,66915,67072,67382,67392,67413,67424,67431,67584,67589,67592,67592,67594,67637,67639,67640,67644,67644,67647,67669,67680,67702,67712,67742,67840,67861,67872,67897,67968,68023,68030,68031,68096,68096,68112,68115,68117,68119,68121,68147,68192,68220,68224,68252,68288,68295,68297,68324,68352,68405,68416,68437,68448,68466,68480,68497,68608,68680,69635,69687,69763,69807,69840,69864,69891,69926,69968,70002,70006,70006,70019,70066,70081,70084,70106,70106,70144,70161,70163,70187,70320,70366,70405,70412,70415,70416,70419,70440,70442,70448,70450,70451,70453,70457,70461,70461,70493,70497,70784,70831,70852,70853,70855,70855,71040,71086,71168,71215,71236,71236,71296,71338,71840,71903,71935,71935,72384,72440,73728,74648,74752,74862,77824,78894,92160,92728,92736,92766,92880,92909,92928,92975,92992,92995,93027,93047,93053,93071,93952,94020,94032,94032,94099,94111,110592,110593,113664,113770,113776,113788,113792,113800,113808,113817,119808,119892,119894,119964,119966,119967,119970,119970,119973,119974,119977,119980,119982,119993,119995,119995,119997,120003,120005,120069,120071,120074,120077,120084,120086,120092,120094,120121,120123,120126,120128,120132,120134,120134,120138,120144,120146,120485,120488,120512,120514,120538,120540,120570,120572,120596,120598,120628,120630,120654,120656,120686,120688,120712,120714,120744,120746,120770,120772,120779,124928,125124,126464,126467,126469,126495,126497,126498,126500,126500,126503,126503,126505,126514,126516,126519,126521,126521,126523,126523,126530,126530,126535,126535,126537,126537,126539,126539,126541,126543,126545,126546,126548,126548,126551,126551,126553,126553,126555,126555,126557,126557,126559,126559,126561,126562,126564,126564,126567,126570,126572,126578,126580,126583,126585,126588,126590,126590,126592,126601,126603,126619,126625,126627,126629,126633,126635,126651,131072,173782,173824,177972,177984,178205,194560,195101],t=[183,183,768,879,903,903,1155,1159,1425,1469,1471,1471,1473,1474,1476,1477,1479,1479,1552,1562,1611,1631,1632,1641,1648,1648,1750,1756,1759,1764,1767,1768,1770,1773,1776,1785,1809,1809,1840,1866,1958,1968,1984,1993,2027,2035,2070,2073,2075,2083,2085,2087,2089,2093,2137,2139,2276,2306,2307,2307,2362,2362,2363,2363,2364,2364,2366,2368,2369,2376,2377,2380,2381,2381,2382,2383,2385,2391,2402,2403,2406,2415,2433,2433,2434,2435,2492,2492,2494,2496,2497,2500,2503,2504,2507,2508,2509,2509,2519,2519,2530,2531,2534,2543,2561,2562,2563,2563,2620,2620,2622,2624,2625,2626,2631,2632,2635,2637,2641,2641,2662,2671,2672,2673,2677,2677,2689,2690,2691,2691,2748,2748,2750,2752,2753,2757,2759,2760,2761,2761,2763,2764,2765,2765,2786,2787,2790,2799,2817,2817,2818,2819,2876,2876,2878,2878,2879,2879,2880,2880,2881,2884,2887,2888,2891,2892,2893,2893,2902,2902,2903,2903,2914,2915,2918,2927,2946,2946,3006,3007,3008,3008,3009,3010,3014,3016,3018,3020,3021,3021,3031,3031,3046,3055,3072,3072,3073,3075,3134,3136,3137,3140,3142,3144,3146,3149,3157,3158,3170,3171,3174,3183,3201,3201,3202,3203,3260,3260,3262,3262,3263,3263,3264,3268,3270,3270,3271,3272,3274,3275,3276,3277,3285,3286,3298,3299,3302,3311,3329,3329,3330,3331,3390,3392,3393,3396,3398,3400,3402,3404,3405,3405,3415,3415,3426,3427,3430,3439,3458,3459,3530,3530,3535,3537,3538,3540,3542,3542,3544,3551,3558,3567,3570,3571,3633,3633,3636,3642,3655,3662,3664,3673,3761,3761,3764,3769,3771,3772,3784,3789,3792,3801,3864,3865,3872,3881,3893,3893,3895,3895,3897,3897,3902,3903,3953,3966,3967,3967,3968,3972,3974,3975,3981,3991,3993,4028,4038,4038,4139,4140,4141,4144,4145,4145,4146,4151,4152,4152,4153,4154,4155,4156,4157,4158,4160,4169,4182,4183,4184,4185,4190,4192,4194,4196,4199,4205,4209,4212,4226,4226,4227,4228,4229,4230,4231,4236,4237,4237,4239,4239,4240,4249,4250,4252,4253,4253,4957,4959,4969,4977,5906,5908,5938,5940,5970,5971,6002,6003,6068,6069,6070,6070,6071,6077,6078,6085,6086,6086,6087,6088,6089,6099,6109,6109,6112,6121,6155,6157,6160,6169,6313,6313,6432,6434,6435,6438,6439,6440,6441,6443,6448,6449,6450,6450,6451,6456,6457,6459,6470,6479,6576,6592,6600,6601,6608,6617,6618,6618,6679,6680,6681,6682,6683,6683,6741,6741,6742,6742,6743,6743,6744,6750,6752,6752,6753,6753,6754,6754,6755,6756,6757,6764,6765,6770,6771,6780,6783,6783,6784,6793,6800,6809,6832,6845,6912,6915,6916,6916,6964,6964,6965,6965,6966,6970,6971,6971,6972,6972,6973,6977,6978,6978,6979,6980,6992,7001,7019,7027,7040,7041,7042,7042,7073,7073,7074,7077,7078,7079,7080,7081,7082,7082,7083,7085,7088,7097,7142,7142,7143,7143,7144,7145,7146,7148,7149,7149,7150,7150,7151,7153,7154,7155,7204,7211,7212,7219,7220,7221,7222,7223,7232,7241,7248,7257,7376,7378,7380,7392,7393,7393,7394,7400,7405,7405,7410,7411,7412,7412,7416,7417,7616,7669,7676,7679,8255,8256,8276,8276,8400,8412,8417,8417,8421,8432,11503,11505,11647,11647,11744,11775,12330,12333,12334,12335,12441,12442,42528,42537,42607,42607,42612,42621,42655,42655,42736,42737,43010,43010,43014,43014,43019,43019,43043,43044,43045,43046,43047,43047,43136,43137,43188,43203,43204,43204,43216,43225,43232,43249,43264,43273,43302,43309,43335,43345,43346,43347,43392,43394,43395,43395,43443,43443,43444,43445,43446,43449,43450,43451,43452,43452,43453,43456,43472,43481,43493,43493,43504,43513,43561,43566,43567,43568,43569,43570,43571,43572,43573,43574,43587,43587,43596,43596,43597,43597,43600,43609,43643,43643,43644,43644,43645,43645,43696,43696,43698,43700,43703,43704,43710,43711,43713,43713,43755,43755,43756,43757,43758,43759,43765,43765,43766,43766,44003,44004,44005,44005,44006,44007,44008,44008,44009,44010,44012,44012,44013,44013,44016,44025,64286,64286,65024,65039,65056,65069,65075,65076,65101,65103,65296,65305,65343,65343,66045,66045,66272,66272,66422,66426,66720,66729,68097,68099,68101,68102,68108,68111,68152,68154,68159,68159,68325,68326,69632,69632,69633,69633,69634,69634,69688,69702,69734,69743,69759,69761,69762,69762,69808,69810,69811,69814,69815,69816,69817,69818,69872,69881,69888,69890,69927,69931,69932,69932,69933,69940,69942,69951,70003,70003,70016,70017,70018,70018,70067,70069,70070,70078,70079,70080,70096,70105,70188,70190,70191,70193,70194,70195,70196,70196,70197,70197,70198,70199,70367,70367,70368,70370,70371,70378,70384,70393,70401,70401,70402,70403,70460,70460,70462,70463,70464,70464,70465,70468,70471,70472,70475,70477,70487,70487,70498,70499,70502,70508,70512,70516,70832,70834,70835,70840,70841,70841,70842,70842,70843,70846,70847,70848,70849,70849,70850,70851,70864,70873,71087,71089,71090,71093,71096,71099,71100,71101,71102,71102,71103,71104,71216,71218,71219,71226,71227,71228,71229,71229,71230,71230,71231,71232,71248,71257,71339,71339,71340,71340,71341,71341,71342,71343,71344,71349,71350,71350,71351,71351,71360,71369,71904,71913,92768,92777,92912,92916,92976,92982,93008,93017,94033,94078,94095,94098,113821,113822,119141,119142,119143,119145,119149,119154,119163,119170,119173,119179,119210,119213,119362,119364,120782,120831,125136,125142,917760,917999];return{get idStartTable(){return e},get idContinueTable(){return t}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/syntax/Scanner.js",[],(function(){"use strict";for(var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./IdentifierToken.js","traceur@0.0.111/src/syntax/Scanner.js")).IdentifierToken,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./JsxIdentifierToken.js","traceur@0.0.111/src/syntax/Scanner.js")).JsxIdentifierToken,r=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./KeywordToken.js","traceur@0.0.111/src/syntax/Scanner.js")).KeywordToken,n=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./LiteralToken.js","traceur@0.0.111/src/syntax/Scanner.js")).LiteralToken,i=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../util/SourceRange.js","traceur@0.0.111/src/syntax/Scanner.js")).SourceRange,a=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./Token.js","traceur@0.0.111/src/syntax/Scanner.js")).Token,s=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./Keywords.js","traceur@0.0.111/src/syntax/Scanner.js")).getKeywordType,o=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./unicode-tables.js","traceur@0.0.111/src/syntax/Scanner.js")),u=o.idContinueTable,c=o.idStartTable,l=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./TokenType.js","traceur@0.0.111/src/syntax/Scanner.js")),m=l.AMPERSAND,p=l.AMPERSAND_EQUAL,f=l.AND,h=l.ARROW,d=l.AT,g=l.BANG,T=l.BAR,y=l.BAR_EQUAL,R=l.CARET,S=l.CARET_EQUAL,_=l.CLOSE_ANGLE,v=l.CLOSE_CURLY,E=l.CLOSE_PAREN,M=l.CLOSE_SQUARE,A=l.COLON,x=l.COMMA,$=l.DOT_DOT_DOT,C=l.END_OF_FILE,N=l.EQUAL,P=l.EQUAL_EQUAL,b=l.EQUAL_EQUAL_EQUAL,w=l.ERROR,j=l.GREATER_EQUAL,L=l.LEFT_SHIFT,I=l.LEFT_SHIFT_EQUAL,O=l.LESS_EQUAL,F=l.MINUS,k=l.MINUS_EQUAL,D=l.MINUS_MINUS,B=l.NO_SUBSTITUTION_TEMPLATE,z=l.NOT_EQUAL,V=l.NOT_EQUAL_EQUAL,G=l.NUMBER,U=l.OPEN_ANGLE,W=l.OPEN_CURLY,H=l.OPEN_PAREN,Y=l.OPEN_SQUARE,X=l.OR,J=l.PERCENT,K=l.PERCENT_EQUAL,q=l.PERIOD,Q=l.PLUS,Z=l.PLUS_EQUAL,ee=l.PLUS_PLUS,te=l.QUESTION,re=l.REGULAR_EXPRESSION,ne=l.RIGHT_SHIFT,ie=l.RIGHT_SHIFT_EQUAL,ae=l.SEMI_COLON,se=l.SLASH,oe=l.SLASH_EQUAL,ue=l.STAR,ce=l.STAR_EQUAL,le=l.STAR_STAR,me=l.STAR_STAR_EQUAL,pe=l.STRING,fe=l.TEMPLATE_HEAD,he=l.TEMPLATE_MIDDLE,de=l.TEMPLATE_TAIL,ge=l.TILDE,Te=l.UNSIGNED_RIGHT_SHIFT,ye=l.UNSIGNED_RIGHT_SHIFT_EQUAL,Re=[],Se=0;Se<128;Se++)Re[Se]=Se>=9&&Se<=13||32===Se;function isWhitespace(e){if(e<128)return Re[e];switch(e){case 160:case 65279:case 8232:case 8233:return!0}return!1}function isLineTerminator(e){switch(e){case 10:case 13:case 8232:case 8233:return!0}return!1}function isDecimalDigit(e){return e>=48&&e<=57}for(var _e=[],ve=0;ve<128;ve++)_e[ve]=ve>=48&&ve<=57||ve>=65&&ve<=70||ve>=97&&ve<=102;function isHexDigit(e){return e<128&&_e[e]}function isBinaryDigit(e){return 48===e||49===e}function isOctalDigit(e){return e>=48&&e<=55}for(var Ee=[],Me=0;Me<128;Me++)Ee[Me]=36===Me||Me>=65&&Me<=90||95===Me||Me>=97&&Me<=122;function isIdentifierStart(e){return e<128?Ee[e]:inTable(c,e)}for(var Ae,xe,$e,Ce,Ne,Pe,be,we,je,Le,Ie,Oe=[],Fe=0;Fe<128;Fe++)Oe[Fe]=isIdentifierStart(Fe)||isDecimalDigit(Fe);function isIdentifierPart(e){return e<128?Oe[e]:inTable(c,e)||inTable(u,e)||8204===e||8205===e}function inTable(e,t){for(var r=0;r<e.length;){if(t<e[r++])return!1;if(t<=e[r++])return!0}return!1}function isRegularExpressionChar(e){switch(e){case 47:return!1;case 91:case 92:return!0}return!isLineTerminator(e)}function init(e,t,r,n){je=e,we=t.lineNumberTable,xe=t.contents,$e=t.contents.length,setIndex(0),Le=r,Ie=n}function getLastToken(){return Ne}function nextRegularExpressionLiteralToken(){return Ne=function nextRegularExpressionLiteralToken2(){var e=Ae-Ce.toString().length;Ce.type===oe?skipRegularExpressionBodyContinuation():function skipRegularExpressionBody(e){if(!function isRegularExpressionFirstChar(e){return isRegularExpressionChar(e)&&42!==e}(be))return void reportError("Expected regular expression first char",e);skipRegularExpressionBodyContinuation()}(e);if(47!==be)return reportError("Expected '/' in regular expression literal",e),new n(re,getTokenString(e),getTokenRange(e));next();for(;isIdentifierPart(be);)next();return new n(re,getTokenString(e),getTokenRange(e))}(),Ce=scanToken(),Ne}function nextTemplateLiteralToken(){var e=function nextTemplateLiteralToken2(){if(isAtEnd())return reportError("Expected '}' after expression in template literal",Ae,Ae),createToken(C,Ae);if(Ce.type!==v)return reportError("Expected '}' after expression in template literal",Ae,Ae),createToken(w,Ae);return nextTemplateLiteralTokenShared(de,he)}();return Ce=scanToken(),e}function setIndex(e){Ae=e,Ne=null,Ce=null,Pe=null,updateCurrentCharCode()}function getPosition(){return getPositionByOffset(function getOffset(){return Ce?Ce.location.start.offset:Ae}())}function getPositionByOffset(e){return we.getSourcePosition(e)}function nextCloseAngle(){switch(Ce.type){case j:case ne:case ie:case Te:case ye:return setIndex(Ae-Ce.type.length+1),Ne=createToken(_,Ae),Ce=scanToken(),Ne}return nextToken()}function getTokenRange(e){return we.getSourceRange(e,Ae)}function skipRegularExpressionBodyContinuation(){for(;!isAtEnd()&&isRegularExpressionChar(be);)if(!skipRegularExpressionChar())return}function skipRegularExpressionChar(){switch(be){case 92:return skipRegularExpressionBackslashSequence();case 91:return function skipRegularExpressionClass(){var e=Ae;next();for(;!isAtEnd()&&93!==be&&!isLineTerminator(be);)if(!skipRegularExpressionClassChar())return!1;if(93!==be)return reportError("']' expected",e,Ae),!1;return next(),!0}();default:return next(),!0}}function skipRegularExpressionBackslashSequence(){var e=Ae;return next(),isLineTerminator(be)||isAtEnd()?(reportError("New line not allowed in regular expression literal",e,Ae),!1):(next(),!0)}function skipRegularExpressionClassChar(){return 92===be?skipRegularExpressionBackslashSequence():(next(),!0)}function nextTemplateLiteralTokenShared(e,t){var r=Ae;if(function skipTemplateCharacter(){for(;!isAtEnd();)switch(be){case 96:return;case 92:skipStringLiteralEscapeSequence();break;case 36:if(123===xe.charCodeAt(Ae+1))return;next();break;default:next()}}(),isAtEnd())return reportError("Unterminated template literal"),createToken(w,r);var i=getTokenString(r);switch(be){case 96:return next(),Ne=new n(e,i,getTokenRange(r-1));case 36:return next(),next(),Ne=new n(t,i,getTokenRange(r-1))}}function peekJsxToken(){return Ce||(Ce=function scanJsxToken(){skipComments();var e=Ae;switch(be){case 34:case 39:return function scanJsxStringLiteral(e,t){next();for(;!isAtEnd()&&be!==t;)next();be!==t?reportError("Unterminated String Literal",e):next();return new n(pe,getTokenString(e),getTokenRange(e))}(e,be);case 62:return next(),createToken(_,e)}if(!isIdentifierStart(be))return scanToken();next();for(;isIdentifierPart(be)||45===be;)next();var r=xe.slice(e,Ae);return new t(getTokenRange(e),r)}())}function nextJsxToken(){return Ne=peekJsxToken(),Ce=null,Ne}function nextJsxTextToken(){return Ne=Ce||function scanJsxTextToken(){var e=Ae;if(isAtEnd())return createToken(C,e);if(function skipJsxText(){for(;!isAtEnd()&&isJsxTextChar(be);)next()}(),e===Ae)switch(be){case 60:return next(),createToken(U,e);case 123:return next(),createToken(W,e)}return new n(pe,getTokenString(e),getTokenRange(e))}(),Ce=null,Ne}function isJsxTextChar(e){switch(e){case 60:case 123:return!1}return!0}function nextToken(){var e=peekToken();return Ce=Pe||scanToken(),Pe=null,Ne=e,e}function peekTokenNoLineTerminator(){for(var e=peekToken(),t=Ne.location.end.offset,r=e.location.start.offset,n=t;n<r;n++)if(isLineTerminator(xe.charCodeAt(n)))return null;return e}function peek(e){return peekToken().type===e}function peekLookahead(e){return peekTokenLookahead().type===e}function peekToken(){return Ce||(Ce=scanToken())}function peekType(){return peekToken().type}function peekLocation(){return peekToken().location}function peekTokenLookahead(){return Ce||(Ce=scanToken()),Pe||(Pe=scanToken()),Pe}function skipComments(){for(;skipComment(););}function skipComment(){!function skipWhitespace(){for(;!isAtEnd()&&isWhitespace(be);)next()}();var e=be;if(47===e)switch(e=xe.charCodeAt(Ae+1)){case 47:return function skipSingleLineComment(){var e=Ae;Ae+=2;for(;!isAtEnd()&&!isLineTerminator(xe.charCodeAt(Ae++)););updateCurrentCharCode(),commentCallback(e,Ae)}(),!0;case 42:return function skipMultiLineComment(){var e=Ae,t=xe.indexOf("*/",Ae+2);Ae=-1!==t?t+2:$e;updateCurrentCharCode(),commentCallback(e,Ae)}(),!0}return!1}function commentCallback(e,t){Ie.commentCallback&&Le.handleComment(we.getSourceRange(e,t))}function scanToken(){skipComments();var t=Ae;if(isAtEnd())return createToken(C,t);var i=be;switch(next(),i){case 123:return createToken(W,t);case 125:return createToken(v,t);case 40:return createToken(H,t);case 41:return createToken(E,t);case 91:return createToken(Y,t);case 93:return createToken(M,t);case 46:switch(be){case 46:if(46===xe.charCodeAt(Ae+1))return next(),next(),createToken($,t);break;default:if(isDecimalDigit(be))return function scanNumberPostPeriod(e){return skipDecimalDigits(),scanExponentOfNumericLiteral(e)}(t)}return createToken(q,t);case 59:return createToken(ae,t);case 44:return createToken(x,t);case 126:return createToken(ge,t);case 63:return createToken(te,t);case 58:return createToken(A,t);case 60:switch(be){case 60:return next(),61===be?(next(),createToken(I,t)):createToken(L,t);case 61:return next(),createToken(O,t);default:return createToken(U,t)}case 62:switch(be){case 62:switch(next(),be){case 61:return next(),createToken(ie,t);case 62:return next(),61===be?(next(),createToken(ye,t)):createToken(Te,t);default:return createToken(ne,t)}case 61:return next(),createToken(j,t);default:return createToken(_,t)}case 61:return 61===be?(next(),61===be?(next(),createToken(b,t)):createToken(P,t)):62===be&&Ie.arrowFunctions?(next(),createToken(h,t)):createToken(N,t);case 33:return 61===be?(next(),61===be?(next(),createToken(V,t)):createToken(z,t)):createToken(g,t);case 42:return 61===be?(next(),createToken(ce,t)):42===be&&Ie.exponentiation?(next(),61===be?(next(),createToken(me,t)):createToken(le,t)):createToken(ue,t);case 37:return 61===be?(next(),createToken(K,t)):createToken(J,t);case 94:return 61===be?(next(),createToken(S,t)):createToken(R,t);case 47:return 61===be?(next(),createToken(oe,t)):createToken(se,t);case 43:switch(be){case 43:return next(),createToken(ee,t);case 61:return next(),createToken(Z,t);default:return createToken(Q,t)}case 45:switch(be){case 45:return next(),createToken(D,t);case 61:return next(),createToken(k,t);default:return createToken(F,t)}case 38:switch(be){case 38:return next(),createToken(f,t);case 61:return next(),createToken(p,t);default:return createToken(m,t)}case 124:switch(be){case 124:return next(),createToken(X,t);case 61:return next(),createToken(y,t);default:return createToken(T,t)}case 96:return function scanTemplateStart(e){return isAtEnd()?(reportError("Unterminated template literal",e,Ae),Ne=createToken(C,e)):nextTemplateLiteralTokenShared(B,fe)}(t);case 64:return createToken(d,t);case 48:return function scanPostZero(e){switch(be){case 46:return scanFractionalNumericLiteral(e);case 88:case 120:return next(),isHexDigit(be)||reportError("Hex Integer Literal must contain at least one digit",e),skipHexDigits(),new n(G,getTokenString(e),getTokenRange(e));case 66:case 98:if(!Ie.numericLiterals)break;return next(),isBinaryDigit(be)||reportError("Binary Integer Literal must contain at least one digit",e),function skipBinaryDigits(){for(;isBinaryDigit(be);)next()}(),new n(G,getTokenString(e),getTokenRange(e));case 79:case 111:if(!Ie.numericLiterals)break;return next(),isOctalDigit(be)||reportError("Octal Integer Literal must contain at least one digit",e),function skipOctalDigits(){for(;isOctalDigit(be);)next()}(),new n(G,getTokenString(e),getTokenRange(e));case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return scanPostDigit(e)}return new n(G,getTokenString(e),getTokenRange(e))}(t);case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return scanPostDigit(t);case 34:case 39:return function scanStringLiteral(e,t){for(;peekStringLiteralChar(t);)if(!skipStringLiteralChar())return new n(pe,getTokenString(e),getTokenRange(e));be!==t?reportError("Unterminated String Literal",e):next();return new n(pe,getTokenString(e),getTokenRange(e))}(t,i);default:return function scanIdentifierOrKeyword(t,n){var i;92===n&&(n=readUnicodeEscapeSequence(),i=[n]);if(!isIdentifierStart(n))return reportError("Character code '"+n+"' is not a valid identifier start char",t),createToken(w,t);for(;;)if(isIdentifierPart(n=be))next();else{if(92!==n)break;if(next(),n=readUnicodeEscapeSequence(),i||(i=[]),i.push(n),!isIdentifierPart(n))return createToken(w,t)}var a=xe.slice(t,Ae),o=s(a);if(o)return new r(a,o,getTokenRange(t));if(i){var u=0;a=a.replace(/\\u..../g,(function(e){return String.fromCharCode(i[u++])}))}return new e(getTokenRange(t),a)}(t,i)}}function scanPostDigit(e){return skipDecimalDigits(),scanFractionalNumericLiteral(e)}function createToken(e,t){return new a(e,getTokenRange(t))}function readUnicodeEscapeSequence(){var e=Ae;return 117===be&&(next(),skipHexDigit()&&skipHexDigit()&&skipHexDigit()&&skipHexDigit())?parseInt(getTokenString(e+1),16):(reportError("Invalid unicode escape sequence in identifier",e-1),0)}function getTokenString(e){return xe.substring(e,Ae)}function peekStringLiteralChar(e){return!isAtEnd()&&be!==e&&!isLineTerminator(be)}function skipStringLiteralChar(){return 92===be?skipStringLiteralEscapeSequence():(next(),!0)}function skipStringLiteralEscapeSequence(){if(next(),isAtEnd())return reportError("Unterminated string literal escape sequence"),!1;if(isLineTerminator(be))return function skipLineTerminator(){var e=be;next(),13===e&&10===be&&next()}(),!0;var e=be;switch(next(),e){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 skipHexDigit()&&skipHexDigit();case 117:return function skipUnicodeEscapeSequence(){if(123===be&&Ie.unicodeEscapeSequences){next();var e=Ae;if(!isHexDigit(be))return reportError("Hex digit expected",e),!1;if(skipHexDigits(),125!==be)return reportError("Hex digit expected",e),!1;var t=getTokenString(e);return parseInt(t,16)>1114111?(reportError("The code point in a Unicode escape sequence cannot exceed 10FFFF",e),!1):(next(),!0)}return skipHexDigit()&&skipHexDigit()&&skipHexDigit()&&skipHexDigit()}();default:return!0}}function skipHexDigit(){return isHexDigit(be)?(next(),!0):(reportError("Hex digit expected"),!1)}function scanFractionalNumericLiteral(e){return 46===be&&(next(),skipDecimalDigits()),scanExponentOfNumericLiteral(e)}function scanExponentOfNumericLiteral(e){switch(be){case 101:case 69:switch(next(),be){case 43:case 45:next()}isDecimalDigit(be)||reportError("Exponent part must contain at least one digit",e),skipDecimalDigits()}return new n(G,getTokenString(e),getTokenRange(e))}function skipDecimalDigits(){for(;isDecimalDigit(be);)next()}function skipHexDigits(){for(;isHexDigit(be);)next()}function isAtEnd(){return Ae===$e}function next(){Ae++,updateCurrentCharCode()}function updateCurrentCharCode(){be=xe.charCodeAt(Ae)}function reportError(e){var t=void 0!==arguments[1]?arguments[1]:Ae,r=void 0!==arguments[2]?arguments[2]:Ae,n=getPositionByOffset(t),a=getPositionByOffset(r),s=new i(n,a);je.reportError(s,e)}return{get isWhitespace(){return isWhitespace},get isLineTerminator(){return isLineTerminator},get isIdentifierPart(){return isIdentifierPart},get init(){return init},get getLastToken(){return getLastToken},get nextRegularExpressionLiteralToken(){return nextRegularExpressionLiteralToken},get nextTemplateLiteralToken(){return nextTemplateLiteralToken},get setIndex(){return setIndex},get getPosition(){return getPosition},get nextCloseAngle(){return nextCloseAngle},get peekJsxToken(){return peekJsxToken},get nextJsxToken(){return nextJsxToken},get nextJsxTextToken(){return nextJsxTextToken},get nextToken(){return nextToken},get peekTokenNoLineTerminator(){return peekTokenNoLineTerminator},get peek(){return peek},get peekLookahead(){return peekLookahead},get peekToken(){return peekToken},get peekType(){return peekType},get peekLocation(){return peekLocation},get peekTokenLookahead(){return peekTokenLookahead},get isAtEnd(){return isAtEnd}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/semantics/ConstructorValidator.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTreeType.js","traceur@0.0.111/src/semantics/ConstructorValidator.js")).SUPER_EXPRESSION,t=function(t){function ConstructorValidator(e){$traceurRuntime.superConstructor(ConstructorValidator).call(this),this.reporter_=e,this.hasError=!1}return $traceurRuntime.createClass(ConstructorValidator,{visitClassExpression:function(e){this.visitAny(e.superClass)},visitClassDeclaration:function(e){this.visitAny(e.superClass)},visitThisExpression:function(e){this.reportError_(e.location,"this")},visitCallExpression:function(t){if(t.operand.type===e)return this.visitAny(t.args),void(this.found=!0);$traceurRuntime.superGet(this,ConstructorValidator.prototype,"visitCallExpression").call(this,t)},visitSuperExpression:function(e){this.reportError_(e.location,"super property")},reportError_:function(e,t){this.reporter_.reportError(e,"'"+t+"' is not allowed before super()"),this.hasError=!0,this.found=!0}},{},t)}($traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../codegeneration/FindVisitor.js","traceur@0.0.111/src/semantics/ConstructorValidator.js")).FindVisitor);function validateConstructor(e,r){var n=new t(r);return n.visitAny(e),!n.hasError&&(!!n.found||(r.reportError(e.location,"Derived constructor must call super()"),!1))}return{get validateConstructor(){return validateConstructor}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/staticsemantics/validateParameters.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/ParseTreeVisitor.js","traceur@0.0.111/src/staticsemantics/validateParameters.js")).ParseTreeVisitor,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../util/StringSet.js","traceur@0.0.111/src/staticsemantics/validateParameters.js")).StringSet,r=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/Keywords.js","traceur@0.0.111/src/staticsemantics/validateParameters.js")).isStrictKeyword,n=function(e){function ParameterValidationVisitor(e,r){$traceurRuntime.superConstructor(ParameterValidationVisitor).call(this),this.reporter_=r,this.names_=new t,this.errors_=[],this.reportStrictKeywords_=e,this.reportDuplicates_=e}return $traceurRuntime.createClass(ParameterValidationVisitor,{visitBindingIdentifier:function(e){var t=e.identifierToken.toString();this.reportStrictKeywords_&&(r(t)||"eval"===t||"arguments"===t)&&this.reporter_.reportError(e.location,t+" is a reserved identifier"),this.names_.has(t)&&this.maybeReportDuplicateError_(t,e.location),this.names_.add(t)},visitBindingElement:function(e){null!==e.initializer&&this.reportEarlierErrors_(),this.visitAny(e.binding)},visitRestParameter:function(e){this.reportEarlierErrors_(),this.visitAny(e.identifier)},visitFormalParameter:function(e){this.visitAny(e.parameter)},visitArrayPattern:function(e){this.reportEarlierErrors_(),$traceurRuntime.superGet(this,ParameterValidationVisitor.prototype,"visitArrayPattern").call(this,e)},visitObjectPattern:function(e){this.reportEarlierErrors_(),$traceurRuntime.superGet(this,ParameterValidationVisitor.prototype,"visitObjectPattern").call(this,e)},reportDuplicateError_:function(e,t){this.reporter_.reportError(t,"Duplicate parameter name "+e)},maybeReportDuplicateError_:function(e,t){this.reportDuplicates_?this.reportDuplicateError_(e,t):this.errors_.push(e,t)},reportEarlierErrors_:function(){if(!this.reportDuplicates_){this.reportDuplicates_=!0;for(var e=0;e<this.errors_.length;e+=2){var t=this.errors_[e],r=this.errors_[e+1];this.reportDuplicateError_(t,r)}}}},{},e)}(e),$__default=function(e,t,r){new n(t,r).visitAny(e)};return{get default(){return $__default}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/staticsemantics/isValidSimpleAssignmentTarget.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTreeType.js","traceur@0.0.111/src/staticsemantics/isValidSimpleAssignmentTarget.js")),t=e.IDENTIFIER_EXPRESSION,r=e.MEMBER_EXPRESSION,n=e.MEMBER_LOOKUP_EXPRESSION,i=e.PAREN_EXPRESSION;function isValidSimpleAssignmentTarget(e,a){switch(e.type){case t:if(!a)return!0;var s=e.identifierToken.value;return"arguments"!==s&&"eval"!==s;case i:return isValidSimpleAssignmentTarget(e.expression,a);case r:case n:return!0;default:return!1}}return{get default(){return isValidSimpleAssignmentTarget}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/syntax/Parser.js",[],(function(){"use strict";var e,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../codegeneration/FindVisitor.js","traceur@0.0.111/src/syntax/Parser.js")).FindVisitor,r=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./IdentifierToken.js","traceur@0.0.111/src/syntax/Parser.js")).IdentifierToken,n=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./trees/ParseTreeType.js","traceur@0.0.111/src/syntax/Parser.js")),i=n.ARRAY_LITERAL,a=n.BINDING_IDENTIFIER,s=n.CALL_EXPRESSION,o=n.COMPUTED_PROPERTY_NAME,u=n.COVER_FORMALS,c=n.FORMAL_PARAMETER_LIST,l=n.IDENTIFIER_EXPRESSION,m=n.LITERAL_PROPERTY_NAME,p=n.OBJECT_LITERAL,f=n.REST_PARAMETER,h=n.SYNTAX_ERROR_TREE,d=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../Options.js","traceur@0.0.111/src/syntax/Parser.js")).Options,g=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./PredefinedName.js","traceur@0.0.111/src/syntax/Parser.js")),T=g.AS,y=g.ASYNC,R=g.ASYNC_STAR,S=g.AWAIT,_=g.CONSTRUCTOR,v=g.FROM,E=g.GET,M=g.OF,A=g.ON,x=g.SET,$=g.TYPE,C=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../util/SyntaxErrorReporter.js","traceur@0.0.111/src/syntax/Parser.js")).SyntaxErrorReporter,N=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./Scanner.js","traceur@0.0.111/src/syntax/Parser.js")),P=N.getLastToken,b=(N.getPosition,N.init),w=N.isAtEnd,j=N.nextCloseAngle,L=N.nextJsxTextToken,I=N.nextJsxToken,O=N.nextRegularExpressionLiteralToken,F=N.nextTemplateLiteralToken,k=N.nextToken,D=N.peek,B=N.peekJsxToken,z=N.peekLocation,V=N.peekLookahead,G=N.peekToken,U=N.peekTokenLookahead,W=N.peekTokenNoLineTerminator,H=N.peekType,Y=N.setIndex,X=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../util/SourceRange.js","traceur@0.0.111/src/syntax/Parser.js")).SourceRange,J=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./Token.js","traceur@0.0.111/src/syntax/Parser.js")),K=J.Token,q=J.isAssignmentOperator,Q=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./Keywords.js","traceur@0.0.111/src/syntax/Parser.js")).getKeywordType,Z=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../semantics/ConstructorValidator.js","traceur@0.0.111/src/syntax/Parser.js")).validateConstructor,ee=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../staticsemantics/validateParameters.js","traceur@0.0.111/src/syntax/Parser.js")).default,te=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../staticsemantics/isValidSimpleAssignmentTarget.js","traceur@0.0.111/src/syntax/Parser.js")).default,re=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./TokenType.js","traceur@0.0.111/src/syntax/Parser.js")),ne=re.AMPERSAND,ie=re.AND,ae=re.ARROW,se=re.AT,oe=re.BANG,ue=re.BAR,ce=re.BREAK,le=re.CARET,me=re.CASE,pe=re.CATCH,fe=re.CLASS,he=re.CLOSE_ANGLE,de=re.CLOSE_CURLY,ge=re.CLOSE_PAREN,Te=re.CLOSE_SQUARE,ye=re.COLON,Re=re.COMMA,Se=re.CONST,_e=re.CONTINUE,ve=re.DEBUGGER,Ee=re.DEFAULT,Me=re.DELETE,Ae=re.DO,xe=re.DOT_DOT_DOT,$e=re.ELSE,Ce=re.END_OF_FILE,Ne=re.EQUAL,Pe=re.EQUAL_EQUAL,be=re.EQUAL_EQUAL_EQUAL,we=re.ERROR,je=re.EXPORT,Le=re.EXTENDS,Ie=re.FALSE,Oe=re.FINALLY,Fe=re.FOR,ke=re.FUNCTION,De=re.GREATER_EQUAL,Be=re.IDENTIFIER,ze=re.IF,Ve=re.IMPLEMENTS,Ge=re.IMPORT,Ue=re.IN,We=re.INSTANCEOF,He=re.INTERFACE,Ye=re.JSX_IDENTIFIER,Xe=re.LEFT_SHIFT,Je=re.LESS_EQUAL,Ke=re.LET,qe=re.MINUS,Qe=re.MINUS_MINUS,Ze=re.NEW,et=re.NO_SUBSTITUTION_TEMPLATE,tt=re.NOT_EQUAL,rt=re.NOT_EQUAL_EQUAL,nt=re.NULL,it=re.NUMBER,at=re.OPEN_ANGLE,st=re.OPEN_CURLY,ot=re.OPEN_PAREN,ut=re.OPEN_SQUARE,ct=re.OR,lt=re.PACKAGE,mt=re.PERCENT,pt=re.PERIOD,ft=re.PLUS,ht=re.PLUS_PLUS,dt=re.PRIVATE,gt=re.PROTECTED,Tt=re.PUBLIC,yt=re.QUESTION,Rt=re.RETURN,St=re.RIGHT_SHIFT,_t=re.SEMI_COLON,vt=re.SLASH,Et=re.SLASH_EQUAL,Mt=re.STAR,At=re.STAR_STAR,xt=re.STATIC,$t=re.STRING,Ct=re.SUPER,Nt=re.SWITCH,Pt=re.TEMPLATE_HEAD,bt=re.TEMPLATE_TAIL,wt=re.THIS,jt=re.THROW,Lt=re.TILDE,It=re.TRUE,Ot=re.TRY,Ft=re.TYPEOF,kt=re.UNSIGNED_RIGHT_SHIFT,Dt=re.VAR,Bt=re.VOID,zt=re.WHILE,Vt=re.WITH,Gt=re.YIELD,Ut=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./trees/ParseTrees.js","traceur@0.0.111/src/syntax/Parser.js")),Wt=Ut.ArgumentList,Ht=Ut.ArrayComprehension,Yt=Ut.ArrayLiteral,Xt=Ut.ArrayPattern,Jt=Ut.ArrayType,Kt=Ut.ArrowFunction,qt=Ut.AssignmentElement,Qt=Ut.AwaitExpression,Zt=Ut.BinaryExpression,er=Ut.BindingElement,tr=Ut.BindingIdentifier,rr=Ut.Block,nr=Ut.BreakStatement,ir=Ut.CallExpression,ar=Ut.CallSignature,sr=Ut.CaseClause,or=Ut.Catch,ur=Ut.ClassDeclaration,cr=Ut.ClassExpression,lr=Ut.CommaExpression,mr=Ut.ComprehensionFor,pr=Ut.ComprehensionIf,fr=Ut.ComputedPropertyName,hr=Ut.ConditionalExpression,dr=Ut.ConstructSignature,gr=Ut.ConstructorType,Tr=Ut.ContinueStatement,yr=Ut.CoverFormals,Rr=Ut.CoverInitializedName,Sr=Ut.DebuggerStatement,_r=Ut.Annotation,vr=Ut.DefaultClause,Er=Ut.DoWhileStatement,Mr=Ut.EmptyStatement,Ar=Ut.ExportDeclaration,xr=Ut.ExportDefault,$r=Ut.ExportSpecifier,Cr=Ut.ExportSpecifierSet,Nr=Ut.ExportStar,Pr=Ut.ExpressionStatement,br=Ut.Finally,wr=Ut.ForInStatement,jr=Ut.ForOfStatement,Lr=Ut.ForOnStatement,Ir=Ut.ForStatement,Or=Ut.FormalParameter,Fr=Ut.FormalParameterList,kr=Ut.ForwardDefaultExport,Dr=Ut.FunctionBody,Br=Ut.FunctionDeclaration,zr=Ut.FunctionExpression,Vr=Ut.FunctionType,Gr=Ut.GeneratorComprehension,Ur=Ut.GetAccessor,Wr=Ut.IdentifierExpression,Hr=Ut.IfStatement,Yr=Ut.ImportClausePair,Xr=Ut.ImportDeclaration,Jr=Ut.ImportSpecifier,Kr=Ut.ImportSpecifierSet,qr=Ut.ImportedBinding,Qr=Ut.ImportTypeClause,Zr=Ut.IndexSignature,en=Ut.InterfaceDeclaration,tn=Ut.JsxAttribute,rn=Ut.JsxElement,nn=Ut.JsxElementName,an=Ut.JsxPlaceholder,sn=Ut.JsxSpreadAttribute,on=Ut.JsxText,un=Ut.LabelledStatement,cn=Ut.LiteralExpression,ln=Ut.LiteralPropertyName,mn=Ut.MemberExpression,pn=Ut.MemberLookupExpression,fn=Ut.Method,hn=Ut.MethodSignature,dn=Ut.Module,gn=Ut.ModuleSpecifier,Tn=Ut.NameSpaceExport,yn=Ut.NameSpaceImport,Rn=Ut.NamedExport,Sn=Ut.NewExpression,_n=Ut.ObjectLiteral,vn=Ut.ObjectPattern,En=Ut.ObjectPatternField,Mn=Ut.ObjectType,An=Ut.ParenExpression,xn=Ut.PostfixExpression,$n=Ut.PredefinedType,Cn=Ut.PropertyNameAssignment,Nn=Ut.PropertyNameShorthand,Pn=Ut.PropertySignature,bn=Ut.PropertyVariableDeclaration,wn=Ut.RestParameter,jn=Ut.ReturnStatement,Ln=Ut.Script,In=Ut.SetAccessor,On=Ut.SpreadExpression,Fn=Ut.SpreadPatternElement,kn=Ut.SuperExpression,Dn=Ut.SwitchStatement,Bn=Ut.SyntaxErrorTree,zn=Ut.TemplateLiteralExpression,Vn=Ut.TemplateLiteralPortion,Gn=Ut.TemplateSubstitution,Un=Ut.ThisExpression,Wn=Ut.ThrowStatement,Hn=Ut.TryStatement,Yn=Ut.TypeAliasDeclaration,Xn=Ut.TypeArguments,Jn=Ut.TypeName,Kn=Ut.TypeParameter,qn=Ut.TypeParameters,Qn=Ut.TypeReference,Zn=Ut.UnaryExpression,ei=Ut.UnionType,ti=Ut.VariableDeclaration,ri=Ut.VariableDeclarationList,ni=Ut.VariableStatement,ii=Ut.WhileStatement,ai=Ut.WithStatement,si=Ut.YieldExpression,oi=(e=t,$traceurRuntime.createClass((function ValidateObjectLiteral(){$traceurRuntime.superConstructor(ValidateObjectLiteral).call(this),this.errorToken=null}),{visitCoverInitializedName:function(e){this.errorToken=e.equalToken,this.found=!0}},{},e));var ui=$traceurRuntime.createClass((function ui(e,t){this.outer=e,this.kind=t}),{isTopMost:function(){return 3&this.kind},isMethod:function(){return 16&this.kind},isDerivedConstructor:function(){return 32&this.kind},isArrowFunction:function(){return 8&this.kind},isGenerator:function(){return 64&this.kind},isAsyncFunction:function(){return 128&this.kind},isAsyncGenerator:function(){return this.isGenerator()&&this.isAsyncFunction()}},{}),ci=$traceurRuntime.createClass((function ci(e){var t=void 0!==arguments[1]?arguments[1]:new C,r=void 0!==arguments[2]?arguments[2]:new d;this.errorReporter_=t,b(t,e,this,r),this.options_=r,this.coverInitializedNameCount_=0,this.strictMode_=!1,this.annotations_=[],this.functionState_=null}),{get allowYield_(){return this.functionState_.isGenerator()},get allowAwait_(){return this.functionState_.isAsyncFunction()},get allowForOn_(){return this.functionState_.isAsyncFunction()},parseScript:function(){this.strictMode_=!1;var e=this.getTreeStartLocation_(),t=this.pushFunctionState_(1),r=this.parseStatementList_(!0);return this.eat_(Ce),this.popFunctionState_(t),new Ln(this.getTreeLocation_(e),r,null)},pushFunctionState_:function(e){return this.functionState_=new ui(this.functionState_,e)},popFunctionState_:function(e){if(e!=this.functionState_)throw new Error("Internal error");this.functionState_=this.functionState_.outer},parseStatementList_:function(e){for(var t,r=[];(t=H())!==de&&t!==Ce;){var n=this.parseStatementListItem_(t);e&&(n.isDirectivePrologue()?n.isUseStrictDirective()&&(this.strictMode_=!0,e=!1):e=!1),r.push(n)}return r},parseStatementListItem_:function(e){switch(e){case Ke:case Se:if(this.options_.blockBinding)return this.parseVariableStatement_();break;case fe:if(this.options_.classes)return this.parseClassDeclaration_();break;case ke:return this.parseFunctionDeclaration_();case Be:if(this.options_.types&&this.peekPredefinedString_($)&&V(Be))return this.parseTypeAliasDeclaration_()}return this.parseStatementWithType_(e)},parseModule:function(){var e=this.getTreeStartLocation_(),t=this.pushFunctionState_(2),r=this.parseModuleItemList_();return this.eat_(Ce),this.popFunctionState_(t),new dn(this.getTreeLocation_(e),r,null)},parseModuleItemList_:function(){this.strictMode_=!0;for(var e,t=[];(e=H())!==Ce;){var r=this.parseModuleItem_(e);t.push(r)}return t},parseModuleItem_:function(e){switch(e){case Ge:return this.parseImportDeclaration_();case je:return this.parseExportDeclaration_();case se:if(this.options_.annotations)return this.parseAnnotatedDeclarations_(!0)}return this.parseStatementListItem_(e)},parseModuleSpecifier_:function(){var e=this.getTreeStartLocation_(),t=this.eat_($t);return new gn(this.getTreeLocation_(e),t)},parseNameSpaceImport_:function(){var e=this.getTreeStartLocation_();this.eat_(Mt),this.eatId_(T);var t=this.parseImportedBinding_();return new yn(this.getTreeLocation_(e),t)},parseImportDeclaration_:function(){var e=this.getTreeStartLocation_();this.eat_(Ge);var t=null;D($t)||(t=this.parseImportClause_(!0,this.options_.types),this.eatId_(v));var r=this.parseModuleSpecifier_();return this.eatPossibleImplicitSemiColon_(),new Xr(this.getTreeLocation_(e),t,r)},parseImportClause_:function(e,t){switch(H()){case Mt:return this.parseNameSpaceImport_();case st:return this.parseImportSpecifierSet_();case Be:if(t&&this.peekPredefinedString_($)){var r=this.getTreeStartLocation_(),n=U();if(n.type===st||n.type===Be&&n.value!==v){this.eatId_($);var i=this.parseImportClause_(e,!1);return new Qr(this.getTreeLocation_(r),i)}}if(e){var a=this.getTreeStartLocation_(),s=this.parseImportedBinding_();if(this.eatIf_(Re)){var o=this.parseImportClause_(!1,!1);return new Yr(this.getTreeLocation_(a),s,o)}return s}}return this.parseUnexpectedToken_()},parseImportSpecifierSet_:function(){var e=this.getTreeStartLocation_(),t=[];for(this.eat_(st);!D(de)&&!w()&&(t.push(this.parseImportSpecifier_()),this.eatIf_(Re)););return this.eat_(de),new Kr(this.getTreeLocation_(e),t)},parseImportedBinding_:function(){var e=this.getTreeStartLocation_(),t=this.parseBindingIdentifier_();return new qr(this.getTreeLocation_(e),t)},parseImportSpecifier_:function(){var e,t=this.getTreeStartLocation_(),r=G().isKeyword(),n=this.eatIdName_();return r||this.peekPredefinedString_(T)?(this.eatId_(T),e=this.parseImportedBinding_()):(e=new qr(n.location,new tr(n.location,n)),n=null),new Jr(this.getTreeLocation_(t),e,n)},parseExportDeclaration_:function(){var e,t=this.getTreeStartLocation_();this.eat_(je);var r=this.popAnnotations_();switch(H()){case Se:case Ke:if(this.options_.blockBinding){e=this.parseVariableStatement_();break}return this.parseUnexpectedToken_();case Dt:e=this.parseVariableStatement_();break;case ke:e=this.parseFunctionDeclaration_();break;case fe:e=this.parseClassDeclaration_();break;case Ee:e=this.parseExportDefault_();break;case st:case Mt:e=this.parseNamedExport_();break;case Be:if(this.options_.asyncFunctions&&this.peekPredefinedString_(y)){var n=this.eatId_();e=this.parseAsyncFunctionDeclaration_(n)}else if(this.options_.types&&this.peekPredefinedString_($)&&V(Be))e=this.parseTypeAliasDeclaration_();else{if(!this.options_.exportFromExtended)return this.parseUnexpectedToken_();e=this.parseNamedExport_()}break;default:if(!G().isKeyword())return this.parseUnexpectedToken_();e=this.parseNamedExport_()}return new Ar(this.getTreeLocation_(t),e,r)},parseExportDefault_:function(){var e,t=this.getTreeStartLocation_(),n=this.eat_(Ee);if(this.options_.exportFromExtended&&this.peekPredefinedString_(v)){var i=new r(n.location,Ee),a=new kr(this.getTreeLocation_(t),i);this.eatId_(v);var s=this.parseModuleSpecifier_();return new Rn(this.getTreeLocation_(t),a,s)}switch(H()){case ke:var o=this.parseFunctionExpression_();o.name&&(o=new Br(o.location,o.name,o.functionKind,o.parameterList,o.typeAnnotation,o.annotations,o.body)),e=o;break;case fe:if(!this.options_.classes)return this.parseSyntaxError_("Unexpected reserved word");var u=this.parseClassExpression_();u.name&&(u=new ur(u.location,u.name,u.superClass,u.elements,u.annotations,u.typeParameters)),e=u;break;default:e=this.parseAssignmentExpression_(!0),this.eatPossibleImplicitSemiColon_()}return new xr(this.getTreeLocation_(t),e)},parseNamedExport_:function(){var e,t=this.getTreeStartLocation_(),r=null;switch(H()){case st:e=this.parseExportSpecifierSet_(),this.peekPredefinedString_(v)?(this.eatId_(v),r=this.parseModuleSpecifier_()):this.validateExportSpecifierSet_(e);break;case Mt:e=this.parseExportStar_(),this.eatId_(v),r=this.parseModuleSpecifier_();break;default:e=this.parseForwardDefaultExport_(),this.eatId_(v),r=this.parseModuleSpecifier_()}return this.eatPossibleImplicitSemiColon_(),new Rn(this.getTreeLocation_(t),e,r)},parseExportStar_:function(){var e=this.getTreeStartLocation_();if(this.eat_(Mt),this.peekPredefinedString_(T)){this.eatId_(T);var t=this.eatIdName_();return new Tn(this.getTreeLocation_(e),t)}return new Nr(this.getTreeLocation_(e))},parseExportSpecifierSet_:function(){var e=this.getTreeStartLocation_();this.eat_(st);for(var t=[this.parseExportSpecifier_()];this.eatIf_(Re)&&!D(de);)t.push(this.parseExportSpecifier_());return this.eat_(de),new Cr(this.getTreeLocation_(e),t)},parseExportSpecifier_:function(){var e=this.getTreeStartLocation_(),t=this.eatIdName_(),r=null;return this.peekPredefinedString_(T)&&(this.eatId_(),r=this.eatIdName_()),new $r(this.getTreeLocation_(e),t,r)},parseForwardDefaultExport_:function(){var e=this.getTreeStartLocation_(),t=this.eatIdName_();return new kr(this.getTreeLocation_(e),t)},validateExportSpecifierSet_:function(e){for(var t=0;t<e.specifiers.length;t++){var r=e.specifiers[t];Q(r.lhs.value)&&this.reportError_(r.lhs.location,"Unexpected token "+r.lhs.value)}},peekId_:function(e){return e===Be||!this.strictMode_&&G().isStrictKeyword()},peekIdName_:function(e){return e.type===Be||e.isKeyword()},parseClassShared_:function(e){var t=this.getTreeStartLocation_(),r=this.strictMode_;this.strictMode_=!0,this.eat_(fe);var n=null,i=null,a=[];e!==ur&&(D(Le)||D(st))||(n=this.parseBindingIdentifier_(),this.options_.types&&(i=this.parseTypeParametersOpt_()),a=this.popAnnotations_());var s=null;this.eatIf_(Le)&&(s=this.parseLeftHandSideExpression_(),s=this.coverFormalsToParenExpression_(s)),this.eat_(st);var o=this.parseClassElements_(s);return this.eat_(de),this.strictMode_=r,new e(this.getTreeLocation_(t),n,s,o,a,i)},parseClassDeclaration_:function(){return this.parseClassShared_(ur)},parseClassExpression_:function(){return this.parseClassShared_(cr)},parseClassElements_:function(e){for(var t=[];;)if(H()===_t)k();else{if(!this.peekClassElement_(H()))break;t.push(this.parseClassElement_(e))}return t},peekClassElement_:function(e){return this.peekPropertyName_(e)||e===Mt&&this.options_.generators||e===se&&this.options_.annotations},parsePropertyName_:function(){return D(ut)?this.parseComputedPropertyName_():this.parseLiteralPropertyName_()},parseLiteralPropertyName_:function(){var e=this.getTreeStartLocation_(),t=k();return new ln(this.getTreeLocation_(e),t)},parseComputedPropertyName_:function(){var e=this.getTreeStartLocation_();this.eat_(ut);var t=this.parseAssignmentExpression_(!0);return this.eat_(Te),new fr(this.getTreeLocation_(e),t)},parseStatement:function(){var e=this.pushFunctionState_(240),t=this.parseModuleItem_(H());return this.popFunctionState_(e),t},parseStatements:function(){var e=this.pushFunctionState_(240),t=this.parseModuleItemList_();return this.popFunctionState_(e),t},parseStatement_:function(){return this.parseStatementWithType_(H())},parseStatementWithType_:function(e){switch(e){case Rt:return this.parseReturnStatement_();case Dt:return this.parseVariableStatement_();case ze:return this.parseIfStatement_();case Fe:return this.parseForStatement_();case ce:return this.parseBreakStatement_();case Nt:return this.parseSwitchStatement_();case jt:return this.parseThrowStatement_();case zt:return this.parseWhileStatement_();case se:if(this.options_.annotations)return this.parseAnnotatedDeclarations_(!1);break;case _e:return this.parseContinueStatement_();case ve:return this.parseDebuggerStatement_();case Ae:return this.parseDoWhileStatement_();case st:return this.parseBlock_();case _t:return this.parseEmptyStatement_();case Ot:return this.parseTryStatement_();case Vt:return this.parseWithStatement_();case He:if(this.options_.types)return this.parseInterfaceDeclaration_()}return this.parseFallThroughStatement_()},parseFunctionDeclaration_:function(){return this.parseFunction_(Br)},parseFunctionExpression_:function(){return this.parseFunction_(zr)},parseAsyncFunctionDeclaration_:function(e){return this.parseAsyncFunction_(e,Br)},parseAsyncFunctionExpression_:function(e){return this.parseAsyncFunction_(e,zr)},peekAsyncStar_:function(){return this.options_.asyncGenerators&&D(Mt)},parseAsyncFunction_:function(e,t){var n=e.location.start;this.eat_(ke);var i=132;this.peekAsyncStar_()&&(i|=64,this.eat_(Mt),e=new r(e.location,R));var a=this.pushFunctionState_(i),s=this.parseFunction2_(n,e,t);return this.popFunctionState_(a),s},parseFunction_:function(e){var t=this.getTreeStartLocation_();this.eat_(ke);var r=null,n=4;this.options_.generators&&D(Mt)&&(r=this.eat_(Mt),n|=64);var i=this.pushFunctionState_(n),a=this.parseFunction2_(t,r,e);return this.popFunctionState_(i),a},parseFunction2_:function(e,t,r){var n=null,i=[];(r===Br||this.peekBindingIdentifier_(H()))&&(n=this.parseBindingIdentifier_(),i=this.popAnnotations_()),this.eat_(ot);var a=this.parseFormalParameters_();this.eat_(ge);var s=this.parseTypeAnnotationOpt_(),o=this.parseFunctionBody_(a);return new r(this.getTreeLocation_(e),n,t,a,s,i,o)},peekRest_:function(e){return e===xe&&this.options_.restParameters},parseFormalParameters_:function(){var e=this.getTreeStartLocation_(),t=[];this.pushAnnotations_();var r=H();if(this.peekRest_(r))t.push(this.parseFormalRestParameter_());else for(this.peekFormalParameter_(H())&&t.push(this.parseFormalParameter_(!1));this.eatIf_(Re);){if(this.pushAnnotations_(),this.peekRest_(H())){t.push(this.parseFormalRestParameter_());break}t.push(this.parseFormalParameter_(!1))}return new Fr(this.getTreeLocation_(e),t)},peekFormalParameter_:function(e){return this.peekBindingElement_(e)},parseFormalParameter_:function(e){var t=this.getTreeStartLocation_(),r=this.parseBindingElementBinding_(),n=this.parseTypeAnnotationOpt_(),i=this.parseBindingElementInitializer_(e);return new Or(this.getTreeLocation_(t),new er(this.getTreeLocation_(t),r,i),n,this.popAnnotations_())},parseFormalRestParameter_:function(){var e=this.getTreeStartLocation_(),t=this.parseRestParameter_(),r=this.parseTypeAnnotationOpt_();return new Or(this.getTreeLocation_(e),t,r,this.popAnnotations_())},parseRestParameter_:function(){var e=this.getTreeStartLocation_();this.eat_(xe);var t=this.parseBindingIdentifier_(),r=this.parseTypeAnnotationOpt_();return new wn(this.getTreeLocation_(e),t,r)},parseFunctionBody_:function(e){var t=this.getTreeStartLocation_();this.eat_(st);var r=this.strictMode_,n=this.parseStatementList_(!r);return ee(e,this.strictMode_,this.errorReporter_),this.strictMode_=r,this.eat_(de),new Dr(this.getTreeLocation_(t),n)},parseSpreadExpression_:function(){var e=this.getTreeStartLocation_();this.eat_(xe);var t=this.parseAssignmentExpression_(!0);return new On(this.getTreeLocation_(e),t)},parseBlock_:function(){var e=this.getTreeStartLocation_();this.eat_(st);var t=this.parseStatementList_(!1);return this.eat_(de),new rr(this.getTreeLocation_(e),t)},parseVariableStatement_:function(){var e=this.getTreeStartLocation_(),t=this.parseVariableDeclarationList_(!0,!0);return this.checkInitializers_(t),this.eatPossibleImplicitSemiColon_(),new ni(this.getTreeLocation_(e),t)},parseVariableDeclarationList_:function(e,t){var r=H();switch(r){case Se:case Ke:case Dt:k();break;default:throw Error("unreachable")}var n=this.getTreeStartLocation_(),i=[];for(i.push(this.parseVariableDeclaration_(r,e,t));this.eatIf_(Re);)i.push(this.parseVariableDeclaration_(r,e,t));return new ri(this.getTreeLocation_(n),r,i)},parseVariableDeclaration_:function(e,t,r){var n,i,a=!1!==r,s=this.getTreeStartLocation_();this.peekPattern_(H())?(n=this.parseBindingPattern_(),i=null):(n=this.parseBindingIdentifier_(),i=this.parseTypeAnnotationOpt_());var o=null;return D(Ne)?o=this.parseInitializer_(t):n.isPattern()&&a&&this.reportError_(n.location,"destructuring must have an initializer"),new ti(this.getTreeLocation_(s),n,i,o)},parseInitializer_:function(e){return this.eat_(Ne),this.parseAssignmentExpression_(e)},parseInitializerOpt_:function(e){return this.eatIf_(Ne)?this.parseAssignmentExpression_(e):null},parseEmptyStatement_:function(){var e=this.getTreeStartLocation_();return this.eat_(_t),new Mr(this.getTreeLocation_(e))},parseFallThroughStatement_:function(){var e,t=this.getTreeStartLocation_();switch(H()){case st:return this.parseUnexpectedToken_();case ke:case fe:return this.parseUnexpectedReservedWord_(G());case Ke:if(V(ut))return this.parseSyntaxError_("A statement cannot start with 'let ['")}if(this.options_.asyncFunctions&&this.peekPredefinedString_(y)&&V(ke)){var r=this.eatId_();if(null!==W())return this.parseAsyncFunctionDeclaration_(r);e=new Wr(this.getTreeLocation_(t),r)}else e=this.parseExpression_(!0);if(e.type===l&&this.eatIf_(ye)){var n=e.identifierToken,i=this.parseStatement_();return new un(this.getTreeLocation_(t),n,i)}return this.eatPossibleImplicitSemiColon_(),new Pr(this.getTreeLocation_(t),e)},parseIfStatement_:function(){var e=this.getTreeStartLocation_();this.eat_(ze),this.eat_(ot);var t=this.parseExpression_(!0);this.eat_(ge);var r=this.parseStatement_(),n=null;return this.eatIf_($e)&&(n=this.parseStatement_()),new Hr(this.getTreeLocation_(e),t,r,n)},parseDoWhileStatement_:function(){var e=this.getTreeStartLocation_();this.eat_(Ae);var t=this.parseStatement_();this.eat_(zt),this.eat_(ot);var r=this.parseExpression_(!0);return this.eat_(ge),this.eatPossibleImplicitSemiColon_(),new Er(this.getTreeLocation_(e),t,r)},parseWhileStatement_:function(){var e=this.getTreeStartLocation_();this.eat_(zt),this.eat_(ot);var t=this.parseExpression_(!0);this.eat_(ge);var r=this.parseStatement_();return new ii(this.getTreeLocation_(e),t,r)},parseForStatement_:function(){var e=this.getTreeStartLocation_();this.eat_(Fe),this.eat_(ot);var t=H();if(this.peekVariableDeclarationList_(t)){var r=this.parseVariableDeclarationList_(!1,!1),n=r.declarations;return n.length>1||function containsInitializer(e){return e.some((function(e){return e.initializer}))}(n)?this.parseForStatement2_(e,r):(t=H())===Ue?this.parseForInStatement_(e,r):this.peekOf_()?this.parseForOfStatement_(e,r):this.allowForOn_&&this.peekOn_()?this.parseForOnStatement_(e,r):(this.checkInitializers_(r),this.parseForStatement2_(e,r))}if(t===_t)return this.parseForStatement2_(e,null);var i=this.coverInitializedNameCount_,a=this.parseExpressionAllowPattern_(!1);return(t=H())===Ue||this.peekOf_()||this.allowForOn_&&this.peekOn_()?(a=this.transformLeftHandSideExpression_(a),this.validateAssignmentTarget_(a,"assignment"),this.peekOf_()?this.parseForOfStatement_(e,a):this.allowForOn_&&this.peekOn_()?this.parseForOnStatement_(e,a):this.parseForInStatement_(e,a)):(this.ensureNoCoverInitializedNames_(a,i),this.parseForStatement2_(e,a))},peekOf_:function(){return this.options_.forOf&&this.peekPredefinedString_(M)},peekOn_:function(){return this.options_.forOn&&this.peekPredefinedString_(A)},parseForOfStatement_:function(e,t){this.eatId_();var r=this.parseExpression_(!0);this.eat_(ge);var n=this.parseStatement_();return new jr(this.getTreeLocation_(e),t,r,n)},parseForOnStatement_:function(e,t){this.eatId_();var r=this.parseExpression_(!0);this.eat_(ge);var n=this.parseStatement_();return new Lr(this.getTreeLocation_(e),t,r,n)},checkInitializers_:function(e){if(this.options_.blockBinding&&e.declarationType===Se)for(var t=e.declarationType,r=0;r<e.declarations.length&&this.checkInitializer_(t,e.declarations[r]);r++);},checkInitializer_:function(e,t){return!this.options_.blockBinding||e!==Se||null!==t.initializer||(this.reportError_(t.location,"const variables must have an initializer"),!1)},peekVariableDeclarationList_:function(e){switch(e){case Dt:return!0;case Se:case Ke:return this.options_.blockBinding;default:return!1}},parseForStatement2_:function(e,t){this.eat_(_t);var r=null;D(_t)||(r=this.parseExpression_(!0)),this.eat_(_t);var n=null;D(ge)||(n=this.parseExpression_(!0)),this.eat_(ge);var i=this.parseStatement_();return new Ir(this.getTreeLocation_(e),t,r,n,i)},parseForInStatement_:function(e,t){this.eat_(Ue);var r=this.parseExpression_(!0);this.eat_(ge);var n=this.parseStatement_();return new wr(this.getTreeLocation_(e),t,r,n)},parseContinueStatement_:function(){var e=this.getTreeStartLocation_();this.eat_(_e);var t=null;return this.peekImplicitSemiColon_()||(t=this.eatIdOpt_()),this.eatPossibleImplicitSemiColon_(),new Tr(this.getTreeLocation_(e),t)},parseBreakStatement_:function(){var e=this.getTreeStartLocation_();this.eat_(ce);var t=null;return this.peekImplicitSemiColon_()||(t=this.eatIdOpt_()),this.eatPossibleImplicitSemiColon_(),new nr(this.getTreeLocation_(e),t)},parseReturnStatement_:function(){var e=this.getTreeStartLocation_(),t=this.eat_(Rt);this.functionState_.isTopMost()&&this.reportError_(t.location,"Illegal return statement");var r=null;return this.peekImplicitSemiColon_()||(r=this.parseExpression_(!0)),this.eatPossibleImplicitSemiColon_(),new jn(this.getTreeLocation_(e),r)},parseYieldExpression_:function(e){var t=this.getTreeStartLocation_();this.eat_(Gt);var r=null,n=!1,i=W();if(null!==i)switch(i.type){case de:case ge:case Te:case ye:case Re:case Ce:case _t:break;default:n=this.eatIf_(Mt),r=this.parseAssignmentExpression_(e)}return new si(this.getTreeLocation_(t),r,n)},parseWithStatement_:function(){var e=this.getTreeStartLocation_(),t=this.eat_(Vt);this.strictMode_&&this.reportError_(t.location,"Strict mode code may not include a with statement"),this.eat_(ot);var r=this.parseExpression_(!0);this.eat_(ge);var n=this.parseStatement_();return new ai(this.getTreeLocation_(e),r,n)},parseSwitchStatement_:function(){var e=this.getTreeStartLocation_();this.eat_(Nt),this.eat_(ot);var t=this.parseExpression_(!0);this.eat_(ge),this.eat_(st);var r=this.parseCaseClauses_();return this.eat_(de),new Dn(this.getTreeLocation_(e),t,r)},parseCaseClauses_:function(){for(var e=!1,t=[];;){var r=this.getTreeStartLocation_();switch(H()){case me:k();var n=this.parseExpression_(!0);this.eat_(ye);var i=this.parseCaseStatementsOpt_();t.push(new sr(this.getTreeLocation_(r),n,i));break;case Ee:var a=k();e?this.reportError_(a.location,"Switch statements may have at most one 'default' clause"):e=!0,this.eat_(ye),t.push(new vr(this.getTreeLocation_(r),this.parseCaseStatementsOpt_()));break;default:return t}}},parseCaseStatementsOpt_:function(){for(var e,t=[];;){switch(e=H()){case me:case Ee:case de:case Ce:return t}t.push(this.parseStatementListItem_(e))}},parseThrowStatement_:function(){var e=this.getTreeStartLocation_();this.eat_(jt);var t=null;return this.peekImplicitSemiColon_()||(t=this.parseExpression_(!0)),this.eatPossibleImplicitSemiColon_(),new Wn(this.getTreeLocation_(e),t)},parseTryStatement_:function(){var e=this.getTreeStartLocation_();this.eat_(Ot);var t=this.parseBlock_(),r=null;D(pe)&&(r=this.parseCatch_());var n=null;if(D(Oe)&&(n=this.parseFinallyBlock_()),null===r&&null===n){var i=G();this.reportError_(i.location,"'catch' or 'finally' expected.")}return new Hn(this.getTreeLocation_(e),t,r,n)},parseCatch_:function(){var e,t=this.getTreeStartLocation_();this.eat_(pe),this.eat_(ot),e=this.peekPattern_(H())?this.parseBindingPattern_():this.parseBindingIdentifier_(),this.eat_(ge);var r=this.parseBlock_();return new or(this.getTreeLocation_(t),e,r)},parseFinallyBlock_:function(){var e=this.getTreeStartLocation_();this.eat_(Oe);var t=this.parseBlock_();return new br(this.getTreeLocation_(e),t)},parseDebuggerStatement_:function(){var e=this.getTreeStartLocation_();return this.eat_(ve),this.eatPossibleImplicitSemiColon_(),new Sr(this.getTreeLocation_(e))},parsePrimaryExpression_:function(){switch(H()){case fe:return this.options_.classes?this.parseClassExpression_():this.parseUnexpectedReservedWord_(G());case wt:return this.parseThisExpression_();case Be:var e=this.parseIdentifierExpression_();if(this.options_.asyncFunctions&&e.identifierToken.value===y){var t=W();if(t&&t.type===ke){var r=e.identifierToken;return this.parseAsyncFunctionExpression_(r)}}return e;case it:case $t:case It:case Ie:case nt:return this.parseLiteralExpression_();case ut:return this.parseArrayLiteral_();case st:return this.parseObjectLiteral_();case ot:return this.parsePrimaryExpressionStartingWithParen_();case vt:case Et:return this.parseRegularExpressionLiteral_();case et:case Pt:if(this.options_.templateLiterals)return this.parseTemplateLiteral_(null);break;case Ve:case He:case lt:case dt:case gt:case Tt:case xt:case Gt:return this.strictMode_&&this.reportReservedIdentifier_(k()),this.parseIdentifierExpression_();case at:if(this.options_.jsx)return this.parseJsxElement_();break;case Ce:return this.parseSyntaxError_("Unexpected end of input")}var n=G();return n.isKeyword()?this.parseUnexpectedReservedWord_(n):this.parseUnexpectedToken_(n)},parseSuperExpression_:function(e){for(var t=this.getTreeStartLocation_(),r=this.functionState_;r&&r.isArrowFunction();)r=r.outer;var n=this.eat_(Ct);r&&r.isMethod()||this.reportError_(n.location,"super is only allowed in methods");var i=new kn(this.getTreeLocation_(t)),a=H();if(e)return a===ut?this.parseMemberLookupExpression_(t,i):this.parseMemberExpression_(t,i);switch(a){case ut:return this.parseMemberLookupExpression_(t,i);case pt:return this.parseMemberExpression_(t,i);case ot:var s=this.parseCallExpression_(t,i);return r.isDerivedConstructor()||this.reportError_(n.location,"super call is only allowed in derived constructor"),s}return this.parseUnexpectedToken_()},parseThisExpression_:function(){var e=this.getTreeStartLocation_();return this.eat_(wt),new Un(this.getTreeLocation_(e))},peekBindingIdentifier_:function(e){return this.peekId_(e)},parseBindingIdentifier_:function(){var e=this.getTreeStartLocation_(),t=this.eatId_();return new tr(this.getTreeLocation_(e),t)},parseIdentifierExpression_:function(){var e=this.getTreeStartLocation_(),t=this.eatId_();return new Wr(this.getTreeLocation_(e),t)},parseIdentifierNameExpression_:function(){var e=this.getTreeStartLocation_(),t=this.eatIdName_();return new Wr(this.getTreeLocation_(e),t)},parseLiteralExpression_:function(){var e=this.getTreeStartLocation_(),t=this.nextLiteralToken_();return new cn(this.getTreeLocation_(e),t)},nextLiteralToken_:function(){return k()},parseRegularExpressionLiteral_:function(){var e=this.getTreeStartLocation_(),t=O();return new cn(this.getTreeLocation_(e),t)},peekSpread_:function(e){return e===xe&&this.options_.spread},parseArrayLiteral_:function(){var e,t=this.getTreeStartLocation_(),r=[];this.eat_(ut);var n=H();if(n===Fe&&this.options_.arrayComprehension)return this.parseArrayComprehension_(t);for(;;){if((n=H())===Re)e=null;else if(this.peekSpread_(n))e=this.parseSpreadExpression_();else{if(n===Te||n===Ce)break;e=this.parseAssignmentExpression_(!0)}r.push(e),(n=H())!==Te&&this.eat_(Re)}return this.eat_(Te),new Yt(this.getTreeLocation_(t),r)},parseArrayComprehension_:function(e){var t=this.parseComprehensionList_(),r=this.parseAssignmentExpression_(!0);return this.eat_(Te),new Ht(this.getTreeLocation_(e),t,r)},parseComprehensionList_:function(){for(var e=[this.parseComprehensionFor_()];;)switch(H()){case Fe:e.push(this.parseComprehensionFor_());break;case ze:e.push(this.parseComprehensionIf_());break;default:return e}},parseComprehensionFor_:function(){var e=this.getTreeStartLocation_();this.eat_(Fe),this.eat_(ot);var t=this.parseForBinding_();this.eatId_(M);var r=this.parseExpression_(!0);return this.eat_(ge),new mr(this.getTreeLocation_(e),t,r)},parseComprehensionIf_:function(){var e=this.getTreeStartLocation_();this.eat_(ze),this.eat_(ot);var t=this.parseExpression_(!0);return this.eat_(ge),new pr(this.getTreeLocation_(e),t)},parseObjectLiteral_:function(){var e=this.getTreeStartLocation_(),t=[];for(this.eat_(st);this.peekPropertyDefinition_(H());){var r=this.parsePropertyDefinition_();if(t.push(r),!this.eatIf_(Re))break}return this.eat_(de),new _n(this.getTreeLocation_(e),t)},parsePropertyDefinition:function(){var e=this.pushFunctionState_(1),t=this.parsePropertyDefinition_();return this.popFunctionState_(e),t},parsePropertyDefinition_:function(){var e=this.getTreeStartLocation_();if(this.options_.generators&&this.options_.propertyMethods&&D(Mt)){var t=this.pushFunctionState_(80),n=this.parseGeneratorMethod_(e,!1,[]);return this.popFunctionState_(t),n}if(this.options_.spreadProperties&&D(xe))return this.parseSpreadExpression_();var i=G(),a=this.parsePropertyName_();if(this.options_.propertyMethods&&D(ot)){var s=this.pushFunctionState_(16),u=this.parseMethod_(e,!1,null,a,[]);return this.popFunctionState_(s),u}if(this.eatIf_(ye)){var c=this.parseAssignmentExpression_(!0);return new Cn(this.getTreeLocation_(e),a,c)}var l=H();if(a.type===m){var p=a.literalToken;if(p.value===E&&this.peekPropertyName_(l))return this.parseGetAccessor_(e,!1,[]);if(p.value===x&&this.peekPropertyName_(l))return this.parseSetAccessor_(e,!1,[]);if(this.options_.asyncFunctions&&p.value===y&&(this.peekPropertyName_(l)||this.peekAsyncStar_())){var f=p,h=144;this.peekAsyncStar_()&&(h|=64,this.eat_(Mt),f=new r(f.location,R));var d=this.parsePropertyName_(),g=this.pushFunctionState_(h),T=this.parseMethod_(e,!1,f,d,[]);return this.popFunctionState_(g),T}if(this.options_.propertyNameShorthand&&(p.type===Be||p.isStrictKeyword()&&!this.strictMode_||p.type===Gt&&this.allowYield_)){if(D(Ne)){i=k();var S=this.coverInitializedNameCount_,_=this.parseAssignmentExpression_(!0);return this.ensureNoCoverInitializedNames_(_,S),this.coverInitializedNameCount_++,new Rr(this.getTreeLocation_(e),p,i,_)}return new Nn(this.getTreeLocation_(e),p)}this.strictMode_&&p.isStrictKeyword()&&this.reportReservedIdentifier_(p)}return a.type===o&&(i=G()),this.parseUnexpectedToken_(i)},parseClassElement_:function(e){var t=this.getTreeStartLocation_(),r=this.parseAnnotations_(),n=H(),i=!1;switch(n){case xt:var a=k();switch(n=H()){case ot:var s=this.getTreeLocation_(t),o=new ln(s,a),u=this.pushFunctionState_(16),c=this.parseMethod_(t,i,null,o,r);return this.popFunctionState_(u),c;default:return i=!0,n===Mt&&this.options_.generators?this.parseGeneratorMethod_(t,!0,r):this.parseClassElement2_(t,i,r,e)}break;case Mt:return this.parseGeneratorMethod_(t,i,r);default:return this.parseClassElement2_(t,i,r,e)}},parseGeneratorMethod_:function(e,t,r){var n=this.eat_(Mt),i=this.parsePropertyName_(),a=this.pushFunctionState_(80),s=this.parseMethod_(e,t,n,i,r);return this.popFunctionState_(a),s},parseMethod_:function(e,t,r,n,i){this.eat_(ot);var a=this.parseFormalParameters_();this.eat_(ge);var s=this.parseTypeAnnotationOpt_(),o=this.parseFunctionBody_(a);return new fn(this.getTreeLocation_(e),t,r,n,a,s,i,o,null)},parsePropertyVariableDeclaration_:function(e,t,r,n){var i=this.parseTypeAnnotationOpt_(),a=this.parseInitializerOpt_(!0);return this.eat_(_t),new bn(this.getTreeLocation_(e),t,r,i,n,a)},parseClassElement2_:function(e,t,n,i){var a=this.parsePropertyName_(),s=H();if(a.type===m&&a.literalToken.value===E&&this.peekPropertyName_(s))return this.parseGetAccessor_(e,t,n);if(a.type===m&&a.literalToken.value===x&&this.peekPropertyName_(s))return this.parseSetAccessor_(e,t,n);if(this.options_.asyncFunctions&&a.type===m&&a.literalToken.value===y&&(this.peekPropertyName_(s)||this.peekAsyncStar_())){var o=a.literalToken,u=144;this.peekAsyncStar_()&&(u|=64,this.eat_(Mt),o=new r(o.location,R)),a=this.parsePropertyName_();var c=this.pushFunctionState_(u),l=this.parseMethod_(e,t,o,a,n);return this.popFunctionState_(c),l}if(!this.options_.memberVariables||s===ot){var p=16,f=i&&!t&&a.type===m&&a.literalToken.value===_;f&&(p|=32);var h=this.pushFunctionState_(p),d=this.parseMethod_(e,t,null,a,n);return this.popFunctionState_(h),f&&Z(d,this.errorReporter_),d}return this.parsePropertyVariableDeclaration_(e,t,a,n)},parseGetAccessor_:function(e,t,r){var n=this.parsePropertyName_(),i=this.pushFunctionState_(16);this.eat_(ot),this.eat_(ge);var a=this.parseTypeAnnotationOpt_(),s=this.parseFunctionBody_(null);return this.popFunctionState_(i),new Ur(this.getTreeLocation_(e),t,n,a,r,s)},parseSetAccessor_:function(e,t,r){var n=this.parsePropertyName_(),i=this.pushFunctionState_(16);this.eat_(ot);var a=this.parsePropertySetParameterList_();this.eat_(ge);var s=this.parseFunctionBody_(a);return this.popFunctionState_(i),new In(this.getTreeLocation_(e),t,n,a,r,s)},peekPropertyDefinition_:function(e){return this.peekPropertyName_(e)||e===Mt&&this.options_.propertyMethods&&this.options_.generators||e===xe&&this.options_.spreadProperties},peekPropertyName_:function(e){switch(e){case Be:case $t:case it:return!0;case ut:return this.options_.computedPropertyNames;default:return G().isKeyword()}},peekPredefinedString_:function(e){var t=G();return t.type===Be&&t.value===e},parsePropertySetParameterList_:function(){var e,t=this.getTreeStartLocation_();this.pushAnnotations_(),e=this.peekPattern_(H())?this.parseBindingPattern_():this.parseBindingIdentifier_();var r=this.parseTypeAnnotationOpt_(),n=new Or(this.getTreeLocation_(t),new er(this.getTreeLocation_(t),e,null),r,this.popAnnotations_());return new Fr(n.location,[n])},parsePrimaryExpressionStartingWithParen_:function(){var e=this.getTreeStartLocation_();return this.eat_(ot),D(Fe)&&this.options_.generatorComprehension?this.parseGeneratorComprehension_(e):this.parseCoverFormals_(e)},parseSyntaxError_:function(e){var t=k();return this.reportError_(t.location,e),new Bn(t.location,t,e)},parseUnexpectedToken_:function(){var e=void 0!==arguments[0]?arguments[0]:G();return e.type===et?this.parseSyntaxError_("Unexpected token `"):this.parseSyntaxError_("Unexpected token "+e)},parseUnexpectedReservedWord_:function(e){return this.parseSyntaxError_("Unexpected reserved word "+e)},parseExpression_:function(e){var t=this.coverInitializedNameCount_,r=this.parseExpressionAllowPattern_(e);return this.ensureNoCoverInitializedNames_(r,t),r},parseExpression:function(){var e=this.pushFunctionState_(240),t=this.parseExpression_(!0);return this.popFunctionState_(e),t},parseExpressionAllowPattern_:function(e){var t=this.getTreeStartLocation_(),r=this.parseAssignmentExpression_(e);if(D(Re)){for(var n=[r];this.eatIf_(Re);)n.push(this.parseAssignmentExpression_(e));return new lr(this.getTreeLocation_(t),n)}return r},parseAssignmentExpression_:function(e){if(this.allowYield_&&D(Gt))return this.parseYieldExpression_(e);var t=this.getTreeStartLocation_(),r=!1;if(this.options_.asyncFunctions&&this.peekPredefinedString_(y)){var n=G(),i=U();r=i.type===ot&&n.location.end.line===i.location.start.line}var a=this.parseConditional_(e),o=H();if(this.options_.asyncFunctions&&a.type===l&&a.identifierToken.value===y&&o===Be&&null!==W()){var c=this.parseBindingIdentifier_(),m=a.identifierToken;return this.parseArrowFunction_(t,c,m)}if(o===ae&&null!==W()){if(a.type===u||a.type===l)return this.parseArrowFunction_(t,a,null);if(r&&a.type===s){var p=a.operand.identifierToken;return this.parseArrowFunction_(t,a.args,p)}}if(a=this.coverFormalsToParenExpression_(a),this.peekAssignmentOperator_(o)){o===Ne&&(a=this.transformLeftHandSideExpression_(a)),this.validateAssignmentTarget_(a,"assignment");var f=k(),h=this.parseAssignmentExpression_(e);return new Zt(this.getTreeLocation_(t),a,f,h)}return a},transformLeftHandSideExpression_:function(e){switch(e.type){case i:case p:return Y(e.location.start.offset),this.parseAssignmentPattern_()}return e},peekAssignmentOperator_:function(e){return q(e)},parseConditional_:function(e){var t=this.getTreeStartLocation_(),r=this.parseBinaryExpression_(e);if(this.eatIf_(yt)){r=this.toPrimaryExpression_(r);var n=this.parseAssignmentExpression_(!0);this.eat_(ye);var i=this.parseAssignmentExpression_(e);return new hr(this.getTreeLocation_(t),r,n,i)}return r},getPrecedence_:function(e,t){switch(e){case ct:return 1;case ie:return 2;case ue:return 3;case le:return 4;case ne:return 5;case Pe:case be:case tt:case rt:return 6;case he:case De:case We:case Je:case at:return 7;case Ue:return t?7:0;case Xe:case St:case kt:return 8;case qe:case ft:return 9;case vt:case Mt:case mt:return 10;case At:return this.options_.exponentiation?11:0;default:return 0}},parseBinaryExpression_:function(e){var t=this.getTreeStartLocation_(),r=this.parseUnaryExpression_();return this.parseBinaryExpressionHelper_(t,r,-1,e)},parseBinaryExpressionHelper_:function(e,t,r,n){var i=H(),a=this.getPrecedence_(i,n);if(0===a)return t;if(i!==At?a>r:a>=r){var s=k(),o=this.getTreeStartLocation_(),u=this.parseUnaryExpression_(),c=this.parseBinaryExpressionHelper_(o,u,a,n);t=this.toPrimaryExpression_(t),c=this.toPrimaryExpression_(c);var l=new Zt(this.getTreeLocation_(e),t,s,c);return this.parseBinaryExpressionHelper_(e,l,r,n)}return t},parseUnaryExpression_:function(){var e,t=this.getTreeStartLocation_();if(this.allowAwait_&&this.peekPredefinedString_(S))return this.eatId_(),this.allowYield_&&D(Gt)?e=this.parseYieldExpression_(!0):(e=this.parseUnaryExpression_(),e=this.toPrimaryExpression_(e)),new Qt(this.getTreeLocation_(t),e);if(this.peekUnaryOperator_(H())){var r=k(),n=this.parseUnaryExpression_();if((n=this.toPrimaryExpression_(n)).type!==h)switch(r.type){case ht:case Qe:this.validateAssignmentTarget_(n,"prefix operation")}return new Zn(this.getTreeLocation_(t),r,n)}return this.parsePostfixExpression_()},peekUnaryOperator_:function(e){switch(e){case Me:case Bt:case Ft:case ht:case Qe:case ft:case qe:case Lt:case oe:return!0;default:return!1}},parsePostfixExpression_:function(){for(var e=this.getTreeStartLocation_(),t=this.parseLeftHandSideExpression_();this.peekPostfixOperator_(H());){t=this.toPrimaryExpression_(t);var r=k();this.validateAssignmentTarget_(t,"postfix operation"),t=new xn(this.getTreeLocation_(e),t,r)}return t},peekPostfixOperator_:function(e){switch(e){case ht:case Qe:return null!==W()}return!1},parseLeftHandSideExpression_:function(){var e=this.getTreeStartLocation_(),t=this.parseNewExpression_();if(!(t instanceof Sn)||null!==t.args)e:for(;;)switch(H()){case ot:t=this.toPrimaryExpression_(t),t=this.parseCallExpression_(e,t);break;case ut:t=this.toPrimaryExpression_(t),t=this.parseMemberLookupExpression_(e,t);break;case pt:t=this.toPrimaryExpression_(t),t=this.parseMemberExpression_(e,t);break;case et:case Pt:if(!this.options_.templateLiterals)break e;t=this.toPrimaryExpression_(t),this.options_.templateLiterals&&(t=this.parseTemplateLiteral_(t));break;default:break e}return t},parseMemberExpressionNoNew_:function(){var e,t=this.getTreeStartLocation_();e=H()===ke?this.parseFunctionExpression_():this.parsePrimaryExpression_();e:for(;;)switch(H()){case ut:e=this.toPrimaryExpression_(e),e=this.parseMemberLookupExpression_(t,e);break;case pt:e=this.toPrimaryExpression_(e),e=this.parseMemberExpression_(t,e);break;case et:case Pt:if(!this.options_.templateLiterals)break e;e=this.toPrimaryExpression_(e),e=this.parseTemplateLiteral_(e);break;default:break e}return e},parseMemberExpression_:function(e,t){this.eat_(pt);var r=this.eatIdName_();return new mn(this.getTreeLocation_(e),t,r)},parseMemberLookupExpression_:function(e,t){this.eat_(ut);var r=this.parseExpression_(!0);return this.eat_(Te),new pn(this.getTreeLocation_(e),t,r)},parseCallExpression_:function(e,t){var r=this.parseArguments_();return new ir(this.getTreeLocation_(e),t,r)},parseNewExpression_:function(){var e,t;switch(H()){case Ze:t=this.getTreeStartLocation_(),this.eat_(Ze),e=D(Ct)?this.parseSuperExpression_(!0):this.toPrimaryExpression_(this.parseNewExpression_());var r=null;return D(ot)&&(r=this.parseArguments_()),new Sn(this.getTreeLocation_(t),e,r);case Ct:return this.parseSuperExpression_(!1);default:return this.parseMemberExpressionNoNew_()}},parseArguments_:function(){var e=this.getTreeStartLocation_(),t=[];if(this.eat_(ot),!D(ge))for(t.push(this.parseArgument_());this.eatIf_(Re);)t.push(this.parseArgument_());return this.eat_(ge),new Wt(this.getTreeLocation_(e),t)},parseArgument_:function(){return this.peekSpread_(H())?this.parseSpreadExpression_():this.parseAssignmentExpression_(!0)},parseArrowFunction_:function(e,t,r){var n,i=this,s=8;r&&r.value===y&&(s|=128);var o=this.pushFunctionState_(s),makeFormals=function(t){return new Fr(i.getTreeLocation_(e),[new Or(t.location,new er(t.location,t,null),null,[])])};switch(t.type){case l:n=makeFormals(new tr(t.location,t.identifierToken));break;case a:n=makeFormals(t);break;case c:n=t;break;default:n=this.toFormalParameters_(e,t,r)}this.eat_(ae);var u=this.parseConciseBody_(n);return this.popFunctionState_(o),new Kt(this.getTreeLocation_(e),r,n,u)},parseCoverFormals_:function(e){var t=[];if(!D(ge))do{var r=H();if(this.peekRest_(r)){t.push(this.parseRestParameter_());break}t.push(this.parseAssignmentExpression_(!0)),this.eatIf_(Re)}while(!D(ge)&&!w());return this.eat_(ge),new yr(this.getTreeLocation_(e),t)},ensureNoCoverInitializedNames_:function(e,t){if(t!==this.coverInitializedNameCount_){var r=new oi;if(r.visitAny(e),r.found){var n=r.errorToken;this.reportError_(n.location,"Unexpected token "+n)}}},toPrimaryExpression_:function(e){return e.type===u?this.coverFormalsToParenExpression_(e):e},validateCoverFormalsAsParenExpression_:function(e){for(var t=0;t<e.expressions.length;t++)if(e.expressions[t].type===f){var r=new K(xe,e.expressions[t].location);return void this.reportError_(r.location,"Unexpected token "+r)}},coverFormalsToParenExpression_:function(e){if(e.type===u){var t,r=e.expressions;if(0!==r.length)return this.validateCoverFormalsAsParenExpression_(e),t=r.length>1?new lr(r[0].location,r):r[0],new An(e.location,t);this.reportError_(e.location,"Unexpected token )")}return e},toFormalParameters_:function(e,t,r){return Y(e.offset),this.parseArrowFormalParameters_(r)},parseArrowFormalParameters_:function(e){e&&this.eat_(Be),this.eat_(ot);var t=this.parseFormalParameters_();return this.eat_(ge),t},peekArrow_:function(e){return e===ae&&this.options_.arrowFunctions},parseConciseBody_:function(e){return D(st)?this.parseFunctionBody_(e):(ee(e,this.strictMode_,this.errorReporter_),this.parseAssignmentExpression_(!0))},parseGeneratorComprehension_:function(e){var t=this.parseComprehensionList_(),r=this.parseAssignmentExpression_(!0);return this.eat_(ge),new Gr(this.getTreeLocation_(e),t,r)},parseForBinding_:function(){return this.peekPattern_(H())?this.parseBindingPattern_():this.parseBindingIdentifier_()},peekPattern_:function(e){return this.options_.destructuring&&(this.peekObjectPattern_(e)||this.peekArrayPattern_(e))},peekArrayPattern_:function(e){return e===ut},peekObjectPattern_:function(e){return e===st},parseBindingPattern_:function(){return this.parsePattern_(!0)},parsePattern_:function(e){return this.peekArrayPattern_(H())?this.parseArrayPattern_(e):this.parseObjectPattern_(e)},parseArrayBindingPattern_:function(){return this.parseArrayPattern_(!0)},parsePatternElement_:function(e){return e?this.parseBindingElement_():this.parseAssignmentElement_()},parsePatternRestElement_:function(e){return e?this.parseBindingRestElement_():this.parseAssignmentRestElement_()},parseArrayPattern_:function(e){var t=this.getTreeStartLocation_(),r=[];for(this.eat_(ut);;){var n=H();if(n===Re)r.push(null);else{if(this.peekSpread_(n)){r.push(this.parsePatternRestElement_(e));break}if(n===Te||n===Ce)break;r.push(this.parsePatternElement_(e))}(n=H())!==Te&&this.eat_(Re)}return this.eat_(Te),new Xt(this.getTreeLocation_(t),r)},parseBindingElementList_:function(e){for(this.parseElisionOpt_(e),e.push(this.parseBindingElement_());this.eatIf_(Re);)this.parseElisionOpt_(e),e.push(this.parseBindingElement_())},parseElisionOpt_:function(e){for(;this.eatIf_(Re);)e.push(null)},peekBindingElement_:function(e){return this.peekBindingIdentifier_(e)||this.peekPattern_(e)},parseBindingElement_:function(){var e=this.getTreeStartLocation_(),t=this.parseBindingElementBinding_(),r=this.parseBindingElementInitializer_(!1);return new er(this.getTreeLocation_(e),t,r)},parseBindingElementBinding_:function(){return this.peekPattern_(H())?this.parseBindingPattern_():this.parseBindingIdentifier_()},parseBindingElementInitializer_:function(e){return D(Ne)||e?this.parseInitializer_(!0):null},parseBindingRestElement_:function(){var e=this.getTreeStartLocation_();this.eat_(xe);var t=this.parseBindingIdentifier_();return new Fn(this.getTreeLocation_(e),t)},parseObjectPattern_:function(e){var t,r=this.getTreeStartLocation_(),n=[];for(this.eat_(st);(t=H())!==de&&t!==Ce&&(n.push(this.parsePatternProperty_(e)),this.eatIf_(Re)););return this.eat_(de),new vn(this.getTreeLocation_(r),n)},parsePatternProperty_:function(e){var t=this.getTreeStartLocation_(),r=this.parsePropertyName_();if(r.type!==m||!r.literalToken.isStrictKeyword()&&r.literalToken.type!==Be||D(ye)){this.eat_(ye);var n=this.parsePatternElement_(e);return new En(this.getTreeLocation_(t),r,n)}var i=r.literalToken;if(this.strictMode_&&i.isStrictKeyword()&&this.reportReservedIdentifier_(i),e){var a=new tr(r.location,i),s=this.parseInitializerOpt_(!0);return new er(this.getTreeLocation_(t),a,s)}var o=new Wr(r.location,i),u=this.parseInitializerOpt_(!0);return new qt(this.getTreeLocation_(t),o,u)},parseAssignmentPattern_:function(){return this.parsePattern_(!1)},parseArrayAssignmentPattern_:function(){return this.parseArrayPattern_(!1)},parseAssignmentElement_:function(){var e=this.getTreeStartLocation_(),t=this.parseDestructuringAssignmentTarget_(),r=this.parseInitializerOpt_(!0);return new qt(this.getTreeLocation_(e),t,r)},parseDestructuringAssignmentTarget_:function(){switch(H()){case ut:return this.parseArrayAssignmentPattern_();case st:return this.parseObjectAssignmentPattern_()}var e=this.parseLeftHandSideExpression_();return e=this.coverFormalsToParenExpression_(e),this.validateAssignmentTarget_(e,"assignment"),e},parseAssignmentRestElement_:function(){var e=this.getTreeStartLocation_();this.eat_(xe);var t=this.parseDestructuringAssignmentTarget_();return new Fn(this.getTreeLocation_(e),t)},parseObjectAssignmentPattern_:function(){return this.parseObjectPattern_(!1)},parseAssignmentProperty_:function(){return this.parsePatternProperty_(!1)},parseTemplateLiteral_:function(e){var t=e?e.location.start:this.getTreeStartLocation_(),r=k(),n=[new Vn(r.location,r)];if(r.type===et)return new zn(this.getTreeLocation_(t),e,n);var i=this.parseExpression_(!0);for(n.push(new Gn(i.location,i));i.type!==h&&(r=F()).type!==we&&r.type!==Ce&&(n.push(new Vn(r.location,r)),r.type!==bt);)i=this.parseExpression_(!0),n.push(new Gn(i.location,i));return new zn(this.getTreeLocation_(t),e,n)},parseTypeAnnotationOpt_:function(){return this.options_.types&&this.eatOpt_(ye)?this.parseType_():null},parseType_:function(){switch(H()){case Ze:return this.parseConstructorType_();case ot:case at:return this.parseFunctionType_()}var e=this.getTreeStartLocation_(),t=this.parsePrimaryType_();return this.parseUnionTypeSuffix_(e,t)},parsePrimaryType_:function(){var e,t,r=this.getTreeStartLocation_();switch(H()){case Bt:t=k(),e=new $n(this.getTreeLocation_(r),t);break;case Be:switch(G().value){case"any":case"boolean":case"number":case"string":case"symbol":t=k(),e=new $n(this.getTreeLocation_(r),t);break;default:e=this.parseTypeReference_()}break;case Ft:e=this.parseTypeQuery_(r);break;case st:e=this.parseObjectType_();break;default:return this.parseUnexpectedToken_()}return this.parseArrayTypeSuffix_(r,e)},parseTypeReference_:function(){var e=this.getTreeStartLocation_(),t=this.parseTypeName_();if(D(at)){var r=this.parseTypeArguments_();return new Qn(this.getTreeLocation_(e),t,r)}return t},parseUnionTypeSuffix_:function(e,t){if(D(ue)){var r=[t];for(this.eat_(ue);r.push(this.parsePrimaryType_()),this.eatIf_(ue););return new ei(this.getTreeLocation_(e),r)}return t},parseArrayTypeSuffix_:function(e,t){var r=W();return r&&r.type===ut?(this.eat_(ut),this.eat_(Te),t=new Jt(this.getTreeLocation_(e),t),this.parseArrayTypeSuffix_(e,t)):t},parseTypeArguments_:function(){var e=this.getTreeStartLocation_();this.eat_(at);for(var t=[this.parseType_()];D(Re);)this.eat_(Re),t.push(this.parseType_());var r=j();return r.type!==he?this.parseUnexpectedToken_(r):new Xn(this.getTreeLocation_(e),t)},parseConstructorType_:function(){var e=this.getTreeStartLocation_();this.eat_(Ze);var t=this.parseTypeParametersOpt_();this.eat_(ot);var r=this.parseFormalParameters_();this.eat_(ge),this.eat_(ae);var n=this.parseType_();return new gr(this.getTreeLocation_(e),t,r,n)},parseObjectType_:function(){var e,t=this.getTreeStartLocation_(),r=[];for(this.eat_(st);this.peekTypeMember_(e=H())&&(r.push(this.parseTypeMember_(e)),this.eatIf_(_t)););return this.eat_(de),new Mn(this.getTreeLocation_(t),r)},peekTypeMember_:function(e){switch(e){case Ze:case ot:case at:case ut:case Be:case $t:case it:return!0;default:return G().isKeyword()}},parseTypeMember_:function(e){switch(e){case Ze:return this.parseConstructSignature_();case ot:case at:return this.parseCallSignature_();case ut:return this.parseIndexSignature_()}var t=this.getTreeStartLocation_(),r=this.parseLiteralPropertyName_(),n=this.eatIf_(yt);if((e=H())===at||e===ot){var i=this.parseCallSignature_();return new hn(this.getTreeLocation_(t),r,n,i)}var a=this.parseTypeAnnotationOpt_();return new Pn(this.getTreeLocation_(t),r,n,a)},parseCallSignature_:function(){var e=this.getTreeStartLocation_(),t=this.parseTypeParametersOpt_();this.eat_(ot);var r=this.parseFormalParameters_();this.eat_(ge);var n=this.parseTypeAnnotationOpt_();return new ar(this.getTreeLocation_(e),t,r,n)},parseConstructSignature_:function(){var e=this.getTreeStartLocation_();this.eat_(Ze);var t=this.parseTypeParametersOpt_();this.eat_(ot);var r=this.parseFormalParameters_();this.eat_(ge);var n=this.parseTypeAnnotationOpt_();return new dr(this.getTreeLocation_(e),t,r,n)},parseIndexSignature_:function(){var e=this.getTreeStartLocation_();this.eat_(ut);var t,r=this.eatId_();this.eat_(ye);var n=this.getTreeStartLocation_();t=this.peekPredefinedString_("string")?this.eatId_("string"):this.eatId_("number");var i=new $n(this.getTreeLocation_(n),t);this.eat_(Te),this.eat_(ye);var a=this.parseType_();return new Zr(this.getTreeLocation_(e),r,i,a)},parseFunctionType_:function(){var e=this.getTreeStartLocation_(),t=this.parseTypeParametersOpt_();this.eat_(ot);var r=this.parseFormalParameters_();this.eat_(ge),this.eat_(ae);var n=this.parseType_();return new Vr(this.getTreeLocation_(e),t,r,n)},parseTypeQuery_:function(e){throw"NYI"},peekTypeParameters_:function(){return D(at)},parseTypeParametersOpt_:function(){return D(at)?this.parseTypeParameters_():null},parseTypeParameters_:function(){var e=this.getTreeStartLocation_();this.eat_(at);for(var t=[this.parseTypeParameter_()];D(Re);)this.eat_(Re),t.push(this.parseTypeParameter_());return this.eat_(he),new qn(this.getTreeLocation_(e),t)},parseTypeParameter_:function(){var e=this.getTreeStartLocation_(),t=this.eatId_(),r=null;return this.eatIf_(Le)&&(r=this.parseType_()),new Kn(this.getTreeLocation_(e),t,r)},parseNamedOrPredefinedType_:function(){var e=this.getTreeStartLocation_();switch(G().value){case"any":case"number":case"boolean":case"string":var t=k();return new $n(this.getTreeLocation_(e),t);default:return this.parseTypeName_()}},parseTypeName_:function(){for(var e=this.getTreeStartLocation_(),t=this.eatId_(),r=new Jn(this.getTreeLocation_(e),null,t);this.eatIf_(pt);){var n=this.eatIdName_();r=new Jn(this.getTreeLocation_(e),r,n)}return r},parseInterfaceDeclaration_:function(){var e=this.getTreeStartLocation_();this.eat_(He);var t,r=this.eatId_(),n=this.parseTypeParametersOpt_();t=this.eatIf_(Le)?this.parseInterfaceExtendsClause_():[];var i=this.parseObjectType_();return new en(this.getTreeLocation_(e),r,n,t,i)},parseInterfaceExtendsClause_:function(){for(var e=[this.parseTypeReference_()];this.eatIf_(Re);)e.push(this.parseTypeReference_());return e},parseAnnotatedDeclarations_:function(e){var t;this.pushAnnotations_();var r=H();return t=e?this.parseModuleItem_(r):this.parseStatementListItem_(r),this.annotations_.length>0&&this.reportError_(this.annotations_[0].location,"Unsupported annotated expression"),t},parseAnnotations_:function(){for(var e=[];this.eatIf_(se);)e.push(this.parseAnnotation_());return e},pushAnnotations_:function(){this.annotations_=this.parseAnnotations_()},popAnnotations_:function(){var e=this.annotations_;return this.annotations_=[],e},parseAnnotation_:function(){var e=this.getTreeStartLocation_(),t=this.parseMemberExpressionNoNew_(),r=null;return D(ot)&&(r=this.parseArguments_()),new _r(this.getTreeLocation_(e),t,r)},parseTypeAliasDeclaration_:function(){var e=this.getTreeStartLocation_();this.eatId_($);var t=this.eatId_();this.eat_(Ne);var r=this.parseType_();return this.eatPossibleImplicitSemiColon_(),new Yn(this.getTreeLocation_(e),t,r)},parseJsxElement_:function(){var e=this.eatJsx_(at);return this.parseJsxElementContinuation_(e.location.start)},parseJsxElementContinuation_:function(e){var t=this.parseJsxElementName_(),r=this.parseJsxAttributes_(),n=[];switch(B().type){case vt:I(),this.eat_(he);break;case he:L();e:for(;;){var i=L();switch(i.type){case $t:n.push(new on(i.location,i));continue;case st:var a=i.location.start,s=null;D(de)||(s=this.parseAssignmentExpression_(!0)),this.eatJsx_(de);var o=new an(this.getTreeLocation_(a),s);n.push(o);continue;case at:var u=i.location.start;if(B().type===vt){I();break e}var c=this.parseJsxElementContinuation_(u);n.push(c),Y(c.location.end.offset);continue;default:return this.parseSyntaxError_("Unexpected token")}}var l=this.parseJsxElementName_();(function jsxNamesEqual(e,t){if(e.names.length!==t.names.length)return!1;for(var r=0;r<e.names.length;r++)if(e.names[r].value!==t.names[r].value)return!1;return!0})(t,l)||this.reportError_(l.location,"Non matching JSX closing tag. Expected "+jsxNameToString(t)+", found "+jsxNameToString(l)),this.eat_(he);break;default:return this.parseSyntaxError_("Unexpected token")}return new rn(this.getTreeLocation_(e),t,r,n)},parseJsxElementName_:function(){var e=[],t=this.eatJsx_(Ye),r=t.location.start;for(e.push(t);B().type===pt;){I();var n=this.eatJsx_(Ye);e.push(n)}return new nn(this.getTreeLocation_(r),e)},parseJsxAttributes_:function(){var e=[];e:for(;;)switch(B().type){case Ye:e.push(this.parseJsxAttribute_());break;case st:e.push(this.parseJsxSpreadAttribute_());break;default:break e}return e},parseJsxAttribute_:function(){var e=this.eatJsx_(Ye),t=e.location.start,r=null;return B().type===Ne&&(this.eatJsx_(Ne),r=this.parseJsxAttributeValue_()),new tn(this.getTreeLocation_(t),e,r)},parseJsxAttributeValue_:function(){var e=B(),t=e.location.start;switch(e.type){case $t:return I(),new cn(this.getTreeLocation_(t),e);case st:I();var r=this.parseAssignmentExpression_(!0);return this.eatJsx_(de),new an(this.getTreeLocation_(t),r);case at:return this.parseJsxElement_()}return this.parseSyntaxError_("Unexpected token")},parseJsxSpreadAttribute_:function(){var e=B().location.start;I(),this.eatJsx_(xe);var t=this.parseAssignmentExpression_(!0);return this.eatJsx_(de),new sn(this.getTreeLocation_(e),t)},eatPossibleImplicitSemiColon_:function(){var e=W();if(e){switch(e.type){case _t:return void k();case Ce:case de:return}this.reportError_(e.location,"Semi-colon expected")}},peekImplicitSemiColon_:function(){switch(H()){case _t:case de:case Ce:return!0}return null===W()},eatOpt_:function(e){return D(e)?k():null},eatIdOpt_:function(){return D(Be)?this.eatId_():null},eatId_:function(){var e=arguments[0],t=k();if(t.type===Be)return e&&t.value!==e&&this.reportExpectedError_(t,e),t;if(t.isStrictKeyword()){if(!this.strictMode_)return new r(t.location,t.type);this.reportReservedIdentifier_(t)}else this.reportExpectedError_(t,e||"identifier");return t},eatIdName_:function(){var e=k();return e.type!==Be?e.isKeyword()?new r(e.location,e.type):(this.reportExpectedError_(e,"identifier"),null):e},eat_:function(e){return this.isExpectedToken_(k(),e)},eatIf_:function(e){return!!D(e)&&(k(),!0)},eatJsx_:function(e){return this.isExpectedToken_(I(),e)},isExpectedToken_:function(e,t){return e.type!==t&&this.reportExpectedError_(e,t),e},reportExpectedError_:function(e,t){this.reportError_(e.location,"Unexpected token "+e)},getTreeStartLocation_:function(){return z().start},getTreeEndLocation_:function(){return P().location.end},getTreeLocation_:function(e){return new X(e,this.getTreeEndLocation_())},handleComment:function(e){},isAtEnd:function(){return w()},reportError_:function(e,t){this.errorReporter_.reportError(e,t)},reportReservedIdentifier_:function(e){this.reportError_(e.location,e.type+" is a reserved identifier")},validateAssignmentTarget_:function(e,t){e.isPattern()||te(e,this.strictMode_)||this.reportError_(e.location,"Invalid left-hand side expression in "+t)}},{});function jsxNameToString(e){return e.names.join(".")}return{get Parser(){return ci}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/util/SourcePosition.js",[],(function(){"use strict";var e=$traceurRuntime.createClass((function e(t,r){this.source=t,this.offset=r,this.line_=-1,this.column_=-1}),{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(){return(this.source?this.source.name:"")+":"+(this.line+1)+":"+(this.column+1)}},{});return{get SourcePosition(){return e}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/syntax/LineNumberTable.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../util/SourcePosition.js","traceur@0.0.111/src/syntax/LineNumberTable.js")).SourcePosition,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../util/SourceRange.js","traceur@0.0.111/src/syntax/LineNumberTable.js")).SourceRange,r=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./Scanner.js","traceur@0.0.111/src/syntax/LineNumberTable.js")).isLineTerminator;var n=$traceurRuntime.createClass((function n(e){this.sourceFile_=e,this.lineStartOffsets_=null,this.lastLine_=0,this.lastOffset_=-1}),{ensureLineStartOffsets_:function(){this.lineStartOffsets_||(this.lineStartOffsets_=function computeLineStartOffsets(e){for(var t=[0],n=1,i=0;i<e.length;i++){var a=e.charCodeAt(i);r(a)&&(13===a&&10===e.charCodeAt(i+1)&&i++,t[n++]=i+1)}return t[n++]=9007199254740992,t}(this.sourceFile_.contents))},getSourcePosition:function(t){return new e(this.sourceFile_,t)},getLine:function(e){if(e===this.lastOffset_)return this.lastLine_;if(this.ensureLineStartOffsets_(),e<0)return 0;var t;if(e<this.lastOffset_){for(var r=this.lastLine_;r>=0;r--)if(this.lineStartOffsets_[r]<=e){t=r;break}}else for(var n=this.lastLine_;;n++)if(this.lineStartOffsets_[n]>e){t=n-1;break}return this.lastLine_=t,this.lastOffset_=e,t},offsetOfLine:function(e){return this.ensureLineStartOffsets_(),this.lineStartOffsets_[e]},getColumn:function(e){var t=this.getLine(e);return e-this.lineStartOffsets_[t]},getSourceRange:function(e,r){return new t(this.getSourcePosition(e),this.getSourcePosition(r))}},{});return{get LineNumberTable(){return n}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/syntax/SourceFile.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./LineNumberTable.js","traceur@0.0.111/src/syntax/SourceFile.js")).LineNumberTable,t=$traceurRuntime.createClass((function t(r,n){this.name=r,this.contents=n,this.lineNumberTable=new e(this)}),{},{});return{get SourceFile(){return t}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/PlaceholderParser.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTreeType.js","traceur@0.0.111/src/codegeneration/PlaceholderParser.js")),t=e.ARGUMENT_LIST,r=e.BLOCK,n=e.EXPRESSION_STATEMENT,i=e.FUNCTION_BODY,a=e.IDENTIFIER_EXPRESSION,s=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/IdentifierToken.js","traceur@0.0.111/src/codegeneration/PlaceholderParser.js")).IdentifierToken,o=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/LiteralToken.js","traceur@0.0.111/src/codegeneration/PlaceholderParser.js")).LiteralToken,u=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../util/CollectingErrorReporter.js","traceur@0.0.111/src/codegeneration/PlaceholderParser.js")).CollectingErrorReporter,c=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../Options.js","traceur@0.0.111/src/codegeneration/PlaceholderParser.js")).Options,l=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTree.js","traceur@0.0.111/src/codegeneration/PlaceholderParser.js")).ParseTree,m=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeTransformer.js","traceur@0.0.111/src/codegeneration/PlaceholderParser.js")).ParseTreeTransformer,p=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/Parser.js","traceur@0.0.111/src/codegeneration/PlaceholderParser.js")).Parser,f=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTrees.js","traceur@0.0.111/src/codegeneration/PlaceholderParser.js")),h=f.LiteralExpression,d=f.LiteralPropertyName,g=f.TypeName,T=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/SourceFile.js","traceur@0.0.111/src/codegeneration/PlaceholderParser.js")).SourceFile,y=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/TokenType.js","traceur@0.0.111/src/codegeneration/PlaceholderParser.js")).IDENTIFIER,R=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeFactory.js","traceur@0.0.111/src/codegeneration/PlaceholderParser.js")),S=R.createArrayLiteral,_=R.createBindingIdentifier,v=R.createBlock,E=R.createBooleanLiteral,M=R.createCommaExpression,A=R.createExpressionStatement,x=R.createFunctionBody,$=R.createIdentifierExpression,C=R.createIdentifierToken,N=R.createMemberExpression,P=R.createNullLiteral,b=R.createNumberLiteral,w=R.createParenExpression,j=R.createStringLiteral,L=R.createVoid0,I={};function makeParseFunction(e){var t=new Map;return function(r){for(var n=[],i=1;i<arguments.length;i++)n[i-1]=arguments[i];return parse(r,n,e,t)}}var O=makeParseFunction((function(e){return e.parseExpression()})),F=makeParseFunction((function(e){return e.parseStatement()})),k=makeParseFunction((function(e){return e.parseModule()})),D=makeParseFunction((function(e){return e.parseScript()})),B=makeParseFunction((function(e){return e.parseStatements()})),z=makeParseFunction((function(e){return e.parsePropertyDefinition()}));function parse(e,t,r,n){var i=n.get(e);if(!i){var a=function insertPlaceholderIdentifiers(e){for(var t=e[0],r=1;r<e.length;r++)t+=V+String(r-1)+e[r];return t}(e),s=new u,o=function getParser(e,t){var r=new T(null,e),n=new c;return n.experimental=!0,new p(r,t,n)}(a,s);if(i=r(o),s.hadError()||!i||!o.isAtEnd())throw new Error("Internal error trying to parse:\n\n"+a+"\n\n"+s.errorsAsString());n.set(e,i)}return t.length?i instanceof l?new G(t).transformAny(i):new G(t).transformList(i):i}var V="$__placeholder__";function convertValueToExpression(e){if(e instanceof l)return e;if(e instanceof s)return $(e);if(e instanceof o)return new h(e.location,e);if(Array.isArray(e))return e[0]instanceof l?1===e.length?e[0]:e[0].isStatement()?v(e):w(M(e)):S(e.map(convertValueToExpression));if(null===e)return P();if(void 0===e)return L();switch(typeof e){case"string":return j(e);case"boolean":return E(e);case"number":return b(e)}throw new Error("Not implemented")}function convertValueToIdentifierToken(e){return e instanceof s?e:C(e)}var G=function(e){function PlaceholderTransformer(e){$traceurRuntime.superConstructor(PlaceholderTransformer).call(this),this.values=e}return $traceurRuntime.createClass(PlaceholderTransformer,{getValueAt:function(e){return this.values[e]},getValue_:function(e){return 0!==e.indexOf(V)?I:this.getValueAt(Number(e.slice(V.length)))},transformIdentifierExpression:function(e){var t=this.getValue_(e.identifierToken.value);return t===I?e:convertValueToExpression(t)},transformBindingIdentifier:function(e){var t=this.getValue_(e.identifierToken.value);return t===I?e:_(t)},transformExpressionStatement:function(e){if(e.expression.type===a){var t=this.transformIdentifierExpression(e.expression);return t===e.expression?e:t.isStatementListItem()||t.type===i?t:A(t)}return $traceurRuntime.superGet(this,PlaceholderTransformer.prototype,"transformExpressionStatement").call(this,e)},transformBlock:function(e){if(1===e.statements.length&&e.statements[0].type===n){var t=this.transformExpressionStatement(e.statements[0]);if(t===e.statements[0])return e;if(t.type===r)return t}return $traceurRuntime.superGet(this,PlaceholderTransformer.prototype,"transformBlock").call(this,e)},transformFunctionBody:function(e){if(1===e.statements.length&&e.statements[0].type===n){var t=this.transformExpressionStatement(e.statements[0]);if(t.type===i)return t;if(t===e.statements[0])return e;if(t.type===r)return x(t.statements)}return $traceurRuntime.superGet(this,PlaceholderTransformer.prototype,"transformFunctionBody").call(this,e)},transformMemberExpression:function(e){var t=this.getValue_(e.memberName.value);if(t===I)return $traceurRuntime.superGet(this,PlaceholderTransformer.prototype,"transformMemberExpression").call(this,e);var r=this.transformAny(e.operand);return N(r,t)},transformLiteralPropertyName:function(e){if(e.literalToken.type===y){var t=this.getValue_(e.literalToken.value);if(t!==I)return new d(null,convertValueToIdentifierToken(t))}return $traceurRuntime.superGet(this,PlaceholderTransformer.prototype,"transformLiteralPropertyName").call(this,e)},transformArgumentList:function(e){if(1===e.args.length&&e.args[0].type===a){var r=this.transformAny(e.args[0]);if(r===e.args[0])return e;if(r.type===t)return r}return $traceurRuntime.superGet(this,PlaceholderTransformer.prototype,"transformArgumentList").call(this,e)},transformTypeName:function(e){var t=this.getValue_(e.name.value);if(t===I)return $traceurRuntime.superGet(this,PlaceholderTransformer.prototype,"transformTypeName").call(this,e);var r=this.transformAny(e.moduleName);return null!==r?new g(null,r,convertValueToIdentifierToken(t)):function convertValueToType(e){if(null===e)return null;if(e instanceof l)return e;if("string"==typeof e)return new g(null,null,convertValueToIdentifierToken(e));if(e instanceof s)return new g(null,null,e);throw new Error("Not implemented")}(t)}},{},e)}(m);return{get parseExpression(){return O},get parseStatement(){return F},get parseModule(){return k},get parseScript(){return D},get parseStatements(){return B},get parsePropertyDefinition(){return z},get PlaceholderTransformer(){return G}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/PrependStatements.js",[],(function(){"use strict";function prependStatements(e){for(var t,r=[],n=1;n<arguments.length;n++)r[n-1]=arguments[n];if(!e.length)return r;if(!r.length)return e;var i=[],a=!0;return e.forEach((function(e){var t;a&&!e.isDirectivePrologue()&&((t=i).push.apply(t,$traceurRuntime.spread(r)),a=!1),i.push(e)})),a&&(t=i).push.apply(t,$traceurRuntime.spread(r)),i}return{get prependStatements(){return prependStatements}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/ImportRuntimeTrait.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/TokenType.js","traceur@0.0.111/src/codegeneration/ImportRuntimeTrait.js")),t=(e.CONST,e.VAR,$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTrees.js","traceur@0.0.111/src/codegeneration/ImportRuntimeTrait.js"))),r=t.ImportDeclaration,n=t.ImportedBinding,i=t.ImportSpecifier,a=t.ImportSpecifierSet,s=t.Module,o=t.ModuleSpecifier,u=t.Script,c=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../util/StringSet.js","traceur@0.0.111/src/codegeneration/ImportRuntimeTrait.js")).StringSet,l=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeFactory.js","traceur@0.0.111/src/codegeneration/ImportRuntimeTrait.js")),m=l.createBindingIdentifier,p=l.createIdentifierToken,f=l.createIdentifierExpression,h=l.createMemberExpression,d=(l.createStringLiteral,l.createStringLiteralToken),g=(l.createVariableStatement,$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./PlaceholderParser.js","traceur@0.0.111/src/codegeneration/ImportRuntimeTrait.js")).parseExpression,$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./PrependStatements.js","traceur@0.0.111/src/codegeneration/ImportRuntimeTrait.js")).prependStatements);function toTempName(e){return"$__"+e}function ImportRuntimeTrait(e){return function(e){function $__0(){for(var e,t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];(e=$traceurRuntime.superConstructor($__0)).call.apply(e,$traceurRuntime.spread([this],t)),this.importedNames=new c,this._existingImports=new c}return $traceurRuntime.createClass($__0,{getRuntimeExpression:function(e){return this.options.importRuntime?(this.addImportedName(e),f(toTempName(e))):h("$traceurRuntime",e)},get requiredNames(){return this.importedNames},addImportedName:function(e){this.importedNames.add(e)},transformScript:function(e){var t=$traceurRuntime.superGet(this,$__0.prototype,"transformScript").call(this,e);if(e===t)return e;if(!this.options.importRuntime)return t;var r=this.addRuntimeImports(t.scriptItemList);return new u(e.location,r,e.moduleName)},transformModule:function(e){var t=$traceurRuntime.superGet(this,$__0.prototype,"transformModule").call(this,e);if(e===t)return e;if(!this.options.importRuntime)return t;var r=this.addRuntimeImports(t.scriptItemList);return new s(e.location,r,e.moduleName)},transformImportedBinding:function(e){return this._existingImports.add(e.binding.getStringValue()),$traceurRuntime.superGet(this,$__0.prototype,"transformImportedBinding").call(this,e)},_getModuleSpecifier:function(e){var t="traceur/dist/commonjs";"parse"===this.options.modules&&(t="traceur/src");var r=d(t+"/runtime/modules/"+e+".js");return new o(null,r)},getRuntimeImports:function(){var e=this;return this.importedNames.valuesAsArray().filter((function(t){return!e._existingImports.has(toTempName(t))})).map((function(t){var s=p("default"),o=new n(null,m(toTempName(t))),u=new i(null,o,s);return new r(null,new a(null,[u]),e._getModuleSpecifier(t))}))},addRuntimeImports:function(e){var t=this.getRuntimeImports();return g.apply(void 0,$traceurRuntime.spread([e],t))}},{},e)}(e)}return{get default(){return ImportRuntimeTrait}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/TempVarTransformer.js",[],(function(){"use strict";var e,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeTransformer.js","traceur@0.0.111/src/codegeneration/TempVarTransformer.js")).ParseTreeTransformer,r=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTrees.js","traceur@0.0.111/src/codegeneration/TempVarTransformer.js")),n=r.Module,i=r.Script,a=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/PredefinedName.js","traceur@0.0.111/src/codegeneration/TempVarTransformer.js")).ARGUMENTS,s=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../util/StringSet.js","traceur@0.0.111/src/codegeneration/TempVarTransformer.js")).StringSet,o=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/TokenType.js","traceur@0.0.111/src/codegeneration/TempVarTransformer.js")),u=o.LET,c=o.VAR,l=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeFactory.js","traceur@0.0.111/src/codegeneration/TempVarTransformer.js")),m=l.createFunctionBody,p=l.createThisExpression,f=l.createIdentifierExpression,h=l.createVariableDeclaration,d=l.createVariableDeclarationList,g=l.createVariableStatement,T=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./PrependStatements.js","traceur@0.0.111/src/codegeneration/TempVarTransformer.js")).prependStatements,y=$traceurRuntime.createClass((function y(e,t){this.name=e,this.initializer=t}),{},{}),R=$traceurRuntime.createClass((function R(){this.identifiers=[]}),{push:function(e){this.identifiers.push(e)},pop:function(){return this.identifiers.pop()},release:function(e){for(var t=this.identifiers.length-1;t>=0;t--)e.releaseTempName(this.identifiers[t])}},{}),S=$traceurRuntime.createClass((function S(e){this.thisName=null,this.argumentName=null,this.tempVarStatements=[],this.declarationType_=e.blockBinding&&!e.transformOptions.blockBinding?u:c}),{push:function(e){this.tempVarStatements.push(e)},pop:function(){return this.tempVarStatements.pop()},release:function(e){for(var t=this.tempVarStatements.length-1;t>=0;t--)e.releaseTempName(this.tempVarStatements[t].name)},isEmpty:function(){return!this.tempVarStatements.length},createVariableStatement:function(){for(var e=[],t=new s,r=0;r<this.tempVarStatements.length;r++){var n=this.tempVarStatements[r],i=n.name,a=n.initializer;if(t.has(i)){if(a)throw new Error("Invalid use of TempVarTransformer")}else t.add(i),e.push(h(i,a))}return g(d(this.declarationType_,e))}},{}),_=(e=t,$traceurRuntime.createClass((function TempVarTransformer(e,t,r){$traceurRuntime.superConstructor(TempVarTransformer).call(this),this.identifierGenerator=e,this.reporter=t,this.options=r,this.tempVarStack_=[new S(this.options)],this.tempScopeStack_=[new R],this.namePool_=[]}),{transformStatements_:function(e){this.tempVarStack_.push(new S(this.options));var t=this.transformList(e),r=this.tempVarStack_.pop();if(r.isEmpty())return t;var n=r.createVariableStatement();return r.release(this),T(t,n)},transformScript:function(e){var t=this.transformStatements_(e.scriptItemList);return t===e.scriptItemList?e:new i(e.location,t,e.moduleName)},transformModule:function(e){var t=this.transformStatements_(e.scriptItemList);return t===e.scriptItemList?e:new n(e.location,t,e.moduleName)},transformFunctionBody:function(e){this.pushTempScope();var t=this.transformStatements_(e.statements);return this.popTempScope(),t===e.statements?e:m(t)},getTempIdentifier:function(){var e=this.getName_();return this.tempScopeStack_[this.tempScopeStack_.length-1].push(e),e},getName_:function(){return this.namePool_.length?this.namePool_.pop():this.identifierGenerator.generateUniqueIdentifier()},addTempVar:function(){var e=void 0!==arguments[0]?arguments[0]:null,t=this.tempVarStack_[this.tempVarStack_.length-1],r=this.getName_();return t.push(new y(r,e)),r},registerTempVarName:function(e){this.tempVarStack_[this.tempVarStack_.length-1].push(new y(e,null))},addTempVarForThis:function(){var e=this.tempVarStack_[this.tempVarStack_.length-1];return e.thisName||(e.thisName=this.addTempVar(p()))},addTempVarForArguments:function(){var e=this.tempVarStack_[this.tempVarStack_.length-1];return e.argumentName||(e.argumentName=this.addTempVar(f(a)))},pushTempScope:function(){this.tempScopeStack_.push(new R)},popTempScope:function(){this.tempScopeStack_.pop().release(this)},releaseTempName:function(e){this.namePool_.push(e)}},{},e));return{get TempVarTransformer(){return _}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/semantics/bindingsInDestructuringPattern.js",[],(function(){"use strict";var e,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/ParseTreeVisitor.js","traceur@0.0.111/src/semantics/bindingsInDestructuringPattern.js")).ParseTreeVisitor,r=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../util/StringSet.js","traceur@0.0.111/src/semantics/bindingsInDestructuringPattern.js")).StringSet,n=(e=t,$traceurRuntime.createClass((function BindingsInDestructuringPatternVisitor(){$traceurRuntime.superConstructor(BindingsInDestructuringPatternVisitor).call(this),this.bindings=new r}),{visitBindingIdentifier:function(e){this.bindings.add(e.getStringValue())},visitBindingElement:function(e){this.visitAny(e.binding)},visitVariableDeclaration:function(e){this.visitAny(e.lvalue)}},{},e));function bindingsInDestructuringPattern(e){var t=new n;return t.visitAny(e),t.bindings}return{get default(){return bindingsInDestructuringPattern}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/DestructuringTransformer.js",[],(function(){"use strict";var e,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTreeType.js","traceur@0.0.111/src/codegeneration/DestructuringTransformer.js")),r=t.ARRAY_LITERAL,n=t.ARRAY_PATTERN,i=t.ASSIGNMENT_ELEMENT,a=t.BINDING_ELEMENT,s=t.BINDING_IDENTIFIER,o=t.BLOCK,u=t.CALL_EXPRESSION,c=t.COMPUTED_PROPERTY_NAME,l=t.IDENTIFIER_EXPRESSION,m=t.LITERAL_EXPRESSION,p=t.MEMBER_EXPRESSION,f=t.MEMBER_LOOKUP_EXPRESSION,h=t.OBJECT_LITERAL,d=t.OBJECT_PATTERN_FIELD,g=t.OBJECT_PATTERN,T=t.PAREN_EXPRESSION,y=t.VARIABLE_DECLARATION_LIST,R=t.VARIABLE_STATEMENT,S=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTrees.js","traceur@0.0.111/src/codegeneration/DestructuringTransformer.js")),_=S.AnonBlock,v=S.AssignmentElement,E=S.BindingElement,M=S.Catch,A=S.ExportDeclaration,x=S.ForInStatement,$=S.ForOfStatement,C=S.ForOnStatement,N=S.VariableDeclarationList,P=S.VariableStatement,b=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ImportRuntimeTrait.js","traceur@0.0.111/src/codegeneration/DestructuringTransformer.js")).default,w=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./TempVarTransformer.js","traceur@0.0.111/src/codegeneration/DestructuringTransformer.js")).TempVarTransformer,j=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/TokenType.js","traceur@0.0.111/src/codegeneration/DestructuringTransformer.js")),L=j.EQUAL,I=j.LET,O=j.VAR,F=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../semantics/bindingsInDestructuringPattern.js","traceur@0.0.111/src/codegeneration/DestructuringTransformer.js")).default,k=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeFactory.js","traceur@0.0.111/src/codegeneration/DestructuringTransformer.js")),D=k.createAssignmentExpression,B=k.createBindingIdentifier,z=k.createBlock,V=k.createCommaExpression,G=k.createExpressionStatement,U=k.createFunctionBody,W=k.createIdentifierExpression,H=k.createMemberExpression,Y=k.createMemberLookupExpression,X=k.createParenExpression,J=k.createVariableDeclaration,K=k.createVariableDeclarationList,q=k.createVariableStatement,Q=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./PlaceholderParser.js","traceur@0.0.111/src/codegeneration/DestructuringTransformer.js")).parseExpression,Z=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./PrependStatements.js","traceur@0.0.111/src/codegeneration/DestructuringTransformer.js")).prependStatements,ee=$traceurRuntime.createClass((function ee(e){this.rvalue=e,this.expressions=[],this.pendingExpressions=[]}),{createIterator:function(e){this.pendingExpressions.push(Q($traceurRuntime.getTemplateObject([""," = ","[Symbol.iterator]()"]),e,this.rvalue))},createInitializer:function(e){if(0===this.pendingExpressions.length)return e;var t=this.pendingExpressions;return this.pendingExpressions=[],t.push(e),X(V(t))},skipHole:function(e){this.pendingExpressions.push(Q($traceurRuntime.getTemplateObject(["",".next()"]),e))}},{}),te=(e=ee,$traceurRuntime.createClass((function AssignmentExpressionDesugaring(e){$traceurRuntime.superConstructor(AssignmentExpressionDesugaring).call(this,e)}),{assign:function(e,t){e=e instanceof v?e.assignment:e,t=this.createInitializer(t),this.expressions.push(D(e,t))},createAssignmentExpression:function(e,t){var r,n=this.expressions;return n.unshift(D(e,t)),(r=n).push.apply(r,$traceurRuntime.spread(this.pendingExpressions,[e])),X(V(n))}},{},e)),re=function(e){return $traceurRuntime.createClass((function VariableDeclarationDesugaring(e){$traceurRuntime.superConstructor(VariableDeclarationDesugaring).call(this,e)}),{assign:function(e,t){var r=e instanceof E?e.binding:B(e);t=this.createInitializer(t),this.expressions.push(J(r,t))},get declarations(){return this.expressions}},{},e)}(ee),ne=function(e){function DestructuringTransformer(e,t,r){$traceurRuntime.superConstructor(DestructuringTransformer).call(this,e,t,r),this.parameterDeclarations=null}return $traceurRuntime.createClass(DestructuringTransformer,{transformArrayPattern:function(e){throw new Error("unreachable")},transformObjectPattern:function(e){throw new Error("unreachable")},transformBinaryExpression:function(e){var t;return this.pushTempScope(),t=e.operator.type===L&&e.left.isPattern()?this.transformAny(this.desugarAssignment_(e.left,e.right)):$traceurRuntime.superGet(this,DestructuringTransformer.prototype,"transformBinaryExpression").call(this,e),this.popTempScope(),t},desugarAssignment_:function(e,t){var r=W(this.addTempVar()),n=new te(r);return this.desugarPattern_(n,e),n.createAssignmentExpression(r,t)},transformVariableDeclarationList:function(e){var t=this;if(!hasDestructuring(e))return $traceurRuntime.superGet(this,DestructuringTransformer.prototype,"transformVariableDeclarationList").call(this,e);var r=[];return e.declarations.forEach((function(e){var n;e.lvalue.isPattern()?(n=r).push.apply(n,$traceurRuntime.spread(t.desugarVariableDeclaration_(e))):r.push(e)})),this.transformVariableDeclarationList(K(e.declarationType,r))},transformForInStatement:function(e){return this.transformForInOrOfOrOn_(e,$traceurRuntime.superGet(this,DestructuringTransformer.prototype,"transformForInStatement"),x)},transformForOfStatement:function(e){return this.transformForInOrOfOrOn_(e,$traceurRuntime.superGet(this,DestructuringTransformer.prototype,"transformForOfStatement"),$)},transformForOnStatement:function(e){return this.transformForInOrOfOrOn_(e,$traceurRuntime.superGet(this,DestructuringTransformer.prototype,"transformForOnStatement"),C)},transformForInOrOfOrOn_:function(e,t,r){var n,i,a;if(!(e.initializer.isPattern()||e.initializer.type===y&&hasDestructuring(e.initializer)))return t.call(this,e);this.pushTempScope(),e.initializer.isPattern()?(i=null,a=e.initializer):(i=e.initializer.declarationType,a=e.initializer.declarations[0].lvalue);var s=[],u=this.desugarBinding_(a,s,i),c=K(O,u,null),l=this.transformAny(e.collection),m=this.transformAny(e.body);return m.type===o?(n=s).push.apply(n,$traceurRuntime.spread(m.statements)):s.push(m),m=z(s),this.popTempScope(),new r(e.location,c,l,m)},transformAssignmentElement:function(e){throw new Error("unreachable")},transformBindingElement:function(e){if(!e.binding.isPattern()||e.initializer)return e;null===this.parameterDeclarations&&(this.parameterDeclarations=[],this.pushTempScope());var t=this.getTempIdentifier(),r=B(t),n=W(t),i=J(e.binding,n);return this.parameterDeclarations.push(i),new E(null,r,null)},transformFunctionBody:function(e){if(null===this.parameterDeclarations)return $traceurRuntime.superGet(this,DestructuringTransformer.prototype,"transformFunctionBody").call(this,e);var t=K(O,this.parameterDeclarations),r=q(t),n=Z(e.statements,r),i=U(n);this.parameterDeclarations=null;var a=$traceurRuntime.superGet(this,DestructuringTransformer.prototype,"transformFunctionBody").call(this,i);return this.popTempScope(),a},transformCatch:function(e){var t;if(!e.binding.isPattern())return $traceurRuntime.superGet(this,DestructuringTransformer.prototype,"transformCatch").call(this,e);var r=this.transformAny(e.catchBody),n=[],i=this.options.blockBinding?I:O,a=this.desugarBinding_(e.binding,n,i);return(t=n).push.apply(t,$traceurRuntime.spread(r.statements)),new M(e.location,a,z(n))},transformExportDeclaration:function(e){if(e.declaration.type===R&&hasDestructuring(e.declaration.declarations)){for(var t=F(e.declaration.declarations),r=[],n=this.transformAny(e.declaration).declarations,i=n.declarations,a=n.declarationType,s=0;s<i.length;s++){var o=i[s],u=new P(o.location,new N(o.location,a,[o]));t.has(i[s].lvalue.getStringValue())&&(u=new A(u.location,u,[])),r.push(u)}return new _(null,r)}return $traceurRuntime.superGet(this,DestructuringTransformer.prototype,"transformExportDeclaration").call(this,e)},desugarBinding_:function(e,t,r){var n,i=this.getTempIdentifier(),a=B(i),s=W(i);return n=null===r?new te(s):new re(s),this.desugarPattern_(n,e),null===r?t.push(G(V(n.expressions))):t.push(q(this.transformVariableDeclarationList(K(r,n.declarations)))),a},desugarVariableDeclaration_:function(e){var t,n,i=this.getTempIdentifier(),a=W(i);switch(e.initializer.type){case r:case u:case l:case m:case p:case f:case h:case T:n=e.initializer}return(t=new re(a)).assign(t.rvalue,e.initializer),this.desugarPattern_(t,e.lvalue)||t.declarations.length>2||(n||(n=X(e.initializer)),t=new re(n),this.desugarPattern_(t,e.lvalue)),t.declarations},desugarPattern_:function(e,t){var r,s=this,o=!1;switch(t.type){case n:r=t,this.pushTempScope();var u=W(this.addTempVar()),c=W(this.addTempVar());e.createIterator(u);for(var l=0;l<r.elements.length;l++){var m=r.elements[l];if(null!==m)if(m.isSpreadPatternElement()){var p=this.getRuntimeExpression("iteratorToArray");e.assign(m.lvalue,Q($traceurRuntime.getTemplateObject(["","(",")"]),p,u))}else m.initializer&&(o=!0),e.assign(m,this.createConditionalIterExpression(c,u,m.initializer));else e.skipHole(u)}this.popTempScope();break;case g:var elementHelper=function(t,r){r&&(o=!0);var n=s.createConditionalMemberExpression(e.rvalue,t,r);e.assign(t,n)};(r=t).fields.forEach((function(t){var r;switch(t.type){case i:elementHelper(t.assignment,t.initializer);break;case a:elementHelper(t.binding,t.initializer);break;case d:t.element.initializer&&(o=!0);var n=t.name;r=s.createConditionalMemberExpression(e.rvalue,n,t.element.initializer),e.assign(t.element,r);break;default:throw Error("unreachable")}}));break;case T:return this.desugarPattern_(e,t.expression);default:throw new Error("unreachable")}return e instanceof re&&0===e.declarations.length&&e.assign(B(this.getTempIdentifier()),e.rvalue),o},createConditionalMemberExpression:function(e,t,r){if(t.type===c)return this.createConditionalMemberLookupExpression(e,t.expression,r);var n;switch(t.type){case s:case l:n=t.identifierToken;break;default:n=t.literalToken}if(!r)return H(e,n);var i=W(this.addTempVar());return Q($traceurRuntime.getTemplateObject(["("," = ",".",") === void 0 ?\n        "," : ",""]),i,e,n,r,i)},createConditionalMemberLookupExpression:function(e,t,r){if(!r)return Y(e,t);var n=W(this.addTempVar());return Q($traceurRuntime.getTemplateObject(["("," = ","[","]) === void 0 ?\n        "," : ",""]),n,e,t,r,n)},createConditionalIterExpression:function(e,t,r){var n=Q($traceurRuntime.getTemplateObject(["("," =\n        ",".next()).done ? void 0 : ",".value"]),e,t,e);if(!r)return n;var i=W(this.addTempVar());return Q($traceurRuntime.getTemplateObject(["("," = ",") === void 0 ?\n        "," : ",""]),i,n,r,i)}},{},e)}(b(w));function hasDestructuring(e){return e.declarations.some((function(e){return e.lvalue.isPattern()}))}return{get DestructuringTransformer(){return ne}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/module/ModuleSymbol.js",[],(function(){"use strict";var e,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../../util/StringMap.js","traceur@0.0.111/src/codegeneration/module/ModuleSymbol.js")).StringMap,r=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../../util/assert.js","traceur@0.0.111/src/codegeneration/module/ModuleSymbol.js")).assert,n=$traceurRuntime.createClass((function n(e){this.exports_=new t,this.normalizedName=null!==e?e.replace(/\\/g,"/"):null}),{addExport:function(e,t){r(!this.exports_.has(e)),this.exports_.set(e,t)},getExport:function(e){return this.exports_.get(e)},getExports:function(){return this.exports_.keysAsArray()},addExportsFromModule:function(e){var t=this;Object.getOwnPropertyNames(e).forEach((function(e){t.addExport(e,!0)}))}},{}),i=(e=n,$traceurRuntime.createClass((function ModuleSymbol(e,r){$traceurRuntime.superConstructor(ModuleSymbol).call(this,r),this.tree=e,this.imports_=new t}),{addImport:function(e,t){r(!this.imports_.has(e)),this.imports_.set(e,t)},getImport:function(e){return this.imports_.get(e)}},{},e));return{get ExportsList(){return n},get ModuleSymbol(){return i}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/module/ModuleVisitor.js",[],(function(){"use strict";$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ModuleSymbol.js","traceur@0.0.111/src/codegeneration/module/ModuleVisitor.js")).ExportsList;var e,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../../syntax/ParseTreeVisitor.js","traceur@0.0.111/src/codegeneration/module/ModuleVisitor.js")).ParseTreeVisitor,r=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../../syntax/trees/ParseTreeType.js","traceur@0.0.111/src/codegeneration/module/ModuleVisitor.js")),n=r.EXPORT_DECLARATION,i=r.IMPORT_DECLARATION,a=(e=t,$traceurRuntime.createClass((function ModuleVisitor(e,t,r){$traceurRuntime.superConstructor(ModuleVisitor).call(this),this.reporter=e,this.loader_=t,this.moduleSymbol=r}),{getExportsListForModuleSpecifier:function(e){var t=this.moduleSymbol.normalizedName;return this.loader_.getExportsListForModuleSpecifier(e,t)},visitFunctionDeclaration:function(e){},visitFunctionExpression:function(e){},visitFunctionBody:function(e){},visitBlock:function(e){},visitClassDeclaration:function(e){},visitClassExpression:function(e){},visitModuleElement_:function(e){switch(e.type){case n:case i:this.visitAny(e)}},visitScript:function(e){e.scriptItemList.forEach(this.visitModuleElement_,this)},visitModule:function(e){e.scriptItemList.forEach(this.visitModuleElement_,this)},reportError:function(e,t){this.reporter.reportError(e.location,t)}},{},e));return{get ModuleVisitor(){return a}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/module/ExportVisitor.js",[],(function(){"use strict";var e,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ModuleVisitor.js","traceur@0.0.111/src/codegeneration/module/ExportVisitor.js")).ModuleVisitor,r=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../../util/assert.js","traceur@0.0.111/src/codegeneration/module/ExportVisitor.js")).assert,n=(e=t,$traceurRuntime.createClass((function ExportVisitor(e,t,r){$traceurRuntime.superConstructor(ExportVisitor).call(this,e,t,r),this.inExport_=!1,this.moduleSpecifier=null}),{addExport_:function(e,t){r("string"==typeof e),this.inExport_&&this.addExport(e,t)},addExport:function(e,t){var r=this.moduleSymbol,n=r.getExport(e);n?this.reportError(t,"Duplicate export. '"+e+"' was previously exported at "+n.location.start):r.addExport(e,t)},visitClassDeclaration:function(e){this.addExport_(e.name.identifierToken.value,e)},visitExportDeclaration:function(e){this.inExport_=!0,this.visitAny(e.declaration),this.inExport_=!1},visitNamedExport:function(e){this.moduleSpecifier=e.moduleSpecifier,this.visitAny(e.exportClause),this.moduleSpecifier=null},visitExportDefault:function(e){this.addExport_("default",e)},visitExportSpecifier:function(e){this.addExport_((e.rhs||e.lhs).value,e)},visitExportStar:function(e){var t=this,r=this.moduleSpecifier.token.processedValue,n=this.getExportsListForModuleSpecifier(r);n&&n.getExports().forEach((function(r){return t.addExport(r,e)}))},visitNameSpaceExport:function(e){this.addExport_(e.name.value,e)},visitForwardDefaultExport:function(e){this.addExport_(e.name.value,e)},visitFunctionDeclaration:function(e){this.addExport_(e.name.getStringValue(),e)},visitVariableDeclaration:function(e){this.visitAny(e.lvalue)},visitBindingIdentifier:function(e){this.addExport_(e.getStringValue(),e)},visitBindingElement:function(e){this.visitAny(e.binding)},visitTypeAliasDeclaration:function(e){this.addExport(e.name.value,e)}},{},e));return{get ExportVisitor(){return n}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/module/DirectExportVisitor.js",[],(function(){"use strict";var e,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ExportVisitor.js","traceur@0.0.111/src/codegeneration/module/DirectExportVisitor.js")).ExportVisitor,r=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../../syntax/trees/ParseTreeType.js","traceur@0.0.111/src/codegeneration/module/DirectExportVisitor.js")).TYPE_ALIAS_DECLARATION,n=(e=t,$traceurRuntime.createClass((function DirectExportVisitor(){$traceurRuntime.superConstructor(DirectExportVisitor).call(this,null,null,null),this.namedExports=[],this.starExports=[]}),{addExport:function(e,t){this.namedExports.push({name:e,tree:t,moduleSpecifier:this.moduleSpecifier})},visitExportStar:function(e){this.starExports.push(this.moduleSpecifier)},hasExports:function(){return 0!==this.namedExports.length||0!==this.starExports.length},getNonTypeNamedExports:function(){return this.namedExports.filter((function(e){return e.tree.type!==r}))}},{},e));return{get DirectExportVisitor(){return n}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/ImportSimplifyingTransformer.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTrees.js","traceur@0.0.111/src/codegeneration/ImportSimplifyingTransformer.js")),t=e.AnonBlock,r=e.ImportDeclaration,n=e.ImportSpecifier,i=e.ImportSpecifierSet,a=e.Module,s=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeTransformer.js","traceur@0.0.111/src/codegeneration/ImportSimplifyingTransformer.js")).ParseTreeTransformer,o=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTreeType.js","traceur@0.0.111/src/codegeneration/ImportSimplifyingTransformer.js")),u=o.ANON_BLOCK,c=o.IMPORT_CLAUSE_PAIR,l=o.IMPORT_DECLARATION,m=o.IMPORT_SPECIFIER_SET,p=o.IMPORTED_BINDING,f=o.NAME_SPACE_IMPORT,h=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeFactory.js","traceur@0.0.111/src/codegeneration/ImportSimplifyingTransformer.js")).createIdentifierToken,d=function(e){function ImportSimplifyingTransformer(){$traceurRuntime.superConstructor(ImportSimplifyingTransformer).apply(this,arguments)}return $traceurRuntime.createClass(ImportSimplifyingTransformer,{transformModule:function(e){for(var t,r=[],n=0;n<e.scriptItemList.length;n++){var i=e.scriptItemList[n];switch(i.type){case l:var s=this.transformAny(i);s.type===u?(t=r).push.apply(t,$traceurRuntime.spread(s.statements)):r.push(s);break;default:r.push(i)}}return new a(e.location,r,e.moduleName)},transformImportDeclaration:function(e){var n=e.importClause;if(null===n){var a=new i(null,[]);return new r(e.location,a,e.moduleSpecifier)}if(n.type===f)return e;if(n.type===p){var s=this.transformAny(n),o=new i(null,[s]);return new r(e.location,o,e.moduleSpecifier)}if(n.type===c){var u=n,l=u.first,h=u.second;if(h.type===m){var d=this.transformAny(l),g=$traceurRuntime.spread([d],h.specifiers),T=new i(l.location,g);return new r(e.location,T,e.moduleSpecifier)}var y=new r(e.location,l,e.moduleSpecifier);y=this.transformAny(y);var R=new r(e.location,h,e.moduleSpecifier);return new t(null,[y,R])}return $traceurRuntime.superGet(this,ImportSimplifyingTransformer.prototype,"transformImportDeclaration").call(this,e)},transformImportSpecifier:function(e){return e},transformImportedBinding:function(e){var t=h("default");return new n(e.location,e,t)}},{},e)}(s);return{get ImportSimplifyingTransformer(){return d}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/util/url.js",[],(function(){"use strict";var e=$traceurRuntime.canonicalizeUrl,t=$traceurRuntime.isAbsolute,r=$traceurRuntime.removeDotSegments,n=$traceurRuntime.resolveUrl;return{get canonicalizeUrl(){return e},get isAbsolute(){return t},get removeDotSegments(){return r},get resolveUrl(){return n}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/SkipFunctionsTransformerTrait.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTrees.js","traceur@0.0.111/src/codegeneration/SkipFunctionsTransformerTrait.js")),t=(e.ArrowFunction,e.FunctionDeclaration),r=(e.FunctionExpression,e.GetAccessor),n=e.Method,i=e.SetAccessor;function SkipFunctionsTransformerTrait(e){return a=e,$traceurRuntime.createClass((function SkipFunctionsTransformer(){$traceurRuntime.superConstructor(SkipFunctionsTransformer).apply(this,arguments)}),{transformFunctionDeclaration:function(e){var r=this.transformList(e.annotations);return r===e.annotations?e:new t(e.location,e.name,e.functionKind,e.parameterList,e.typeAnnotation,r,e.body)},transformFunctionExpression:function(e){var r=this.transformList(e.annotations);return r===e.annotations?e:new t(e.location,e.name,e.functionKind,e.parameterList,e.typeAnnotation,r,e.body)},transformSetAccessor:function(e){var t=this.transformAny(e.name),r=this.transformList(e.annotations);return t===e.name&&r===e.annotations?e:new i(e.location,e.isStatic,t,e.parameterList,r,e.body)},transformGetAccessor:function(e){var t=this.transformAny(e.name),n=this.transformList(e.annotations);return t===e.name&&n===e.annotations?e:new r(e.location,e.isStatic,t,n,e.body)},transformMethod:function(e){var t=this.transformAny(e.name),r=this.transformList(e.annotations);return t===e.name&&r===e.annotations?e:new n(e.location,e.isStatic,e.functionKind,t,e.parameterList,e.typeAnnotation,r,e.body,e.debugName)},transformArrowFunction:function(e){return e}},{},a);var a}return{get default(){return SkipFunctionsTransformerTrait}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/ModuleTransformer.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTrees.js","traceur@0.0.111/src/codegeneration/ModuleTransformer.js")),t=e.AnonBlock,r=e.BindingElement,n=(e.EmptyStatement,e.LiteralPropertyName),i=e.Module,a=e.ObjectPattern,s=e.ObjectPatternField,o=e.Script,u=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./DestructuringTransformer.js","traceur@0.0.111/src/codegeneration/ModuleTransformer.js")).DestructuringTransformer,c=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./module/DirectExportVisitor.js","traceur@0.0.111/src/codegeneration/ModuleTransformer.js")).DirectExportVisitor,l=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ImportRuntimeTrait.js","traceur@0.0.111/src/codegeneration/ModuleTransformer.js")).default,m=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ImportSimplifyingTransformer.js","traceur@0.0.111/src/codegeneration/ModuleTransformer.js")).ImportSimplifyingTransformer,p=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./TempVarTransformer.js","traceur@0.0.111/src/codegeneration/ModuleTransformer.js")).TempVarTransformer,f=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTreeType.js","traceur@0.0.111/src/codegeneration/ModuleTransformer.js")),h=f.CLASS_DECLARATION,d=f.EXPORT_DEFAULT,g=f.EXPORT_SPECIFIER,T=f.FORWARD_DEFAULT_EXPORT,y=f.FUNCTION_DECLARATION,R=f.IMPORT_SPECIFIER_SET,S=f.IMPORT_TYPE_CLAUSE,_=f.NAME_SPACE_EXPORT,v=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/TokenType.js","traceur@0.0.111/src/codegeneration/ModuleTransformer.js")).VAR,E=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../util/assert.js","traceur@0.0.111/src/codegeneration/ModuleTransformer.js")).assert,M=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../util/url.js","traceur@0.0.111/src/codegeneration/ModuleTransformer.js")),A=M.resolveUrl,x=M.canonicalizeUrl,$=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeFactory.js","traceur@0.0.111/src/codegeneration/ModuleTransformer.js")),C=$.createArgumentList,N=$.createExpressionStatement,P=$.createIdentifierExpression,b=($.createIdentifierToken,$.createMemberExpression),w=$.createObjectLiteral,j=$.createUseStrictDirective,L=$.createVariableStatement,I=$.createVoid0,O=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./PlaceholderParser.js","traceur@0.0.111/src/codegeneration/ModuleTransformer.js")),F=O.parseExpression,k=O.parsePropertyDefinition,D=O.parseStatement,B=O.parseStatements,z=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./SkipFunctionsTransformerTrait.js","traceur@0.0.111/src/codegeneration/ModuleTransformer.js")).default,V=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeTransformer.js","traceur@0.0.111/src/codegeneration/ModuleTransformer.js")).ParseTreeTransformer,G=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./PrependStatements.js","traceur@0.0.111/src/codegeneration/ModuleTransformer.js")).prependStatements;var U,W=(U=u,$traceurRuntime.createClass((function DestructImportVarStatement(){$traceurRuntime.superConstructor(DestructImportVarStatement).apply(this,arguments)}),{createGuardedExpression:function(e){return e}},{},U)),H=function(e){function ModuleTransformer(e,t,r){$traceurRuntime.superConstructor(ModuleTransformer).call(this,e,t,r),this.exportVisitor=new c,this.importSimplifier_=new m,this.moduleName=null}return $traceurRuntime.createClass(ModuleTransformer,{getTempVarNameForModuleName:function(e){return"$__"+e.replace(/[^a-zA-Z0-9$]/g,(function(e){return"_"+String(e.charCodeAt(0))+"_"}))+"__"},getModuleName:function(e){return e.moduleName},getTempVarNameForModuleSpecifier:function(e){var t=e.token.processedValue;return t="."===t[0]&&this.moduleName?A(this.moduleName,t):x(t),this.getTempVarNameForModuleName(t)},transformScript:function(e){return this.moduleName=e.moduleName,$traceurRuntime.superGet(this,ModuleTransformer.prototype,"transformScript").call(this,e)},transformModule:function(e){e=function removeUseStrictDirectives(e){var t=e.scriptItemList.filter((function(e){return!e.isUseStrictDirective()}));return new i(e.location,t,e.moduleName)}(e),e=this.importSimplifier_.transformModule(e),e=(new Y).transformAny(e),this.moduleName=this.getModuleName(e),this.pushTempScope();var t=this.transformList(e.scriptItemList);t=this.addExportStatement(t);var r=this.transformList(this.getRuntimeImports());return t=G.apply(void 0,$traceurRuntime.spread([t],r)),this.popTempScope(),t=this.wrapModule(this.moduleProlog().concat(t)),new o(e.location,t,null)},moduleProlog:function(){var e=[j()];return this.moduleName&&e.push(D($traceurRuntime.getTemplateObject(["var __moduleName = ",";"]),this.moduleName)),e},wrapModule:function(e){var t;return t=this.options.transformOptions.require?F($traceurRuntime.getTemplateObject(["function(require) {\n        ","\n      }"]),e):F($traceurRuntime.getTemplateObject(["function() {\n        ","\n      }"]),e),null===this.moduleName?B($traceurRuntime.getTemplateObject(["$traceurRuntime.ModuleStore.getAnonymousModule(\n              ",");"]),t):B($traceurRuntime.getTemplateObject(["$traceurRuntime.registerModule(",", [], ",");"]),this.moduleName,t)},getGetterExport:function(e){var t=this.getGetterExportReturnExpression(e);return k($traceurRuntime.getTemplateObject(["get ","() { return ","; }"]),e.name,t)},getGetterExportReturnExpression:function(e){var t=e,r=t.name,n=t.tree,i=t.moduleSpecifier;switch(n.type){case d:switch(n.expression.type){case h:case y:return P(n.expression.name);default:return P("$__default")}break;case g:if(i){var a=this.getTempVarNameForModuleSpecifier(i);return b(a,n.lhs)}return P(n.lhs);case _:var s=this.getTempVarNameForModuleSpecifier(i);return P(s);case T:var o=this.getTempVarNameForModuleSpecifier(i);return b(o,"default");default:return P(r)}},getExportProperties:function(){var e=this;return this.exportVisitor.getNonTypeNamedExports().map((function(t){return e.getGetterExport(t)})).concat(this.exportVisitor.namedExports.map((function(t){return e.getSetterExport(t)}))).filter((function(e){return e}))},getSetterExport:function(e){var t=e;t.name,t.tree,t.moduleSpecifier;return null},getExportObject:function(){var e=w(this.getExportProperties());return this.hasStarExports()?this.getExportStar(e):e},getExportStar:function(e){var t=this,r=this.exportVisitor.starExports.map((function(e){return P(t.getTempVarNameForModuleSpecifier(e))})),n=C($traceurRuntime.spread([e],r)),i=this.getRuntimeExpression("exportStar");return F($traceurRuntime.getTemplateObject(["","(",")"]),i,n)},addExportStatement:function(e){var t=this.getExportObject();return e.push(D($traceurRuntime.getTemplateObject(["return ",""]),t)),e},hasExports:function(){return this.exportVisitor.hasExports()},hasStarExports:function(){return this.exportVisitor.starExports.length>0},transformExportDeclaration:function(e){return this.exportVisitor.visitAny(e),this.transformAny(e.declaration)},transformExportDefault:function(e){switch(e.expression.type){case h:case y:return e.expression}return D($traceurRuntime.getTemplateObject(["var $__default = ",""]),e.expression)},transformNamedExport:function(e){var r=e.moduleSpecifier;if(r){var n=this.transformAny(r),i=this.getTempVarNameForModuleSpecifier(r);return L(v,i,n)}return new t(null,[])},transformModuleSpecifier:function(e){E(this.moduleName);var t=e.token.processedValue;return F($traceurRuntime.getTemplateObject(["$traceurRuntime.getModule(\n      $traceurRuntime.normalizeModuleName(",", ","));"]),t,this.moduleName)},transformImportDeclaration:function(e){if(e.importClause.type===S)return new t(null,[]);if(e.importClause.type===R&&0===e.importClause.specifiers.length)return N(this.transformAny(e.moduleSpecifier));var r=this.transformAny(e.importClause),n=this.transformAny(e.moduleSpecifier),i=L(v,r,n);if(this.options.transformOptions.destructuring||!this.options.parseOptions.destructuring){var a=new W(this.identifierGenerator,this.reporter,this.options);i=i.transform(a)}return i},transformImportSpecifierSet:function(e){var t=this.transformList(e.specifiers);return new a(null,t)},transformNameSpaceImport:function(e){return e.binding.binding},transformImportSpecifier:function(e){var t=e.binding.binding,i=new r(t.location,t,null);if(e.name){var a=new n(e.name.location,e.name);return new s(e.location,a,i)}return i}},{},e)}(l(p)),Y=function(e){return $traceurRuntime.createClass((function ReplaceThis(){$traceurRuntime.superConstructor(ReplaceThis).apply(this,arguments)}),{transformThisExpression:function(e){return I()}},{},e)}(z(V));return{get ModuleTransformer(){return H}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/globalThis.js",[],(function(){"use strict";var e,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./PlaceholderParser.js","traceur@0.0.111/src/codegeneration/globalThis.js")).parseExpression;var r=function globalThis(){return e||(e=t($traceurRuntime.getTemplateObject(["Reflect.global"]))),e};return{get default(){return r}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/AmdTransformer.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ModuleTransformer.js","traceur@0.0.111/src/codegeneration/AmdTransformer.js")).ModuleTransformer,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeFactory.js","traceur@0.0.111/src/codegeneration/AmdTransformer.js")),r=t.createIdentifierExpression,n=t.createFormalParameter,i=t.createStringLiteralToken,a=($traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./globalThis.js","traceur@0.0.111/src/codegeneration/AmdTransformer.js")).default,$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./PlaceholderParser.js","traceur@0.0.111/src/codegeneration/AmdTransformer.js"))),s=(a.parseExpression,a.parseStatement),o=a.parseStatements,u=a.parsePropertyDefinition,c=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTrees.js","traceur@0.0.111/src/codegeneration/AmdTransformer.js")),l=c.FormalParameterList,m=c.FunctionBody,p=c.FunctionExpression,f=function(e){function AmdTransformer(e,t){var r=arguments[2];$traceurRuntime.superConstructor(AmdTransformer).call(this,e,t,r),this.dependencies=[],this.anonymousModule=r&&!r.bundle&&!0!==r.moduleName}return $traceurRuntime.createClass(AmdTransformer,{getModuleName:function(e){return this.anonymousModule?null:e.moduleName},getExportProperties:function(){var e=$traceurRuntime.superGet(this,AmdTransformer.prototype,"getExportProperties").call(this);return this.exportVisitor.hasExports()&&e.push(u($traceurRuntime.getTemplateObject(["__esModule: true"]))),e},moduleProlog:function(){var e=this.dependencies.map((function(e){var t=r(e.local);return s($traceurRuntime.getTemplateObject(["if (!"," || !",".__esModule)\n            "," = {default: ","}"]),t,t,t,t)}));return $traceurRuntime.superGet(this,AmdTransformer.prototype,"moduleProlog").call(this).concat(e)},wrapModule:function(e){var t=this.dependencies.map((function(e){return e.path})),r=this.dependencies.map((function(e){return n(e.local)})),i=new l(null,r),a=new m(null,e),s=new p(null,null,null,i,null,[],a);return this.moduleName?o($traceurRuntime.getTemplateObject(["define(",", ",", ",");"]),this.moduleName,t,s):o($traceurRuntime.getTemplateObject(["define(",", ",");"]),t,s)},transformModuleSpecifier:function(e){var t=this.getTempIdentifier(),n=e.token.processedValue,a=i(n.replace(/\.js$/,""));return this.dependencies.push({path:a,local:t}),r(t)}},{},e)}(e);return{get AmdTransformer(){return f}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/staticsemantics/PropName.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTreeType.js","traceur@0.0.111/src/staticsemantics/PropName.js")),t=e.COMPUTED_PROPERTY_NAME,r=e.GET_ACCESSOR,n=e.LITERAL_PROPERTY_NAME,i=e.METHOD,a=e.PROPERTY_NAME_ASSIGNMENT,s=e.PROPERTY_NAME_SHORTHAND,o=e.SET_ACCESSOR,u=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/TokenType.js","traceur@0.0.111/src/staticsemantics/PropName.js")).IDENTIFIER;function propName(e){switch(e.type){case n:var c=e.literalToken;return c.isKeyword()||c.type===u?c.toString():String(e.literalToken.processedValue);case t:return"";case s:return e.name.toString();case i:case a:case r:case o:return propName(e.name)}}return{get propName(){return propName}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/AnnotationsTransformer.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeTransformer.js","traceur@0.0.111/src/codegeneration/AnnotationsTransformer.js")).ParseTreeTransformer,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/PredefinedName.js","traceur@0.0.111/src/codegeneration/AnnotationsTransformer.js")).CONSTRUCTOR,r=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/TokenType.js","traceur@0.0.111/src/codegeneration/AnnotationsTransformer.js")).STRING,n=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTrees.js","traceur@0.0.111/src/codegeneration/AnnotationsTransformer.js")),i=n.AnonBlock,a=n.ClassDeclaration,s=n.ExportDeclaration,o=n.FormalParameter,u=n.FunctionDeclaration,c=n.GetAccessor,l=n.LiteralExpression,m=n.Method,p=n.SetAccessor,f=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../staticsemantics/PropName.js","traceur@0.0.111/src/codegeneration/AnnotationsTransformer.js")).propName,h=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeFactory.js","traceur@0.0.111/src/codegeneration/AnnotationsTransformer.js")),d=h.createArgumentList,g=h.createArrayLiteral,T=(h.createAssignmentStatement,h.createIdentifierExpression),y=h.createMemberExpression,R=h.createNewExpression,S=h.createStringLiteralToken,_=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./PlaceholderParser.js","traceur@0.0.111/src/codegeneration/AnnotationsTransformer.js")),v=_.parseExpression,E=_.parseStatement,M=$traceurRuntime.createClass((function M(){this.className=null,this.isExport=!1,this.constructorParameters=[],this.annotations=[],this.metadata=[]}),{get inClassScope(){return null!==this.className}},{}),A=function(e){function AnnotationsTransformer(){$traceurRuntime.superConstructor(AnnotationsTransformer).call(this),this.stack_=[new M]}return $traceurRuntime.createClass(AnnotationsTransformer,{transformExportDeclaration:function(e){var t,r=this.pushAnnotationScope_();r.isExport=!0,(t=r.annotations).push.apply(t,$traceurRuntime.spread(e.annotations));var n=this.transformAny(e.declaration);return(n!==e.declaration||e.annotations.length>0)&&(e=new s(e.location,n,[])),this.appendMetadata_(e)},transformClassDeclaration:function(e){var t,r,n=this.scope.isExport?this.scope.annotations:[],i=this.pushAnnotationScope_();return i.className=e.name,(t=i.annotations).push.apply(t,$traceurRuntime.spread(n,e.annotations)),e=$traceurRuntime.superGet(this,AnnotationsTransformer.prototype,"transformClassDeclaration").call(this,e),(r=i.metadata).unshift.apply(r,$traceurRuntime.spread(this.transformMetadata_(T(e.name),i.annotations,i.constructorParameters))),e.annotations.length>0&&(e=new a(e.location,e.name,e.superClass,e.elements,[],null)),this.appendMetadata_(e)},transformFunctionDeclaration:function(e){var t,r,n=this.scope.isExport?this.scope.annotations:[],i=this.pushAnnotationScope_();return(t=i.annotations).push.apply(t,$traceurRuntime.spread(n,e.annotations)),(r=i.metadata).push.apply(r,$traceurRuntime.spread(this.transformMetadata_(T(e.name),i.annotations,e.parameterList.parameters))),(e=$traceurRuntime.superGet(this,AnnotationsTransformer.prototype,"transformFunctionDeclaration").call(this,e)).annotations.length>0&&(e=new u(e.location,e.name,e.functionKind,e.parameterList,e.typeAnnotation,[],e.body)),this.appendMetadata_(e)},transformFormalParameter:function(e){return e.annotations.length>0&&(e=new o(e.location,e.parameter,e.typeAnnotation,[])),$traceurRuntime.superGet(this,AnnotationsTransformer.prototype,"transformFormalParameter").call(this,e)},transformGetAccessor:function(e){var t;return this.scope.inClassScope?((t=this.scope.metadata).push.apply(t,$traceurRuntime.spread(this.transformMetadata_(this.transformAccessor_(e,this.scope.className,"get"),e.annotations,[]))),e.annotations.length>0&&(e=new c(e.location,e.isStatic,e.name,e.typeAnnotation,[],e.body)),$traceurRuntime.superGet(this,AnnotationsTransformer.prototype,"transformGetAccessor").call(this,e)):$traceurRuntime.superGet(this,AnnotationsTransformer.prototype,"transformGetAccessor").call(this,e)},transformSetAccessor:function(e){var t;if(!this.scope.inClassScope)return $traceurRuntime.superGet(this,AnnotationsTransformer.prototype,"transformSetAccessor").call(this,e);(t=this.scope.metadata).push.apply(t,$traceurRuntime.spread(this.transformMetadata_(this.transformAccessor_(e,this.scope.className,"set"),e.annotations,e.parameterList.parameters)));var r=this.transformAny(e.parameterList);return(r!==e.parameterList||e.annotations.length>0)&&(e=new p(e.location,e.isStatic,e.name,r,[],e.body)),$traceurRuntime.superGet(this,AnnotationsTransformer.prototype,"transformSetAccessor").call(this,e)},transformMethod:function(e){var r,n;if(!this.scope.inClassScope)return $traceurRuntime.superGet(this,AnnotationsTransformer.prototype,"transformMethod").call(this,e);e.isStatic||f(e)!==t?(n=this.scope.metadata).push.apply(n,$traceurRuntime.spread(this.transformMetadata_(this.transformPropertyMethod_(e,this.scope.className),e.annotations,e.parameterList.parameters))):((r=this.scope.annotations).push.apply(r,$traceurRuntime.spread(e.annotations)),this.scope.constructorParameters=e.parameterList.parameters);var i=this.transformAny(e.parameterList);return(i!==e.parameterList||e.annotations.length>0)&&(e=new m(e.location,e.isStatic,e.functionKind,e.name,i,e.typeAnnotation,[],e.body,e.debugName)),$traceurRuntime.superGet(this,AnnotationsTransformer.prototype,"transformMethod").call(this,e)},appendMetadata_:function(e){var t,r=this.stack_.pop().metadata;return r.length>0&&(this.scope.isExport?(t=this.scope.metadata).push.apply(t,$traceurRuntime.spread(r)):e=new i(null,$traceurRuntime.spread([e],r))),e},transformClassReference_:function(e,t){var r=T(t);return e.isStatic||(r=y(r,"prototype")),r},transformPropertyMethod_:function(e,t){return y(this.transformClassReference_(e,t),e.name.literalToken)},transformAccessor_:function(e,t,r){var n=d([this.transformClassReference_(e,t),this.createLiteralStringExpression_(e.name)]),i=v($traceurRuntime.getTemplateObject(["Object.getOwnPropertyDescriptor(",")"]),n);return y(i,r)},transformParameters_:function(e){var t=this,r=!1;return e=e.map((function(e){var n,i=[];return e.typeAnnotation&&i.push(t.transformAny(e.typeAnnotation)),e.annotations&&e.annotations.length>0&&(n=i).push.apply(n,$traceurRuntime.spread(t.transformAnnotations_(e.annotations))),i.length>0?(r=!0,g(i)):g([])})),r?e:[]},transformAnnotations_:function(e){return e.map((function(e){return R(e.name,e.args)}))},transformMetadata_:function(e,t,r){var n=[];return null!==t&&(t=this.transformAnnotations_(t)).length>0&&n.push(this.createDefinePropertyStatement_(e,"annotations",g(t))),null!==r&&(r=this.transformParameters_(r)).length>0&&n.push(this.createDefinePropertyStatement_(e,"parameters",g(r))),n},createDefinePropertyStatement_:function(e,t,r){return E($traceurRuntime.getTemplateObject(["Object.defineProperty(",", ",",\n        {get: function() {return ","}});"]),e,t,r)},createLiteralStringExpression_:function(e){var t=e.literalToken;return e.literalToken.type!==r&&(t=S(e.literalToken.value)),new l(null,t)},get scope(){return this.stack_[this.stack_.length-1]},pushAnnotationScope_:function(){var e=new M;return this.stack_.push(e),e}},{},e)}(e);return{get AnnotationsTransformer(){return A}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/FindInFunctionScope.js",[],(function(){"use strict";var e,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./FindVisitor.js","traceur@0.0.111/src/codegeneration/FindInFunctionScope.js")).FindVisitor,r=(e=t,$traceurRuntime.createClass((function FindInFunctionScope(){$traceurRuntime.superConstructor(FindInFunctionScope).apply(this,arguments)}),{visitFunctionDeclaration:function(e){this.visitList(e.annotations)},visitFunctionExpression:function(e){this.visitList(e.annotations)},visitSetAccessor:function(e){this.visitAny(e.name),this.visitList(e.annotations)},visitGetAccessor:function(e){this.visitAny(e.name),this.visitList(e.annotations)},visitMethod:function(e){this.visitAny(e.name),this.visitList(e.annotations)}},{},e));return{get FindInFunctionScope(){return r}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/semantics/util.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTreeType.js","traceur@0.0.111/src/semantics/util.js")),t=e.IDENTIFIER_EXPRESSION,r=e.LITERAL_EXPRESSION,n=e.PAREN_EXPRESSION,i=e.UNARY_EXPRESSION,a=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/PredefinedName.js","traceur@0.0.111/src/semantics/util.js")).UNDEFINED,s=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/TokenType.js","traceur@0.0.111/src/semantics/util.js")).VOID;function hasUseStrict(e){for(var t=0;t<e.length;t++){if(!e[t].isDirectivePrologue())return!1;if(e[t].isUseStrictDirective())return!0}return!1}function isUndefined(e){return e.type===n?isUndefined(e.expression):e.type===t&&e.identifierToken.value===a}function isVoidExpression(e){return e.type===n?isVoidExpression(e.expression):e.type===i&&e.operator.type===s&&isLiteralExpression(e.operand)}function isLiteralExpression(e){return e.type===n?isLiteralExpression(e.expression):e.type===r}return{get hasUseStrict(){return hasUseStrict},get isUndefined(){return isUndefined},get isVoidExpression(){return isVoidExpression},get isLiteralExpression(){return isLiteralExpression}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/semantics/isTreeStrict.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTreeType.js","traceur@0.0.111/src/semantics/isTreeStrict.js")),t=e.ARROW_FUNCTION,r=e.CLASS_DECLARATION,n=e.CLASS_EXPRESSION,i=e.FUNCTION_BODY,a=e.FUNCTION_DECLARATION,s=e.FUNCTION_EXPRESSION,o=e.GET_ACCESSOR,u=e.METHOD,c=e.MODULE,l=e.SCRIPT,m=e.SET_ACCESSOR,p=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./util.js","traceur@0.0.111/src/semantics/isTreeStrict.js")).hasUseStrict;function isTreeStrict(e){switch(e.type){case r:case n:case c:return!0;case i:return p(e.statements);case s:case a:case u:return isTreeStrict(e.body);case t:return e.body.type===i&&isTreeStrict(e.body);case o:case m:return isTreeStrict(e.body);case l:return p(e.scriptItemList);default:return!1}}return{get isTreeStrict(){return isTreeStrict}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/semantics/Scope.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTreeType.js","traceur@0.0.111/src/semantics/Scope.js")),t=e.BLOCK,r=e.CATCH,n=e.FUNCTION_EXPRESSION,i=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../util/StringMap.js","traceur@0.0.111/src/semantics/Scope.js")).StringMap,a=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/TokenType.js","traceur@0.0.111/src/semantics/Scope.js")).VAR,s=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./isTreeStrict.js","traceur@0.0.111/src/semantics/Scope.js")).isTreeStrict;function reportDuplicateVar(e,t,r){e.reportError(t.location,"Duplicate declaration, "+r)}var o=$traceurRuntime.createClass((function o(e,t){this.parent=e,this.tree=t,this.variableDeclarations_=new i,this.lexicalDeclarations_=new i,this.strictMode=e&&e.strictMode||s(t),this.inGenerator=e&&e.inGenerator||!1}),{addBinding:function(e,t,r){t===a?this.addVar(e,r):this.addDeclaration(e,t,r)},addVar:function(e,t){var r=e.getStringValue();!this.lexicalDeclarations_.has(r)||this.isFunctionExpressionName(r)?(this.variableDeclarations_.set(r,{type:a,tree:e,scope:this}),!this.isVarScope&&this.parent&&this.parent.addVar(e,t)):reportDuplicateVar(t,e,r)},addDeclaration:function(e,t,r){var n=e.getStringValue();!this.lexicalDeclarations_.has(n)&&!this.variableDeclarations_.has(n)||this.isFunctionExpressionName(n)?this.lexicalDeclarations_.set(n,{type:t,tree:e,scope:this}):reportDuplicateVar(r,e,n)},renameBinding:function(e,t,r,n){t.getStringValue(),r===a?this.lexicalDeclarations_.has(e)&&(this.lexicalDeclarations_.delete(e),this.addVar(t,n)):this.variableDeclarations_.has(e)&&(this.variableDeclarations_.delete(e),this.addDeclaration(t,r,n),!this.isVarScope&&this.parent&&this.parent.renameBinding(e,t,r))},get isVarScope(){switch(this.tree.type){case t:case r:return!1}return!0},getVarScope:function(){return this.isVarScope?this:this.parent?this.parent.getVarScope():null},isFunctionExpressionName:function(e){var t=this.getBindingByName(e);return t&&t.scope.tree.type===n&&t.scope.tree.name===t.tree},getBinding:function(e){var t=e.getStringValue();return this.getBindingByName(t)},getBindingByName:function(e){var t=this.variableDeclarations_.get(e);return t&&this.isVarScope?t:(t=this.lexicalDeclarations_.get(e))||(this.parent?this.parent.getBindingByName(e):null)},getAllBindingNames:function(){var e=this.variableDeclarations_.keysAsSet();return this.lexicalDeclarations_.forEach((function(t){return e.add(t)})),e},getVariableBindingNames:function(){return this.variableDeclarations_.keysAsSet()},getLexicalBindingNames:function(){return this.lexicalDeclarations_.keysAsSet()},hasBindingName:function(e){return this.lexicalDeclarations_.has(e)||this.variableDeclarations_.has(e)},hasLexicalBindingName:function(e){return this.lexicalDeclarations_.has(e)},hasVariableBindingName:function(e){return this.variableDeclarations_.has(e)}},{});return{get Scope(){return o}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/semantics/ScopeVisitor.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/ParseTreeVisitor.js","traceur@0.0.111/src/semantics/ScopeVisitor.js")).ParseTreeVisitor,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/TokenType.js","traceur@0.0.111/src/semantics/ScopeVisitor.js")).VAR,r=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./Scope.js","traceur@0.0.111/src/semantics/ScopeVisitor.js")).Scope,n=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTreeType.js","traceur@0.0.111/src/semantics/ScopeVisitor.js")),i=n.COMPREHENSION_FOR,a=n.VARIABLE_DECLARATION_LIST,s=function(e){function ScopeVisitor(){$traceurRuntime.superConstructor(ScopeVisitor).call(this),this.map_=new Map,this.scope=null,this.withBlockCounter_=0}return $traceurRuntime.createClass(ScopeVisitor,{getScopeForTree:function(e){return this.map_.get(e)},createScope:function(e){return new r(this.scope,e)},pushScope:function(e){var t=this.createScope(e);return this.map_.set(e,t),this.scope=t},popScope:function(e){if(this.scope!==e)throw new Error("ScopeVisitor scope mismatch");this.scope=e.parent},visitScript:function(e){var t=this.pushScope(e);$traceurRuntime.superGet(this,ScopeVisitor.prototype,"visitScript").call(this,e),this.popScope(t)},visitModule:function(e){var t=this.pushScope(e);$traceurRuntime.superGet(this,ScopeVisitor.prototype,"visitModule").call(this,e),this.popScope(t)},visitBlock:function(e){var t=this.pushScope(e);$traceurRuntime.superGet(this,ScopeVisitor.prototype,"visitBlock").call(this,e),this.popScope(t)},visitCatch:function(e){var t=this.pushScope(e);this.visitAny(e.binding),this.visitList(e.catchBody.statements),this.popScope(t)},visitFunctionBodyForScope:function(e){var t=void 0!==arguments[1]?arguments[1]:e.parameterList,r=this.pushScope(e);this.visitAny(t),r.inGenerator=e.functionKind&&e.isGenerator(),this.visitAny(e.body),this.popScope(r)},visitFunctionExpression:function(e){this.visitFunctionBodyForScope(e)},visitFunctionDeclaration:function(e){this.visitAny(e.name),this.visitFunctionBodyForScope(e)},visitArrowFunction:function(e){this.visitFunctionBodyForScope(e)},visitGetAccessor:function(e){this.visitFunctionBodyForScope(e,null)},visitSetAccessor:function(e){this.visitFunctionBodyForScope(e)},visitMethod:function(e){this.visitFunctionBodyForScope(e)},visitClassDeclaration:function(e){this.visitAny(e.superClass);var t=this.pushScope(e);this.visitAny(e.name),this.visitList(e.elements),this.popScope(t)},visitClassExpression:function(e){var t;this.visitAny(e.superClass),e.name&&(t=this.pushScope(e),this.visitAny(e.name)),this.visitList(e.elements),e.name&&this.popScope(t)},visitWithStatement:function(e){this.visitAny(e.expression),this.withBlockCounter_++,this.visitAny(e.body),this.withBlockCounter_--},get inWithBlock(){return this.withBlockCounter_>0},visitLoop_:function(e,r){if(e.initializer.type===a&&e.initializer.declarationType!==t){var n=this.pushScope(e);r(),this.popScope(n)}else r()},visitForInStatement:function(e){var t=this;this.visitLoop_(e,(function(){return $traceurRuntime.superGet(t,ScopeVisitor.prototype,"visitForInStatement").call(t,e)}))},visitForOfStatement:function(e){var t=this;this.visitLoop_(e,(function(){return $traceurRuntime.superGet(t,ScopeVisitor.prototype,"visitForOfStatement").call(t,e)}))},visitForStatement:function(e){var t=this;e.initializer?this.visitLoop_(e,(function(){return $traceurRuntime.superGet(t,ScopeVisitor.prototype,"visitForStatement").call(t,e)})):$traceurRuntime.superGet(this,ScopeVisitor.prototype,"visitForStatement").call(this,e)},visitComprehension_:function(e){for(var t=[],r=0;r<e.comprehensionList.length;r++){var n=null;e.comprehensionList[r].type===i&&(n=this.pushScope(e.comprehensionList[r])),t.push(n),this.visitAny(e.comprehensionList[r])}this.visitAny(e.expression);for(var a=t.length-1;a>=0;a--)t[a]&&this.popScope(t[a])},visitArrayComprehension:function(e){this.visitComprehension_(e)},visitGeneratorComprehension:function(e){this.visitComprehension_(e)},visitPredefinedType:function(e){},visitTypeArguments:function(e){},visitFunctionType:function(e){}},{},e)}(e);return{get ScopeVisitor(){return s}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/semantics/ScopeChainBuilder.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/TokenType.js","traceur@0.0.111/src/semantics/ScopeChainBuilder.js")),t=e.CONST,r=e.LET,n=e.VAR,i=function(e){function ScopeChainBuilder(e){$traceurRuntime.superConstructor(ScopeChainBuilder).call(this),this.reporter=e,this.declarationType_=null}return $traceurRuntime.createClass(ScopeChainBuilder,{visitCatch:function(e){var t=this.pushScope(e);this.declarationType_=r,this.visitAny(e.binding),this.visitList(e.catchBody.statements),this.popScope(t)},visitImportedBinding:function(e){this.declarationType_=t,$traceurRuntime.superGet(this,ScopeChainBuilder.prototype,"visitImportedBinding").call(this,e)},visitVariableDeclarationList:function(e){this.declarationType_=e.declarationType,$traceurRuntime.superGet(this,ScopeChainBuilder.prototype,"visitVariableDeclarationList").call(this,e)},visitBindingIdentifier:function(e){this.declareVariable(e)},visitFunctionExpression:function(e){var r=this.pushScope(e);e.name&&(this.declarationType_=t,this.visitAny(e.name)),this.visitAny(e.parameterList),r.inGenerator=e.isGenerator(),this.visitAny(e.body),this.popScope(r)},visitFormalParameter:function(e){this.declarationType_=n,$traceurRuntime.superGet(this,ScopeChainBuilder.prototype,"visitFormalParameter").call(this,e)},visitFunctionDeclaration:function(e){if(this.scope)if(this.scope.isVarScope)this.declarationType_=n,this.visitAny(e.name);else{if(!this.scope.strictMode){var t=this.scope.getVarScope();t&&t.addVar(e.name,this.reporter)}this.declarationType_=r,this.visitAny(e.name)}this.visitFunctionBodyForScope(e,e.parameterList,e.body)},visitClassDeclaration:function(e){this.visitAny(e.superClass),this.declarationType_=r,this.visitAny(e.name);var n=this.pushScope(e);this.declarationType_=t,this.visitAny(e.name),this.visitList(e.elements),this.popScope(n)},visitClassExpression:function(e){var r;this.visitAny(e.superClass),e.name&&(r=this.pushScope(e),this.declarationType_=t,this.visitAny(e.name)),this.visitList(e.elements),e.name&&this.popScope(r)},visitComprehensionFor:function(e){this.declarationType_=r,$traceurRuntime.superGet(this,ScopeChainBuilder.prototype,"visitComprehensionFor").call(this,e)},declareVariable:function(e){this.scope.addBinding(e,this.declarationType_,this.reporter)}},{},e)}($traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ScopeVisitor.js","traceur@0.0.111/src/semantics/ScopeChainBuilder.js")).ScopeVisitor);return{get ScopeChainBuilder(){return i}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/semantics/VariableBinder.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ScopeChainBuilder.js","traceur@0.0.111/src/semantics/VariableBinder.js")).ScopeChainBuilder;function variablesInBlock(t){var r=arguments[1],n=new e(null);n.visitAny(t);var i=n.getScopeForTree(t),a=i.getLexicalBindingNames();if(!r)return a;var s=i.getVariableBindingNames();return s.forEach((function(e){return a.add(e)})),a}function variablesInFunction(t){var r=new e(null);return r.visitAny(t),r.getScopeForTree(t).getAllBindingNames()}return{get variablesInBlock(){return variablesInBlock},get variablesInFunction(){return variablesInFunction}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/ScopeTransformer.js",[],(function(){"use strict";var e,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/PredefinedName.js","traceur@0.0.111/src/codegeneration/ScopeTransformer.js")),r=t.ARGUMENTS,n=t.THIS,i=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./FindInFunctionScope.js","traceur@0.0.111/src/codegeneration/ScopeTransformer.js")).FindInFunctionScope,a=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeTransformer.js","traceur@0.0.111/src/codegeneration/ScopeTransformer.js")).ParseTreeTransformer,s=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTrees.js","traceur@0.0.111/src/codegeneration/ScopeTransformer.js")),o=s.FunctionDeclaration,u=s.FunctionExpression,c=s.GetAccessor,l=s.Method,m=s.SetAccessor,p=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../util/StringSet.js","traceur@0.0.111/src/codegeneration/ScopeTransformer.js")).StringSet,f=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTreeType.js","traceur@0.0.111/src/codegeneration/ScopeTransformer.js")).VARIABLE_DECLARATION_LIST,h=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/TokenType.js","traceur@0.0.111/src/codegeneration/ScopeTransformer.js")).VAR,d=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../semantics/VariableBinder.js","traceur@0.0.111/src/codegeneration/ScopeTransformer.js")),g=d.variablesInBlock,T=d.variablesInFunction,y=(e=i,$traceurRuntime.createClass((function FindNames(e){$traceurRuntime.superConstructor(FindNames).call(this),this.names=e}),{visitBindingIdentifier:function(e){this.names.add(e.getStringValue())}},{},e));var R=function(e){function ScopeTransformer(e){$traceurRuntime.superConstructor(ScopeTransformer).call(this),this.varName_=e}return $traceurRuntime.createClass(ScopeTransformer,{transformBlock:function(e){return g(e).has(this.varName_)?e:$traceurRuntime.superGet(this,ScopeTransformer.prototype,"transformBlock").call(this,e)},sameTreeIfNameInLoopInitializer_:function(e){return function getLexicalBindingNames(e){var t=new p;if(null!==e&&e.type===f&&e.declarationType!==h)for(var r=new y(t),n=0;n<e.declarations.length;n++)r.visitAny(e.declarations[n].lvalue);return t}(e.initializer).has(this.varName_)?e:null},transformForStatement:function(e){return this.sameTreeIfNameInLoopInitializer_(e)||$traceurRuntime.superGet(this,ScopeTransformer.prototype,"transformForStatement").call(this,e)},transformForInStatement:function(e){return this.sameTreeIfNameInLoopInitializer_(e)||$traceurRuntime.superGet(this,ScopeTransformer.prototype,"transformForInStatement").call(this,e)},transformForOfStatement:function(e){return this.sameTreeIfNameInLoopInitializer_(e)||$traceurRuntime.superGet(this,ScopeTransformer.prototype,"transformForOfStatement").call(this,e)},transformForOnStatement:function(e){return this.sameTreeIfNameInLoopInitializer_(e)||$traceurRuntime.superGet(this,ScopeTransformer.prototype,"transformForOnStatement").call(this,e)},transformThisExpression:function(e){return this.varName_!==n?e:$traceurRuntime.superGet(this,ScopeTransformer.prototype,"transformThisExpression").call(this,e)},transformParameterListAndBody_:function(e){return this.getDoNotRecurse(e)?e:{parameterList:this.transformAny(e.parameterList),body:this.transformAny(e.body)}},transformFunctionDeclaration:function(e){var t=this.transformAny(e.name),r=this.transformAny(e.typeAnnotation),n=this.transformList(e.annotations),i=this.transformParameterListAndBody_(e),a=i.parameterList,s=i.body;return t===e.name&&a===e.parameterList&&r===e.typeAnnotation&&n===e.annotations&&s===e.body?e:new o(e.location,t,e.functionKind,a,r,n,s)},transformFunctionExpression:function(e){var t=this.transformAny(e.name),r=this.transformAny(e.typeAnnotation),n=this.transformList(e.annotations),i=this.transformParameterListAndBody_(e),a=i.parameterList,s=i.body;return t===e.name&&a===e.parameterList&&r===e.typeAnnotation&&n===e.annotations&&s===e.body?e:new u(e.location,t,e.functionKind,a,r,n,s)},transformMethod:function(e){var t=this.transformAny(e.name),r=this.transformAny(e.typeAnnotation),n=this.transformList(e.annotations),i=this.transformParameterListAndBody_(e),a=i.parameterList,s=i.body;return t===e.name&&r===e.typeAnnotation&&n===e.annotations&&a===e.parameterList&&s===e.body?e:new l(e.location,e.isStatic,e.functionKind,t,a,r,n,s,e.debugName)},transformGetAccessor:function(e){var t=this.transformAny(e.name),r=this.transformAny(e.typeAnnotation),n=this.transformList(e.annotations),i=this.getDoNotRecurse(e)?e.body:this.transformAny(e.body);return t===e.name&&r===e.typeAnnotation&&n===e.annotations&&i===e.body?e:new c(e.location,e.isStatic,t,r,n,i)},transformSetAccessor:function(e){var t=this.transformAny(e.name),r=this.transformList(e.annotations),n=this.transformParameterListAndBody_(e),i=n.parameterList,a=n.body;return t===e.name&&r===e.annotations&&i===e.parameterList&&a===e.body?e:new m(e.location,e.isStatic,t,i,r,a)},getDoNotRecurse:function(e){return this.varName_===r||this.varName_===n||T(e).has(this.varName_)},transformCatch:function(e){return e.binding.isPattern()||this.varName_!==e.binding.identifierToken.value?$traceurRuntime.superGet(this,ScopeTransformer.prototype,"transformCatch").call(this,e):e}},{},e)}(a);return{get ScopeTransformer(){return R}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/AlphaRenamer.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ScopeTransformer.js","traceur@0.0.111/src/codegeneration/AlphaRenamer.js")).ScopeTransformer,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTrees.js","traceur@0.0.111/src/codegeneration/AlphaRenamer.js")),r=t.FunctionDeclaration,n=t.FunctionExpression,i=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/PredefinedName.js","traceur@0.0.111/src/codegeneration/AlphaRenamer.js")).THIS,a=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeFactory.js","traceur@0.0.111/src/codegeneration/AlphaRenamer.js")).createIdentifierExpression,s=function(e){function AlphaRenamer(e,t){$traceurRuntime.superConstructor(AlphaRenamer).call(this,e),this.newName_=t}return $traceurRuntime.createClass(AlphaRenamer,{transformIdentifierExpression:function(e){return this.varName_===e.identifierToken.value?a(this.newName_):e},transformThisExpression:function(e){return this.varName_!==i?e:a(this.newName_)},transformFunctionDeclaration:function(e){return this.varName_===e.name&&(e=new r(e.location,this.newName_,e.functionKind,e.parameterList,e.typeAnnotation,e.annotations,e.body)),$traceurRuntime.superGet(this,AlphaRenamer.prototype,"transformFunctionDeclaration").call(this,e)},transformFunctionExpression:function(e){return this.varName_===e.name&&(e=new n(e.location,this.newName_,e.functionKind,e.parameterList,e.typeAnnotation,e.annotations,e.body)),$traceurRuntime.superGet(this,AlphaRenamer.prototype,"transformFunctionExpression").call(this,e)}},{rename:function(e,t,r){return new AlphaRenamer(t,r).transformAny(e)}},e)}(e);return{get AlphaRenamer(){return s}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/FindThisOrArguments.js",[],(function(){"use strict";var e,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/PredefinedName.js","traceur@0.0.111/src/codegeneration/FindThisOrArguments.js")).ARGUMENTS,r=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./FindInFunctionScope.js","traceur@0.0.111/src/codegeneration/FindThisOrArguments.js")).FindInFunctionScope,n=(e=r,$traceurRuntime.createClass((function FindThisOrArguments(){$traceurRuntime.superConstructor(FindThisOrArguments).call(this),this.foundThis=!1,this.foundArguments=!1}),{visitThisExpression:function(e){this.foundThis=!0,this.found=this.foundArguments},visitIdentifierExpression:function(e){e.identifierToken.value===t&&(this.foundArguments=!0,this.found=this.foundThis)}},{},e));return{get FindThisOrArguments(){return n}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/alphaRenameThisAndArguments.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/PredefinedName.js","traceur@0.0.111/src/codegeneration/alphaRenameThisAndArguments.js")),t=e.ARGUMENTS,r=e.THIS,n=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./AlphaRenamer.js","traceur@0.0.111/src/codegeneration/alphaRenameThisAndArguments.js")).AlphaRenamer,i=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./FindThisOrArguments.js","traceur@0.0.111/src/codegeneration/alphaRenameThisAndArguments.js")).FindThisOrArguments;function alphaRenameThisAndArguments(e,a){var s=new i;if(s.visitAny(a),s.foundArguments){var o=e.addTempVarForArguments();a=n.rename(a,t,o)}if(s.foundThis){var u=e.addTempVarForThis();a=n.rename(a,r,u)}return a}return{get default(){return alphaRenameThisAndArguments}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/ComprehensionTransformer.js",[],(function(){"use strict";var e,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./alphaRenameThisAndArguments.js","traceur@0.0.111/src/codegeneration/ComprehensionTransformer.js")).default,r=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTrees.js","traceur@0.0.111/src/codegeneration/ComprehensionTransformer.js")).FunctionExpression,n=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./TempVarTransformer.js","traceur@0.0.111/src/codegeneration/ComprehensionTransformer.js")).TempVarTransformer,i=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/TokenType.js","traceur@0.0.111/src/codegeneration/ComprehensionTransformer.js")),a=i.LET,s=i.STAR,o=i.VAR,u=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTreeType.js","traceur@0.0.111/src/codegeneration/ComprehensionTransformer.js")),c=u.COMPREHENSION_FOR,l=u.COMPREHENSION_IF,m=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/Token.js","traceur@0.0.111/src/codegeneration/ComprehensionTransformer.js")).Token,p=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeFactory.js","traceur@0.0.111/src/codegeneration/ComprehensionTransformer.js")),f=p.createCallExpression,h=p.createEmptyParameterList,d=p.createForOfStatement,g=p.createFunctionBody,T=p.createIfStatement,y=p.createParenExpression,R=p.createVariableDeclarationList,S=(e=n,$traceurRuntime.createClass((function ComprehensionTransformer(){$traceurRuntime.superConstructor(ComprehensionTransformer).apply(this,arguments)}),{transformComprehension:function(e,n,i){for(var u=arguments[3],p=arguments[4],S=i||!this.options.blockBinding?o:a,_=u?[u]:[],v=e.comprehensionList.length-1;v>=0;v--){var E=e.comprehensionList[v];switch(E.type){case l:var M=this.transformAny(E.expression);n=T(M,n);break;case c:var A=this.transformAny(E.left),x=this.transformAny(E.iterator),$=R(S,A,null);n=d($,x,n);break;default:throw new Error("Unreachable.")}}n=t(this,n),_.push(n),p&&_.push(p);var C=i?new m(s,null):null,N=new r(null,null,C,h(),null,[],g(_));return y(f(N))}},{},e));return{get ComprehensionTransformer(){return S}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/ArrayComprehensionTransformer.js",[],(function(){"use strict";var e,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ComprehensionTransformer.js","traceur@0.0.111/src/codegeneration/ArrayComprehensionTransformer.js")).ComprehensionTransformer,r=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeFactory.js","traceur@0.0.111/src/codegeneration/ArrayComprehensionTransformer.js")).createIdentifierExpression,n=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./PlaceholderParser.js","traceur@0.0.111/src/codegeneration/ArrayComprehensionTransformer.js")).parseStatement,i=(e=t,$traceurRuntime.createClass((function ArrayComprehensionTransformer(){$traceurRuntime.superConstructor(ArrayComprehensionTransformer).apply(this,arguments)}),{transformArrayComprehension:function(e){this.pushTempScope();var t=this.transformAny(e.expression),i=r(this.getTempIdentifier()),a=r(this.getTempIdentifier()),s=n($traceurRuntime.getTemplateObject(["var "," = 0, "," = [];"]),i,a),o=n($traceurRuntime.getTemplateObject(["","[","++] = ",";"]),a,i,t),u=n($traceurRuntime.getTemplateObject(["return ",";"]),a);return a=this.transformComprehension(e,o,null,s,u),this.popTempScope(),a}},{},e));return{get ArrayComprehensionTransformer(){return i}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/ParenTrait.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTrees.js","traceur@0.0.111/src/codegeneration/ParenTrait.js")),t=e.ArgumentList,r=e.ArrayLiteral,n=e.BinaryExpression,i=e.ConditionalExpression,a=e.ExpressionStatement,s=e.NewExpression,o=e.ParenExpression,u=e.PropertyNameAssignment,c=e.VariableDeclaration,l=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTreeType.js","traceur@0.0.111/src/codegeneration/ParenTrait.js")),m=l.CALL_EXPRESSION,p=l.COMMA_EXPRESSION,f=l.FUNCTION_EXPRESSION,h=l.OBJECT_LITERAL,d=l.OBJECT_PATTERN,g=l.TEMPLATE_LITERAL_EXPRESSION,T=l.YIELD_EXPRESSION;function wrap(e){return new o(e.location,e)}function ParenTrait(e){return o=e,$traceurRuntime.createClass((function $__0(){$traceurRuntime.superConstructor($__0).apply(this,arguments)}),{transformVariableDeclaration:function(e){var t=this.transformAny(e.lvalue),r=this.transformAny(e.typeAnnotation),n=this.transformAny(e.initializer);if(null!==n&&n.type===p)n=wrap(n);else if(e.lvalue===t&&e.typeAnnotation===r&&e.initializer===n)return e;return new c(e.location,t,r,n)},transformExpressionStatement:function(e){var t=this.transformAny(e.expression);switch(t.type){case h:case d:case f:t=wrap(t)}return e.expression===t?e:new a(e.location,t)},transformNewExpression:function(e){var t=this.transformAny(e.operand),r=this.transformAny(e.args);switch(t.type){case m:case g:t=wrap(t)}return t===e.operand&&r===e.args?e:new s(e.location,t,r)},transformExpressionList_:function(e){for(var t=this.transformList(e),r=null,n=0;n<e.length;n++){var i=t[n];null!==i&&i.type===p?(i=wrap(i),null===r&&(r=t.slice(0,n)),r.push(i)):null!==r&&r.push(i)}return null!==r?r:t},transformArgumentList:function(e){var r=this.transformExpressionList_(e.args);return e.args===r?e:new t(e.location,r)},transformArrayLiteral:function(e){var t=this.transformExpressionList_(e.elements);return e.elements===t?e:new r(e.location,t)},transformPropertyNameAssignment:function(e){var t=this.transformAny(e.name),r=this.transformAny(e.value);if(r.type===p)r=wrap(r);else if(t===e.name&&r===e.value)return e;return new u(e.location,t,r)},transformBinaryExpression:function(e){var t=this.transformAny(e.left),r=this.transformAny(e.right);return commaOrYield(t.type)&&(t=wrap(t)),commaOrYield(r.type)&&(r=wrap(r)),t===e.left&&r===e.right?e:new n(e.location,t,e.operator,r)},transformConditionalExpression:function(e){var t=this.transformAny(e.condition),r=this.transformAny(e.left),n=this.transformAny(e.right);return commaOrYield(t.type)&&(t=wrap(t)),r.type==p&&(r=wrap(r)),n.type==p&&(n=wrap(n)),t===e.condition&&r===e.left&&n===e.right?e:new i(e.location,t,r,n)}},{},o);var o}function commaOrYield(e){return e===p||e==T}return{get ParenTrait(){return ParenTrait}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/ArrowFunctionTransformer.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/PredefinedName.js","traceur@0.0.111/src/codegeneration/ArrowFunctionTransformer.js")),t=e.ARGUMENTS,r=e.CONSTRUCTOR,n=e.THIS,i=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./AlphaRenamer.js","traceur@0.0.111/src/codegeneration/ArrowFunctionTransformer.js")).AlphaRenamer,a=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTrees.js","traceur@0.0.111/src/codegeneration/ArrowFunctionTransformer.js")).FunctionExpression,s=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./TempVarTransformer.js","traceur@0.0.111/src/codegeneration/ArrowFunctionTransformer.js")).TempVarTransformer,o=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParenTrait.js","traceur@0.0.111/src/codegeneration/ArrowFunctionTransformer.js")).ParenTrait,u=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./alphaRenameThisAndArguments.js","traceur@0.0.111/src/codegeneration/ArrowFunctionTransformer.js")).default,c=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTreeType.js","traceur@0.0.111/src/codegeneration/ArrowFunctionTransformer.js")),l=c.FUNCTION_BODY,m=c.LITERAL_PROPERTY_NAME,p=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./FindThisOrArguments.js","traceur@0.0.111/src/codegeneration/ArrowFunctionTransformer.js")).FindThisOrArguments,f=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeFactory.js","traceur@0.0.111/src/codegeneration/ArrowFunctionTransformer.js")),h=f.createAssignmentExpression,d=f.createCommaExpression,g=f.createFunctionBody,T=f.createIdentifierExpression,y=f.createReturnStatement,R=f.createThisExpression;function convertConciseBody(e){return e.type!==l?g([y(e)]):e}var S=function(e){function ArrowFunctionTransformer(e,t,r){$traceurRuntime.superConstructor(ArrowFunctionTransformer).call(this,e,t,r),this.inDerivedClass_=!1,this.inConstructor_=!1}return $traceurRuntime.createClass(ArrowFunctionTransformer,{transformArrowFunction:function(e){return this.inDerivedClass_&&this.inConstructor_?this.transformUsingCommaExpression_(e):this.transformUsingTempVar_(e)},transformUsingCommaExpression_:function(e){var r,s,o=new p;o.visitAny(e),o.foundArguments&&(r=this.addTempVar(),e=i.rename(e,t,r)),o.foundThis&&(s=this.addTempVar(),e=i.rename(e,n,s));var u=this.transformAny(e.parameterList),c=this.transformAny(e.body);c=convertConciseBody(c);var l=new a(e.location,null,e.functionKind,u,null,[],c),m=[];return r&&m.push(h(T(r),T(t))),s&&m.push(h(T(s),R())),0===m.length?l:(m.push(l),d(m))},transformUsingTempVar_:function(e){var t=u(this,e),r=this.transformAny(t.parameterList),n=this.transformAny(t.body);return n=convertConciseBody(n),new a(e.location,null,e.functionKind,r,null,[],n)},transformClassExpression:function(e){var t=this.inDerivedClass_;this.inDerivedClass_=null!==e.superClass;var r=$traceurRuntime.superGet(this,ArrowFunctionTransformer.prototype,"transformClassExpression").call(this,e);return this.inDerivedClass_=t,r},transformClassDeclaration:function(e){var t=this.inDerivedClass_;this.inDerivedClass_=null!==e.superClass;var r=$traceurRuntime.superGet(this,ArrowFunctionTransformer.prototype,"transformClassDeclaration").call(this,e);return this.inDerivedClass_=t,r},transformMethod:function(e){var t=this.inConstructor_;this.inConstructor_=!e.isStatic&&null===e.functionKind&&e.name.type===m&&e.name.literalToken.value===r;var n=$traceurRuntime.superGet(this,ArrowFunctionTransformer.prototype,"transformMethod").call(this,e);return this.inConstructor_=t,n}},{transform:function(e,t){var r=convertConciseBody((t=u(e,t)).body);return new a(t.location,null,t.functionKind,t.parameterList,null,[],r)}},e)}(o(s));return{get ArrowFunctionTransformer(){return S}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/AsyncGeneratorTransformer.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./alphaRenameThisAndArguments.js","traceur@0.0.111/src/codegeneration/AsyncGeneratorTransformer.js")).default,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeFactory.js","traceur@0.0.111/src/codegeneration/AsyncGeneratorTransformer.js")),r=t.createArgumentList,n=t.createBlock,i=t.createFunctionBody,a=t.createIdentifierExpression,s=t.createMemberExpression,o=t.createThisExpression,u=t.createVariableDeclaration,c=t.createVariableDeclarationList,l=t.createVariableStatement,m=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./PlaceholderParser.js","traceur@0.0.111/src/codegeneration/AsyncGeneratorTransformer.js")).parseStatement,p=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ImportRuntimeTrait.js","traceur@0.0.111/src/codegeneration/AsyncGeneratorTransformer.js")).default,f=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./TempVarTransformer.js","traceur@0.0.111/src/codegeneration/AsyncGeneratorTransformer.js")).TempVarTransformer,h=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTrees.js","traceur@0.0.111/src/codegeneration/AsyncGeneratorTransformer.js")),d=h.AwaitExpression,g=h.Block,T=h.CallExpression,y=h.Catch,R=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./SkipFunctionsTransformerTrait.js","traceur@0.0.111/src/codegeneration/AsyncGeneratorTransformer.js")).default,S=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/PredefinedName.js","traceur@0.0.111/src/codegeneration/AsyncGeneratorTransformer.js")).ARGUMENTS,_=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/TokenType.js","traceur@0.0.111/src/codegeneration/AsyncGeneratorTransformer.js")).VAR,v=function(t){function AsyncGeneratorTransformer(e,t,r){$traceurRuntime.superConstructor(AsyncGeneratorTransformer).call(this,e,t,r),this.variableDeclarations_=[],this.ctx_=a(this.getTempIdentifier())}return $traceurRuntime.createClass(AsyncGeneratorTransformer,{transformYieldExpression:function(e){var t=r([e.expression]);return e.isYieldFor?new d(e.location,new T(null,s(this.ctx_,"yieldFor"),t)):new T(e.location,s(this.ctx_,"yield"),t)},transformCatch:function(e){var t=e.catchBody;return t=new g(t.location,$traceurRuntime.spread([m($traceurRuntime.getTemplateObject(["\n        if (",".inReturn) {\n          throw undefined;\n        }"]),this.ctx_)],t.statements)),new y(e.location,e.binding,t)},transformAsyncGeneratorBody_:function(t,r){t=this.transformAny(t),t=e(this,t);var a=[];this.variableDeclarations_.length>0&&a.push(l(c(_,this.variableDeclarations_)));var s=n(t.statements),o=this.getRuntimeExpression("createAsyncGeneratorInstance");return a.push(m($traceurRuntime.getTemplateObject(["\n        return ","(\n            async function (",") {\n                ","\n            }, ",");"]),o,this.ctx_,s,r)),i(a)},addTempVarForArguments:function(){var e=this.getTempIdentifier();return this.variableDeclarations_.push(u(e,a(S))),e},addTempVarForThis:function(){var e=this.getTempIdentifier();return this.variableDeclarations_.push(u(e,o())),e}},{transformAsyncGeneratorBody:function(e,t,r,n,i){return new AsyncGeneratorTransformer(e,t,r).transformAsyncGeneratorBody_(n,i)}},t)}(R(p(f)));return{get AsyncGeneratorTransformer(){return v}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/AsyncGeneratorTransformPass.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./AsyncGeneratorTransformer.js","traceur@0.0.111/src/codegeneration/AsyncGeneratorTransformPass.js")).AsyncGeneratorTransformer,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./TempVarTransformer.js","traceur@0.0.111/src/codegeneration/AsyncGeneratorTransformPass.js")).TempVarTransformer,r=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTrees.js","traceur@0.0.111/src/codegeneration/AsyncGeneratorTransformPass.js")),n=r.AnonBlock,i=r.FunctionDeclaration,a=r.FunctionExpression,s=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ImportRuntimeTrait.js","traceur@0.0.111/src/codegeneration/AsyncGeneratorTransformPass.js")).default,o=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeFactory.js","traceur@0.0.111/src/codegeneration/AsyncGeneratorTransformPass.js")),u=o.createBindingIdentifier,c=o.createIdentifierExpression,l=o.createIdentifierToken,m=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./PlaceholderParser.js","traceur@0.0.111/src/codegeneration/AsyncGeneratorTransformPass.js")),p=m.parseExpression,f=m.parseStatement,h=function(t){function AsyncGeneratorTransformPass(e,t,r){$traceurRuntime.superConstructor(AsyncGeneratorTransformPass).call(this,e,t,r),this.transformOptions_=r.transformOptions,this.inBlock_=!1}return $traceurRuntime.createClass(AsyncGeneratorTransformPass,{needsTransform_:function(e){return this.transformOptions_.asyncGenerators&&e.isAsyncGenerator()},transformFunctionDeclaration:function(e){if(!this.needsTransform_(e))return $traceurRuntime.superGet(this,AsyncGeneratorTransformPass.prototype,"transformFunctionDeclaration").call(this,e);var t=c(e.name.identifierToken),r=this.getRuntimeExpression("initAsyncGeneratorFunction"),a=p($traceurRuntime.getTemplateObject(["","(",")"]),r,t),s=c(this.inBlock_?this.getTempIdentifier():this.addTempVar(a)),o=this.transformFunction_(e,i,s);return this.inBlock_?new n(null,[o,f($traceurRuntime.getTemplateObject(["var "," = ",""]),s,a)]):o},transformFunctionExpression:function(e){if(!this.needsTransform_(e))return $traceurRuntime.superGet(this,AsyncGeneratorTransformPass.prototype,"transformFunctionExpression").call(this,e);var t;e.name?t=e.name.identifierToken:(t=l(this.getTempIdentifier()),e=new a(e.location,u(t),e.functionKind,e.parameterList,e.typeAnnotation,e.annotations,e.body));var r=this.transformFunction_(e,a,c(t)),n=this.getRuntimeExpression("initAsyncGeneratorFunction");return p($traceurRuntime.getTemplateObject(["","(",")"]),n,r)},transformFunction_:function(t,r,n){var i=$traceurRuntime.superGet(this,AsyncGeneratorTransformPass.prototype,"transformAny").call(this,t.body);i=e.transformAsyncGeneratorBody(this.identifierGenerator,this.reporter,this.options,i,n);return new r(t.location,t.name,null,t.parameterList,t.typeAnnotation||null,t.annotations||null,i)},transformBlock:function(e){var t=this.inBlock_;this.inBlock_=!0;var r=$traceurRuntime.superGet(this,AsyncGeneratorTransformPass.prototype,"transformBlock").call(this,e);return this.inBlock_=t,r}},{},t)}(s(t));return{get AsyncGeneratorTransformPass(){return h}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/FindArguments.js",[],(function(){"use strict";var e,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/PredefinedName.js","traceur@0.0.111/src/codegeneration/FindArguments.js")).ARGUMENTS,r=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./FindInFunctionScope.js","traceur@0.0.111/src/codegeneration/FindArguments.js")).FindInFunctionScope,n=(e=r,$traceurRuntime.createClass((function FindArguments(){$traceurRuntime.superConstructor(FindArguments).apply(this,arguments)}),{visitIdentifierExpression:function(e){e.identifierToken.value===t&&(this.found=!0)}},{},e));return{get default(){return n}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/AsyncToGeneratorTransformer.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/PredefinedName.js","traceur@0.0.111/src/codegeneration/AsyncToGeneratorTransformer.js")).ARGUMENTS,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./FindArguments.js","traceur@0.0.111/src/codegeneration/AsyncToGeneratorTransformer.js")).default,r=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTrees.js","traceur@0.0.111/src/codegeneration/AsyncToGeneratorTransformer.js")),n=r.FunctionBody,i=r.FunctionDeclaration,a=r.FunctionExpression,s=r.Method,o=r.YieldExpression,u=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ImportRuntimeTrait.js","traceur@0.0.111/src/codegeneration/AsyncToGeneratorTransformer.js")).default,c=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParenTrait.js","traceur@0.0.111/src/codegeneration/AsyncToGeneratorTransformer.js")).ParenTrait,l=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./PlaceholderParser.js","traceur@0.0.111/src/codegeneration/AsyncToGeneratorTransformer.js")).parseStatement,m=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./TempVarTransformer.js","traceur@0.0.111/src/codegeneration/AsyncToGeneratorTransformer.js")).TempVarTransformer,p=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeFactory.js","traceur@0.0.111/src/codegeneration/AsyncToGeneratorTransformer.js")),f=p.createIdentifierExpression,h=p.createNullLiteral,d=function(r){function AsyncToGeneratorTransformer(e,t,r){$traceurRuntime.superConstructor(AsyncToGeneratorTransformer).call(this,e,t,r),this.inAsyncFunction_=!1}return $traceurRuntime.createClass(AsyncToGeneratorTransformer,{transformFunctionDeclaration:function(e){return e.isAsyncFunction()?this.transformFunctionShared_(e,i):$traceurRuntime.superGet(this,AsyncToGeneratorTransformer.prototype,"transformFunctionDeclaration").call(this,e)},transformFunctionExpression:function(e){return e.isAsyncFunction()?this.transformFunctionShared_(e,a):$traceurRuntime.superGet(this,AsyncToGeneratorTransformer.prototype,"transformFunctionExpression").call(this,e)},transformFunctionShared_:function(e,t){var r=this.transformAny(e.parameterList),n=this.transformAny(e.typeAnnotation),i=this.transformList(e.annotations),a=this.transformAsyncBody_(e.body);return new t(e.location,e.name,null,r,n,i,a)},transformAsyncBody_:function(r){var i=this.inAsyncFunction_;return this.inAsyncFunction_=!0,r=function wrapBodyInSpawn(r,i){var a=new t;a.visitAny(r);var s=a.found?f(e):h(),o=l($traceurRuntime.getTemplateObject(["return ","(this, ",", function*() { "," });"]),i,s,r);return new n(r.location,[o])}(r=this.transformFunctionBody(r),this.getRuntimeExpression("spawn")),this.inAsyncFunction_=i,r},transformMethod:function(e){if(e.isAsyncFunction()){var t=this.transformAny(e.name),r=this.transformAny(e.parameterList),n=this.transformAny(e.typeAnnotation),i=this.transformList(e.annotations),a=this.transformAsyncBody_(e.body);return new s(e.location,e.isStatic,null,t,r,n,i,a,e.debugName)}return $traceurRuntime.superGet(this,AsyncToGeneratorTransformer.prototype,"transformMethod").call(this,e)},transformAwaitExpression:function(e){if(this.inAsyncFunction_){var t=this.transformAny(e.expression);return new o(e.location,t,!1)}return $traceurRuntime.superGet(this,AsyncToGeneratorTransformer.prototype,"transformAwaitExpression").call(this,e)}},{},r)}(u(c(m)));return{get AsyncToGeneratorTransformer(){return d}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/FindIdentifiers.js",[],(function(){"use strict";var e,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../semantics/ScopeVisitor.js","traceur@0.0.111/src/codegeneration/FindIdentifiers.js")).ScopeVisitor,r=(e=t,$traceurRuntime.createClass((function FindIdentifiers(e,t){$traceurRuntime.superConstructor(FindIdentifiers).call(this),this.filterFunction_=t,this.found_=!1,this.visitAny(e)}),{visitIdentifierExpression:function(e){this.filterFunction_(e.identifierToken.value,this.scope.tree)&&(this.found=!0)},get found(){return this.found_},set found(e){e&&(this.found_=!0)},visitAny:function(e){!this.found_&&e&&e.visit(this)},visitList:function(e){if(e)for(var t=0;!this.found_&&t<e.length;t++)this.visitAny(e[t])}},{},e));return{get FindIdentifiers(){return r}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/FnExtractAbruptCompletions.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeTransformer.js","traceur@0.0.111/src/codegeneration/FnExtractAbruptCompletions.js")).ParseTreeTransformer,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./alphaRenameThisAndArguments.js","traceur@0.0.111/src/codegeneration/FnExtractAbruptCompletions.js")).default,r=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./PlaceholderParser.js","traceur@0.0.111/src/codegeneration/FnExtractAbruptCompletions.js")).parseStatement,n=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTrees.js","traceur@0.0.111/src/codegeneration/FnExtractAbruptCompletions.js")),i=n.AnonBlock,a=n.BreakStatement,s=n.ContinueStatement,o=n.FormalParameterList,u=n.FunctionExpression,c=n.ReturnStatement,l=n.YieldExpression,m=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeFactory.js","traceur@0.0.111/src/codegeneration/FnExtractAbruptCompletions.js")),p=m.createArgumentList,f=m.createAssignmentStatement,h=m.createAssignmentExpression,d=m.createBlock,g=m.createCallExpression,T=m.createCaseClause,y=m.createDefaultClause,R=m.createExpressionStatement,S=m.createFunctionBody,_=(m.createFunctionExpression,m.createIdentifierExpression),v=m.createNumberLiteral,E=m.createObjectLiteralForDescriptor,M=m.createSwitchStatement,A=m.createThisExpression,x=m.createVariableDeclaration,$=m.createVariableDeclarationList,C=m.createVariableStatement,N=m.createVoid0,P=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/PredefinedName.js","traceur@0.0.111/src/codegeneration/FnExtractAbruptCompletions.js")).ARGUMENTS,b=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./SkipFunctionsTransformerTrait.js","traceur@0.0.111/src/codegeneration/FnExtractAbruptCompletions.js")).default,w=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../util/StringSet.js","traceur@0.0.111/src/codegeneration/FnExtractAbruptCompletions.js")).StringSet,j=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/Token.js","traceur@0.0.111/src/codegeneration/FnExtractAbruptCompletions.js")).Token,L=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/TokenType.js","traceur@0.0.111/src/codegeneration/FnExtractAbruptCompletions.js")),I=L.STAR,O=L.VAR,F=function(e){function FnExtractAbruptCompletions(e,t){$traceurRuntime.superConstructor(FnExtractAbruptCompletions).call(this),this.idGenerator_=e,this.inLoop_=0,this.inBreakble_=0,this.variableDeclarations_=[],this.extractedStatements_=[],this.requestParentLabel_=t,this.labelledStatements_=new w}return $traceurRuntime.createClass(FnExtractAbruptCompletions,{createIIFE:function(e,n,i,a){e=this.transformAny(e),e=t(this,e);var s=this.idGenerator_.generateUniqueIdentifier(),c=a?new j(I,null):null,m=new u(null,null,c,new o(null,n),null,[],S(e.statements||[e]));this.variableDeclarations_.push(x(s,m));var f=g(_(s),p(i));a&&(f=new l(null,f,!0));var E=null;if(this.extractedStatements_.length||this.hasReturns){var A,N=_(this.idGenerator_.generateUniqueIdentifier());if(this.variableDeclarations_.push(x(N,null)),this.hasReturns&&(A=r($traceurRuntime.getTemplateObject(["if (typeof ",' === "object")\n            return ',".v;"]),N,N)),this.extractedStatements_.length){var P=this.extractedStatements_.map((function(e,t){return T(v(t),[e])}));A&&P.push(y([A])),E=d([R(h(N,f)),M(N,P)])}else E=d([R(h(N,f)),A])}else E=d([R(f)]);return{variableStatements:C($(O,this.variableDeclarations_)),loopBody:E}},addTempVarForArguments:function(){var e=this.idGenerator_.generateUniqueIdentifier();return this.variableDeclarations_.push(x(e,_(P))),e},addTempVarForThis:function(){var e=this.idGenerator_.generateUniqueIdentifier();return this.variableDeclarations_.push(x(e,A())),e},transformAny:function(e){return e&&(e.isBreakableStatement()&&this.inBreakble_++,e.isIterationStatement()&&this.inLoop_++,(e=$traceurRuntime.superGet(this,FnExtractAbruptCompletions.prototype,"transformAny").call(this,e)).isBreakableStatement()&&this.inBreakble_--,e.isIterationStatement()&&this.inLoop_--),e},transformReturnStatement:function(e){return this.hasReturns=!0,new c(e.location,E({v:e.expression||N()}))},transformAbruptCompletion_:function(e){this.extractedStatements_.push(e);var t=this.extractedStatements_.length-1;return r($traceurRuntime.getTemplateObject(["return ",";"]),t)},transformBreakStatement:function(e){if(e.name){if(this.labelledStatements_.has(e.name.value))return $traceurRuntime.superGet(this,FnExtractAbruptCompletions.prototype,"transformBreakStatement").call(this,e)}else{if(this.inBreakble_)return $traceurRuntime.superGet(this,FnExtractAbruptCompletions.prototype,"transformBreakStatement").call(this,e);e=new a(e.location,this.requestParentLabel_())}return this.transformAbruptCompletion_(e)},transformContinueStatement:function(e){if(e.name){if(this.labelledStatements_.has(e.name.value))return $traceurRuntime.superGet(this,FnExtractAbruptCompletions.prototype,"transformContinueStatement").call(this,e)}else{if(this.inLoop_)return $traceurRuntime.superGet(this,FnExtractAbruptCompletions.prototype,"transformContinueStatement").call(this,e);e=new s(e.location,this.requestParentLabel_())}return this.transformAbruptCompletion_(e)},transformLabelledStatement:function(e){return this.labelledStatements_.add(e.name.value),$traceurRuntime.superGet(this,FnExtractAbruptCompletions.prototype,"transformLabelledStatement").call(this,e)},transformVariableStatement:function(e){var t=this;if(e.declarations.declarationType===O){var r=[];return e.declarations.declarations.forEach((function(e){var n=e.lvalue.getStringValue(),i=$traceurRuntime.superGet(t,FnExtractAbruptCompletions.prototype,"transformAny").call(t,e.initializer);t.variableDeclarations_.push(x(n,null)),r.push(f(_(n),i))})),new i(null,r)}return $traceurRuntime.superGet(this,FnExtractAbruptCompletions.prototype,"transformVariableStatement").call(this,e)}},{createIIFE:function(e,t,r,n,i,a){return new FnExtractAbruptCompletions(e,i).createIIFE(t,r,n,a)}},e)}(b(e));return{get FnExtractAbruptCompletions(){return F}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/semantics/ScopeReferences.js",[],(function(){"use strict";var e,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./Scope.js","traceur@0.0.111/src/semantics/ScopeReferences.js")).Scope,r=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../util/StringSet.js","traceur@0.0.111/src/semantics/ScopeReferences.js")).StringSet,n=(e=t,$traceurRuntime.createClass((function ScopeReferences(e,t){$traceurRuntime.superConstructor(ScopeReferences).call(this,e,t),this.freeVars_=new r}),{addReference:function(e){this.freeVars_.add(e)},hasFreeVariable:function(e){return this.freeVars_.has(e)}},{},e));return{get ScopeReferences(){return n}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/semantics/ScopeChainBuilderWithReferences.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ScopeChainBuilder.js","traceur@0.0.111/src/semantics/ScopeChainBuilderWithReferences.js")).ScopeChainBuilder,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ScopeReferences.js","traceur@0.0.111/src/semantics/ScopeChainBuilderWithReferences.js")).ScopeReferences,r=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTreeType.js","traceur@0.0.111/src/semantics/ScopeChainBuilderWithReferences.js")),n=r.FUNCTION_DECLARATION,i=r.FUNCTION_EXPRESSION,a=r.GET_ACCESSOR,s=r.IDENTIFIER_EXPRESSION,o=r.METHOD,u=r.MODULE,c=r.SET_ACCESSOR,l=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/TokenType.js","traceur@0.0.111/src/semantics/ScopeChainBuilderWithReferences.js")).TYPEOF;var m=function(e){function ScopeChainBuilderWithReferences(){$traceurRuntime.superConstructor(ScopeChainBuilderWithReferences).apply(this,arguments)}return $traceurRuntime.createClass(ScopeChainBuilderWithReferences,{createScope:function(e){return new t(this.scope,e)},visitIdentifierExpression:function(e){if(!this.inWithBlock){var t=this.scope,r=e.getStringValue();"arguments"===r&&function hasArgumentsInScope(e){for(;e;e=e.parent)switch(e.tree.type){case n:case i:case a:case o:case c:return!0}return!1}(t)||"__moduleName"===r&&function inModuleScope(e){for(;e;e=e.parent)if(e.tree.type===u)return!0;return!1}(t)||this.referenceFound(e,r)}},visitUnaryExpression:function(e){if(e.operator.type===l&&e.operand.type===s){var t=this.scope;t.getBinding(e.operand)||t.addVar(e.operand,this.reporter)}else $traceurRuntime.superGet(this,ScopeChainBuilderWithReferences.prototype,"visitUnaryExpression").call(this,e)},referenceFound:function(e,t){this.scope.addReference(t)}},{},e)}(e);return{get ScopeChainBuilderWithReferences(){return m}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/BlockBindingTransformer.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./AlphaRenamer.js","traceur@0.0.111/src/codegeneration/BlockBindingTransformer.js")).AlphaRenamer,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTreeType.js","traceur@0.0.111/src/codegeneration/BlockBindingTransformer.js")),r=t.ANON_BLOCK,n=t.BINDING_IDENTIFIER,i=t.FOR_IN_STATEMENT,a=t.FOR_OF_STATEMENT,s=t.VARIABLE_DECLARATION_LIST,o=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTrees.js","traceur@0.0.111/src/codegeneration/BlockBindingTransformer.js")),u=o.AnonBlock,c=o.BindingElement,l=o.BindingIdentifier,m=o.Block,p=o.Catch,f=o.DoWhileStatement,h=o.ForInStatement,d=o.ForStatement,g=o.FormalParameter,T=o.FunctionBody,y=o.FunctionExpression,R=o.LabelledStatement,S=o.LiteralPropertyName,_=o.Module,v=o.ObjectPatternField,E=o.Script,M=o.VariableDeclaration,A=o.VariableDeclarationList,x=o.VariableStatement,$=o.WhileStatement,C=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/IdentifierToken.js","traceur@0.0.111/src/codegeneration/BlockBindingTransformer.js")).IdentifierToken,N=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeTransformer.js","traceur@0.0.111/src/codegeneration/BlockBindingTransformer.js")).ParseTreeTransformer,P=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/TokenType.js","traceur@0.0.111/src/codegeneration/BlockBindingTransformer.js")).VAR,b=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeFactory.js","traceur@0.0.111/src/codegeneration/BlockBindingTransformer.js")),w=b.createBindingIdentifier,j=b.createIdentifierExpression,L=b.createIdentifierToken,I=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./FindIdentifiers.js","traceur@0.0.111/src/codegeneration/BlockBindingTransformer.js")).FindIdentifiers,O=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./FindVisitor.js","traceur@0.0.111/src/codegeneration/BlockBindingTransformer.js")).FindVisitor,F=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./FnExtractAbruptCompletions.js","traceur@0.0.111/src/codegeneration/BlockBindingTransformer.js")).FnExtractAbruptCompletions,k=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../semantics/ScopeChainBuilderWithReferences.js","traceur@0.0.111/src/codegeneration/BlockBindingTransformer.js")).ScopeChainBuilderWithReferences,D=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./PlaceholderParser.js","traceur@0.0.111/src/codegeneration/BlockBindingTransformer.js")).parseExpression,B=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./PrependStatements.js","traceur@0.0.111/src/codegeneration/BlockBindingTransformer.js")).prependStatements;var z=function(e){function BlockBindingTransformer(e,t,r){var n=arguments[3],i=arguments[4];$traceurRuntime.superConstructor(BlockBindingTransformer).call(this),this.idGenerator_=e,this.reporter_=t,n||(n=new k(t)).visitAny(r),this.scopeBuilder_=n,this.labelledLoops_=new Map,this.prependStatement_=[],this.prependBlockStatement_=[],this.blockRenames_=[],this.rootTree_=r,i?this.scope_=i:this.pushScope(r),this.usedVars_=this.scope_.getAllBindingNames(),this.maybeRename_=!1,this.inObjectPattern_=!1,this.currentLoopTree_=null}return $traceurRuntime.createClass(BlockBindingTransformer,{getVariableName_:function(e){var t=e.lvalue;if(t.type===n)return t.getStringValue();throw new Error("Unexpected destructuring declaration found.")},flushRenames:function(e){return e=renameAll(this.blockRenames_,e),this.blockRenames_.length=0,e},pushScope:function(e){var t=this.scopeBuilder_.getScopeForTree(e);if(!t)throw new Error("BlockBindingTransformer tree with no scope");return this.scope_&&(this.scope_.blockBindingRenames=this.blockRenames_),this.scope_=t,this.blockRenames_=[],t},popScope:function(e){if(this.scope_!==e)throw new Error("BlockBindingTransformer scope mismatch");this.scope_=e.parent,this.blockRenames_=this.scope_&&this.scope_.blockBindingRenames||[]},revisitTreeForScopes:function(e){this.scopeBuilder_.scope=this.scope_,this.scopeBuilder_.visitAny(e),this.scopeBuilder_.scope=null},needsRename_:function(e){if(this.usedVars_.has(e))return!0;var t=this.scope_,r=t.parent;if(!r||t.isVarScope)return!1;var n=t.getVarScope();if(n&&n.hasFreeVariable(e))return!0;var i=r.getBindingByName(e);return!!i&&t.getBindingByName(e).tree!==i.tree},newNameFromOrig:function(e,t){var r;return this.needsRename_(e)?(r=e+this.idGenerator_.generateUniqueIdentifier(),t.push(new V(e,r))):(this.usedVars_.add(e),r=e),r},transformFunctionBody:function(e){if(e!==this.rootTree_&&this.rootTree_){var t=new BlockBindingTransformer(this.idGenerator_,this.reporter_,e,this.scopeBuilder_,this.scope_).transformAny(e);if(t===e)return e;e=new T(e.location,t.statements)}else if(e=$traceurRuntime.superGet(this,BlockBindingTransformer.prototype,"transformFunctionBody").call(this,e),this.prependStatement_.length||this.blockRenames_.length){var r=B.apply(void 0,$traceurRuntime.spread([e.statements],this.prependStatement_));e=new T(e.location,r),e=this.flushRenames(e)}return e},transformScript:function(e){if(e!==this.rootTree_&&this.rootTree_){var t=new BlockBindingTransformer(this.idGenerator_,this.reporter_,e,this.scopeBuilder_).transformAny(e);if(t===e)return e;e=new E(e.location,t.scriptItemList,e.moduleName)}else if(e=$traceurRuntime.superGet(this,BlockBindingTransformer.prototype,"transformScript").call(this,e),this.prependStatement_.length||this.blockRenames_.length){var r=B.apply(void 0,$traceurRuntime.spread([e.scriptItemList],this.prependStatement_));e=new E(e.location,r,e.moduleName),e=this.flushRenames(e)}return e},transformModule:function(e){if(e!==this.rootTree_&&this.rootTree_){var t=new BlockBindingTransformer(this.idGenerator_,this.reporter_,e,this.scopeBuilder_).transformAny(e);if(t===e)return e;e=new _(e.location,t.scriptItemList,e.moduleName)}else if(e=$traceurRuntime.superGet(this,BlockBindingTransformer.prototype,"transformModule").call(this,e),this.prependStatement_.length||this.blockRenames_.length){var r=B.apply(void 0,$traceurRuntime.spread([e.scriptItemList],this.prependStatement_));e=new _(e.location,r,e.moduleName),e=this.flushRenames(e)}return e},transformVariableStatement:function(e){var t=this.transformAny(e.declarations);return t.type===r?t:t===e.declarations?e:new x(e.location,t)},transformVariableDeclarationList:function(e){if(e.declarationType===P)return $traceurRuntime.superGet(this,BlockBindingTransformer.prototype,"transformVariableDeclarationList").call(this,e);this.maybeRename_=!this.scope_.isVarScope;var t=this.transformList(e.declarations);return this.maybeRename_=!1,new A(e.location,P,t)},transformVariableDeclaration:function(e){var t=this.maybeRename_,r=this.transformAny(e.lvalue);this.maybeRename_=!1;var n=null;return e.initializer?n=this.transformAny(e.initializer):function varNeedsInitializer(e,t){if(null===t)return!1;var r=t.type;return r!==i&&r!==a||t.initializer.declarations[0]!==e}(e,this.currentLoopTree_)&&(n=D($traceurRuntime.getTemplateObject(["void 0"]))),this.maybeRename_=t,e.lvalue===r&&e.initializer===n?e:new M(e.location,r,e.typeAnnotation,n)},transformBindingIdentifier:function(e){if(this.maybeRename_){var t=e.getStringValue(),r=this.newNameFromOrig(t,this.blockRenames_);if(t===r)return e;var n=new C(e.location,r),i=new l(e.location,n);return this.scope_.renameBinding(t,i,P,this.reporter_),i}return $traceurRuntime.superGet(this,BlockBindingTransformer.prototype,"transformBindingIdentifier").call(this,e)},transformBindingElement:function(e){var t=this.maybeRename_,r=this.inObjectPattern_,i=this.transformAny(e.binding);this.maybeRename_=!1,this.inObjectPattern_=!1;var a=this.transformAny(e.initializer);if(this.maybeRename_=t,this.inObjectPattern_=r,e.binding===i&&e.initializer===a)return e;var s=new c(e.location,i,a);return this.inObjectPattern_&&e.binding!==i&&e.binding.type===n?new v(e.location,new S(e.location,e.binding.identifierToken),s):s},transformObjectPattern:function(e){var t=this.inObjectPattern_;this.inObjectPattern_=!0;var r=$traceurRuntime.superGet(this,BlockBindingTransformer.prototype,"transformObjectPattern").call(this,e);return this.inObjectPattern_=t,r},transformObjectPatternField:function(e){var t=this.transformAny(e.name);this.inObjectPattern_=!1;var r=this.transformAny(e.element);return this.inObjectPattern_=!0,e.name===t&&e.element===r?e:new v(e.location,t,r)},transformBlock:function(e){var t=this.pushScope(e),r=this.prependBlockStatement_;return this.prependBlockStatement_=[],e=$traceurRuntime.superGet(this,BlockBindingTransformer.prototype,"transformBlock").call(this,e),this.prependBlockStatement_.length&&(e=new m(e.location,B.apply(void 0,$traceurRuntime.spread([e.statements],this.prependBlockStatement_)))),this.prependBlockStatement_=r,e=this.flushRenames(e),this.popScope(t),e},transformCatch:function(e){var t=this.pushScope(e),r=this.transformAny(e.binding),n=this.transformList(e.catchBody.statements);return r===e.binding&&n===e.catchBody.statements||(e=new p(e.location,r,new m(e.catchBody.location,n))),e=this.flushRenames(e),this.popScope(t),e},transformFunctionForScope_:function(e,t){var r=this.pushScope(t);return t=e(),t=this.flushRenames(t),this.popScope(r),t},transformGetAccessor:function(e){var t=this;return this.transformFunctionForScope_((function(){return $traceurRuntime.superGet(t,BlockBindingTransformer.prototype,"transformGetAccessor").call(t,e)}),e)},transformSetAccessor:function(e){var t=this;return this.transformFunctionForScope_((function(){return $traceurRuntime.superGet(t,BlockBindingTransformer.prototype,"transformSetAccessor").call(t,e)}),e)},transformFunctionExpression:function(e){var t=this;return this.transformFunctionForScope_((function(){return $traceurRuntime.superGet(t,BlockBindingTransformer.prototype,"transformFunctionExpression").call(t,e)}),e)},transformFunctionDeclaration:function(e){var t=this;if(!this.scope_.isVarScope){var r=e.name.getStringValue(),n=this.newNameFromOrig(r,this.blockRenames_),i=new y(e.location,null,e.functionKind,e.parameterList,e.typeAnnotation,e.annotations,e.body);this.revisitTreeForScopes(i),i=this.transformAny(i);var a=w(n),s=new x(e.location,new A(e.location,P,[new M(e.location,a,null,i)]));return this.scope_.renameBinding(r,a,P,this.reporter_),this.prependBlockStatement_.push(s),new u(null,[])}return this.transformFunctionForScope_((function(){return $traceurRuntime.superGet(t,BlockBindingTransformer.prototype,"transformFunctionDeclaration").call(t,e)}),e)},transformLoop_:function(e,t,r){var n,i,a=this;t.initializer&&t.initializer.type===s&&t.initializer.declarationType!==P&&(i=!0),i&&(n=this.pushScope(t));var o=new G(t,this.scopeBuilder_);if(o.visitAny(t),o.found){var l=[],m=[],p=[],f=null;t.initializer&&(t.initializer.type===s&&t.initializer.declarationType!==P?(f=new A(null,P,t.initializer.declarations.map((function(e){var t=a.getVariableName_(e),r=a.newNameFromOrig(t,p);m.push(j(r)),l.push(new g(null,new c(null,w(t),null),null,[]));var n=w(r);return a.scope_.renameBinding(t,n,P,a.reporter_),new M(null,n,null,e.initializer)}))),f=renameAll(p,f)):f=this.transformAny(t.initializer));var h=this.labelledLoops_.get(t),d=F.createIIFE(this.idGenerator_,t.body,l,m,(function(){return h=h||L(a.idGenerator_.generateUniqueIdentifier())}),this.scope_.inGenerator);t=r(f,p,d.loopBody),h&&(t=new R(t.location,h,t)),t=new u(t.location,[d.variableStatements,t]),this.revisitTreeForScopes(t),t=this.transformAny(t)}else{var callFunc=function(){var r=a.currentLoopTree_;a.currentLoopTree_=t;var n=e(t);return a.currentLoopTree_=r,n};if(!i)return callFunc();var T=[],y=new A(null,P,t.initializer.declarations.map((function(e){var t=a.getVariableName_(e),r=a.newNameFromOrig(t,T),n=w(r);return a.scope_.renameBinding(t,n,P,a.reporter_),new M(null,n,null,e.initializer)})));y=renameAll(T,y),t=r(y,T,renameAll(T,t.body)),this.revisitTreeForScopes(t),t=callFunc()}return i&&(t=this.flushRenames(t),this.popScope(n)),t},transformForInStatement:function(e){var t=this;return this.transformLoop_((function(e){return $traceurRuntime.superGet(t,BlockBindingTransformer.prototype,"transformForInStatement").call(t,e)}),e,(function(t,r,n){return new h(e.location,t,renameAll(r,e.collection),n)}))},transformForStatement:function(e){var t=this;return this.transformLoop_((function(e){return $traceurRuntime.superGet(t,BlockBindingTransformer.prototype,"transformForStatement").call(t,e)}),e,(function(t,r,n){return new d(e.location,t,renameAll(r,e.condition),renameAll(r,e.increment),n)}))},transformWhileStatement:function(e){var t=this;return this.transformLoop_((function(e){return $traceurRuntime.superGet(t,BlockBindingTransformer.prototype,"transformWhileStatement").call(t,e)}),e,(function(t,r,n){return new $(e.location,renameAll(r,e.condition),n)}))},transformDoWhileStatement:function(e){var t=this;return this.transformLoop_((function(e){return $traceurRuntime.superGet(t,BlockBindingTransformer.prototype,"transformDoWhileStatement").call(t,e)}),e,(function(t,r,n){return new f(e.location,n,renameAll(r,e.condition))}))},transformLabelledStatement:function(e){if(e.statement.isIterationStatement()){this.labelledLoops_.set(e.statement,e.name.value);var t=this.transformAny(e.statement);return t.isStatement()?t===e.statement?e:new R(e.location,e.name,t):t}return $traceurRuntime.superGet(this,BlockBindingTransformer.prototype,"transformLabelledStatement").call(this,e)}},{},e)}(N),V=$traceurRuntime.createClass((function V(e,t){this.oldName=e,this.newName=t}),{},{});function renameAll(t,r){return t.forEach((function(t){r=e.rename(r,t.oldName,t.newName)})),r}var G=function(e){function FindBlockBindingInLoop(e,t){$traceurRuntime.superConstructor(FindBlockBindingInLoop).call(this),this.scopeBuilder_=t,this.topScope_=t.getScopeForTree(e)||t.getScopeForTree(e.body),this.outOfScope_=null,this.acceptLoop_=e.isIterationStatement()}return $traceurRuntime.createClass(FindBlockBindingInLoop,{visitForInStatement:function(e){var t=this;this.visitLoop_(e,(function(){return $traceurRuntime.superGet(t,FindBlockBindingInLoop.prototype,"visitForInStatement").call(t,e)}))},visitForStatement:function(e){var t=this;this.visitLoop_(e,(function(){return $traceurRuntime.superGet(t,FindBlockBindingInLoop.prototype,"visitForStatement").call(t,e)}))},visitWhileStatement:function(e){var t=this;this.visitLoop_(e,(function(){return $traceurRuntime.superGet(t,FindBlockBindingInLoop.prototype,"visitWhileStatement").call(t,e)}))},visitDoWhileStatement:function(e){var t=this;this.visitLoop_(e,(function(){return $traceurRuntime.superGet(t,FindBlockBindingInLoop.prototype,"visitDoWhileStatement").call(t,e)}))},visitLoop_:function(e,t){this.acceptLoop_?this.acceptLoop_=!1:this.outOfScope_||(this.outOfScope_=this.scopeBuilder_.getScopeForTree(e)||this.scopeBuilder_.getScopeForTree(e.body)),t()},visitArrowFunction:function(e){this.visitFunction_(e)},visitFunctionDeclaration:function(e){this.visitFunction_(e)},visitFunctionExpression:function(e){this.visitFunction_(e)},visitGetAccessor:function(e){this.visitFunction_(e)},visitMethod:function(e){this.visitFunction_(e)},visitSetAccessor:function(e){this.visitFunction_(e)},visitFunction_:function(e){var t=this;this.found=new I(e,(function(r,n){n=t.scopeBuilder_.getScopeForTree(n);var i=t.outOfScope_||t.scopeBuilder_.getScopeForTree(e);if(n.hasLexicalBindingName(r))return!1;for(;n!==i&&(n=n.parent);)if(n.hasLexicalBindingName(r))return!1;for(;i=i.parent;){if(i.hasLexicalBindingName(r))return!0;if(i.hasVariableBindingName(r))return!1;if(i===t.topScope_)break}return!1})).found}},{},e)}(O);return{get BlockBindingTransformer(){return z}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/MakeStrictTransformer.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTrees.js","traceur@0.0.111/src/codegeneration/MakeStrictTransformer.js")),t=e.FunctionBody,r=e.Script,n=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeTransformer.js","traceur@0.0.111/src/codegeneration/MakeStrictTransformer.js")).ParseTreeTransformer,i=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeFactory.js","traceur@0.0.111/src/codegeneration/MakeStrictTransformer.js")).createUseStrictDirective,a=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../semantics/util.js","traceur@0.0.111/src/codegeneration/MakeStrictTransformer.js")).hasUseStrict;function prepend(e){return $traceurRuntime.spread([i()],e)}var s=function(e){function MakeStrictTransformer(){$traceurRuntime.superConstructor(MakeStrictTransformer).apply(this,arguments)}return $traceurRuntime.createClass(MakeStrictTransformer,{transformScript:function(e){return a(e.scriptItemList)?e:new r(e.location,prepend(e.scriptItemList),e.moduleName)},transformFunctionBody:function(e){return a(e.statements)?e:new t(e.location,prepend(e.statements))}},{transformTree:function(e){return(new MakeStrictTransformer).transformAny(e)}},e)}(n);return{get MakeStrictTransformer(){return s}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/ClassTransformer.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/PredefinedName.js","traceur@0.0.111/src/codegeneration/ClassTransformer.js")).CONSTRUCTOR,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTrees.js","traceur@0.0.111/src/codegeneration/ClassTransformer.js")),r=t.AnonBlock,n=t.ClassExpression,i=t.ExportDeclaration,a=t.ExportSpecifier,s=t.ExportSpecifierSet,o=t.FunctionDeclaration,u=t.FunctionExpression,c=t.GetAccessor,l=t.Method,m=t.NamedExport,p=t.SetAccessor,f=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTreeType.js","traceur@0.0.111/src/codegeneration/ClassTransformer.js")),h=f.CLASS_DECLARATION,d=(f.COMPUTED_PROPERTY_NAME,f.EXPORT_DEFAULT),g=f.GET_ACCESSOR,T=f.LITERAL_PROPERTY_NAME,y=f.METHOD,R=f.SET_ACCESSOR,S=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./TempVarTransformer.js","traceur@0.0.111/src/codegeneration/ClassTransformer.js")).TempVarTransformer,_=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/TokenType.js","traceur@0.0.111/src/codegeneration/ClassTransformer.js")),v=_.CONST,E=_.LET,M=_.VAR,A=(_.STRING,$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./MakeStrictTransformer.js","traceur@0.0.111/src/codegeneration/ClassTransformer.js")).MakeStrictTransformer),x=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParenTrait.js","traceur@0.0.111/src/codegeneration/ClassTransformer.js")).ParenTrait,$=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ImportRuntimeTrait.js","traceur@0.0.111/src/codegeneration/ClassTransformer.js")).default,C=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeFactory.js","traceur@0.0.111/src/codegeneration/ClassTransformer.js")),N=C.createBindingIdentifier,P=C.createIdentifierExpression,b=C.createIdentifierToken,w=C.createObjectLiteral,j=C.createVariableStatement,L=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../semantics/util.js","traceur@0.0.111/src/codegeneration/ClassTransformer.js")).hasUseStrict,I=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./PlaceholderParser.js","traceur@0.0.111/src/codegeneration/ClassTransformer.js")),O=I.parseExpression,F=I.parsePropertyDefinition;I.parseStatement;function removeStaticModifier(e){switch(e.type){case g:return new c(e.location,!1,e.name,e.typeAnnotation,e.annotations,e.body);case R:return new p(e.location,!1,e.name,e.parameterList,e.annotations,e.body);case y:return new l(e.location,!1,e.functionKind,e.name,e.parameterList,e.typeAnnotation,e.annotations,e.body,e.debugName);default:throw new Error("unreachable")}}var k=function(t){function ClassTransformer(e,t,r){$traceurRuntime.superConstructor(ClassTransformer).call(this,e,t,r),this.strictCount_=0,this.state_=null}return $traceurRuntime.createClass(ClassTransformer,{transformModule:function(e){return this.strictCount_=1,$traceurRuntime.superGet(this,ClassTransformer.prototype,"transformModule").call(this,e)},transformScript:function(e){return this.strictCount_=L(e.scriptItemList)?1:0,$traceurRuntime.superGet(this,ClassTransformer.prototype,"transformScript").call(this,e)},transformFunctionBody:function(e){var t=L(e.statements)?1:0;this.strictCount_+=t;var r=$traceurRuntime.superGet(this,ClassTransformer.prototype,"transformFunctionBody").call(this,e);return this.strictCount_-=t,r},makeStrict_:function(e){return this.strictCount_?e:A.transformTree(e)},transformClassDeclaration:function(e){var t=new n(e.location,e.name,e.superClass,e.elements,e.annotations,e.typeParameters),r=this.transformClassExpression(t),i=!this.options.transformOptions.blockBinding&&this.options.parseOptions.blockBinding;return j(i?E:M,e.name,r)},transformClassExpression:function(t){var r=this.transformAny(t.superClass),n=this.transformList(t.elements),i=this.transformList(t.annotations),a=null,s=n.filter((function(t){return!t.isStatic&&(!function isConstructor(t){if(t.type!==y||t.isStatic||null!==t.functionKind)return!1;var r=t.name;return r.type===T&&r.literalToken.value===e}(t)||(a=t,!1))})),c=n.filter((function(e){return e.isStatic})).map(removeStaticModifier),l=w(s),m=w(c);a||(a=this.getDefaultConstructor_(t));var p,f=new u(t.location,t.name,null,a.parameterList,null,i,a.body),h=this.getRuntimeExpression("createClass");if(t.name){var d,g=t.name.identifierToken,R=P(""+g);d=!this.options.transformOptions.blockBinding&&this.options.parseOptions.blockBinding?j(v,t.name,f):function functionExpressionToDeclaration(e,t){return t=null===e.name?N(t):e.name,new o(e.location,t,e.functionKind,e.parameterList,e.typeAnnotation,e.annotations,e.body)}(f,g),p=r?O($traceurRuntime.getTemplateObject(["function($__super) {\n          ",";\n          return (",")(",", ",",\n                                  ",", $__super);\n        }(",")"]),d,h,R,l,m,r):O($traceurRuntime.getTemplateObject(["function() {\n          ",";\n          return (",")(",", ",", ",");\n        }()"]),d,h,R,l,m)}else p=r?O($traceurRuntime.getTemplateObject(["(",")(",", ",", ",", ",")"]),h,f,l,m,r):O($traceurRuntime.getTemplateObject(["(",")(",", ",", ",")"]),h,f,l,m);return this.makeStrict_(p)},transformExportDeclaration:function(e){return e.declaration.type===d&&e.declaration.expression.type===h?this.transformExportDefaultClass_(e.declaration):$traceurRuntime.superGet(this,ClassTransformer.prototype,"transformExportDeclaration").call(this,e)},transformExportDefaultClass_:function(e){var t=e.expression.name.identifierToken,n=new a(t.location,t,b("default")),o=new s(t.location,[n]),u=new m(t.location,o,null),c=new i(t.location,u,[]),l=this.transformAny(e.expression);return new r(null,[l,c])},getDefaultConstructor_:function(e){if(e.superClass){var t=P(e.name.identifierToken),r=this.getRuntimeExpression("superConstructor");return F($traceurRuntime.getTemplateObject(["constructor() {\n        ","(",").apply(this, arguments)\n      }"]),r,t)}return F($traceurRuntime.getTemplateObject(["constructor() {}"]))}},{},t)}($(x(S)));return{get ClassTransformer(){return k}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/ClosureModuleTransformer.js",[],(function(){"use strict";var e,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ModuleTransformer.js","traceur@0.0.111/src/codegeneration/ClosureModuleTransformer.js")).ModuleTransformer,r=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeFactory.js","traceur@0.0.111/src/codegeneration/ClosureModuleTransformer.js")),n=r.createIdentifierExpression,i=r.createMemberExpression,a=r.createPropertyNameAssignment,s=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTreeType.js","traceur@0.0.111/src/codegeneration/ClosureModuleTransformer.js")),o=s.EXPORT_DEFAULT,u=s.EXPORT_SPECIFIER,c=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./PlaceholderParser.js","traceur@0.0.111/src/codegeneration/ClosureModuleTransformer.js")),l=c.parseExpression,m=c.parseStatement,p=c.parseStatements,f=($traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./PrependStatements.js","traceur@0.0.111/src/codegeneration/ClosureModuleTransformer.js")).prependStatements,e=t,$traceurRuntime.createClass((function ClosureModuleTransformer(){$traceurRuntime.superConstructor(ClosureModuleTransformer).apply(this,arguments)}),{moduleProlog:function(){if(!this.moduleName)throw new Error("Closure modules (goog.module) require a moduleName");return p($traceurRuntime.getTemplateObject(["goog.module(",");"]),this.moduleName)},wrapModule:function(e){if(this.hasStarExports())throw new Error('Closure modules (goog.module) do not support "export *"');return e},addExportStatement:function(e){if(!this.hasExports())return e;var t=this.getExportObject();return e.push(m($traceurRuntime.getTemplateObject(["exports = ",""]),t)),e},getGetterExport:function(e){var t,r=e,s=r.name,c=r.tree,l=r.moduleSpecifier;switch(c.type){case o:t=n("$__default");break;case u:if(l){var m=this.getTempVarNameForModuleSpecifier(l);t=i(m,c.lhs)}else t=a(s,c.lhs);break;default:t=n(s)}return a(s,t)},transformModuleSpecifier:function(e){var t=e.token.processedValue;return l($traceurRuntime.getTemplateObject(["goog.require(",")"]),t)}},{},e));return{get ClosureModuleTransformer(){return f}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/CommonJsModuleTransformer.js",[],(function(){"use strict";var e,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ModuleTransformer.js","traceur@0.0.111/src/codegeneration/CommonJsModuleTransformer.js")).ModuleTransformer,r=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTreeType.js","traceur@0.0.111/src/codegeneration/CommonJsModuleTransformer.js")).NAMED_EXPORT,n=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTrees.js","traceur@0.0.111/src/codegeneration/CommonJsModuleTransformer.js")).AnonBlock,i=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./PlaceholderParser.js","traceur@0.0.111/src/codegeneration/CommonJsModuleTransformer.js")),a=i.parseExpression,s=i.parsePropertyDefinition,o=i.parseStatement,u=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeFactory.js","traceur@0.0.111/src/codegeneration/CommonJsModuleTransformer.js")),c=u.createExpressionStatement,l=u.createObjectLiteral,m=u.createObjectLiteralForDescriptor,p=u.createPropertyNameAssignment,f=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./PrependStatements.js","traceur@0.0.111/src/codegeneration/CommonJsModuleTransformer.js")).prependStatements,h=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./FindVisitor.js","traceur@0.0.111/src/codegeneration/CommonJsModuleTransformer.js")).FindVisitor,d=function(e){function CommonJsModuleTransformer(e,t){var r=arguments[2];$traceurRuntime.superConstructor(CommonJsModuleTransformer).call(this,e,t,r),this.anonymousModule=r&&!r.bundle&&!0!==r.moduleName,this.namedExportsWithModuleSpecifiers_=[],this.isImportingDefault_=!1,this.needsInteropRequire_=!1}return $traceurRuntime.createClass(CommonJsModuleTransformer,{getModuleName:function(e){return this.anonymousModule?null:e.moduleName},wrapModule:function(e){if(this.needsInteropRequire_){var t=o($traceurRuntime.getTemplateObject(["function $__interopRequire(id) {\n        id = require(id);\n        return id && id.__esModule && id || {default: id};\n      }"]));return f(e,t)}return e},addExportStatement:function(e){if(!this.hasExports())return e;var t=this.getExportDescriptors(),r=a($traceurRuntime.getTemplateObject(["Object.defineProperties(module.exports, ",")"]),t);return this.hasStarExports()&&(r=this.getExportStar(r)),f.apply(void 0,$traceurRuntime.spread([e],this.namedExportsWithModuleSpecifiers_,[c(r)]))},getExportDescriptors:function(){var e=this,t=this.exportVisitor.getNonTypeNamedExports().map((function(t){var r=a($traceurRuntime.getTemplateObject(["function() { return ","; }"]),e.getGetterExportReturnExpression(t));return p(t.name,m({enumerable:!0,get:r}))}));return t.unshift(s($traceurRuntime.getTemplateObject(["__esModule: {value: true}"]))),l(t)},transformExportDeclaration:function(e){this.checkForDefaultImport_(e),this.exportVisitor.visitAny(e);var t=this.transformAny(e.declaration);return e.declaration.type==r&&null!==e.declaration.moduleSpecifier?(this.namedExportsWithModuleSpecifiers_.push(t),new n(null,[])):t},transformImportDeclaration:function(e){return this.checkForDefaultImport_(e),$traceurRuntime.superGet(this,CommonJsModuleTransformer.prototype,"transformImportDeclaration").call(this,e)},checkForDefaultImport_:function(e){var t=new g;t.visitAny(e),this.isImportingDefault_=t.found},transformModuleSpecifier:function(e){var t=e.token.processedValue;return this.isImportingDefault_?(this.needsInteropRequire_=!0,a($traceurRuntime.getTemplateObject(["$__interopRequire(",")"]),t)):a($traceurRuntime.getTemplateObject(["require(",")"]),t)}},{},e)}(t),g=(e=h,$traceurRuntime.createClass((function FindDefault(){$traceurRuntime.superConstructor(FindDefault).apply(this,arguments)}),{visitImportSpecifier:function(e){this.found=null!==e.name&&"default"===e.name.value},visitNameSpaceImport:function(e){this.found=!0},visitNameSpaceExport:function(e){this.found=!0},visitExportSpecifier:function(e){this.found=null!==e.lhs&&"default"===e.lhs.value}},{},e));return{get CommonJsModuleTransformer(){return d}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/ParameterTransformer.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTrees.js","traceur@0.0.111/src/codegeneration/ParameterTransformer.js")).FunctionBody,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./TempVarTransformer.js","traceur@0.0.111/src/codegeneration/ParameterTransformer.js")).TempVarTransformer,r=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./PrependStatements.js","traceur@0.0.111/src/codegeneration/ParameterTransformer.js")).prependStatements,n=[],i=function(t){function ParameterTransformer(){$traceurRuntime.superConstructor(ParameterTransformer).apply(this,arguments)}return $traceurRuntime.createClass(ParameterTransformer,{transformArrowFunction:function(e){return n.push([]),$traceurRuntime.superGet(this,ParameterTransformer.prototype,"transformArrowFunction").call(this,e)},transformFunctionDeclaration:function(e){return n.push([]),$traceurRuntime.superGet(this,ParameterTransformer.prototype,"transformFunctionDeclaration").call(this,e)},transformFunctionExpression:function(e){return n.push([]),$traceurRuntime.superGet(this,ParameterTransformer.prototype,"transformFunctionExpression").call(this,e)},transformGetAccessor:function(e){return n.push([]),$traceurRuntime.superGet(this,ParameterTransformer.prototype,"transformGetAccessor").call(this,e)},transformSetAccessor:function(e){return n.push([]),$traceurRuntime.superGet(this,ParameterTransformer.prototype,"transformSetAccessor").call(this,e)},transformMethod:function(e){return n.push([]),$traceurRuntime.superGet(this,ParameterTransformer.prototype,"transformMethod").call(this,e)},transformFunctionBody:function(t){var i=$traceurRuntime.superGet(this,ParameterTransformer.prototype,"transformFunctionBody").call(this,t),a=n.pop();return a.length?(a=r.apply(void 0,$traceurRuntime.spread([i.statements],a)),new e(i.location,a)):i},get parameterStatements(){return n[n.length-1]},transformConstructorType:function(e){return e},transformFunctionType:function(e){return e}},{},t)}(t);return{get ParameterTransformer(){return i}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/DefaultParametersTransformer.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../semantics/util.js","traceur@0.0.111/src/codegeneration/DefaultParametersTransformer.js")),t=e.isUndefined,r=e.isVoidExpression,n=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTrees.js","traceur@0.0.111/src/codegeneration/DefaultParametersTransformer.js")).FormalParameterList,i=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParameterTransformer.js","traceur@0.0.111/src/codegeneration/DefaultParametersTransformer.js")).ParameterTransformer,a=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/PredefinedName.js","traceur@0.0.111/src/codegeneration/DefaultParametersTransformer.js")).ARGUMENTS,s=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/TokenType.js","traceur@0.0.111/src/codegeneration/DefaultParametersTransformer.js")),o=s.NOT_EQUAL_EQUAL,u=s.VAR,c=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeFactory.js","traceur@0.0.111/src/codegeneration/DefaultParametersTransformer.js")),l=c.createBinaryExpression,m=c.createConditionalExpression,p=c.createIdentifierExpression,f=c.createMemberLookupExpression,h=c.createNumberLiteral,d=c.createOperatorToken,g=c.createVariableStatement,T=c.createVoid0;var y,R=(y=i,$traceurRuntime.createClass((function DefaultParametersTransformer(){$traceurRuntime.superConstructor(DefaultParametersTransformer).apply(this,arguments)}),{transformFormalParameterList:function(e){for(var i,s,c,y,R,S=[],_=!1,v=!1,E=0;E<e.parameters.length;E++){var M=this.transformAny(e.parameters[E]);M!==e.parameters[E]&&(_=!0),M.isRestParameter()||!M.parameter.initializer&&!v?S.push(M):(v=!0,_=!0,this.parameterStatements.push((i=E,s=M.parameter.binding,c=M.parameter.initializer,y=void 0,R=void 0,R=f(p(a),h(i)),y=null===c||t(c)||r(c)?R:m(l(R,d(o),T()),R,c),g(u,s,y))))}return _?new n(e.location,S):e}},{},y));return{get DefaultParametersTransformer(){return R}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/assignmentOperatorToBinaryOperator.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/TokenType.js","traceur@0.0.111/src/codegeneration/assignmentOperatorToBinaryOperator.js")),t=e.AMPERSAND,r=e.AMPERSAND_EQUAL,n=e.BAR,i=e.BAR_EQUAL,a=e.CARET,s=e.CARET_EQUAL,o=e.LEFT_SHIFT,u=e.LEFT_SHIFT_EQUAL,c=e.MINUS,l=e.MINUS_EQUAL,m=e.PERCENT,p=e.PERCENT_EQUAL,f=e.PLUS,h=e.PLUS_EQUAL,d=e.RIGHT_SHIFT,g=e.RIGHT_SHIFT_EQUAL,T=e.SLASH,y=e.SLASH_EQUAL,R=e.STAR,S=e.STAR_EQUAL,_=e.STAR_STAR,v=e.STAR_STAR_EQUAL,E=e.UNSIGNED_RIGHT_SHIFT,M=e.UNSIGNED_RIGHT_SHIFT_EQUAL;var A=function assignmentOperatorToBinaryOperator(e){switch(e){case S:return R;case v:return _;case y:return T;case p:return m;case h:return f;case l:return c;case u:return o;case g:return d;case M:return E;case r:return t;case s:return a;case i:return n;default:throw Error("unreachable")}};return{get default(){return A}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/ExplodeExpressionTransformer.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeTransformer.js","traceur@0.0.111/src/codegeneration/ExplodeExpressionTransformer.js")).ParseTreeTransformer,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeFactory.js","traceur@0.0.111/src/codegeneration/ExplodeExpressionTransformer.js")),r=t.createAssignmentExpression,n=t.createCommaExpression,i=t.createIdentifierExpression,a=t.createMemberExpression,s=t.createNumberLiteral,o=t.createOperatorToken,u=t.createParenExpression,c=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/TokenType.js","traceur@0.0.111/src/codegeneration/ExplodeExpressionTransformer.js")),l=c.AND,m=c.EQUAL,p=c.MINUS,f=c.MINUS_EQUAL,h=c.MINUS_MINUS,d=c.OR,g=c.PLUS,T=c.PLUS_EQUAL,y=c.PLUS_PLUS,R=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTreeType.js","traceur@0.0.111/src/codegeneration/ExplodeExpressionTransformer.js")),S=R.COMMA_EXPRESSION,_=R.IDENTIFIER_EXPRESSION,v=R.MEMBER_EXPRESSION,E=R.MEMBER_LOOKUP_EXPRESSION,M=R.PROPERTY_NAME_ASSIGNMENT,A=R.SPREAD_EXPRESSION,x=R.TEMPLATE_LITERAL_PORTION,$=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTrees.js","traceur@0.0.111/src/codegeneration/ExplodeExpressionTransformer.js")),C=$.ArgumentList,N=$.ArrayLiteral,P=$.AwaitExpression,b=$.BinaryExpression,w=$.CallExpression,j=$.ClassExpression,L=$.ConditionalExpression,I=$.MemberExpression,O=$.MemberLookupExpression,F=$.NewExpression,k=$.ObjectLiteral,D=$.PropertyNameAssignment,B=$.SpreadExpression,z=$.TemplateLiteralExpression,V=$.TemplateSubstitution,G=$.UnaryExpression,U=$.YieldExpression,W=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../util/assert.js","traceur@0.0.111/src/codegeneration/ExplodeExpressionTransformer.js")).assert,H=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./assignmentOperatorToBinaryOperator.js","traceur@0.0.111/src/codegeneration/ExplodeExpressionTransformer.js")).default,Y=$traceurRuntime.createClass((function Y(e){this.tempVar=e,this.expressions=[]}),{add:function(e){var t;return e.type===S&&(t=this.expressions).push.apply(t,$traceurRuntime.spread(getExpressions(e))),this},build:function(e){var t=this.tempVar;return this.expressions.push(r(t,e),t),n(this.expressions)}},{});function getResult(e){return e.type===S?e.expressions[e.expressions.length-1]:e}function getExpressions(e){return e.type===S?e.expressions.slice(0,-1):[]}var X,J=(X=e,$traceurRuntime.createClass((function ExplodeExpressionTransformer(e){$traceurRuntime.superConstructor(ExplodeExpressionTransformer).call(this),this.tempVarTransformer_=e}),{addTempVar:function(){var e=this.tempVarTransformer_.addTempVar();return i(e)},transformUnaryExpression:function(e){if(e.operator.type===y)return this.transformUnaryNumeric_(e,T);if(e.operator.type===h)return this.transformUnaryNumeric_(e,f);var t=this.transformAny(e.operand);if(t===e.operand)return e;var r=$traceurRuntime.spread(getExpressions(t),[new G(e.location,e.operator,getResult(t))]);return n(r)},transformUnaryNumeric_:function(e,t){return this.transformAny(new b(e.location,e.operand,o(t),s(1)))},transformPostfixExpression:function(e){if(e.operand.type===v)return this.transformPostfixMemberExpression_(e);if(e.operand.type===E)return this.transformPostfixMemberLookupExpression_(e);W(e.operand.type===_);var t=e.operand,i=this.addTempVar(),a=e.operator.type===y?g:p,u=[r(i,t),r(t,new b(e.location,i,o(a),s(1))),i];return n(u)},transformPostfixMemberExpression_:function(e){var t=e.operand.memberName,i=this.transformAny(e.operand.operand),a=this.addTempVar(),u=new I(e.operand.location,getResult(i),t),c=e.operator.type===y?g:p,l=$traceurRuntime.spread(getExpressions(i),[r(a,u),r(u,new b(e.location,a,o(c),s(1))),a]);return n(l)},transformPostfixMemberLookupExpression_:function(e){var t=this.transformAny(e.operand.memberExpression),i=this.transformAny(e.operand.operand),a=this.addTempVar(),u=new O(null,getResult(i),getResult(t)),c=e.operator.type===y?g:p,l=$traceurRuntime.spread(getExpressions(i),getExpressions(t),[r(a,u),r(u,new b(e.location,a,o(c),s(1))),a]);return n(l)},transformYieldExpression:function(e){if(null===e.expression)return this.createCommaExpressionBuilder_().build(new U(e.location,null,!1));var t=this.transformAny(e.expression);return this.createCommaExpressionBuilder_().add(t).build(new U(e.location,getResult(t),e.isYieldFor))},transformAwaitExpression:function(e){var t=this.transformAny(e.expression);return this.createCommaExpressionBuilder_().add(t).build(new P(e.location,getResult(t)))},transformParenExpression:function(e){var t=this.transformAny(e.expression);if(t===e.expression)return e;var r=getResult(t);return r.type===_?t:this.createCommaExpressionBuilder_().add(t).build(r)},transformCommaExpression:function(e){var t=this.transformList(e.expressions);if(t===e.expressions)return e;for(var r=new Y(null),i=0;i<t.length;i++)r.add(t[i]);return n($traceurRuntime.spread(r.expressions,[getResult(t[t.length-1])]))},transformMemberExpression:function(e){var t=this.transformAny(e.operand);return this.createCommaExpressionBuilder_().add(t).build(new I(e.location,getResult(t),e.memberName))},transformMemberLookupExpression:function(e){var t=this.transformAny(e.operand),r=this.transformAny(e.memberExpression);return this.createCommaExpressionBuilder_().add(t).add(r).build(new O(e.location,getResult(t),getResult(r)))},transformBinaryExpression:function(e){if(e.operator.isAssignmentOperator())return this.transformAssignmentExpression_(e);var t=this.transformAny(e.left),r=this.transformAny(e.right);if(t===e.left&&r===e.right)return e;if(e.operator.type===d)return this.transformOr_(t,r);if(e.operator.type===l)return this.transformAnd_(t,r);var i=$traceurRuntime.spread(getExpressions(t),getExpressions(r),[new b(e.location,getResult(t),e.operator,getResult(r))]);return n(i)},transformAssignmentExpression_:function(e){var t=e.left;if(t.type===v)return this.transformAssignMemberExpression_(e);if(t.type===E)return this.transformAssignMemberLookupExpression_(e);if(W(e.left.type===_),e.operator.type===m){t=this.transformAny(t);var i=this.transformAny(e.right),a=$traceurRuntime.spread(getExpressions(i),[r(t,getResult(i)),getResult(i)]);return n(a)}var s=this.transformAny(e.right),u=this.addTempVar(),c=o(H(e.operator.type)),l=$traceurRuntime.spread(getExpressions(s),[r(u,new b(e.location,t,c,getResult(s))),r(t,u),u]);return n(l)},transformAssignMemberExpression_:function(e){var t=e.left;if(e.operator.type===m){var i=this.transformAny(t.operand),a=this.transformAny(e.right),s=$traceurRuntime.spread(getExpressions(i),getExpressions(a),[new b(e.location,new I(t.location,getResult(i),t.memberName),e.operator,getResult(a)),getResult(a)]);return n(s)}var u=this.transformAny(t.operand),c=this.transformAny(e.right),l=this.addTempVar(),p=new I(t.location,getResult(u),t.memberName),f=this.addTempVar(),h=o(H(e.operator.type)),d=$traceurRuntime.spread(getExpressions(u),getExpressions(c),[r(l,p),r(f,new b(e.location,l,h,getResult(c))),r(p,f),f]);return n(d)},transformAssignMemberLookupExpression_:function(e){var t=e.left;if(e.operator.type===m){var i=this.transformAny(t.operand),a=this.transformAny(t.memberExpression),s=this.transformAny(e.right),u=$traceurRuntime.spread(getExpressions(i),getExpressions(a),getExpressions(s),[new b(e.location,new O(t.location,getResult(i),getResult(a)),e.operator,getResult(s)),getResult(s)]);return n(u)}var c=this.transformAny(t.operand),l=this.transformAny(t.memberExpression),p=this.transformAny(e.right),f=this.addTempVar(),h=new O(t.location,getResult(c),getResult(l)),d=this.addTempVar(),g=o(H(e.operator.type)),T=$traceurRuntime.spread(getExpressions(c),getExpressions(l),getExpressions(p),[r(f,h),r(d,new b(e.location,f,g,getResult(p))),r(h,d),d]);return n(T)},transformArrayLiteral:function(e){var t=this.transformList(e.elements);if(t===e.elements)return e;for(var r=this.createCommaExpressionBuilder_(),n=[],i=0;i<t.length;i++)r.add(t[i]),n.push(getResult(t[i]));return r.build(new N(e.location,n))},transformObjectLiteral:function(e){var t=this.transformList(e.propertyNameAndValues);if(t===e.propertyNameAndValues)return e;for(var r=this.createCommaExpressionBuilder_(),n=[],i=0;i<t.length;i++)t[i].type===M?(r.add(t[i].value),n.push(new D(t[i].location,t[i].name,getResult(t[i].value)))):n.push(t[i]);return r.build(new k(e.location,n))},transformTemplateLiteralExpression:function(e){var t=this.transformAny(e.operand),r=this.transformList(e.elements);if(!t&&t===e.operand&&r===e.elements)return e;var n=this.createCommaExpressionBuilder_();t&&n.add(t);for(var i=[],a=0;a<r.length;a++)if(r[a].type===x)i.push(r[a]);else{var s=r[a].expression;n.add(s);var o=getResult(s);i.push(new V(s.location,o))}return n.build(new z(e.location,t&&getResult(t),i))},transformCallExpression:function(e){return e.operand.type===v?this.transformCallMemberExpression_(e):e.operand.type===E?this.transformCallMemberLookupExpression_(e):this.transformCallAndNew_(e,w)},transformNewExpression:function(e){return this.transformCallAndNew_(e,F)},transformCallAndNew_:function(e,t){var r=this.transformAny(e.operand),n=this.transformAny(e.args),i=this.createCommaExpressionBuilder_().add(r),a=[];return n.args.forEach((function(e){i.add(e),a.push(getResult(e))})),i.build(new t(e.location,getResult(r),new C(n.location,a)))},transformCallMemberExpression_:function(e){var t=e.operand.memberName,i=this.transformAny(e.operand.operand),s=this.addTempVar(),o=new I(e.operand.location,getResult(i),t),u=this.transformAny(e.args),c=$traceurRuntime.spread(getExpressions(i),[r(s,o)]),l=[getResult(i)];u.args.forEach((function(e){var t;(t=c).push.apply(t,$traceurRuntime.spread(getExpressions(e))),l.push(getResult(e))}));var m=new w(e.location,a(s,"call"),new C(u.location,l)),p=this.addTempVar();return c.push(r(p,m),p),n(c)},transformCallMemberLookupExpression_:function(e){var t=this.transformAny(e.operand.operand),i=this.transformAny(e.operand.memberExpression),s=this.addTempVar(),o=new O(e.operand.location,getResult(t),getResult(i)),u=this.transformAny(e.args),c=$traceurRuntime.spread(getExpressions(t),getExpressions(i),[r(s,o)]),l=[getResult(t)];u.args.forEach((function(t,r){var n;(n=c).push.apply(n,$traceurRuntime.spread(getExpressions(t)));var i=getResult(t);e.args.args[r].type===A&&(i=new B(t.location,i)),l.push(i)}));var m=new w(e.location,a(s,"call"),new C(u.location,l)),p=this.addTempVar();return c.push(r(p,m),p),n(c)},transformConditionalExpression:function(e){var t=this.transformAny(e.condition),i=this.transformAny(e.left),a=this.transformAny(e.right);if(t===e.condition&&i===e.left&&a===e.right)return e;var s=this.addTempVar(),o=n($traceurRuntime.spread(getExpressions(i),[r(s,getResult(i))])),c=n($traceurRuntime.spread(getExpressions(a),[r(s,getResult(a))])),l=$traceurRuntime.spread(getExpressions(t),[new L(e.location,getResult(t),u(o),u(c)),s]);return n(l)},transformOr_:function(e,t){var i=this.addTempVar(),a=n([r(i,getResult(e))]),s=n($traceurRuntime.spread(getExpressions(t),[r(i,getResult(t))])),o=$traceurRuntime.spread(getExpressions(e),[new L(e.location,getResult(e),u(a),u(s)),i]);return n(o)},transformAnd_:function(e,t){var i=this.addTempVar(),a=n($traceurRuntime.spread(getExpressions(t),[r(i,getResult(t))])),s=n([r(i,getResult(e))]),o=$traceurRuntime.spread(getExpressions(e),[new L(e.location,getResult(e),u(a),u(s)),i]);return n(o)},transformSpreadExpression:function(e){var t=this.transformAny(e.expression);if(t===e.expression)return e;var r=getResult(t);r.type!==A&&(r=new B(r.location,r));var i=$traceurRuntime.spread(getExpressions(t),[r]);return n(i)},transformFunctionExpression:function(e){return this.createCommaExpressionBuilder_().build(e)},transformArrowFunction:function(e){return this.createCommaExpressionBuilder_().build(e)},transformClassExpression:function(e){var t=this.transformAny(e.superClass);if(t===e.superClass)return this.createCommaExpressionBuilder_().build(e);var r=this.createCommaExpressionBuilder_();return r.add(t),r.build(new j(e.location,e.name,getResult(t),e.elements,e.annotations,e.typeParameters))},transformFunctionBody:function(e){return e},createCommaExpressionBuilder_:function(){return new Y(this.addTempVar())}},{},X));return{get ExplodeExpressionTransformer(){return J}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/ExponentiationTransformer.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ExplodeExpressionTransformer.js","traceur@0.0.111/src/codegeneration/ExponentiationTransformer.js")).ExplodeExpressionTransformer,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./TempVarTransformer.js","traceur@0.0.111/src/codegeneration/ExponentiationTransformer.js")).TempVarTransformer,r=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParenTrait.js","traceur@0.0.111/src/codegeneration/ExponentiationTransformer.js")).ParenTrait,n=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/TokenType.js","traceur@0.0.111/src/codegeneration/ExponentiationTransformer.js")),i=n.STAR_STAR,a=n.STAR_STAR_EQUAL,s=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./PlaceholderParser.js","traceur@0.0.111/src/codegeneration/ExponentiationTransformer.js")).parseExpression,o=function(t){function ExponentiationTransformer(){$traceurRuntime.superConstructor(ExponentiationTransformer).apply(this,arguments)}return $traceurRuntime.createClass(ExponentiationTransformer,{transformBinaryExpression:function(t){switch(t.operator.type){case i:var r=this.transformAny(t.left),n=this.transformAny(t.right);return s($traceurRuntime.getTemplateObject(["Math.pow(",", ",")"]),r,n);case a:var o=new e(this).transformAny(t);return this.transformAny(o)}return $traceurRuntime.superGet(this,ExponentiationTransformer.prototype,"transformBinaryExpression").call(this,t)}},{},t)}(r(t));return{get ExponentiationTransformer(){return o}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/ForOfTransformer.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTreeType.js","traceur@0.0.111/src/codegeneration/ForOfTransformer.js")),t=e.FOR_OF_STATEMENT,r=e.VARIABLE_DECLARATION_LIST,n=e.LABELLED_STATEMENT,i=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./TempVarTransformer.js","traceur@0.0.111/src/codegeneration/ForOfTransformer.js")).TempVarTransformer,a=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeFactory.js","traceur@0.0.111/src/codegeneration/ForOfTransformer.js")),s=a.createIdentifierExpression,o=a.createMemberExpression,u=a.createVariableStatement,c=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./PlaceholderParser.js","traceur@0.0.111/src/codegeneration/ForOfTransformer.js")),l=c.parseStatement,m=c.parseStatements,p=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTrees.js","traceur@0.0.111/src/codegeneration/ForOfTransformer.js")),f=p.AnonBlock,h=p.LabelledStatement,d=function(e){function ForOfTransformer(){$traceurRuntime.superConstructor(ForOfTransformer).apply(this,arguments)}return $traceurRuntime.createClass(ForOfTransformer,{transformForOfStatement:function(e){return this.transformForOfStatement_(e,[])},transformForOfStatement_:function(e,t){var n,i,a,c=$traceurRuntime.superGet(this,ForOfTransformer.prototype,"transformForOfStatement").call(this,e),p=s(this.getTempIdentifier()),d=s(this.getTempIdentifier()),g=(s(this.getTempIdentifier()),s(this.getTempIdentifier())),T=s(this.getTempIdentifier()),y=s(this.getTempIdentifier()),R=s(this.getTempIdentifier());for(a=c.initializer.type===r?u(c.initializer.declarationType,c.initializer.declarations[0].lvalue,o(d,"value")):l($traceurRuntime.getTemplateObject([""," = ",".value;"]),c.initializer,d),i=l($traceurRuntime.getTemplateObject(["\n        for (var ",",\n                 "," = (",")[Symbol.iterator]();\n             !("," = ("," = ",".next()).done);\n             "," = true) {\n          ","\n          ","\n        }"]),d,p,c.collection,g,d,p,g,a,c.body);n=t.pop();)i=new h(n.location,n.name,i);return new f(null,m($traceurRuntime.getTemplateObject(["\n        var "," = true;\n        var "," = false;\n        var "," = undefined;\n        try {\n          ","\n        } catch (",") {\n          "," = true;\n          "," = ",";\n        } finally {\n          try {\n            if (!"," && ",".return != null) {\n              ",".return();\n            }\n          } finally {\n            if (",") {\n              throw ",";\n            }\n          }\n        }"]),g,T,y,i,R,T,y,R,g,p,p,T,y))},transformLabelledStatement:function(e){for(var r=[e],i=e.statement;i.type===n;)r.push(i),i=i.statement;return i.type!==t?$traceurRuntime.superGet(this,ForOfTransformer.prototype,"transformLabelledStatement").call(this,e):this.transformForOfStatement_(i,r)}},{},e)}(i);return{get ForOfTransformer(){return d}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/InnerForOnTransformer.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeTransformer.js","traceur@0.0.111/src/codegeneration/InnerForOnTransformer.js")).ParseTreeTransformer,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./alphaRenameThisAndArguments.js","traceur@0.0.111/src/codegeneration/InnerForOnTransformer.js")).default,r=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./PlaceholderParser.js","traceur@0.0.111/src/codegeneration/InnerForOnTransformer.js")),n=r.parseStatement,i=r.parseStatements,a=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTrees.js","traceur@0.0.111/src/codegeneration/InnerForOnTransformer.js")),s=a.AnonBlock,o=a.Block,u=a.ContinueStatement,c=a.LabelledStatement,l=a.ReturnStatement,m=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../util/StringSet.js","traceur@0.0.111/src/codegeneration/InnerForOnTransformer.js")).StringSet,p=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeFactory.js","traceur@0.0.111/src/codegeneration/InnerForOnTransformer.js")),f=p.createAssignmentStatement,h=p.createCaseClause,d=p.createDefaultClause,g=p.createIdentifierExpression,T=p.createNumberLiteral,y=p.createSwitchStatement,R=p.createThisExpression,S=p.createVariableStatement,_=p.createVariableDeclaration,v=p.createVariableDeclarationList,E=p.createVoid0,M=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./SkipFunctionsTransformerTrait.js","traceur@0.0.111/src/codegeneration/InnerForOnTransformer.js")).default,A=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/PredefinedName.js","traceur@0.0.111/src/codegeneration/InnerForOnTransformer.js")).ARGUMENTS,x=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/TokenType.js","traceur@0.0.111/src/codegeneration/InnerForOnTransformer.js")).VAR,$=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTreeType.js","traceur@0.0.111/src/codegeneration/InnerForOnTransformer.js")),C=$.VARIABLE_DECLARATION_LIST,N=$.BLOCK,P=function(e){function InnerForOnTransformer(e,t,r){var n;$traceurRuntime.superConstructor(InnerForOnTransformer).call(this),this.idGenerator_=e,this.inLoop_=0,this.inBreakble_=0,this.variableDeclarations_=[],this.extractedStatements_=[],this.labelSet_=t,this.labelledStatements_=new m,this.observer_=g(this.idGenerator_.getTempIdentifier()),this.result_=g(this.idGenerator_.getTempIdentifier()),this.parentLabels_=new m,this.labelSet_.forEach((n=this,function(e){n.parentLabels_.add(e.name.value)})),this.options=r}return $traceurRuntime.createClass(InnerForOnTransformer,{transform:function(e){var r,a,s=g(this.idGenerator_.getTempIdentifier());r=e.initializer.type===C?S(e.initializer.declarationType,e.initializer.declarations[0].lvalue,s):n($traceurRuntime.getTemplateObject(["\n          "," = ",";"]),e.initializer,s),a=e.body.type===N?new o(e.body.location,$traceurRuntime.spread([r],e.body.statements)):new o(null,[r,e.body]),a=this.transformAny(a),a=t(this,a),this.variableDeclarations_.push(_(this.result_,E()));var l=this.extractedStatements_.map((function(e,t){return h(T(t),[e])}));l.push(h(E(),[new u(null,null)])),l.push(d(i($traceurRuntime.getTemplateObject(["\n        return ",".v;"]),this.result_)));for(var m,p=y(this.result_,l),f=this.idGenerator_.getRuntimeExpression("observeForEach"),R=n($traceurRuntime.getTemplateObject(["\n        do {\n          ","\n            await ","(\n              ","[Symbol.observer].bind(","),\n              async function (",") {\n                var "," = this;\n                try {\n                  ","\n                } catch (e) {\n                  ",".throw(e);\n                }\n              });\n          ","\n        } while (false);"]),S(v(x,this.variableDeclarations_)),f,e.observable,e.observable,s,this.observer_,a,this.observer_,p);m=this.labelSet_.pop();)R=new c(m.location,m.name,R);return R},addTempVarForArguments:function(){var e=this.idGenerator_.generateUniqueIdentifier();return this.variableDeclarations_.push(_(e,g(A))),e},addTempVarForThis:function(){var e=this.idGenerator_.generateUniqueIdentifier();return this.variableDeclarations_.push(_(e,R())),e},transformAny:function(e){return e&&(e.isBreakableStatement()&&this.inBreakble_++,e.isIterationStatement()&&this.inLoop_++,(e=$traceurRuntime.superGet(this,InnerForOnTransformer.prototype,"transformAny").call(this,e)).isBreakableStatement()&&this.inBreakble_--,e.isIterationStatement()&&this.inLoop_--),e},transformReturnStatement:function(e){return new s(e.location,i($traceurRuntime.getTemplateObject(["\n        ",".return();\n        "," = {v: ","};\n        return;"]),this.observer_,this.result_,e.expression||E()))},transformAbruptCompletion_:function(e){this.extractedStatements_.push(e);var t=this.extractedStatements_.length-1;return new s(null,i($traceurRuntime.getTemplateObject(["\n        ",".return();\n        "," = ",";\n        return;"]),this.observer_,this.result_,t))},transformBreakStatement:function(e){return e.name?this.labelledStatements_.has(e.name.value)?$traceurRuntime.superGet(this,InnerForOnTransformer.prototype,"transformBreakStatement").call(this,e):this.transformAbruptCompletion_(e):this.inBreakble_?$traceurRuntime.superGet(this,InnerForOnTransformer.prototype,"transformBreakStatement").call(this,e):this.transformAbruptCompletion_(new u(e.location,null))},transformContinueStatement:function(e){return e.name?this.labelledStatements_.has(e.name.value)?$traceurRuntime.superGet(this,InnerForOnTransformer.prototype,"transformContinueStatement").call(this,e):this.parentLabels_.has(e.name.value)?new l(e.location,null):this.transformAbruptCompletion_(e):this.inLoop_?$traceurRuntime.superGet(this,InnerForOnTransformer.prototype,"transformContinueStatement").call(this,e):new l(e.location,null)},transformLabelledStatement:function(e){return this.labelledStatements_.add(e.name.value),$traceurRuntime.superGet(this,InnerForOnTransformer.prototype,"transformLabelledStatement").call(this,e)},transformVariableStatement:function(e){var t=this;if(e.declarations.declarationType===x){var r=[];return e.declarations.declarations.forEach((function(e){var n=e.lvalue.getStringValue(),i=$traceurRuntime.superGet(t,InnerForOnTransformer.prototype,"transformAny").call(t,e.initializer);t.variableDeclarations_.push(_(n,null)),r.push(f(g(n),i))})),new s(null,r)}return $traceurRuntime.superGet(this,InnerForOnTransformer.prototype,"transformVariableStatement").call(this,e)}},{transform:function(e,t,r){return new InnerForOnTransformer(e,r).transform(t)}},e)}(M(e));return{get InnerForOnTransformer(){return P}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/ForOnTransformer.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTreeType.js","traceur@0.0.111/src/codegeneration/ForOnTransformer.js")),t=e.FOR_ON_STATEMENT,r=e.LABELLED_STATEMENT,n=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ImportRuntimeTrait.js","traceur@0.0.111/src/codegeneration/ForOnTransformer.js")).default,i=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./TempVarTransformer.js","traceur@0.0.111/src/codegeneration/ForOnTransformer.js")).TempVarTransformer,a=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./InnerForOnTransformer.js","traceur@0.0.111/src/codegeneration/ForOnTransformer.js")).InnerForOnTransformer,s=function(e){function ForOnTransformer(){$traceurRuntime.superConstructor(ForOnTransformer).apply(this,arguments)}return $traceurRuntime.createClass(ForOnTransformer,{transformForOnStatement:function(e){return this.transformForOnStatement_(e,[])},transformForOnStatement_:function(e,t){return a.transform(this,$traceurRuntime.superGet(this,ForOnTransformer.prototype,"transformForOnStatement").call(this,e),t)},transformLabelledStatement:function(e){var n,i=[e];for(n=e.statement;n.type===r;n=n.statement)i.push(n);return n.type!==t?$traceurRuntime.superGet(this,ForOnTransformer.prototype,"transformLabelledStatement").call(this,e):this.transformForOnStatement_(n,i)}},{},e)}(n(i));return{get ForOnTransformer(){return s}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/GeneratorComprehensionTransformer.js",[],(function(){"use strict";var e,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ComprehensionTransformer.js","traceur@0.0.111/src/codegeneration/GeneratorComprehensionTransformer.js")).ComprehensionTransformer,r=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./PlaceholderParser.js","traceur@0.0.111/src/codegeneration/GeneratorComprehensionTransformer.js")).parseStatement,n=(e=t,$traceurRuntime.createClass((function GeneratorComprehensionTransformer(){$traceurRuntime.superConstructor(GeneratorComprehensionTransformer).apply(this,arguments)}),{transformGeneratorComprehension:function(e){var t=this.transformAny(e.expression),n=r($traceurRuntime.getTemplateObject(["yield ",""]),t);return this.transformComprehension(e,n,!0)}},{},e));return{get GeneratorComprehensionTransformer(){return n}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/generator/State.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../ParseTreeFactory.js","traceur@0.0.111/src/codegeneration/generator/State.js")),t=e.createAssignStateStatement,r=e.createBreakStatement,n=e.createCaseClause,i=e.createNumberLiteral,a=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../PlaceholderParser.js","traceur@0.0.111/src/codegeneration/generator/State.js")).parseStatement,s=$traceurRuntime.createClass((function s(e){this.id=e}),{transformMachineState:function(e,t,r){return n(i(this.id),this.transform(e,t,r))},transformBreak:function(e,t){return this},transformBreakOrContinue:function(e){return arguments[1],arguments[2],this}},{});return s.START_STATE=0,s.INVALID_STATE=-1,s.END_STATE=-2,s.RETHROW_STATE=-3,s.generateJump=function(e,t){return $traceurRuntime.spread(s.generateAssignState(e,t),[r()])},s.generateAssignState=function(e,r){return s.isFinallyExit(e,r)?function generateAssignStateOutOfFinally(e,r){var n=e.finallyState;return[t(n),a($traceurRuntime.getTemplateObject(["$ctx.finallyFallThrough = ",""]),r)]}(e,r):[t(r)]},s.isFinallyExit=function(e,t){return!!e&&e.tryStates.indexOf(t)<0},s.replaceStateList=function(e,t,r){for(var n=[],i=0;i<e.length;i++)n.push(s.replaceStateId(e[i],t,r));return n},s.replaceStateId=function(e,t,r){return e===t?r:e},s.replaceAllStates=function(e,t,r){for(var n=[],i=0;i<e.length;i++)n.push(e[i].replaceState(t,r));return n},{get State(){return s}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/generator/AwaitState.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./State.js","traceur@0.0.111/src/codegeneration/generator/AwaitState.js")).State,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../PlaceholderParser.js","traceur@0.0.111/src/codegeneration/generator/AwaitState.js")).parseStatements,r=function(r){function AwaitState(e,t,r){$traceurRuntime.superConstructor(AwaitState).call(this,e),this.callbackState=t,this.expression=r}return $traceurRuntime.createClass(AwaitState,{replaceState:function(t,r){return new AwaitState(e.replaceStateId(this.id,t,r),e.replaceStateId(this.callbackState,t,r),this.expression)},transform:function(r,n,i){var a,s,o;return e.isFinallyExit(r,this.callbackState)?(s=r.finallyState,o=t($traceurRuntime.getTemplateObject(["$ctx.finallyFallThrough = ",""]),this.callbackState)):(s=this.callbackState,o=[]),(a=o).push.apply(a,$traceurRuntime.spread(t($traceurRuntime.getTemplateObject(["Promise.resolve(",").then(\n          $ctx.createCallback(","), $ctx.errback);\n          return;"]),this.expression,s))),o}},{},r)}(e);return{get AwaitState(){return r}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/generator/FallThroughState.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./State.js","traceur@0.0.111/src/codegeneration/generator/FallThroughState.js")).State,t=function(t){function FallThroughState(e,t,r){$traceurRuntime.superConstructor(FallThroughState).call(this,e),this.fallThroughState=t,this.statements=r}return $traceurRuntime.createClass(FallThroughState,{replaceState:function(t,r){return new FallThroughState(e.replaceStateId(this.id,t,r),e.replaceStateId(this.fallThroughState,t,r),this.statements)},transform:function(t,r,n){return $traceurRuntime.spread(this.statements,e.generateJump(t,this.fallThroughState))}},{},t)}(e);return{get FallThroughState(){return t}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/generator/BreakState.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./FallThroughState.js","traceur@0.0.111/src/codegeneration/generator/BreakState.js")).FallThroughState,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./State.js","traceur@0.0.111/src/codegeneration/generator/BreakState.js")).State,r=function(r){function BreakState(e,t){$traceurRuntime.superConstructor(BreakState).call(this,e),this.label=t}return $traceurRuntime.createClass(BreakState,{replaceState:function(e,r){return new BreakState(t.replaceStateId(this.id,e,r),this.label)},transform:function(e,t,r){throw new Error("These should be removed before the transform step")},transformBreak:function(t){var r=arguments[1];return null===this.label?new e(this.id,r,[]):t.has(this.label)?new e(this.id,t.get(this.label).fallThroughState,[]):this},transformBreakOrContinue:function(e){var t=arguments[1];arguments[2];return this.transformBreak(e,t)}},{},r)}(t);return{get BreakState(){return r}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/generator/ContinueState.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./FallThroughState.js","traceur@0.0.111/src/codegeneration/generator/ContinueState.js")).FallThroughState,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./State.js","traceur@0.0.111/src/codegeneration/generator/ContinueState.js")).State,r=function(r){function ContinueState(e,t){$traceurRuntime.superConstructor(ContinueState).call(this,e),this.label=t}return $traceurRuntime.createClass(ContinueState,{replaceState:function(e,r){return new ContinueState(t.replaceStateId(this.id,e,r),this.label)},transform:function(e,t,r){throw new Error("These should be removed before the transform step")},transformBreakOrContinue:function(t){arguments[1];var r=arguments[2];return null===this.label?new e(this.id,r,[]):t.has(this.label)?new e(this.id,t.get(this.label).continueState,[]):this}},{},r)}(t);return{get ContinueState(){return r}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/generator/TryState.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./State.js","traceur@0.0.111/src/codegeneration/generator/TryState.js")).State,t=$traceurRuntime.createClass((function t(e,r,n){this.kind=e,this.tryStates=r,this.nestedTrys=n}),{replaceAllStates:function(t,r){return e.replaceStateList(this.tryStates,t,r)},replaceNestedTrys:function(e,t){for(var r=[],n=0;n<this.nestedTrys.length;n++)r.push(this.nestedTrys[n].replaceState(e,t));return r}},{});return t.Kind={CATCH:"catch",FINALLY:"finally"},{get TryState(){return t}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/syntax/trees/StateMachine.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTree.js","traceur@0.0.111/src/syntax/trees/StateMachine.js")).ParseTree,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeType.js","traceur@0.0.111/src/syntax/trees/StateMachine.js")).STATE_MACHINE,r=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../../codegeneration/generator/State.js","traceur@0.0.111/src/syntax/trees/StateMachine.js")).State,n=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../../codegeneration/generator/TryState.js","traceur@0.0.111/src/syntax/trees/StateMachine.js")).TryState;var i=function(e){function StateMachine(e,t,r,n){$traceurRuntime.superConstructor(StateMachine).call(this,null),this.startState=e,this.fallThroughState=t,this.states=r,this.exceptionBlocks=n}return $traceurRuntime.createClass(StateMachine,{get type(){return t},transform:function(e){return e.transformStateMachine(this)},visit:function(e){e.visitStateMachine(this)},getAllStateIDs:function(){for(var e=[],t=0;t<this.states.length;t++)e.push(this.states[t].id);return e},getEnclosingFinallyMap:function(){var e=Object.create(null);return function addCatchOrFinallyStates(e,t,r){for(var n=0;n<r.length;n++){var i=r[n];if(i.kind===e)for(var a=0;a<i.tryStates.length;a++){t[i.tryStates[a]]=i}addCatchOrFinallyStates(e,t,i.nestedTrys)}}(n.Kind.FINALLY,e,this.exceptionBlocks),e},allCatchStates:function(){var e=[];return function addAllCatchStates(e,t){for(var r=0;r<e.length;r++){var i=e[r];i.kind===n.Kind.CATCH&&t.push(i),addAllCatchStates(i.nestedTrys,t)}}(this.exceptionBlocks,e),e},replaceStateId:function(e,t){return new StateMachine(r.replaceStateId(this.startState,e,t),r.replaceStateId(this.fallThroughState,e,t),r.replaceAllStates(this.states,e,t),r.replaceAllStates(this.exceptionBlocks,e,t))},replaceStartState:function(e){return this.replaceStateId(this.startState,e)},replaceFallThroughState:function(e){return this.replaceStateId(this.fallThroughState,e)},append:function(e){for(var t=$traceurRuntime.spread(this.states),r=0;r<e.states.length;r++){var n=e.states[r];t.push(n.replaceState(e.startState,this.fallThroughState))}for(var i=$traceurRuntime.spread(this.exceptionBlocks),a=0;a<e.exceptionBlocks.length;a++){var s=e.exceptionBlocks[a];i.push(s.replaceState(e.startState,this.fallThroughState))}return new StateMachine(this.startState,e.fallThroughState,t,i)}},{},e)}(e);return{get StateMachine(){return i}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/generator/BreakContinueTransformer.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./BreakState.js","traceur@0.0.111/src/codegeneration/generator/BreakContinueTransformer.js")).BreakState,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ContinueState.js","traceur@0.0.111/src/codegeneration/generator/BreakContinueTransformer.js")).ContinueState,r=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../ParseTreeTransformer.js","traceur@0.0.111/src/codegeneration/generator/BreakContinueTransformer.js")).ParseTreeTransformer,n=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../../syntax/trees/StateMachine.js","traceur@0.0.111/src/codegeneration/generator/BreakContinueTransformer.js")).StateMachine;function safeGetLabel(e){return e.name?e.name.value:null}var i=function(r){function BreakContinueTransformer(e){$traceurRuntime.superConstructor(BreakContinueTransformer).call(this),this.transformBreaks_=!0,this.stateAllocator_=e}return $traceurRuntime.createClass(BreakContinueTransformer,{allocateState_:function(){return this.stateAllocator_.allocateState()},stateToStateMachine_:function(e){var t=this.allocateState_();return new n(e.id,t,[e],[])},transformBreakStatement:function(t){return this.transformBreaks_||t.name?this.stateToStateMachine_(new e(this.allocateState_(),safeGetLabel(t))):t},transformContinueStatement:function(e){return this.stateToStateMachine_(new t(this.allocateState_(),safeGetLabel(e)))},transformDoWhileStatement:function(e){return e},transformForOfStatement:function(e){return e},transformForOnStatement:function(e){return e},transformForStatement:function(e){return e},transformFunctionDeclaration:function(e){return e},transformFunctionExpression:function(e){return e},transformStateMachine:function(e){return e},transformSwitchStatement:function(e){var t=this.transformBreaks_;this.transformBreaks_=!1;var r=$traceurRuntime.superGet(this,BreakContinueTransformer.prototype,"transformSwitchStatement").call(this,e);return this.transformBreaks_=t,r},transformWhileStatement:function(e){return e}},{},r)}(r);return{get BreakContinueTransformer(){return i}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/generator/CatchState.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./State.js","traceur@0.0.111/src/codegeneration/generator/CatchState.js")).State,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./TryState.js","traceur@0.0.111/src/codegeneration/generator/CatchState.js")).TryState,r=function(r){function CatchState(e,r,n,i,a){$traceurRuntime.superConstructor(CatchState).call(this,t.Kind.CATCH,i,a),this.identifier=e,this.catchState=r,this.fallThroughState=n}return $traceurRuntime.createClass(CatchState,{replaceState:function(t,r){return new CatchState(this.identifier,e.replaceStateId(this.catchState,t,r),e.replaceStateId(this.fallThroughState,t,r),this.replaceAllStates(t,r),this.replaceNestedTrys(t,r))}},{},r)}(t);return{get CatchState(){return r}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/generator/ConditionalState.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./State.js","traceur@0.0.111/src/codegeneration/generator/ConditionalState.js")).State,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../ParseTreeFactory.js","traceur@0.0.111/src/codegeneration/generator/ConditionalState.js")),r=t.createBlock,n=t.createIfStatement,i=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../PlaceholderParser.js","traceur@0.0.111/src/codegeneration/generator/ConditionalState.js")).parseStatements,a=function(t){function ConditionalState(e,t,r,n){$traceurRuntime.superConstructor(ConditionalState).call(this,e),this.ifState=t,this.elseState=r,this.condition=n}return $traceurRuntime.createClass(ConditionalState,{replaceState:function(t,r){return new ConditionalState(e.replaceStateId(this.id,t,r),e.replaceStateId(this.ifState,t,r),e.replaceStateId(this.elseState,t,r),this.condition)},transform:function(t,a,s){return e.isFinallyExit(t,this.ifState)||e.isFinallyExit(t,this.elseState)?[n(this.condition,r(e.generateJump(t,this.ifState)),r(e.generateJump(t,this.elseState)))]:i($traceurRuntime.getTemplateObject(["$ctx.state = (",") ? "," : ",";\n        break"]),this.condition,this.ifState,this.elseState)}},{},t)}(e);return{get ConditionalState(){return a}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/generator/FinallyFallThroughState.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./State.js","traceur@0.0.111/src/codegeneration/generator/FinallyFallThroughState.js")).State,t=function(t){function FinallyFallThroughState(){$traceurRuntime.superConstructor(FinallyFallThroughState).apply(this,arguments)}return $traceurRuntime.createClass(FinallyFallThroughState,{replaceState:function(t,r){return new FinallyFallThroughState(e.replaceStateId(this.id,t,r))},transformMachineState:function(e,t,r){return null},transform:function(e,t,r){throw new Error("these are generated in addFinallyFallThroughDispatches")}},{},t)}(e);return{get FinallyFallThroughState(){return t}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/generator/FinallyState.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./State.js","traceur@0.0.111/src/codegeneration/generator/FinallyState.js")).State,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./TryState.js","traceur@0.0.111/src/codegeneration/generator/FinallyState.js")).TryState,r=function(r){function FinallyState(e,r,n,i){$traceurRuntime.superConstructor(FinallyState).call(this,t.Kind.FINALLY,n,i),this.finallyState=e,this.fallThroughState=r}return $traceurRuntime.createClass(FinallyState,{replaceState:function(t,r){return new FinallyState(e.replaceStateId(this.finallyState,t,r),e.replaceStateId(this.fallThroughState,t,r),this.replaceAllStates(t,r),this.replaceNestedTrys(t,r))}},{},r)}(t);return{get FinallyState(){return r}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/generator/StateAllocator.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./State.js","traceur@0.0.111/src/codegeneration/generator/StateAllocator.js")).State,t=$traceurRuntime.createClass((function t(){this.nextState_=e.START_STATE+1}),{allocateState:function(){return this.nextState_++}},{});return{get StateAllocator(){return t}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/generator/SwitchState.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../../syntax/trees/ParseTrees.js","traceur@0.0.111/src/codegeneration/generator/SwitchState.js")),t=e.CaseClause,r=e.DefaultClause,n=e.SwitchStatement,i=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./State.js","traceur@0.0.111/src/codegeneration/generator/SwitchState.js")).State,a=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../ParseTreeFactory.js","traceur@0.0.111/src/codegeneration/generator/SwitchState.js")).createBreakStatement,s=$traceurRuntime.createClass((function s(e,t){this.first=e,this.second=t}),{},{}),o=function(e){function SwitchState(e,t,r){$traceurRuntime.superConstructor(SwitchState).call(this,e),this.expression=t,this.clauses=r}return $traceurRuntime.createClass(SwitchState,{replaceState:function(e,t){var r=this.clauses.map((function(r){return new s(r.first,i.replaceStateId(r.second,e,t))}));return new SwitchState(i.replaceStateId(this.id,e,t),this.expression,r)},transform:function(e,s,o){for(var u=[],c=0;c<this.clauses.length;c++){var l=this.clauses[c];null===l.first?u.push(new r(null,i.generateJump(e,l.second))):u.push(new t(null,l.first,i.generateJump(e,l.second)))}return[new n(null,this.expression,u),a()]}},{},e)}(i);return{get SwitchClause(){return s},get SwitchState(){return o}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/HoistVariablesTransformer.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTrees.js","traceur@0.0.111/src/codegeneration/HoistVariablesTransformer.js")),t=e.AnonBlock,r=e.Catch,n=e.FunctionBody,i=e.ForInStatement,a=e.ForOfStatement,s=e.ForStatement,o=e.VariableDeclarationList,u=e.VariableStatement,c=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTreeType.js","traceur@0.0.111/src/codegeneration/HoistVariablesTransformer.js")),l=c.OBJECT_PATTERN,m=c.VARIABLE_DECLARATION_LIST,p=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeTransformer.js","traceur@0.0.111/src/codegeneration/HoistVariablesTransformer.js")).ParseTreeTransformer,f=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../util/StringSet.js","traceur@0.0.111/src/codegeneration/HoistVariablesTransformer.js")).StringSet,h=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/TokenType.js","traceur@0.0.111/src/codegeneration/HoistVariablesTransformer.js")).VAR,d=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeFactory.js","traceur@0.0.111/src/codegeneration/HoistVariablesTransformer.js")),g=d.createAssignmentExpression,T=d.createCommaExpression,y=d.createExpressionStatement,R=d.createIdentifierExpression,S=d.createParenExpression,_=d.createVariableDeclaration,v=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./PrependStatements.js","traceur@0.0.111/src/codegeneration/HoistVariablesTransformer.js")).prependStatements,E=function(e){function HoistVariablesTransformer(){var e=void 0!==arguments[0]&&arguments[0];$traceurRuntime.superConstructor(HoistVariablesTransformer).call(this),this.hoistedFunctions_=[],this.hoistedVariables_=new f,this.keepBindingIdentifiers_=!1,this.inBlockOrFor_=!1,this.shouldHoistFunctions_=e}return $traceurRuntime.createClass(HoistVariablesTransformer,{transformFunctionBody:function(e){var t=this.transformList(e.statements);return t===e.statements?e:(t=this.prependVariables(t),t=this.prependFunctions(t),new n(e.location,t))},addVariable:function(e){this.hoistedVariables_.add(e)},addFunctionDeclaration:function(e){this.hoistedFunctions_.push(e)},hasVariables:function(){return!this.hoistedVariables_.isEmpty()},hasFunctions:function(){return this.hoistedFunctions_.length>0},getVariableNames:function(){return this.hoistedVariables_.valuesAsArray()},getVariableStatement:function(){if(!this.hasVariables())return new t(null,[]);var e=this.getVariableNames().map((function(e){return _(e,null)}));return new u(null,new o(null,h,e))},getFunctions:function(){return this.hoistedFunctions_},prependVariables:function(e){return this.hasVariables()?v(e,this.getVariableStatement()):e},prependFunctions:function(e){return this.hasFunctions()?v(e,this.getFunctionDeclarations()):e},transformVariableStatement:function(e){var r=this.transformAny(e.declarations);return r===e.declarations?e:null===r?new t(null,[]):r.type===m?new u(e.location,r):y(r)},transformVariableDeclaration:function(e){var t=this.transformAny(e.lvalue),r=this.transformAny(e.initializer);if(r){var n=g(t,r);return t.type===l&&(n=S(n)),n}return null},transformObjectPattern:function(e){var t=this.keepBindingIdentifiers_;this.keepBindingIdentifiers_=!0;var r=$traceurRuntime.superGet(this,HoistVariablesTransformer.prototype,"transformObjectPattern").call(this,e);return this.keepBindingIdentifiers_=t,r},transformArrayPattern:function(e){var t=this.keepBindingIdentifiers_;this.keepBindingIdentifiers_=!0;var r=$traceurRuntime.superGet(this,HoistVariablesTransformer.prototype,"transformArrayPattern").call(this,e);return this.keepBindingIdentifiers_=t,r},transformBindingIdentifier:function(e){var t=e.identifierToken;return this.addVariable(t.value),this.keepBindingIdentifiers_?e:R(t)},transformVariableDeclarationList:function(e){if(e.declarationType===h||!this.inBlockOrFor_){var t=this.transformList(e.declarations);return 0===(t=t.filter((function(e){return e}))).length?null:1===t.length?t[0]:T(t)}return e},transformCatch:function(e){var t=this.transformAny(e.catchBody);return t===e.catchBody?e:new r(e.location,e.binding,t)},transformForInStatement:function(e){return this.transformLoop_(e,i)},transformForOfStatement:function(e){return this.transformLoop_(e,a)},transformForOnStatement:function(e){return this.transformLoop_(e,a)},transformLoop_:function(e,t){var r=this.transformLoopIninitaliser_(e.initializer),n=this.transformAny(e.collection),i=this.transformAny(e.body);return r===e.initializer&&n===e.collection&&i===e.body?e:new t(e.location,r,n,i)},transformLoopIninitaliser_:function(e){return e.type!==m||e.declarationType!==h?e:this.transformAny(e.declarations[0].lvalue)},transformForStatement:function(e){var t=this.inBlockOrFor_;this.inBlockOrFor_=!0;var r=this.transformAny(e.initializer);this.inBlockOrFor_=t;var n=this.transformAny(e.condition),i=this.transformAny(e.increment),a=this.transformAny(e.body);return r===e.initializer&&n===e.condition&&i===e.increment&&a===e.body?e:new s(e.location,r,n,i,a)},transformBlock:function(e){var t=this.inBlockOrFor_;return this.inBlockOrFor_=!0,e=$traceurRuntime.superGet(this,HoistVariablesTransformer.prototype,"transformBlock").call(this,e),this.inBlockOrFor_=t,e},addMachineVariable:function(e){this.machineVariables_[e]=!0},transformClassDeclaration:function(e){return e},transformClassExpression:function(e){return e},transformFunctionDeclaration:function(e){return this.shouldHoistFunctions_?(this.addFunctionDeclaration(e),new t(null,[])):e},transformFunctionExpression:function(e){return e},transformGetAccessor:function(e){return e},transformSetAccessor:function(e){return e},transformMethod:function(e){return e},transformArrowFunction:function(e){return e},transformComprehensionFor:function(e){return e}},{},e)}(p);return{get default(){return E}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/generator/CPSTransformer.js",[],(function(){"use strict";var e,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../AlphaRenamer.js","traceur@0.0.111/src/codegeneration/generator/CPSTransformer.js")).AlphaRenamer,r=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./BreakContinueTransformer.js","traceur@0.0.111/src/codegeneration/generator/CPSTransformer.js")).BreakContinueTransformer,n=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../../syntax/trees/ParseTreeType.js","traceur@0.0.111/src/codegeneration/generator/CPSTransformer.js")),i=n.BLOCK,a=n.CASE_CLAUSE,s=n.CONDITIONAL_EXPRESSION,o=n.EXPRESSION_STATEMENT,u=n.PAREN_EXPRESSION,c=n.STATE_MACHINE,l=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../../syntax/trees/ParseTrees.js","traceur@0.0.111/src/codegeneration/generator/CPSTransformer.js")),m=l.AnonBlock,p=l.Block,f=l.CaseClause,h=l.IfStatement,d=l.SwitchStatement,g=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./CatchState.js","traceur@0.0.111/src/codegeneration/generator/CPSTransformer.js")).CatchState,T=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ConditionalState.js","traceur@0.0.111/src/codegeneration/generator/CPSTransformer.js")).ConditionalState,y=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../ExplodeExpressionTransformer.js","traceur@0.0.111/src/codegeneration/generator/CPSTransformer.js")).ExplodeExpressionTransformer,R=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./FallThroughState.js","traceur@0.0.111/src/codegeneration/generator/CPSTransformer.js")).FallThroughState,S=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./FinallyFallThroughState.js","traceur@0.0.111/src/codegeneration/generator/CPSTransformer.js")).FinallyFallThroughState,_=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./FinallyState.js","traceur@0.0.111/src/codegeneration/generator/CPSTransformer.js")).FinallyState,v=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../FindInFunctionScope.js","traceur@0.0.111/src/codegeneration/generator/CPSTransformer.js")).FindInFunctionScope,E=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../ParseTreeTransformer.js","traceur@0.0.111/src/codegeneration/generator/CPSTransformer.js")).ParseTreeTransformer,M=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../../util/StringMap.js","traceur@0.0.111/src/codegeneration/generator/CPSTransformer.js")).StringMap,A=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../TempVarTransformer.js","traceur@0.0.111/src/codegeneration/generator/CPSTransformer.js")).TempVarTransformer,x=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../../util/assert.js","traceur@0.0.111/src/codegeneration/generator/CPSTransformer.js")).assert,$=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../PlaceholderParser.js","traceur@0.0.111/src/codegeneration/generator/CPSTransformer.js")),C=$.parseExpression,N=$.parseStatement,P=$.parseStatements,b=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./State.js","traceur@0.0.111/src/codegeneration/generator/CPSTransformer.js")).State,w=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./StateAllocator.js","traceur@0.0.111/src/codegeneration/generator/CPSTransformer.js")).StateAllocator,j=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../../syntax/trees/StateMachine.js","traceur@0.0.111/src/codegeneration/generator/CPSTransformer.js")).StateMachine,L=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./SwitchState.js","traceur@0.0.111/src/codegeneration/generator/CPSTransformer.js")),I=L.SwitchClause,O=L.SwitchState,F=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./TryState.js","traceur@0.0.111/src/codegeneration/generator/CPSTransformer.js")).TryState,k=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../ParseTreeFactory.js","traceur@0.0.111/src/codegeneration/generator/CPSTransformer.js")),D=k.createAssignStateStatement,B=k.createBreakStatement,z=k.createCaseClause,V=k.createDefaultClause,G=k.createExpressionStatement,U=k.createFunctionBody,W=k.createIdentifierExpression,H=k.createMemberExpression,Y=k.createNumberLiteral,X=k.createSwitchStatement,J=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../HoistVariablesTransformer.js","traceur@0.0.111/src/codegeneration/generator/CPSTransformer.js")).default,K=$traceurRuntime.createClass((function K(e,t,r){this.name=e,this.continueState=t,this.fallThroughState=r}),{},{}),q=(e=v,$traceurRuntime.createClass((function NeedsStateMachine(){$traceurRuntime.superConstructor(NeedsStateMachine).apply(this,arguments)}),{visitBreakStatement:function(e){this.found=!0},visitContinueStatement:function(e){this.found=!0},visitStateMachine:function(e){this.found=!0},visitYieldExpression:function(e){this.found=!0}},{},e));function needsStateMachine(e){var t=new q;return t.visitAny(e),t.found}var Q=function(e){return $traceurRuntime.createClass((function HoistVariables(){$traceurRuntime.superConstructor(HoistVariables).call(this,!0)}),{prependVariables:function(e){return e},prependFunctions:function(e){return e}},{},e)}(J),Z=function(e){function CPSTransformer(e,t,r){$traceurRuntime.superConstructor(CPSTransformer).call(this,e,t,r),this.stateAllocator_=new w,this.labelSet_=new M,this.currentLabel_=null,this.hoistVariablesTransformer_=new Q}return $traceurRuntime.createClass(CPSTransformer,{expressionNeedsStateMachine:function(e){return!1},allocateState:function(){return this.stateAllocator_.allocateState()},transformBlock:function(e){var t=this.getLabels_(),r=this.clearCurrentLabel_(),n=$traceurRuntime.superGet(this,CPSTransformer.prototype,"transformBlock").call(this,e),i=this.transformStatementList_(n.statements);if(null===i)return n;if(r){for(var a=[],s=0;s<i.states.length;s++){var o=i.states[s];a.push(o.transformBreakOrContinue(t))}i=new j(i.startState,i.fallThroughState,a,i.exceptionBlocks)}return i},transformFunctionBody:function(e){this.pushTempScope();var t=this.clearLabels_(),r=$traceurRuntime.superGet(this,CPSTransformer.prototype,"transformFunctionBody").call(this,e),n=this.transformStatementList_(r.statements);return this.restoreLabels_(t),this.popTempScope(),null===n?r:n},transformStatementList_:function(e){for(var t,r=[],n=0;n<e.length;n++)if(e[n].type===c)r.push(e[n]);else if(needsStateMachine(e[n]))t=this.ensureTransformed_(e[n]),r.push(t);else{var i=r[r.length-1];i instanceof Array||r.push(i=[]),i.push(e[n])}if(1===r.length&&r[0]instanceof Array)return null;for(var a=null,s=0;s<r.length;s++)t=r[s]instanceof Array?this.statementsToStateMachine_(r[s]):r[s],a=0===s?t:a.append(t);return a},needsStateMachine_:function(e){if(e instanceof Array){for(var t=0;t<e.length;t++)if(needsStateMachine(e[t]))return!0;return!1}return x(e instanceof d),needsStateMachine(e)},transformCaseClause:function(e){var t=$traceurRuntime.superGet(this,CPSTransformer.prototype,"transformCaseClause").call(this,e),r=this.transformStatementList_(t.statements);return null===r?t:new f(null,t.expression,[r])},transformDoWhileStatement:function(e){var t,r,n,i,a,s,o=this.getLabels_(),u=this.clearCurrentLabel_();if(this.expressionNeedsStateMachine(e.condition))i=(r=this.expressionToStateMachine(e.condition)).machine,a=r.expression,s=this.transformAny(e.body);else{var l=$traceurRuntime.superGet(this,CPSTransformer.prototype,"transformDoWhileStatement").call(this,e);if(a=(n=l).condition,(s=n.body).type!==c)return l}var m=this.ensureTransformed_(s),p=m.startState,f=m.fallThroughState,h=this.allocateState(),d=[];return this.addLoopBodyStates_(m,f,h,o,d),i&&(f=(i=i.replaceStartState(f)).fallThroughState,(t=d).push.apply(t,$traceurRuntime.spread(i.states))),d.push(new T(f,p,h,a)),i=new j(p,h,d,m.exceptionBlocks),u&&(i=i.replaceStateId(f,u.continueState)),i},addLoopBodyStates_:function(e,t,r,n,i){for(var a=0;a<e.states.length;a++){var s=e.states[a];i.push(s.transformBreakOrContinue(n,r,t))}},transformForStatement:function(e){var t,r,n,i,a,s=this.getLabels_(),o=this.clearCurrentLabel_(),u=null;e.initializer&&(this.expressionNeedsStateMachine(e.initializer)?(u=(i=this.expressionToStateMachine(e.initializer)).expression,a=i.machine):u=this.transformAny(e.initializer));var l,m=null;e.condition&&(this.expressionNeedsStateMachine(e.condition)?(m=(i=this.expressionToStateMachine(e.condition)).expression,l=i.machine):m=this.transformAny(e.condition));var p,f=null;e.increment&&(this.expressionNeedsStateMachine(e.increment)?(f=(i=this.expressionToStateMachine(e.increment)).expression,p=i.machine):f=this.transformAny(e.increment));var h=this.transformAny(e.body);if(u===e.initializer&&m===e.condition&&f===e.increment&&h===e.body)return e;if(!a&&!l&&!p&&h.type!==c)return new ForStatement(e.location,u,m,f,h);var d,g,y=this.ensureTransformed_(h),S=y.fallThroughState,_=this.allocateState(),v=u?this.allocateState():b.INVALID_STATE,E=f?this.allocateState():S,M=y.startState,A=S,x=[];if(u){var $;d=v,$=m?E:M;var C=v;a&&(C=(a=a.replaceStartState(v)).fallThroughState,(t=x).push.apply(t,$traceurRuntime.spread(a.states))),x.push(new R(C,$,[G(u)]))}if(m){u||(d=E);var N=E;l&&(N=(l=l.replaceStartState(E)).fallThroughState,(r=x).push.apply(r,$traceurRuntime.spread(l.states))),x.push(new T(N,M,_,m))}if(f){var P;P=m?E:M;var w=A;p&&(w=(p=p.replaceStartState(A)).fallThroughState,(n=x).push.apply(n,$traceurRuntime.spread(p.states))),x.push(new R(w,P,[G(f)]))}u||m||(d=M),g=f?A:m?E:M,f||m||(y=y.replaceFallThroughState(y.startState)),this.addLoopBodyStates_(y,g,_,s,x);var L=new j(d,_,x,y.exceptionBlocks);return o&&(L=L.replaceStateId(g,o.continueState)),L},transformForInStatement:function(e){return e},transformForOfStatement:function(e){throw new Error("for of statements should be transformed before this pass")},transformIfStatement:function(e){var t,r,n,i,a,s,o,u,l;if(this.expressionNeedsStateMachine(e.condition))s=(i=this.expressionToStateMachine(e.condition)).machine,o=i.expression,u=this.transformAny(e.ifClause),l=this.transformAny(e.elseClause);else{var m=$traceurRuntime.superGet(this,CPSTransformer.prototype,"transformIfStatement").call(this,e);if(o=(a=m).condition,u=a.ifClause,l=a.elseClause,u.type!==c&&(null===l||l.type!==c))return m}u=this.ensureTransformed_(u),l=this.ensureTransformed_(l);var p=this.allocateState(),f=u.fallThroughState,h=u.startState,d=null===l?f:l.startState,g=[],y=[];g.push(new T(p,h,d,o)),(t=g).push.apply(t,$traceurRuntime.spread(u.states)),(r=y).push.apply(r,$traceurRuntime.spread(u.exceptionBlocks)),null!==l&&(this.replaceAndAddStates_(l.states,l.fallThroughState,f,g),(n=y).push.apply(n,$traceurRuntime.spread(b.replaceAllStates(l.exceptionBlocks,l.fallThroughState,f))));var R=new j(p,f,g,y);return s&&(R=s.append(R)),R},removeEmptyStates:function(e){for(var t=[],r=[],n=0;n<e.length;n++)e[n]instanceof R&&0===e[n].statements.length?t.push(e[n]):r.push(e[n]);for(var i=0;i<r.length;i++)r[i]=t.reduce((function(e,t){var r=t,n=r.id,i=r.fallThroughState;return e.replaceState(n,i)}),r[i]);return r},replaceAndAddStates_:function(e,t,r,n){for(var i=0;i<e.length;i++)n.push(e[i].replaceState(t,r))},transformLabelledStatement:function(e){var t=this.allocateState(),r=this.allocateState(),n=this.allocateState(),i=new K(e.name.value,r,n),a=this.addLabel_(i);this.currentLabel_=i;var s=this.transformAny(e.statement);return s===e.statement?s=e:s.type===c&&(s=(s=s.replaceStartState(t)).replaceFallThroughState(n)),this.restoreLabels_(a),s},getLabels_:function(){return this.labelSet_},restoreLabels_:function(e){this.labelSet_=e},addLabel_:function(e){var t=this,r=this.labelSet_,n=new M;return this.labelSet_.forEach((function(e){return n[e]=t.labelSet_[e]})),n.set(e.name,e),this.labelSet_=n,r},clearLabels_:function(){var e=this.labelSet_;return this.labelSet_=new M,e},clearCurrentLabel_:function(){var e=this.currentLabel_;return this.currentLabel_=null,e},transformSwitchStatement:function(e){var t,r,n,i,s,o=this.getLabels_();if(this.expressionNeedsStateMachine(e.expression))n=(t=this.expressionToStateMachine(e.expression)).expression,i=t.machine,s=this.transformList(e.caseClauses);else{var u=$traceurRuntime.superGet(this,CPSTransformer.prototype,"transformSwitchStatement").call(this,e);if(!needsStateMachine(u))return u;n=(r=u).expression,s=r.caseClauses}for(var c=this.allocateState(),l=this.allocateState(),m=l,p=[],f=[],h=[],d=!1,g=s.length-1;g>=0;g--){var T=s[g];if(T.type===a){var y=T;m=this.addSwitchClauseStates_(m,l,o,y.statements,p,h),f.push(new I(y.expression,m))}else{d=!0;var R=T;m=this.addSwitchClauseStates_(m,l,o,R.statements,p,h),f.push(new I(null,m))}}d||f.push(new I(null,l)),p.push(new O(c,n,f.reverse()));var S=new j(c,l,p.reverse(),h);return i&&(S=i.append(S)),S},addSwitchClauseStates_:function(e,t,r,n,i,a){for(var s,o=this.ensureTransformedList_(n),u=0;u<o.states.length;u++){var c=o.states[u].transformBreak(r,t);i.push(c.replaceState(o.fallThroughState,e))}return(s=a).push.apply(s,$traceurRuntime.spread(o.exceptionBlocks)),o.startState},transformTryStatement:function(e){var t=$traceurRuntime.superGet(this,CPSTransformer.prototype,"transformTryStatement").call(this,e),r=t,n=r.body,i=r.catchBlock,a=r.finallyBlock;if(!(n.type===c||null!==i&&i.catchBody.type===c||null!==a&&a.block.type===c))return t;var s=this.allocateState(),o=this.allocateState(),u=this.statementToStateMachine_(N($traceurRuntime.getTemplateObject(["$ctx.pushTry(\n            ",",\n            ",");"]),i&&s,a&&o)),l=this.ensureTransformed_(n);if(l=u.append(l),null!==i){var m=this.statementToStateMachine_(N($traceurRuntime.getTemplateObject(["$ctx.popTry();"])));l=l.append(m);var p=i.binding.identifierToken.value,f=this.ensureTransformed_(i.catchBody),h=this.allocateState();this.addMachineVariable(p);var d=$traceurRuntime.spread(l.states,[new R(h,f.startState,P($traceurRuntime.getTemplateObject(["\n              $ctx.popTry();\n              $ctx.maybeUncatchable(); // see RETURN_SENTINEL in runtime\n              "," = $ctx.storedException;"]),W(p)))]);this.replaceAndAddStates_(f.states,f.fallThroughState,l.fallThroughState,d),l=(l=new j(l.startState,l.fallThroughState,d,[new g(p,h,l.fallThroughState,l.getAllStateIDs(),l.exceptionBlocks)])).replaceStateId(h,s)}if(null!==a){var T=this.ensureTransformed_(a.block);T=this.statementToStateMachine_(N($traceurRuntime.getTemplateObject(["$ctx.popTry();"]))).append(T);var y=$traceurRuntime.spread(l.states,T.states,[new S(T.fallThroughState)]);l=(l=new j(l.startState,l.fallThroughState,y,[new _(T.startState,T.fallThroughState,l.getAllStateIDs(),l.exceptionBlocks)])).replaceStateId(T.startState,o)}return l},transformWhileStatement:function(e){var t,r,n,i,a,s,o=this.getLabels_(),u=this.clearCurrentLabel_();if(this.expressionNeedsStateMachine(e.condition))a=(r=this.expressionToStateMachine(e.condition)).machine,i=r.expression,s=this.transformAny(e.body);else{var l=$traceurRuntime.superGet(this,CPSTransformer.prototype,"transformWhileStatement").call(this,e);if(i=(n=l).condition,(s=n.body).type!==c)return l}var m=this.ensureTransformed_(s),p=m.fallThroughState,f=this.allocateState(),h=[],d=p;return a&&(d=(a=a.replaceStartState(p)).fallThroughState,(t=h).push.apply(t,$traceurRuntime.spread(a.states))),h.push(new T(d,m.startState,f,i)),this.addLoopBodyStates_(m,p,f,o,h),a=new j(p,f,h,m.exceptionBlocks),u&&(a=a.replaceStateId(p,u.continueState)),a},transformWithStatement:function(e){var t=$traceurRuntime.superGet(this,CPSTransformer.prototype,"transformWithStatement").call(this,e);if(t.body.type!==c)return t;throw new Error("Unreachable - with statement not allowed in strict mode/harmony")},generateMachineInnerFunction:function(e){var t=e.getEnclosingFinallyMap(),r=X(H("$ctx","state"),this.transformMachineStates(e,b.END_STATE,b.RETHROW_STATE,t));return C($traceurRuntime.getTemplateObject(["function($ctx) {\n      while (true) ","\n    }"]),r)},addTempVar:function(){var e=this.getTempIdentifier();return this.addMachineVariable(e),e},addMachineVariable:function(e){this.hoistVariablesTransformer_.addVariable(e)},transformCpsFunctionBody:function(e,r){var n,i,a=arguments[2],s=t.rename(e,"arguments","$arguments"),o=s!==e,u=this.hoistVariablesTransformer_.transformAny(s),l=this.transformAny(u);if(this.reporter.hadError())return e;i=(i=l.type!==c?this.statementsToStateMachine_(l.statements):new j(l.startState,l.fallThroughState,this.removeEmptyStates(l.states),l.exceptionBlocks)).replaceFallThroughState(b.END_STATE).replaceStartState(b.START_STATE);var m=[];return this.hoistVariablesTransformer_.hasFunctions()&&(n=m).push.apply(n,$traceurRuntime.spread(this.hoistVariablesTransformer_.getFunctions())),this.hoistVariablesTransformer_.hasVariables()&&m.push(this.hoistVariablesTransformer_.getVariableStatement()),o&&m.push(N($traceurRuntime.getTemplateObject(["var $arguments = arguments;"]))),a?m.push(N($traceurRuntime.getTemplateObject(["return ","(\n              ",",\n              ",", this);"]),r,this.generateMachineInnerFunction(i),a)):m.push(N($traceurRuntime.getTemplateObject(["return ","(\n              ",", this);"]),r,this.generateMachineInnerFunction(i))),U(m)},transformFunctionDeclaration:function(e){return e},transformFunctionExpression:function(e){return e},transformGetAccessor:function(e){return e},transformSetAccessor:function(e){return e},transformArrowFunction:function(e){return e},transformStateMachine:function(e){return e},statementToStateMachine_:function(e){var t;return t=e.type===i?e.statements:[e],this.statementsToStateMachine_(t)},statementsToStateMachine_:function(e){var t=this.allocateState(),r=this.allocateState();return this.stateToStateMachine_(new R(t,r,e),r)},stateToStateMachine_:function(e,t){return new j(e.id,t,[e],[])},transformMachineStates:function(e,t,r,n){for(var i=[],a=0;a<e.states.length;a++){var s=e.states[a],o=s.transformMachineState(n[s.id],t,this.reporter);null!==o&&i.push(o)}return this.addFinallyFallThroughDispatches(null,e.exceptionBlocks,i),i.push(V(P($traceurRuntime.getTemplateObject(["return $ctx.end()"])))),i},addFinallyFallThroughDispatches:function(e,t,r){for(var n=0;n<t.length;n++){var i=t[n];if(i.kind===F.Kind.FINALLY){var a=i;if(null!==e){for(var s=[],o=0,u=0;u<e.tryStates.length;u++){var c=e.tryStates[u],l=void 0;l=++o<e.tryStates.length?[]:P($traceurRuntime.getTemplateObject(["\n                  $ctx.state = $ctx.finallyFallThrough;\n                  $ctx.finallyFallThrough = ",";\n                  break;"]),b.INVALID_STATE),s.push(z(Y(c),l))}s.push(V([D(e.finallyState),B()])),r.push(z(Y(a.fallThroughState),[X(H("$ctx","finallyFallThrough"),s),B()]))}else r.push(z(Y(a.fallThroughState),P($traceurRuntime.getTemplateObject(["\n                      $ctx.state = $ctx.finallyFallThrough;\n                      break;"]))));this.addFinallyFallThroughDispatches(a,a.nestedTrys,r)}else this.addFinallyFallThroughDispatches(e,i.nestedTrys,r)}},transformVariableDeclarationList:function(e){return this.reporter.reportError(e.location,"Traceur: const/let declarations in a block containing a yield are not yet implemented"),e},maybeTransformStatement_:function(e){var t=new r(this.stateAllocator_).transformAny(e);return t!==e&&(t=this.transformAny(t)),t},ensureTransformed_:function(e){if(null===e)return null;var t=this.maybeTransformStatement_(e);return t.type===c?t:this.statementToStateMachine_(t)},ensureTransformedList_:function(e){for(var t=[],r=!1,n=0;n<e.length;n++){var i=e[n],a=this.maybeTransformStatement_(i);t.push(a),a.type===c&&(r=!0)}return r?this.transformStatementList_(t):this.statementsToStateMachine_(e)},expressionToStateMachine:function(e){var t=new y(this).transformAny(e),r=(new ee).transformAny(t).statements,n=r.pop();x(n.type===o);var i=n.expression;return r=$traceurRuntime.superGet(this,CPSTransformer.prototype,"transformList").call(this,r),{expression:i,machine:this.transformStatementList_(r)}}},{},e)}(A),ee=function(e){return $traceurRuntime.createClass((function NormalizeCommaExpressionToStatementTransformer(){$traceurRuntime.superConstructor(NormalizeCommaExpressionToStatementTransformer).apply(this,arguments)}),{transformCommaExpression:function(e){var t=this,r=e.expressions.map((function(e){return e.type===s?t.transformAny(e):G(e)}));return new m(e.location,r)},transformConditionalExpression:function(e){var t=this.transformAny(e.left),r=this.transformAny(e.right);return new h(e.location,e.condition,anonBlockToBlock(t),anonBlockToBlock(r))}},{},e)}(E);function anonBlockToBlock(e){return e.type===u?anonBlockToBlock(e.expression):new p(e.location,e.statements)}return{get CPSTransformer(){return Z}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/generator/EndState.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./State.js","traceur@0.0.111/src/codegeneration/generator/EndState.js")).State,t=function(t){function EndState(){$traceurRuntime.superConstructor(EndState).apply(this,arguments)}return $traceurRuntime.createClass(EndState,{replaceState:function(t,r){return new EndState(e.replaceStateId(this.id,t,r))},transform:function(t,r,n){return e.generateJump(t,r)}},{},t)}(e);return{get EndState(){return t}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/generator/AsyncTransformer.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./AwaitState.js","traceur@0.0.111/src/codegeneration/generator/AsyncTransformer.js")).AwaitState,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../../syntax/trees/ParseTrees.js","traceur@0.0.111/src/codegeneration/generator/AsyncTransformer.js")),r=t.BinaryExpression,n=t.ExpressionStatement,i=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./CPSTransformer.js","traceur@0.0.111/src/codegeneration/generator/AsyncTransformer.js")).CPSTransformer,a=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./EndState.js","traceur@0.0.111/src/codegeneration/generator/AsyncTransformer.js")).EndState,s=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./FallThroughState.js","traceur@0.0.111/src/codegeneration/generator/AsyncTransformer.js")).FallThroughState,o=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../ImportRuntimeTrait.js","traceur@0.0.111/src/codegeneration/generator/AsyncTransformer.js")).default,u=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../../syntax/trees/ParseTreeType.js","traceur@0.0.111/src/codegeneration/generator/AsyncTransformer.js")),c=u.AWAIT_EXPRESSION,l=u.BINARY_EXPRESSION,m=u.STATE_MACHINE,p=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../PlaceholderParser.js","traceur@0.0.111/src/codegeneration/generator/AsyncTransformer.js")),f=p.parseExpression,h=p.parseStatement,d=p.parseStatements,g=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../../syntax/trees/StateMachine.js","traceur@0.0.111/src/codegeneration/generator/AsyncTransformer.js")).StateMachine,T=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../FindInFunctionScope.js","traceur@0.0.111/src/codegeneration/generator/AsyncTransformer.js")).FindInFunctionScope,y=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../ParseTreeFactory.js","traceur@0.0.111/src/codegeneration/generator/AsyncTransformer.js")).createUndefinedExpression;var R,S=(R=T,$traceurRuntime.createClass((function AwaitFinder(){$traceurRuntime.superConstructor(AwaitFinder).apply(this,arguments)}),{visitAwaitExpression:function(e){this.found=!0}},{},R));var _=function(t){function AsyncTransformer(){$traceurRuntime.superConstructor(AsyncTransformer).apply(this,arguments)}return $traceurRuntime.createClass(AsyncTransformer,{expressionNeedsStateMachine:function(e){return null!==e&&function scopeContainsAwait(e){var t=new S;return t.visitAny(e),t.found}(e)},transformExpressionStatement:function(e){var t=e.expression;return t.type===c?this.transformAwaitExpression_(t):function isAwaitAssign(e){return e.type===l&&e.operator.isAssignmentOperator()&&e.right.type===c&&e.left.isLeftHandSideExpression()}(t)?this.transformAwaitAssign_(t):this.expressionNeedsStateMachine(t)?this.expressionToStateMachine(t).machine:$traceurRuntime.superGet(this,AsyncTransformer.prototype,"transformExpressionStatement").call(this,e)},transformAwaitExpression:function(e){throw new Error("Internal error")},transformAwaitExpression_:function(e){return this.transformAwait_(e,e.expression,null,null)},transformAwaitAssign_:function(e){return this.transformAwait_(e,e.right.expression,e.left,e.operator)},transformAwait_:function(t,i,a,o){var u,c,l;this.expressionNeedsStateMachine(i)?(c=(u=this.expressionToStateMachine(i)).expression,l=u.machine):c=this.transformAny(i);var m=this.allocateState(),p=this.allocateState(),h=a?this.allocateState():p,d=[];if(d.push(new e(m,h,c)),a){var T=new n(t.location,new r(t.location,a,o,f($traceurRuntime.getTemplateObject(["$ctx.value"]))));d.push(new s(h,p,[T]))}var y=new g(m,p,d,[]);return l&&(y=l.append(y)),y},transformFinally:function(e){var t=$traceurRuntime.superGet(this,AsyncTransformer.prototype,"transformFinally").call(this,e);return t.block.type!==m||this.reporter.reportError(e.location,"await not permitted within a finally block."),t},transformReturnStatement:function(e){var t,r,n;this.expressionNeedsStateMachine(e.expression)?(r=(t=this.expressionToStateMachine(e.expression)).expression,n=t.machine):r=e.expression||y();var i=this.allocateState(),o=this.allocateState(),u=new s(i,o,d($traceurRuntime.getTemplateObject(["$ctx.returnValue = ",""]),r)),c=new a(o),l=new g(i,this.allocateState(),[u,c],[]);return n&&(l=n.append(l)),l},createCompleteTask_:function(e){return h($traceurRuntime.getTemplateObject(["$ctx.resolve(",")"]),e)},transformAsyncBody:function(e){var t=this.getRuntimeExpression("asyncWrap");return this.transformCpsFunctionBody(e,t)}},{transformAsyncBody:function(e,t,r,n){return new AsyncTransformer(e,t,r).transformAsyncBody(n)}},t)}(o(i));return{get AsyncTransformer(){return _}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/generator/ForInTransformPass.js",[],(function(){"use strict";var e,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../../syntax/trees/ParseTreeType.js","traceur@0.0.111/src/codegeneration/generator/ForInTransformPass.js")),r=t.BLOCK,n=t.VARIABLE_DECLARATION_LIST,i=t.IDENTIFIER_EXPRESSION,a=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../../syntax/PredefinedName.js","traceur@0.0.111/src/codegeneration/generator/ForInTransformPass.js")),s=a.LENGTH,o=a.PUSH,u=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../TempVarTransformer.js","traceur@0.0.111/src/codegeneration/generator/ForInTransformPass.js")).TempVarTransformer,c=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../../syntax/TokenType.js","traceur@0.0.111/src/codegeneration/generator/ForInTransformPass.js")),l=c.BANG,m=c.IN,p=c.OPEN_ANGLE,f=c.PLUS_PLUS,h=c.VAR,d=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../ParseTreeFactory.js","traceur@0.0.111/src/codegeneration/generator/ForInTransformPass.js")),g=d.createArgumentList,T=d.createAssignmentStatement,y=d.createBinaryExpression,R=d.createBlock,S=d.createCallStatement,_=d.createContinueStatement,v=d.createEmptyArrayLiteral,E=d.createForInStatement,M=d.createForStatement,A=d.createIdentifierExpression,x=d.createIfStatement,$=d.createMemberExpression,C=d.createMemberLookupExpression,N=d.createNumberLiteral,P=d.createOperatorToken,b=d.createParenExpression,w=d.createPostfixExpression,j=d.createUnaryExpression,L=d.createVariableDeclarationList,I=d.createVariableStatement,O=(e=u,$traceurRuntime.createClass((function ForInTransformPass(){$traceurRuntime.superConstructor(ForInTransformPass).apply(this,arguments)}),{transformForInStatement:function(e){var t,a,u=[],c=this.transformAny(e.body);c.type===r?(t=u).push.apply(t,$traceurRuntime.spread(c.statements)):u.push(c);var d=[],O=this.getTempIdentifier();d.push(I(h,O,v()));var F=this.getTempIdentifier();d.push(I(h,F,e.collection));var k=this.getTempIdentifier();d.push(E(L(h,k,null),A(F),S($(O,o),g([A(k)]))));var D,B,z=this.getTempIdentifier(),V=C(A(O),A(z));if(e.initializer.type===n){var G=e.initializer;D=A(G.declarations[0].lvalue),B=I(G.declarationType,D.identifierToken,V)}else{if(e.initializer.type!==i)throw new Error("Invalid left hand side of for in loop");D=e.initializer,B=T(e.initializer,V)}var U=[];return U.push(B),U.push(x(j(P(l),b(y(D,P(m),A(F)))),_(),null)),(a=U).push.apply(a,$traceurRuntime.spread(u)),d.push(M(L(h,z,N(0)),y(A(z),P(p),$(O,s)),w(A(z),P(f)),R(U))),R(d)}},{},e));return{get ForInTransformPass(){return O}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/generator/YieldState.js",[],(function(){"use strict";var e,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./State.js","traceur@0.0.111/src/codegeneration/generator/YieldState.js")).State,r=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../ParseTreeFactory.js","traceur@0.0.111/src/codegeneration/generator/YieldState.js")).createReturnStatement,n=(e=t,$traceurRuntime.createClass((function YieldState(e,t,r){$traceurRuntime.superConstructor(YieldState).call(this,e),this.fallThroughState=t,this.expression=r}),{replaceState:function(e,r){return new this.constructor(t.replaceStateId(this.id,e,r),t.replaceStateId(this.fallThroughState,e,r),this.expression)},transform:function(e,n,i){return $traceurRuntime.spread(t.generateAssignState(e,this.fallThroughState),[r(this.expression)])}},{},e));return{get YieldState(){return n}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/generator/ReturnState.js",[],(function(){"use strict";var e,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../../semantics/util.js","traceur@0.0.111/src/codegeneration/generator/ReturnState.js")),r=t.isUndefined,n=t.isVoidExpression,i=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./YieldState.js","traceur@0.0.111/src/codegeneration/generator/ReturnState.js")).YieldState,a=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./State.js","traceur@0.0.111/src/codegeneration/generator/ReturnState.js")).State,s=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../PlaceholderParser.js","traceur@0.0.111/src/codegeneration/generator/ReturnState.js")).parseStatement,o=(e=i,$traceurRuntime.createClass((function ReturnState(){$traceurRuntime.superConstructor(ReturnState).apply(this,arguments)}),{transform:function(e,t,i){var o,u=this.expression,c=[];return!u||r(u)||n(u)||c.push(s($traceurRuntime.getTemplateObject(["$ctx.returnValue = ",""]),this.expression)),(o=c).push.apply(o,$traceurRuntime.spread(a.generateJump(e,t))),c}},{},e));return{get ReturnState(){return o}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/generator/GeneratorTransformer.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./CPSTransformer.js","traceur@0.0.111/src/codegeneration/generator/GeneratorTransformer.js")).CPSTransformer,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../../syntax/trees/ParseTreeType.js","traceur@0.0.111/src/codegeneration/generator/GeneratorTransformer.js")),r=t.BINARY_EXPRESSION,n=t.YIELD_EXPRESSION,i=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../../syntax/trees/ParseTrees.js","traceur@0.0.111/src/codegeneration/generator/GeneratorTransformer.js")),a=i.BinaryExpression,s=i.ExpressionStatement,o=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../FindInFunctionScope.js","traceur@0.0.111/src/codegeneration/generator/GeneratorTransformer.js")).FindInFunctionScope,u=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ReturnState.js","traceur@0.0.111/src/codegeneration/generator/GeneratorTransformer.js")).ReturnState,c=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../ImportRuntimeTrait.js","traceur@0.0.111/src/codegeneration/generator/GeneratorTransformer.js")).default,l=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./YieldState.js","traceur@0.0.111/src/codegeneration/generator/GeneratorTransformer.js")).YieldState,m=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../ParseTreeFactory.js","traceur@0.0.111/src/codegeneration/generator/GeneratorTransformer.js")),p=m.createIdentifierExpression,f=(m.createMemberExpression,m.createUndefinedExpression,$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../PlaceholderParser.js","traceur@0.0.111/src/codegeneration/generator/GeneratorTransformer.js"))),h=f.parseExpression,d=f.parseStatement,g=f.parseStatements;var T,y=(T=o,$traceurRuntime.createClass((function YieldFinder(){$traceurRuntime.superConstructor(YieldFinder).apply(this,arguments)}),{visitYieldExpression:function(e){this.found=!0}},{},T));var R=function(e){function GeneratorTransformer(e,t,r){$traceurRuntime.superConstructor(GeneratorTransformer).call(this,e,t,r),this.shouldAppendThrowCloseState_=!0}return $traceurRuntime.createClass(GeneratorTransformer,{expressionNeedsStateMachine:function(e){return null!==e&&function scopeContainsYield(e){var t=new y;return t.visitAny(e),t.found}(e)},transformYieldExpression_:function(e){var t,r,n;if(this.expressionNeedsStateMachine(e.expression)?(r=(t=this.expressionToStateMachine(e.expression)).expression,n=t.machine):r=this.transformAny(e.expression),e.isYieldFor)return this.transformYieldForExpression_(r,n);var i=this.allocateState(),a=this.allocateState(),s=this.stateToStateMachine_(new l(i,a,r),a);return n&&(s=n.append(s)),this.shouldAppendThrowCloseState_&&(s=s.append(this.createThrowCloseState_())),s},transformYieldForExpression_:function(e){var t=arguments[1],r=this.getTempIdentifier();this.addMachineVariable(r);var n=p(r),i=this.getTempIdentifier();this.addMachineVariable(i);var a=p(i),s=g($traceurRuntime.getTemplateObject(["\n        "," = $ctx.wrapYieldStar(","[Symbol.iterator]());\n        // received = void 0;\n        $ctx.sent = void 0;\n        // send = true; // roughly equivalent\n        $ctx.action = 'next';\n\n        for (;;) {\n          "," = ","[$ctx.action]($ctx.sentIgnoreThrow);\n          if (",".done) {\n            $ctx.sent = ",".value;\n            break;\n          }\n          yield ",".value;\n        }"]),n,e,a,n,a,a,a),o=this.shouldAppendThrowCloseState_;this.shouldAppendThrowCloseState_=!1,s=this.transformList(s);var u=this.transformStatementList_(s);return this.shouldAppendThrowCloseState_=o,t&&(u=t.append(u)),u},transformYieldExpression:function(e){return this.reporter.reportError(e.location,"Only 'a = yield b' and 'var a = yield b' currently supported."),e},transformYieldAssign_:function(e){var t=this.shouldAppendThrowCloseState_;this.shouldAppendThrowCloseState_=!1;var r=this.transformYieldExpression_(e.right),n=this.transformAny(e.left),i=e.right.isYieldFor?h($traceurRuntime.getTemplateObject(["$ctx.sentIgnoreThrow"])):h($traceurRuntime.getTemplateObject(["$ctx.sent"])),o=new s(e.location,new a(e.location,n,e.operator,i)),u=this.statementToStateMachine_(o);return this.shouldAppendThrowCloseState_=t,r.append(u)},createThrowCloseState_:function(){return this.statementToStateMachine_(d($traceurRuntime.getTemplateObject(["$ctx.maybeThrow()"])))},transformExpressionStatement:function(e){var t=e.expression;return t.type===n?this.transformYieldExpression_(t):function isYieldAssign(e){return e.type===r&&e.operator.isAssignmentOperator()&&e.right.type===n&&e.left.isLeftHandSideExpression()}(t)?this.transformYieldAssign_(t):this.expressionNeedsStateMachine(t)?this.expressionToStateMachine(t).machine:$traceurRuntime.superGet(this,GeneratorTransformer.prototype,"transformExpressionStatement").call(this,e)},transformAwaitStatement:function(e){return this.reporter.reportError(e.location,"Generator function may not have an await statement."),e},transformReturnStatement:function(e){var t,r,n;this.expressionNeedsStateMachine(e.expression)?(r=(t=this.expressionToStateMachine(e.expression)).expression,n=t.machine):r=e.expression;var i=this.allocateState(),a=this.allocateState(),s=this.stateToStateMachine_(new u(i,a,this.transformAny(r)),a);return n?n.append(s):s},transformGeneratorBody:function(e,t){var r=this.getRuntimeExpression("createGeneratorInstance");return this.transformCpsFunctionBody(e,r,t)}},{transformGeneratorBody:function(e,t,r,n,i){return new GeneratorTransformer(e,t,r).transformGeneratorBody(n,i)}},e)}(c(e));return{get GeneratorTransformer(){return R}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/GeneratorTransformPass.js",[],(function(){"use strict";var e,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ArrowFunctionTransformer.js","traceur@0.0.111/src/codegeneration/GeneratorTransformPass.js")).ArrowFunctionTransformer,r=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./generator/AsyncTransformer.js","traceur@0.0.111/src/codegeneration/GeneratorTransformPass.js")).AsyncTransformer,n=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./generator/ForInTransformPass.js","traceur@0.0.111/src/codegeneration/GeneratorTransformPass.js")).ForInTransformPass,i=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./generator/GeneratorTransformer.js","traceur@0.0.111/src/codegeneration/GeneratorTransformPass.js")).GeneratorTransformer,a=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./PlaceholderParser.js","traceur@0.0.111/src/codegeneration/GeneratorTransformPass.js")),s=a.parseExpression,o=a.parseStatement,u=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./TempVarTransformer.js","traceur@0.0.111/src/codegeneration/GeneratorTransformPass.js")).TempVarTransformer,c=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ImportRuntimeTrait.js","traceur@0.0.111/src/codegeneration/GeneratorTransformPass.js")).default,l=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./FindInFunctionScope.js","traceur@0.0.111/src/codegeneration/GeneratorTransformPass.js")).FindInFunctionScope,m=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTrees.js","traceur@0.0.111/src/codegeneration/GeneratorTransformPass.js")),p=m.AnonBlock,f=m.FunctionDeclaration,h=m.FunctionExpression,d=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeFactory.js","traceur@0.0.111/src/codegeneration/GeneratorTransformPass.js")),g=d.createBindingIdentifier,T=d.createIdentifierExpression,y=d.createIdentifierToken,R=(e=l,$traceurRuntime.createClass((function ForInFinder(){$traceurRuntime.superConstructor(ForInFinder).apply(this,arguments)}),{visitForInStatement:function(e){this.found=!0}},{},e));function needsTransform(e,t){return t.generators&&e.isGenerator()||t.asyncFunctions&&e.isAsyncFunction()}var S=function(e){function GeneratorTransformPass(e,t,r){$traceurRuntime.superConstructor(GeneratorTransformPass).call(this,e,t,r),this.tranformOptions_=r.transformOptions,this.inBlock_=!1}return $traceurRuntime.createClass(GeneratorTransformPass,{transformFunctionDeclaration:function(e){return needsTransform(e,this.tranformOptions_)?e.isGenerator()?this.transformGeneratorDeclaration_(e):this.transformFunction_(e,f,null):$traceurRuntime.superGet(this,GeneratorTransformPass.prototype,"transformFunctionDeclaration").call(this,e)},transformGeneratorDeclaration_:function(e){var t=T(e.name.identifierToken),r=this.getRuntimeExpression("initGeneratorFunction"),n=s($traceurRuntime.getTemplateObject(["","(",")"]),r,t),i=T(this.inBlock_?this.getTempIdentifier():this.addTempVar(n)),a=this.transformFunction_(e,f,i);return this.inBlock_?new p(null,[a,o($traceurRuntime.getTemplateObject(["var "," = ",""]),i,n)]):a},transformFunctionExpression:function(e){return needsTransform(e,this.tranformOptions_)?e.isGenerator()?this.transformGeneratorExpression_(e):this.transformFunction_(e,h,null):$traceurRuntime.superGet(this,GeneratorTransformPass.prototype,"transformFunctionExpression").call(this,e)},transformGeneratorExpression_:function(e){var t;e.name?t=e.name.identifierToken:(t=y(this.getTempIdentifier()),e=new h(e.location,g(t),e.functionKind,e.parameterList,e.typeAnnotation,e.annotations,e.body));var r=this.transformFunction_(e,h,T(t)),n=this.getRuntimeExpression("initGeneratorFunction");return s($traceurRuntime.getTemplateObject(["","(",")"]),n,r)},transformFunction_:function(e,t,a){var s=this,o=$traceurRuntime.superGet(this,GeneratorTransformPass.prototype,"transformAny").call(this,e.body),u=new R;if(u.visitAny(o),u.found&&(o=new n(this.identifierGenerator,this.reporter,this.options).transformAny(o)),this.tranformOptions_.generators&&e.isGenerator()){var c=new i(this.identifierGenerator,this.reporter,this.options);o=c.transformGeneratorBody(o,a),c.requiredNames.forEach((function(e){s.addImportedName(e)}))}else if(this.tranformOptions_.asyncFunctions&&e.isAsyncFunction()){var l=new r(this.identifierGenerator,this.reporter,this.options);o=l.transformAsyncBody(o,a),l.requiredNames.forEach((function(e){s.addImportedName(e)}))}return new t(e.location,e.name,null,e.parameterList,e.typeAnnotation||null,e.annotations||null,o)},transformArrowFunction:function(e){return e.isAsyncFunction()?this.transformAny(t.transform(this,e)):$traceurRuntime.superGet(this,GeneratorTransformPass.prototype,"transformArrowFunction").call(this,e)},transformBlock:function(e){var t=this.inBlock_;this.inBlock_=!0;var r=$traceurRuntime.superGet(this,GeneratorTransformPass.prototype,"transformBlock").call(this,e);return this.inBlock_=t,r}},{},e)}(c(u));return{get GeneratorTransformPass(){return S}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/InlineModuleTransformer.js",[],(function(){"use strict";var e,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/TokenType.js","traceur@0.0.111/src/codegeneration/InlineModuleTransformer.js")).VAR,r=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ModuleTransformer.js","traceur@0.0.111/src/codegeneration/InlineModuleTransformer.js")).ModuleTransformer,n=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeFactory.js","traceur@0.0.111/src/codegeneration/InlineModuleTransformer.js")),i=n.createBindingIdentifier,a=n.createEmptyStatement,s=n.createFunctionBody,o=n.createImmediatelyInvokedFunctionExpression,u=n.createVariableStatement,c=0,l=(e=r,$traceurRuntime.createClass((function InlineModuleTransformer(){$traceurRuntime.superConstructor(InlineModuleTransformer).apply(this,arguments)}),{wrapModule:function(e){var r=this.moduleName||"anon_"+ ++c,n=this.getTempVarNameForModuleName(r),i=s(e),a=o(i);return[u(t,n,a)]},transformNamedExport:function(e){return a()},transformModuleSpecifier:function(e){return i(this.getTempVarNameForModuleSpecifier(e))}},{},e));return{get InlineModuleTransformer(){return l}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/InstantiateModuleTransformer.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTrees.js","traceur@0.0.111/src/codegeneration/InstantiateModuleTransformer.js")),t=e.AnonBlock,r=e.ArrayLiteral,n=e.ClassExpression,i=e.CommaExpression,a=e.ExpressionStatement,s=e.VariableDeclaration,o=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTreeType.js","traceur@0.0.111/src/codegeneration/InstantiateModuleTransformer.js")),u=o.ANON_BLOCK,c=o.CLASS_DECLARATION,l=o.FUNCTION_DECLARATION,m=o.IDENTIFIER_EXPRESSION,p=o.IMPORT_SPECIFIER_SET,f=o.NAME_SPACE_IMPORT,h=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/ParseTreeVisitor.js","traceur@0.0.111/src/codegeneration/InstantiateModuleTransformer.js")).ParseTreeVisitor,d=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ScopeTransformer.js","traceur@0.0.111/src/codegeneration/InstantiateModuleTransformer.js")).ScopeTransformer,g=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeFactory.js","traceur@0.0.111/src/codegeneration/InstantiateModuleTransformer.js")),T=g.createEmptyParameterList,y=g.createFunctionBody,R=g.createFunctionExpression,S=g.createIdentifierExpression,_=g.createObjectLiteralForDescriptor,v=g.createUseStrictDirective,E=g.createVariableDeclarationList,M=g.createVariableStatement,A=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ModuleTransformer.js","traceur@0.0.111/src/codegeneration/InstantiateModuleTransformer.js")).ModuleTransformer,x=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/TokenType.js","traceur@0.0.111/src/codegeneration/InstantiateModuleTransformer.js")),$=x.MINUS_MINUS,C=x.PLUS_PLUS,N=x.VAR,P=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./PlaceholderParser.js","traceur@0.0.111/src/codegeneration/InstantiateModuleTransformer.js")),b=P.parseExpression,w=P.parseStatement,j=P.parseStatements,L=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./HoistVariablesTransformer.js","traceur@0.0.111/src/codegeneration/InstantiateModuleTransformer.js")).default;var I,O=(I=h,$traceurRuntime.createClass((function ExportBindingsVisitor(){$traceurRuntime.superConstructor(ExportBindingsVisitor).call(this),this.bindings=[]}),{visitVariableDeclaration:function(e){this.visitAny(e.lvalue)},visitBindingIdentifier:function(e){this.bindings.push(e)},visitBindingElement:function(e){this.visitAny(e.binding)}},{},I)),F=function(e){return $traceurRuntime.createClass((function DeclarationExtractionTransformer(){$traceurRuntime.superConstructor(DeclarationExtractionTransformer).call(this),this.declarations_=[]}),{getDeclarationStatements:function(){return function flattenAnonBlocks(e){for(var t,r=[],n=0;n<e.length;n++){var i=e[n];i.type===u?(t=r).push.apply(t,$traceurRuntime.spread(i.statements)):r.push(i)}return r}($traceurRuntime.spread([this.getVariableStatement()],this.declarations_))},addDeclaration:function(e){this.declarations_.push(e)},transformFunctionDeclaration:function(e){return this.addDeclaration(e),new t(null,[])},transformClassDeclaration:function(e){return this.addVariable(e.name.identifierToken.value),e=new n(e.location,e.name,e.superClass,e.elements,e.annotations,e.typeParameters),w($traceurRuntime.getTemplateObject([""," = ",""]),e.name.identifierToken,e)}},{},e)}(L),k=function(e){function ModuleNameIdentifierTransformer(){$traceurRuntime.superConstructor(ModuleNameIdentifierTransformer).call(this,"__moduleName"),this.usesModuleName=!1}return $traceurRuntime.createClass(ModuleNameIdentifierTransformer,{transformIdentifierExpression:function(e){return"__moduleName"===e.identifierToken.value?(this.usesModuleName=!0,b($traceurRuntime.getTemplateObject(["$__moduleContext.id"]))):$traceurRuntime.superGet(this,ModuleNameIdentifierTransformer.prototype,"transformIdentifierExpression").call(this,e)}},{},e)}(d),D=function(e){function InsertBindingAssignmentTransformer(e,t){$traceurRuntime.superConstructor(InsertBindingAssignmentTransformer).call(this,t),this.bindingName_=t,this.exportName_=e}return $traceurRuntime.createClass(InsertBindingAssignmentTransformer,{matchesBindingName_:function(e){return e.type===m&&e.identifierToken.value===this.bindingName_},transformUnaryExpression:function(e){if(!this.matchesBindingName_(e.operand))return $traceurRuntime.superGet(this,InsertBindingAssignmentTransformer.prototype,"transformUnaryExpression").call(this,e);var t=e.operator.type;if(t!==C&&t!==$)return $traceurRuntime.superGet(this,InsertBindingAssignmentTransformer.prototype,"transformUnaryExpression").call(this,e);var r=this.transformAny(e.operand);return r!==e.operand&&(e=new UnaryExpression(e.location,e.operator,r)),b($traceurRuntime.getTemplateObject(["$__export(",", ",")"]),this.exportName_,e)},transformPostfixExpression:function(e){if(e=$traceurRuntime.superGet(this,InsertBindingAssignmentTransformer.prototype,"transformPostfixExpression").call(this,e),!this.matchesBindingName_(e.operand))return e;switch(e.operator.type){case C:return b($traceurRuntime.getTemplateObject(["($__export(",", "," + 1), ",")"]),this.exportName_,e.operand,e);case $:return b($traceurRuntime.getTemplateObject(["($__export(",", "," - 1), ",")"]),this.exportName_,e.operand,e)}return e},transformBinaryExpression:function(e){return(e=$traceurRuntime.superGet(this,InsertBindingAssignmentTransformer.prototype,"transformBinaryExpression").call(this,e)).operator.isAssignmentOperator()&&this.matchesBindingName_(e.left)?b($traceurRuntime.getTemplateObject(["$__export(",", ",")}"]),this.exportName_,e):e}},{},e)}(d),B=function(e){function InstantiateModuleTransformer(e,t){var r=arguments[2];$traceurRuntime.superConstructor(InstantiateModuleTransformer).call(this,e,t,r),this.anonymousModule=r&&!r.bundle&&!0!==r.moduleName,this.usesModuleName=!1,this.inExport_=!1,this.curDepIndex_=null,this.dependencies=[],this.externalExportBindings=[],this.importBindings=[],this.localExportBindings=[],this.functionDeclarations=[],this.moduleBindings=[],this.exportStarBindings=[]}return $traceurRuntime.createClass(InstantiateModuleTransformer,{getModuleName:function(e){return this.anonymousModule?null:e.moduleName},moduleProlog:function(){return[]},wrapModule:function(e){return e=[v()].concat(e),this.usesModuleName?this.moduleName?j($traceurRuntime.getTemplateObject(["System.register(",",\n            ",", function($__export, $__moduleContext) {\n              ","\n            });"]),this.moduleName,this.dependencies,e):j($traceurRuntime.getTemplateObject(["System.register(",", function($__export, $__moduleContext) {\n            ","\n          });"]),this.dependencies,e):this.moduleName?j($traceurRuntime.getTemplateObject(["System.register(",",\n          ",", function($__export) {\n            ","\n          });"]),this.moduleName,this.dependencies,e):j($traceurRuntime.getTemplateObject(["System.register(",", function($__export) {\n          ","\n        });"]),this.dependencies,e)},addExportStatement:function(e){var t=this,n=new F,i=new k;e=i.transformList(e),i.usesModuleName&&(this.usesModuleName=!0),this.localExportBindings.forEach((function(t){e=new D(t.exportName,t.localName).transformList(e)}));var a=n.transformList(e),s=R(T(),y(a)),o=n.getDeclarationStatements(),u=this.dependencies.map((function(e,r){var n=t.importBindings[r],i=t.externalExportBindings[r],a=t.exportStarBindings[r],s=t.moduleBindings[r],u=[];if(n&&n.forEach((function(e){u.push(w($traceurRuntime.getTemplateObject([""," = $__m.",";"]),S(e.variableName),e.exportName))})),i){var c=Object.create(null);i.forEach((function(e){var t=e,r=t.exportName,n=t.importName;c[r]=null===n?b($traceurRuntime.getTemplateObject(["$__m"])):b($traceurRuntime.getTemplateObject(["$__m.",""]),n)})),u.push(w($traceurRuntime.getTemplateObject(["$__export(",")"]),_(c)))}if(s&&u.push(w($traceurRuntime.getTemplateObject([""," = $__m;"]),S(s))),a){u=u.concat(j($traceurRuntime.getTemplateObject(["\n          var exportObj = Object.create(null);\n          Object.keys($__m).forEach(function(p) {\n            if (p !== 'default' && !$__exportNames[p])\n              exportObj[p] = $__m[p];\n          });\n          $__export(exportObj);\n        "])));var l={};t.localExportBindings.concat(t.externalExportBindings).forEach((function(e){l[e.exportName]=!0})),o.push(w($traceurRuntime.getTemplateObject(["\n          var $__exportNames = ",";\n        "]),_(l)))}return u.length?b($traceurRuntime.getTemplateObject(["function($__m) {\n          ","\n        }"]),u):b($traceurRuntime.getTemplateObject(["function($__m) {}"]))}));return(o=o.concat(this.functionDeclarations.map((function(e){return w($traceurRuntime.getTemplateObject(["$__export(",", ",")"]),e.exportName,S(e.functionName))})))).push(w($traceurRuntime.getTemplateObject(["return {\n      setters: ",",\n      execute: ","\n    }"]),new r(null,u),s)),o},addLocalExportBinding:function(e){var t=void 0!==arguments[1]?arguments[1]:e;this.localExportBindings.push({exportName:e,localName:t})},addImportBinding:function(e,t,r){this.importBindings[e]=this.importBindings[e]||[],this.importBindings[e].push({variableName:t,exportName:r})},addExternalExportBinding:function(e,t,r){this.externalExportBindings[e]=this.externalExportBindings[e]||[],this.externalExportBindings[e].push({exportName:t,importName:r})},addExportStarBinding:function(e){this.exportStarBindings[e]=!0},addModuleBinding:function(e,t){this.moduleBindings[e]=t},addExportFunction:function(e){var t=void 0!==arguments[1]?arguments[1]:e;this.functionDeclarations.push({exportName:e,functionName:t})},getOrCreateDependencyIndex:function(e){var t=e.token.processedValue,r=this.dependencies.indexOf(t);return-1===r&&(r=this.dependencies.length,this.dependencies.push(t)),r},transformExportDeclaration:function(e){this.inExport_=!0,e.declaration.moduleSpecifier?this.curDepIndex_=this.getOrCreateDependencyIndex(e.declaration.moduleSpecifier):this.curDepIndex_=null;var t=this.transformAny(e.declaration);return this.inExport_=!1,t},transformVariableStatement:function(e){if(!this.inExport_)return $traceurRuntime.superGet(this,InstantiateModuleTransformer.prototype,"transformVariableStatement").call(this,e);this.inExport_=!1;var r=new O;r.visitAny(e);for(var n=[],i=0;i<r.bindings.length;i++){var a=r.bindings[i].identifierToken,s=a.value;this.addLocalExportBinding(s),n.push(w($traceurRuntime.getTemplateObject(["$__export(",", ",")"]),s,S(a)))}return n.unshift($traceurRuntime.superGet(this,InstantiateModuleTransformer.prototype,"transformAny").call(this,e)),new t(null,n)},transformExportStar:function(e){return this.inExport_=!1,this.addExportStarBinding(this.curDepIndex_),new t(null,[])},transformClassDeclaration:function(e){if(!this.inExport_)return $traceurRuntime.superGet(this,InstantiateModuleTransformer.prototype,"transformClassDeclaration").call(this,e);this.inExport_=!1;var r=e.name.identifierToken,n=r.value;this.addLocalExportBinding(n);var i=[$traceurRuntime.superGet(this,InstantiateModuleTransformer.prototype,"transformClassDeclaration").call(this,e),w($traceurRuntime.getTemplateObject(["$__export(",", ",")"]),n,S(r))];return new t(null,i)},transformFunctionDeclaration:function(e){if(this.inExport_){var t=e.name.getStringValue();this.addLocalExportBinding(t),this.addExportFunction(t),this.inExport_=!1}return $traceurRuntime.superGet(this,InstantiateModuleTransformer.prototype,"transformFunctionDeclaration").call(this,e)},transformNamedExport:function(e){this.transformAny(e.moduleSpecifier);var r=this.transformAny(e.exportClause);return null===this.curDepIndex_?r:new t(null,[])},transformImportDeclaration:function(e){this.curDepIndex_=this.getOrCreateDependencyIndex(e.moduleSpecifier);this.transformAny(e.moduleSpecifier);if(!e.importClause)return new t(null,[]);var r=this.transformAny(e.importClause);if(e.importClause.type===f){var n=e.importClause.binding.binding,i=n.getStringValue();return this.addModuleBinding(this.curDepIndex_,i),w($traceurRuntime.getTemplateObject(["var ",";"]),n)}if(e.importClause.type===p)return r;var a=e.importClause.binding.getStringValue();return this.addImportBinding(this.curDepIndex_,a,"default"),w($traceurRuntime.getTemplateObject(["var ",";"]),a)},transformImportSpecifierSet:function(e){return M(E(N,this.transformList(e.specifiers)))},transformExportDefault:function(e){this.inExport_=!1;var t=this.transformAny(e.expression);return this.addLocalExportBinding("default"),t.type===c&&(t=new n(t.location,t.name,t.superClass,t.elements,t.annotations,t.typeParameters)),t.type===l?(this.addExportFunction("default",t.name.identifierToken.value),t):w($traceurRuntime.getTemplateObject(["$__export('default', ",");"]),t)},transformExportSpecifier:function(e){var t,r;if(e.rhs?(t=e.rhs.value,r=e.lhs.value):r=t=e.lhs.value,null===this.curDepIndex_)return this.addLocalExportBinding(t,r),b($traceurRuntime.getTemplateObject(["$__export(",", ",");"]),t,S(r));this.addExternalExportBinding(this.curDepIndex_,t,r)},transformExportSpecifierSet:function(e){var t=this.transformList(e.specifiers);return new a(e.location,new i(e.location,t.filter((function(e){return e}))))},transformNameSpaceExport:function(e){return this.addExternalExportBinding(this.curDepIndex_,e.name.value,null),e},transformForwardDefaultExport:function(e){return this.addExternalExportBinding(this.curDepIndex_,e.name.value,"default"),e},transformImportSpecifier:function(e){var t=e.binding.binding,r=t.identifierToken,n=(e.name||r).value;return this.addImportBinding(this.curDepIndex_,r.value,n),new s(e.location,t,null,null)},transformModuleSpecifier:function(e){return this.curDepIndex_=this.getOrCreateDependencyIndex(e),e}},{},e)}(A);return{get InstantiateModuleTransformer(){return B}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/SpreadPropertiesTransformer.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTreeType.js","traceur@0.0.111/src/codegeneration/SpreadPropertiesTransformer.js")).SPREAD_EXPRESSION,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeFactory.js","traceur@0.0.111/src/codegeneration/SpreadPropertiesTransformer.js")),r=t.createObjectLiteral,n=t.createArgumentList,i=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./PlaceholderParser.js","traceur@0.0.111/src/codegeneration/SpreadPropertiesTransformer.js")).parseExpression;var a=function(t){function SpreadPropertiesTransformer(e,t,r){$traceurRuntime.superConstructor(SpreadPropertiesTransformer).call(this,e,t,r),this.options=r}return $traceurRuntime.createClass(SpreadPropertiesTransformer,{transformObjectLiteral:function(t){return function hasSpread(t){return t.some((function(t){return t&&t.type===e}))}(t.propertyNameAndValues)?spreadProperties(this.transformList(t.propertyNameAndValues),this):$traceurRuntime.superGet(this,SpreadPropertiesTransformer.prototype,"transformObjectLiteral").call(this,t)}},{},t)}((0,$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ImportRuntimeTrait.js","traceur@0.0.111/src/codegeneration/SpreadPropertiesTransformer.js")).default)($traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeTransformer.js","traceur@0.0.111/src/codegeneration/SpreadPropertiesTransformer.js")).ParseTreeTransformer));function spreadProperties(t,a){for(var s=[],o=null,u=0;u<t.length;u++){var c=t[u];c.type===e?(o&&(s.push(r(o)),o=null),s.push(c.expression)):(o||(o=[]),o.push(c))}o&&s.push(r(o));var l=a.getRuntimeExpression("spreadProperties");return i($traceurRuntime.getTemplateObject(["","(",")"]),l,n(s))}return{get SpreadPropertiesTransformer(){return a},get spreadProperties(){return spreadProperties}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/JsxTransformer.js",[],(function(){"use strict";var e,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTreeType.js","traceur@0.0.111/src/codegeneration/JsxTransformer.js")),r=t.JSX_ELEMENT,n=t.JSX_PLACEHOLDER,i=t.JSX_SPREAD_ATTRIBUTE,a=t.JSX_TEXT,s=t.LITERAL_EXPRESSION,o=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTrees.js","traceur@0.0.111/src/codegeneration/JsxTransformer.js")),u=(o.JsxText,o.LiteralExpression),c=o.LiteralPropertyName,l=o.SpreadExpression,m=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/LiteralToken.js","traceur@0.0.111/src/codegeneration/JsxTransformer.js")).LiteralToken,p=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeTransformer.js","traceur@0.0.111/src/codegeneration/JsxTransformer.js")).ParseTreeTransformer,f=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/TokenType.js","traceur@0.0.111/src/codegeneration/JsxTransformer.js")).STRING,h=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeFactory.js","traceur@0.0.111/src/codegeneration/JsxTransformer.js")),d=h.createArgumentList,g=h.createIdentifierExpression,T=h.createIdentifierToken,y=h.createMemberExpression,R=h.createNullLiteral,S=h.createObjectLiteral,_=h.createPropertyNameAssignment,v=h.createStringLiteral,E=h.createStringLiteralToken,M=h.createTrueLiteral,A=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./PlaceholderParser.js","traceur@0.0.111/src/codegeneration/JsxTransformer.js")).parseExpression,x=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./SpreadPropertiesTransformer.js","traceur@0.0.111/src/codegeneration/JsxTransformer.js")).spreadProperties,$=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ImportRuntimeTrait.js","traceur@0.0.111/src/codegeneration/JsxTransformer.js")).default,C=(e=$(p),$traceurRuntime.createClass((function JsxTransformer(e,t,r){$traceurRuntime.superConstructor(JsxTransformer).call(this),this.options=r,this.jsxFunction_=null}),{getJsxFunction_:function(){if(!this.jsxFunction_){var e=this.options.jsx;this.jsxFunction_=A("string"==typeof e?[e]:$traceurRuntime.getTemplateObject(["React.createElement"]))}return this.jsxFunction_},transformJsxElement:function(e){var t=this.transformAny(e.name),r=this.transformJsxAttributes_(e),n=this.transformJsxChildren_(e.children),i=d($traceurRuntime.spread([t,r],n));return A($traceurRuntime.getTemplateObject(["","(",")"]),this.getJsxFunction_(),i)},transformJsxAttributes_:function(e){var t=this.transformList(e.attributes);return 0===t.length?R():e.attributes.some((function(e){return e.type===i}))?x(t,this):S(t)},transformJsxElementName:function(e){if(1===e.names.length){var t=e.names[0].value;return t[0]===t[0].toUpperCase()?g(t):v(t)}var r=e.names.map(jsxIdentifierToToken),n=r[0];return n.type===f&&(r[0]=new u(n.location,n)),y.apply(void 0,$traceurRuntime.spread(r))},transformJsxAttribute:function(e){var t,r=new c(e.name.location,jsxIdentifierToToken(e.name));if(null===e.value)t=M();else if(e.value.type===s){var n=e.value.literalToken,i=n.value,a=n.location,o=new m(f,function normalizeAttributeValue(e){return JSON.stringify(e.slice(1,-1).replace(/\n\s+/g," "))}(i),a);t=new u(a,o)}else t=this.transformAny(e.value);return _(r,t)},transformJsxPlaceholder:function(e){return this.transformAny(e.expression)},transformJsxSpreadAttribute:function(e){return new l(e.location,this.transformAny(e.expression))},transformJsxText:function(e){return v(e.value.value)},transformJsxChildren_:function(e){var t=this,i=[];return e.forEach((function(e){var s;switch(e.type){case r:s=t.transformAny(e);break;case n:if(null===e.expression)return;s=t.transformAny(e);break;case a:var o=e.value.value;if(o=o.replace(/\t/g," "),/[\n\r]/.test(o)){if(""===(o=(o=o.replace(/^[ \t]*[\n\r]\s*/,"")).replace(/[ \t]*[\n\r]\s*$/,"")))return;s=v(o)}else s=v(o)}i.push(s)})),i}},{},e));function jsxIdentifierToToken(e){var t=e.value;return-1!==t.indexOf("-")?E(t):T(t)}return{get JsxTransformer(){return C}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/MemberVariableConstructorTransformer.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTrees.js","traceur@0.0.111/src/codegeneration/MemberVariableConstructorTransformer.js")).Method,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTreeType.js","traceur@0.0.111/src/codegeneration/MemberVariableConstructorTransformer.js")).SUPER_EXPRESSION,r=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeTransformer.js","traceur@0.0.111/src/codegeneration/MemberVariableConstructorTransformer.js")).ParseTreeTransformer,n=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeFactory.js","traceur@0.0.111/src/codegeneration/MemberVariableConstructorTransformer.js")),i=n.createCommaExpression,a=n.createExpressionStatement,s=n.createFunctionBody,o=n.createParenExpression,u=n.createThisExpression,c=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./PrependStatements.js","traceur@0.0.111/src/codegeneration/MemberVariableConstructorTransformer.js")).prependStatements;function transformConstructor(t,r,n){if(n)return new l(r).transformAny(t);var i=t.body.statements,o=a(r);return i=c(i,o),new e(t.location,!1,t.functionKind,t.name,t.parameterList,t.typeAnnotation,t.annotations,s(i),t.debugName)}var l=function(e){function SuperCallTransformer(e){$traceurRuntime.superConstructor(SuperCallTransformer).call(this),this.expression=e}return $traceurRuntime.createClass(SuperCallTransformer,{transformCallExpression:function(e){if(e.operand.type===t){var r=u();return o(i([e,this.expression,r]))}return $traceurRuntime.superGet(this,SuperCallTransformer.prototype,"transformCallExpression").call(this,e)},transformClassDeclaration:function(e){return e},transformClassExpression:function(e){return e}},{},e)}(r);return{get transformConstructor(){return transformConstructor}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/MemberVariableTransformer.js",[],(function(){"use strict";var e,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/PredefinedName.js","traceur@0.0.111/src/codegeneration/MemberVariableTransformer.js")).CONSTRUCTOR,r=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTrees.js","traceur@0.0.111/src/codegeneration/MemberVariableTransformer.js")),n=r.AnonBlock,i=r.ClassDeclaration,a=r.ClassExpression,s=r.FormalParameterList,o=r.IdentifierExpression,u=r.Method,c=r.ReturnStatement,l=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTreeType.js","traceur@0.0.111/src/codegeneration/MemberVariableTransformer.js")),m=l.GET_ACCESSOR,p=l.METHOD,f=l.PROPERTY_VARIABLE_DECLARATION,h=l.SET_ACCESSOR,d=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./TempVarTransformer.js","traceur@0.0.111/src/codegeneration/MemberVariableTransformer.js")).TempVarTransformer,g=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeFactory.js","traceur@0.0.111/src/codegeneration/MemberVariableTransformer.js")),T=g.createCommaExpression,y=g.createFunctionBody,R=g.createIdentifierToken,S=g.createImmediatelyInvokedFunctionExpression,_=g.createLiteralPropertyName,v=g.createRestParameter,E=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./PlaceholderParser.js","traceur@0.0.111/src/codegeneration/MemberVariableTransformer.js")),M=E.parsePropertyDefinition,A=E.parseStatement,x=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./PlaceholderParser.js","traceur@0.0.111/src/codegeneration/MemberVariableTransformer.js")).parseExpression,$=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./PrependStatements.js","traceur@0.0.111/src/codegeneration/MemberVariableTransformer.js")).prependStatements,C=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../staticsemantics/PropName.js","traceur@0.0.111/src/codegeneration/MemberVariableTransformer.js")).propName,N=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./MemberVariableConstructorTransformer.js","traceur@0.0.111/src/codegeneration/MemberVariableTransformer.js")).transformConstructor,P=(e=d,$traceurRuntime.createClass((function MemberVariableTransformer(){$traceurRuntime.superConstructor(MemberVariableTransformer).apply(this,arguments)}),{transformClassElements_:function(e){var r,n=this,i=[],a=[],s=[],o=0;if(e.elements.forEach((function(e){var u;switch(u=e.isStatic?s:a,e.type){case m:case h:i.push(n.transformAny(e));break;case p:e.isStatic||C(e)!==t?i.push(n.transformAny(e)):(r=e,o=i.length);break;case f:null!==(e=n.transformAny(e)).initializer&&u.push(e);break;default:throw new Error("Unexpected class element: "+e.type)}})),a.length>0){var u=function getInstanceInitExpression(e){var t=e.map((function(e){var t=e.name.literalToken;return x($traceurRuntime.getTemplateObject(["this."," = ",""]),t,e.initializer)}));return T(t)}(a);r||(r=this.getDefaultConstructor_(e)),r=N(r,u,e.superClass)}return r&&i.splice(o,0,r),{elements:i,initStaticVars:s}},transformClassDeclaration:function(e){var t=this.transformClassElements_(e),r=t.elements,a=t.initStaticVars,s=this.transformAny(e.superClass),o=new i(e.location,e.name,s,r,e.annotations,e.typeParameters);if(0===a.length)return o;var u=createStaticInitializerStatements(e.name.identifierToken,a);return u=$(u,o),new n(null,u)},transformClassExpression:function(e){var t=this.transformClassElements_(e),r=t.elements,n=t.initStaticVars,i=this.transformAny(e.superClass),s=new a(e.location,e.name,i,r,e.annotations,e.typeParameters);if(0===n.length)return s;this.pushTempScope();var u=this.getTempIdentifier(),l=R(u),m=new o(l.location,l),p=$traceurRuntime.spread([A($traceurRuntime.getTemplateObject(["let "," = ",""]),u,s)],createStaticInitializerStatements(l,n),[new c(null,m)]),f=y(p);return this.popTempScope(),S(f)},getDefaultConstructor_:function(e){if(e.superClass){var r=v(R("args")),n=new s(null,[r]),i=y([A($traceurRuntime.getTemplateObject(["super(...args)"]))]),a=_(t);return new u(e.location,!1,null,a,n,null,[],i,null)}return M($traceurRuntime.getTemplateObject(["constructor() {}"]))}},{},e));function createStaticInitializerStatements(e,t){var r=new o(e.location,e);return t.map((function(e){var t=e.name.literalToken.value;return A($traceurRuntime.getTemplateObject(["Object.defineProperty(",", ",", {enumerable: true,\n        configurable: true, value: ",", writable: true})"]),r,t,e.initializer)}))}return{get MemberVariableTransformer(){return P}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/outputgeneration/ParseTreeWriter.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTreeType.js","traceur@0.0.111/src/outputgeneration/ParseTreeWriter.js")),t=e.BLOCK,r=e.CLASS_DECLARATION,n=e.FUNCTION_DECLARATION,i=e.IF_STATEMENT,a=e.LITERAL_EXPRESSION,s=e.POSTFIX_EXPRESSION,o=e.UNARY_EXPRESSION,u=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/ParseTreeVisitor.js","traceur@0.0.111/src/outputgeneration/ParseTreeWriter.js")).ParseTreeVisitor,c=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/PredefinedName.js","traceur@0.0.111/src/outputgeneration/ParseTreeWriter.js")),l=c.AS,m=c.ASYNC,p=c.AWAIT,f=c.FROM,h=c.GET,d=c.OF,g=c.ON,T=c.SET,y=c.TYPE,R=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/Scanner.js","traceur@0.0.111/src/outputgeneration/ParseTreeWriter.js")),S=R.isIdentifierPart,_=R.isWhitespace,v=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/TokenType.js","traceur@0.0.111/src/outputgeneration/ParseTreeWriter.js")),E=v.ARROW,M=v.AT,A=v.BACK_QUOTE,x=v.BAR,$=v.BREAK,C=v.CASE,N=v.CATCH,P=v.CLASS,b=v.CLOSE_ANGLE,w=v.CLOSE_CURLY,j=v.CLOSE_PAREN,L=v.CLOSE_SQUARE,I=v.COLON,O=v.COMMA,F=v.CONTINUE,k=v.DEBUGGER,D=v.DEFAULT,B=v.DO,z=v.DOT_DOT_DOT,V=v.ELSE,G=v.EQUAL,U=v.EXPORT,W=v.EXTENDS,H=v.FINALLY,Y=v.FOR,X=v.FUNCTION,J=v.IF,K=v.IMPORT,q=v.IN,Q=v.INTERFACE,Z=v.MINUS,ee=v.MINUS_MINUS,te=v.NEW,re=v.NUMBER,ne=v.OPEN_ANGLE,ie=v.OPEN_CURLY,ae=v.OPEN_PAREN,se=v.OPEN_SQUARE,oe=v.PERIOD,ue=v.PLUS,ce=v.PLUS_PLUS,le=v.QUESTION,me=v.RETURN,pe=v.SEMI_COLON,fe=v.SLASH,he=v.STAR,de=v.STATIC,ge=v.SUPER,Te=v.SWITCH,ye=v.THIS,Re=v.THROW,Se=v.TRY,_e=v.WHILE,ve=v.WITH,Ee=v.YIELD,Me=function(e){function ParseTreeWriter(){var e,t=void 0!==arguments[0]?arguments[0]:{},r=void 0===(e=t.prettyPrint)||e;$traceurRuntime.superConstructor(ParseTreeWriter).call(this),this.prettyPrint_=r,this.result_="",this.currentLine_="",this.lastCode_=-1,this.indentDepth_=0,this.currentParameterTypeAnnotation_=null}return $traceurRuntime.createClass(ParseTreeWriter,{toString:function(){return this.currentLine_.length>0&&(this.result_+=this.currentLine_,this.currentLine_="",this.lastCode_=-1),this.result_},visitAnnotation:function(e){this.write_(M),this.visitAny(e.name),null!==e.args&&(this.write_(ae),this.writeList_(e.args.args,O,!1),this.write_(j))},visitArgumentList:function(e){this.write_(ae),this.writeList_(e.args,O,!1),this.write_(j)},visitArrayComprehension:function(e){this.write_(se),this.visitList(e.comprehensionList),this.visitAny(e.expression),this.write_(L)},visitArrayLiteral:function(e){this.write_(se),this.writeList_(e.elements,O,!1),null===e.elements[e.elements.length-1]&&(this.write_(O),this.writeSpace_()),this.write_(L)},visitArrayPattern:function(e){this.write_(se),this.writeList_(e.elements,O,!1),null===e.elements[e.elements.length-1]&&(this.write_(O),this.writeSpace_()),this.write_(L)},visitArrayType:function(e){this.visitAny(e.elementType),this.write_(se),this.write_(L)},visitArrowFunction:function(e){e.functionKind&&(this.writeToken_(e.functionKind),this.writeSpace_()),this.write_(ae),this.visitAny(e.parameterList),this.write_(j),this.writeSpace_(),this.write_(E),this.writeSpace_(),this.visitAny(e.body)},visitAssignmentElement:function(e){this.visitAny(e.assignment),e.initializer&&(this.writeSpace_(),this.write_(G),this.writeSpace_(),this.visitAny(e.initializer))},visitAwaitExpression:function(e){this.write_(p),this.writeSpace_(),this.visitAny(e.expression)},visitBinaryExpression:function(e){var t=e.left;this.visitAny(t);var r=e.operator;t.type===s&&requiresSpaceBetween(t.operator.type,r.type)?this.writeRequiredSpace_():this.writeSpace_(),this.writeToken_(r);var n=e.right;n.type===o&&requiresSpaceBetween(r.type,n.operator.type)?this.writeRequiredSpace_():this.writeSpace_(),this.visitAny(n)},visitBindingElement:function(e){var t=this.currentParameterTypeAnnotation_;this.currentParameterTypeAnnotation_=null,this.visitAny(e.binding),this.writeTypeAnnotation_(t),e.initializer&&(this.writeSpace_(),this.write_(G),this.writeSpace_(),this.visitAny(e.initializer))},visitBindingIdentifier:function(e){this.writeToken_(e.identifierToken)},visitBlock:function(e){this.writeOpenCurly_(),this.writelnList_(e.statements,null),this.writeCloseCurly_()},visitBreakStatement:function(e){this.write_($),null!==e.name&&(this.writeSpace_(),this.writeToken_(e.name)),this.write_(pe)},visitCallExpression:function(e){this.visitAny(e.operand),this.visitAny(e.args)},visitCallSignature:function(e){e.typeParameters&&this.visitAny(e.typeParameters),this.write_(ae),this.visitAny(e.parameterList),this.write_(j),this.writeTypeAnnotation_(e.returnType)},visitCaseClause:function(e){this.write_(C),this.writeSpace_(),this.visitAny(e.expression),this.write_(I),this.indentDepth_++,this.writelnList_(e.statements,null),this.indentDepth_--},visitCatch:function(e){this.write_(N),this.writeSpace_(),this.write_(ae),this.visitAny(e.binding),this.write_(j),this.writeSpace_(),this.visitAny(e.catchBody)},visitClassShared_:function(e){this.writeAnnotations_(e.annotations),this.write_(P),this.writeSpace_(),this.visitAny(e.name),null!==e.typeParameters&&this.visitAny(e.typeParameters),null!==e.superClass&&(this.writeSpace_(),this.write_(W),this.writeSpace_(),this.visitAny(e.superClass)),this.writeSpace_(),this.writeOpenCurly_(),this.writelnList_(e.elements,null),this.writeCloseCurly_()},visitClassDeclaration:function(e){this.visitClassShared_(e)},visitClassExpression:function(e){this.visitClassShared_(e)},visitCommaExpression:function(e){this.writeList_(e.expressions,O,!1)},visitComprehensionFor:function(e){this.write_(Y),this.writeSpace_(),this.write_(ae),this.visitAny(e.left),this.writeSpace_(),this.write_(d),this.writeSpace_(),this.visitAny(e.iterator),this.write_(j),this.writeSpace_()},visitComprehensionIf:function(e){this.write_(J),this.writeSpace_(),this.write_(ae),this.visitAny(e.expression),this.write_(j),this.writeSpace_()},visitComputedPropertyName:function(e){this.write_(se),this.visitAny(e.expression),this.write_(L)},visitConstructSignature:function(e){this.write_(te),this.writeSpace_(),this.visitCallSignature(e)},visitConstructorType:function(e){this.write_(te),this.writeSpace_(),this.visitFunctionType(e)},visitConditionalExpression:function(e){this.visitAny(e.condition),this.writeSpace_(),this.write_(le),this.writeSpace_(),this.visitAny(e.left),this.writeSpace_(),this.write_(I),this.writeSpace_(),this.visitAny(e.right)},visitContinueStatement:function(e){this.write_(F),null!==e.name&&(this.writeSpace_(),this.writeToken_(e.name)),this.write_(pe)},visitCoverInitializedName:function(e){this.writeToken_(e.name),this.writeSpace_(),this.writeToken_(e.equalToken),this.writeSpace_(),this.visitAny(e.initializer)},visitDebuggerStatement:function(e){this.write_(k),this.write_(pe)},visitDefaultClause:function(e){this.write_(D),this.write_(I),this.indentDepth_++,this.writelnList_(e.statements,null),this.indentDepth_--},visitDoWhileStatement:function(e){this.write_(B),this.visitAnyBlockOrIndent_(e.body),this.writeSpace_(),this.write_(_e),this.writeSpace_(),this.write_(ae),this.visitAny(e.condition),this.write_(j),this.write_(pe)},visitEmptyStatement:function(e){this.write_(pe)},visitExportDeclaration:function(e){this.writeAnnotations_(e.annotations),this.write_(U),this.writeSpace_(),this.visitAny(e.declaration)},visitExportDefault:function(e){switch(this.write_(D),this.writeSpace_(),this.visitAny(e.expression),e.expression.type){case r:case n:break;default:this.write_(pe)}},visitNameSpaceExport:function(e){this.write_(he),this.writeSpace_(),this.write_(l),this.writeSpace_(),this.writeToken_(e.name)},visitNameSpaceImport:function(e){this.write_(he),this.writeSpace_(),this.write_(l),this.writeSpace_(),this.visitAny(e.binding)},visitNamedExport:function(e){this.visitAny(e.exportClause),e.moduleSpecifier&&(this.writeSpace_(),this.write_(f),this.writeSpace_(),this.visitAny(e.moduleSpecifier)),this.write_(pe)},visitExportSpecifier:function(e){this.writeToken_(e.lhs),e.rhs&&(this.writeSpace_(),this.write_(l),this.writeSpace_(),this.writeToken_(e.rhs))},visitExportSpecifierSet:function(e){this.writeOpenCurly_(),this.writeList_(e.specifiers,O,!1),this.writeCloseCurly_()},visitExportStar:function(e){this.write_(he)},visitExpressionStatement:function(e){this.visitAny(e.expression),this.write_(pe)},visitFinally:function(e){this.write_(H),this.writeSpace_(),this.visitAny(e.block)},visitForOfStatement:function(e){this.write_(Y),this.writeSpace_(),this.write_(ae),this.visitAny(e.initializer),this.writeSpace_(),this.write_(d),this.writeSpace_(),this.visitAny(e.collection),this.write_(j),this.visitAnyBlockOrIndent_(e.body)},visitForOnStatement:function(e){this.write_(Y),this.writeSpace_(),this.write_(ae),this.visitAny(e.initializer),this.writeSpace_(),this.write_(g),this.writeSpace_(),this.visitAny(e.observable),this.write_(j),this.visitAnyBlockOrIndent_(e.body)},visitForInStatement:function(e){this.write_(Y),this.writeSpace_(),this.write_(ae),this.visitAny(e.initializer),this.writeSpace_(),this.write_(q),this.writeSpace_(),this.visitAny(e.collection),this.write_(j),this.visitAnyBlockOrIndent_(e.body)},visitForStatement:function(e){this.write_(Y),this.writeSpace_(),this.write_(ae),this.visitAny(e.initializer),this.write_(pe),this.writeSpace_(),this.visitAny(e.condition),this.write_(pe),this.writeSpace_(),this.visitAny(e.increment),this.write_(j),this.visitAnyBlockOrIndent_(e.body)},visitFormalParameterList:function(e){for(var t=!0,r=0;r<e.parameters.length;r++){var n=e.parameters[r];t?t=!1:(this.write_(O),this.writeSpace_()),this.visitAny(n)}},visitFormalParameter:function(e){this.writeAnnotations_(e.annotations,!1),this.currentParameterTypeAnnotation_=e.typeAnnotation,this.visitAny(e.parameter),this.currentParameterTypeAnnotation_=null},visitForwardDefaultExport:function(e){this.writeToken_(e.name)},visitFunctionBody:function(e){this.writeOpenCurly_(),this.writelnList_(e.statements,null),this.writeCloseCurly_()},visitFunctionDeclaration:function(e){this.visitFunction_(e)},visitFunctionExpression:function(e){this.visitFunction_(e)},visitFunction_:function(e){this.writeAnnotations_(e.annotations),e.isAsyncGenerator()&&this.write_(m),e.isAsyncFunction()&&this.writeToken_(e.functionKind),this.write_(X),e.isAsyncGenerator()&&this.write_(he),e.isGenerator()&&this.writeToken_(e.functionKind),e.name&&(this.writeSpace_(),this.visitAny(e.name)),this.write_(ae),this.visitAny(e.parameterList),this.write_(j),this.writeTypeAnnotation_(e.typeAnnotation),this.writeSpace_(),this.visitAny(e.body)},visitFunctionType:function(e){null!==e.typeParameters&&this.visitAny(e.typeParameters),this.write_(ae),this.visitAny(e.parameterList),this.write_(j),this.writeSpace_(),this.write_(E),this.writeSpace_(),this.visitAny(e.returnType)},visitGeneratorComprehension:function(e){this.write_(ae),this.visitList(e.comprehensionList),this.visitAny(e.expression),this.write_(j)},visitGetAccessor:function(e){this.writeAnnotations_(e.annotations),e.isStatic&&(this.write_(de),this.writeSpace_()),this.write_(h),this.writeSpace_(),this.visitAny(e.name),this.write_(ae),this.write_(j),this.writeSpace_(),this.writeTypeAnnotation_(e.typeAnnotation),this.visitAny(e.body)},visitIdentifierExpression:function(e){this.writeToken_(e.identifierToken)},visitIfStatement:function(e){this.write_(J),this.writeSpace_(),this.write_(ae),this.visitAny(e.condition),this.write_(j),this.visitAnyBlockOrIndent_(e.ifClause),e.elseClause&&(e.ifClause.type===t&&this.writeSpace_(),this.write_(V),e.elseClause.type===i?(this.writeSpace_(),this.visitAny(e.elseClause)):this.visitAnyBlockOrIndent_(e.elseClause))},visitIndexSignature:function(e){this.write_(se),this.writeToken_(e.name),this.write_(I),this.writeSpace_(),this.visitAny(e.indexType),this.write_(L),this.writeTypeAnnotation_(e.typeAnnotation),this.write_(pe)},visitInterfaceDeclaration:function(e){this.write_(Q),this.writeSpace_(),this.writeToken_(e.name),e.typeParameters&&this.visitAny(e.typeParameters),e.extendsClause.length>0&&(this.writeSpace_(),this.write_(W),this.writeSpace_(),this.writeList_(e.extendsClause,O,!1)),this.writeSpace_(),this.visitAny(e.objectType)},visitAnyBlockOrIndent_:function(e){e.type===t?(this.writeSpace_(),this.visitAny(e)):this.visitAnyIndented_(e)},visitAnyIndented_:function(e){var t=void 0!==arguments[1]?arguments[1]:1;this.prettyPrint_&&(this.indentDepth_+=t,this.writeln_()),this.visitAny(e),this.prettyPrint_&&(this.indentDepth_-=t,this.writeln_())},visitImportClausePair:function(e){this.visitAny(e.first),this.write_(O),this.writeSpace_(),this.visitAny(e.second)},visitImportDeclaration:function(e){this.write_(K),this.writeSpace_(),e.importClause&&(this.visitAny(e.importClause),this.writeSpace_(),this.write_(f),this.writeSpace_()),this.visitAny(e.moduleSpecifier),this.write_(pe)},visitImportSpecifier:function(e){e.name&&(this.writeToken_(e.name),this.writeSpace_(),this.write_(l),this.writeSpace_()),this.visitAny(e.binding)},visitImportSpecifierSet:function(e){e.specifiers.type===he?this.write_(he):(this.writeOpenCurly_(),this.writelnList_(e.specifiers,O),this.writeCloseCurly_())},visitImportTypeClause:function(e){this.write_(y),this.writeSpace_(),this.visitAny(e.clause)},visitJsxAttribute:function(e){this.writeToken_(e.name),null!==e.value&&(this.write_(G),this.visitAny(e.value))},visitJsxElement:function(e){this.write_(ne),this.visitAny(e.name);for(var t=0;t<e.attributes.length;t++)this.writeSpace_(),this.visitAny(e.attributes[t]);0===e.children.length?(this.write_(fe),this.write_(b)):(this.write_(b),this.visitList(e.children),this.write_(ne),this.write_(fe),this.lastCode_=-1,this.visitAny(e.name),this.write_(b))},visitJsxElementName:function(e){for(var t=0;t<e.names.length;t++)t>0&&this.write_(oe),this.writeToken_(e.names[t])},visitJsxPlaceholder:function(e){this.write_(ie),null!==e.expression&&this.visitAny(e.expression),this.write_(w)},visitJsxSpreadAttribute:function(e){this.write_(ie),this.write_(z),this.visitAny(e.expression),this.write_(w)},visitJsxText:function(e){this.writeToken_(e.value)},visitLabelledStatement:function(e){this.writeToken_(e.name),this.write_(I),this.writeSpace_(),this.visitAny(e.statement)},visitLiteralExpression:function(e){this.writeToken_(e.literalToken)},visitLiteralPropertyName:function(e){this.writeToken_(e.literalToken)},visitMemberExpression:function(e){this.visitAny(e.operand),e.operand.type===a&&e.operand.literalToken.type===re&&(/\.|e|E/.test(e.operand.literalToken.value)||this.writeRequiredSpace_()),this.write_(oe),this.writeToken_(e.memberName)},visitMemberLookupExpression:function(e){this.visitAny(e.operand),this.write_(se),this.visitAny(e.memberExpression),this.write_(L)},visitMethodSignature:function(e){this.visitAny(e.name),e.optional&&this.write_(le),this.visitAny(e.callSignature),this.write_(pe)},visitSyntaxErrorTree:function(e){this.write_("(function() {throw SyntaxError("+JSON.stringify(e.message)+");})()")},visitModule:function(e){this.writelnList_(e.scriptItemList,null)},visitModuleSpecifier:function(e){this.writeToken_(e.token)},visitNewExpression:function(e){this.write_(te),this.writeSpace_(),this.visitAny(e.operand),this.visitAny(e.args)},visitObjectLiteral:function(e){this.writeOpenCurly_(),e.propertyNameAndValues.length>1&&this.writeln_(),this.writelnList_(e.propertyNameAndValues,O),e.propertyNameAndValues.length>1&&this.writeln_(),this.writeCloseCurly_()},visitObjectPattern:function(e){this.writeOpenCurly_(),this.writelnList_(e.fields,O),this.writeCloseCurly_()},visitObjectPatternField:function(e){this.visitAny(e.name),null!==e.element&&(this.write_(I),this.writeSpace_(),this.visitAny(e.element))},visitObjectType:function(e){this.writeOpenCurly_(),this.writelnList_(e.typeMembers,null),this.writeCloseCurly_()},visitParenExpression:function(e){this.write_(ae),$traceurRuntime.superGet(this,ParseTreeWriter.prototype,"visitParenExpression").call(this,e),this.write_(j)},visitPostfixExpression:function(e){this.visitAny(e.operand),e.operand.type===s&&e.operand.operator.type===e.operator.type&&this.writeRequiredSpace_(),this.writeToken_(e.operator)},visitPredefinedType:function(e){this.writeToken_(e.typeToken)},visitScript:function(e){this.writelnList_(e.scriptItemList,null)},visitMethod:function(e){this.writeAnnotations_(e.annotations),e.isStatic&&(this.write_(de),this.writeSpace_()),(e.isAsyncFunction()||e.isAsyncGenerator())&&this.write_(m),(e.isGenerator()||e.isAsyncGenerator())&&this.write_(he),e.isAsyncGenerator()&&this.writeSpace_(),this.visitAny(e.name),this.write_(ae),this.visitAny(e.parameterList),this.write_(j),this.writeSpace_(),this.writeTypeAnnotation_(e.typeAnnotation),this.visitAny(e.body)},visitPropertyNameAssignment:function(e){this.visitAny(e.name),this.write_(I),this.writeSpace_(),this.visitAny(e.value)},visitPropertyNameShorthand:function(e){this.writeToken_(e.name)},visitPropertyVariableDeclaration:function(e){this.writeAnnotations_(e.annotations),e.isStatic&&(this.write_(de),this.writeSpace_()),this.visitAny(e.name),this.writeTypeAnnotation_(e.typeAnnotation),e.initalizer&&(this.writeSpace_(),this.write_(G),this.writeSpace_(),this.visitAny(e.initializer)),this.write_(pe)},visitPropertySignature:function(e){this.visitAny(e.name),e.optional&&this.write_(le),this.writeTypeAnnotation_(e.typeAnnotation),this.write_(pe)},visitTemplateLiteralExpression:function(e){e.operand&&(this.visitAny(e.operand),this.writeSpace_()),this.writeRaw_(A),this.visitList(e.elements),this.writeRaw_(A)},visitTemplateLiteralPortion:function(e){this.writeToken_(e.value)},visitTemplateSubstitution:function(e){this.writeRaw_("$"),this.writeRaw_(ie),this.visitAny(e.expression),this.writeRaw_(w)},visitReturnStatement:function(e){this.write_(me),e.expression&&(this.writeSpace_(e.expression),this.visitAny(e.expression)),this.write_(pe)},visitRestParameter:function(e){this.write_(z),this.visitAny(e.identifier)},visitSetAccessor:function(e){this.writeAnnotations_(e.annotations),e.isStatic&&(this.write_(de),this.writeSpace_()),this.write_(T),this.writeSpace_(),this.visitAny(e.name),this.write_(ae),this.visitAny(e.parameterList),this.write_(j),this.writeSpace_(),this.visitAny(e.body)},visitSpreadExpression:function(e){this.write_(z),this.visitAny(e.expression)},visitSpreadPatternElement:function(e){this.write_(z),this.visitAny(e.lvalue)},visitStateMachine:function(e){throw new Error("State machines cannot be converted to source")},visitSuperExpression:function(e){this.write_(ge)},visitSwitchStatement:function(e){this.write_(Te),this.writeSpace_(),this.write_(ae),this.visitAny(e.expression),this.write_(j),this.writeSpace_(),this.writeOpenCurly_(),this.writelnList_(e.caseClauses,null),this.writeCloseCurly_()},visitThisExpression:function(e){this.write_(ye)},visitThrowStatement:function(e){this.write_(Re),this.writeSpace_(),this.visitAny(e.value),this.write_(pe)},visitTryStatement:function(e){this.write_(Se),this.writeSpace_(),this.visitAny(e.body),e.catchBlock&&(this.writeSpace_(),this.visitAny(e.catchBlock)),e.finallyBlock&&(this.writeSpace_(),this.visitAny(e.finallyBlock))},visitTypeAliasDeclaration:function(e){this.write_(y),this.writeRequiredSpace_(),this.writeToken_(e.name),this.writeSpace_(),this.write_(G),this.writeSpace_(),this.visitAny(e.value),this.write_(pe)},visitTypeArguments:function(e){this.write_(ne);var t=e.args;this.visitAny(t[0]);for(var r=1;r<t.length;r++)this.write_(O),this.writeSpace_(),this.visitAny(t[r]);this.write_(b)},visitTypeName:function(e){e.moduleName&&(this.visitAny(e.moduleName),this.write_(oe)),this.writeToken_(e.name)},visitTypeParameter:function(e){this.writeToken_(e.identifierToken),e.extendsType&&(this.writeSpace_(),this.write_(W),this.writeSpace_(),this.visitAny(e.extendsType))},visitTypeParameters:function(e){this.write_(ne),this.writeList_(e.parameters,O,!1),this.write_(b)},visitUnaryExpression:function(e){var t=e.operator;this.writeToken_(t);var r=e.operand;r.type===o&&requiresSpaceBetween(t.type,r.operator.type)&&this.writeRequiredSpace_(),this.visitAny(r)},visitUnionType:function(e){this.visitAny(e.types[0]);for(var t=1;t<e.types.length;t++)this.writeSpace_(),this.write_(x),this.writeSpace_(),this.visitAny(e.types[t])},visitVariableDeclarationList:function(e){this.write_(e.declarationType),this.writeSpace_(),this.writeList_(e.declarations,O,!0,2)},visitVariableDeclaration:function(e){this.visitAny(e.lvalue),this.writeTypeAnnotation_(e.typeAnnotation),null!==e.initializer&&(this.writeSpace_(),this.write_(G),this.writeSpace_(),this.visitAny(e.initializer))},visitVariableStatement:function(e){$traceurRuntime.superGet(this,ParseTreeWriter.prototype,"visitVariableStatement").call(this,e),this.write_(pe)},visitWhileStatement:function(e){this.write_(_e),this.writeSpace_(),this.write_(ae),this.visitAny(e.condition),this.write_(j),this.visitAnyBlockOrIndent_(e.body)},visitWithStatement:function(e){this.write_(ve),this.writeSpace_(),this.write_(ae),this.visitAny(e.expression),this.write_(j),this.writeSpace_(),this.visitAny(e.body)},visitYieldExpression:function(e){this.write_(Ee),e.isYieldFor&&this.write_(he),e.expression&&(this.writeSpace_(),this.visitAny(e.expression))},writeCurrentln_:function(){this.result_+=this.currentLine_+"\n"},writeln_:function(){this.currentLine_&&this.writeCurrentln_(),this.currentLine_="",this.lastCode_=-1},writelnList_:function(e,t){null!==t?this.writeList_(e,t,!0):(e.length>0&&this.writeln_(),this.writeList_(e,"",!0),e.length>0&&this.writeln_())},writeList_:function(e,t,r){for(var n=void 0!==arguments[3]?arguments[3]:0,i=!0,a=0;a<e.length;a++)i?i=!1:(""!==t&&(this.write_(t),r||this.writeSpace_()),r&&(1===a&&(this.indentDepth_+=n),this.writeln_())),this.visitAny(e[a]);r&&e.length>1&&(this.indentDepth_-=n)},writeRaw_:function(e){this.currentLine_+=e,this.lastCode_=e.charCodeAt(e.length-1)},writeToken_:function(e){this.write_(e.toString())},write_:function(e){if(this.prettyPrint_&&0===this.currentLine_.length)for(var t=0,r=this.indentDepth_;t<r;t++)this.writeRaw_("  ");this.needsSpace_(e)&&this.writeRaw_(" "),this.writeRaw_(e)},writeCloseCurly_:function(){this.indentDepth_--,this.write_(w)},writeOpenCurly_:function(){this.write_(ie),this.indentDepth_++},writeSpace_:function(){this.prettyPrint_&&!_(this.lastCode_)&&this.writeRaw_(" ")},writeRequiredSpace_:function(){_(this.lastCode_)||this.writeRaw_(" ")},writeTypeAnnotation_:function(e){null!==e&&(this.write_(I),this.writeSpace_(),this.visitAny(e))},writeAnnotations_:function(e){var t=void 0!==arguments[1]?arguments[1]:this.prettyPrint_;e.length>0&&(this.writeList_(e,"",t),t&&this.writeln_())},needsSpace_:function(e){var t=this.lastCode_;if(_(t))return!1;var r=e.toString().charCodeAt(0);return S(r)&&(S(t)||47===t)}},{},e)}(u);function requiresSpaceBetween(e,t){return!((e!==Z&&e!==ee||t!==Z&&t!==ee)&&(e!==ue&&e!==ce||t!==ue&&t!==ce))}return{get ParseTreeWriter(){return Me}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/outputgeneration/ParseTreeMapWriter.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeWriter.js","traceur@0.0.111/src/outputgeneration/ParseTreeMapWriter.js")).ParseTreeWriter,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../util/StringSet.js","traceur@0.0.111/src/outputgeneration/ParseTreeMapWriter.js")).StringSet,r=function(e){function ParseTreeMapWriter(e){var r=arguments[1];$traceurRuntime.superConstructor(ParseTreeMapWriter).call(this,r),this.sourceMapGenerator_=e.sourceMapGenerator,this.lowResolution_=e.lowResolution,this.basepath_=e.basepath,this.outputLineCount_=1,this.isFirstMapping_=!0,this.sourcesInMap_=new t,this.relativeSourceName_="",this.generated_=null,this.original_=null,this.previousMapping_=null}return $traceurRuntime.createClass(ParseTreeMapWriter,{visitAny:function(e){null!==e&&(null!==e.location&&this.enterBranch(e.location),$traceurRuntime.superGet(this,ParseTreeMapWriter.prototype,"visitAny").call(this,e),null!==e.location&&this.exitBranch(e.location))},writeCurrentln_:function(){$traceurRuntime.superGet(this,ParseTreeMapWriter.prototype,"writeCurrentln_").call(this),this.flushMappings(),this.outputLineCount_++,this.generated_={line:this.outputLineCount_,column:0},this.flushMappings()},write_:function(e){this.generate(),$traceurRuntime.superGet(this,ParseTreeMapWriter.prototype,"write_").call(this,e),this.generate()},generate:function(){var e=this.currentLine_.length,t=e?e-1:0;this.generated_={line:this.outputLineCount_,column:t},this.flushMappings()},enterBranch:function(e){var t=e.start,r=t.line,n=t.column,i=t.source;this.originate(r,n,i)},exitBranch:function(e){var t=e.end,r=t.line,n=t.column,i=t.source;this.originate(r,n?n-1:0,i)},originate:function(e,t,r){e++,this.original_&&this.original_.line!==e&&this.flushMappings(),this.original_={line:e,column:t};var n=r.name;n&&!this.sourcesInMap_.has(n)&&(this.sourcesInMap_.add(n),this.relativeSourceName_=relativePath(n,this.basepath_),this.sourceMapGenerator_.setSourceContent(this.relativeSourceName_,r.contents)),this.flushMappings()},flushMappings:function(){this.original_&&this.generated_&&(this.addMapping(),this.original_=null,this.generated_=null)},isSame:function(e,t){return e.line===t.line&&e.column===t.column},skipMapping:function(){return!!this.previousMapping_&&(!(!this.lowResolution_||this.previousMapping_.generated.line!==this.generated_.line)||(!(!this.isSame(this.previousMapping_.generated,this.generated_)||!this.isSame(this.previousMapping_.original,this.original_))||void 0))},addMapping:function(){if(!this.skipMapping()){var e={generated:this.generated_,original:this.original_,source:this.relativeSourceName_};this.sourceMapGenerator_.addMapping(e),this.previousMapping_=e}}},{},e)}(e);function relativePath(e,t){var r;if(!e||"@"===e[0])return e;if(!t)return e;var n=e.split("/"),i=t.split("/");if(i[i.length-1])throw new Error("rootPath must end in /");var a=0,s=[],o=!1;if(n.forEach((function(e,t){o||e!==i[t]?(o=!0,s.push(e)):a++})),a<1||a===i.length)return e;for(var u=i.length-a-1,c=[];u--;)c.push("..");return(r=c).push.apply(r,$traceurRuntime.spread(s)),c.join("/")}return{get ParseTreeMapWriter(){return r},get relativePath(){return relativePath}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/outputgeneration/SourceMapIntegration.js",[],(function(){"use strict";function makeDefine(e,t){var require=function(t){return e[t]},r=e[t]={};return function(e){e(require,r,null)}}var t={};if("function"!=typeof(r=makeDefine(t,"./util")))var r=require("amdefine")(e,require);if(r((function(e,t,r){t.getArg=function getArg(e,t,r){if(t in e)return e[t];if(3===arguments.length)return r;throw new Error('"'+t+'" is a required argument.')};var n=/^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.]*)(?::(\d+))?(\S*)$/,i=/^data:.+\,.+$/;function urlParse(e){var t=e.match(n);return t?{scheme:t[1],auth:t[2],host:t[3],port:t[4],path:t[5]}:null}function urlGenerate(e){var t="";return e.scheme&&(t+=e.scheme+":"),t+="//",e.auth&&(t+=e.auth+"@"),e.host&&(t+=e.host),e.port&&(t+=":"+e.port),e.path&&(t+=e.path),t}function normalize(e){var t=e,r=urlParse(e);if(r){if(!r.path)return e;t=r.path}for(var n="/"===t.charAt(0),i=t.split(/\/+/),a=void 0,s=0,o=i.length-1;o>=0;o--)"."===(a=i[o])?i.splice(o,1):".."===a?s++:s>0&&(""===a?(i.splice(o+1,s),s=0):(i.splice(o,2),s--));return""===(t=i.join("/"))&&(t=n?"/":"."),r?(r.path=t,urlGenerate(r)):t}function strcmp(e,t){var r=e||"",n=t||"";return(r>n)-(r<n)}t.urlParse=urlParse,t.urlGenerate=urlGenerate,t.normalize=normalize,t.join=function join(e,t){""===e&&(e="."),""===t&&(t=".");var r=urlParse(t),n=urlParse(e);if(n&&(e=n.path||"/"),r&&!r.scheme)return n&&(r.scheme=n.scheme),urlGenerate(r);if(r||t.match(i))return t;if(n&&!n.host&&!n.path)return n.host=t,urlGenerate(n);var a="/"===t.charAt(0)?t:normalize(e.replace(/\/+$/,"")+"/"+t);return n?(n.path=a,urlGenerate(n)):a},t.relative=function relative(e,t){""===e&&(e=".");var r=urlParse(e=e.replace(/\/$/,""));return"/"==t.charAt(0)&&r&&"/"==r.path?t.slice(1):0===t.indexOf(e+"/")?t.substr(e.length+1):t},t.toSetString=function toSetString(e){return"$"+e},t.fromSetString=function fromSetString(e){return e.substr(1)},t.compareByOriginalPositions=function compareByOriginalPositions(e,t,r){var n;return(n=strcmp(e.source,t.source))||(n=e.originalLine-t.originalLine)||(n=e.originalColumn-t.originalColumn)||r||(n=strcmp(e.name,t.name))?n:(n=e.generatedLine-t.generatedLine)||e.generatedColumn-t.generatedColumn},t.compareByGeneratedPositions=function compareByGeneratedPositions(e,t,r){var n;return(n=e.generatedLine-t.generatedLine)||(n=e.generatedColumn-t.generatedColumn)||r||(n=strcmp(e.source,t.source))||(n=e.originalLine-t.originalLine)?n:(n=e.originalColumn-t.originalColumn)||strcmp(e.name,t.name)}})),"function"!=typeof(r=makeDefine(t,"./array-set")))r=require("amdefine")(e,require);if(r((function(e,t,r){var n=e("./util");function ArraySet(){this._array=[],this._set={}}ArraySet.fromArray=function ArraySet_fromArray(e,t){for(var r=new ArraySet,n=0,i=e.length;n<i;n++)r.add(e[n],t);return r},ArraySet.prototype.add=function ArraySet_add(e,t){var r=this.has(e),i=this._array.length;r&&!t||this._array.push(e),r||(this._set[n.toSetString(e)]=i)},ArraySet.prototype.has=function ArraySet_has(e){return Object.prototype.hasOwnProperty.call(this._set,n.toSetString(e))},ArraySet.prototype.indexOf=function ArraySet_indexOf(e){if(this.has(e))return this._set[n.toSetString(e)];throw new Error('"'+e+'" is not in the set.')},ArraySet.prototype.at=function ArraySet_at(e){if(e>=0&&e<this._array.length)return this._array[e];throw new Error("No element indexed by "+e)},ArraySet.prototype.toArray=function ArraySet_toArray(){return this._array.slice()},t.ArraySet=ArraySet})),"function"!=typeof(r=makeDefine(t,"./base64")))r=require("amdefine")(e,require);if(r((function(e,t,r){var n={},i={};"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("").forEach((function(e,t){n[e]=t,i[t]=e})),t.encode=function base64_encode(e){if(e in i)return i[e];throw new TypeError("Must be between 0 and 63: "+e)},t.decode=function base64_decode(e){if(e in n)return n[e];throw new TypeError("Not a valid base 64 digit: "+e)}})),"function"!=typeof(r=makeDefine(t,"./base64-vlq")))r=require("amdefine")(e,require);if(r((function(e,t,r){var n=e("./base64");t.encode=function base64VLQ_encode(e){var t,r="",i=function toVLQSigned(e){return e<0?1+(-e<<1):0+(e<<1)}(e);do{t=31&i,(i>>>=5)>0&&(t|=32),r+=n.encode(t)}while(i>0);return r},t.decode=function base64VLQ_decode(e,t){var r,i,a=0,s=e.length,o=0,u=0;do{if(a>=s)throw new Error("Expected more digits in base 64 VLQ value.");r=!!(32&(i=n.decode(e.charAt(a++)))),o+=(i&=31)<<u,u+=5}while(r);t.value=function fromVLQSigned(e){var t=e>>1;return 1==(1&e)?-t:t}(o),t.rest=e.slice(a)}})),"function"!=typeof(r=makeDefine(t,"./binary-search")))r=require("amdefine")(e,require);if(r((function(e,t,r){t.search=function search(e,t,r){return 0===t.length?-1:function recursiveSearch(e,t,r,n,i){var a=Math.floor((t-e)/2)+e,s=i(r,n[a],!0);return 0===s?a:s>0?t-a>1?recursiveSearch(a,t,r,n,i):a:a-e>1?recursiveSearch(e,a,r,n,i):e<0?-1:e}(-1,t.length,e,t,r)}})),"function"!=typeof(r=makeDefine(t,"./mapping-list")))r=require("amdefine")(e,require);if(r((function(e,t,r){var n=e("./util");function MappingList(){this._array=[],this._sorted=!0,this._last={generatedLine:-1,generatedColumn:0}}MappingList.prototype.unsortedForEach=function MappingList_forEach(e,t){this._array.forEach(e,t)},MappingList.prototype.add=function MappingList_add(e){!function generatedPositionAfter(e,t){var r=e.generatedLine,i=t.generatedLine,a=e.generatedColumn,s=t.generatedColumn;return i>r||i==r&&s>=a||n.compareByGeneratedPositions(e,t)<=0}(this._last,e)?(this._sorted=!1,this._array.push(e)):(this._last=e,this._array.push(e))},MappingList.prototype.toArray=function MappingList_toArray(){return this._sorted||(this._array.sort(n.compareByGeneratedPositions),this._sorted=!0),this._array},t.MappingList=MappingList})),"function"!=typeof(r=makeDefine(t,"./source-map-generator")))r=require("amdefine")(e,require);if(r((function(e,t,r){var n=e("./base64-vlq"),i=e("./util"),a=e("./array-set").ArraySet,s=e("./mapping-list").MappingList;function SourceMapGenerator(e){e||(e={}),this._file=i.getArg(e,"file",null),this._sourceRoot=i.getArg(e,"sourceRoot",null),this._skipValidation=i.getArg(e,"skipValidation",!1),this._sources=new a,this._names=new a,this._mappings=new s,this._sourcesContents=null}SourceMapGenerator.prototype._version=3,SourceMapGenerator.fromSourceMap=function SourceMapGenerator_fromSourceMap(e){var t=e.sourceRoot,r=new SourceMapGenerator({file:e.file,sourceRoot:t});return e.eachMapping((function(e){var n={generated:{line:e.generatedLine,column:e.generatedColumn}};null!=e.source&&(n.source=e.source,null!=t&&(n.source=i.relative(t,n.source)),n.original={line:e.originalLine,column:e.originalColumn},null!=e.name&&(n.name=e.name)),r.addMapping(n)})),e.sources.forEach((function(t){var n=e.sourceContentFor(t);null!=n&&r.setSourceContent(t,n)})),r},SourceMapGenerator.prototype.addMapping=function SourceMapGenerator_addMapping(e){var t=i.getArg(e,"generated"),r=i.getArg(e,"original",null),n=i.getArg(e,"source",null),a=i.getArg(e,"name",null);this._skipValidation||this._validateMapping(t,r,n,a),null==n||this._sources.has(n)||this._sources.add(n),null==a||this._names.has(a)||this._names.add(a),this._mappings.add({generatedLine:t.line,generatedColumn:t.column,originalLine:null!=r&&r.line,originalColumn:null!=r&&r.column,source:n,name:a})},SourceMapGenerator.prototype.setSourceContent=function SourceMapGenerator_setSourceContent(e,t){var r=e;null!=this._sourceRoot&&(r=i.relative(this._sourceRoot,r)),null!=t?(this._sourcesContents||(this._sourcesContents={}),this._sourcesContents[i.toSetString(r)]=t):this._sourcesContents&&(delete this._sourcesContents[i.toSetString(r)],0===Object.keys(this._sourcesContents).length&&(this._sourcesContents=null))},SourceMapGenerator.prototype.applySourceMap=function SourceMapGenerator_applySourceMap(e,t,r){var n=t;if(null==t){if(null==e.file)throw new Error('SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map\'s "file" property. Both were omitted.');n=e.file}var s=this._sourceRoot;null!=s&&(n=i.relative(s,n));var o=new a,u=new a;this._mappings.unsortedForEach((function(t){if(t.source===n&&null!=t.originalLine){var a=e.originalPositionFor({line:t.originalLine,column:t.originalColumn});null!=a.source&&(t.source=a.source,null!=r&&(t.source=i.join(r,t.source)),null!=s&&(t.source=i.relative(s,t.source)),t.originalLine=a.line,t.originalColumn=a.column,null!=a.name&&(t.name=a.name))}var c=t.source;null==c||o.has(c)||o.add(c);var l=t.name;null==l||u.has(l)||u.add(l)}),this),this._sources=o,this._names=u,e.sources.forEach((function(t){var n=e.sourceContentFor(t);null!=n&&(null!=r&&(t=i.join(r,t)),null!=s&&(t=i.relative(s,t)),this.setSourceContent(t,n))}),this)},SourceMapGenerator.prototype._validateMapping=function SourceMapGenerator_validateMapping(e,t,r,n){if((!(e&&"line"in e&&"column"in e&&e.line>0&&e.column>=0)||t||r||n)&&!(e&&"line"in e&&"column"in e&&t&&"line"in t&&"column"in t&&e.line>0&&e.column>=0&&t.line>0&&t.column>=0&&r))throw new Error("Invalid mapping: "+JSON.stringify({generated:e,source:r,original:t,name:n}))},SourceMapGenerator.prototype._serializeMappings=function SourceMapGenerator_serializeMappings(){for(var e,t=0,r=1,a=0,s=0,o=0,u=0,c="",l=this._mappings.toArray(),m=0,p=l.length;m<p;m++){if((e=l[m]).generatedLine!==r)for(t=0;e.generatedLine!==r;)c+=";",r++;else if(m>0){if(!i.compareByGeneratedPositions(e,l[m-1]))continue;c+=","}c+=n.encode(e.generatedColumn-t),t=e.generatedColumn,null!=e.source&&(c+=n.encode(this._sources.indexOf(e.source)-u),u=this._sources.indexOf(e.source),c+=n.encode(e.originalLine-1-s),s=e.originalLine-1,c+=n.encode(e.originalColumn-a),a=e.originalColumn,null!=e.name&&(c+=n.encode(this._names.indexOf(e.name)-o),o=this._names.indexOf(e.name)))}return c},SourceMapGenerator.prototype._generateSourcesContent=function SourceMapGenerator_generateSourcesContent(e,t){return e.map((function(e){if(!this._sourcesContents)return null;null!=t&&(e=i.relative(t,e));var r=i.toSetString(e);return Object.prototype.hasOwnProperty.call(this._sourcesContents,r)?this._sourcesContents[r]:null}),this)},SourceMapGenerator.prototype.toJSON=function SourceMapGenerator_toJSON(){var e={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};return null!=this._file&&(e.file=this._file),null!=this._sourceRoot&&(e.sourceRoot=this._sourceRoot),this._sourcesContents&&(e.sourcesContent=this._generateSourcesContent(e.sources,e.sourceRoot)),e},SourceMapGenerator.prototype.toString=function SourceMapGenerator_toString(){return JSON.stringify(this)},t.SourceMapGenerator=SourceMapGenerator})),"function"!=typeof(r=makeDefine(t,"./source-map-consumer")))r=require("amdefine")(e,require);if(r((function(e,t,r){var n=e("./util"),i=e("./binary-search"),a=e("./array-set").ArraySet,s=e("./base64-vlq");function SourceMapConsumer(e){var t=e;"string"==typeof e&&(t=JSON.parse(e.replace(/^\)\]\}'/,"")));var r=n.getArg(t,"version"),i=n.getArg(t,"sources"),s=n.getArg(t,"names",[]),o=n.getArg(t,"sourceRoot",null),u=n.getArg(t,"sourcesContent",null),c=n.getArg(t,"mappings"),l=n.getArg(t,"file",null);if(r!=this._version)throw new Error("Unsupported version: "+r);i=i.map(n.normalize),this._names=a.fromArray(s,!0),this._sources=a.fromArray(i,!0),this.sourceRoot=o,this.sourcesContent=u,this._mappings=c,this.file=l}SourceMapConsumer.fromSourceMap=function SourceMapConsumer_fromSourceMap(e){var t=Object.create(SourceMapConsumer.prototype);return t._names=a.fromArray(e._names.toArray(),!0),t._sources=a.fromArray(e._sources.toArray(),!0),t.sourceRoot=e._sourceRoot,t.sourcesContent=e._generateSourcesContent(t._sources.toArray(),t.sourceRoot),t.file=e._file,t.__generatedMappings=e._mappings.toArray().slice(),t.__originalMappings=e._mappings.toArray().slice().sort(n.compareByOriginalPositions),t},SourceMapConsumer.prototype._version=3,Object.defineProperty(SourceMapConsumer.prototype,"sources",{get:function(){return this._sources.toArray().map((function(e){return null!=this.sourceRoot?n.join(this.sourceRoot,e):e}),this)}}),SourceMapConsumer.prototype.__generatedMappings=null,Object.defineProperty(SourceMapConsumer.prototype,"_generatedMappings",{get:function(){return this.__generatedMappings||(this.__generatedMappings=[],this.__originalMappings=[],this._parseMappings(this._mappings,this.sourceRoot)),this.__generatedMappings}}),SourceMapConsumer.prototype.__originalMappings=null,Object.defineProperty(SourceMapConsumer.prototype,"_originalMappings",{get:function(){return this.__originalMappings||(this.__generatedMappings=[],this.__originalMappings=[],this._parseMappings(this._mappings,this.sourceRoot)),this.__originalMappings}}),SourceMapConsumer.prototype._nextCharIsMappingSeparator=function SourceMapConsumer_nextCharIsMappingSeparator(e){var t=e.charAt(0);return";"===t||","===t},SourceMapConsumer.prototype._parseMappings=function SourceMapConsumer_parseMappings(e,t){for(var r,i=1,a=0,o=0,u=0,c=0,l=0,m=e,p={};m.length>0;)if(";"===m.charAt(0))i++,m=m.slice(1),a=0;else if(","===m.charAt(0))m=m.slice(1);else{if((r={}).generatedLine=i,s.decode(m,p),r.generatedColumn=a+p.value,a=r.generatedColumn,(m=p.rest).length>0&&!this._nextCharIsMappingSeparator(m)){if(s.decode(m,p),r.source=this._sources.at(c+p.value),c+=p.value,0===(m=p.rest).length||this._nextCharIsMappingSeparator(m))throw new Error("Found a source, but no line and column");if(s.decode(m,p),r.originalLine=o+p.value,o=r.originalLine,r.originalLine+=1,0===(m=p.rest).length||this._nextCharIsMappingSeparator(m))throw new Error("Found a source and line, but no column");s.decode(m,p),r.originalColumn=u+p.value,u=r.originalColumn,(m=p.rest).length>0&&!this._nextCharIsMappingSeparator(m)&&(s.decode(m,p),r.name=this._names.at(l+p.value),l+=p.value,m=p.rest)}this.__generatedMappings.push(r),"number"==typeof r.originalLine&&this.__originalMappings.push(r)}this.__generatedMappings.sort(n.compareByGeneratedPositions),this.__originalMappings.sort(n.compareByOriginalPositions)},SourceMapConsumer.prototype._findMapping=function SourceMapConsumer_findMapping(e,t,r,n,a){if(e[r]<=0)throw new TypeError("Line must be greater than or equal to 1, got "+e[r]);if(e[n]<0)throw new TypeError("Column must be greater than or equal to 0, got "+e[n]);return i.search(e,t,a)},SourceMapConsumer.prototype.computeColumnSpans=function SourceMapConsumer_computeColumnSpans(){for(var e=0;e<this._generatedMappings.length;++e){var t=this._generatedMappings[e];if(e+1<this._generatedMappings.length){var r=this._generatedMappings[e+1];if(t.generatedLine===r.generatedLine){t.lastGeneratedColumn=r.generatedColumn-1;continue}}t.lastGeneratedColumn=1/0}},SourceMapConsumer.prototype.originalPositionFor=function SourceMapConsumer_originalPositionFor(e){var t={generatedLine:n.getArg(e,"line"),generatedColumn:n.getArg(e,"column")},r=this._findMapping(t,this._generatedMappings,"generatedLine","generatedColumn",n.compareByGeneratedPositions);if(r>=0){var i=this._generatedMappings[r];if(i.generatedLine===t.generatedLine){var a=n.getArg(i,"source",null);return null!=a&&null!=this.sourceRoot&&(a=n.join(this.sourceRoot,a)),{source:a,line:n.getArg(i,"originalLine",null),column:n.getArg(i,"originalColumn",null),name:n.getArg(i,"name",null)}}}return{source:null,line:null,column:null,name:null}},SourceMapConsumer.prototype.sourceContentFor=function SourceMapConsumer_sourceContentFor(e){if(!this.sourcesContent)return null;if(null!=this.sourceRoot&&(e=n.relative(this.sourceRoot,e)),this._sources.has(e))return this.sourcesContent[this._sources.indexOf(e)];var t;if(null!=this.sourceRoot&&(t=n.urlParse(this.sourceRoot))){var r=e.replace(/^file:\/\//,"");if("file"==t.scheme&&this._sources.has(r))return this.sourcesContent[this._sources.indexOf(r)];if((!t.path||"/"==t.path)&&this._sources.has("/"+e))return this.sourcesContent[this._sources.indexOf("/"+e)]}throw new Error('"'+e+'" is not in the SourceMap.')},SourceMapConsumer.prototype.generatedPositionFor=function SourceMapConsumer_generatedPositionFor(e){var t={source:n.getArg(e,"source"),originalLine:n.getArg(e,"line"),originalColumn:n.getArg(e,"column")};null!=this.sourceRoot&&(t.source=n.relative(this.sourceRoot,t.source));var r=this._findMapping(t,this._originalMappings,"originalLine","originalColumn",n.compareByOriginalPositions);if(r>=0){var i=this._originalMappings[r];return{line:n.getArg(i,"generatedLine",null),column:n.getArg(i,"generatedColumn",null),lastColumn:n.getArg(i,"lastGeneratedColumn",null)}}return{line:null,column:null,lastColumn:null}},SourceMapConsumer.prototype.allGeneratedPositionsFor=function SourceMapConsumer_allGeneratedPositionsFor(e){var t={source:n.getArg(e,"source"),originalLine:n.getArg(e,"line"),originalColumn:1/0};null!=this.sourceRoot&&(t.source=n.relative(this.sourceRoot,t.source));var r=[],i=this._findMapping(t,this._originalMappings,"originalLine","originalColumn",n.compareByOriginalPositions);if(i>=0)for(var a=this._originalMappings[i];a&&a.originalLine===t.originalLine;)r.push({line:n.getArg(a,"generatedLine",null),column:n.getArg(a,"generatedColumn",null),lastColumn:n.getArg(a,"lastGeneratedColumn",null)}),a=this._originalMappings[--i];return r.reverse()},SourceMapConsumer.GENERATED_ORDER=1,SourceMapConsumer.ORIGINAL_ORDER=2,SourceMapConsumer.prototype.eachMapping=function SourceMapConsumer_eachMapping(e,t,r){var i,a=t||null;switch(r||SourceMapConsumer.GENERATED_ORDER){case SourceMapConsumer.GENERATED_ORDER:i=this._generatedMappings;break;case SourceMapConsumer.ORIGINAL_ORDER:i=this._originalMappings;break;default:throw new Error("Unknown order of iteration.")}var s=this.sourceRoot;i.map((function(e){var t=e.source;return null!=t&&null!=s&&(t=n.join(s,t)),{source:t,generatedLine:e.generatedLine,generatedColumn:e.generatedColumn,originalLine:e.originalLine,originalColumn:e.originalColumn,name:e.name}})).forEach(e,a)},t.SourceMapConsumer=SourceMapConsumer})),"function"!=typeof(r=makeDefine(t,"./source-node")))r=require("amdefine")(e,require);r((function(e,t,r){var n=e("./source-map-generator").SourceMapGenerator,i=e("./util"),a=/(\r?\n)/,s="$$$isSourceNode$$$";function SourceNode(e,t,r,n,i){this.children=[],this.sourceContents={},this.line=null==e?null:e,this.column=null==t?null:t,this.source=null==r?null:r,this.name=null==i?null:i,this[s]=!0,null!=n&&this.add(n)}SourceNode.fromStringWithSourceMap=function SourceNode_fromStringWithSourceMap(e,t,r){var n=new SourceNode,s=e.split(a),shiftNextLine=function(){return s.shift()+(s.shift()||"")},o=1,u=0,c=null;return t.eachMapping((function(e){if(null!==c){if(!(o<e.generatedLine)){t=(r=s[0]).substr(0,e.generatedColumn-u);return s[0]=r.substr(e.generatedColumn-u),u=e.generatedColumn,addMappingWithCode(c,t),void(c=e)}var t="";addMappingWithCode(c,shiftNextLine()),o++,u=0}for(;o<e.generatedLine;)n.add(shiftNextLine()),o++;if(u<e.generatedColumn){var r=s[0];n.add(r.substr(0,e.generatedColumn)),s[0]=r.substr(e.generatedColumn),u=e.generatedColumn}c=e}),this),s.length>0&&(c&&addMappingWithCode(c,shiftNextLine()),n.add(s.join(""))),t.sources.forEach((function(e){var a=t.sourceContentFor(e);null!=a&&(null!=r&&(e=i.join(r,e)),n.setSourceContent(e,a))})),n;function addMappingWithCode(e,t){if(null===e||void 0===e.source)n.add(t);else{var a=r?i.join(r,e.source):e.source;n.add(new SourceNode(e.originalLine,e.originalColumn,a,t,e.name))}}},SourceNode.prototype.add=function SourceNode_add(e){if(Array.isArray(e))e.forEach((function(e){this.add(e)}),this);else{if(!e[s]&&"string"!=typeof e)throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+e);e&&this.children.push(e)}return this},SourceNode.prototype.prepend=function SourceNode_prepend(e){if(Array.isArray(e))for(var t=e.length-1;t>=0;t--)this.prepend(e[t]);else{if(!e[s]&&"string"!=typeof e)throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+e);this.children.unshift(e)}return this},SourceNode.prototype.walk=function SourceNode_walk(e){for(var t,r=0,n=this.children.length;r<n;r++)(t=this.children[r])[s]?t.walk(e):""!==t&&e(t,{source:this.source,line:this.line,column:this.column,name:this.name})},SourceNode.prototype.join=function SourceNode_join(e){var t,r,n=this.children.length;if(n>0){for(t=[],r=0;r<n-1;r++)t.push(this.children[r]),t.push(e);t.push(this.children[r]),this.children=t}return this},SourceNode.prototype.replaceRight=function SourceNode_replaceRight(e,t){var r=this.children[this.children.length-1];return r[s]?r.replaceRight(e,t):"string"==typeof r?this.children[this.children.length-1]=r.replace(e,t):this.children.push("".replace(e,t)),this},SourceNode.prototype.setSourceContent=function SourceNode_setSourceContent(e,t){this.sourceContents[i.toSetString(e)]=t},SourceNode.prototype.walkSourceContents=function SourceNode_walkSourceContents(e){for(var t=0,r=this.children.length;t<r;t++)this.children[t][s]&&this.children[t].walkSourceContents(e);var n=Object.keys(this.sourceContents);for(t=0,r=n.length;t<r;t++)e(i.fromSetString(n[t]),this.sourceContents[n[t]])},SourceNode.prototype.toString=function SourceNode_toString(){var e="";return this.walk((function(t){e+=t})),e},SourceNode.prototype.toStringWithSourceMap=function SourceNode_toStringWithSourceMap(e){var t={code:"",line:1,column:0},r=new n(e),i=!1,a=null,s=null,o=null,u=null;return this.walk((function(e,n){t.code+=e,null!==n.source&&null!==n.line&&null!==n.column?(a===n.source&&s===n.line&&o===n.column&&u===n.name||r.addMapping({source:n.source,original:{line:n.line,column:n.column},generated:{line:t.line,column:t.column},name:n.name}),a=n.source,s=n.line,o=n.column,u=n.name,i=!0):i&&(r.addMapping({generated:{line:t.line,column:t.column}}),a=null,i=!1);for(var c=0,l=e.length;c<l;c++)10===e.charCodeAt(c)?(t.line++,t.column=0,c+1===l?(a=null,i=!1):i&&r.addMapping({source:n.source,original:{line:n.line,column:n.column},generated:{line:t.line,column:t.column},name:n.name})):t.column++})),this.walkSourceContents((function(e,t){r.setSourceContent(e,t)})),{code:t.code,map:r}},t.SourceNode=SourceNode}));var n=t["./source-map-generator"].SourceMapGenerator,i=t["./source-map-consumer"].SourceMapConsumer,a=t["./source-node"].SourceNode,s=t["./util"].join;return{get SourceMapGenerator(){return n},get SourceMapConsumer(){return i},get SourceNode(){return a},get join(){return s}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/outputgeneration/toSource.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeMapWriter.js","traceur@0.0.111/src/outputgeneration/toSource.js")).ParseTreeMapWriter,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeWriter.js","traceur@0.0.111/src/outputgeneration/toSource.js")).ParseTreeWriter,r=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./SourceMapIntegration.js","traceur@0.0.111/src/outputgeneration/toSource.js")).SourceMapGenerator;function toSource(n){var i=arguments[1],a=void 0!==arguments[2]?arguments[2]:"<toSourceOutput>",s=arguments[3],o=i&&i.sourceMapGenerator,u=i&&i.sourceMaps;!o&&u&&(o=new r({file:a,sourceRoot:s,skipValidation:!0}));var c,l={sourceMapGenerator:o,sourceRoot:s,lowResolution:i&&i.lowResolutionSourceMap};return(c=o?new e(l,i):new t(i)).visitAny(n),[c.toString(),o&&o.toString()]}return{get toSource(){return toSource}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/outputgeneration/TreeWriter.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./toSource.js","traceur@0.0.111/src/outputgeneration/TreeWriter.js")).toSource;function write(t){var r,n,i=arguments[1],a=void 0!==arguments[2]?arguments[2]:"<TreeWriter-output>",s=arguments[3],o=e(t,i,a,s),u=(n=(r=o[Symbol.iterator]()).next()).done?void 0:n.value,c=(n=r.next()).done?void 0:n.value;return c&&(i.generatedSourceMap=c),u}var t=$traceurRuntime.createClass((function t(){}),{},{});return t.write=write,{get write(){return write},get TreeWriter(){return t}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/syntax/ParseTreeValidator.js",[],(function(){"use strict";var e,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTrees.js","traceur@0.0.111/src/syntax/ParseTreeValidator.js")).NewExpression,r=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeVisitor.js","traceur@0.0.111/src/syntax/ParseTreeValidator.js")).ParseTreeVisitor,n=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../outputgeneration/TreeWriter.js","traceur@0.0.111/src/syntax/ParseTreeValidator.js")).TreeWriter,i=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./TokenType.js","traceur@0.0.111/src/syntax/ParseTreeValidator.js")),a=i.AMPERSAND,s=i.AMPERSAND_EQUAL,o=i.AND,u=i.BAR,c=i.BAR_EQUAL,l=i.CARET,m=i.CARET_EQUAL,p=i.CLOSE_ANGLE,f=i.EQUAL,h=i.EQUAL_EQUAL,d=i.EQUAL_EQUAL_EQUAL,g=i.GREATER_EQUAL,T=i.IDENTIFIER,y=i.IN,R=i.INSTANCEOF,S=i.LEFT_SHIFT,_=i.LEFT_SHIFT_EQUAL,v=i.LESS_EQUAL,E=i.MINUS,M=i.MINUS_EQUAL,A=i.NOT_EQUAL,x=i.NOT_EQUAL_EQUAL,$=i.NUMBER,C=i.OPEN_ANGLE,N=i.OR,P=i.PERCENT,b=i.PERCENT_EQUAL,w=i.PLUS,j=i.PLUS_EQUAL,L=i.RIGHT_SHIFT,I=i.RIGHT_SHIFT_EQUAL,O=i.SLASH,F=i.SLASH_EQUAL,k=i.STAR,D=i.STAR_EQUAL,B=i.STAR_STAR,z=i.STAR_STAR_EQUAL,V=i.STRING,G=i.UNSIGNED_RIGHT_SHIFT,U=i.UNSIGNED_RIGHT_SHIFT_EQUAL,W=i.YIELD,H=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./trees/ParseTreeType.js","traceur@0.0.111/src/syntax/ParseTreeValidator.js")),Y=H.ARRAY_PATTERN,X=H.ASSIGNMENT_ELEMENT,J=H.BINDING_ELEMENT,K=H.BINDING_IDENTIFIER,q=H.BLOCK,Q=H.CASE_CLAUSE,Z=H.CATCH,ee=H.CLASS_DECLARATION,te=H.COMPUTED_PROPERTY_NAME,re=H.DEFAULT_CLAUSE,ne=H.EXPORT_DEFAULT,ie=H.EXPORT_SPECIFIER,ae=H.EXPORT_SPECIFIER_SET,se=H.EXPORT_STAR,oe=H.FINALLY,ue=H.FORMAL_PARAMETER,ce=H.FORMAL_PARAMETER_LIST,le=H.FORWARD_DEFAULT_EXPORT,me=H.FUNCTION_BODY,pe=H.FUNCTION_DECLARATION,fe=H.GET_ACCESSOR,he=H.IDENTIFIER_EXPRESSION,de=H.IMPORTED_BINDING,ge=H.IMPORT_CLAUSE_PAIR,Te=H.IMPORT_SPECIFIER_SET,ye=H.IMPORT_TYPE_CLAUSE,Re=H.JSX_ATTRIBUTE,Se=H.JSX_ELEMENT_NAME,_e=H.JSX_ELEMENT,ve=H.JSX_PLACEHOLDER,Ee=H.JSX_SPREAD_ATTRIBUTE,Me=H.JSX_TEXT,Ae=H.LITERAL_PROPERTY_NAME,xe=H.METHOD,$e=H.MODULE_SPECIFIER,Ce=H.NAMED_EXPORT,Ne=H.NAME_SPACE_EXPORT,Pe=H.NAME_SPACE_IMPORT,be=H.OBJECT_PATTERN,we=H.OBJECT_PATTERN_FIELD,je=H.PROPERTY_NAME_ASSIGNMENT,Le=H.PROPERTY_NAME_SHORTHAND,Ie=H.PROPERTY_VARIABLE_DECLARATION,Oe=H.REST_PARAMETER,Fe=H.SET_ACCESSOR,ke=H.SPREAD_EXPRESSION,De=H.TEMPLATE_LITERAL_PORTION,Be=H.TEMPLATE_SUBSTITUTION,ze=H.TYPE_ALIAS_DECLARATION,Ve=H.TYPE_ARGUMENTS,Ge=H.TYPE_NAME,Ue=H.TYPE_PARAMETER,We=H.TYPE_PARAMETERS,He=H.VARIABLE_DECLARATION_LIST,Ye=H.VARIABLE_STATEMENT,Xe=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../util/assert.js","traceur@0.0.111/src/syntax/ParseTreeValidator.js")).assert,Je=(e=Error,$traceurRuntime.createClass((function ValidationError(e,t){$traceurRuntime.superConstructor(ValidationError).call(this),this.tree=e,this.message=t}),{},{},e)),Ke=function(e){return $traceurRuntime.createClass((function ParseTreeValidator(){$traceurRuntime.superConstructor(ParseTreeValidator).apply(this,arguments)}),{fail_:function(e,t){throw new Je(e,t)},check_:function(e,t,r){e||this.fail_(t,r)},checkVisit_:function(e,t,r){this.check_(e,t,r),this.visitAny(t)},checkType_:function(e,t,r){this.checkVisit_(t.type===e,t,r)},visitArgumentList:function(e){for(var t=0;t<e.args.length;t++){var r=e.args[t];this.checkVisit_(r.isAssignmentOrSpread(),r,"assignment or spread expected")}},visitArrayLiteral:function(e){for(var t=0;t<e.elements.length;t++){var r=e.elements[t];this.checkVisit_(null===r||r.isAssignmentOrSpread(),r,"assignment or spread expected")}},visitArrayPattern:function(e){for(var t=0;t<e.elements.length;t++){var r=e.elements[t];this.checkVisit_(null===r||r.type===J||r.type===X||r.isLeftHandSideExpression()||r.isPattern()||r.isSpreadPatternElement(),r,"null, sub pattern, left hand side expression or spread expected"),r&&r.isSpreadPatternElement()&&this.check_(t===e.elements.length-1,r,"spread in array patterns must be the last element")}},visitBinaryExpression:function(e){switch(e.operator.type){case f:case D:case z:case F:case b:case j:case M:case _:case I:case U:case s:case m:case c:this.check_(e.left.isLeftHandSideExpression()||e.left.isPattern(),e.left,"left hand side expression or pattern expected"),this.check_(e.right.isAssignmentExpression(),e.right,"assignment expression expected");break;case o:case N:case u:case l:case a:case h:case A:case d:case x:case C:case p:case g:case v:case R:case y:case S:case L:case G:case w:case E:case k:case O:case P:case B:this.check_(e.left.isAssignmentExpression(),e.left,"assignment expression expected"),this.check_(e.right.isAssignmentExpression(),e.right,"assignment expression expected");break;default:this.fail_(e,"unexpected binary operator")}this.visitAny(e.left),this.visitAny(e.right)},visitBindingElement:function(e){var t=e.binding;this.checkVisit_(t.type===K||t.type===be||t.type===Y,t,"expected valid binding element"),this.visitAny(e.initializer)},visitAssignmentElement:function(e){var t=e.assignment;this.checkVisit_(t.type===be||t.type===Y||t.isLeftHandSideExpression(),t,"expected valid assignment element"),this.visitAny(e.initializer)},visitBlock:function(e){for(var t=0;t<e.statements.length;t++){var r=e.statements[t];this.checkVisit_(r.isStatementListItem(),r,"statement or function declaration expected")}},visitCallExpression:function(e){this.check_(e.operand.isMemberExpression(),e.operand,"member expression expected"),e.operand instanceof t&&this.check_(null!==e.operand.args,e.operand,"new args expected"),this.visitAny(e.operand),this.visitAny(e.args)},visitCaseClause:function(e){this.checkVisit_(e.expression.isExpression(),e.expression,"expression expected");for(var t=0;t<e.statements.length;t++){var r=e.statements[t];this.checkVisit_(r.isStatementListItem(),r,"statement expected")}},visitCatch:function(e){this.checkVisit_(e.binding.isPattern()||e.binding.type===K,e.binding,"binding identifier expected"),this.checkVisit_(e.catchBody.type===q,e.catchBody,"block expected")},visitClassDeclaration:function(e){this.visitClassShared_(e)},visitClassExpression:function(e){this.visitClassShared_(e)},visitClassShared_:function(e){e.typeParameters&&this.checkVisit_(e.typeParameters.type===We,e.typeParameters,"type parameters expected");for(var t=0;t<e.elements.length;t++){var r=e.elements[t];switch(r.type){case fe:case Fe:case xe:case Ie:break;default:this.fail_(r,"class element expected")}this.visitAny(r)}},visitCommaExpression:function(e){for(var t=0;t<e.expressions.length;t++){var r=e.expressions[t];this.checkVisit_(r.isExpression(),r,"expression expected")}},visitConditionalExpression:function(e){this.checkVisit_(e.condition.isAssignmentExpression(),e.condition,"expression expected"),this.checkVisit_(e.left.isAssignmentExpression(),e.left,"expression expected"),this.checkVisit_(e.right.isAssignmentExpression(),e.right,"expression expected")},visitCoverFormals:function(e){this.fail_(e,"CoverFormals should have been removed")},visitCoverInitializedName:function(e){this.fail_(e,"CoverInitializedName should have been removed")},visitDefaultClause:function(e){for(var t=0;t<e.statements.length;t++){var r=e.statements[t];this.checkVisit_(r.isStatementListItem(),r,"statement expected")}},visitDoWhileStatement:function(e){this.checkVisit_(e.body.isStatement(),e.body,"statement expected"),this.checkVisit_(e.condition.isExpression(),e.condition,"expression expected")},visitExportDeclaration:function(e){var t=e.declaration.type;this.checkVisit_(t===Ye||t===pe||t===ee||t===Ce||t===ne||t===ze,e.declaration,"expected valid export tree")},visitNamedExport:function(e){var t=e.exportClause.type;this.checkVisit_(t===ie||t===ae||t===se||t===le||t===Ne,e.exportClause,"Invalid export clause"),e.moduleSpecifier&&this.checkVisit_(e.moduleSpecifier.type===$e,e.moduleSpecifier,"module expression expected")},visitExportSpecifierSet:function(e){this.check_(e.specifiers.length>0,e,"expected at least one identifier");for(var t=0;t<e.specifiers.length;t++){var r=e.specifiers[t];this.checkVisit_(r.type===ie||r.type===he,r,"expected valid export specifier")}},visitExpressionStatement:function(e){this.checkVisit_(e.expression.isExpression(),e.expression,"expression expected")},visitFinally:function(e){this.checkVisit_(e.block.type===q,e.block,"block expected")},visitForOfStatement:function(e){this.checkVisit_(e.initializer.isPattern()||e.initializer.type===he||e.initializer.type===He&&1===e.initializer.declarations.length,e.initializer,"for-each statement may not have more than one variable declaration"),this.checkVisit_(e.collection.isExpression(),e.collection,"expression expected"),this.checkVisit_(e.body.isStatement(),e.body,"statement expected")},visitForInStatement:function(e){e.initializer.type===He?this.checkVisit_(e.initializer.declarations.length<=1,e.initializer,"for-in statement may not have more than one variable declaration"):this.checkVisit_(e.initializer.isPattern()||e.initializer.isExpression(),e.initializer,"variable declaration, expression or pattern expected"),this.checkVisit_(e.collection.isExpression(),e.collection,"expression expected"),this.checkVisit_(e.body.isStatement(),e.body,"statement expected")},visitFormalParameterList:function(e){for(var t=0;t<e.parameters.length;t++){var r=e.parameters[t];switch(Xe(r.type===ue),(r=r.parameter).type){case J:break;case Oe:this.checkVisit_(t===e.parameters.length-1,r,"rest parameters must be the last parameter in a parameter list"),this.checkType_(K,r.identifier,"binding identifier expected");break;default:this.fail_(r,"parameters must be identifiers or rest parameters. Found: "+r.type)}this.visitAny(r)}},visitForStatement:function(e){null!==e.initializer&&this.checkVisit_(e.initializer.isExpression()||e.initializer.type===He,e.initializer,"variable declaration list or expression expected"),null!==e.condition&&this.checkVisit_(e.condition.isExpression(),e.condition,"expression expected"),null!==e.increment&&this.checkVisit_(e.increment.isExpression(),e.increment,"expression expected"),this.checkVisit_(e.body.isStatement(),e.body,"statement expected")},visitFunctionBody:function(e){for(var t=0;t<e.statements.length;t++){var r=e.statements[t];this.checkVisit_(r.isStatementListItem(),r,"statement expected")}},visitFunctionDeclaration:function(e){this.checkType_(K,e.name,"binding identifier expected"),this.visitFunction_(e)},visitFunctionExpression:function(e){null!==e.name&&this.checkType_(K,e.name,"binding identifier expected"),this.visitFunction_(e)},visitFunction_:function(e){this.checkType_(ce,e.parameterList,"formal parameters expected"),this.checkType_(me,e.body,"function body expected")},visitGetAccessor:function(e){this.checkPropertyName_(e.name),this.checkType_(me,e.body,"function body expected")},visitIfStatement:function(e){this.checkVisit_(e.condition.isExpression(),e.condition,"expression expected"),this.checkVisit_(e.ifClause.isStatement(),e.ifClause,"statement expected"),null!==e.elseClause&&this.checkVisit_(e.elseClause.isStatement(),e.elseClause,"statement expected")},visitImportDeclaration:function(e){null!==e.importClause&&this.check_(e.importClause.type===Pe||e.importClause.type===de||e.importClause.type===Te||e.importClause.type===ge||e.importClause.type===ye,e.importClause,"Invalid import clause"),this.checkType_($e,e.moduleSpecifier,"module specifier expected")},visitImportSpecifier:function(e){this.checkType_(de,e.binding,"ImportedBinding expected")},visitImportedBinding:function(e){this.checkType_(K,e.binding,"binding identifier expected")},visitImportClausePair:function(e){this.checkType_(de,e.first,"ImportedBinding expected"),this.check_(e.second.type===Pe||e.second.type===Te,e.second,"Invalid import clause")},visitJsxElement:function(e){this.checkType_(Se,e.name,"JSX Element Name expected");for(var t=0;t<e.attributes.length;t++){var r=e.attributes[t];this.checkVisit_(r.type===Re||r.type===Ee,r,"JSX Attribute expected")}for(var n=0;n<e.children.length;n++){var i=e.children[n];this.checkVisit_(i.type===_e||i.type===ve||i.type===Me,i,"JSX child expected")}},visitLabelledStatement:function(e){this.checkVisit_(e.statement.isStatement(),e.statement,"statement expected")},visitMemberExpression:function(e){this.check_(e.operand.isMemberExpression(),e.operand,"member expression expected"),e.operand instanceof t&&this.check_(null!==e.operand.args,e.operand,"new args expected"),this.visitAny(e.operand)},visitMemberLookupExpression:function(e){this.check_(e.operand.isMemberExpression(),e.operand,"member expression expected"),e.operand instanceof t&&this.check_(null!==e.operand.args,e.operand,"new args expected"),this.visitAny(e.operand)},visitSyntaxErrorTree:function(e){this.fail_(e,"parse tree contains SyntaxError: "+e.message)},visitModuleSpecifier:function(e){this.check_(e.token.type===V,e,"string or identifier expected")},visitNewExpression:function(e){this.checkVisit_(e.operand.isMemberExpression(),e.operand,"member expression expected"),this.visitAny(e.args)},visitObjectLiteral:function(e){for(var t=0;t<e.propertyNameAndValues.length;t++){var r=e.propertyNameAndValues[t];switch(r.type){case fe:case Fe:case xe:this.check_(!r.isStatic,r,"static is not allowed in object literal expression");break;case je:case Le:case ke:break;default:this.fail_(r,"accessor, property name assignment or property method assigment expected")}this.visitAny(r)}},visitObjectPattern:function(e){for(var t=0;t<e.fields.length;t++){var r=e.fields[t];this.checkVisit_(r.type===we||r.type===X||r.type===J,r,"object pattern field expected")}},visitObjectPatternField:function(e){this.checkPropertyName_(e.name),this.checkVisit_(e.element.type===X||e.element.type===J||e.element.isPattern()||e.element.isLeftHandSideExpression(),e.element,"binding element expected")},visitParenExpression:function(e){e.expression.isPattern()?this.visitAny(e.expression):this.checkVisit_(e.expression.isExpression(),e.expression,"expression expected")},visitPostfixExpression:function(e){this.checkVisit_(e.operand.isAssignmentExpression(),e.operand,"assignment expression expected")},visitPredefinedType:function(e){},visitScript:function(e){for(var t=0;t<e.scriptItemList.length;t++){var r=e.scriptItemList[t];this.checkVisit_(r.isScriptElement(),r,"global script item expected")}},checkPropertyName_:function(e){this.checkVisit_(e.type===Ae||e.type===te,e,"property name expected")},visitPropertyNameAssignment:function(e){this.checkPropertyName_(e.name),this.checkVisit_(e.value.isAssignmentExpression(),e.value,"assignment expression expected")},visitPropertyNameShorthand:function(e){this.check_(e.name.type===T||e.name.type===W||e.name.isStrictKeyword(),e,"identifier token expected")},visitLiteralPropertyName:function(e){var t=e.literalToken.type;this.check_(e.literalToken.isKeyword()||t===T||t===$||t===V,e,"Unexpected token in literal property name")},visitTemplateLiteralExpression:function(e){e.operand&&this.checkVisit_(e.operand.isMemberExpression(),e.operand,"member or call expression expected");for(var t=0;t<e.elements.length;t++){var r=e.elements[t];t%2?this.checkType_(Be,r,"Template literal substitution expected"):this.checkType_(De,r,"Template literal portion expected")}},visitReturnStatement:function(e){null!==e.expression&&this.checkVisit_(e.expression.isExpression(),e.expression,"expression expected")},visitSetAccessor:function(e){this.checkPropertyName_(e.name),this.checkType_(me,e.body,"function body expected")},visitSpreadExpression:function(e){this.checkVisit_(e.expression.isAssignmentExpression(),e.expression,"assignment expression expected")},visitStateMachine:function(e){this.fail_(e,"State machines are never valid outside of the GeneratorTransformer pass.")},visitSwitchStatement:function(e){this.checkVisit_(e.expression.isExpression(),e.expression,"expression expected");for(var t=0,r=0;r<e.caseClauses.length;r++){var n=e.caseClauses[r];n.type===re?(++t,this.checkVisit_(t<=1,n,"no more than one default clause allowed")):this.checkType_(Q,n,"case or default clause expected")}},visitThrowStatement:function(e){null!==e.value&&this.checkVisit_(e.value.isExpression(),e.value,"expression expected")},visitTryStatement:function(e){this.checkType_(q,e.body,"block expected"),null!==e.catchBlock&&this.checkType_(Z,e.catchBlock,"catch block expected"),null!==e.finallyBlock&&this.checkType_(oe,e.finallyBlock,"finally block expected"),null===e.catchBlock&&null===e.finallyBlock&&this.fail_(e,"either catch or finally must be present")},visitTypeArguments:function(e){for(var t=e.args,r=0;r<t.length;r++)this.checkVisit_(t[r].isType(),t[r],"Type arguments must be type expressions")},visitTypeName:function(e){this.checkVisit_(null===e.moduleName||e.moduleName.type===Ge,e.moduleName,"moduleName must be null or a TypeName"),this.check_(e.name.type===T,e,"name must be an identifier")},visitTypeReference:function(e){this.checkType_(Ge,e.typeName,"typeName must be a TypeName"),this.checkType_(Ve,e.args,"args must be a TypeArguments")},visitTypeParameters:function(e){for(var t=e.parameters,r=0;r<t.length;r++)this.checkType_(Ue,t[r],"Type parameters must all be type parameters")},visitTypeParameter:function(e){this.check_(e.identifierToken.type===T,e,"Type parameter must be an identifier token"),e.extendsType&&this.checkVisit_(e.extendsType.isType(),e.extendsType,"extends type must be a type expression")},visitUnaryExpression:function(e){this.checkVisit_(e.operand.isAssignmentExpression(),e.operand,"assignment expression expected")},visitVariableDeclaration:function(e){this.checkVisit_(e.lvalue.isPattern()||e.lvalue.type===K,e.lvalue,"binding identifier expected, found: "+e.lvalue.type),null!==e.initializer&&this.checkVisit_(e.initializer.isAssignmentExpression(),e.initializer,"assignment expression expected")},visitWhileStatement:function(e){this.checkVisit_(e.condition.isExpression(),e.condition,"expression expected"),this.checkVisit_(e.body.isStatement(),e.body,"statement expected")},visitWithStatement:function(e){this.checkVisit_(e.expression.isExpression(),e.expression,"expression expected"),this.checkVisit_(e.body.isStatement(),e.body,"statement expected")},visitYieldExpression:function(e){null!==e.expression&&this.checkVisit_(e.expression.isExpression(),e.expression,"expression expected")}},{},e)}(r);return Ke.validate=function(e){var t=new Ke;try{t.visitAny(e)}catch(t){if(!(t instanceof Je))throw t;var r=null;null!==t.tree&&(r=t.tree.location),null===r&&(r=e.location);var i=null!==r?r.start.toString():"(unknown)";throw new Error("Parse tree validation failure '"+t.message+"' at "+i+":\n\n"+n.write(e)+"\n")}},{get ParseTreeValidator(){return Ke}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/MultiTransformer.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/ParseTreeValidator.js","traceur@0.0.111/src/codegeneration/MultiTransformer.js")).ParseTreeValidator,t=$traceurRuntime.createClass((function t(e,r){this.reporter_=e,this.validate_=r,this.treeTransformers_=[]}),{append:function(e){this.treeTransformers_.push(e)},transform:function(t){var r=this.reporter_,n=this.validate_;return this.treeTransformers_.every((function(i){return t=i(t),!r.hadError()&&(n&&e.validate(t),!0)})),t}},{});return{get MultiTransformer(){return t}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/NumericLiteralTransformer.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeTransformer.js","traceur@0.0.111/src/codegeneration/NumericLiteralTransformer.js")).ParseTreeTransformer,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTrees.js","traceur@0.0.111/src/codegeneration/NumericLiteralTransformer.js")),r=t.LiteralExpression,n=t.LiteralPropertyName,i=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/LiteralToken.js","traceur@0.0.111/src/codegeneration/NumericLiteralTransformer.js")).LiteralToken,a=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/TokenType.js","traceur@0.0.111/src/codegeneration/NumericLiteralTransformer.js")).NUMBER;function needsTransform(e){return e.type===a&&/^0[bBoO]/.test(e.value)}function transformToken(e){return new i(a,String(e.processedValue),e.location)}var s,o=(s=e,$traceurRuntime.createClass((function NumericLiteralTransformer(){$traceurRuntime.superConstructor(NumericLiteralTransformer).apply(this,arguments)}),{transformLiteralExpression:function(e){var t=e.literalToken;return needsTransform(t)?new r(e.location,transformToken(t)):e},transformLiteralPropertyName:function(e){var t=e.literalToken;return needsTransform(t)?new n(e.location,transformToken(t)):e}},{},s));return{get NumericLiteralTransformer(){return o}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/ObjectLiteralTransformer.js",[],(function(){"use strict";var e,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./FindVisitor.js","traceur@0.0.111/src/codegeneration/ObjectLiteralTransformer.js")).FindVisitor,r=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTrees.js","traceur@0.0.111/src/codegeneration/ObjectLiteralTransformer.js")),n=r.FunctionExpression,i=r.IdentifierExpression,a=r.LiteralExpression,s=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./TempVarTransformer.js","traceur@0.0.111/src/codegeneration/ObjectLiteralTransformer.js")).TempVarTransformer,o=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/TokenType.js","traceur@0.0.111/src/codegeneration/ObjectLiteralTransformer.js")).IDENTIFIER,u=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTreeType.js","traceur@0.0.111/src/codegeneration/ObjectLiteralTransformer.js")),c=u.COMPUTED_PROPERTY_NAME,l=u.LITERAL_PROPERTY_NAME,m=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../util/StringMap.js","traceur@0.0.111/src/codegeneration/ObjectLiteralTransformer.js")).StringMap,p=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeFactory.js","traceur@0.0.111/src/codegeneration/ObjectLiteralTransformer.js")),f=p.createAssignmentExpression,h=p.createCommaExpression,d=p.createDefineProperty,g=p.createEmptyParameterList,T=p.createFunctionExpression,y=p.createIdentifierExpression,R=p.createObjectCreate,S=p.createObjectLiteral,_=p.createParenExpression,v=p.createPropertyNameAssignment,E=p.createStringLiteral,M=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../staticsemantics/PropName.js","traceur@0.0.111/src/codegeneration/ObjectLiteralTransformer.js")).propName,A=(e=t,$traceurRuntime.createClass((function FindAdvancedProperty(e){$traceurRuntime.superConstructor(FindAdvancedProperty).call(this,!0),this.transformOptions_=e,this.protoExpression=null}),{visitPropertyNameAssignment:function(e){isProtoName(e.name)?this.protoExpression=e.value:this.visitAny(e.name)},visitMethod:function(e){this.visitAny(e.name)},visitGetAccessor:function(e){this.transformOptions_.properTailCalls?this.found=!0:this.visitAny(e.name)},visitSetAccessor:function(e){this.transformOptions_.properTailCalls?this.found=!0:this.visitAny(e.name)},visitComputedPropertyName:function(e){this.transformOptions_.computedPropertyNames&&(this.found=!0)}},{},e));function isProtoName(e){return"__proto__"===M(e)}var x=function(e){function ObjectLiteralTransformer(e,t,r){$traceurRuntime.superConstructor(ObjectLiteralTransformer).call(this,e,t,r),this.transformOptions_=r.transformOptions,this.protoExpression=null,this.needsAdvancedTransform=!1,this.seenAccessors=null}return $traceurRuntime.createClass(ObjectLiteralTransformer,{findSeenAccessor_:function(e){if(e.type===c)return null;var t=M(e);return this.seenAccessors.get(t)},removeSeenAccessor_:function(e){if(e.type!==c){var t=M(e);this.seenAccessors.delete(t)}},addSeenAccessor_:function(e,t){if(e.type!==c){var r=M(e);this.seenAccessors.set(r,t)}},createProperty_:function(e,t){var r;if(r=e.type===l?this.needsAdvancedTransform?this.getPropertyName_(e):e:e.expression,t.get||t.set){var n=this.findSeenAccessor_(e);if(n)return n.get=t.get||n.get,n.set=t.set||n.set,this.removeSeenAccessor_(e),null;this.addSeenAccessor_(e,t)}return[r,t]},getPropertyName_:function(e){var t=e.literalToken;switch(t.type){case o:return E(t.value);default:return t.isKeyword()?E(t.type):new a(t.location,t)}},transformClassDeclaration:function(e){return e},transformClassExpression:function(e){return e},transformObjectLiteral:function(e){var t=this.needsAdvancedTransform,r=this.seenAccessors,n=this.transformObjectLiteralInner_(e);return this.needsAdvancedTransform=t,this.seenAccessors=r,n},transformObjectLiteralInner_:function(e){var t=new A(this.transformOptions_);if(t.visitAny(e),!t.found)return this.needsAdvancedTransform=!1,$traceurRuntime.superGet(this,ObjectLiteralTransformer.prototype,"transformObjectLiteral").call(this,e);this.needsAdvancedTransform=!0,this.seenAccessors=new m;var r=this.transformList(e.propertyNameAndValues);r=r.filter((function(e){return e}));var n,i=this.addTempVar(),a=y(i),s=r.map((function(e){var t=e[0],r=e[1];return d(a,t,r)})),o=this.transformAny(t.protoExpression);return n=o?R(o):S([]),s.unshift(f(a,n)),s.push(a),_(h(s))},transformPropertyNameAssignment:function(e){return this.needsAdvancedTransform?isProtoName(e.name)?null:this.createProperty_(e.name,{value:this.transformAny(e.value),configurable:!0,enumerable:!0,writable:!0}):$traceurRuntime.superGet(this,ObjectLiteralTransformer.prototype,"transformPropertyNameAssignment").call(this,e)},transformGetAccessor:function(e){if(!this.needsAdvancedTransform)return $traceurRuntime.superGet(this,ObjectLiteralTransformer.prototype,"transformGetAccessor").call(this,e);var t=this.transformAny(e.body),r=T(g(),t);return this.createProperty_(e.name,{get:r,configurable:!0,enumerable:!0})},transformSetAccessor:function(e){if(!this.needsAdvancedTransform)return $traceurRuntime.superGet(this,ObjectLiteralTransformer.prototype,"transformSetAccessor").call(this,e);var t=this.transformAny(e.body),r=this.transformAny(e.parameterList),n=T(r,t);return this.createProperty_(e.name,{set:n,configurable:!0,enumerable:!0})},transformMethod:function(e){var t=new n(e.location,e.debugName,e.functionKind,this.transformAny(e.parameterList),e.typeAnnotation,[],this.transformAny(e.body));if(!this.needsAdvancedTransform)return v(e.name,t);this.transformAny(e.name);return this.createProperty_(e.name,{value:t,configurable:!0,enumerable:!0,writable:!0})},transformPropertyNameShorthand:function(e){if(!this.needsAdvancedTransform)return $traceurRuntime.superGet(this,ObjectLiteralTransformer.prototype,"transformPropertyNameShorthand").call(this,e);this.transformAny(e.name);return this.createProperty_(e.name,{value:new i(e.location,e.name.identifierToken),configurable:!0,enumerable:!1,writable:!0})}},{},e)}(s);return{get ObjectLiteralTransformer(){return x}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/RewriteTailExpressionsTransformer.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeTransformer.js","traceur@0.0.111/src/codegeneration/RewriteTailExpressionsTransformer.js")).ParseTreeTransformer,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTrees.js","traceur@0.0.111/src/codegeneration/RewriteTailExpressionsTransformer.js")),r=t.ArgumentList,n=t.BinaryExpression,i=t.CallExpression,a=t.ConditionalExpression,s=t.MemberExpression,o=t.MemberLookupExpression,u=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeFactory.js","traceur@0.0.111/src/codegeneration/RewriteTailExpressionsTransformer.js")),c=u.createArrayLiteral,l=u.createAssignmentExpression,m=u.createCommaExpression,p=(u.createMemberExpression,u.createIdentifierExpression),f=u.createNullLiteral,h=u.createParenExpression,d=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTreeType.js","traceur@0.0.111/src/codegeneration/RewriteTailExpressionsTransformer.js")),g=d.COMMA_EXPRESSION,T=d.MEMBER_EXPRESSION,y=d.MEMBER_LOOKUP_EXPRESSION,R=d.IDENTIFIER_EXPRESSION,S=d.PAREN_EXPRESSION,_=d.THIS_EXPRESSION,v=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/TokenType.js","traceur@0.0.111/src/codegeneration/RewriteTailExpressionsTransformer.js")),E=v.AND,M=v.OR;function createCall(e,t,n,a){var s=e.args,o=s?s.args:[];o=o.map((function(e){return e.type===g?h(e.type):e}));var u=a.getRuntimeExpression("continuation");return new i(e.location,u,new r(s?s.location:null,[t,n,c(o)]))}var A=function(e){function RewriteTailExpressionsTransformer(e){$traceurRuntime.superConstructor(RewriteTailExpressionsTransformer).call(this),this.bodyTransformer_=e}return $traceurRuntime.createClass(RewriteTailExpressionsTransformer,{transformBinaryExpression:function(e){var t=e.operator;if(t.type!==E&&t.type!==M)return e;var r=this.transformAny(e.right);return r!==e.right?new n(e.location,e.left,t,r):e},transformCallExpression:function(e){for(var t=e.operand;t.type===S;)t=t.expression;switch(t.type){case R:return createCall(e,t,f(),this.bodyTransformer_);case T:case y:return this.transformMemberExpressionCall_(e,t)}return e},transformMemberExpressionCall_:function(e,t){var r,n,i=t.operand;return i.type===R||i.type===_?r=i:(r=p(this.bodyTransformer_.addTempVar()),n=l(r,t.operand)),t=t.type===T?new s(t.location,r,t.memberName):new o(t.location,r,t.memberExpression),n?h(m([n,createCall(e,t,r,this.bodyTransformer_)])):createCall(e,t,r,this.bodyTransformer_)},transformCommaExpression:function(e){var t=e.expressions,r=t[t.length-1],n=this.transformAny(r);return r!==n?((t=t.slice(0,-1)).push(n),new CommaExpression(e.location,t)):e},transformConditionalExpression:function(e){var t=this.transformAny(e.left),r=this.transformAny(e.right);return t!==e.left||r!==e.right?new a(e.location,e.condition,t,r):e},transformNewExpression:function(e){return createCall(e,this.bodyTransformer_.getRuntimeExpression("construct"),e.operand,this.bodyTransformer_)},transformArrayLiteral:function(e){return e},transformArrowFunction:function(e){return e},transformFunctionExpression:function(e){return e},transformIdentifierExpression:function(e){return e},transformLiteralExpression:function(e){return e},transformMemberExpression:function(e){return e},transformMemberLookupExpression:function(e){return e},transformPostfixExpression:function(e){return e},transformObjectLiteral:function(e){return e},transformUnaryExpression:function(e){return e}},{transform:function(e,t){return new RewriteTailExpressionsTransformer(e).transformAny(t)}},e)}(e);return{get RewriteTailExpressionsTransformer(){return A}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/RewriteTailCallsTransformer.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeTransformer.js","traceur@0.0.111/src/codegeneration/RewriteTailCallsTransformer.js")).ParseTreeTransformer,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./RewriteTailExpressionsTransformer.js","traceur@0.0.111/src/codegeneration/RewriteTailCallsTransformer.js")).RewriteTailExpressionsTransformer,r=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTrees.js","traceur@0.0.111/src/codegeneration/RewriteTailCallsTransformer.js")),n=r.ReturnStatement,i=r.TryStatement,a=function(e){function RewriteTailCallsTransformer(e){$traceurRuntime.superConstructor(RewriteTailCallsTransformer).call(this),this.bodyTransformer_=e}return $traceurRuntime.createClass(RewriteTailCallsTransformer,{transformReturnStatement:function(e){var r=e.expression;return null!==r&&(r=t.transform(this.bodyTransformer_,r))!==e.expression?new n(e.location,r):e},transformTryStatement:function(e){var t;if(null!==e.finallyBlock){if((t=this.transformAny(e.finallyBlock))!==e.finallyBlock)return new i(e.location,e.body,e.catchBlock,t)}else if((t=this.transformAny(e.catchBlock))!==e.catchBlock)return new i(e.location,e.body,t,e.finallyBlock);return e},transformForInStatement:function(e){return e},transformForOfStatement:function(e){return e},transformForOnStatement:function(e){return e},transformClassDeclaration:function(e){return e},transformClassExpression:function(e){return e},transformExpressionStatement:function(e){return e},transformComprehensionFor:function(e){return e},transformVariableStatement:function(e){return e}},{transform:function(e,t){return new RewriteTailCallsTransformer(e).transformAny(t)}},e)}((0,$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./SkipFunctionsTransformerTrait.js","traceur@0.0.111/src/codegeneration/RewriteTailCallsTransformer.js")).default)(e));return{get RewriteTailCallsTransformer(){return a}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/ProperTailCallTransformer.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./TempVarTransformer.js","traceur@0.0.111/src/codegeneration/ProperTailCallTransformer.js")).TempVarTransformer,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./RewriteTailCallsTransformer.js","traceur@0.0.111/src/codegeneration/ProperTailCallTransformer.js")).RewriteTailCallsTransformer,r=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeFactory.js","traceur@0.0.111/src/codegeneration/ProperTailCallTransformer.js")),n=r.createFunctionBody,i=r.createFunctionExpression,a=r.createIdentifierExpression,s=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./PlaceholderParser.js","traceur@0.0.111/src/codegeneration/ProperTailCallTransformer.js")),o=s.parseExpression,u=s.parseStatement,c=s.parseStatements,l=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTrees.js","traceur@0.0.111/src/codegeneration/ProperTailCallTransformer.js")),m=l.AnonBlock,p=l.FunctionDeclaration,f=l.FunctionExpression,h=function(e){function ProperTailCallTransformer(e,t,r){$traceurRuntime.superConstructor(ProperTailCallTransformer).call(this,e,t,r),this.inBlock_=!1,this.options=r}return $traceurRuntime.createClass(ProperTailCallTransformer,{transformFunctionDeclaration:function(e){if(null!==(e=$traceurRuntime.superGet(this,ProperTailCallTransformer.prototype,"transformFunctionDeclaration").call(this,e)).functionKind)return e;var t=a(e.name.identifierToken),r=this.getRuntimeExpression("initTailRecursiveFunction"),n=o($traceurRuntime.getTemplateObject(["","(",")"]),r,t),i=this.transformFunction_(e,p);if(i===e)return e;var s=a(this.inBlock_?this.getTempIdentifier():this.addTempVar(n));return this.inBlock_?new m(null,[i,u($traceurRuntime.getTemplateObject(["var "," = ",";"]),s,n)]):i},transformFunctionExpression:function(e){if((e=$traceurRuntime.superGet(this,ProperTailCallTransformer.prototype,"transformFunctionExpression").call(this,e)).functionKind)return e;var t=this.transformFunction_(e,f);if(t===e)return e;var r=this.getRuntimeExpression("initTailRecursiveFunction");return o($traceurRuntime.getTemplateObject(["","(",")"]),r,t)},transformFunction_:function(e,r){var s=t.transform(this,e.body);if(s===e.body)return e;a(this.getTempIdentifier());var o=i(e.parameterList,s),u=this.getRuntimeExpression("call"),l=n(c($traceurRuntime.getTemplateObject(["\n        return ","(",", this, arguments);"]),u,o));return new r(e.location,e.name,e.functionKind,e.parameterList,e.typeAnnotation,e.annotations,l)},transformBlock:function(e){var t=this.inBlock_;this.inBlock_=!0;var r=$traceurRuntime.superGet(this,ProperTailCallTransformer.prototype,"transformBlock").call(this,e);return this.inBlock_=t,r}},{},e)}((0,$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ImportRuntimeTrait.js","traceur@0.0.111/src/codegeneration/ProperTailCallTransformer.js")).default)(e));return{get ProperTailCallTransformer(){return h}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/PropertyNameShorthandTransformer.js",[],(function(){"use strict";var e,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTrees.js","traceur@0.0.111/src/codegeneration/PropertyNameShorthandTransformer.js")),r=t.IdentifierExpression,n=t.LiteralPropertyName,i=t.PropertyNameAssignment,a=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeTransformer.js","traceur@0.0.111/src/codegeneration/PropertyNameShorthandTransformer.js")).ParseTreeTransformer,s=(e=a,$traceurRuntime.createClass((function PropertyNameShorthandTransformer(){$traceurRuntime.superConstructor(PropertyNameShorthandTransformer).apply(this,arguments)}),{transformPropertyNameShorthand:function(e){return new i(e.location,new n(e.location,e.name),new r(e.location,e.name))}},{},e));return{get PropertyNameShorthandTransformer(){return s}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/outputgeneration/regexpuRewritePattern.js",[],(function(){"use strict";var e,t={},r={},n=r.exports={},require=function(e){return t[e]};!function(e){var t="object"==typeof n&&n,i="object"==typeof r&&r&&r.exports==t&&r,a="object"==typeof global&&global;a.global!==a&&a.window!==a||(e=a);var s="A range’s `stop` value must be greater than or equal to the `start` value.",o="Invalid code point value. Code points range from U+000000 to U+10FFFF.",u=/\\x00([^0123456789]|$)/g,c={},l=c.hasOwnProperty,forEach=function(e,t){for(var r=-1,n=e.length;++r<n;)t(e[r],r)},m=c.toString,isArray=function(e){return"[object Array]"==m.call(e)},isNumber=function(e){return"number"==typeof e||"[object Number]"==m.call(e)},pad=function(e,t){var r=String(e);return r.length<t?("0000"+r).slice(-t):r},hex=function(e){return Number(e).toString(16).toUpperCase()},p=[].slice,dataRemove=function(e,t){for(var r,n,i=0,a=e.length;i<a;){if(r=e[i],n=e[i+1],t>=r&&t<n)return t==r?n==r+1?(e.splice(i,2),e):(e[i]=t+1,e):t==n-1?(e[i+1]=t,e):(e.splice(i,2,r,t,t+1,n),e);i+=2}return e},dataRemoveRange=function(e,t,r){if(r<t)throw Error(s);for(var n,i,a=0;a<e.length;){if(n=e[a],i=e[a+1]-1,n>r)return e;if(t<=n&&r>=i)e.splice(a,2);else{if(t>=n&&r<i)return t==n?(e[a]=r+1,e[a+1]=i+1,e):(e.splice(a,2,n,t,r+1,i+1),e);if(t>=n&&t<=i)e[a+1]=t;else if(r>=n&&r<=i)return e[a]=r+1,e;a+=2}}return e},dataAdd=function(e,t){var r,n,i=0,a=null,s=e.length;if(t<0||t>1114111)throw RangeError(o);for(;i<s;){if(r=e[i],n=e[i+1],t>=r&&t<n)return e;if(t==r-1)return e[i]=t,e;if(r>t)return e.splice(null!=a?a+2:0,0,t,t+1),e;if(t==n)return t+1==e[i+2]?(e.splice(i,4,r,e[i+3]),e):(e[i+1]=t+1,e);a=i,i+=2}return e.push(t,t+1),e},dataAddData=function(e,t){for(var r,n,i=0,a=e.slice(),s=t.length;i<s;)a=(r=t[i])==(n=t[i+1]-1)?dataAdd(a,r):dataAddRange(a,r,n),i+=2;return a},dataRemoveData=function(e,t){for(var r,n,i=0,a=e.slice(),s=t.length;i<s;)a=(r=t[i])==(n=t[i+1]-1)?dataRemove(a,r):dataRemoveRange(a,r,n),i+=2;return a},dataAddRange=function(e,t,r){if(r<t)throw Error(s);if(t<0||t>1114111||r<0||r>1114111)throw RangeError(o);for(var n,i,a=0,u=!1,c=e.length;a<c;){if(n=e[a],i=e[a+1],u){if(n==r+1)return e.splice(a-1,2),e;if(n>r)return e;n>=t&&n<=r&&(i>t&&i-1<=r?(e.splice(a,2),a-=2):(e.splice(a-1,2),a-=2))}else{if(n==r+1)return e[a]=t,e;if(n>r)return e.splice(a,0,t,r+1),e;if(t>=n&&t<i&&r+1<=i)return e;t>=n&&t<i||i==t?(e[a+1]=r+1,u=!0):t<=n&&r+1>=i&&(e[a]=t,e[a+1]=r+1,u=!0)}a+=2}return u||e.push(t,r+1),e},dataContains=function(e,t){var r=0,n=e.length,i=e[r],a=e[n-1];if(n>=2&&(t<i||t>a))return!1;for(;r<n;){if(i=e[r],a=e[r+1],t>=i&&t<a)return!0;r+=2}return!1},dataIsEmpty=function(e){return!e.length},dataIsSingleton=function(e){return 2==e.length&&e[0]+1==e[1]},dataToArray=function(e){for(var t,r,n=0,i=[],a=e.length;n<a;){for(t=e[n],r=e[n+1];t<r;)i.push(t),++t;n+=2}return i},f=Math.floor,highSurrogate=function(e){return parseInt(f((e-65536)/1024)+55296,10)},lowSurrogate=function(e){return parseInt((e-65536)%1024+56320,10)},h=String.fromCharCode,codePointToString=function(e){return 9==e?"\\t":10==e?"\\n":12==e?"\\f":13==e?"\\r":92==e?"\\\\":36==e||e>=40&&e<=43||45==e||46==e||63==e||e>=91&&e<=94||e>=123&&e<=125?"\\"+h(e):e>=32&&e<=126?h(e):e<=255?"\\x"+pad(hex(e),2):"\\u"+pad(hex(e),4)},symbolToCodePoint=function(e){var t=e.length,r=e.charCodeAt(0);return r>=55296&&r<=56319&&t>1?1024*(r-55296)+e.charCodeAt(1)-56320+65536:r},createBMPCharacterClasses=function(e){var t,r,n="",i=0,a=e.length;if(dataIsSingleton(e))return codePointToString(e[0]);for(;i<a;)n+=(t=e[i])==(r=e[i+1]-1)?codePointToString(t):t+1==r?codePointToString(t)+codePointToString(r):codePointToString(t)+"-"+codePointToString(r),i+=2;return"["+n+"]"},optimizeByLowSurrogates=function(e){if(1==e.length)return e;for(var t=-1,r=-1;++t<e.length;){var n=e[t],i=n[1],a=i[0],s=i[1];for(r=t;++r<e.length;){var o=e[r],u=o[1],c=u[0],l=u[1];a==c&&s==l&&(dataIsSingleton(o[0])?n[0]=dataAdd(n[0],o[0][0]):n[0]=dataAddRange(n[0],o[0][0],o[0][1]-1),e.splice(r,1),--r)}}return e},surrogateSet=function(e){if(!e.length)return[];for(var t,r,n,i,a,s,o=0,u=[],c=e.length;o<c;){t=e[o],r=e[o+1]-1,n=highSurrogate(t),i=lowSurrogate(t),a=highSurrogate(r);var l=57343==(s=lowSurrogate(r)),m=!1;n==a||56320==i&&l?(u.push([[n,a+1],[i,s+1]]),m=!0):u.push([[n,n+1],[i,57344]]),!m&&n+1<a&&(l?(u.push([[n+1,a+1],[56320,s+1]]),m=!0):u.push([[n+1,a],[56320,57344]])),m||u.push([[a,a+1],[56320,s+1]]),n,a,o+=2}return function(e){for(var t,r,n,i,a,s,o=[],u=[],c=!1,l=-1,m=e.length;++l<m;)if(t=e[l],r=e[l+1]){for(n=t[0],i=t[1],a=r[0],s=r[1],u=i;a&&n[0]==a[0]&&n[1]==a[1];)u=dataIsSingleton(s)?dataAdd(u,s[0]):dataAddRange(u,s[0],s[1]-1),n=(t=e[++l])[0],i=t[1],a=(r=e[l+1])&&r[0],s=r&&r[1],c=!0;o.push([n,c?u:i]),c=!1}else o.push(t);return optimizeByLowSurrogates(o)}(u)},createCharacterClassesFromData=function(e,t){var r=[],n=function(e){for(var t,r,n=[],i=[],a=[],s=[],o=0,u=e.length;o<u;)t=e[o],r=e[o+1]-1,t<55296?(r<55296&&a.push(t,r+1),r>=55296&&r<=56319&&(a.push(t,55296),n.push(55296,r+1)),r>=56320&&r<=57343&&(a.push(t,55296),n.push(55296,56320),i.push(56320,r+1)),r>57343&&(a.push(t,55296),n.push(55296,56320),i.push(56320,57344),r<=65535?a.push(57344,r+1):(a.push(57344,65536),s.push(65536,r+1)))):t>=55296&&t<=56319?(r>=55296&&r<=56319&&n.push(t,r+1),r>=56320&&r<=57343&&(n.push(t,56320),i.push(56320,r+1)),r>57343&&(n.push(t,56320),i.push(56320,57344),r<=65535?a.push(57344,r+1):(a.push(57344,65536),s.push(65536,r+1)))):t>=56320&&t<=57343?(r>=56320&&r<=57343&&i.push(t,r+1),r>57343&&(i.push(t,57344),r<=65535?a.push(57344,r+1):(a.push(57344,65536),s.push(65536,r+1)))):t>57343&&t<=65535?r<=65535?a.push(t,r+1):(a.push(t,65536),s.push(65536,r+1)):s.push(t,r+1),o+=2;return{loneHighSurrogates:n,loneLowSurrogates:i,bmp:a,astral:s}}(e),i=n.loneHighSurrogates,a=n.loneLowSurrogates,s=n.bmp,o=n.astral,u=(dataIsEmpty(n.astral),!dataIsEmpty(i)),c=!dataIsEmpty(a),l=surrogateSet(o);return t&&(s=dataAddData(s,i),u=!1,s=dataAddData(s,a),c=!1),dataIsEmpty(s)||r.push(createBMPCharacterClasses(s)),l.length&&r.push(function(e){var t=[];return forEach(e,(function(e){var r=e[0],n=e[1];t.push(createBMPCharacterClasses(r)+createBMPCharacterClasses(n))})),t.join("|")}(l)),u&&r.push(createBMPCharacterClasses(i)+"(?![\\uDC00-\\uDFFF])"),c&&r.push("(?:[^\\uD800-\\uDBFF]|^)"+createBMPCharacterClasses(a)),r.join("|")},regenerate=function(e){return arguments.length>1&&(e=p.call(arguments)),this instanceof regenerate?(this.data=[],e?this.add(e):this):(new regenerate).add(e)};regenerate.version="1.2.0";var d=regenerate.prototype;!function(e,t){var r;for(r in t)l.call(t,r)&&(e[r]=t[r])}(d,{add:function(e){var t=this;return null==e?t:e instanceof regenerate?(t.data=dataAddData(t.data,e.data),t):(arguments.length>1&&(e=p.call(arguments)),isArray(e)?(forEach(e,(function(e){t.add(e)})),t):(t.data=dataAdd(t.data,isNumber(e)?e:symbolToCodePoint(e)),t))},remove:function(e){var t=this;return null==e?t:e instanceof regenerate?(t.data=dataRemoveData(t.data,e.data),t):(arguments.length>1&&(e=p.call(arguments)),isArray(e)?(forEach(e,(function(e){t.remove(e)})),t):(t.data=dataRemove(t.data,isNumber(e)?e:symbolToCodePoint(e)),t))},addRange:function(e,t){return this.data=dataAddRange(this.data,isNumber(e)?e:symbolToCodePoint(e),isNumber(t)?t:symbolToCodePoint(t)),this},removeRange:function(e,t){var r=isNumber(e)?e:symbolToCodePoint(e),n=isNumber(t)?t:symbolToCodePoint(t);return this.data=dataRemoveRange(this.data,r,n),this},intersection:function(e){var t=e instanceof regenerate?dataToArray(e.data):e;return this.data=function(e,t){for(var r,n=0,i=t.length,a=[];n<i;)r=t[n],dataContains(e,r)&&a.push(r),++n;return function(e){for(var t,r=-1,n=e.length,i=n-1,a=[],s=!0,o=0;++r<n;)if(t=e[r],s)a.push(t),o=t,s=!1;else if(t==o+1){if(r!=i){o=t;continue}s=!0,a.push(t+1)}else a.push(o+1,t),o=t;return s||a.push(t+1),a}(a)}(this.data,t),this},contains:function(e){return dataContains(this.data,isNumber(e)?e:symbolToCodePoint(e))},clone:function(){var e=new regenerate;return e.data=this.data.slice(0),e},toString:function(e){return createCharacterClassesFromData(this.data,!!e&&e.bmpOnly).replace(u,"\\0$1")},toRegExp:function(e){return RegExp(this.toString(),e||"")},valueOf:function(){return dataToArray(this.data)}}),d.toArray=d.valueOf,"function"==typeof define&&"object"==typeof define.amd&&define.amd?define((function(){return regenerate})):t&&!t.nodeType?i?i.exports=regenerate:t.regenerate=regenerate:e.regenerate=regenerate}(void 0),t.regenerate=r.exports||window.regenerate,function(){var e={function:!0,object:!0},t=e[typeof window]&&window||this,i=e[typeof n]&&n,a=e[typeof r]&&r&&!r.nodeType&&r,s=i&&a&&"object"==typeof global&&global;!s||s.global!==s&&s.window!==s&&s.self!==s||(t=s);var o=String.fromCharCode,u=Math.floor;function fromCodePoint(){var e,t,r=16384,n=[],i=-1,a=arguments.length;if(!a)return"";for(var s="";++i<a;){var c=Number(arguments[i]);if(!isFinite(c)||c<0||c>1114111||u(c)!=c)throw RangeError("Invalid code point: "+c);c<=65535?n.push(c):(e=55296+((c-=65536)>>10),t=c%1024+56320,n.push(e,t)),(i+1==a||n.length>r)&&(s+=o.apply(null,n),n.length=0)}return s}function assertType(e,t){if(-1==t.indexOf("|")){if(e==t)return;throw Error("Invalid node type: "+e)}if(!(t=assertType.hasOwnProperty(t)?assertType[t]:assertType[t]=RegExp("^(?:"+t+")$")).test(e))throw Error("Invalid node type: "+e)}function generate(e){var t=e.type;if(generate.hasOwnProperty(t)&&"function"==typeof generate[t])return generate[t](e);throw Error("Invalid node type: "+t)}function generateClassAtom(e){return assertType(e.type,"anchor|characterClassEscape|characterClassRange|dot|value"),generate(e)}function generateTerm(e){return assertType(e.type,"anchor|characterClass|characterClassEscape|empty|group|quantifier|reference|value"),generate(e)}generate.alternative=function generateAlternative(e){assertType(e.type,"alternative");var t=e.body,r=t?t.length:0;if(1==r)return generateTerm(t[0]);for(var n=-1,i="";++n<r;)i+=generateTerm(t[n]);return i},generate.anchor=function generateAnchor(e){switch(assertType(e.type,"anchor"),e.kind){case"start":return"^";case"end":return"$";case"boundary":return"\\b";case"not-boundary":return"\\B";default:throw Error("Invalid assertion")}},generate.characterClass=function generateCharacterClass(e){assertType(e.type,"characterClass");var t=e.body,r=t?t.length:0,n=-1,i="[";for(e.negative&&(i+="^");++n<r;)i+=generateClassAtom(t[n]);return i+="]"},generate.characterClassEscape=function generateCharacterClassEscape(e){return assertType(e.type,"characterClassEscape"),"\\"+e.value},generate.characterClassRange=function generateCharacterClassRange(e){assertType(e.type,"characterClassRange");var t=e.min,r=e.max;if("characterClassRange"==t.type||"characterClassRange"==r.type)throw Error("Invalid character class range");return generateClassAtom(t)+"-"+generateClassAtom(r)},generate.disjunction=function generateDisjunction(e){assertType(e.type,"disjunction");var t=e.body,r=t?t.length:0;if(0==r)throw Error("No body");if(1==r)return generate(t[0]);for(var n=-1,i="";++n<r;)0!=n&&(i+="|"),i+=generate(t[n]);return i},generate.dot=function generateDot(e){return assertType(e.type,"dot"),"."},generate.group=function generateGroup(e){assertType(e.type,"group");var t="(";switch(e.behavior){case"normal":break;case"ignore":t+="?:";break;case"lookahead":t+="?=";break;case"negativeLookahead":t+="?!";break;default:throw Error("Invalid behaviour: "+e.behaviour)}var r=e.body,n=r?r.length:0;if(1==n)t+=generate(r[0]);else for(var i=-1;++i<n;)t+=generate(r[i]);return t+=")"},generate.quantifier=function generateQuantifier(e){assertType(e.type,"quantifier");var t="",r=e.min,n=e.max;switch(n){case void 0:case null:switch(r){case 0:t="*";break;case 1:t="+";break;default:t="{"+r+",}"}break;default:t=r==n?"{"+r+"}":0==r&&1==n?"?":"{"+r+","+n+"}"}return e.greedy||(t+="?"),function generateAtom(e){return assertType(e.type,"anchor|characterClass|characterClassEscape|dot|group|reference|value"),generate(e)}(e.body[0])+t},generate.reference=function generateReference(e){return assertType(e.type,"reference"),"\\"+e.matchIndex},generate.value=function generateValue(e){assertType(e.type,"value");var t=e.kind,r=e.codePoint;switch(t){case"controlLetter":return"\\c"+fromCodePoint(r+64);case"hexadecimalEscape":return"\\x"+("00"+r.toString(16).toUpperCase()).slice(-2);case"identifier":return"\\"+fromCodePoint(r);case"null":return"\\"+r;case"octal":return"\\"+r.toString(8);case"singleEscape":switch(r){case 8:return"\\b";case 9:return"\\t";case 10:return"\\n";case 11:return"\\v";case 12:return"\\f";case 13:return"\\r";default:throw Error("Invalid codepoint: "+r)}case"symbol":return fromCodePoint(r);case"unicodeEscape":return"\\u"+("0000"+r.toString(16).toUpperCase()).slice(-4);case"unicodeCodePointEscape":return"\\u{"+r.toString(16).toUpperCase()+"}";default:throw Error("Unsupported node kind: "+t)}},"function"==typeof define&&"object"==typeof define.amd&&define.amd?define((function(){return{generate:generate}})):i&&a?i.generate=generate:t.regjsgen={generate:generate}}.call(void 0),t.regjsgen={generate:n.generate||window.regjsgen},e={parse:function parse(e,t){function addRaw(t){return t.raw=e.substring(t.range[0],t.range[1]),t}function updateRawStart(e,t){return e.range[0]=t,addRaw(e)}function createAnchor(e,t){return addRaw({type:"anchor",kind:e,range:[s-t,s]})}function createValue(e,t,r,n){return addRaw({type:"value",kind:e,codePoint:t,range:[r,n]})}function createEscaped(e,t,r,n){return n=n||0,createValue(e,t,s-(r.length+n),s)}function createCharacter(e){var t,r=e[0],n=r.charCodeAt(0);return a&&1===r.length&&n>=55296&&n<=56319&&(t=lookahead().charCodeAt(0))>=56320&&t<=57343?createValue("symbol",1024*(n-55296)+t-56320+65536,++s-2,s):createValue("symbol",n,s-1,s)}function createQuantifier(e,t,r,n){return null==n&&(r=s-1,n=s),addRaw({type:"quantifier",min:e,max:t,greedy:!0,body:null,range:[r,n]})}function createCharacterClass(e,t,r,n){return addRaw({type:"characterClass",body:e,negative:t,range:[r,n]})}function createClassRange(e,t,r,n){return e.codePoint>t.codePoint&&bail("invalid range in character class",e.raw+"-"+t.raw,r,n),addRaw({type:"characterClassRange",min:e,max:t,range:[r,n]})}function flattenBody(e){return"alternative"===e.type?e.body:[e]}function incr(t){t=t||1;var r=e.substring(s,s+t);return s+=t||1,r}function skip(e){match(e)||bail("character",e)}function match(t){if(e.indexOf(t,s)===s)return incr(t.length)}function lookahead(){return e[s]}function current(t){return e.indexOf(t,s)===s}function next(t){return e[s+1]===t}function matchReg(t){var r=e.substring(s).match(t);return r&&(r.range=[],r.range[0]=s,incr(r[0].length),r.range[1]=s),r}function parseDisjunction(){var e=[],t=s;for(e.push(parseAlternative());match("|");)e.push(parseAlternative());return 1===e.length?e[0]:function createDisjunction(e,t,r){return addRaw({type:"disjunction",body:e,range:[t,r]})}(e,t,s)}function parseAlternative(){for(var e,t=[],r=s;e=parseTerm();)t.push(e);return 1===t.length?t[0]:function createAlternative(e,t,r){return addRaw({type:"alternative",body:e,range:[t,r]})}(t,r,s)}function parseTerm(){if(s>=e.length||current("|")||current(")"))return null;var t=function parseAnchor(){return match("^")?createAnchor("start",1):match("$")?createAnchor("end",1):match("\\b")?createAnchor("boundary",2):match("\\B")?createAnchor("not-boundary",2):parseGroup("(?=","lookahead","(?!","negativeLookahead")}();if(t)return t;var r=function parseAtom(){var e;return(e=matchReg(/^[^^$\\.*+?(){[|]/))?createCharacter(e):match(".")?function createDot(){return addRaw({type:"dot",range:[s-1,s]})}():match("\\")?((e=parseAtomEscape())||bail("atomEscape"),e):(e=function parseCharacterClass(){var e,t=s;return(e=matchReg(/^\[\^/))?(e=parseClassRanges(),skip("]"),createCharacterClass(e,!0,t,s)):match("[")?(e=parseClassRanges(),skip("]"),createCharacterClass(e,!1,t,s)):null}())?e:parseGroup("(?:","ignore","(","normal")}();r||bail("Expected atom");var n=function parseQuantifier(){var e,t,r,n,i=s;return match("*")?t=createQuantifier(0):match("+")?t=createQuantifier(1):match("?")?t=createQuantifier(0,1):(e=matchReg(/^\{([0-9]+)\}/))?(r=parseInt(e[1],10),t=createQuantifier(r,r,e.range[0],e.range[1])):(e=matchReg(/^\{([0-9]+),\}/))?(r=parseInt(e[1],10),t=createQuantifier(r,void 0,e.range[0],e.range[1])):(e=matchReg(/^\{([0-9]+),([0-9]+)\}/))&&(r=parseInt(e[1],10),n=parseInt(e[2],10),r>n&&bail("numbers out of order in {} quantifier","",i,s),t=createQuantifier(r,n,e.range[0],e.range[1])),t&&match("?")&&(t.greedy=!1,t.range[1]+=1),t}()||!1;return n?(n.body=flattenBody(r),updateRawStart(n,r.range[0]),n):r}function parseGroup(e,t,r,a){var o=null,u=s;if(match(e))o=t;else{if(!match(r))return!1;o=a}var c=parseDisjunction();c||bail("Expected disjunction"),skip(")");var l=function createGroup(e,t,r,n){return addRaw({type:"group",behavior:e,body:t,range:[r,n]})}(o,flattenBody(c),u,s);return"normal"==o&&i&&n++,l}function parseUnicodeSurrogatePairEscape(e){var t,r;if(a&&"unicodeEscape"==e.kind&&(t=e.codePoint)>=55296&&t<=56319&&current("\\")&&next("u")){var n=s;s++;var i=parseClassEscape();"unicodeEscape"==i.kind&&(r=i.codePoint)>=56320&&r<=57343?(e.range[1]=i.range[1],e.codePoint=1024*(t-55296)+r-56320+65536,e.type="value",e.kind="unicodeCodePointEscape",addRaw(e)):s=n}return e}function parseClassEscape(){return parseAtomEscape(!0)}function parseAtomEscape(e){var t,i=s;if(t=function parseDecimalEscape(){var e,t;if(e=matchReg(/^(?!0)\d+/)){t=e[0];var i=parseInt(e[0],10);return i<=n?function createReference(e){return addRaw({type:"reference",matchIndex:parseInt(e,10),range:[s-1-e.length,s]})}(e[0]):(r.push(i),incr(-e[0].length),(e=matchReg(/^[0-7]{1,3}/))?createEscaped("octal",parseInt(e[0],8),e[0],1):updateRawStart(e=createCharacter(matchReg(/^[89]/)),e.range[0]-1))}return(e=matchReg(/^[0-7]{1,3}/))?(t=e[0],/^0{1,3}$/.test(t)?createEscaped("null",0,"0",t.length+1):createEscaped("octal",parseInt(t,8),t,1)):!!(e=matchReg(/^[dDsSwW]/))&&function createCharacterClassEscape(e){return addRaw({type:"characterClassEscape",value:e,range:[s-2,s]})}(e[0])}())return t;if(e){if(match("b"))return createEscaped("singleEscape",8,"\\b");match("B")&&bail("\\B not possible inside of CharacterClass","",i)}return t=function parseCharacterEscape(){var e;if(e=matchReg(/^[fnrtv]/)){var t=0;switch(e[0]){case"t":t=9;break;case"n":t=10;break;case"v":t=11;break;case"f":t=12;break;case"r":t=13}return createEscaped("singleEscape",t,"\\"+e[0])}return(e=matchReg(/^c([a-zA-Z])/))?createEscaped("controlLetter",e[1].charCodeAt(0)%32,e[1],2):(e=matchReg(/^x([0-9a-fA-F]{2})/))?createEscaped("hexadecimalEscape",parseInt(e[1],16),e[1],2):(e=matchReg(/^u([0-9a-fA-F]{4})/))?parseUnicodeSurrogatePairEscape(createEscaped("unicodeEscape",parseInt(e[1],16),e[1],2)):a&&(e=matchReg(/^u\{([0-9a-fA-F]+)\}/))?createEscaped("unicodeCodePointEscape",parseInt(e[1],16),e[1],4):function parseIdentityEscape(){var e;return function isIdentifierPart(e){var t=new RegExp("[ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮ̀-ʹͶͷͺ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁ҃-҇Ҋ-ԯԱ-Ֆՙա-և֑-ׇֽֿׁׂׅׄא-תװ-ײؐ-ؚؠ-٩ٮ-ۓە-ۜ۟-۪ۨ-ۼۿܐ-݊ݍ-ޱ߀-ߵߺࠀ-࠭ࡀ-࡛ࢠ-ࢲࣤ-ॣ०-९ॱ-ঃঅ-ঌএঐও-নপ-রলশ-হ়-ৄেৈো-ৎৗড়ঢ়য়-ৣ০-ৱਁ-ਃਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹ਼ਾ-ੂੇੈੋ-੍ੑਖ਼-ੜਫ਼੦-ੵઁ-ઃઅ-ઍએ-ઑઓ-નપ-રલળવ-હ઼-ૅે-ૉો-્ૐૠ-ૣ૦-૯ଁ-ଃଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହ଼-ୄେୈୋ-୍ୖୗଡ଼ଢ଼ୟ-ୣ୦-୯ୱஂஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹா-ூெ-ைொ-்ௐௗ௦-௯ఀ-ఃఅ-ఌఎ-ఐఒ-నప-హఽ-ౄె-ైొ-్ౕౖౘౙౠ-ౣ౦-౯ಁ-ಃಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹ಼-ೄೆ-ೈೊ-್ೕೖೞೠ-ೣ೦-೯ೱೲഁ-ഃഅ-ഌഎ-ഐഒ-ഺഽ-ൄെ-ൈൊ-ൎൗൠ-ൣ൦-൯ൺ-ൿංඃඅ-ඖක-නඳ-රලව-ෆ්ා-ුූෘ-ෟ෦-෯ෲෳก-ฺเ-๎๐-๙ກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ູົ-ຽເ-ໄໆ່-ໍ໐-໙ໜ-ໟༀ༘༙༠-༩༹༵༷༾-ཇཉ-ཬཱ-྄྆-ྗྙ-ྼ࿆က-၉ၐ-ႝႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚ፝-፟ᎀ-ᎏᎠ-Ᏼᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛸᜀ-ᜌᜎ-᜔ᜠ-᜴ᝀ-ᝓᝠ-ᝬᝮ-ᝰᝲᝳក-៓ៗៜ៝០-៩᠋-᠍᠐-᠙ᠠ-ᡷᢀ-ᢪᢰ-ᣵᤀ-ᤞᤠ-ᤫᤰ-᤻᥆-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉ᧐-᧙ᨀ-ᨛᨠ-ᩞ᩠-᩿᩼-᪉᪐-᪙ᪧ᪰-᪽ᬀ-ᭋ᭐-᭙᭫-᭳ᮀ-᯳ᰀ-᰷᱀-᱉ᱍ-ᱽ᳐-᳔᳒-ᳶ᳸᳹ᴀ-᷵᷼-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼ‌‍‿⁀⁔ⁱⁿₐ-ₜ⃐-⃥⃜⃡-⃰ℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯ⵿-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞⷠ-ⷿⸯ々-〇〡-〯〱-〵〸-〼ぁ-ゖ゙゚ゝ-ゟァ-ヺー-ヿㄅ-ㄭㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿌ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘫꙀ-꙯ꙴ-꙽ꙿ-ꚝꚟ-꛱ꜗ-ꜟꜢ-ꞈꞋ-ꞎꞐ-ꞭꞰꞱꟷ-ꠧꡀ-ꡳꢀ-꣄꣐-꣙꣠-ꣷꣻ꤀-꤭ꤰ-꥓ꥠ-ꥼꦀ-꧀ꧏ-꧙ꧠ-ꧾꨀ-ꨶꩀ-ꩍ꩐-꩙ꩠ-ꩶꩺ-ꫂꫛ-ꫝꫠ-ꫯꫲ-꫶ꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ꭟꭤꭥꯀ-ꯪ꯬꯭꯰-꯹가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ﬀ-ﬆﬓ-ﬗיִ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻ︀-️︠-︭︳︴﹍-﹏ﹰ-ﹴﹶ-ﻼ０-９Ａ-Ｚ＿ａ-ｚｦ-ﾾￂ-ￇￊ-ￏￒ-ￗￚ-ￜ]");return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||92===e||e>=128&&t.test(String.fromCharCode(e))}(lookahead())?match("‌")?createEscaped("identifier",8204,"‌"):match("‍")?createEscaped("identifier",8205,"‍"):null:createEscaped("identifier",(e=incr()).charCodeAt(0),e,1)}()}()}function parseClassRanges(){var e;return current("]")?[]:((e=function parseNonemptyClassRanges(){var e=parseClassAtom();return e||bail("classAtom"),current("]")?[e]:parseHelperClassRanges(e)}())||bail("nonEmptyClassRanges"),e)}function parseHelperClassRanges(e){var t,r,n;if(current("-")&&!next("]")){skip("-"),(n=parseClassAtom())||bail("classAtom"),r=s;var i=parseClassRanges();return i||bail("classRanges"),t=e.range[0],"empty"===i.type?[createClassRange(e,n,t,r)]:[createClassRange(e,n,t,r)].concat(i)}return(n=function parseNonemptyClassRangesNoDash(){var e=parseClassAtom();return e||bail("classAtom"),current("]")?e:parseHelperClassRanges(e)}())||bail("nonEmptyClassRangesNoDash"),[e].concat(n)}function parseClassAtom(){return match("-")?createCharacter("-"):function parseClassAtomNoDash(){var e;return(e=matchReg(/^[^\\\]-]/))?createCharacter(e[0]):match("\\")?((e=parseClassEscape())||bail("classEscape"),parseUnicodeSurrogatePairEscape(e)):void 0}()}function bail(t,r,n,i){n=null==n?s:n,i=null==i?n:i;var a=Math.max(0,n-10),o=Math.min(i+10,e.length),u="    "+e.substring(a,o),c="    "+new Array(n-a+1).join(" ")+"^";throw SyntaxError(t+" at position "+n+(r?": "+r:"")+"\n"+u+"\n"+c)}var r=[],n=0,i=!0,a=-1!==(t||"").indexOf("u"),s=0;""===(e=String(e))&&(e="(?:)");var o=parseDisjunction();o.range[1]!==e.length&&bail("Could not parse entire input - got stuck","",o.range[1]);for(var u=0;u<r.length;u++)if(r[u]<=n)return s=0,i=!1,parseDisjunction();return o}},void 0!==r&&r.exports?r.exports=e:window.regjsparser=e,t.regjsparser=r.exports||window.regjsparser,t["./data/iu-mappings.json"]={75:8490,83:383,107:8490,115:383,181:924,197:8491,383:83,452:453,453:452,455:456,456:455,458:459,459:458,497:498,498:497,837:8126,914:976,917:1013,920:1012,921:8126,922:1008,924:181,928:982,929:1009,931:962,934:981,937:8486,962:931,976:914,977:1012,981:934,982:928,1008:922,1009:929,1012:[920,977],1013:917,7776:7835,7835:7776,8126:[837,921],8486:937,8490:75,8491:197,66560:66600,66561:66601,66562:66602,66563:66603,66564:66604,66565:66605,66566:66606,66567:66607,66568:66608,66569:66609,66570:66610,66571:66611,66572:66612,66573:66613,66574:66614,66575:66615,66576:66616,66577:66617,66578:66618,66579:66619,66580:66620,66581:66621,66582:66622,66583:66623,66584:66624,66585:66625,66586:66626,66587:66627,66588:66628,66589:66629,66590:66630,66591:66631,66592:66632,66593:66633,66594:66634,66595:66635,66596:66636,66597:66637,66598:66638,66599:66639,66600:66560,66601:66561,66602:66562,66603:66563,66604:66564,66605:66565,66606:66566,66607:66567,66608:66568,66609:66569,66610:66570,66611:66571,66612:66572,66613:66573,66614:66574,66615:66575,66616:66576,66617:66577,66618:66578,66619:66579,66620:66580,66621:66581,66622:66582,66623:66583,66624:66584,66625:66585,66626:66586,66627:66587,66628:66588,66629:66589,66630:66590,66631:66591,66632:66592,66633:66593,66634:66594,66635:66595,66636:66596,66637:66597,66638:66598,66639:66599,71840:71872,71841:71873,71842:71874,71843:71875,71844:71876,71845:71877,71846:71878,71847:71879,71848:71880,71849:71881,71850:71882,71851:71883,71852:71884,71853:71885,71854:71886,71855:71887,71856:71888,71857:71889,71858:71890,71859:71891,71860:71892,71861:71893,71862:71894,71863:71895,71864:71896,71865:71897,71866:71898,71867:71899,71868:71900,71869:71901,71870:71902,71871:71903,71872:71840,71873:71841,71874:71842,71875:71843,71876:71844,71877:71845,71878:71846,71879:71847,71880:71848,71881:71849,71882:71850,71883:71851,71884:71852,71885:71853,71886:71854,71887:71855,71888:71856,71889:71857,71890:71858,71891:71859,71892:71860,71893:71861,71894:71862,71895:71863,71896:71864,71897:71865,71898:71866,71899:71867,71900:71868,71901:71869,71902:71870,71903:71871};var i=require("regenerate");n.REGULAR={d:i().addRange(48,57),D:i().addRange(0,47).addRange(58,65535),s:i(32,160,5760,6158,8239,8287,12288,65279).addRange(9,13).addRange(8192,8202).addRange(8232,8233),S:i().addRange(0,8).addRange(14,31).addRange(33,159).addRange(161,5759).addRange(5761,6157).addRange(6159,8191).addRange(8203,8231).addRange(8234,8238).addRange(8240,8286).addRange(8288,12287).addRange(12289,65278).addRange(65280,65535),w:i(95).addRange(48,57).addRange(65,90).addRange(97,122),W:i(96).addRange(0,47).addRange(58,64).addRange(91,94).addRange(123,65535)},n.UNICODE={d:i().addRange(48,57),D:i().addRange(0,47).addRange(58,1114111),s:i(32,160,5760,6158,8239,8287,12288,65279).addRange(9,13).addRange(8192,8202).addRange(8232,8233),S:i().addRange(0,8).addRange(14,31).addRange(33,159).addRange(161,5759).addRange(5761,6157).addRange(6159,8191).addRange(8203,8231).addRange(8234,8238).addRange(8240,8286).addRange(8288,12287).addRange(12289,65278).addRange(65280,1114111),w:i(95).addRange(48,57).addRange(65,90).addRange(97,122),W:i(96).addRange(0,47).addRange(58,64).addRange(91,94).addRange(123,1114111)},n.UNICODE_IGNORE_CASE={d:i().addRange(48,57),D:i().addRange(0,47).addRange(58,1114111),s:i(32,160,5760,6158,8239,8287,12288,65279).addRange(9,13).addRange(8192,8202).addRange(8232,8233),S:i().addRange(0,8).addRange(14,31).addRange(33,159).addRange(161,5759).addRange(5761,6157).addRange(6159,8191).addRange(8203,8231).addRange(8234,8238).addRange(8240,8286).addRange(8288,12287).addRange(12289,65278).addRange(65280,1114111),w:i(95,383,8490).addRange(48,57).addRange(65,90).addRange(97,122),W:i(75,83,96).addRange(0,47).addRange(58,64).addRange(91,94).addRange(123,1114111)},t["./data/character-class-escape-sets.js"]={REGULAR:n.REGULAR,UNICODE:n.UNICODE,UNICODE_IGNORE_CASE:n.UNICODE_IGNORE_CASE};var a=require("regjsgen").generate,parse=require("regjsparser").parse,s=(i=require("regenerate"),require("./data/iu-mappings.json")),o=require("./data/character-class-escape-sets.js");function getCharacterClassEscapeSet(e){return h?f?o.UNICODE_IGNORE_CASE[e]:o.UNICODE[e]:o.REGULAR[e]}var u={}.hasOwnProperty;var c=i().addRange(0,1114111),l=i().addRange(0,65535),m=c.clone().remove(10,13,8232,8233),p=m.clone().intersection(l);function assign(e,t){for(var r in t)e[r]=t[r]}function update(e,t){var r=parse(t,"");switch(r.type){case"characterClass":case"group":case"value":break;default:r=function wrap(e,t){return{type:"group",behavior:"ignore",body:[e],raw:"(?:"+t+")"}}(r,t)}assign(e,r)}function caseFold(e){return!!function has(e,t){return u.call(e,t)}(s,e)&&s[e]}i.prototype.iuAddRange=function(e,t){do{var r=caseFold(e);r&&this.add(r)}while(++e<=t);return this};var f=!1,h=!1;function processTerm(e){switch(e.type){case"dot":update(e,(h?m:p).toString());break;case"characterClass":e=function processCharacterClass(e){var t=i();return e.body.forEach((function(e){switch(e.type){case"value":if(t.add(e.codePoint),f&&h){var r=caseFold(e.codePoint);r&&t.add(r)}break;case"characterClassRange":var n=e.min.codePoint,i=e.max.codePoint;t.addRange(n,i),f&&h&&t.iuAddRange(n,i);break;case"characterClassEscape":t.add(getCharacterClassEscapeSet(e.value));break;default:throw Error("Unknown term type: "+e.type)}})),e.negative&&(t=(h?c:l).clone().remove(t)),update(e,t.toString()),e}(e);break;case"characterClassEscape":update(e,getCharacterClassEscapeSet(e.value).toString());break;case"alternative":case"disjunction":case"group":case"quantifier":e.body=e.body.map(processTerm);break;case"value":var t=e.codePoint,r=i(t);if(f&&h){var n=caseFold(t);n&&r.add(n)}update(e,r.toString());break;case"anchor":case"empty":case"group":case"reference":break;default:throw Error("Unknown term type: "+e.type)}return e}r.exports=function(e,t){var r=parse(e,t);return f=!!t&&t.indexOf("i")>-1,h=!!t&&t.indexOf("u")>-1,assign(r,processTerm(r)),a(r)};var d=r.exports;return{get regexpuRewritePattern(){return d}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/RegularExpressionTransformer.js",[],(function(){"use strict";var e,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeTransformer.js","traceur@0.0.111/src/codegeneration/RegularExpressionTransformer.js")).ParseTreeTransformer,r=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTrees.js","traceur@0.0.111/src/codegeneration/RegularExpressionTransformer.js")).LiteralExpression,n=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/LiteralToken.js","traceur@0.0.111/src/codegeneration/RegularExpressionTransformer.js")).LiteralToken,i=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/TokenType.js","traceur@0.0.111/src/codegeneration/RegularExpressionTransformer.js")).REGULAR_EXPRESSION,a=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../outputgeneration/regexpuRewritePattern.js","traceur@0.0.111/src/codegeneration/RegularExpressionTransformer.js")).regexpuRewritePattern,s=(e=t,$traceurRuntime.createClass((function RegularExpressionTransformer(){$traceurRuntime.superConstructor(RegularExpressionTransformer).apply(this,arguments)}),{transformLiteralExpression:function(e){var t=e.literalToken;if(t.type===i){var s=t.value,o=s.lastIndexOf("/"),u=s.slice(1,o),c=s.slice(o+1);if(-1!==c.indexOf("u")){var l="/"+a(u,c)+"/"+c.replace("u","");return new r(e.location,new n(i,l,t.location))}}return e}},{},e));return{get RegularExpressionTransformer(){return s}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/RestParameterTransformer.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTrees.js","traceur@0.0.111/src/codegeneration/RestParameterTransformer.js")).FormalParameterList,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParameterTransformer.js","traceur@0.0.111/src/codegeneration/RestParameterTransformer.js")).ParameterTransformer,r=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeFactory.js","traceur@0.0.111/src/codegeneration/RestParameterTransformer.js")).createIdentifierToken,n=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./PlaceholderParser.js","traceur@0.0.111/src/codegeneration/RestParameterTransformer.js")).parseStatement;var i=function(t){function RestParameterTransformer(){$traceurRuntime.superConstructor(RestParameterTransformer).apply(this,arguments)}return $traceurRuntime.createClass(RestParameterTransformer,{transformFormalParameterList:function(t){var i=$traceurRuntime.superGet(this,RestParameterTransformer.prototype,"transformFormalParameterList").call(this,t);if(function hasRestParameter(e){var t=e.parameters;return t.length>0&&t[t.length-1].isRestParameter()}(i)){var a,s=new e(i.location,i.parameters.slice(0,-1)),o=i.parameters.length-1,u=r(this.getTempIdentifier()),c=function getRestParameterLiteralToken(e){var t=e.parameters;return t[t.length-1].parameter.identifier.identifierToken}(i);return a=o?n($traceurRuntime.getTemplateObject(["\n            for (var "," = [], "," = ",";\n                 "," < arguments.length; ","++)\n              ","["," - ","] = arguments[","];"]),c,u,o,u,u,c,u,o,u):n($traceurRuntime.getTemplateObject(["\n            for (var "," = [], "," = 0;\n                 "," < arguments.length; ","++)\n              ","[","] = arguments[","];"]),c,u,u,u,c,u,u),this.parameterStatements.push(a),s}return i}},{},t)}(t);return{get RestParameterTransformer(){return i}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/SpreadTransformer.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/PredefinedName.js","traceur@0.0.111/src/codegeneration/SpreadTransformer.js")),t=e.APPLY,r=e.BIND,n=e.FUNCTION,i=e.PROTOTYPE,a=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTreeType.js","traceur@0.0.111/src/codegeneration/SpreadTransformer.js")),s=a.MEMBER_EXPRESSION,o=a.MEMBER_LOOKUP_EXPRESSION,u=a.SPREAD_EXPRESSION,c=($traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTrees.js","traceur@0.0.111/src/codegeneration/SpreadTransformer.js")).Script,$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./TempVarTransformer.js","traceur@0.0.111/src/codegeneration/SpreadTransformer.js")).TempVarTransformer),l=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ImportRuntimeTrait.js","traceur@0.0.111/src/codegeneration/SpreadTransformer.js")).default,m=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeFactory.js","traceur@0.0.111/src/codegeneration/SpreadTransformer.js")),p=m.createArgumentList,f=m.createArrayLiteral,h=m.createAssignmentExpression,d=m.createCallExpression,g=m.createEmptyArgumentList,T=m.createIdentifierExpression,y=m.createMemberExpression,R=m.createMemberLookupExpression,S=m.createNewExpression,_=m.createNullLiteral,v=m.createParenExpression,E=m.createVoid0,M=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./PlaceholderParser.js","traceur@0.0.111/src/codegeneration/SpreadTransformer.js")),A=M.parseExpression;M.parseStatement,$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./PrependStatements.js","traceur@0.0.111/src/codegeneration/SpreadTransformer.js")).prependStatements;function hasSpreadMember(e){return e.some((function(e){return e&&e.type===u}))}var x=function(e){function SpreadTransformer(){$traceurRuntime.superConstructor(SpreadTransformer).apply(this,arguments)}return $traceurRuntime.createClass(SpreadTransformer,{createArrayFromElements_:function(e){for(var t,r=e.length,n=[],i=0;i<r;i++)e[i]&&e[i].type===u?(t&&(n.push(f(t)),t=null),n.push(this.transformAny(e[i].expression))):(t||(t=[]),t.push(this.transformAny(e[i])));t&&n.push(f(t));var a=this.getRuntimeExpression("spread");return A($traceurRuntime.getTemplateObject(["","(",")"]),a,p(n))},desugarCallSpread_:function(e){var r,n,i=this.transformAny(e.operand);if(this.pushTempScope(),i.type===s){var a=T(this.addTempVar()),u=v(h(a,i.operand)),c=i.memberName;n=a,r=y(u,c)}else if(e.operand.type===o){var l=T(this.addTempVar()),m=v(h(l,i.operand)),f=this.transformAny(i.memberExpression);n=l,r=R(m,f)}else n=E(),r=i;this.popTempScope();var g=this.createArrayFromElements_(e.args.args);return d(y(r,t),p([n,g]))},desugarNewSpread_:function(e){var a=$traceurRuntime.spread([_()],e.args.args);return a=this.createArrayFromElements_(a),S(v(d(y(n,i,r,t),p([this.transformAny(e.operand),a]))),g())},transformArrayLiteral:function(e){return hasSpreadMember(e.elements)?this.createArrayFromElements_(e.elements):$traceurRuntime.superGet(this,SpreadTransformer.prototype,"transformArrayLiteral").call(this,e)},transformCallExpression:function(e){return hasSpreadMember(e.args.args)?this.desugarCallSpread_(e):$traceurRuntime.superGet(this,SpreadTransformer.prototype,"transformCallExpression").call(this,e)},transformNewExpression:function(e){return null!==e.args&&hasSpreadMember(e.args.args)?this.desugarNewSpread_(e):$traceurRuntime.superGet(this,SpreadTransformer.prototype,"transformNewExpression").call(this,e)}},{},e)}(l(c));return{get SpreadTransformer(){return x}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/SuperTransformer.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ImportRuntimeTrait.js","traceur@0.0.111/src/codegeneration/SuperTransformer.js")).default,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./TempVarTransformer.js","traceur@0.0.111/src/codegeneration/SuperTransformer.js")).TempVarTransformer,r=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTrees.js","traceur@0.0.111/src/codegeneration/SuperTransformer.js")),n=r.ArgumentList,i=r.ClassDeclaration,a=r.ClassExpression,s=r.GetAccessor,o=r.MemberExpression,u=r.Method,c=r.SetAccessor,l=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTreeType.js","traceur@0.0.111/src/codegeneration/SuperTransformer.js")),m=l.MEMBER_EXPRESSION,p=l.MEMBER_LOOKUP_EXPRESSION,f=l.SUPER_EXPRESSION,h=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/TokenType.js","traceur@0.0.111/src/codegeneration/SuperTransformer.js")),d=h.EQUAL,g=h.MINUS_MINUS,T=h.PLUS_PLUS,y=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeFactory.js","traceur@0.0.111/src/codegeneration/SuperTransformer.js")),R=y.createAssignmentExpression,S=y.createBindingIdentifier,_=y.createIdentifierExpression,v=y.createIdentifierToken,E=y.createParenExpression,M=y.createStringLiteral,A=y.createThisExpression,x=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./PlaceholderParser.js","traceur@0.0.111/src/codegeneration/SuperTransformer.js")).parseExpression,$=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ExplodeExpressionTransformer.js","traceur@0.0.111/src/codegeneration/SuperTransformer.js")).ExplodeExpressionTransformer;function hasSuperMemberExpression(e){return(e.type===m||e.type===p)&&e.operand.type===f}var C,N=$traceurRuntime.createClass((function N(e,t){this.transformer=e,this.home_=t,this.tempName=t?null:e.getTempIdentifier(),this.hasSuper=!1}),{get home(){return this.hasSuper=!0,null===this.home_&&(this.home_=_(v(this.tempName))),this.home_}},{}),P=(C=N,$traceurRuntime.createClass((function ClassState(e,t){var r=null;null!==t.name&&(r=_(t.name.identifierToken)),$traceurRuntime.superConstructor(ClassState).call(this,e,r),this.name_=t.name}),{get name(){return null!==this.name_?this.name_:this.hasSuper?S(this.home.identifierToken):null}},{},C)),b=function(e){return $traceurRuntime.createClass((function PrototypeState(e,t){$traceurRuntime.superConstructor(PrototypeState).call(this,e,null),this.classState=t}),{get home(){var e=this.classState.home;return new o(null,e,v("prototype"))}},{},e)}(N),w=function(e){function SuperTransformer(e,t,r){$traceurRuntime.superConstructor(SuperTransformer).call(this,e,t,r),this.stateStack_=[]}return $traceurRuntime.createClass(SuperTransformer,{pushState:function(e){this.stateStack_.push(e)},popState:function(){return this.stateStack_.pop()},peekState:function(){return this.stateStack_[this.stateStack_.length-1]},transformObjectLiteral:function(e){var t=new N(this,null);this.pushState(t),this.pushState(t);var r=$traceurRuntime.superGet(this,SuperTransformer.prototype,"transformObjectLiteral").call(this,e);return this.popState(),this.popState(),t.hasSuper?(this.registerTempVarName(t.tempName),R(t.home,r)):(this.releaseTempName(t.tempName),r)},transformClassExpression:function(e){var t=this.transformAny(e.superClass),r=this.transformList(e.annotations),n=new P(this,e),i=new b(this,n);this.pushState(n),this.pushState(i);var s=this.transformList(e.elements);if(this.popState(),this.popState(),null===e.name&&null!==e.superClass)n.home;else if(e.superClass===t&&e.elements===s&&e.annotations===r)return e;return new a(e.location,n.name,t,s,e.annotations,e.typeParameters)},transformClassDeclaration:function(e){var t=this.transformAny(e.superClass),r=this.transformList(e.annotations),n=new P(this,e),a=new b(this,n);this.pushState(n),this.pushState(a);var s=this.transformList(e.elements);return this.popState(),this.popState(),e.superClass===t&&e.elements===s&&e.annotations===r?e:new i(e.location,e.name,t,s,e.annotations,e.typeParameters)},transformMethod:function(e){var t,r=this.transformAny(e.name);e.isStatic&&(t=this.popState());var n=this.transformAny(e.parameterList),i=this.transformAny(e.body);return e.isStatic&&this.pushState(t),e.name===r&&e.parameterList===n&&e.body===i?e:new u(e.location,e.isStatic,e.functionKind,r,n,e.typeAnnotation,e.annotations,i,e.debugName)},transformGetAccessor:function(e){var t,r=this.transformAny(e.name);e.isStatic&&(t=this.popState());var n=this.transformAny(e.body);return e.isStatic&&this.pushState(t),e.name===r&&e.body===n?e:new s(e.location,e.isStatic,r,e.typeAnnotation,e.annotations,n)},transformSetAccessor:function(e){var t,r=this.transformAny(e.name);e.isStatic&&(t=this.popState());var n=this.transformAny(e.parameterList),i=this.transformAny(e.body);return e.isStatic&&this.pushState(t),e.name===r&&e.parameterList===n&&e.body===i?e:new c(e.location,e.isStatic,r,n,e.annotations,i)},transformComputedPropertyName:function(e){var t=this.popState(),r=this.popState(),n=$traceurRuntime.superGet(this,SuperTransformer.prototype,"transformComputedPropertyName").call(this,e);return this.pushState(r),this.pushState(t),n},transformSuperExpression:function(e){throw new Error("unreachable")},transformMemberShared_:function(e){var t=this.peekState().home,r=this.getRuntimeExpression("superGet");return x($traceurRuntime.getTemplateObject(["","(this, ",", ",")"]),r,t,e)},transformMemberExpression:function(e){return e.operand.type===f?this.transformMemberShared_(e.memberName.value):$traceurRuntime.superGet(this,SuperTransformer.prototype,"transformMemberExpression").call(this,e)},transformMemberLookupExpression:function(e){return e.operand.type===f?this.transformMemberShared_(e.memberExpression):$traceurRuntime.superGet(this,SuperTransformer.prototype,"transformMemberLookupExpression").call(this,e)},transformCallExpression:function(e){var t,r;if(e.operand.type===f){r=this.transformAny(e.args),r=new n(e.location,$traceurRuntime.spread([A()],r.args));var i=this.stateStack_[this.stateStack_.length-2].home,a=this.getRuntimeExpression("superConstructor");t=x($traceurRuntime.getTemplateObject(["","(",")"]),a,i)}else{if(!hasSuperMemberExpression(e.operand))return $traceurRuntime.superGet(this,SuperTransformer.prototype,"transformCallExpression").call(this,e);t=this.transformAny(e.operand),r=this.transformAny(e.args),r=new n(r.location,$traceurRuntime.spread([A()],r.args))}return x($traceurRuntime.getTemplateObject(["",".call(",")"]),t,r)},transformBinaryExpression:function(e){if(e.operator.isAssignmentOperator()&&hasSuperMemberExpression(e.left)){if(e.operator.type!==d){var t=new $(this).transformAny(e);return this.transformAny(E(t))}var r=e.left.type===p?e.left.memberExpression:M(e.left.memberName.value),n=this.transformAny(e.right),i=this.peekState().home,a=this.getRuntimeExpression("superSet");return x($traceurRuntime.getTemplateObject(["","(this, ",", ",", ",")"]),a,i,r,n)}return $traceurRuntime.superGet(this,SuperTransformer.prototype,"transformBinaryExpression").call(this,e)},transformUnaryExpression:function(e){var t=this.transformIncrementDecrement_(e);return t||$traceurRuntime.superGet(this,SuperTransformer.prototype,"transformUnaryExpression").call(this,e)},transformPostfixExpression:function(e){var t=this.transformIncrementDecrement_(e);return t||$traceurRuntime.superGet(this,SuperTransformer.prototype,"transformPostfixExpression").call(this,e)},transformIncrementDecrement_:function(e){var t=e.operator,r=e.operand;if((t.type===T||t.type===g)&&hasSuperMemberExpression(r)){var n=new $(this).transformAny(e);return n!==e&&(n=E(n)),this.transformAny(n)}return null}},{},e)}(e(t));return{get SuperTransformer(){return w}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/SymbolTransformer.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTrees.js","traceur@0.0.111/src/codegeneration/SymbolTransformer.js")),t=e.BinaryExpression,r=e.UnaryExpression,n=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTreeType.js","traceur@0.0.111/src/codegeneration/SymbolTransformer.js")),i=n.IDENTIFIER_EXPRESSION,a=n.LITERAL_EXPRESSION,s=n.UNARY_EXPRESSION,o=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeTransformer.js","traceur@0.0.111/src/codegeneration/SymbolTransformer.js")).ParseTreeTransformer,u=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ImportRuntimeTrait.js","traceur@0.0.111/src/codegeneration/SymbolTransformer.js")).default,c=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/TokenType.js","traceur@0.0.111/src/codegeneration/SymbolTransformer.js")),l=c.EQUAL_EQUAL,m=c.EQUAL_EQUAL_EQUAL,p=c.NOT_EQUAL,f=c.NOT_EQUAL_EQUAL,h=c.TYPEOF,d=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./PlaceholderParser.js","traceur@0.0.111/src/codegeneration/SymbolTransformer.js")).parseExpression;function isTypeof(e){return e.type===s&&e.operator.type===h}function isSafeTypeofString(e){if(e.type!==a)return!1;switch(e.literalToken.processedValue){case"symbol":case"object":return!1}return!0}var g=function(e){function SymbolTransformer(e,t,r){$traceurRuntime.superConstructor(SymbolTransformer).call(this),this.identifierGenerator=e,this.reporter=t,this.options=r}return $traceurRuntime.createClass(SymbolTransformer,{transformTypeofOperand_:function(e){var t=this.transformAny(e.operand);return new r(e.location,e.operator,t)},transformBinaryExpression:function(e){if(function isEqualityExpression(e){switch(e.operator.type){case l:case m:case p:case f:return!0}return!1}(e)){if(isTypeof(e.left)&&isSafeTypeofString(e.right)){var r=this.transformTypeofOperand_(e.left),n=e.right;return new t(e.location,r,e.operator,n)}if(isTypeof(e.right)&&isSafeTypeofString(e.left)){var i=e.left,a=this.transformTypeofOperand_(e.right);return new t(e.location,i,e.operator,a)}}return $traceurRuntime.superGet(this,SymbolTransformer.prototype,"transformBinaryExpression").call(this,e)},transformUnaryExpression:function(e){if(e.operator.type!==h)return $traceurRuntime.superGet(this,SymbolTransformer.prototype,"transformUnaryExpression").call(this,e);var t=this.transformAny(e.operand),r=this.getRuntimeTypeof(t);return t.type===i?d($traceurRuntime.getTemplateObject(["(typeof "," === 'undefined' ?\n          'undefined' : ",")"]),t,r):r},getRuntimeTypeof:function(e){var t=this.getRuntimeExpression("typeof");return d($traceurRuntime.getTemplateObject(["","(",")"]),t,e)}},{},e)}(u(o));return{get SymbolTransformer(){return g}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/TemplateLiteralTransformer.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTreeType.js","traceur@0.0.111/src/codegeneration/TemplateLiteralTransformer.js")),t=e.BINARY_EXPRESSION,r=e.COMMA_EXPRESSION,n=e.CONDITIONAL_EXPRESSION,i=e.TEMPLATE_LITERAL_PORTION,a=(e.TEMPLATE_LITERAL_EXPRESSION,$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTrees.js","traceur@0.0.111/src/codegeneration/TemplateLiteralTransformer.js"))),s=a.LiteralExpression,o=(a.NewExpression,$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/LiteralToken.js","traceur@0.0.111/src/codegeneration/TemplateLiteralTransformer.js")).LiteralToken),u=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParenTrait.js","traceur@0.0.111/src/codegeneration/TemplateLiteralTransformer.js")).ParenTrait,c=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeTransformer.js","traceur@0.0.111/src/codegeneration/TemplateLiteralTransformer.js")).ParseTreeTransformer,l=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ImportRuntimeTrait.js","traceur@0.0.111/src/codegeneration/TemplateLiteralTransformer.js")).default,m=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/TokenType.js","traceur@0.0.111/src/codegeneration/TemplateLiteralTransformer.js")),p=m.PERCENT,f=m.PLUS,h=m.SLASH,d=m.STAR,g=m.STRING,T=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeFactory.js","traceur@0.0.111/src/codegeneration/TemplateLiteralTransformer.js")),y=T.createArgumentList,R=T.createArrayLiteral,S=T.createBinaryExpression,_=T.createCallExpression,v=(T.createMemberExpression,T.createOperatorToken),E=T.createParenExpression;function createStringLiteralExpression(e,t){return new s(e,new o(g,t,e))}function createGetTemplateObject(e,t){for(var r=[],n=[],i=!0,a=0;a<e.length;a+=2){var s=e[a].location,o=e[a].value.value,u=toCookedString(o),c=toRawString(o),l=createStringLiteralExpression(s,u);if(r.push(l),u!==c){i=!1;var m=createStringLiteralExpression(s,c);n.push(m)}else n.push(l)}maybeAddEmptyStringAtEnd(e,r);var p=[R(r)];if(!i){maybeAddEmptyStringAtEnd(e,n);var f=R(n);p.unshift(f)}return _(t,y(p))}function maybeAddEmptyStringAtEnd(e,t){var r=e.length;r&&e[r-1].type===i||t.push(createStringLiteralExpression(null,'""'))}function toRawString(e){return e=e.replace(/\r\n?/g,"\n"),(e=JSON.stringify(e)).replace(/\u2028|\u2029/g,(function(e){switch(e){case"\u2028":return"\\u2028";case"\u2029":return"\\u2029";default:throw Error("Not reachable")}}))}function toCookedString(e){for(var t,r,n=['"'],i=0,a=1;i<e.length;)switch(t=e[i++]){case"\\":switch(r=e[i++]){case"\n":case"\u2028":case"\u2029":break;case"\r":"\n"===e[i+1]&&i++;break;default:n[a++]=t,n[a++]=r}break;case'"':n[a++]='\\"';break;case"\n":n[a++]="\\n";break;case"\r":"\n"===e[i]&&i++,n[a++]="\\n";break;case"\t":n[a++]="\\t";break;case"\f":n[a++]="\\f";break;case"\b":n[a++]="\\b";break;case"\u2028":n[a++]="\\u2028";break;case"\u2029":n[a++]="\\u2029";break;default:n[a++]=t}return n[a++]='"',n.join("")}var M,A=(M=l(u(c)),$traceurRuntime.createClass((function TemplateLiteralTransformer(e,t,r){$traceurRuntime.superConstructor(TemplateLiteralTransformer).call(this),this.options=r}),{transformTemplateLiteralExpression:function(e){if(!e.operand)return this.createDefaultTemplateLiteral(e);for(var t=this.transformAny(e.operand),r=e.elements,n=this.getRuntimeExpression("getTemplateObject"),i=[createGetTemplateObject(e.elements,n)],a=1;a<r.length;a+=2)i.push(this.transformAny(r[a]));return _(t,y(i))},transformTemplateSubstitution:function(e){var i=this.transformAny(e.expression);switch(i.type){case t:switch(i.operator.type){case d:case p:case h:return i}return E(i);case r:case n:return E(i)}return i},transformTemplateLiteralPortion:function(e){var t=toCookedString(e.value.value);return createStringLiteralExpression(e.location,t)},createDefaultTemplateLiteral:function(e){var t=e.elements,r=t.length;if(0===r)return createStringLiteralExpression(e.location,'""');var n=""===t[0].value.value,a=this.transformAny(t[0]);if(1===r)return a;for(var s=v(f),o=1;o<r;o++){var u=t[o];if(u.type===i){if(""===u.value.value)continue;n&&2===o&&(a=a.right)}var c=this.transformAny(t[o]);a=S(a,s,c)}return new E(a)}},{},M));return{get TemplateLiteralTransformer(){return A}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/TypeToExpressionTransformer.js",[],(function(){"use strict";var e,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeTransformer.js","traceur@0.0.111/src/codegeneration/TypeToExpressionTransformer.js")).ParseTreeTransformer,r=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTrees.js","traceur@0.0.111/src/codegeneration/TypeToExpressionTransformer.js")),n=r.ArgumentList,i=r.IdentifierExpression,a=r.MemberExpression,s=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./PlaceholderParser.js","traceur@0.0.111/src/codegeneration/TypeToExpressionTransformer.js")).parseExpression,o=(e=t,$traceurRuntime.createClass((function TypeToExpressionTransformer(){$traceurRuntime.superConstructor(TypeToExpressionTransformer).apply(this,arguments)}),{transformTypeName:function(e){if(e.moduleName){var t=this.transformAny(e.moduleName);return new a(e.location,t,e.name)}return new i(e.location,e.name)},transformPredefinedType:function(e){return s($traceurRuntime.getTemplateObject(["$traceurRuntime.type.",")"]),e.typeToken)},transformTypeReference:function(e){var t=this.transformAny(e.typeName),r=this.transformAny(e.args),i=new n(e.location,$traceurRuntime.spread([t],r));return s($traceurRuntime.getTemplateObject(["$traceurRuntime.genericType(",")"]),i)},transformTypeArguments:function(e){return this.transformList(e.args)}},{},e));return{get TypeToExpressionTransformer(){return o}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/TypeTransformer.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTrees.js","traceur@0.0.111/src/codegeneration/TypeTransformer.js")),t=e.AnonBlock,r=e.FormalParameter,n=e.FunctionDeclaration,i=e.FunctionExpression,a=e.GetAccessor,s=e.Method,o=e.VariableDeclaration,u=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTreeType.js","traceur@0.0.111/src/codegeneration/TypeTransformer.js")),c=u.IMPORT_TYPE_CLAUSE,l=u.TYPE_ALIAS_DECLARATION,m=function(e){function TypeTransformer(){$traceurRuntime.superConstructor(TypeTransformer).apply(this,arguments)}return $traceurRuntime.createClass(TypeTransformer,{transformVariableDeclaration:function(e){return e.typeAnnotation&&(e=new o(e.location,e.lvalue,null,e.initializer)),$traceurRuntime.superGet(this,TypeTransformer.prototype,"transformVariableDeclaration").call(this,e)},transformFormalParameter:function(e){return null!==e.typeAnnotation?new r(e.location,e.parameter,null,[]):e},transformFunctionDeclaration:function(e){return e.typeAnnotation&&(e=new n(e.location,e.name,e.functionKind,e.parameterList,null,e.annotations,e.body)),$traceurRuntime.superGet(this,TypeTransformer.prototype,"transformFunctionDeclaration").call(this,e)},transformFunctionExpression:function(e){return e.typeAnnotation&&(e=new i(e.location,e.name,e.functionKind,e.parameterList,null,e.annotations,e.body)),$traceurRuntime.superGet(this,TypeTransformer.prototype,"transformFunctionExpression").call(this,e)},transformMethod:function(e){return e.typeAnnotation&&(e=new s(e.location,e.isStatic,e.functionKind,e.name,e.parameterList,null,e.annotations,e.body,e.debugName)),$traceurRuntime.superGet(this,TypeTransformer.prototype,"transformMethod").call(this,e)},transformGetAccessor:function(e){return e.typeAnnotation&&(e=new a(e.location,e.isStatic,e.name,null,e.annotations,e.body)),$traceurRuntime.superGet(this,TypeTransformer.prototype,"transformGetAccessor").call(this,e)},transformInterfaceDeclaration:function(e){return new t(null,[])},transformExportDeclaration:function(e){return e.declaration.type===l?new t(null,[]):$traceurRuntime.superGet(this,TypeTransformer.prototype,"transformExportDeclaration").call(this,e)},transformTypeAliasDeclaration:function(e){return new t(null,[])},transformImportDeclaration:function(e){return e.importClause&&e.importClause.type!==c?$traceurRuntime.superGet(this,TypeTransformer.prototype,"transformImportDeclaration").call(this,e):new t(null,[])}},{},e)}($traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeTransformer.js","traceur@0.0.111/src/codegeneration/TypeTransformer.js")).ParseTreeTransformer);return{get TypeTransformer(){return m}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/UnicodeEscapeSequenceTransformer.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeTransformer.js","traceur@0.0.111/src/codegeneration/UnicodeEscapeSequenceTransformer.js")).ParseTreeTransformer,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTrees.js","traceur@0.0.111/src/codegeneration/UnicodeEscapeSequenceTransformer.js")).LiteralExpression,r=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/LiteralToken.js","traceur@0.0.111/src/codegeneration/UnicodeEscapeSequenceTransformer.js")).LiteralToken,n=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/TokenType.js","traceur@0.0.111/src/codegeneration/UnicodeEscapeSequenceTransformer.js")).STRING,i=/(\\*)\\u{([0-9a-fA-F]+)}/g;var a,s=(a=e,$traceurRuntime.createClass((function UnicodeEscapeSequenceTransformer(){$traceurRuntime.superConstructor(UnicodeEscapeSequenceTransformer).apply(this,arguments)}),{transformLiteralExpression:function(e){var a=e.literalToken;if(function needsTransform(e){return e.type===n&&i.test(e.value)}(a)){var s=function transformToken(e){return e.value.replace(i,(function(e,t,r){if(t.length%2==1)return e;var n,i=parseInt(r,16);if(i<=65535)n="\\u"+function zeroPad(e){return"0000".slice(e.length)+e}(i.toString(16).toUpperCase());else{var a=(i-65536)%1024+56320;n="\\u"+(Math.floor((i-65536)/1024)+55296).toString(16).toUpperCase()+"\\u"+a.toString(16).toUpperCase()}return t+n}))}(a);return new t(e.location,new r(n,s,a.location))}return e}},{},a));return{get UnicodeEscapeSequenceTransformer(){return s}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/UniqueIdentifierGenerator.js",[],(function(){"use strict";var e=$traceurRuntime.createClass((function e(){this.identifierIndex=0}),{generateUniqueIdentifier:function(){return"$__"+this.identifierIndex++}},{});return{get UniqueIdentifierGenerator(){return e}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/semantics/ConstChecker.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTreeType.js","traceur@0.0.111/src/semantics/ConstChecker.js")).IDENTIFIER_EXPRESSION,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/TokenType.js","traceur@0.0.111/src/semantics/ConstChecker.js")),r=t.CONST,n=t.MINUS_MINUS,i=t.PLUS_PLUS,a=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ScopeVisitor.js","traceur@0.0.111/src/semantics/ConstChecker.js")).ScopeVisitor,s=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ScopeChainBuilder.js","traceur@0.0.111/src/semantics/ConstChecker.js")).ScopeChainBuilder,o=function(t){function ConstChecker(e,t){$traceurRuntime.superConstructor(ConstChecker).call(this),this.scopeBuilder_=e,this.reporter_=t}return $traceurRuntime.createClass(ConstChecker,{pushScope:function(e){return this.scope=this.scopeBuilder_.getScopeForTree(e)},visitUnaryExpression:function(t){t.operand.type!==e||t.operator.type!==i&&t.operator.type!==n||this.validateMutation_(t.operand),$traceurRuntime.superGet(this,ConstChecker.prototype,"visitUnaryExpression").call(this,t)},visitPostfixExpression:function(t){t.operand.type===e&&this.validateMutation_(t.operand),$traceurRuntime.superGet(this,ConstChecker.prototype,"visitPostfixExpression").call(this,t)},visitBinaryExpression:function(t){t.left.type===e&&t.operator.isAssignmentOperator()&&this.validateMutation_(t.left),$traceurRuntime.superGet(this,ConstChecker.prototype,"visitBinaryExpression").call(this,t)},validateMutation_:function(e){if(!this.inWithBlock){var t=this.scope.getBinding(e);if(null!==t){var n=t,i=n.type,a=n.tree;i===r&&this.reportError_(e.location,a.getStringValue()+" is read-only")}}},reportError_:function(e,t){this.reporter_.reportError(e,t)}},{},t)}(a);function validate(e,t){var r=new s(t);r.visitAny(e),new o(r,t).visitAny(e)}return{get ConstChecker(){return o},get validate(){return validate}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/semantics/FreeVariableChecker.js",[],(function(){"use strict";var e,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ScopeChainBuilderWithReferences.js","traceur@0.0.111/src/semantics/FreeVariableChecker.js")).ScopeChainBuilderWithReferences,r=(e=t,$traceurRuntime.createClass((function FreeVariableChecker(e,t){$traceurRuntime.superConstructor(FreeVariableChecker).call(this,e),this.global_=t}),{referenceFound:function(e,t){this.scope.getBinding(e)||t in this.global_||this.reporter.reportError(e.location,t+" is not defined")}},{},e));function validate(e,t){var n=void 0!==arguments[2]?arguments[2]:Reflect.global,i=new r(t,n);i.visitAny(e)}return{get validate(){return validate}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/FromOptionsTransformer.js",[],(function(){"use strict";var e,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./AmdTransformer.js","traceur@0.0.111/src/codegeneration/FromOptionsTransformer.js")).AmdTransformer,r=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./AnnotationsTransformer.js","traceur@0.0.111/src/codegeneration/FromOptionsTransformer.js")).AnnotationsTransformer,n=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ArrayComprehensionTransformer.js","traceur@0.0.111/src/codegeneration/FromOptionsTransformer.js")).ArrayComprehensionTransformer,i=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ArrowFunctionTransformer.js","traceur@0.0.111/src/codegeneration/FromOptionsTransformer.js")).ArrowFunctionTransformer,a=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./AsyncGeneratorTransformPass.js","traceur@0.0.111/src/codegeneration/FromOptionsTransformer.js")).AsyncGeneratorTransformPass,s=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./AsyncToGeneratorTransformer.js","traceur@0.0.111/src/codegeneration/FromOptionsTransformer.js")).AsyncToGeneratorTransformer,o=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./BlockBindingTransformer.js","traceur@0.0.111/src/codegeneration/FromOptionsTransformer.js")).BlockBindingTransformer,u=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ClassTransformer.js","traceur@0.0.111/src/codegeneration/FromOptionsTransformer.js")).ClassTransformer,c=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ClosureModuleTransformer.js","traceur@0.0.111/src/codegeneration/FromOptionsTransformer.js")).ClosureModuleTransformer,l=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./CommonJsModuleTransformer.js","traceur@0.0.111/src/codegeneration/FromOptionsTransformer.js")).CommonJsModuleTransformer,m=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./DefaultParametersTransformer.js","traceur@0.0.111/src/codegeneration/FromOptionsTransformer.js")).DefaultParametersTransformer,p=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./DestructuringTransformer.js","traceur@0.0.111/src/codegeneration/FromOptionsTransformer.js")).DestructuringTransformer,f=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ExponentiationTransformer.js","traceur@0.0.111/src/codegeneration/FromOptionsTransformer.js")).ExponentiationTransformer,h=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ForOfTransformer.js","traceur@0.0.111/src/codegeneration/FromOptionsTransformer.js")).ForOfTransformer,d=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ForOnTransformer.js","traceur@0.0.111/src/codegeneration/FromOptionsTransformer.js")).ForOnTransformer,g=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./GeneratorComprehensionTransformer.js","traceur@0.0.111/src/codegeneration/FromOptionsTransformer.js")).GeneratorComprehensionTransformer,T=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./GeneratorTransformPass.js","traceur@0.0.111/src/codegeneration/FromOptionsTransformer.js")).GeneratorTransformPass,y=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./InlineModuleTransformer.js","traceur@0.0.111/src/codegeneration/FromOptionsTransformer.js")).InlineModuleTransformer,R=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./InstantiateModuleTransformer.js","traceur@0.0.111/src/codegeneration/FromOptionsTransformer.js")).InstantiateModuleTransformer,S=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./JsxTransformer.js","traceur@0.0.111/src/codegeneration/FromOptionsTransformer.js")).JsxTransformer,_=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./MemberVariableTransformer.js","traceur@0.0.111/src/codegeneration/FromOptionsTransformer.js")).MemberVariableTransformer,v=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ModuleTransformer.js","traceur@0.0.111/src/codegeneration/FromOptionsTransformer.js")).ModuleTransformer,E=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./MultiTransformer.js","traceur@0.0.111/src/codegeneration/FromOptionsTransformer.js")).MultiTransformer,M=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./NumericLiteralTransformer.js","traceur@0.0.111/src/codegeneration/FromOptionsTransformer.js")).NumericLiteralTransformer,A=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ObjectLiteralTransformer.js","traceur@0.0.111/src/codegeneration/FromOptionsTransformer.js")).ObjectLiteralTransformer,x=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ProperTailCallTransformer.js","traceur@0.0.111/src/codegeneration/FromOptionsTransformer.js")).ProperTailCallTransformer,$=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./PropertyNameShorthandTransformer.js","traceur@0.0.111/src/codegeneration/FromOptionsTransformer.js")).PropertyNameShorthandTransformer,C=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./RegularExpressionTransformer.js","traceur@0.0.111/src/codegeneration/FromOptionsTransformer.js")).RegularExpressionTransformer,N=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./RestParameterTransformer.js","traceur@0.0.111/src/codegeneration/FromOptionsTransformer.js")).RestParameterTransformer,P=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./SpreadPropertiesTransformer.js","traceur@0.0.111/src/codegeneration/FromOptionsTransformer.js")).SpreadPropertiesTransformer,b=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./SpreadTransformer.js","traceur@0.0.111/src/codegeneration/FromOptionsTransformer.js")).SpreadTransformer,w=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./SuperTransformer.js","traceur@0.0.111/src/codegeneration/FromOptionsTransformer.js")).SuperTransformer,j=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./SymbolTransformer.js","traceur@0.0.111/src/codegeneration/FromOptionsTransformer.js")).SymbolTransformer,L=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./TemplateLiteralTransformer.js","traceur@0.0.111/src/codegeneration/FromOptionsTransformer.js")).TemplateLiteralTransformer,I=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./TypeToExpressionTransformer.js","traceur@0.0.111/src/codegeneration/FromOptionsTransformer.js")).TypeToExpressionTransformer,O=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./TypeTransformer.js","traceur@0.0.111/src/codegeneration/FromOptionsTransformer.js")).TypeTransformer,F=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./UnicodeEscapeSequenceTransformer.js","traceur@0.0.111/src/codegeneration/FromOptionsTransformer.js")).UnicodeEscapeSequenceTransformer,k=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./UniqueIdentifierGenerator.js","traceur@0.0.111/src/codegeneration/FromOptionsTransformer.js")).UniqueIdentifierGenerator,D=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../semantics/ConstChecker.js","traceur@0.0.111/src/codegeneration/FromOptionsTransformer.js")).validate,B=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../semantics/FreeVariableChecker.js","traceur@0.0.111/src/codegeneration/FromOptionsTransformer.js")).validate,z=(e=E,$traceurRuntime.createClass((function FromOptionsTransformer(e,E){var z;$traceurRuntime.superConstructor(FromOptionsTransformer).call(this,e,E.validate);var V=E.transformOptions,G=new k,U=(z=this,function(t){z.append((function(r){return new t(G,e,E).transformAny(r)}))});if(V.blockBinding&&this.append((function(t){return D(t,e),t})),E.freeVariableChecker&&this.append((function(t){return B(t,e),t})),V.exponentiation&&U(f),V.numericLiterals&&U(M),V.unicodeExpressions&&U(C),V.jsx&&U(S),V.templateLiterals&&U(L),V.types&&V.annotations&&U(I),V.unicodeEscapeSequences&&U(F),V.annotations&&U(r),V.propertyNameShorthand&&U($),V.memberVariables&&U(_),V.classes&&U(w),V.arrowFunctions&&U(i),V.classes&&U(u),V.spreadProperties&&U(P),(V.propertyMethods||V.computedPropertyNames||V.properTailCalls)&&U(A),V.generatorComprehension&&U(g),V.arrayComprehension&&U(n),V.forOf&&U(h),V.asyncGenerators&&U(a),V.forOn&&U(d),V.restParameters&&U(N),V.defaultParameters&&U(m),V.destructuring&&U(p),V.types&&U(O),V.spread&&U(b),V.blockBinding&&this.append((function(t){return new o(G,e,t).transformAny(t)})),V.asyncFunctions&&"parse"===E.generators?U(s):(V.generators||V.asyncFunctions)&&U(T),V.symbols&&U(j),V.properTailCalls&&U(x),V.modules)switch(V.modules){case"commonjs":U(l);break;case"amd":U(t);break;case"closure":U(c);break;case"inline":U(y);break;case"instantiate":U(R);break;case"bootstrap":U(v);break;case"parse":break;default:throw new Error("Invalid modules transform option")}}),{},{},e));return{get FromOptionsTransformer(){return z}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/InlineES6ModuleTransformer.js",[],(function(){"use strict";var e,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/TokenType.js","traceur@0.0.111/src/codegeneration/InlineES6ModuleTransformer.js")),r=t.CONST,n=t.LET,i=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ModuleTransformer.js","traceur@0.0.111/src/codegeneration/InlineES6ModuleTransformer.js")).ModuleTransformer,a=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeFactory.js","traceur@0.0.111/src/codegeneration/InlineES6ModuleTransformer.js")),s=a.createAssignmentStatement,o=a.createArgumentList,u=a.createBindingIdentifier,c=a.createCallExpression,l=a.createExpressionStatement,m=a.createForInStatement,p=a.createFunctionBody,f=a.createIfStatement,h=a.createImmediatelyInvokedFunctionExpression,d=a.createIdentifierExpression,g=a.createMemberLookupExpression,T=a.createMemberExpression,y=a.createObjectLiteral,R=a.createReturnStatement,S=a.createUseStrictDirective,_=a.createVariableDeclarationList,v=a.createVariableStatement,E=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTreeType.js","traceur@0.0.111/src/codegeneration/InlineES6ModuleTransformer.js")).IMPORT_SPECIFIER_SET,M=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTrees.js","traceur@0.0.111/src/codegeneration/InlineES6ModuleTransformer.js")).AnonBlock,A=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./PlaceholderParser.js","traceur@0.0.111/src/codegeneration/InlineES6ModuleTransformer.js")).parseStatement,x=0,$=(e=i,$traceurRuntime.createClass((function InlineES6ModuleTransformer(e,t,r,n){$traceurRuntime.superConstructor(InlineES6ModuleTransformer).call(this,e,t,r),this.metadata_=n}),{moduleProlog:function(){return[S()]},wrapModule:function(e){var t=this.moduleName||"anon_"+ ++x,n=this.getTempVarNameForModuleName(t);if(this.isRootModule)return e.pop(),e;var i=p(e),a=h(i);return[v(r,n,a)]},transformExportDeclaration:function(e){return this.isRootModule?e:(this.exportVisitor.visitAny(e),this.transformAny(e.declaration))},transformImportDeclaration:function(e){if(!e.importClause||e.importClause.type===E&&0===e.importClause.specifiers.length)return l(this.transformAny(e.moduleSpecifier));var t=this.transformAny(e.importClause),n=this.transformAny(e.moduleSpecifier);return v(r,t,n)},transformNamedExport:function(e){return new M(null,[])},addExportStatement:function(e){var t=this,r=this.getExportProperties(),i=y(r);if(this.exportVisitor.starExports.length){var a=this.exportVisitor.starExports.map((function(e){return d(t.getTempVarNameForModuleSpecifier(e))}));r.length&&a.push(i);var u=this.getTempIdentifier();e.push(v(n,u,y("")));var l=this.getTempIdentifier();return a.forEach((function(t){e.push(m(_(n,l,null),t,f(c(T(t,"hasOwnProperty"),o([d(l)])),s(g(d(u),d(l)),g(t,d(l))))))})),e.push(R(d(u))),e}return e.push(A($traceurRuntime.getTemplateObject(["return ",""]),i)),e},transformModuleSpecifier:function(e){return u(this.getTempVarNameForModuleSpecifier(e))},get isRootModule(){return this.moduleName===(this.metadata_&&this.metadata_.rootModule)}},{},e));return{get InlineES6ModuleTransformer(){return $}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/PureES6Transformer.js",[],(function(){"use strict";var e,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./AnnotationsTransformer.js","traceur@0.0.111/src/codegeneration/PureES6Transformer.js")).AnnotationsTransformer,r=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./AsyncToGeneratorTransformer.js","traceur@0.0.111/src/codegeneration/PureES6Transformer.js")).AsyncToGeneratorTransformer,n=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./InlineES6ModuleTransformer.js","traceur@0.0.111/src/codegeneration/PureES6Transformer.js")).InlineES6ModuleTransformer,i=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./JsxTransformer.js","traceur@0.0.111/src/codegeneration/PureES6Transformer.js")).JsxTransformer,a=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./MemberVariableTransformer.js","traceur@0.0.111/src/codegeneration/PureES6Transformer.js")).MemberVariableTransformer,s=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./MultiTransformer.js","traceur@0.0.111/src/codegeneration/PureES6Transformer.js")).MultiTransformer,o=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./SpreadPropertiesTransformer.js","traceur@0.0.111/src/codegeneration/PureES6Transformer.js")).SpreadPropertiesTransformer,u=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./TypeTransformer.js","traceur@0.0.111/src/codegeneration/PureES6Transformer.js")).TypeTransformer,c=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./UniqueIdentifierGenerator.js","traceur@0.0.111/src/codegeneration/PureES6Transformer.js")).UniqueIdentifierGenerator,l=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../semantics/FreeVariableChecker.js","traceur@0.0.111/src/codegeneration/PureES6Transformer.js")).validate,m=(e=s,$traceurRuntime.createClass((function PureES6Transformer(e,s,m){var p;$traceurRuntime.superConstructor(PureES6Transformer).call(this,e,s.validate);var f=new c,h=(p=this,function(t){p.append((function(r){return new t(f,e,s,m).transformAny(r)}))});s.freeVariableChecker&&this.append((function(t){return l(t,e),t})),s.jsx&&h(i),s.spreadProperties&&h(o),s.memberVariables&&h(a),h(t),h(u),h(r),"inline"===s.modules&&h(n)}),{},{},e));return{get PureES6Transformer(){return m}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/Compiler.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./codegeneration/module/AttachModuleNameTransformer.js","traceur@0.0.111/src/Compiler.js")).AttachModuleNameTransformer,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./codegeneration/FromOptionsTransformer.js","traceur@0.0.111/src/Compiler.js")).FromOptionsTransformer,r=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./syntax/Parser.js","traceur@0.0.111/src/Compiler.js")).Parser,n=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./codegeneration/PureES6Transformer.js","traceur@0.0.111/src/Compiler.js")).PureES6Transformer,i=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./syntax/SourceFile.js","traceur@0.0.111/src/Compiler.js")).SourceFile,a=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./util/CollectingErrorReporter.js","traceur@0.0.111/src/Compiler.js")).CollectingErrorReporter,s=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./Options.js","traceur@0.0.111/src/Compiler.js")),o=s.Options,u=s.versionLockedOptions,c=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./outputgeneration/ParseTreeMapWriter.js","traceur@0.0.111/src/Compiler.js")).ParseTreeMapWriter,l=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./outputgeneration/ParseTreeWriter.js","traceur@0.0.111/src/Compiler.js")).ParseTreeWriter,m=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./outputgeneration/SourceMapIntegration.js","traceur@0.0.111/src/Compiler.js")),p=m.SourceMapConsumer,f=m.SourceMapGenerator;function merge(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var r=Object.create(null);return e.forEach((function(e){Object.keys(e).forEach((function(t){r[t]=e[t]}));var t=e.modules;void 0!==t&&(r.modules=t)})),r}function basePath(e){if(!e)return null;var t=e.lastIndexOf("/");return t<0?null:e.substring(0,t+1)}var h=function(){function Compiler(){var e=void 0!==arguments[0]?arguments[0]:{};this.options_=new o(this.defaultOptions()),this.options_.setFromObject(e),this.sourceMapConfiguration_=null,this.sourceMapInfo_=null,this.sourceMapCache_=null}return $traceurRuntime.createClass(Compiler,{compile:function(e){var t=void 0!==arguments[1]?arguments[1]:"<compileSource>",r=void 0!==arguments[2]?arguments[2]:"<compileOutput>",n=arguments[3];t=this.normalize(t),r=this.normalize(r);var i=this.parse(e,t);i=this.transform(i,t);var a=t!==r?t:void 0;return void 0===n&&(n=this.options_.sourceRoot),this.write(i,r,n,a)},throwIfErrors:function(e){if(e.hadError())throw e.toError()},parse:function(e){var t=void 0!==arguments[1]?arguments[1]:"<compiler-parse-input>";t=this.normalize(t),this.sourceMapCache_=null,this.sourceMapConfiguration_=null;var n=new a,s=new i(t,e),o=new r(s,n,this.options_),u=this.options_.script?o.parseScript():o.parseModule();return this.throwIfErrors(n),u},transform:function(r){var i=arguments[1],s=arguments[2];if(i){var o=new e(i);r=o.transformAny(r)}var u=new a,c=("es6"===this.options_.outputLanguage.toLowerCase()?new n(u,this.options_,s):new t(u,this.options_)).transform(r);return this.throwIfErrors(u),c},createSourceMapConfiguration_:function(e){var t=arguments[1],r=arguments[2];if(this.options_.sourceMaps)return{sourceMapGenerator:new f({file:e,sourceRoot:t,skipValidation:!0}),basepath:basePath(e),inputSourceMap:this.options_.inputSourceMap,sourceURL:r,outputName:e}},getSourceMap:function(){if(this.sourceMapCache_)return this.sourceMapCache_;if(this.sourceMapConfiguration_){var e=this.sourceMapConfiguration_.sourceMapGenerator.toString(),t=this.sourceMapConfiguration_.inputSourceMap;if(t){var r=f.fromSourceMap(new p(e));r.applySourceMap(new p(t)),e=r.toJSON()}return this.sourceMapCache_=e,e}},get sourceMapInfo(){if(!this.sourceMapInfo_&&this.sourceMapConfiguration_){var e=this.getSourceMap();this.sourceMapInfo_={url:this.sourceMapConfiguration_.sourceURL,outputName:this.sourceMapConfiguration_.outputName,map:e}}return this.sourceMapInfo_},write:function(e){var t,r=arguments[1],n=arguments[2],i=arguments[3];r=this.normalize(r),void 0===n&&(n=this.options_.sourceRoot),n=!0===n?basePath(r):n?this.normalize(n):void 0,this.sourceMapCache_=null,this.sourceMapConfiguration_=this.createSourceMapConfiguration_(r,n,i),this.sourceMapConfiguration_?(this.sourceMapConfiguration_.lowResolution=this.options_.lowResolutionSourceMap,t=new c(this.sourceMapConfiguration_,this.options_)):t=new l(this.options_),t.visitAny(e);var a=t.toString(),s=this.debuggerLink(i,r);return s&&(a+=s),a},debuggerLink:function(e,t){if(this.sourceMapConfiguration_){if("memory"===this.options_.sourceMaps)return;return"//# sourceMappingURL="+this.sourceMappingURL(e||t||"unnamed.js")+"\n"}if(e)return"//# sourceURL="+e+"\n"},sourceName:function(e){return e},sourceMappingURL:function(e){return"inline"===this.options_.sourceMaps&&Reflect.global.btoa?"data:application/json;base64,"+btoa(unescape(encodeURIComponent(this.getSourceMap()))):(e=(e=e||"unamed.js").split("/").pop())+".map"},sourceNameFromTree:function(e){return e.location.start.source.name},defaultOptions:function(){return u},normalize:function(e){return e&&e.replace(/\\/g,"/")}},{script:function(e){var t=void 0!==arguments[1]?arguments[1]:{};return(t=new o(t)).script=!0,new Compiler(t).compile(e)},module:function(e){var t=void 0!==arguments[1]?arguments[1]:{};return(t=new o(t)).modules="bootstrap",new Compiler(t).compile(e)},amdOptions:function(){var e=void 0!==arguments[0]?arguments[0]:{},t={modules:"amd",sourceMaps:!1,moduleName:!1};return merge(t,e)},closureOptions:function(){var e=void 0!==arguments[0]?arguments[0]:{},t={modules:"closure",sourceMaps:!1,moduleName:!0};return merge(t,e)},commonJSOptions:function(){var e=void 0!==arguments[0]?arguments[0]:{},t={modules:"commonjs",sourceMaps:!1,moduleName:!1};return merge(t,e)}})}();return{get Compiler(){return h}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/CloneTreeTransformer.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ParseTreeTransformer.js","traceur@0.0.111/src/codegeneration/CloneTreeTransformer.js")).ParseTreeTransformer,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTrees.js","traceur@0.0.111/src/codegeneration/CloneTreeTransformer.js")),r=t.BindingIdentifier,n=t.BreakStatement,i=t.ContinueStatement,a=t.DebuggerStatement,s=t.EmptyStatement,o=t.ExportSpecifier,u=t.ExportStar,c=t.IdentifierExpression,l=t.LiteralExpression,m=t.ModuleSpecifier,p=t.PredefinedType,f=t.PropertyNameShorthand,h=t.TemplateLiteralPortion,d=t.SuperExpression,g=t.ThisExpression,T=function(e){function CloneTreeTransformer(){$traceurRuntime.superConstructor(CloneTreeTransformer).apply(this,arguments)}return $traceurRuntime.createClass(CloneTreeTransformer,{transformBindingIdentifier:function(e){return new r(e.location,e.identifierToken)},transformBreakStatement:function(e){return new n(e.location,e.name)},transformContinueStatement:function(e){return new i(e.location,e.name)},transformDebuggerStatement:function(e){return new a(e.location)},transformEmptyStatement:function(e){return new s(e.location)},transformExportSpecifier:function(e){return new o(e.location,e.lhs,e.rhs)},transformExportStar:function(e){return new u(e.location)},transformIdentifierExpression:function(e){return new c(e.location,e.identifierToken)},transformList:function(e){return e?0===e.length?[]:$traceurRuntime.superGet(this,CloneTreeTransformer.prototype,"transformList").call(this,e):null},transformLiteralExpression:function(e){return new l(e.location,e.literalToken)},transformModuleSpecifier:function(e){return new m(e.location,e.token)},transformPredefinedType:function(e){return new p(e.location,e.typeToken)},transformPropertyNameShorthand:function(e){return new f(e.location,e.name)},transformTemplateLiteralPortion:function(e){return new h(e.location,e.value)},transformSuperExpression:function(e){return new d(e.location)},transformThisExpression:function(e){return new g(e.location)}},{},e)}(e);return T.cloneTree=function(e){return(new T).transformAny(e)},{get CloneTreeTransformer(){return T}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/module/createModuleEvaluationStatement.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../PlaceholderParser.js","traceur@0.0.111/src/codegeneration/module/createModuleEvaluationStatement.js")).parseStatement;function createModuleEvaluationStatement(t){return e($traceurRuntime.getTemplateObject(["$traceurRuntime.getModule("," +'')"]),t)}return{get createModuleEvaluationStatement(){return createModuleEvaluationStatement}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/compiler-imports.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./Compiler.js","traceur@0.0.111/src/compiler-imports.js")),t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./syntax/Parser.js","traceur@0.0.111/src/compiler-imports.js")).Parser,r=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./syntax/trees/ParseTrees.js","traceur@0.0.111/src/compiler-imports.js")).Script,n={Parser:t,SourceFile:$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./syntax/SourceFile.js","traceur@0.0.111/src/compiler-imports.js")).SourceFile,trees:{Script:r}},i={ParseTreeMapWriter:$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./outputgeneration/ParseTreeMapWriter.js","traceur@0.0.111/src/compiler-imports.js")).ParseTreeMapWriter,ParseTreeWriter:$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./outputgeneration/ParseTreeWriter.js","traceur@0.0.111/src/compiler-imports.js")).ParseTreeWriter,regexpuRewritePattern:$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./outputgeneration/regexpuRewritePattern.js","traceur@0.0.111/src/compiler-imports.js")).regexpuRewritePattern,SourceMapConsumer:$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./outputgeneration/SourceMapIntegration.js","traceur@0.0.111/src/compiler-imports.js")).SourceMapConsumer,SourceMapGenerator:$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./outputgeneration/SourceMapIntegration.js","traceur@0.0.111/src/compiler-imports.js")).SourceMapGenerator,TreeWriter:$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./outputgeneration/TreeWriter.js","traceur@0.0.111/src/compiler-imports.js")).TreeWriter},a=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./codegeneration/module/AttachModuleNameTransformer.js","traceur@0.0.111/src/compiler-imports.js")).AttachModuleNameTransformer,s=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./codegeneration/CloneTreeTransformer.js","traceur@0.0.111/src/compiler-imports.js")).CloneTreeTransformer,o=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./codegeneration/FromOptionsTransformer.js","traceur@0.0.111/src/compiler-imports.js")).FromOptionsTransformer,u=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./codegeneration/PureES6Transformer.js","traceur@0.0.111/src/compiler-imports.js")).PureES6Transformer,c=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./codegeneration/module/createModuleEvaluationStatement.js","traceur@0.0.111/src/compiler-imports.js")).createModuleEvaluationStatement,l=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./codegeneration/PlaceholderParser.js","traceur@0.0.111/src/compiler-imports.js")),m={CloneTreeTransformer:s,FromOptionsTransformer:o,PureES6Transformer:u,parseExpression:l.parseExpression,parseModule:l.parseModule,parseScript:l.parseScript,parseStatement:l.parseStatement,module:{AttachModuleNameTransformer:a,createModuleEvaluationStatement:c}};return{get Compiler(){return e.Compiler},get syntax(){return n},get outputgeneration(){return i},get codegeneration(){return m}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/module/ValidationVisitor.js",[],(function(){"use strict";var e,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ModuleVisitor.js","traceur@0.0.111/src/codegeneration/module/ValidationVisitor.js")).ModuleVisitor,r=(e=t,$traceurRuntime.createClass((function ValidationVisitor(){$traceurRuntime.superConstructor(ValidationVisitor).apply(this,arguments)}),{checkExport_:function(e,t){var r=this.validatingModuleDescription_;if(r&&!r.getExport(t)){var n=r.normalizedName;this.reportError(e,"'"+t+"' is not exported by '"+n+"'")}},checkImport_:function(e,t){var r=this.moduleSymbol.getImport(t);r?this.reportError(e,"'"+t+"' was previously imported at "+r.location.start):this.moduleSymbol.addImport(t,e)},visitAndValidate_:function(e,t){var r=this.validatingModuleDescription_;this.validatingModuleDescription_=e,this.visitAny(t),this.validatingModuleDescription_=r},visitNamedExport:function(e){if(e.moduleSpecifier){var t=e.moduleSpecifier.token.processedValue,r=this.getExportsListForModuleSpecifier(t);this.visitAndValidate_(r,e.exportClause)}},visitExportSpecifier:function(e){this.checkExport_(e,e.lhs.value)},visitForwardDefaultExport:function(e){this.checkExport_(e,"default")},visitImportDeclaration:function(e){var t=e.moduleSpecifier.token.processedValue,r=this.getExportsListForModuleSpecifier(t);this.visitAndValidate_(r,e.importClause)},visitImportSpecifier:function(e){var t=e.binding.getStringValue(),r=e.name?e.name.value:t;this.checkImport_(e,t),this.checkExport_(e,r)},visitImportedBinding:function(e){var t=e.binding.getStringValue();this.checkImport_(e,t),this.checkExport_(e,"default")},visitNameSpaceImport:function(e){var t=e.binding.binding.getStringValue();this.checkImport_(e,t)}},{},e));return{get ValidationVisitor(){return r}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/module/ExportListBuilder.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ExportVisitor.js","traceur@0.0.111/src/codegeneration/module/ExportListBuilder.js")).ExportVisitor,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ValidationVisitor.js","traceur@0.0.111/src/codegeneration/module/ExportListBuilder.js")).ValidationVisitor;function buildExportList(r,n,i){!function reverseVisit(e){for(var t=r.length-1;t>=0;t--){new e(i,n,r[t]).visitAny(r[t].tree)}}(e),function doVisit(e){for(var t=0;t<r.length;t++){new e(i,n,r[t]).visitAny(r[t].tree)}}(t)}return{get buildExportList(){return buildExportList}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/codegeneration/module/ModuleSpecifierVisitor.js",[],(function(){"use strict";var e,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../../syntax/ParseTreeVisitor.js","traceur@0.0.111/src/codegeneration/module/ModuleSpecifierVisitor.js")).ParseTreeVisitor,r=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../../util/StringSet.js","traceur@0.0.111/src/codegeneration/module/ModuleSpecifierVisitor.js")).StringSet,n=(e=t,$traceurRuntime.createClass((function ModuleSpecifierVisitor(e){$traceurRuntime.superConstructor(ModuleSpecifierVisitor).call(this),this.options_=e,this.moduleSpecifiers_=new r}),{get moduleSpecifiers(){return this.moduleSpecifiers_.valuesAsArray()},visitModuleSpecifier:function(e){this.moduleSpecifiers_.add(e.token.processedValue)}},{},e));return{get ModuleSpecifierVisitor(){return n}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/loader/system-map.js",[],(function(){"use strict";function prefixMatchLength(e,t){var r=t.split("/"),n=e.split("/");if(r.length>n.length)return 0;for(var i=0;i<r.length;i++)if(n[i]!=r[i])return 0;return r.length}var e={applyMap:function applyMap(e,t,r){var n,i,a,s=0,o=0;if(r&&Object.getOwnPropertyNames(e).some((function(u){var c=e[u];if(c&&"object"==typeof c){if(prefixMatchLength(r,u)<=o)return;Object.getOwnPropertyNames(c).forEach((function(e){prefixMatchLength(t,e)>s&&(n=e,s=e.split("/").length,i=u,o=u.split("/").length)}))}if(n){var l=t.split("/").splice(s).join("/");return a=e[i][n]+(l?"/"+l:"")}})),a)return a;if(Object.getOwnPropertyNames(e).forEach((function(r){var i=e[r];i&&"string"==typeof i&&prefixMatchLength(t,r)>s&&(n=r,s=r.split("/").length)})),!n)return t;var u=t.split("/").splice(s).join("/");return e[n]+(u?"/"+u:"")}};return{get systemjs(){return e}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/loader/LoaderCompiler.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../codegeneration/module/ExportListBuilder.js","traceur@0.0.111/src/loader/LoaderCompiler.js")).buildExportList,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../util/CollectingErrorReporter.js","traceur@0.0.111/src/loader/LoaderCompiler.js")).CollectingErrorReporter,r=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../Compiler.js","traceur@0.0.111/src/loader/LoaderCompiler.js")).Compiler,n=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../codegeneration/module/ModuleSpecifierVisitor.js","traceur@0.0.111/src/loader/LoaderCompiler.js")).ModuleSpecifierVisitor,i=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../codegeneration/module/ModuleSymbol.js","traceur@0.0.111/src/loader/LoaderCompiler.js")).ModuleSymbol,a=($traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/Parser.js","traceur@0.0.111/src/loader/LoaderCompiler.js")).Parser,$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/SourceFile.js","traceur@0.0.111/src/loader/LoaderCompiler.js")).SourceFile,$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./system-map.js","traceur@0.0.111/src/loader/LoaderCompiler.js")).systemjs,$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../codegeneration/UniqueIdentifierGenerator.js","traceur@0.0.111/src/loader/LoaderCompiler.js")).UniqueIdentifierGenerator),s=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../util/url.js","traceur@0.0.111/src/loader/LoaderCompiler.js")),o=(s.isAbsolute,s.resolveUrl,$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../util/assert.js","traceur@0.0.111/src/loader/LoaderCompiler.js")).assert),u=(new a,0),c=$traceurRuntime.createClass((function c(){}),{getModuleSpecifiers:function(e){this.parse(e);var t=new n(e.metadata.traceurOptions);return t.visit(e.metadata.tree),t.moduleSpecifiers},parse:function(e){o(!e.metadata.tree);var t=e.metadata,n=t.traceurOptions;"script"===e.type&&(n.script=!0),t.compiler=new r(n);var i=e.metadata.sourceName=e.address||e.normalizedName||"(unnamed)#"+String(++u);t.tree=t.compiler.parse(e.source,i)},transform:function(e){var t=e.metadata;t.transformedTree=t.compiler.transform(t.tree,e.normalizedName,t)},write:function(e){var t=e.metadata,r=t.outputName||t.sourceName||"<loaderOutput>",n=(t.sourceRoot,t.sourceName||e.normalizedName||e.address);t.transcoded=t.compiler.write(t.transformedTree,r,void 0,n)},evaluateCodeUnit:function(e){var t=(0,eval)(e.metadata.transcoded);return e.metadata.transformedTree=null,t},analyzeDependencies:function(t,r){for(var n=[],a=0;a<t.length;a++){var s=t[a];if(o(s.state>=3),3==s.state){var u=s.metadata.moduleSymbol=new i(s.metadata.tree,s.normalizedName);n.push(u)}}this.checkForErrors((function(t){return e(n,r,t)}))},checkForErrors:function(e){var r=new t,n=e(r);if(r.hadError())throw r.toError();return n}},{});return{get LoaderCompiler(){return c}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/loader/InternalLoader.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../util/assert.js","traceur@0.0.111/src/loader/InternalLoader.js")).assert,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./LoaderCompiler.js","traceur@0.0.111/src/loader/InternalLoader.js")).LoaderCompiler,r=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../codegeneration/module/ModuleSymbol.js","traceur@0.0.111/src/loader/InternalLoader.js")).ExportsList,n=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../util/url.js","traceur@0.0.111/src/loader/InternalLoader.js")),i=n.isAbsolute,a=(n.resolveUrl,$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../Options.js","traceur@0.0.111/src/loader/InternalLoader.js")).Options);function mapToValues(e){var t=[];return e.forEach((function(e){t.push(e)})),t}s=Error,$traceurRuntime.createClass((function LoaderError(e,t){$traceurRuntime.superConstructor(LoaderError).call(this),this.message=e,this.tree=t,this.name="LoaderError"}),{},{},s);var s,o=$traceurRuntime.createClass((function o(e,t,r,n,i,a,s){var o=this;this.promise=new Promise((function(u,c){o.loaderCompiler=e,o.normalizedName=t,o.type=r,o.name_=i,o.referrerName_=a,o.address=s,o.state_=n||0,o.error=null,o.result=null,o.metadata_={},o.dependencies=[],o.resolve=u,o.reject=c}))}),{get state(){return this.state_},set state(e){if(e<this.state_)throw new Error("Invalid state change");this.state_=e},get metadata(){return this.metadata_},set metadata(t){e(t),this.metadata_=t},nameTrace:function(){var e=this.specifiedAs();return i(this.name_)?e+"An absolute name.\n":this.referrerName_?e+this.importedBy()+this.normalizesTo():e+this.normalizesTo()},specifiedAs:function(){return"Specified as "+this.name_+".\n"},importedBy:function(){return"Imported by "+this.referrerName_+".\n"},normalizesTo:function(){return"Normalizes to "+this.normalizedName+"\n"}},{}),u=function(e){return $traceurRuntime.createClass((function PreCompiledCodeUnit(e,t,r,n,i,a){$traceurRuntime.superConstructor(PreCompiledCodeUnit).call(this,e,t,"module",6,r,n,i),this.result=a,this.resolve(this.result)}),{},{},e)}(o),c=(function(e){$traceurRuntime.createClass((function BundledCodeUnit(e,t,r,n,i,a,s,o){$traceurRuntime.superConstructor(BundledCodeUnit).call(this,e,t,"module",5,r,n,i),this.deps=a,this.execute=s}),{getModuleSpecifiers:function(){return this.deps},evaluate:function(){var e=this,t=this.deps.map((function(t){return e.loader_.normalize(t)})),r=this.execute.apply(Reflect.global,t);return setModule(this.normalizedName,r),r}},{},e)}(o),function(e){return $traceurRuntime.createClass((function HookedCodeUnit(){$traceurRuntime.superConstructor(HookedCodeUnit).apply(this,arguments)}),{getModuleSpecifiers:function(){return this.loaderCompiler.getModuleSpecifiers(this)},evaluate:function(){return this.loaderCompiler.evaluateCodeUnit(this)}},{},e)}(o)),l=function(e){return $traceurRuntime.createClass((function LoadCodeUnit(e,t,r,n,i){$traceurRuntime.superConstructor(LoadCodeUnit).call(this,e,t,"module",0,r,n,i)}),{},{},e)}(c),m=function(e){return $traceurRuntime.createClass((function EvalCodeUnit(e,t){var r=void 0!==arguments[2]?arguments[2]:"script",n=arguments[3],i=arguments[4],a=arguments[5];$traceurRuntime.superConstructor(EvalCodeUnit).call(this,e,n,r,2,null,i,a),this.source=t}),{},{},e)}(c),p=$traceurRuntime.createClass((function p(t,r){e(r),this.loader_=t,this.loaderCompiler=r,this.cache=new Map,this.urlToKey=Object.create(null),this.sync_=!1,this.sourceMapsByURL_=Object.create(null),this.sourceMapsByOutputName_=Object.create(null)}),{defaultMetadata_:function(){var e=void 0!==arguments[0]?arguments[0]:{},t=e.traceurOptions;if(t&&!(t instanceof a)){var r=a.listUnknownOptions(t);r.length&&console.warn("Unknown metadata.traceurOptions ignored: "+r.join(","))}return e.traceurOptions=t||new a,e},defaultModuleMetadata_:function(){var e=void 0!==arguments[0]?arguments[0]:{};return(e=this.defaultMetadata_(e)).traceurOptions.script=!1,e},getSourceMap:function(e){return this.sourceMapsByURL_[e]||this.sourceMapsByOutputName_[e]},load:function(e){var t=void 0!==arguments[1]?arguments[1]:this.loader_.baseURL,r=arguments[2],n=void 0!==arguments[3]?arguments[3]:{};n=this.defaultMetadata_(n);var i=this.getOrCreateCodeUnit_(e,t,r,n);return this.load_(i),i.promise.then((function(){return i}))},load_:function(e){var t=this;if(7===e.state)return e;if(5===e.state)this.handleCodeUnitLoaded(e);else{if(0!==e.state)return e;e.state=1,e.address=this.loader_.locate(e),this.loader_.fetch(e).then((function(t){return e.source=t,e})).then((function(e){return t.loader_.translate(e)})).then((function(r){return e.source=r,e.state=2,t.handleCodeUnitLoaded(e),e})).catch((function(r){try{e.state=7,e.error=r,t.handleCodeUnitLoadError(e)}catch(e){console.error("Internal Error "+(e.stack||e))}}))}return e},module:function(e,t,r,n){var i=new m(this.loaderCompiler,e,"module",null,t,r);return i.metadata=this.defaultMetadata_(n),this.cache.set({},i),this.handleCodeUnitLoaded(i),i.promise},define:function(e,t,r,n){var i=new m(this.loaderCompiler,t,"module",e,null,r),a=this.getKey(e,"module");return i.metadata=this.defaultMetadata_(n),this.cache.set(a,i),this.handleCodeUnitLoaded(i),i.promise},script:function(e,t,r,n,i){var a=this.loader_.normalize(t||"",r,n),s=new m(this.loaderCompiler,e,"script",a,r,n),o={};return t&&(o=this.getKey(a,"script")),s.metadata=this.defaultMetadata_(i),this.cache.set(o,s),this.handleCodeUnitLoaded(s),s.promise},getKey:function(e,t){var r=t+":"+e;return r in this.urlToKey?this.urlToKey[r]:this.urlToKey[r]={}},getCodeUnit_:function(e,t){var r=this.getKey(e,t);return{key:r,codeUnit:this.cache.get(r)}},getOrCreateCodeUnit_:function(t,r,n,i){var a=this.loader_.normalize(t,r,n),s="module";i&&i.traceurOptions&&i.traceurOptions.script&&(s="script");var o=this.getCodeUnit_(a,s),c=o.key,m=o.codeUnit;if(!m){e(i&&i.traceurOptions);var p=this.loader_.get(a);p?(m=new u(this.loaderCompiler,a,t,r,n,p)).type="module":(m=new l(this.loaderCompiler,a,t,r,n)).type=s,m.metadata={traceurOptions:i.traceurOptions,outputName:i.outputName,rootModule:i.rootModule},this.cache.set(c,m)}return m},areAll:function(e){return mapToValues(this.cache).every((function(t){return t.state>=e}))},getCodeUnitForModuleSpecifier:function(e,t){var r=this.loader_.normalize(e,t);return this.getCodeUnit_(r,"module").codeUnit},getExportsListForModuleSpecifier:function(e,t){var n=this.getCodeUnitForModuleSpecifier(e,t),i=n.metadata.moduleSymbol;if(!i){if(!n.result)throw new Error("InternalError: "+e+" is not a module, required by "+t);(i=new r(n.normalizedName)).addExportsFromModule(n.result)}return i},handleCodeUnitLoaded:function(e){var t=this,r=e.normalizedName;try{var n=e.getModuleSpecifiers();if(e.state=3,!n)return void this.abortAll("No module specifiers in "+r);e.dependencies=n.map((function(n){return t.getOrCreateCodeUnit_(n,r,null,t.defaultModuleMetadata_(e.metadata))}))}catch(t){return void this.rejectOneAndAll(e,t)}if(e.dependencies.forEach((function(e){t.load_(e)})),this.areAll(3))try{"module"===e.type&&this.analyze(),this.transform(),this.evaluate()}catch(t){this.rejectOneAndAll(e,t)}},rejectOneAndAll:function(e,t){e.state.ERROR,e.error=t,e.reject(t),this.abortAll(t)},handleCodeUnitLoadError:function(e){var t=e.error?String(e.error)+"\n":"Failed to load '"+e.address+"'.\n";t+=e.nameTrace()+this.loader_.nameTrace(e),this.rejectOneAndAll(e,new Error(t))},abortAll:function(e){this.cache.forEach((function(t){7!==t.state&&t.reject(e)}))},analyze:function(){this.loaderCompiler.analyzeDependencies(mapToValues(this.cache),this)},transform:function(){this.transformDependencies_(mapToValues(this.cache))},transformDependencies_:function(e,t){for(var r=0;r<e.length;r++){var n=e[r];if(!(n.state>=5)){if(4===n.state){var i=n.normalizedName,a=t;return void this.rejectOneAndAll(n,new Error("Unsupported circular dependency between "+i+" and "+a))}n.state=4;try{this.transformCodeUnit_(n)}catch(e){return void this.rejectOneAndAll(n,e)}}}},transformCodeUnit_:function(e){if(this.transformDependencies_(e.dependencies,e.normalizedName),7!==e.state){this.loaderCompiler.transform(e),e.state=5,this.loaderCompiler.write(e);var t=e.metadata.compiler.sourceMapInfo;t&&(this.sourceMapsByURL_[t.url]=t.map,this.sourceMapsByOutputName_[t.outputName]=t.map),this.loader_.instantiate(e)}},orderDependencies:function(){var e=new Map,t=[];return this.cache.forEach((function orderCodeUnits(r){e.has(r)||(e.set(r,!0),r.dependencies.forEach(orderCodeUnits),t.push(r))})),t},evaluate:function(){for(var e=this.orderDependencies(),t=0;t<e.length;t++)if(!((n=e[t]).state>=6)){var r=void 0;try{r=n.evaluate()}catch(e){return void this.rejectOneAndAll(n,e)}n.result=r,n.source=null}for(t=0;t<e.length;t++){var n;(n=e[t]).state>=6||(n.state=6,n.resolve(n.result))}}},{}),f={CodeUnit:o,EvalCodeUnit:m,LoadCodeUnit:l,LoaderCompiler:t};return{get InternalLoader(){return p},get internals(){return f}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/loader/Loader.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./InternalLoader.js","traceur@0.0.111/src/loader/Loader.js")).InternalLoader;function throwAbstractMethod(){throw new Error("Unimplemented Loader function, see extended class")}var t=$traceurRuntime.createClass((function t(r){this.internalLoader_=new e(this,r),this.loaderCompiler_=r}),{import:function(e){var t=void 0!==arguments[1]?arguments[1]:{},r=t.referrerName,n=t.address,i=t.metadata,a=this;return this.internalLoader_.load(e,r,n,i).then((function(e){return a.get(e.normalizedName)}))},module:function(e){var t=void 0!==arguments[1]?arguments[1]:{},r=t.referrerName,n=t.address,i=t.metadata;return this.internalLoader_.module(e,r,n,i)},define:function(e,t){var r=void 0!==arguments[2]?arguments[2]:{},n=r.address,i=r.metadata;return this.internalLoader_.define(e,t,n,i)},get:function(e){throwAbstractMethod()},set:function(e,t){throwAbstractMethod()},normalize:function(e,t,r){throwAbstractMethod()},locate:function(e){throwAbstractMethod()},fetch:function(e){throwAbstractMethod()},translate:function(e){throwAbstractMethod()},instantiate:function(e){throwAbstractMethod()}},{});return{get throwAbstractMethod(){return throwAbstractMethod},get Loader(){return t},get LoaderCompiler(){return LoaderCompiler}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/loader/version.js",[],(function(){"use strict";return{get version(){return"0.0.111"}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/loader/TraceurLoader.js",[],(function(){"use strict";var e,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../util/url.js","traceur@0.0.111/src/loader/TraceurLoader.js")),r=t.isAbsolute,n=t.resolveUrl,i=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./Loader.js","traceur@0.0.111/src/loader/TraceurLoader.js")).Loader,a=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./LoaderCompiler.js","traceur@0.0.111/src/loader/TraceurLoader.js")).LoaderCompiler,s=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../Options.js","traceur@0.0.111/src/loader/TraceurLoader.js")).Options,o=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./system-map.js","traceur@0.0.111/src/loader/TraceurLoader.js")).systemjs,u=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./webLoader.js","traceur@0.0.111/src/loader/TraceurLoader.js")).webLoader,c=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./version.js","traceur@0.0.111/src/loader/TraceurLoader.js")).version,l=($traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../WebPageTranscoder.js","traceur@0.0.111/src/loader/TraceurLoader.js")).WebPageTranscoder,0),m=(e=i,$traceurRuntime.createClass((function TraceurLoader(e,t){var r=void 0!==arguments[2]?arguments[2]:new a;$traceurRuntime.superConstructor(TraceurLoader).call(this,r),this.fileLoader_=e,this.baseURL_=t&&String(t),this.moduleStore_=$traceurRuntime.ModuleStore}),{get baseURL(){return this.baseURL_},set baseURL(e){this.baseURL_=String(e)},get:function(e){return this.moduleStore_.get(e)},set:function(e,t){this.moduleStore_.set(e,t)},normalize:function(e,t,r){var n=this.moduleStore_.normalize(e,t,r);return void 0!==o&&System.map?o.applyMap(System.map,n,t):n},locate:function(e){e.metadata.traceurOptions=e.metadata.traceurOptions||{};var t=e.normalizedName,i=e.metadata.traceurOptions,a=e.metadata&&e.metadata.baseURL;a=a||this.baseURL;var s=i&&i.referrer;if(s){for(var o=Math.min(s.length,a.length),u=0,c=0;c<o&&s[s.length-1-c]===a[a.length-1-c];c++)u++;if(u){var l=s.slice(0,-u),m=a.slice(0,-u);0===t.indexOf(l)&&(t=t.replace(l,m))}}return r(t)||a&&(e.metadata.baseURL=a,t=n(a,t)),t},sourceName:function(e){var t=e.metadata.traceurOptions,r=e.address;if(t.sourceMaps){var n=this.baseURL;r?n&&0===r.indexOf(n)&&(r=r.substring(n.length)):r=this.baseURL+String(l++)}return r},nameTrace:function(e){var t="";e.metadata.locateMap&&(t+=this.locateMapTrace(e));var r=e.metadata.baseURL||this.baseURL;return t+=r?this.baseURLTrace(r):"No baseURL\n"},locateMapTrace:function(e){var t=e.metadata.locateMap;return"locate found '"+t.pattern+"' -> '"+t.replacement+"'\n"},baseURLTrace:function(e){return"locate resolved against base '"+e+"'\n"},fetch:function(e){var t=this;return new Promise((function(r,n){e?e.address&&"string"==typeof e.address?t.fileLoader_.load(e.address,r,n):n(new TypeError("fetch({address}) missing required string.")):n(new TypeError("fetch requires argument object"))}))},translate:function(e){return e.source},instantiate:function(e){var t=e;return t.name,t.metadata,t.address,t.source,t.sourceMap,new Promise((function(e,t){e(void 0)}))},bundledModule:function(e){return this.moduleStore_.bundleStore[e]},importAll:function(e){var t=void 0!==arguments[1]?arguments[1]:{},r=t.referrerName,n=t.address,i=t.metadata,a=this;return Promise.all(e.map((function(e){return a.import(e,{referrerName:r,address:n,metadata:i})})))},loadAsScript:function(e){var t,r=void 0!==arguments[1]?arguments[1]:{},n=r.referrerName,i=r.address,a=void 0===(t=r.metadata)?{}:t;return a.traceurOptions=a.traceurOptions||{},a.traceurOptions.script=!0,this.internalLoader_.load(e,n,i,a).then((function(e){return e.result}))},loadAsScriptAll:function(e){var t=void 0!==arguments[1]?arguments[1]:{},r=t.referrerName,n=t.address,i=t.metadata,a=this;return Promise.all(e.map((function(e){return a.loadAsScript(e,{referrerName:r,address:n,metadata:i})})))},script:function(e){var t=void 0!==arguments[1]?arguments[1]:{},r=t.name,n=t.referrerName,i=t.address,a=t.metadata;return this.internalLoader_.script(e,r,n,i,a)},semVerRegExp_:function(){return/^(\d+)\.(\d+)\.(\d+)(?:-([0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))?(?:\+[0-9A-Za-z-]+)?$/},semverMap:function(e){var t=e.indexOf("/");t<0&&(t=e.length);var r=e.slice(0,t),n=r.indexOf("@");if(-1!==n){var i=r.slice(n+1),a=this.semVerRegExp_().exec(i);if(a){var s=a[1],o=a[2],u=r.slice(0,n),c=Object.create(null);return c[u]=r,c[u+"@"+s]=r,c[u+"@"+s+"."+o]=r,c}throw new Error("semverMap found no matching semver regexp in "+i)}throw new Error("semverMap expected name@semver, got "+r+" "+e)},get version(){return c},getSourceMap:function(e){return this.internalLoader_.getSourceMap(e)},register:function(e,t,r){$traceurRuntime.ModuleStore.register(e,t,r)},registerModule:function(e,t,r){$traceurRuntime.ModuleStore.registerModule(e,t,r)},dirname:function(e){var t=e.lastIndexOf("/");return-1===t?".":0===t?"/":e.slice(0,t)}},{},e)),p=function(e){return $traceurRuntime.createClass((function BrowserTraceurLoader(){$traceurRuntime.superConstructor(BrowserTraceurLoader).call(this,u,window.location.href,new a)}),{loadScriptTypeModule:function(){var e=void 0!==arguments[0]?arguments[0]:new s;new traceur.WebPageTranscoder(document.location.href,e).run()}},{},e)}(m);return{get TraceurLoader(){return m},get BrowserTraceurLoader(){return p}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/node/NodeLoaderCompiler.js",[],(function(){"use strict";var e,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../loader/LoaderCompiler.js","traceur@0.0.111/src/node/NodeLoaderCompiler.js")).LoaderCompiler,r=(e=t,$traceurRuntime.createClass((function NodeLoaderCompiler(){$traceurRuntime.superConstructor(NodeLoaderCompiler).call(this),this.sourceMapsInMemory_=!1}),{evaluateCodeUnit:function(e){var t=require("vm").runInThisContext,r=require("semver"),n=e.metadata.transcoded,i=e.address||e.normalizedName;"memory"===e.metadata.traceurOptions.sourceMaps&&this.enableMemorySourceMaps_();var a=t(n,r.gte(process.version,"0.12.0")?{filename:i}:i);return e.metadata.transformedTree=null,a},enableMemorySourceMaps_:function(){this.sourceMapsInMemory_||(require("source-map-support").install({retrieveSourceMap:function(e){try{var t=System.getSourceMap(e);if(t)return{url:e,map:t}}catch(e){console.error("retrieveSourceMap FAILED ",e)}}}),this.sourceMapsInMemory_=!0)}},{},e));return{get NodeLoaderCompiler(){return r}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/loader/InlineLoaderCompiler.js",[],(function(){"use strict";var e,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./LoaderCompiler.js","traceur@0.0.111/src/loader/InlineLoaderCompiler.js")).LoaderCompiler,r=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../syntax/trees/ParseTrees.js","traceur@0.0.111/src/loader/InlineLoaderCompiler.js")).Script,n=(e=t,$traceurRuntime.createClass((function InlineLoaderCompiler(e){$traceurRuntime.superConstructor(InlineLoaderCompiler).call(this),this.elements=e}),{write:function(){},evaluateCodeUnit:function(e){var t,r=e.metadata.transformedTree;(t=this.elements).push.apply(t,$traceurRuntime.spread(r.scriptItemList))},toTree:function(){return new r(null,this.elements,null)}},{},e));return{get InlineLoaderCompiler(){return n}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/loader/NodeTraceurLoader.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./TraceurLoader.js","traceur@0.0.111/src/loader/NodeTraceurLoader.js")).TraceurLoader,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../node/NodeLoaderCompiler.js","traceur@0.0.111/src/loader/NodeTraceurLoader.js")).NodeLoaderCompiler,r=function(e){function NodeTraceurLoader(){var e=require("path"),r=require("../node/nodeLoader.js"),n=(e.resolve("./")+"/").replace(/\\/g,"/");$traceurRuntime.superConstructor(NodeTraceurLoader).call(this,r,n,new t),this.traceurMap_=null}return $traceurRuntime.createClass(NodeTraceurLoader,{getSourceMap:function(e){var t=$traceurRuntime.superGet(this,NodeTraceurLoader.prototype,"getSourceMap").call(this,e);if(!t&&e.replace(/\\/g,"/").endsWith("/bin/traceur.js")){if(!this.traceurMap_){var r=require("fs");this.traceurMap_=r.readFileSync(e+".map","utf8")}t=this.traceurMap_}return t}},{},e)}(e);return{get NodeTraceurLoader(){return r}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/loader/loader-imports.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./Loader.js","traceur@0.0.111/src/loader/loader-imports.js")).Loader,t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./LoaderCompiler.js","traceur@0.0.111/src/loader/loader-imports.js")).LoaderCompiler,r=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./TraceurLoader.js","traceur@0.0.111/src/loader/loader-imports.js")).BrowserTraceurLoader,n=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../node/NodeLoaderCompiler.js","traceur@0.0.111/src/loader/loader-imports.js")).NodeLoaderCompiler,i={BrowserTraceurLoader:r,InlineLoaderCompiler:$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./InlineLoaderCompiler.js","traceur@0.0.111/src/loader/loader-imports.js")).InlineLoaderCompiler,Loader:e,LoaderCompiler:t,NodeLoaderCompiler:n,NodeTraceurLoader:$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./NodeTraceurLoader.js","traceur@0.0.111/src/loader/loader-imports.js")).NodeTraceurLoader,TraceurLoader:$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./TraceurLoader.js","traceur@0.0.111/src/loader/loader-imports.js")).TraceurLoader};return{get loader(){return i}}})),$traceurRuntime.registerModule("traceur@0.0.111/src/traceur.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./util-imports.js","traceur@0.0.111/src/traceur.js")),t=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./compiler-imports.js","traceur@0.0.111/src/traceur.js")),r=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./loader/loader-imports.js","traceur@0.0.111/src/traceur.js"));return $traceurRuntime.exportStar({},e,t,r)})),$traceurRuntime.registerModule("traceur@0.0.111/src/traceur-import.js",[],(function(){"use strict";var e=$traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./traceur.js","traceur@0.0.111/src/traceur-import.js"));return Reflect.global.traceur=e,$traceurRuntime.ModuleStore.set("traceur@",e),{}})),$traceurRuntime.getModule("traceur@0.0.111/src/traceur-import.js"),e.exports=traceur}}]);