Skip to content

Instantly share code, notes, and snippets.

@hughsk
Created September 3, 2013 11:46
Show Gist options
  • Save hughsk/6422779 to your computer and use it in GitHub Desktop.
Save hughsk/6422779 to your computer and use it in GitHub Desktop.
requirebin sketch
var render = require('ndarray-canvas')
var zeros = require('zeros')
var cave = require('cave-automata-2d')
var fill = require('ndarray-fill')
var canvas = document.createElement('canvas')
// Create an empty ndarray,
// 60 units wide and
// 18 units high
var array = zeros([500, 300])
canvas.width = 500
canvas.height = 300
function up() {
// Regenerate the cave, iterating 10 times
cave(array)(10)
amplify(array)
// Converts the ndarray to text and replace
// the contents of our <pre> element
render(canvas, array)
// And repeat
setTimeout(up, 1250)
}
// Brightens the ndarray up from
// a range of 0-1 to 0-255.
function amplify() {
return fill(array, function(x, y) {
return array.get(x, y) * 255
})
}
up()
document.body.appendChild(canvas)
function up(){cave(array)(10),amplify(array),render(canvas,array),setTimeout(up,1250)}function amplify(){return fill(array,function(e,r){return 255*array.get(e,r)})}require=function(e,r,t){function n(t,i){if(!r[t]){if(!e[t]){var o="function"==typeof require&&require;if(!i&&o)return o(t,!0);if(a)return a(t,!0);throw Error("Cannot find module '"+t+"'")}var s=r[t]={exports:{}};e[t][0].call(s.exports,function(r){var a=e[t][1][r];return n(a?a:r)},s,s.exports)}return r[t].exports}for(var a="function"==typeof require&&require,i=0;t.length>i;i++)n(t[i]);return n}({"ndarray-canvas":[function(e,r){r.exports=e("zkPtMY")},{}],zkPtMY:[function(e,r){function t(e,r,t,n){e||(e=document.createElement("canvas"),e.width=r.shape[0],e.height=r.shape[1]);var a,i,o=e.getContext("2d"),s=o.getImageData(0,0,e.width,e.height),u=s.data,l=r.shape[0],p=r.shape[1],c=0;for(i=0;p>i;i++)for(a=0;l>a;a++,c+=4)u[c+3]=255,u[c]=r.get(a,i),u[c+1]=t.get(a,i),u[c+2]=n.get(a,i);return o.putImageData(s,0,0),e}r.exports=function(e,r,n,a){return n&&a?t(e,r,n,a):t(e,r,r,r)}},{}]},{},[]),require=function(e,r,t){function n(t,i){if(!r[t]){if(!e[t]){var o="function"==typeof require&&require;if(!i&&o)return o(t,!0);if(a)return a(t,!0);throw Error("Cannot find module '"+t+"'")}var s=r[t]={exports:{}};e[t][0].call(s.exports,function(r){var a=e[t][1][r];return n(a?a:r)},s,s.exports)}return r[t].exports}for(var a="function"==typeof require&&require,i=0;t.length>i;i++)n(t[i]);return n}({zeros:[function(e,r){r.exports=e("xvt2Cj")},{}],xvt2Cj:[function(e,r){"use strict";var t=e("ndarray");r.exports=function(e){for(var r=1,n=0;e.length>n;++n)r*=e[n];return t(new Float64Array(r),e)}},{ndarray:1}],1:[function(e,r){"use strict";function t(e,r){return e[0]-r[0]}function n(){var e,r=this.stride,n=Array(r.length);for(e=0;n.length>e;++e)n[e]=[Math.abs(r[e]),e];n.sort(t);var a=Array(n.length);for(e=0;a.length>e;++e)a[e]=n[e][1];return a}function a(e,r){if(0===r){var t=Function([l,"ZeroArray.prototype.dtype='"+e+"'","return function construct_ZeroArray(a,b,c,d){return new ZeroArray(a,d)}"].join("\n"));return t()}var a="generic"===e,i=["'use strict'"],o=s(r),c=o.map(function(e){return"i"+e}),f="this.offset+"+o.map(function(e){return["this._stride",e,"*i",e].join("")}).join("+"),d=["View",r,"d",e].join("");i.push(["function ",d,"(a,",o.map(function(e){return"b"+e}).join(","),",",o.map(function(e){return"c"+e}).join(","),",d){this.data=a"].join(""));for(var h=0;r>h;++h)i.push(["this._shape",h,"=b",h,"|0"].join(""));for(var h=0;r>h;++h)i.push(["this._stride",h,"=c",h,"|0"].join(""));i.push("this.offset=d|0}"),i.push(["var proto=",d,".prototype"].join("")),i.push(["proto.dtype='",e,"'"].join("")),i.push("proto.dimension="+r);var y=["VStride",r,"d",e].join(""),g=["VShape",r,"d",e].join(""),m={stride:y,shape:g};for(var v in m){var b=m[v];i.push(["function ",b,"(v) {this._v=v} var aproto=",b,".prototype"].join("")),i.push(["aproto.length=",r].join(""));for(var x=[],h=0;r>h;++h)x.push(["this._v._",v,h].join(""));i.push(["aproto.toJSON=function ",b,"_toJSON(){return [",x.join(","),"]}"].join("")),i.push(["aproto.toString=function ",b,"_toJSON(){return [",x.join(","),"].join()}"].join(""));for(var h=0;r>h;++h)i.push(["Object.defineProperty(aproto,",h,",{get:function(){return this._v._",v,h,"},set:function(v){return this._v._",v,h,"=v|0},enumerable:true})"].join(""));for(var h=0;u.length>h;++h)u[h]in Array.prototype&&i.push(["aproto.",u[h],"=Array.prototype.",u[h]].join(""));i.push(["Object.defineProperty(proto,'",v,"',{get:function ",b,"_get(){return new ",b,"(this)},set: function ",b,"_set(v){"].join(""));for(var h=0;r>h;++h)i.push(["this._",v,h,"=v[",h,"]|0"].join(""));i.push("return v}})")}i.push(["Object.defineProperty(proto,'size',{get:function ",d,"_size(){return ",o.map(function(e){return["this._shape",e].join("")}).join("*"),"}})"].join("")),1===r?i.push("proto.order=[0]"):(i.push("Object.defineProperty(proto,'order',{get:"),4>r?(i.push(["function ",d,"_order(){"].join("")),2===r?i.push("return (Math.abs(this._stride0)>Math.abs(this._stride1))?[1,0]:[0,1]}})"):3===r&&i.push("var s0=Math.abs(this._stride0),s1=Math.abs(this._stride1),s2=Math.abs(this._stride2);if(s0>s1){if(s1>s2){return [2,1,0];}else if(s0>s2){return [1,2,0];}else{return [1,0,2];}}else if(s0>s2){return [2,0,1];}else if(s2>s1){return [0,1,2];}else{return [0,2,1];}}})")):i.push("ORDER})")),i.push(["proto.set=function ",d,"_set(",c.join(","),",v){"].join("")),a?i.push(["return this.data.set(",f,",v)}"].join("")):i.push(["return this.data[",f,"]=v}"].join("")),i.push(["proto.get=function ",d,"_get(",c.join(","),"){"].join("")),a?i.push(["return this.data.get(",f,")}"].join("")):i.push(["return this.data[",f,"]}"].join("")),i.push(["proto.hi=function ",d,"_hi(",c.join(","),"){return new ",d,"(this.data,",o.map(function(e){return["typeof i",e,"!=='number'?this._shape",e,":i",e,"|0"].join("")}).join(","),",",o.map(function(e){return"this._stride"+e}).join(","),",this.offset)}"].join(""));var S=o.map(function(e){return"a"+e+"=this._shape"+e}),E=o.map(function(e){return"c"+e+"=this._stride"+e});i.push(["proto.lo=function ",d,"_lo(",c.join(","),"){var b=this.offset,d=0,",S.join(","),",",E.join(",")].join(""));for(var h=0;r>h;++h)i.push(["if(typeof i",h,"==='number'){d=i",h,"|0;b+=c",h,"*d;a",h,"-=d}"].join(""));i.push(["return new ",d,"(this.data,",o.map(function(e){return"a"+e}).join(","),",",o.map(function(e){return"c"+e}).join(","),",b)}"].join("")),i.push(["proto.step=function ",d,"_step(",c.join(","),"){var ",o.map(function(e){return"a"+e+"=this._shape"+e}).join(","),",",o.map(function(e){return"b"+e+"=this._stride"+e}).join(","),",c=this.offset,d=0,ceil=Math.ceil"].join(""));for(var h=0;r>h;++h)i.push(["if(typeof i",h,"==='number'){d=i",h,"|0;if(d<0){c+=b",h,"*(a",h,"-1);a",h,"=ceil(-a",h,"/d)}else{a",h,"=ceil(a",h,"/d)}b",h,"*=d}"].join(""));i.push(["return new ",d,"(this.data,",o.map(function(e){return"a"+e}).join(","),",",o.map(function(e){return"b"+e}).join(","),",c)}"].join(""));for(var w=Array(r),j=Array(r),h=0;r>h;++h)w[h]=["a[i",h,"|0]"].join(""),j[h]=["b[i",h,"|0]"].join("");i.push(["proto.transpose=function ",d,"_transpose(",c,"){var a=this.shape,b=this.stride;return new ",d,"(this.data,",w.join(","),",",j.join(","),",this.offset)}"].join("")),i.push(["proto.pick=function ",d,"_pick(",c,"){var a=[],b=[],c=this.offset"].join(""));for(var h=0;r>h;++h)i.push(["if(i",h,">=0){c=(c+this._stride",h,"*i",h,")|0}else{a.push(this._shape",h,");b.push(this._stride",h,")}"].join(""));i.push("var ctor=CTOR_LIST[a.length];return ctor(this.data,a,b,c)}"),i.push(["return function construct_",d,"(data,shape,stride,offset){return new ",d,"(data,",o.map(function(e){return"shape["+e+"]"}).join(","),",",o.map(function(e){return"stride["+e+"]"}).join(","),",offset)}"].join(""));var L=Function("CTOR_LIST","ORDER",i.join("\n"));return L(p[e],n)}function i(e){return e instanceof Float64Array?"float64":e instanceof Float32Array?"float32":e instanceof Int32Array?"int32":e instanceof Uint32Array?"uint32":e instanceof Uint8Array?"uint8":e instanceof Uint16Array?"uint16":e instanceof Int16Array?"int16":e instanceof Int8Array?"int8":e instanceof Array?"array":"generic"}function o(e,r,t,n){void 0===r&&(r=[e.length]);var o=r.length;if(void 0===t){t=Array(o);for(var s=o-1,u=1;s>=0;--s)t[s]=u,u*=r[s]}if(void 0===n){n=0;for(var s=0;o>s;++s)0>t[s]&&(n-=(r[s]-1)*t[s])}for(var l=i(e),c=p[l];o>=c.length;)c.push(a(l,c.length));var f=c[o];return f(e,r,t,n)}var s=e("iota-array"),u=["concat","join","slice","toString","indexOf","lastIndexOf","forEach","every","some","filter","map","reduce","reduceRight"],l="function ZeroArray(a,d) {this.data = a;this.offset = d};var proto=ZeroArray.prototype;proto.size=0;proto.shape=[];proto.stride=[];proto.order=[];proto.get=proto.set=function() {return Number.NaN};proto.lo=proto.hi=proto.transpose=proto.step=proto.pick=function() {return new ZeroArray(this.data,this.shape,this.stride,this.offset)}",p={float32:[],float64:[],int8:[],int16:[],int32:[],uint8:[],uint16:[],uint32:[],array:[],generic:[]};r.exports=o},{"iota-array":2}],2:[function(e,r){"use strict";function t(e){for(var r=Array(e),t=0;e>t;++t)r[t]=t;return r}r.exports=t},{}]},{},[]),require=function(e,r,t){function n(t,i){if(!r[t]){if(!e[t]){var o="function"==typeof require&&require;if(!i&&o)return o(t,!0);if(a)return a(t,!0);throw Error("Cannot find module '"+t+"'")}var s=r[t]={exports:{}};e[t][0].call(s.exports,function(r){var a=e[t][1][r];return n(a?a:r)},s,s.exports)}return r[t].exports}for(var a="function"==typeof require&&require,i=0;t.length>i;i++)n(t[i]);return n}({"cave-automata-2d":[function(e,r){r.exports=e("CKdiaf")},{}],CKdiaf:[function(e,r){function t(e,r){function t(r){u=n,l=a,p=y,c=h,r=r||1;for(var t=0;r>t;t+=1)t%2?m(e,f):m(f,e);return r%2&&i(e,function(e,r){return f.get(e,r)}),e}r=r||{};var n=e.shape[0],a=e.shape[1],f=r.buffer||o([n,a]),d=r.density||.5,h=r.threshold||5,y="border"in r?r.border:1,g="fill"in r?r.fill:!0,m=s[y?"border":"vanilla"];return g&&i(e,function(e,r){return d>=Math.random()||1>=e||e>=n-2||1>=r||r>=a-2?1:0}),r.iterations&&t(r.iterations),t}var n=e("moore")(1,2).concat([[0,0]]),a=e("ndarray-stencil"),i=e("ndarray-fill"),o=e("zeros");n.length;var s={};r.exports=t;var u=null,l=null,p=null,c=null;s.vanilla=a(n,function(e,r,t,n,a,i,o,s,u){return e+r+t+n+a+i+o+s+u>=c?1:0},{useIndex:!1}),s.border=a(n,function(e,r,t,n,a,i,o,s,f,d){return e+r+t+n+a+i+o+s+f>=c||p>d[0]||d[0]>u-p-3||p>d[1]||d[1]>l-p-3?1:0},{useIndex:!0})},{moore:1,"ndarray-fill":2,zeros:3,"ndarray-stencil":4}],1:[function(e,r){function t(e,r){function t(n,a,i){if(i===r-1)for(var o=-e;e>=o;o+=1)(o||a.some(function(e){return e}))&&n.push(a.concat(o));else for(var o=-e;e>=o;o+=1)t(n,a.concat(o),i+1);return n}return r=r||2,e=e||1,t([],[],0)}r.exports=t},{}],3:[function(e,r){"use strict";var t=e("ndarray");r.exports=function(e){for(var r=1,n=0;e.length>n;++n)r*=e[n];return t(new Float64Array(r),e)}},{ndarray:5}],2:[function(e,r){"use strict";var t=e("cwise")({args:["index","array","scalar"],body:function(e,r,t){r=t.apply(void 0,e)}});r.exports=function(e,r){return t(e,r),e}},{cwise:6}],4:[function(e,r){"use strict";function t(e,r,t,n){for(var a=[],i=["scalar","array"],o=0;e>o;++o)i.push("array"),a.push("a"+o);n.useIndex&&(a.push("idx"),i.push("index")),a.push(["out=func(",a.join(","),")"].join("")),a.unshift("out"),a.unshift("func");var s=u({args:i,body:Function.apply(void 0,a),funcName:"StencilOp"});return s.bind(void 0,t)}function n(e,r){for(var t=Array(r.length),n=0;e.length>n;++n){var a=-r[n]-e[n];t[n]=0===a?"s"+n:["s",n,"-",-a].join("")}return t.join(",")}function a(e,r){for(var t=Array(r.length),n=0;e.length>n;++n){var a=-e[n]-r[n];t[n]=0===a?"0":a}return t.join(",")}function i(e,r,t,i){e.length;var o=r.length,u=["'use strict'"];u.push("var s=out.shape");for(var l=0;o>l;++l)u.push(["var s",l,"=s[",l,"]|0"].join(""));u.push(["func(out.hi(",n(t,s(o)),").lo(",a(r,s(o)),")"].join(""));for(var l=0;e.length>l;++l)u.push([",inp.hi(",n(t,e[l]),").lo(",a(r,e[l]),")"].join(""));u.push(")");var p=Function("func","out","inp",u.join("\n"));return p.bind(void 0,i)}function o(e,r,n){if(n=n||{},0===e.length)throw Error("ndarray-stencil: Need to specify at least one point for stencil");for(var a=e.length,o=e[0].length,u=s(o),l=s(o),p=0;a>p;++p)for(var c=e[p],f=0;o>f;++f)u[f]=Math.min(u[f],c[f]),l[f]=Math.max(l[f],c[f]);var d=t(a,o,r,n);return i(e,u,l,d)}var s=e("dup"),u=e("cwise");r.exports=o},{cwise:7,dup:8}],8:[function(e,r){"use strict";function t(e,r,n){var a=0|e[n];if(0>=a)return[];var i,o=Array(a);if(n===e.length-1)for(i=0;a>i;++i)o[i]=r;else for(i=0;a>i;++i)o[i]=t(e,r,n+1);return o}function n(e,r){var t,n;for(t=Array(e),n=0;e>n;++n)t[n]=r;return t}function a(e,r){switch(r===void 0&&(r=0),typeof e){case"number":if(e>0)return n(0|e,r);break;case"object":if("number"==typeof e.length)return t(e,r,0)}return[]}r.exports=a},{}],5:[function(e,r){"use strict";function t(e,r){return e[0]-r[0]}function n(){var e,r=this.stride,n=Array(r.length);for(e=0;n.length>e;++e)n[e]=[Math.abs(r[e]),e];n.sort(t);var a=Array(n.length);for(e=0;a.length>e;++e)a[e]=n[e][1];return a}function a(e,r){if(0===r){var t=Function([l,"ZeroArray.prototype.dtype='"+e+"'","return function construct_ZeroArray(a,b,c,d){return new ZeroArray(a,d)}"].join("\n"));return t()}var a="generic"===e,i=["'use strict'"],o=s(r),c=o.map(function(e){return"i"+e}),f="this.offset+"+o.map(function(e){return["this._stride",e,"*i",e].join("")}).join("+"),d=["View",r,"d",e].join("");i.push(["function ",d,"(a,",o.map(function(e){return"b"+e}).join(","),",",o.map(function(e){return"c"+e}).join(","),",d){this.data=a"].join(""));for(var h=0;r>h;++h)i.push(["this._shape",h,"=b",h,"|0"].join(""));for(var h=0;r>h;++h)i.push(["this._stride",h,"=c",h,"|0"].join(""));i.push("this.offset=d|0}"),i.push(["var proto=",d,".prototype"].join("")),i.push(["proto.dtype='",e,"'"].join("")),i.push("proto.dimension="+r);var y=["VStride",r,"d",e].join(""),g=["VShape",r,"d",e].join(""),m={stride:y,shape:g};for(var v in m){var b=m[v];i.push(["function ",b,"(v) {this._v=v} var aproto=",b,".prototype"].join("")),i.push(["aproto.length=",r].join(""));for(var x=[],h=0;r>h;++h)x.push(["this._v._",v,h].join(""));i.push(["aproto.toJSON=function ",b,"_toJSON(){return [",x.join(","),"]}"].join("")),i.push(["aproto.toString=function ",b,"_toJSON(){return [",x.join(","),"].join()}"].join(""));for(var h=0;r>h;++h)i.push(["Object.defineProperty(aproto,",h,",{get:function(){return this._v._",v,h,"},set:function(v){return this._v._",v,h,"=v|0},enumerable:true})"].join(""));for(var h=0;u.length>h;++h)u[h]in Array.prototype&&i.push(["aproto.",u[h],"=Array.prototype.",u[h]].join(""));i.push(["Object.defineProperty(proto,'",v,"',{get:function ",b,"_get(){return new ",b,"(this)},set: function ",b,"_set(v){"].join(""));for(var h=0;r>h;++h)i.push(["this._",v,h,"=v[",h,"]|0"].join(""));i.push("return v}})")}i.push(["Object.defineProperty(proto,'size',{get:function ",d,"_size(){return ",o.map(function(e){return["this._shape",e].join("")}).join("*"),"}})"].join("")),1===r?i.push("proto.order=[0]"):(i.push("Object.defineProperty(proto,'order',{get:"),4>r?(i.push(["function ",d,"_order(){"].join("")),2===r?i.push("return (Math.abs(this._stride0)>Math.abs(this._stride1))?[1,0]:[0,1]}})"):3===r&&i.push("var s0=Math.abs(this._stride0),s1=Math.abs(this._stride1),s2=Math.abs(this._stride2);if(s0>s1){if(s1>s2){return [2,1,0];}else if(s0>s2){return [1,2,0];}else{return [1,0,2];}}else if(s0>s2){return [2,0,1];}else if(s2>s1){return [0,1,2];}else{return [0,2,1];}}})")):i.push("ORDER})")),i.push(["proto.set=function ",d,"_set(",c.join(","),",v){"].join("")),a?i.push(["return this.data.set(",f,",v)}"].join("")):i.push(["return this.data[",f,"]=v}"].join("")),i.push(["proto.get=function ",d,"_get(",c.join(","),"){"].join("")),a?i.push(["return this.data.get(",f,")}"].join("")):i.push(["return this.data[",f,"]}"].join("")),i.push(["proto.hi=function ",d,"_hi(",c.join(","),"){return new ",d,"(this.data,",o.map(function(e){return["typeof i",e,"!=='number'?this._shape",e,":i",e,"|0"].join("")}).join(","),",",o.map(function(e){return"this._stride"+e}).join(","),",this.offset)}"].join(""));var S=o.map(function(e){return"a"+e+"=this._shape"+e}),E=o.map(function(e){return"c"+e+"=this._stride"+e});i.push(["proto.lo=function ",d,"_lo(",c.join(","),"){var b=this.offset,d=0,",S.join(","),",",E.join(",")].join(""));for(var h=0;r>h;++h)i.push(["if(typeof i",h,"==='number'){d=i",h,"|0;b+=c",h,"*d;a",h,"-=d}"].join(""));i.push(["return new ",d,"(this.data,",o.map(function(e){return"a"+e}).join(","),",",o.map(function(e){return"c"+e}).join(","),",b)}"].join("")),i.push(["proto.step=function ",d,"_step(",c.join(","),"){var ",o.map(function(e){return"a"+e+"=this._shape"+e}).join(","),",",o.map(function(e){return"b"+e+"=this._stride"+e}).join(","),",c=this.offset,d=0,ceil=Math.ceil"].join(""));for(var h=0;r>h;++h)i.push(["if(typeof i",h,"==='number'){d=i",h,"|0;if(d<0){c+=b",h,"*(a",h,"-1);a",h,"=ceil(-a",h,"/d)}else{a",h,"=ceil(a",h,"/d)}b",h,"*=d}"].join(""));i.push(["return new ",d,"(this.data,",o.map(function(e){return"a"+e}).join(","),",",o.map(function(e){return"b"+e}).join(","),",c)}"].join(""));for(var w=Array(r),j=Array(r),h=0;r>h;++h)w[h]=["a[i",h,"|0]"].join(""),j[h]=["b[i",h,"|0]"].join("");i.push(["proto.transpose=function ",d,"_transpose(",c,"){var a=this.shape,b=this.stride;return new ",d,"(this.data,",w.join(","),",",j.join(","),",this.offset)}"].join("")),i.push(["proto.pick=function ",d,"_pick(",c,"){var a=[],b=[],c=this.offset"].join(""));for(var h=0;r>h;++h)i.push(["if(i",h,">=0){c=(c+this._stride",h,"*i",h,")|0}else{a.push(this._shape",h,");b.push(this._stride",h,")}"].join(""));i.push("var ctor=CTOR_LIST[a.length];return ctor(this.data,a,b,c)}"),i.push(["return function construct_",d,"(data,shape,stride,offset){return new ",d,"(data,",o.map(function(e){return"shape["+e+"]"}).join(","),",",o.map(function(e){return"stride["+e+"]"}).join(","),",offset)}"].join(""));var L=Function("CTOR_LIST","ORDER",i.join("\n"));return L(p[e],n)}function i(e){return e instanceof Float64Array?"float64":e instanceof Float32Array?"float32":e instanceof Int32Array?"int32":e instanceof Uint32Array?"uint32":e instanceof Uint8Array?"uint8":e instanceof Uint16Array?"uint16":e instanceof Int16Array?"int16":e instanceof Int8Array?"int8":e instanceof Array?"array":"generic"}function o(e,r,t,n){void 0===r&&(r=[e.length]);var o=r.length;if(void 0===t){t=Array(o);for(var s=o-1,u=1;s>=0;--s)t[s]=u,u*=r[s]}if(void 0===n){n=0;for(var s=0;o>s;++s)0>t[s]&&(n-=(r[s]-1)*t[s])}for(var l=i(e),c=p[l];o>=c.length;)c.push(a(l,c.length));var f=c[o];return f(e,r,t,n)}var s=e("iota-array"),u=["concat","join","slice","toString","indexOf","lastIndexOf","forEach","every","some","filter","map","reduce","reduceRight"],l="function ZeroArray(a,d) {this.data = a;this.offset = d};var proto=ZeroArray.prototype;proto.size=0;proto.shape=[];proto.stride=[];proto.order=[];proto.get=proto.set=function() {return Number.NaN};proto.lo=proto.hi=proto.transpose=proto.step=proto.pick=function() {return new ZeroArray(this.data,this.shape,this.stride,this.offset)}",p={float32:[],float64:[],int8:[],int16:[],int32:[],uint8:[],uint16:[],uint32:[],array:[],generic:[]};r.exports=o},{"iota-array":9}],6:[function(e,r){"use strict";function t(e){for(var r in e)0>i.indexOf(r)&&0>o.indexOf(r)&&console.warn("cwise: Unknown argument '"+r+"' passed to expression compiler");for(var t=0;i.length>t;++t)if(!e[i[t]])throw Error("cwise: Missing argument: "+i[t]);return a({args:e.args,pre:n(e.pre||function(){}),body:n(e.body),post:n(e.post||function(){}),debug:!!e.printCode,funcName:e.funcName||e.body.name||"cwise",blockSize:e.blockSize||64})}var n=e("cwise-parser"),a=e("cwise-compiler"),i=["args","body"],o=["pre","post","printCode","funcName","blockSize"];r.exports=t},{"cwise-compiler":10,"cwise-parser":11}],7:[function(e,r){"use strict";function t(e){for(var r in e)0>i.indexOf(r)&&0>o.indexOf(r)&&console.warn("cwise: Unknown argument '"+r+"' passed to expression compiler");for(var t=0;i.length>t;++t)if(!e[i[t]])throw Error("cwise: Missing argument: "+i[t]);return a({args:e.args,pre:n(e.pre||function(){}),body:n(e.body),post:n(e.post||function(){}),debug:!!e.printCode,funcName:e.funcName||e.body.name||"cwise",blockSize:e.blockSize||64})}var n=e("cwise-parser"),a=e("cwise-compiler"),i=["args","body"],o=["pre","post","printCode","funcName","blockSize"];r.exports=t},{"cwise-parser":12,"cwise-compiler":13}],9:[function(e,r){"use strict";function t(e){for(var r=Array(e),t=0;e>t;++t)r[t]=t;return r}r.exports=t},{}],10:[function(e,r){"use strict";function t(){this.argTypes=[],this.shimArgs=[],this.arrayArgs=[],this.scalarArgs=[],this.indexArgs=[],this.shapeArgs=[],this.funcName="",this.pre=null,this.body=null,this.post=null,this.debug=!1}function n(e){var r=new t;r.pre=e.pre,r.body=e.body,r.post=e.post;var n=e.args.slice(0);r.argTypes=n;for(var i=0;n.length>i;++i)switch(n[i]){case"array":if(r.arrayArgs.push(i),r.shimArgs.push("array"+i),r.pre.args.length>i&&r.pre.args[i].count>0)throw Error("cwise: pre() block may not reference array args");if(r.post.args.length>i&&r.post.args[i].count>0)throw Error("cwise: post() block may not reference array args");break;case"scalar":r.scalarArgs.push(i),r.shimArgs.push("scalar"+i);break;case"index":if(r.indexArgs.push(i),r.pre.args.length>i&&r.pre.args[i].count>0)throw Error("cwise: pre() block may not reference array index");if(r.body.args.length>i&&r.body.args[i].lvalue)throw Error("cwise: body() block may not write to array index");if(r.post.args.length>i&&r.post.args[i].count>0)throw Error("cwise: post() block may not reference array index");break;case"shape":if(r.shapeArgs.push(i),r.pre.args.length>i&&r.pre.args[i].lvalue)throw Error("cwise: pre() block may not write to array shape");if(r.body.args.length>i&&r.body.args[i].lvalue)throw Error("cwise: body() block may not write to array shape");if(r.post.args.length>i&&r.post.args[i].lvalue)throw Error("cwise: post() block may not write to array shape");break;default:throw Error("cwise: Unknown argument type "+n[i])}if(0>=r.arrayArgs.length)throw Error("cwise: No array arguments specified");if(r.pre.args.length>n.length)throw Error("cwise: Too many arguments in pre() block");if(r.body.args.length>n.length)throw Error("cwise: Too many arguments in body() block");if(r.post.args.length>n.length)throw Error("cwise: Too many arguments in post() block");return r.debug=!!e.printCode||!!e.debug,r.funcName=e.funcName||"cwise",r.blockSize=e.blockSize||64,a(r)}var a=e("./lib/thunk.js");r.exports=n},{"./lib/thunk.js":14}],13:[function(e,r){"use strict";function t(){this.argTypes=[],this.shimArgs=[],this.arrayArgs=[],this.scalarArgs=[],this.indexArgs=[],this.shapeArgs=[],this.funcName="",this.pre=null,this.body=null,this.post=null,this.debug=!1}function n(e){var r=new t;r.pre=e.pre,r.body=e.body,r.post=e.post;var n=e.args.slice(0);r.argTypes=n;for(var i=0;n.length>i;++i)switch(n[i]){case"array":if(r.arrayArgs.push(i),r.shimArgs.push("array"+i),r.pre.args.length>i&&r.pre.args[i].count>0)throw Error("cwise: pre() block may not reference array args");if(r.post.args.length>i&&r.post.args[i].count>0)throw Error("cwise: post() block may not reference array args");break;case"scalar":r.scalarArgs.push(i),r.shimArgs.push("scalar"+i);break;case"index":if(r.indexArgs.push(i),r.pre.args.length>i&&r.pre.args[i].count>0)throw Error("cwise: pre() block may not reference array index");if(r.body.args.length>i&&r.body.args[i].lvalue)throw Error("cwise: body() block may not write to array index");if(r.post.args.length>i&&r.post.args[i].count>0)throw Error("cwise: post() block may not reference array index");break;case"shape":if(r.shapeArgs.push(i),r.pre.args.length>i&&r.pre.args[i].lvalue)throw Error("cwise: pre() block may not write to array shape");if(r.body.args.length>i&&r.body.args[i].lvalue)throw Error("cwise: body() block may not write to array shape");if(r.post.args.length>i&&r.post.args[i].lvalue)throw Error("cwise: post() block may not write to array shape");break;default:throw Error("cwise: Unknown argument type "+n[i])}if(0>=r.arrayArgs.length)throw Error("cwise: No array arguments specified");if(r.pre.args.length>n.length)throw Error("cwise: Too many arguments in pre() block");if(r.body.args.length>n.length)throw Error("cwise: Too many arguments in body() block");if(r.post.args.length>n.length)throw Error("cwise: Too many arguments in post() block");return r.debug=!!e.printCode||!!e.debug,r.funcName=e.funcName||"cwise",r.blockSize=e.blockSize||64,a(r)}var a=e("./lib/thunk.js");r.exports=n},{"./lib/thunk.js":15}],11:[function(e,r){"use strict";function t(e,r,t){this.name=e,this.lvalue=r,this.rvalue=t,this.count=0}function n(e,r,t,n){this.body=e,this.args=r,this.thisVars=t,this.localVars=n}function a(e){if("eval"===e)throw Error("cwise-parser: eval() not allowed");return"undefined"!=typeof window?e in window:"undefined"!=typeof GLOBAL?e in GLOBAL:"undefined"!=typeof self?e in self:!1}function i(e){for(var r=e.body[0].expression.callee.params,t=Array(r.length),n=0;r.length>n;++n)t[n]=r[n].name;return t}function o(e){function r(e){var r=g+e.replace(/\_/g,"__");return E.push(r),r}function o(e){var r="this_"+e.replace(/\_/g,"__");return w.push(r),r}function p(e,r){for(var t=e.range[0],n=e.range[1],a=t+1;n>a;++a)x[a]="";x[t]=r}function c(e){return"'"+e.replace(/\_/g,"\\_").replace(/\'/g,"'")+"'"}function f(e){return x.slice(e.range[0],e.range[1]).join("")}function d(e){return"AssignmentExpression"===e.parent.type&&e.parent.left===e?"="===e.parent.operator?j:j|L:"UpdateExpression"===e.parent.type?j|L:L}for(var h=["(",e,")()"].join(""),y=s.parse(h,{range:!0}),g="_inline_"+l++ +"_",m=i(y),v=Array(m.length),b=0;m.length>b;++b)v[b]=new t([g,"arg",b,"_"].join(""),!1,!1);for(var x=Array(h.length),b=0,S=h.length;S>b;++b)x[b]=h.charAt(b);var E=[],w=[],j=1,L=2;(function k(e,t){if(e.parent=t,"MemberExpression"===e.type)e.computed?(k(e.object,e),k(e.property,e)):"ThisExpression"===e.object.type?p(e,o(e.property.name)):k(e.object,e);else{if("ThisExpression"===e.type)throw Error("cwise-parser: Computed this is not allowed");if("Identifier"===e.type){var n=e.name,i=m.indexOf(n);if(i>=0){var s=v[i],u=d(e);u&j&&(s.lvalue=!0),u&L&&(s.rvalue=!0),++s.count,p(e,s.name)}else a(n)||p(e,r(n))}else if("Literal"===e.type)"string"==typeof e.value&&p(e,c(e.value));else{if("WithStatement"===e.type)throw Error("cwise-parser: with() statements not allowed");for(var l=Object.keys(e),f=0,h=l.length;h>f;++f)if("parent"!==l[f]){var y=e[l[f]];if(y)if(y instanceof Array)for(var g=0;y.length>g;++g)y[g]&&"string"==typeof y[g].type&&k(y[g],e);else"string"==typeof y.type&&k(y,e)}}}})(y.body[0].expression.callee.body,void 0),u(E),u(w);var I=new n(f(y.body[0].expression.callee.body),v,w,E);return I}var s=e("esprima"),u=e("uniq"),l=0;r.exports=o},{esprima:16,uniq:17}],12:[function(e,r){"use strict";function t(e,r,t){this.name=e,this.lvalue=r,this.rvalue=t,this.count=0}function n(e,r,t,n){this.body=e,this.args=r,this.thisVars=t,this.localVars=n}function a(e){if("eval"===e)throw Error("cwise-parser: eval() not allowed");return"undefined"!=typeof window?e in window:"undefined"!=typeof GLOBAL?e in GLOBAL:"undefined"!=typeof self?e in self:!1}function i(e){for(var r=e.body[0].expression.callee.params,t=Array(r.length),n=0;r.length>n;++n)t[n]=r[n].name;return t}function o(e){function r(e){var r=g+e.replace(/\_/g,"__");return E.push(r),r}function o(e){var r="this_"+e.replace(/\_/g,"__");return w.push(r),r}function p(e,r){for(var t=e.range[0],n=e.range[1],a=t+1;n>a;++a)x[a]="";x[t]=r}function c(e){return"'"+e.replace(/\_/g,"\\_").replace(/\'/g,"'")+"'"}function f(e){return x.slice(e.range[0],e.range[1]).join("")}function d(e){return"AssignmentExpression"===e.parent.type&&e.parent.left===e?"="===e.parent.operator?j:j|L:"UpdateExpression"===e.parent.type?j|L:L}for(var h=["(",e,")()"].join(""),y=s.parse(h,{range:!0}),g="_inline_"+l++ +"_",m=i(y),v=Array(m.length),b=0;m.length>b;++b)v[b]=new t([g,"arg",b,"_"].join(""),!1,!1);for(var x=Array(h.length),b=0,S=h.length;S>b;++b)x[b]=h.charAt(b);var E=[],w=[],j=1,L=2;(function k(e,t){if(e.parent=t,"MemberExpression"===e.type)e.computed?(k(e.object,e),k(e.property,e)):"ThisExpression"===e.object.type?p(e,o(e.property.name)):k(e.object,e);else{if("ThisExpression"===e.type)throw Error("cwise-parser: Computed this is not allowed");if("Identifier"===e.type){var n=e.name,i=m.indexOf(n);if(i>=0){var s=v[i],u=d(e);u&j&&(s.lvalue=!0),u&L&&(s.rvalue=!0),++s.count,p(e,s.name)}else a(n)||p(e,r(n))}else if("Literal"===e.type)"string"==typeof e.value&&p(e,c(e.value));else{if("WithStatement"===e.type)throw Error("cwise-parser: with() statements not allowed");for(var l=Object.keys(e),f=0,h=l.length;h>f;++f)if("parent"!==l[f]){var y=e[l[f]];if(y)if(y instanceof Array)for(var g=0;y.length>g;++g)y[g]&&"string"==typeof y[g].type&&k(y[g],e);else"string"==typeof y.type&&k(y,e)}}}})(y.body[0].expression.callee.body,void 0),u(E),u(w);var I=new n(f(y.body[0].expression.callee.body),v,w,E);return I}var s=e("esprima"),u=e("uniq"),l=0;r.exports=o},{esprima:18,uniq:19}],14:[function(e,r){"use strict";function t(e){var r=["'use strict'","var CACHED={}"],t=[],a=e.funcName+"_cwise_thunk";r.push(["return function ",a,"(",e.shimArgs.join(","),"){"].join(""));for(var i=[],o=[],s=[["array",e.arrayArgs[0],".shape"].join("")],u=0;e.arrayArgs.length>u;++u){var l=e.arrayArgs[u];t.push(["t",l,"=array",l,".dtype,","r",l,"=array",l,".order"].join("")),i.push("t"+l),i.push("r"+l),o.push("t"+l),o.push("r"+l+".join()"),s.push("array"+l+".data"),s.push("array"+l+".stride"),s.push("array"+l+".offset|0")}for(var u=0;e.scalarArgs.length>u;++u)s.push("scalar"+e.scalarArgs[u]);t.push(["type=[",o.join(","),"].join()"].join("")),t.push("proc=CACHED[type]"),r.push("var "+t.join(",")),r.push(["if(!proc){","CACHED[type]=proc=compile([",i.join(","),"])}","return proc(",s.join(","),")}"].join("")),e.debug&&console.log("Generated thunk:",r.join("\n"));var p=Function("compile",r.join("\n"));return p(n.bind(void 0,e))}var n=e("./compile.js");r.exports=t},{"./compile.js":20}],15:[function(e,r){"use strict";function t(e){var r=["'use strict'","var CACHED={}"],t=[],a=e.funcName+"_cwise_thunk";r.push(["return function ",a,"(",e.shimArgs.join(","),"){"].join(""));for(var i=[],o=[],s=[["array",e.arrayArgs[0],".shape"].join("")],u=0;e.arrayArgs.length>u;++u){var l=e.arrayArgs[u];t.push(["t",l,"=array",l,".dtype,","r",l,"=array",l,".order"].join("")),i.push("t"+l),i.push("r"+l),o.push("t"+l),o.push("r"+l+".join()"),s.push("array"+l+".data"),s.push("array"+l+".stride"),s.push("array"+l+".offset|0")}for(var u=0;e.scalarArgs.length>u;++u)s.push("scalar"+e.scalarArgs[u]);t.push(["type=[",o.join(","),"].join()"].join("")),t.push("proc=CACHED[type]"),r.push("var "+t.join(",")),r.push(["if(!proc){","CACHED[type]=proc=compile([",i.join(","),"])}","return proc(",s.join(","),")}"].join("")),e.debug&&console.log("Generated thunk:",r.join("\n"));var p=Function("compile",r.join("\n"));return p(n.bind(void 0,e))}var n=e("./compile.js");r.exports=t},{"./compile.js":21}],16:[function(e,r,t){(function(){(function(e,r){"use strict";"function"==typeof define&&define.amd?define(["exports"],r):t!==void 0?r(t):r(e.esprima={})})(this,function(e){"use strict";function r(e,r){if(!e)throw Error("ASSERT: "+r)}function t(e,r){return ft.slice(e,r)}function n(e){return"0123456789".indexOf(e)>=0}function a(e){return"0123456789abcdefABCDEF".indexOf(e)>=0}function i(e){return"01234567".indexOf(e)>=0}function o(e){return" "===e||" "===e||" "===e||"\f"===e||" "===e||e.charCodeAt(0)>=5760&&" ᠎              ".indexOf(e)>=0}function s(e){return"\n"===e||"\r"===e||"\u2028"===e||"\u2029"===e}function u(e){return"$"===e||"_"===e||"\\"===e||e>="a"&&"z">=e||e>="A"&&"Z">=e||e.charCodeAt(0)>=128&&ct.NonAsciiIdentifierStart.test(e)}function l(e){return"$"===e||"_"===e||"\\"===e||e>="a"&&"z">=e||e>="A"&&"Z">=e||e>="0"&&"9">=e||e.charCodeAt(0)>=128&&ct.NonAsciiIdentifierPart.test(e)}function p(e){switch(e){case"class":case"enum":case"export":case"extends":case"import":case"super":return!0}return!1}function c(e){switch(e){case"implements":case"interface":case"package":case"private":case"protected":case"public":case"static":case"yield":case"let":return!0}return!1}function f(e){return"eval"===e||"arguments"===e}function d(e){var r=!1;switch(e.length){case 2:r="if"===e||"in"===e||"do"===e;break;case 3:r="var"===e||"for"===e||"new"===e||"try"===e;break;case 4:r="this"===e||"else"===e||"case"===e||"void"===e||"with"===e;break;case 5:r="while"===e||"break"===e||"catch"===e||"throw"===e;break;case 6:r="return"===e||"typeof"===e||"delete"===e||"switch"===e;break;case 7:r="default"===e||"finally"===e;break;case 8:r="function"===e||"continue"===e||"debugger"===e;break;case 10:r="instanceof"===e}if(r)return!0;switch(e){case"const":return!0;case"yield":case"let":return!0}return dt&&c(e)?!0:p(e)}function h(){var e,r,t;for(r=!1,t=!1;mt>ht;)if(e=ft[ht],t)e=ft[ht++],s(e)&&(t=!1,"\r"===e&&"\n"===ft[ht]&&++ht,++yt,gt=ht);
else if(r)s(e)?("\r"===e&&"\n"===ft[ht+1]&&++ht,++yt,++ht,gt=ht,ht>=mt&&k({},pt.UnexpectedToken,"ILLEGAL")):(e=ft[ht++],ht>=mt&&k({},pt.UnexpectedToken,"ILLEGAL"),"*"===e&&(e=ft[ht],"/"===e&&(++ht,r=!1)));else if("/"===e)if(e=ft[ht+1],"/"===e)ht+=2,t=!0;else{if("*"!==e)break;ht+=2,r=!0,ht>=mt&&k({},pt.UnexpectedToken,"ILLEGAL")}else if(o(e))++ht;else{if(!s(e))break;++ht,"\r"===e&&"\n"===ft[ht]&&++ht,++yt,gt=ht}}function y(e){var r,t,n,i=0;for(t="u"===e?4:2,r=0;t>r;++r){if(!(mt>ht&&a(ft[ht])))return"";n=ft[ht++],i=16*i+"0123456789abcdef".indexOf(n.toLowerCase())}return String.fromCharCode(i)}function g(){var e,r,t,n;if(e=ft[ht],u(e)){if(r=ht,"\\"===e){if(++ht,"u"!==ft[ht])return;if(++ht,n=ht,e=y("u")){if("\\"===e||!u(e))return;t=e}else ht=n,t="u"}else t=ft[ht++];for(;mt>ht&&(e=ft[ht],l(e));)if("\\"===e){if(++ht,"u"!==ft[ht])return;if(++ht,n=ht,e=y("u")){if("\\"===e||!l(e))return;t+=e}else ht=n,t+="u"}else t+=ft[ht++];return 1===t.length?{type:ot.Identifier,value:t,lineNumber:yt,lineStart:gt,range:[r,ht]}:d(t)?{type:ot.Keyword,value:t,lineNumber:yt,lineStart:gt,range:[r,ht]}:"null"===t?{type:ot.NullLiteral,value:t,lineNumber:yt,lineStart:gt,range:[r,ht]}:"true"===t||"false"===t?{type:ot.BooleanLiteral,value:t,lineNumber:yt,lineStart:gt,range:[r,ht]}:{type:ot.Identifier,value:t,lineNumber:yt,lineStart:gt,range:[r,ht]}}}function m(){var e,r,t,a=ht,i=ft[ht];return";"===i||"{"===i||"}"===i?(++ht,{type:ot.Punctuator,value:i,lineNumber:yt,lineStart:gt,range:[a,ht]}):","===i||"("===i||")"===i?(++ht,{type:ot.Punctuator,value:i,lineNumber:yt,lineStart:gt,range:[a,ht]}):(e=ft[ht+1],"."!==i||n(e)?(r=ft[ht+2],t=ft[ht+3],">"===i&&">"===e&&">"===r&&"="===t?(ht+=4,{type:ot.Punctuator,value:">>>=",lineNumber:yt,lineStart:gt,range:[a,ht]}):"="===i&&"="===e&&"="===r?(ht+=3,{type:ot.Punctuator,value:"===",lineNumber:yt,lineStart:gt,range:[a,ht]}):"!"===i&&"="===e&&"="===r?(ht+=3,{type:ot.Punctuator,value:"!==",lineNumber:yt,lineStart:gt,range:[a,ht]}):">"===i&&">"===e&&">"===r?(ht+=3,{type:ot.Punctuator,value:">>>",lineNumber:yt,lineStart:gt,range:[a,ht]}):"<"===i&&"<"===e&&"="===r?(ht+=3,{type:ot.Punctuator,value:"<<=",lineNumber:yt,lineStart:gt,range:[a,ht]}):">"===i&&">"===e&&"="===r?(ht+=3,{type:ot.Punctuator,value:">>=",lineNumber:yt,lineStart:gt,range:[a,ht]}):"="===e&&"<>=!+-*%&|^/".indexOf(i)>=0?(ht+=2,{type:ot.Punctuator,value:i+e,lineNumber:yt,lineStart:gt,range:[a,ht]}):i===e&&"+-<>&|".indexOf(i)>=0&&"+-<>&|".indexOf(e)>=0?(ht+=2,{type:ot.Punctuator,value:i+e,lineNumber:yt,lineStart:gt,range:[a,ht]}):"[]<>+-*%&|^!~?:=/".indexOf(i)>=0?{type:ot.Punctuator,value:ft[ht++],lineNumber:yt,lineStart:gt,range:[a,ht]}:void 0):{type:ot.Punctuator,value:ft[ht++],lineNumber:yt,lineStart:gt,range:[a,ht]})}function v(){var e,t,o;if(o=ft[ht],r(n(o)||"."===o,"Numeric literal must start with a decimal digit or a decimal point"),t=ht,e="","."!==o){if(e=ft[ht++],o=ft[ht],"0"===e){if("x"===o||"X"===o){for(e+=ft[ht++];mt>ht&&(o=ft[ht],a(o));)e+=ft[ht++];return 2>=e.length&&k({},pt.UnexpectedToken,"ILLEGAL"),mt>ht&&(o=ft[ht],u(o)&&k({},pt.UnexpectedToken,"ILLEGAL")),{type:ot.NumericLiteral,value:parseInt(e,16),lineNumber:yt,lineStart:gt,range:[t,ht]}}if(i(o)){for(e+=ft[ht++];mt>ht&&(o=ft[ht],i(o));)e+=ft[ht++];return mt>ht&&(o=ft[ht],(u(o)||n(o))&&k({},pt.UnexpectedToken,"ILLEGAL")),{type:ot.NumericLiteral,value:parseInt(e,8),octal:!0,lineNumber:yt,lineStart:gt,range:[t,ht]}}n(o)&&k({},pt.UnexpectedToken,"ILLEGAL")}for(;mt>ht&&(o=ft[ht],n(o));)e+=ft[ht++]}if("."===o)for(e+=ft[ht++];mt>ht&&(o=ft[ht],n(o));)e+=ft[ht++];if("e"===o||"E"===o)if(e+=ft[ht++],o=ft[ht],("+"===o||"-"===o)&&(e+=ft[ht++]),o=ft[ht],n(o))for(e+=ft[ht++];mt>ht&&(o=ft[ht],n(o));)e+=ft[ht++];else o="character "+o,ht>=mt&&(o="<end>"),k({},pt.UnexpectedToken,"ILLEGAL");return mt>ht&&(o=ft[ht],u(o)&&k({},pt.UnexpectedToken,"ILLEGAL")),{type:ot.NumericLiteral,value:parseFloat(e),lineNumber:yt,lineStart:gt,range:[t,ht]}}function b(){var e,t,n,a,o,u,l="",p=!1;for(e=ft[ht],r("'"===e||'"'===e,"String literal must starts with a quote"),t=ht,++ht;mt>ht;){if(n=ft[ht++],n===e){e="";break}if("\\"===n)if(n=ft[ht++],s(n))++yt,"\r"===n&&"\n"===ft[ht]&&++ht;else switch(n){case"n":l+="\n";break;case"r":l+="\r";break;case"t":l+=" ";break;case"u":case"x":u=ht,o=y(n),o?l+=o:(ht=u,l+=n);break;case"b":l+="\b";break;case"f":l+="\f";break;case"v":l+=" ";break;default:i(n)?(a="01234567".indexOf(n),0!==a&&(p=!0),mt>ht&&i(ft[ht])&&(p=!0,a=8*a+"01234567".indexOf(ft[ht++]),"0123".indexOf(n)>=0&&mt>ht&&i(ft[ht])&&(a=8*a+"01234567".indexOf(ft[ht++]))),l+=String.fromCharCode(a)):l+=n}else{if(s(n))break;l+=n}}return""!==e&&k({},pt.UnexpectedToken,"ILLEGAL"),{type:ot.StringLiteral,value:l,octal:p,lineNumber:yt,lineStart:gt,range:[t,ht]}}function x(){var e,t,n,a,i,o,u,p=!1,c=!1;for(vt=null,h(),n=ht,t=ft[ht],r("/"===t,"Regular expression literal must start with a slash"),e=ft[ht++];mt>ht;)if(t=ft[ht++],e+=t,p)"]"===t&&(p=!1);else if("\\"===t)t=ft[ht++],s(t)&&k({},pt.UnterminatedRegExp),e+=t;else{if("/"===t){c=!0;break}"["===t?p=!0:s(t)&&k({},pt.UnterminatedRegExp)}for(c||k({},pt.UnterminatedRegExp),a=e.substr(1,e.length-2),i="";mt>ht&&(t=ft[ht],l(t));)if(++ht,"\\"===t&&mt>ht)if(t=ft[ht],"u"===t)if(++ht,u=ht,t=y("u"))for(i+=t,e+="\\u";ht>u;++u)e+=ft[u];else ht=u,i+="u",e+="\\u";else e+="\\";else i+=t,e+=t;try{o=RegExp(a,i)}catch(f){k({},pt.InvalidRegExp)}return{literal:e,value:o,range:[n,ht]}}function S(e){return e.type===ot.Identifier||e.type===ot.Keyword||e.type===ot.BooleanLiteral||e.type===ot.NullLiteral}function E(){var e,r;return h(),ht>=mt?{type:ot.EOF,lineNumber:yt,lineStart:gt,range:[ht,ht]}:(r=m(),r!==void 0?r:(e=ft[ht],"'"===e||'"'===e?b():"."===e||n(e)?v():(r=g(),r!==void 0?r:(k({},pt.UnexpectedToken,"ILLEGAL"),void 0))))}function w(){var e;return vt?(ht=vt.range[1],yt=vt.lineNumber,gt=vt.lineStart,e=vt,vt=null,e):(vt=null,E())}function j(){var e,r,t;return null!==vt?vt:(e=ht,r=yt,t=gt,vt=E(),ht=e,yt=r,gt=t,vt)}function L(){var e,r,t,n;return e=ht,r=yt,t=gt,h(),n=yt!==r,ht=e,yt=r,gt=t,n}function k(e,r){var t,n=Array.prototype.slice.call(arguments,2),a=r.replace(/%(\d)/g,function(e,r){return n[r]||""});throw"number"==typeof e.lineNumber?(t=Error("Line "+e.lineNumber+": "+a),t.index=e.range[0],t.lineNumber=e.lineNumber,t.column=e.range[0]-gt+1):(t=Error("Line "+yt+": "+a),t.index=ht,t.lineNumber=yt,t.column=ht-gt+1),t}function I(){try{k.apply(null,arguments)}catch(e){if(!xt.errors)throw e;xt.errors.push(e)}}function A(e){if(e.type===ot.EOF&&k(e,pt.UnexpectedEOS),e.type===ot.NumericLiteral&&k(e,pt.UnexpectedNumber),e.type===ot.StringLiteral&&k(e,pt.UnexpectedString),e.type===ot.Identifier&&k(e,pt.UnexpectedIdentifier),e.type===ot.Keyword){if(p(e.value))k(e,pt.UnexpectedReserved);else if(dt&&c(e.value))return I(e,pt.StrictReservedWord),void 0;k(e,pt.UnexpectedToken,e.value)}k(e,pt.UnexpectedToken,e.value)}function N(e){var r=w();(r.type!==ot.Punctuator||r.value!==e)&&A(r)}function O(e){var r=w();(r.type!==ot.Keyword||r.value!==e)&&A(r)}function P(e){var r=j();return r.type===ot.Punctuator&&r.value===e}function C(e){var r=j();return r.type===ot.Keyword&&r.value===e}function D(){var e=j(),r=e.value;return e.type!==ot.Punctuator?!1:"="===r||"*="===r||"/="===r||"%="===r||"+="===r||"-="===r||"<<="===r||">>="===r||">>>="===r||"&="===r||"^="===r||"|="===r}function F(){var e,r;if(";"===ft[ht])return w(),void 0;if(r=yt,h(),yt===r){if(P(";"))return w(),void 0;e=j(),e.type===ot.EOF||P("}")||A(e)}}function R(e){return e.type===ut.Identifier||e.type===ut.MemberExpression}function U(){var e=[];for(N("[");!P("]");)P(",")?(w(),e.push(null)):(e.push(lr()),P("]")||N(","));return N("]"),{type:ut.ArrayExpression,elements:e}}function B(e,r){var t,n;return t=dt,n=Ur(),r&&dt&&f(e[0].name)&&I(r,pt.StrictParamName),dt=t,{type:ut.FunctionExpression,id:null,params:e,defaults:[],body:n,rest:null,generator:!1,expression:!1}}function _(){var e=w();return e.type===ot.StringLiteral||e.type===ot.NumericLiteral?(dt&&e.octal&&I(e,pt.StrictOctalLiteral),Zr(e)):{type:ut.Identifier,name:e.value}}function T(){var e,r,t,n;return e=j(),e.type===ot.Identifier?(t=_(),"get"!==e.value||P(":")?"set"!==e.value||P(":")?(N(":"),{type:ut.Property,key:t,value:lr(),kind:"init"}):(r=_(),N("("),e=j(),e.type!==ot.Identifier?(N(")"),I(e,pt.UnexpectedToken,e.value),{type:ut.Property,key:r,value:B([]),kind:"set"}):(n=[dr()],N(")"),{type:ut.Property,key:r,value:B(n,e),kind:"set"})):(r=_(),N("("),N(")"),{type:ut.Property,key:r,value:B([]),kind:"get"})):e.type!==ot.EOF&&e.type!==ot.Punctuator?(r=_(),N(":"),{type:ut.Property,key:r,value:lr(),kind:"init"}):(A(e),void 0)}function M(){var e,r,t,n=[],a={},i=String;for(N("{");!P("}");)e=T(),r=e.key.type===ut.Identifier?e.key.name:i(e.key.value),t="init"===e.kind?lt.Data:"get"===e.kind?lt.Get:lt.Set,Object.prototype.hasOwnProperty.call(a,r)?(a[r]===lt.Data?dt&&t===lt.Data?I({},pt.StrictDuplicateProperty):t!==lt.Data&&I({},pt.AccessorDataProperty):t===lt.Data?I({},pt.AccessorDataProperty):a[r]&t&&I({},pt.AccessorGetSet),a[r]|=t):a[r]=t,n.push(e),P("}")||N(",");return N("}"),{type:ut.ObjectExpression,properties:n}}function V(){var e;return N("("),e=pr(),N(")"),e}function G(){var e=j(),r=e.type;if(r===ot.Identifier)return{type:ut.Identifier,name:w().value};if(r===ot.StringLiteral||r===ot.NumericLiteral)return dt&&e.octal&&I(e,pt.StrictOctalLiteral),Zr(w());if(r===ot.Keyword){if(C("this"))return w(),{type:ut.ThisExpression};if(C("function"))return _r()}return r===ot.BooleanLiteral?(w(),e.value="true"===e.value,Zr(e)):r===ot.NullLiteral?(w(),e.value=null,Zr(e)):P("[")?U():P("{")?M():P("(")?V():P("/")||P("/=")?Zr(x()):A(w())}function q(){var e=[];if(N("("),!P(")"))for(;mt>ht&&(e.push(lr()),!P(")"));)N(",");return N(")"),e}function H(){var e=w();return S(e)||A(e),{type:ut.Identifier,name:e.value}}function W(){return N("."),H()}function K(){var e;return N("["),e=pr(),N("]"),e}function z(){var e;return O("new"),e={type:ut.NewExpression,callee:X(),arguments:[]},P("(")&&(e.arguments=q()),e}function Z(){var e;for(e=C("new")?z():G();P(".")||P("[")||P("(");)e=P("(")?{type:ut.CallExpression,callee:e,arguments:q()}:P("[")?{type:ut.MemberExpression,computed:!0,object:e,property:K()}:{type:ut.MemberExpression,computed:!1,object:e,property:W()};return e}function X(){var e;for(e=C("new")?z():G();P(".")||P("[");)e=P("[")?{type:ut.MemberExpression,computed:!0,object:e,property:K()}:{type:ut.MemberExpression,computed:!1,object:e,property:W()};return e}function Y(){var e,r=Z();return e=j(),e.type!==ot.Punctuator?r:(!P("++")&&!P("--")||L()||(dt&&r.type===ut.Identifier&&f(r.name)&&I({},pt.StrictLHSPostfix),R(r)||k({},pt.InvalidLHSInAssignment),r={type:ut.UpdateExpression,operator:w().value,argument:r,prefix:!1}),r)}function J(){var e,r;return e=j(),e.type!==ot.Punctuator&&e.type!==ot.Keyword?Y():P("++")||P("--")?(e=w(),r=J(),dt&&r.type===ut.Identifier&&f(r.name)&&I({},pt.StrictLHSPrefix),R(r)||k({},pt.InvalidLHSInAssignment),r={type:ut.UpdateExpression,operator:e.value,argument:r,prefix:!0}):P("+")||P("-")||P("~")||P("!")?r={type:ut.UnaryExpression,operator:w().value,argument:J(),prefix:!0}:C("delete")||C("void")||C("typeof")?(r={type:ut.UnaryExpression,operator:w().value,argument:J(),prefix:!0},dt&&"delete"===r.operator&&r.argument.type===ut.Identifier&&I({},pt.StrictDelete),r):Y()}function $(){for(var e=J();P("*")||P("/")||P("%");)e={type:ut.BinaryExpression,operator:w().value,left:e,right:J()};return e}function Q(){for(var e=$();P("+")||P("-");)e={type:ut.BinaryExpression,operator:w().value,left:e,right:$()};return e}function er(){for(var e=Q();P("<<")||P(">>")||P(">>>");)e={type:ut.BinaryExpression,operator:w().value,left:e,right:Q()};return e}function rr(){var e,r;for(r=bt.allowIn,bt.allowIn=!0,e=er();P("<")||P(">")||P("<=")||P(">=")||r&&C("in")||C("instanceof");)e={type:ut.BinaryExpression,operator:w().value,left:e,right:er()};return bt.allowIn=r,e}function tr(){for(var e=rr();P("==")||P("!=")||P("===")||P("!==");)e={type:ut.BinaryExpression,operator:w().value,left:e,right:rr()};return e}function nr(){for(var e=tr();P("&");)w(),e={type:ut.BinaryExpression,operator:"&",left:e,right:tr()};return e}function ar(){for(var e=nr();P("^");)w(),e={type:ut.BinaryExpression,operator:"^",left:e,right:nr()};return e}function ir(){for(var e=ar();P("|");)w(),e={type:ut.BinaryExpression,operator:"|",left:e,right:ar()};return e}function or(){for(var e=ir();P("&&");)w(),e={type:ut.LogicalExpression,operator:"&&",left:e,right:ir()};return e}function sr(){for(var e=or();P("||");)w(),e={type:ut.LogicalExpression,operator:"||",left:e,right:or()};return e}function ur(){var e,r,t;return e=sr(),P("?")&&(w(),r=bt.allowIn,bt.allowIn=!0,t=lr(),bt.allowIn=r,N(":"),e={type:ut.ConditionalExpression,test:e,consequent:t,alternate:lr()}),e}function lr(){var e,r;return e=j(),r=ur(),D()&&(R(r)||k({},pt.InvalidLHSInAssignment),dt&&r.type===ut.Identifier&&f(r.name)&&I(e,pt.StrictLHSAssignment),r={type:ut.AssignmentExpression,operator:w().value,left:r,right:lr()}),r}function pr(){var e=lr();if(P(","))for(e={type:ut.SequenceExpression,expressions:[e]};mt>ht&&P(",");)w(),e.expressions.push(lr());return e}function cr(){for(var e,r=[];mt>ht&&!P("}")&&(e=Tr(),void 0!==e);)r.push(e);return r}function fr(){var e;return N("{"),e=cr(),N("}"),{type:ut.BlockStatement,body:e}}function dr(){var e=w();return e.type!==ot.Identifier&&A(e),{type:ut.Identifier,name:e.value}}function hr(e){var r=dr(),t=null;return dt&&f(r.name)&&I({},pt.StrictVarName),"const"===e?(N("="),t=lr()):P("=")&&(w(),t=lr()),{type:ut.VariableDeclarator,id:r,init:t}}function yr(e){var r=[];do{if(r.push(hr(e)),!P(","))break;w()}while(mt>ht);return r}function gr(){var e;return O("var"),e=yr(),F(),{type:ut.VariableDeclaration,declarations:e,kind:"var"}}function mr(e){var r;return O(e),r=yr(e),F(),{type:ut.VariableDeclaration,declarations:r,kind:e}}function vr(){return N(";"),{type:ut.EmptyStatement}}function br(){var e=pr();return F(),{type:ut.ExpressionStatement,expression:e}}function xr(){var e,r,t;return O("if"),N("("),e=pr(),N(")"),r=Rr(),C("else")?(w(),t=Rr()):t=null,{type:ut.IfStatement,test:e,consequent:r,alternate:t}}function Sr(){var e,r,t;return O("do"),t=bt.inIteration,bt.inIteration=!0,e=Rr(),bt.inIteration=t,O("while"),N("("),r=pr(),N(")"),P(";")&&w(),{type:ut.DoWhileStatement,body:e,test:r}}function Er(){var e,r,t;return O("while"),N("("),e=pr(),N(")"),t=bt.inIteration,bt.inIteration=!0,r=Rr(),bt.inIteration=t,{type:ut.WhileStatement,test:e,body:r}}function wr(){var e=w();return{type:ut.VariableDeclaration,declarations:yr(),kind:e.value}}function jr(){var e,r,t,n,a,i,o;return e=r=t=null,O("for"),N("("),P(";")?w():(C("var")||C("let")?(bt.allowIn=!1,e=wr(),bt.allowIn=!0,1===e.declarations.length&&C("in")&&(w(),n=e,a=pr(),e=null)):(bt.allowIn=!1,e=pr(),bt.allowIn=!0,C("in")&&(R(e)||k({},pt.InvalidLHSInForIn),w(),n=e,a=pr(),e=null)),n===void 0&&N(";")),n===void 0&&(P(";")||(r=pr()),N(";"),P(")")||(t=pr())),N(")"),o=bt.inIteration,bt.inIteration=!0,i=Rr(),bt.inIteration=o,n===void 0?{type:ut.ForStatement,init:e,test:r,update:t,body:i}:{type:ut.ForInStatement,left:n,right:a,body:i,each:!1}}function Lr(){var e,r=null;return O("continue"),";"===ft[ht]?(w(),bt.inIteration||k({},pt.IllegalContinue),{type:ut.ContinueStatement,label:null}):L()?(bt.inIteration||k({},pt.IllegalContinue),{type:ut.ContinueStatement,label:null}):(e=j(),e.type===ot.Identifier&&(r=dr(),Object.prototype.hasOwnProperty.call(bt.labelSet,r.name)||k({},pt.UnknownLabel,r.name)),F(),null!==r||bt.inIteration||k({},pt.IllegalContinue),{type:ut.ContinueStatement,label:r})}function kr(){var e,r=null;return O("break"),";"===ft[ht]?(w(),bt.inIteration||bt.inSwitch||k({},pt.IllegalBreak),{type:ut.BreakStatement,label:null}):L()?(bt.inIteration||bt.inSwitch||k({},pt.IllegalBreak),{type:ut.BreakStatement,label:null}):(e=j(),e.type===ot.Identifier&&(r=dr(),Object.prototype.hasOwnProperty.call(bt.labelSet,r.name)||k({},pt.UnknownLabel,r.name)),F(),null!==r||bt.inIteration||bt.inSwitch||k({},pt.IllegalBreak),{type:ut.BreakStatement,label:r})}function Ir(){var e,r=null;return O("return"),bt.inFunctionBody||I({},pt.IllegalReturn)," "===ft[ht]&&u(ft[ht+1])?(r=pr(),F(),{type:ut.ReturnStatement,argument:r}):L()?{type:ut.ReturnStatement,argument:null}:(P(";")||(e=j(),P("}")||e.type===ot.EOF||(r=pr())),F(),{type:ut.ReturnStatement,argument:r})}function Ar(){var e,r;return dt&&I({},pt.StrictModeWith),O("with"),N("("),e=pr(),N(")"),r=Rr(),{type:ut.WithStatement,object:e,body:r}}function Nr(){var e,r,t=[];for(C("default")?(w(),e=null):(O("case"),e=pr()),N(":");mt>ht&&!(P("}")||C("default")||C("case"))&&(r=Rr(),void 0!==r);)t.push(r);return{type:ut.SwitchCase,test:e,consequent:t}}function Or(){var e,r,t,n,a;if(O("switch"),N("("),e=pr(),N(")"),N("{"),P("}"))return w(),{type:ut.SwitchStatement,discriminant:e};for(r=[],n=bt.inSwitch,bt.inSwitch=!0,a=!1;mt>ht&&!P("}");)t=Nr(),null===t.test&&(a&&k({},pt.MultipleDefaultsInSwitch),a=!0),r.push(t);return bt.inSwitch=n,N("}"),{type:ut.SwitchStatement,discriminant:e,cases:r}}function Pr(){var e;return O("throw"),L()&&k({},pt.NewlineAfterThrow),e=pr(),F(),{type:ut.ThrowStatement,argument:e}}function Cr(){var e;return O("catch"),N("("),P(")")&&A(j()),e=dr(),dt&&f(e.name)&&I({},pt.StrictCatchVariable),N(")"),{type:ut.CatchClause,param:e,body:fr()}}function Dr(){var e,r=[],t=null;return O("try"),e=fr(),C("catch")&&r.push(Cr()),C("finally")&&(w(),t=fr()),0!==r.length||t||k({},pt.NoCatchOrFinally),{type:ut.TryStatement,block:e,guardedHandlers:[],handlers:r,finalizer:t}}function Fr(){return O("debugger"),F(),{type:ut.DebuggerStatement}}function Rr(){var e,r,t=j();if(t.type===ot.EOF&&A(t),t.type===ot.Punctuator)switch(t.value){case";":return vr();case"{":return fr();case"(":return br();default:}if(t.type===ot.Keyword)switch(t.value){case"break":return kr();case"continue":return Lr();case"debugger":return Fr();case"do":return Sr();case"for":return jr();case"function":return Br();case"if":return xr();case"return":return Ir();case"switch":return Or();case"throw":return Pr();case"try":return Dr();case"var":return gr();case"while":return Er();case"with":return Ar();default:}return e=pr(),e.type===ut.Identifier&&P(":")?(w(),Object.prototype.hasOwnProperty.call(bt.labelSet,e.name)&&k({},pt.Redeclaration,"Label",e.name),bt.labelSet[e.name]=!0,r=Rr(),delete bt.labelSet[e.name],{type:ut.LabeledStatement,label:e,body:r}):(F(),{type:ut.ExpressionStatement,expression:e})}function Ur(){var e,r,n,a,i,o,s,u,l=[];for(N("{");mt>ht&&(r=j(),r.type===ot.StringLiteral)&&(e=Tr(),l.push(e),e.expression.type===ut.Literal);)n=t(r.range[0]+1,r.range[1]-1),"use strict"===n?(dt=!0,a&&I(a,pt.StrictOctalLiteral)):!a&&r.octal&&(a=r);for(i=bt.labelSet,o=bt.inIteration,s=bt.inSwitch,u=bt.inFunctionBody,bt.labelSet={},bt.inIteration=!1,bt.inSwitch=!1,bt.inFunctionBody=!0;mt>ht&&!P("}")&&(e=Tr(),void 0!==e);)l.push(e);return N("}"),bt.labelSet=i,bt.inIteration=o,bt.inSwitch=s,bt.inFunctionBody=u,{type:ut.BlockStatement,body:l}}function Br(){var e,r,t,n,a,i,o,s,u,l=[];if(O("function"),n=j(),e=dr(),dt?f(n.value)&&I(n,pt.StrictFunctionName):f(n.value)?(i=n,o=pt.StrictFunctionName):c(n.value)&&(i=n,o=pt.StrictReservedWord),N("("),!P(")"))for(u={};mt>ht&&(n=j(),r=dr(),dt?(f(n.value)&&(a=n,o=pt.StrictParamName),Object.prototype.hasOwnProperty.call(u,n.value)&&(a=n,o=pt.StrictParamDupe)):i||(f(n.value)?(i=n,o=pt.StrictParamName):c(n.value)?(i=n,o=pt.StrictReservedWord):Object.prototype.hasOwnProperty.call(u,n.value)&&(i=n,o=pt.StrictParamDupe)),l.push(r),u[r.name]=!0,!P(")"));)N(",");return N(")"),s=dt,t=Ur(),dt&&i&&k(i,o),dt&&a&&I(a,o),dt=s,{type:ut.FunctionDeclaration,id:e,params:l,defaults:[],body:t,rest:null,generator:!1,expression:!1}}function _r(){var e,r,t,n,a,i,o,s,u=null,l=[];if(O("function"),P("(")||(e=j(),u=dr(),dt?f(e.value)&&I(e,pt.StrictFunctionName):f(e.value)?(t=e,n=pt.StrictFunctionName):c(e.value)&&(t=e,n=pt.StrictReservedWord)),N("("),!P(")"))for(s={};mt>ht&&(e=j(),a=dr(),dt?(f(e.value)&&(r=e,n=pt.StrictParamName),Object.prototype.hasOwnProperty.call(s,e.value)&&(r=e,n=pt.StrictParamDupe)):t||(f(e.value)?(t=e,n=pt.StrictParamName):c(e.value)?(t=e,n=pt.StrictReservedWord):Object.prototype.hasOwnProperty.call(s,e.value)&&(t=e,n=pt.StrictParamDupe)),l.push(a),s[a.name]=!0,!P(")"));)N(",");return N(")"),o=dt,i=Ur(),dt&&t&&k(t,n),dt&&r&&I(r,n),dt=o,{type:ut.FunctionExpression,id:u,params:l,defaults:[],body:i,rest:null,generator:!1,expression:!1}}function Tr(){var e=j();if(e.type===ot.Keyword)switch(e.value){case"const":case"let":return mr(e.value);case"function":return Br();default:return Rr()}return e.type!==ot.EOF?Rr():void 0}function Mr(){for(var e,r,n,a,i=[];mt>ht&&(r=j(),r.type===ot.StringLiteral)&&(e=Tr(),i.push(e),e.expression.type===ut.Literal);)n=t(r.range[0]+1,r.range[1]-1),"use strict"===n?(dt=!0,a&&I(a,pt.StrictOctalLiteral)):!a&&r.octal&&(a=r);for(;mt>ht&&(e=Tr(),void 0!==e);)i.push(e);return i}function Vr(){var e;return dt=!1,e={type:ut.Program,body:Mr()}}function Gr(e,t,n,a,i){r("number"==typeof n,"Comment must have valid position"),xt.comments.length>0&&xt.comments[xt.comments.length-1].range[1]>n||xt.comments.push({type:e,value:t,range:[n,a],loc:i})}function qr(){var e,r,t,n,a,i;for(e="",a=!1,i=!1;mt>ht;)if(r=ft[ht],i)r=ft[ht++],s(r)?(t.end={line:yt,column:ht-gt-1},i=!1,Gr("Line",e,n,ht-1,t),"\r"===r&&"\n"===ft[ht]&&++ht,++yt,gt=ht,e=""):ht>=mt?(i=!1,e+=r,t.end={line:yt,column:mt-gt},Gr("Line",e,n,mt,t)):e+=r;else if(a)s(r)?("\r"===r&&"\n"===ft[ht+1]?(++ht,e+="\r\n"):e+=r,++yt,++ht,gt=ht,ht>=mt&&k({},pt.UnexpectedToken,"ILLEGAL")):(r=ft[ht++],ht>=mt&&k({},pt.UnexpectedToken,"ILLEGAL"),e+=r,"*"===r&&(r=ft[ht],"/"===r&&(e=e.substr(0,e.length-1),a=!1,++ht,t.end={line:yt,column:ht-gt},Gr("Block",e,n,ht,t),e="")));else if("/"===r)if(r=ft[ht+1],"/"===r)t={start:{line:yt,column:ht-gt}},n=ht,ht+=2,i=!0,ht>=mt&&(t.end={line:yt,column:ht-gt},i=!1,Gr("Line",e,n,ht,t));else{if("*"!==r)break;n=ht,ht+=2,a=!0,t={start:{line:yt,column:ht-gt-2}},ht>=mt&&k({},pt.UnexpectedToken,"ILLEGAL")}else if(o(r))++ht;else{if(!s(r))break;++ht,"\r"===r&&"\n"===ft[ht]&&++ht,++yt,gt=ht}}function Hr(){var e,r,t,n=[];for(e=0;xt.comments.length>e;++e)r=xt.comments[e],t={type:r.type,value:r.value},xt.range&&(t.range=r.range),xt.loc&&(t.loc=r.loc),n.push(t);xt.comments=n}function Wr(){var e,r,n,a,i;return h(),e=ht,r={start:{line:yt,column:ht-gt}},n=xt.advance(),r.end={line:yt,column:ht-gt},n.type!==ot.EOF&&(a=[n.range[0],n.range[1]],i=t(n.range[0],n.range[1]),xt.tokens.push({type:st[n.type],value:i,range:a,loc:r})),n}function Kr(){var e,r,t,n;return h(),e=ht,r={start:{line:yt,column:ht-gt}},t=xt.scanRegExp(),r.end={line:yt,column:ht-gt},xt.tokens.length>0&&(n=xt.tokens[xt.tokens.length-1],n.range[0]===e&&"Punctuator"===n.type&&("/"===n.value||"/="===n.value)&&xt.tokens.pop()),xt.tokens.push({type:"RegularExpression",value:t.literal,range:[e,ht],loc:r}),t}function zr(){var e,r,t,n=[];for(e=0;xt.tokens.length>e;++e)r=xt.tokens[e],t={type:r.type,value:r.value},xt.range&&(t.range=r.range),xt.loc&&(t.loc=r.loc),n.push(t);xt.tokens=n}function Zr(e){return{type:ut.Literal,value:e.value}}function Xr(e){return{type:ut.Literal,value:e.value,raw:t(e.range[0],e.range[1])}}function Yr(){var e={};return e.range=[ht,ht],e.loc={start:{line:yt,column:ht-gt},end:{line:yt,column:ht-gt}},e.end=function(){this.range[1]=ht,this.loc.end.line=yt,this.loc.end.column=ht-gt},e.applyGroup=function(e){xt.range&&(e.groupRange=[this.range[0],this.range[1]]),xt.loc&&(e.groupLoc={start:{line:this.loc.start.line,column:this.loc.start.column},end:{line:this.loc.end.line,column:this.loc.end.column}})},e.apply=function(e){xt.range&&(e.range=[this.range[0],this.range[1]]),xt.loc&&(e.loc={start:{line:this.loc.start.line,column:this.loc.start.column},end:{line:this.loc.end.line,column:this.loc.end.column}})},e}function Jr(){var e,r;return h(),e=Yr(),N("("),r=pr(),N(")"),e.end(),e.applyGroup(r),r}function $r(){var e,r;for(h(),e=Yr(),r=C("new")?z():G();P(".")||P("[");)P("[")?(r={type:ut.MemberExpression,computed:!0,object:r,property:K()},e.end(),e.apply(r)):(r={type:ut.MemberExpression,computed:!1,object:r,property:W()},e.end(),e.apply(r));return r}function Qr(){var e,r;for(h(),e=Yr(),r=C("new")?z():G();P(".")||P("[")||P("(");)P("(")?(r={type:ut.CallExpression,callee:r,arguments:q()},e.end(),e.apply(r)):P("[")?(r={type:ut.MemberExpression,computed:!0,object:r,property:K()},e.end(),e.apply(r)):(r={type:ut.MemberExpression,computed:!1,object:r,property:W()},e.end(),e.apply(r));return r}function et(e){var r,t,n;r="[object Array]"===Object.prototype.toString.apply(e)?[]:{};for(t in e)e.hasOwnProperty(t)&&"groupRange"!==t&&"groupLoc"!==t&&(n=e[t],r[t]=null===n||"object"!=typeof n||n instanceof RegExp?n:et(n));return r}function rt(e,r){return function(t){function n(e){return e.type===ut.LogicalExpression||e.type===ut.BinaryExpression}function a(t){var i,o;n(t.left)&&a(t.left),n(t.right)&&a(t.right),e&&(t.left.groupRange||t.right.groupRange?(i=t.left.groupRange?t.left.groupRange[0]:t.left.range[0],o=t.right.groupRange?t.right.groupRange[1]:t.right.range[1],t.range=[i,o]):t.range===void 0&&(i=t.left.range[0],o=t.right.range[1],t.range=[i,o])),r&&(t.left.groupLoc||t.right.groupLoc?(i=t.left.groupLoc?t.left.groupLoc.start:t.left.loc.start,o=t.right.groupLoc?t.right.groupLoc.end:t.right.loc.end,t.loc={start:i,end:o}):t.loc===void 0&&(t.loc={start:t.left.loc.start,end:t.right.loc.end}))}return function(){var i,o;return h(),i=Yr(),o=t.apply(null,arguments),i.end(),e&&o.range===void 0&&i.apply(o),r&&o.loc===void 0&&i.apply(o),n(o)&&a(o),o}}}function tt(){var e;xt.comments&&(xt.skipComment=h,h=qr),xt.raw&&(xt.createLiteral=Zr,Zr=Xr),(xt.range||xt.loc)&&(xt.parseGroupExpression=V,xt.parseLeftHandSideExpression=X,xt.parseLeftHandSideExpressionAllowCall=Z,V=Jr,X=$r,Z=Qr,e=rt(xt.range,xt.loc),xt.parseAdditiveExpression=Q,xt.parseAssignmentExpression=lr,xt.parseBitwiseANDExpression=nr,xt.parseBitwiseORExpression=ir,xt.parseBitwiseXORExpression=ar,xt.parseBlock=fr,xt.parseFunctionSourceElements=Ur,xt.parseCatchClause=Cr,xt.parseComputedMember=K,xt.parseConditionalExpression=ur,xt.parseConstLetDeclaration=mr,xt.parseEqualityExpression=tr,xt.parseExpression=pr,xt.parseForVariableDeclaration=wr,xt.parseFunctionDeclaration=Br,xt.parseFunctionExpression=_r,xt.parseLogicalANDExpression=or,xt.parseLogicalORExpression=sr,xt.parseMultiplicativeExpression=$,xt.parseNewExpression=z,xt.parseNonComputedProperty=H,xt.parseObjectProperty=T,xt.parseObjectPropertyKey=_,xt.parsePostfixExpression=Y,xt.parsePrimaryExpression=G,xt.parseProgram=Vr,xt.parsePropertyFunction=B,xt.parseRelationalExpression=rr,xt.parseStatement=Rr,xt.parseShiftExpression=er,xt.parseSwitchCase=Nr,xt.parseUnaryExpression=J,xt.parseVariableDeclaration=hr,xt.parseVariableIdentifier=dr,Q=e(xt.parseAdditiveExpression),lr=e(xt.parseAssignmentExpression),nr=e(xt.parseBitwiseANDExpression),ir=e(xt.parseBitwiseORExpression),ar=e(xt.parseBitwiseXORExpression),fr=e(xt.parseBlock),Ur=e(xt.parseFunctionSourceElements),Cr=e(xt.parseCatchClause),K=e(xt.parseComputedMember),ur=e(xt.parseConditionalExpression),mr=e(xt.parseConstLetDeclaration),tr=e(xt.parseEqualityExpression),pr=e(xt.parseExpression),wr=e(xt.parseForVariableDeclaration),Br=e(xt.parseFunctionDeclaration),_r=e(xt.parseFunctionExpression),X=e(X),or=e(xt.parseLogicalANDExpression),sr=e(xt.parseLogicalORExpression),$=e(xt.parseMultiplicativeExpression),z=e(xt.parseNewExpression),H=e(xt.parseNonComputedProperty),T=e(xt.parseObjectProperty),_=e(xt.parseObjectPropertyKey),Y=e(xt.parsePostfixExpression),G=e(xt.parsePrimaryExpression),Vr=e(xt.parseProgram),B=e(xt.parsePropertyFunction),rr=e(xt.parseRelationalExpression),Rr=e(xt.parseStatement),er=e(xt.parseShiftExpression),Nr=e(xt.parseSwitchCase),J=e(xt.parseUnaryExpression),hr=e(xt.parseVariableDeclaration),dr=e(xt.parseVariableIdentifier)),xt.tokens!==void 0&&(xt.advance=E,xt.scanRegExp=x,E=Wr,x=Kr)}function nt(){"function"==typeof xt.skipComment&&(h=xt.skipComment),xt.raw&&(Zr=xt.createLiteral),(xt.range||xt.loc)&&(Q=xt.parseAdditiveExpression,lr=xt.parseAssignmentExpression,nr=xt.parseBitwiseANDExpression,ir=xt.parseBitwiseORExpression,ar=xt.parseBitwiseXORExpression,fr=xt.parseBlock,Ur=xt.parseFunctionSourceElements,Cr=xt.parseCatchClause,K=xt.parseComputedMember,ur=xt.parseConditionalExpression,mr=xt.parseConstLetDeclaration,tr=xt.parseEqualityExpression,pr=xt.parseExpression,wr=xt.parseForVariableDeclaration,Br=xt.parseFunctionDeclaration,_r=xt.parseFunctionExpression,V=xt.parseGroupExpression,X=xt.parseLeftHandSideExpression,Z=xt.parseLeftHandSideExpressionAllowCall,or=xt.parseLogicalANDExpression,sr=xt.parseLogicalORExpression,$=xt.parseMultiplicativeExpression,z=xt.parseNewExpression,H=xt.parseNonComputedProperty,T=xt.parseObjectProperty,_=xt.parseObjectPropertyKey,G=xt.parsePrimaryExpression,Y=xt.parsePostfixExpression,Vr=xt.parseProgram,B=xt.parsePropertyFunction,rr=xt.parseRelationalExpression,Rr=xt.parseStatement,er=xt.parseShiftExpression,Nr=xt.parseSwitchCase,J=xt.parseUnaryExpression,hr=xt.parseVariableDeclaration,dr=xt.parseVariableIdentifier),"function"==typeof xt.scanRegExp&&(E=xt.advance,x=xt.scanRegExp)}function at(e){var r,t=e.length,n=[];for(r=0;t>r;++r)n[r]=e.charAt(r);return n}function it(e,r){var t,n;n=String,"string"==typeof e||e instanceof String||(e=n(e)),ft=e,ht=0,yt=ft.length>0?1:0,gt=0,mt=ft.length,vt=null,bt={allowIn:!0,labelSet:{},inFunctionBody:!1,inIteration:!1,inSwitch:!1},xt={},r!==void 0&&(xt.range="boolean"==typeof r.range&&r.range,xt.loc="boolean"==typeof r.loc&&r.loc,xt.raw="boolean"==typeof r.raw&&r.raw,"boolean"==typeof r.tokens&&r.tokens&&(xt.tokens=[]),"boolean"==typeof r.comment&&r.comment&&(xt.comments=[]),"boolean"==typeof r.tolerant&&r.tolerant&&(xt.errors=[])),mt>0&&ft[0]===void 0&&(e instanceof String&&(ft=e.valueOf()),ft[0]===void 0&&(ft=at(e))),tt();try{t=Vr(),xt.comments!==void 0&&(Hr(),t.comments=xt.comments),xt.tokens!==void 0&&(zr(),t.tokens=xt.tokens),xt.errors!==void 0&&(t.errors=xt.errors),(xt.range||xt.loc)&&(t.body=et(t.body))}catch(a){throw a}finally{nt(),xt={}}return t}var ot,st,ut,lt,pt,ct,ft,dt,ht,yt,gt,mt,vt,bt,xt;ot={BooleanLiteral:1,EOF:2,Identifier:3,Keyword:4,NullLiteral:5,NumericLiteral:6,Punctuator:7,StringLiteral:8},st={},st[ot.BooleanLiteral]="Boolean",st[ot.EOF]="<end>",st[ot.Identifier]="Identifier",st[ot.Keyword]="Keyword",st[ot.NullLiteral]="Null",st[ot.NumericLiteral]="Numeric",st[ot.Punctuator]="Punctuator",st[ot.StringLiteral]="String",ut={AssignmentExpression:"AssignmentExpression",ArrayExpression:"ArrayExpression",BlockStatement:"BlockStatement",BinaryExpression:"BinaryExpression",BreakStatement:"BreakStatement",CallExpression:"CallExpression",CatchClause:"CatchClause",ConditionalExpression:"ConditionalExpression",ContinueStatement:"ContinueStatement",DoWhileStatement:"DoWhileStatement",DebuggerStatement:"DebuggerStatement",EmptyStatement:"EmptyStatement",ExpressionStatement:"ExpressionStatement",ForStatement:"ForStatement",ForInStatement:"ForInStatement",FunctionDeclaration:"FunctionDeclaration",FunctionExpression:"FunctionExpression",Identifier:"Identifier",IfStatement:"IfStatement",Literal:"Literal",LabeledStatement:"LabeledStatement",LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",NewExpression:"NewExpression",ObjectExpression:"ObjectExpression",Program:"Program",Property:"Property",ReturnStatement:"ReturnStatement",SequenceExpression:"SequenceExpression",SwitchStatement:"SwitchStatement",SwitchCase:"SwitchCase",ThisExpression:"ThisExpression",ThrowStatement:"ThrowStatement",TryStatement:"TryStatement",UnaryExpression:"UnaryExpression",UpdateExpression:"UpdateExpression",VariableDeclaration:"VariableDeclaration",VariableDeclarator:"VariableDeclarator",WhileStatement:"WhileStatement",WithStatement:"WithStatement"},lt={Data:1,Get:2,Set:4},pt={UnexpectedToken:"Unexpected token %0",UnexpectedNumber:"Unexpected number",UnexpectedString:"Unexpected string",UnexpectedIdentifier:"Unexpected identifier",UnexpectedReserved:"Unexpected reserved word",UnexpectedEOS:"Unexpected end of input",NewlineAfterThrow:"Illegal newline after throw",InvalidRegExp:"Invalid regular expression",UnterminatedRegExp:"Invalid regular expression: missing /",InvalidLHSInAssignment:"Invalid left-hand side in assignment",InvalidLHSInForIn:"Invalid left-hand side in for-in",MultipleDefaultsInSwitch:"More than one default clause in switch statement",NoCatchOrFinally:"Missing catch or finally after try",UnknownLabel:"Undefined label '%0'",Redeclaration:"%0 '%1' has already been declared",IllegalContinue:"Illegal continue statement",IllegalBreak:"Illegal break statement",IllegalReturn:"Illegal return statement",StrictModeWith:"Strict mode code may not include a with statement",StrictCatchVariable:"Catch variable may not be eval or arguments in strict mode",StrictVarName:"Variable name may not be eval or arguments in strict mode",StrictParamName:"Parameter name eval or arguments is not allowed in strict mode",StrictParamDupe:"Strict mode function may not have duplicate parameter names",StrictFunctionName:"Function name may not be eval or arguments in strict mode",StrictOctalLiteral:"Octal literals are not allowed in strict mode.",StrictDelete:"Delete of an unqualified identifier in strict mode.",StrictDuplicateProperty:"Duplicate data property in object literal not allowed in strict mode",AccessorDataProperty:"Object literal may not have data and accessor property with the same name",AccessorGetSet:"Object literal may not have multiple get/set accessors with the same name",StrictLHSAssignment:"Assignment to eval or arguments is not allowed in strict mode",StrictLHSPostfix:"Postfix increment/decrement may not have eval or arguments operand in strict mode",StrictLHSPrefix:"Prefix increment/decrement may not have eval or arguments operand in strict mode",StrictReservedWord:"Use of future reserved word in strict mode"},ct={NonAsciiIdentifierStart:RegExp("[ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԧԱ-Ֆՙա-ևא-תװ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࢠࢢ-ࢬऄ-हऽॐक़-ॡॱ-ॷॹ-ॿঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-ళవ-హఽౘౙౠౡಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೞೠೡೱೲഅ-ഌഎ-ഐഒ-ഺഽൎൠൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏼᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛰᜀ-ᜌᜎ-ᜑᜠ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡷᢀ-ᢨᢪᢰ-ᣵᤀ-ᤜᥐ-ᥭᥰ-ᥴᦀ-ᦫᧁ-ᧇᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭋᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᳩ-ᳬᳮ-ᳱᳵᳶᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞⸯ々-〇〡-〩〱-〵〸-〼ぁ-ゖゝ-ゟァ-ヺー-ヿㄅ-ㄭㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿌ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚗꚠ-ꛯꜗ-ꜟꜢ-ꞈꞋ-ꞎꞐ-ꞓꞠ-Ɦꟸ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꪀ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꯀ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼA-Za-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ]"),NonAsciiIdentifierPart:RegExp("[ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮ̀-ʹͶͷͺ-ͽΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁ҃-҇Ҋ-ԧԱ-Ֆՙա-և֑-ׇֽֿׁׂׅׄא-תװ-ײؐ-ؚؠ-٩ٮ-ۓە-ۜ۟-۪ۨ-ۼۿܐ-݊ݍ-ޱ߀-ߵߺࠀ-࠭ࡀ-࡛ࢠࢢ-ࢬࣤ-ࣾऀ-ॣ०-९ॱ-ॷॹ-ॿঁ-ঃঅ-ঌএঐও-নপ-রলশ-হ়-ৄেৈো-ৎৗড়ঢ়য়-ৣ০-ৱਁ-ਃਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹ਼ਾ-ੂੇੈੋ-੍ੑਖ਼-ੜਫ਼੦-ੵઁ-ઃઅ-ઍએ-ઑઓ-નપ-રલળવ-હ઼-ૅે-ૉો-્ૐૠ-ૣ૦-૯ଁ-ଃଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହ଼-ୄେୈୋ-୍ୖୗଡ଼ଢ଼ୟ-ୣ୦-୯ୱஂஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹா-ூெ-ைொ-்ௐௗ௦-௯ఁ-ఃఅ-ఌఎ-ఐఒ-నప-ళవ-హఽ-ౄె-ైొ-్ౕౖౘౙౠ-ౣ౦-౯ಂಃಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹ಼-ೄೆ-ೈೊ-್ೕೖೞೠ-ೣ೦-೯ೱೲംഃഅ-ഌഎ-ഐഒ-ഺഽ-ൄെ-ൈൊ-ൎൗൠ-ൣ൦-൯ൺ-ൿංඃඅ-ඖක-නඳ-රලව-ෆ්ා-ුූෘ-ෟෲෳก-ฺเ-๎๐-๙ກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ູົ-ຽເ-ໄໆ່-ໍ໐-໙ໜ-ໟༀ༘༙༠-༩༹༵༷༾-ཇཉ-ཬཱ-྄྆-ྗྙ-ྼ࿆က-၉ၐ-ႝႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚ፝-፟ᎀ-ᎏᎠ-Ᏼᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛰᜀ-ᜌᜎ-᜔ᜠ-᜴ᝀ-ᝓᝠ-ᝬᝮ-ᝰᝲᝳក-៓ៗៜ៝០-៩᠋-᠍᠐-᠙ᠠ-ᡷᢀ-ᢪᢰ-ᣵᤀ-ᤜᤠ-ᤫᤰ-᤻᥆-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉ᧐-᧙ᨀ-ᨛᨠ-ᩞ᩠-᩿᩼-᪉᪐-᪙ᪧᬀ-ᭋ᭐-᭙᭫-᭳ᮀ-᯳ᰀ-᰷᱀-᱉ᱍ-ᱽ᳐-᳔᳒-ᳶᴀ-ᷦ᷼-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼ‌‍‿⁀⁔ⁱⁿₐ-ₜ⃐-⃥⃜⃡-⃰ℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯ⵿-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞⷠ-ⷿⸯ々-〇〡-〯〱-〵〸-〼ぁ-ゖ゙゚ゝ-ゟァ-ヺー-ヿㄅ-ㄭㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿌ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘫꙀ-꙯ꙴ-꙽ꙿ-ꚗꚟ-꛱ꜗ-ꜟꜢ-ꞈꞋ-ꞎꞐ-ꞓꞠ-Ɦꟸ-ꠧꡀ-ꡳꢀ-꣄꣐-꣙꣠-ꣷꣻ꤀-꤭ꤰ-꥓ꥠ-ꥼꦀ-꧀ꧏ-꧙ꨀ-ꨶꩀ-ꩍ꩐-꩙ꩠ-ꩶꩺꩻꪀ-ꫂꫛ-ꫝꫠ-ꫯꫲ-꫶ꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꯀ-ꯪ꯬꯭꯰-꯹가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻ︀-️︠-︦︳︴﹍-﹏ﹰ-ﹴﹶ-ﻼ0-9A-Z_a-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ]")},"esprima"[0]===void 0&&(t=function(e,r){return ft.slice(e,r).join("")
}),e.version="1.0.3",e.parse=it,e.Syntax=function(){var e,r={};"function"==typeof Object.create&&(r=Object.create(null));for(e in ut)ut.hasOwnProperty(e)&&(r[e]=ut[e]);return"function"==typeof Object.freeze&&Object.freeze(r),r}()})})()},{}],17:[function(e,r){"use strict";function t(e,r){for(var t=1,n=e.length,a=e[0],i=e[0],o=1;n>o;++o)if(i=a,a=e[o],r(a,i)){if(o===t){t++;continue}e[t++]=a}return e.length=t,e}function n(e){for(var r=1,t=e.length,n=e[0],a=e[0],i=1;t>i;++i,a=n)if(a=n,n=e[i],n!==a){if(i===r){r++;continue}e[r++]=n}return e.length=r,e}function a(e,r,a){return 0===e.length?[]:r?(a||e.sort(r),t(e,r)):(a||e.sort(),n(e))}r.exports=a},{}],18:[function(e,r,t){(function(){(function(e,r){"use strict";"function"==typeof define&&define.amd?define(["exports"],r):t!==void 0?r(t):r(e.esprima={})})(this,function(e){"use strict";function r(e,r){if(!e)throw Error("ASSERT: "+r)}function t(e,r){return ft.slice(e,r)}function n(e){return"0123456789".indexOf(e)>=0}function a(e){return"0123456789abcdefABCDEF".indexOf(e)>=0}function i(e){return"01234567".indexOf(e)>=0}function o(e){return" "===e||" "===e||" "===e||"\f"===e||" "===e||e.charCodeAt(0)>=5760&&" ᠎              ".indexOf(e)>=0}function s(e){return"\n"===e||"\r"===e||"\u2028"===e||"\u2029"===e}function u(e){return"$"===e||"_"===e||"\\"===e||e>="a"&&"z">=e||e>="A"&&"Z">=e||e.charCodeAt(0)>=128&&ct.NonAsciiIdentifierStart.test(e)}function l(e){return"$"===e||"_"===e||"\\"===e||e>="a"&&"z">=e||e>="A"&&"Z">=e||e>="0"&&"9">=e||e.charCodeAt(0)>=128&&ct.NonAsciiIdentifierPart.test(e)}function p(e){switch(e){case"class":case"enum":case"export":case"extends":case"import":case"super":return!0}return!1}function c(e){switch(e){case"implements":case"interface":case"package":case"private":case"protected":case"public":case"static":case"yield":case"let":return!0}return!1}function f(e){return"eval"===e||"arguments"===e}function d(e){var r=!1;switch(e.length){case 2:r="if"===e||"in"===e||"do"===e;break;case 3:r="var"===e||"for"===e||"new"===e||"try"===e;break;case 4:r="this"===e||"else"===e||"case"===e||"void"===e||"with"===e;break;case 5:r="while"===e||"break"===e||"catch"===e||"throw"===e;break;case 6:r="return"===e||"typeof"===e||"delete"===e||"switch"===e;break;case 7:r="default"===e||"finally"===e;break;case 8:r="function"===e||"continue"===e||"debugger"===e;break;case 10:r="instanceof"===e}if(r)return!0;switch(e){case"const":return!0;case"yield":case"let":return!0}return dt&&c(e)?!0:p(e)}function h(){var e,r,t;for(r=!1,t=!1;mt>ht;)if(e=ft[ht],t)e=ft[ht++],s(e)&&(t=!1,"\r"===e&&"\n"===ft[ht]&&++ht,++yt,gt=ht);else if(r)s(e)?("\r"===e&&"\n"===ft[ht+1]&&++ht,++yt,++ht,gt=ht,ht>=mt&&k({},pt.UnexpectedToken,"ILLEGAL")):(e=ft[ht++],ht>=mt&&k({},pt.UnexpectedToken,"ILLEGAL"),"*"===e&&(e=ft[ht],"/"===e&&(++ht,r=!1)));else if("/"===e)if(e=ft[ht+1],"/"===e)ht+=2,t=!0;else{if("*"!==e)break;ht+=2,r=!0,ht>=mt&&k({},pt.UnexpectedToken,"ILLEGAL")}else if(o(e))++ht;else{if(!s(e))break;++ht,"\r"===e&&"\n"===ft[ht]&&++ht,++yt,gt=ht}}function y(e){var r,t,n,i=0;for(t="u"===e?4:2,r=0;t>r;++r){if(!(mt>ht&&a(ft[ht])))return"";n=ft[ht++],i=16*i+"0123456789abcdef".indexOf(n.toLowerCase())}return String.fromCharCode(i)}function g(){var e,r,t,n;if(e=ft[ht],u(e)){if(r=ht,"\\"===e){if(++ht,"u"!==ft[ht])return;if(++ht,n=ht,e=y("u")){if("\\"===e||!u(e))return;t=e}else ht=n,t="u"}else t=ft[ht++];for(;mt>ht&&(e=ft[ht],l(e));)if("\\"===e){if(++ht,"u"!==ft[ht])return;if(++ht,n=ht,e=y("u")){if("\\"===e||!l(e))return;t+=e}else ht=n,t+="u"}else t+=ft[ht++];return 1===t.length?{type:ot.Identifier,value:t,lineNumber:yt,lineStart:gt,range:[r,ht]}:d(t)?{type:ot.Keyword,value:t,lineNumber:yt,lineStart:gt,range:[r,ht]}:"null"===t?{type:ot.NullLiteral,value:t,lineNumber:yt,lineStart:gt,range:[r,ht]}:"true"===t||"false"===t?{type:ot.BooleanLiteral,value:t,lineNumber:yt,lineStart:gt,range:[r,ht]}:{type:ot.Identifier,value:t,lineNumber:yt,lineStart:gt,range:[r,ht]}}}function m(){var e,r,t,a=ht,i=ft[ht];return";"===i||"{"===i||"}"===i?(++ht,{type:ot.Punctuator,value:i,lineNumber:yt,lineStart:gt,range:[a,ht]}):","===i||"("===i||")"===i?(++ht,{type:ot.Punctuator,value:i,lineNumber:yt,lineStart:gt,range:[a,ht]}):(e=ft[ht+1],"."!==i||n(e)?(r=ft[ht+2],t=ft[ht+3],">"===i&&">"===e&&">"===r&&"="===t?(ht+=4,{type:ot.Punctuator,value:">>>=",lineNumber:yt,lineStart:gt,range:[a,ht]}):"="===i&&"="===e&&"="===r?(ht+=3,{type:ot.Punctuator,value:"===",lineNumber:yt,lineStart:gt,range:[a,ht]}):"!"===i&&"="===e&&"="===r?(ht+=3,{type:ot.Punctuator,value:"!==",lineNumber:yt,lineStart:gt,range:[a,ht]}):">"===i&&">"===e&&">"===r?(ht+=3,{type:ot.Punctuator,value:">>>",lineNumber:yt,lineStart:gt,range:[a,ht]}):"<"===i&&"<"===e&&"="===r?(ht+=3,{type:ot.Punctuator,value:"<<=",lineNumber:yt,lineStart:gt,range:[a,ht]}):">"===i&&">"===e&&"="===r?(ht+=3,{type:ot.Punctuator,value:">>=",lineNumber:yt,lineStart:gt,range:[a,ht]}):"="===e&&"<>=!+-*%&|^/".indexOf(i)>=0?(ht+=2,{type:ot.Punctuator,value:i+e,lineNumber:yt,lineStart:gt,range:[a,ht]}):i===e&&"+-<>&|".indexOf(i)>=0&&"+-<>&|".indexOf(e)>=0?(ht+=2,{type:ot.Punctuator,value:i+e,lineNumber:yt,lineStart:gt,range:[a,ht]}):"[]<>+-*%&|^!~?:=/".indexOf(i)>=0?{type:ot.Punctuator,value:ft[ht++],lineNumber:yt,lineStart:gt,range:[a,ht]}:void 0):{type:ot.Punctuator,value:ft[ht++],lineNumber:yt,lineStart:gt,range:[a,ht]})}function v(){var e,t,o;if(o=ft[ht],r(n(o)||"."===o,"Numeric literal must start with a decimal digit or a decimal point"),t=ht,e="","."!==o){if(e=ft[ht++],o=ft[ht],"0"===e){if("x"===o||"X"===o){for(e+=ft[ht++];mt>ht&&(o=ft[ht],a(o));)e+=ft[ht++];return 2>=e.length&&k({},pt.UnexpectedToken,"ILLEGAL"),mt>ht&&(o=ft[ht],u(o)&&k({},pt.UnexpectedToken,"ILLEGAL")),{type:ot.NumericLiteral,value:parseInt(e,16),lineNumber:yt,lineStart:gt,range:[t,ht]}}if(i(o)){for(e+=ft[ht++];mt>ht&&(o=ft[ht],i(o));)e+=ft[ht++];return mt>ht&&(o=ft[ht],(u(o)||n(o))&&k({},pt.UnexpectedToken,"ILLEGAL")),{type:ot.NumericLiteral,value:parseInt(e,8),octal:!0,lineNumber:yt,lineStart:gt,range:[t,ht]}}n(o)&&k({},pt.UnexpectedToken,"ILLEGAL")}for(;mt>ht&&(o=ft[ht],n(o));)e+=ft[ht++]}if("."===o)for(e+=ft[ht++];mt>ht&&(o=ft[ht],n(o));)e+=ft[ht++];if("e"===o||"E"===o)if(e+=ft[ht++],o=ft[ht],("+"===o||"-"===o)&&(e+=ft[ht++]),o=ft[ht],n(o))for(e+=ft[ht++];mt>ht&&(o=ft[ht],n(o));)e+=ft[ht++];else o="character "+o,ht>=mt&&(o="<end>"),k({},pt.UnexpectedToken,"ILLEGAL");return mt>ht&&(o=ft[ht],u(o)&&k({},pt.UnexpectedToken,"ILLEGAL")),{type:ot.NumericLiteral,value:parseFloat(e),lineNumber:yt,lineStart:gt,range:[t,ht]}}function b(){var e,t,n,a,o,u,l="",p=!1;for(e=ft[ht],r("'"===e||'"'===e,"String literal must starts with a quote"),t=ht,++ht;mt>ht;){if(n=ft[ht++],n===e){e="";break}if("\\"===n)if(n=ft[ht++],s(n))++yt,"\r"===n&&"\n"===ft[ht]&&++ht;else switch(n){case"n":l+="\n";break;case"r":l+="\r";break;case"t":l+=" ";break;case"u":case"x":u=ht,o=y(n),o?l+=o:(ht=u,l+=n);break;case"b":l+="\b";break;case"f":l+="\f";break;case"v":l+=" ";break;default:i(n)?(a="01234567".indexOf(n),0!==a&&(p=!0),mt>ht&&i(ft[ht])&&(p=!0,a=8*a+"01234567".indexOf(ft[ht++]),"0123".indexOf(n)>=0&&mt>ht&&i(ft[ht])&&(a=8*a+"01234567".indexOf(ft[ht++]))),l+=String.fromCharCode(a)):l+=n}else{if(s(n))break;l+=n}}return""!==e&&k({},pt.UnexpectedToken,"ILLEGAL"),{type:ot.StringLiteral,value:l,octal:p,lineNumber:yt,lineStart:gt,range:[t,ht]}}function x(){var e,t,n,a,i,o,u,p=!1,c=!1;for(vt=null,h(),n=ht,t=ft[ht],r("/"===t,"Regular expression literal must start with a slash"),e=ft[ht++];mt>ht;)if(t=ft[ht++],e+=t,p)"]"===t&&(p=!1);else if("\\"===t)t=ft[ht++],s(t)&&k({},pt.UnterminatedRegExp),e+=t;else{if("/"===t){c=!0;break}"["===t?p=!0:s(t)&&k({},pt.UnterminatedRegExp)}for(c||k({},pt.UnterminatedRegExp),a=e.substr(1,e.length-2),i="";mt>ht&&(t=ft[ht],l(t));)if(++ht,"\\"===t&&mt>ht)if(t=ft[ht],"u"===t)if(++ht,u=ht,t=y("u"))for(i+=t,e+="\\u";ht>u;++u)e+=ft[u];else ht=u,i+="u",e+="\\u";else e+="\\";else i+=t,e+=t;try{o=RegExp(a,i)}catch(f){k({},pt.InvalidRegExp)}return{literal:e,value:o,range:[n,ht]}}function S(e){return e.type===ot.Identifier||e.type===ot.Keyword||e.type===ot.BooleanLiteral||e.type===ot.NullLiteral}function E(){var e,r;return h(),ht>=mt?{type:ot.EOF,lineNumber:yt,lineStart:gt,range:[ht,ht]}:(r=m(),r!==void 0?r:(e=ft[ht],"'"===e||'"'===e?b():"."===e||n(e)?v():(r=g(),r!==void 0?r:(k({},pt.UnexpectedToken,"ILLEGAL"),void 0))))}function w(){var e;return vt?(ht=vt.range[1],yt=vt.lineNumber,gt=vt.lineStart,e=vt,vt=null,e):(vt=null,E())}function j(){var e,r,t;return null!==vt?vt:(e=ht,r=yt,t=gt,vt=E(),ht=e,yt=r,gt=t,vt)}function L(){var e,r,t,n;return e=ht,r=yt,t=gt,h(),n=yt!==r,ht=e,yt=r,gt=t,n}function k(e,r){var t,n=Array.prototype.slice.call(arguments,2),a=r.replace(/%(\d)/g,function(e,r){return n[r]||""});throw"number"==typeof e.lineNumber?(t=Error("Line "+e.lineNumber+": "+a),t.index=e.range[0],t.lineNumber=e.lineNumber,t.column=e.range[0]-gt+1):(t=Error("Line "+yt+": "+a),t.index=ht,t.lineNumber=yt,t.column=ht-gt+1),t}function I(){try{k.apply(null,arguments)}catch(e){if(!xt.errors)throw e;xt.errors.push(e)}}function A(e){if(e.type===ot.EOF&&k(e,pt.UnexpectedEOS),e.type===ot.NumericLiteral&&k(e,pt.UnexpectedNumber),e.type===ot.StringLiteral&&k(e,pt.UnexpectedString),e.type===ot.Identifier&&k(e,pt.UnexpectedIdentifier),e.type===ot.Keyword){if(p(e.value))k(e,pt.UnexpectedReserved);else if(dt&&c(e.value))return I(e,pt.StrictReservedWord),void 0;k(e,pt.UnexpectedToken,e.value)}k(e,pt.UnexpectedToken,e.value)}function N(e){var r=w();(r.type!==ot.Punctuator||r.value!==e)&&A(r)}function O(e){var r=w();(r.type!==ot.Keyword||r.value!==e)&&A(r)}function P(e){var r=j();return r.type===ot.Punctuator&&r.value===e}function C(e){var r=j();return r.type===ot.Keyword&&r.value===e}function D(){var e=j(),r=e.value;return e.type!==ot.Punctuator?!1:"="===r||"*="===r||"/="===r||"%="===r||"+="===r||"-="===r||"<<="===r||">>="===r||">>>="===r||"&="===r||"^="===r||"|="===r}function F(){var e,r;if(";"===ft[ht])return w(),void 0;if(r=yt,h(),yt===r){if(P(";"))return w(),void 0;e=j(),e.type===ot.EOF||P("}")||A(e)}}function R(e){return e.type===ut.Identifier||e.type===ut.MemberExpression}function U(){var e=[];for(N("[");!P("]");)P(",")?(w(),e.push(null)):(e.push(lr()),P("]")||N(","));return N("]"),{type:ut.ArrayExpression,elements:e}}function B(e,r){var t,n;return t=dt,n=Ur(),r&&dt&&f(e[0].name)&&I(r,pt.StrictParamName),dt=t,{type:ut.FunctionExpression,id:null,params:e,defaults:[],body:n,rest:null,generator:!1,expression:!1}}function _(){var e=w();return e.type===ot.StringLiteral||e.type===ot.NumericLiteral?(dt&&e.octal&&I(e,pt.StrictOctalLiteral),Zr(e)):{type:ut.Identifier,name:e.value}}function T(){var e,r,t,n;return e=j(),e.type===ot.Identifier?(t=_(),"get"!==e.value||P(":")?"set"!==e.value||P(":")?(N(":"),{type:ut.Property,key:t,value:lr(),kind:"init"}):(r=_(),N("("),e=j(),e.type!==ot.Identifier?(N(")"),I(e,pt.UnexpectedToken,e.value),{type:ut.Property,key:r,value:B([]),kind:"set"}):(n=[dr()],N(")"),{type:ut.Property,key:r,value:B(n,e),kind:"set"})):(r=_(),N("("),N(")"),{type:ut.Property,key:r,value:B([]),kind:"get"})):e.type!==ot.EOF&&e.type!==ot.Punctuator?(r=_(),N(":"),{type:ut.Property,key:r,value:lr(),kind:"init"}):(A(e),void 0)}function M(){var e,r,t,n=[],a={},i=String;for(N("{");!P("}");)e=T(),r=e.key.type===ut.Identifier?e.key.name:i(e.key.value),t="init"===e.kind?lt.Data:"get"===e.kind?lt.Get:lt.Set,Object.prototype.hasOwnProperty.call(a,r)?(a[r]===lt.Data?dt&&t===lt.Data?I({},pt.StrictDuplicateProperty):t!==lt.Data&&I({},pt.AccessorDataProperty):t===lt.Data?I({},pt.AccessorDataProperty):a[r]&t&&I({},pt.AccessorGetSet),a[r]|=t):a[r]=t,n.push(e),P("}")||N(",");return N("}"),{type:ut.ObjectExpression,properties:n}}function V(){var e;return N("("),e=pr(),N(")"),e}function G(){var e=j(),r=e.type;if(r===ot.Identifier)return{type:ut.Identifier,name:w().value};if(r===ot.StringLiteral||r===ot.NumericLiteral)return dt&&e.octal&&I(e,pt.StrictOctalLiteral),Zr(w());if(r===ot.Keyword){if(C("this"))return w(),{type:ut.ThisExpression};if(C("function"))return _r()}return r===ot.BooleanLiteral?(w(),e.value="true"===e.value,Zr(e)):r===ot.NullLiteral?(w(),e.value=null,Zr(e)):P("[")?U():P("{")?M():P("(")?V():P("/")||P("/=")?Zr(x()):A(w())}function q(){var e=[];if(N("("),!P(")"))for(;mt>ht&&(e.push(lr()),!P(")"));)N(",");return N(")"),e}function H(){var e=w();return S(e)||A(e),{type:ut.Identifier,name:e.value}}function W(){return N("."),H()}function K(){var e;return N("["),e=pr(),N("]"),e}function z(){var e;return O("new"),e={type:ut.NewExpression,callee:X(),arguments:[]},P("(")&&(e.arguments=q()),e}function Z(){var e;for(e=C("new")?z():G();P(".")||P("[")||P("(");)e=P("(")?{type:ut.CallExpression,callee:e,arguments:q()}:P("[")?{type:ut.MemberExpression,computed:!0,object:e,property:K()}:{type:ut.MemberExpression,computed:!1,object:e,property:W()};return e}function X(){var e;for(e=C("new")?z():G();P(".")||P("[");)e=P("[")?{type:ut.MemberExpression,computed:!0,object:e,property:K()}:{type:ut.MemberExpression,computed:!1,object:e,property:W()};return e}function Y(){var e,r=Z();return e=j(),e.type!==ot.Punctuator?r:(!P("++")&&!P("--")||L()||(dt&&r.type===ut.Identifier&&f(r.name)&&I({},pt.StrictLHSPostfix),R(r)||k({},pt.InvalidLHSInAssignment),r={type:ut.UpdateExpression,operator:w().value,argument:r,prefix:!1}),r)}function J(){var e,r;return e=j(),e.type!==ot.Punctuator&&e.type!==ot.Keyword?Y():P("++")||P("--")?(e=w(),r=J(),dt&&r.type===ut.Identifier&&f(r.name)&&I({},pt.StrictLHSPrefix),R(r)||k({},pt.InvalidLHSInAssignment),r={type:ut.UpdateExpression,operator:e.value,argument:r,prefix:!0}):P("+")||P("-")||P("~")||P("!")?r={type:ut.UnaryExpression,operator:w().value,argument:J(),prefix:!0}:C("delete")||C("void")||C("typeof")?(r={type:ut.UnaryExpression,operator:w().value,argument:J(),prefix:!0},dt&&"delete"===r.operator&&r.argument.type===ut.Identifier&&I({},pt.StrictDelete),r):Y()}function $(){for(var e=J();P("*")||P("/")||P("%");)e={type:ut.BinaryExpression,operator:w().value,left:e,right:J()};return e}function Q(){for(var e=$();P("+")||P("-");)e={type:ut.BinaryExpression,operator:w().value,left:e,right:$()};return e}function er(){for(var e=Q();P("<<")||P(">>")||P(">>>");)e={type:ut.BinaryExpression,operator:w().value,left:e,right:Q()};return e}function rr(){var e,r;for(r=bt.allowIn,bt.allowIn=!0,e=er();P("<")||P(">")||P("<=")||P(">=")||r&&C("in")||C("instanceof");)e={type:ut.BinaryExpression,operator:w().value,left:e,right:er()};return bt.allowIn=r,e}function tr(){for(var e=rr();P("==")||P("!=")||P("===")||P("!==");)e={type:ut.BinaryExpression,operator:w().value,left:e,right:rr()};return e}function nr(){for(var e=tr();P("&");)w(),e={type:ut.BinaryExpression,operator:"&",left:e,right:tr()};return e}function ar(){for(var e=nr();P("^");)w(),e={type:ut.BinaryExpression,operator:"^",left:e,right:nr()};return e}function ir(){for(var e=ar();P("|");)w(),e={type:ut.BinaryExpression,operator:"|",left:e,right:ar()};return e}function or(){for(var e=ir();P("&&");)w(),e={type:ut.LogicalExpression,operator:"&&",left:e,right:ir()};return e}function sr(){for(var e=or();P("||");)w(),e={type:ut.LogicalExpression,operator:"||",left:e,right:or()};return e}function ur(){var e,r,t;return e=sr(),P("?")&&(w(),r=bt.allowIn,bt.allowIn=!0,t=lr(),bt.allowIn=r,N(":"),e={type:ut.ConditionalExpression,test:e,consequent:t,alternate:lr()}),e}function lr(){var e,r;return e=j(),r=ur(),D()&&(R(r)||k({},pt.InvalidLHSInAssignment),dt&&r.type===ut.Identifier&&f(r.name)&&I(e,pt.StrictLHSAssignment),r={type:ut.AssignmentExpression,operator:w().value,left:r,right:lr()}),r}function pr(){var e=lr();if(P(","))for(e={type:ut.SequenceExpression,expressions:[e]};mt>ht&&P(",");)w(),e.expressions.push(lr());return e}function cr(){for(var e,r=[];mt>ht&&!P("}")&&(e=Tr(),void 0!==e);)r.push(e);return r}function fr(){var e;return N("{"),e=cr(),N("}"),{type:ut.BlockStatement,body:e}}function dr(){var e=w();return e.type!==ot.Identifier&&A(e),{type:ut.Identifier,name:e.value}}function hr(e){var r=dr(),t=null;return dt&&f(r.name)&&I({},pt.StrictVarName),"const"===e?(N("="),t=lr()):P("=")&&(w(),t=lr()),{type:ut.VariableDeclarator,id:r,init:t}}function yr(e){var r=[];do{if(r.push(hr(e)),!P(","))break;w()}while(mt>ht);return r}function gr(){var e;return O("var"),e=yr(),F(),{type:ut.VariableDeclaration,declarations:e,kind:"var"}}function mr(e){var r;return O(e),r=yr(e),F(),{type:ut.VariableDeclaration,declarations:r,kind:e}}function vr(){return N(";"),{type:ut.EmptyStatement}}function br(){var e=pr();return F(),{type:ut.ExpressionStatement,expression:e}}function xr(){var e,r,t;return O("if"),N("("),e=pr(),N(")"),r=Rr(),C("else")?(w(),t=Rr()):t=null,{type:ut.IfStatement,test:e,consequent:r,alternate:t}}function Sr(){var e,r,t;return O("do"),t=bt.inIteration,bt.inIteration=!0,e=Rr(),bt.inIteration=t,O("while"),N("("),r=pr(),N(")"),P(";")&&w(),{type:ut.DoWhileStatement,body:e,test:r}}function Er(){var e,r,t;return O("while"),N("("),e=pr(),N(")"),t=bt.inIteration,bt.inIteration=!0,r=Rr(),bt.inIteration=t,{type:ut.WhileStatement,test:e,body:r}}function wr(){var e=w();return{type:ut.VariableDeclaration,declarations:yr(),kind:e.value}}function jr(){var e,r,t,n,a,i,o;return e=r=t=null,O("for"),N("("),P(";")?w():(C("var")||C("let")?(bt.allowIn=!1,e=wr(),bt.allowIn=!0,1===e.declarations.length&&C("in")&&(w(),n=e,a=pr(),e=null)):(bt.allowIn=!1,e=pr(),bt.allowIn=!0,C("in")&&(R(e)||k({},pt.InvalidLHSInForIn),w(),n=e,a=pr(),e=null)),n===void 0&&N(";")),n===void 0&&(P(";")||(r=pr()),N(";"),P(")")||(t=pr())),N(")"),o=bt.inIteration,bt.inIteration=!0,i=Rr(),bt.inIteration=o,n===void 0?{type:ut.ForStatement,init:e,test:r,update:t,body:i}:{type:ut.ForInStatement,left:n,right:a,body:i,each:!1}}function Lr(){var e,r=null;return O("continue"),";"===ft[ht]?(w(),bt.inIteration||k({},pt.IllegalContinue),{type:ut.ContinueStatement,label:null}):L()?(bt.inIteration||k({},pt.IllegalContinue),{type:ut.ContinueStatement,label:null}):(e=j(),e.type===ot.Identifier&&(r=dr(),Object.prototype.hasOwnProperty.call(bt.labelSet,r.name)||k({},pt.UnknownLabel,r.name)),F(),null!==r||bt.inIteration||k({},pt.IllegalContinue),{type:ut.ContinueStatement,label:r})}function kr(){var e,r=null;return O("break"),";"===ft[ht]?(w(),bt.inIteration||bt.inSwitch||k({},pt.IllegalBreak),{type:ut.BreakStatement,label:null}):L()?(bt.inIteration||bt.inSwitch||k({},pt.IllegalBreak),{type:ut.BreakStatement,label:null}):(e=j(),e.type===ot.Identifier&&(r=dr(),Object.prototype.hasOwnProperty.call(bt.labelSet,r.name)||k({},pt.UnknownLabel,r.name)),F(),null!==r||bt.inIteration||bt.inSwitch||k({},pt.IllegalBreak),{type:ut.BreakStatement,label:r})}function Ir(){var e,r=null;return O("return"),bt.inFunctionBody||I({},pt.IllegalReturn)," "===ft[ht]&&u(ft[ht+1])?(r=pr(),F(),{type:ut.ReturnStatement,argument:r}):L()?{type:ut.ReturnStatement,argument:null}:(P(";")||(e=j(),P("}")||e.type===ot.EOF||(r=pr())),F(),{type:ut.ReturnStatement,argument:r})}function Ar(){var e,r;return dt&&I({},pt.StrictModeWith),O("with"),N("("),e=pr(),N(")"),r=Rr(),{type:ut.WithStatement,object:e,body:r}}function Nr(){var e,r,t=[];for(C("default")?(w(),e=null):(O("case"),e=pr()),N(":");mt>ht&&!(P("}")||C("default")||C("case"))&&(r=Rr(),void 0!==r);)t.push(r);return{type:ut.SwitchCase,test:e,consequent:t}}function Or(){var e,r,t,n,a;if(O("switch"),N("("),e=pr(),N(")"),N("{"),P("}"))return w(),{type:ut.SwitchStatement,discriminant:e};for(r=[],n=bt.inSwitch,bt.inSwitch=!0,a=!1;mt>ht&&!P("}");)t=Nr(),null===t.test&&(a&&k({},pt.MultipleDefaultsInSwitch),a=!0),r.push(t);return bt.inSwitch=n,N("}"),{type:ut.SwitchStatement,discriminant:e,cases:r}}function Pr(){var e;return O("throw"),L()&&k({},pt.NewlineAfterThrow),e=pr(),F(),{type:ut.ThrowStatement,argument:e}}function Cr(){var e;return O("catch"),N("("),P(")")&&A(j()),e=dr(),dt&&f(e.name)&&I({},pt.StrictCatchVariable),N(")"),{type:ut.CatchClause,param:e,body:fr()}}function Dr(){var e,r=[],t=null;return O("try"),e=fr(),C("catch")&&r.push(Cr()),C("finally")&&(w(),t=fr()),0!==r.length||t||k({},pt.NoCatchOrFinally),{type:ut.TryStatement,block:e,guardedHandlers:[],handlers:r,finalizer:t}}function Fr(){return O("debugger"),F(),{type:ut.DebuggerStatement}}function Rr(){var e,r,t=j();if(t.type===ot.EOF&&A(t),t.type===ot.Punctuator)switch(t.value){case";":return vr();case"{":return fr();case"(":return br();default:}if(t.type===ot.Keyword)switch(t.value){case"break":return kr();case"continue":return Lr();case"debugger":return Fr();case"do":return Sr();case"for":return jr();case"function":return Br();case"if":return xr();case"return":return Ir();case"switch":return Or();case"throw":return Pr();case"try":return Dr();case"var":return gr();case"while":return Er();case"with":return Ar();default:}return e=pr(),e.type===ut.Identifier&&P(":")?(w(),Object.prototype.hasOwnProperty.call(bt.labelSet,e.name)&&k({},pt.Redeclaration,"Label",e.name),bt.labelSet[e.name]=!0,r=Rr(),delete bt.labelSet[e.name],{type:ut.LabeledStatement,label:e,body:r}):(F(),{type:ut.ExpressionStatement,expression:e})}function Ur(){var e,r,n,a,i,o,s,u,l=[];for(N("{");mt>ht&&(r=j(),r.type===ot.StringLiteral)&&(e=Tr(),l.push(e),e.expression.type===ut.Literal);)n=t(r.range[0]+1,r.range[1]-1),"use strict"===n?(dt=!0,a&&I(a,pt.StrictOctalLiteral)):!a&&r.octal&&(a=r);for(i=bt.labelSet,o=bt.inIteration,s=bt.inSwitch,u=bt.inFunctionBody,bt.labelSet={},bt.inIteration=!1,bt.inSwitch=!1,bt.inFunctionBody=!0;mt>ht&&!P("}")&&(e=Tr(),void 0!==e);)l.push(e);return N("}"),bt.labelSet=i,bt.inIteration=o,bt.inSwitch=s,bt.inFunctionBody=u,{type:ut.BlockStatement,body:l}}function Br(){var e,r,t,n,a,i,o,s,u,l=[];if(O("function"),n=j(),e=dr(),dt?f(n.value)&&I(n,pt.StrictFunctionName):f(n.value)?(i=n,o=pt.StrictFunctionName):c(n.value)&&(i=n,o=pt.StrictReservedWord),N("("),!P(")"))for(u={};mt>ht&&(n=j(),r=dr(),dt?(f(n.value)&&(a=n,o=pt.StrictParamName),Object.prototype.hasOwnProperty.call(u,n.value)&&(a=n,o=pt.StrictParamDupe)):i||(f(n.value)?(i=n,o=pt.StrictParamName):c(n.value)?(i=n,o=pt.StrictReservedWord):Object.prototype.hasOwnProperty.call(u,n.value)&&(i=n,o=pt.StrictParamDupe)),l.push(r),u[r.name]=!0,!P(")"));)N(",");return N(")"),s=dt,t=Ur(),dt&&i&&k(i,o),dt&&a&&I(a,o),dt=s,{type:ut.FunctionDeclaration,id:e,params:l,defaults:[],body:t,rest:null,generator:!1,expression:!1}}function _r(){var e,r,t,n,a,i,o,s,u=null,l=[];if(O("function"),P("(")||(e=j(),u=dr(),dt?f(e.value)&&I(e,pt.StrictFunctionName):f(e.value)?(t=e,n=pt.StrictFunctionName):c(e.value)&&(t=e,n=pt.StrictReservedWord)),N("("),!P(")"))for(s={};mt>ht&&(e=j(),a=dr(),dt?(f(e.value)&&(r=e,n=pt.StrictParamName),Object.prototype.hasOwnProperty.call(s,e.value)&&(r=e,n=pt.StrictParamDupe)):t||(f(e.value)?(t=e,n=pt.StrictParamName):c(e.value)?(t=e,n=pt.StrictReservedWord):Object.prototype.hasOwnProperty.call(s,e.value)&&(t=e,n=pt.StrictParamDupe)),l.push(a),s[a.name]=!0,!P(")"));)N(",");return N(")"),o=dt,i=Ur(),dt&&t&&k(t,n),dt&&r&&I(r,n),dt=o,{type:ut.FunctionExpression,id:u,params:l,defaults:[],body:i,rest:null,generator:!1,expression:!1}}function Tr(){var e=j();if(e.type===ot.Keyword)switch(e.value){case"const":case"let":return mr(e.value);case"function":return Br();default:return Rr()}return e.type!==ot.EOF?Rr():void 0}function Mr(){for(var e,r,n,a,i=[];mt>ht&&(r=j(),r.type===ot.StringLiteral)&&(e=Tr(),i.push(e),e.expression.type===ut.Literal);)n=t(r.range[0]+1,r.range[1]-1),"use strict"===n?(dt=!0,a&&I(a,pt.StrictOctalLiteral)):!a&&r.octal&&(a=r);for(;mt>ht&&(e=Tr(),void 0!==e);)i.push(e);return i}function Vr(){var e;return dt=!1,e={type:ut.Program,body:Mr()}}function Gr(e,t,n,a,i){r("number"==typeof n,"Comment must have valid position"),xt.comments.length>0&&xt.comments[xt.comments.length-1].range[1]>n||xt.comments.push({type:e,value:t,range:[n,a],loc:i})}function qr(){var e,r,t,n,a,i;for(e="",a=!1,i=!1;mt>ht;)if(r=ft[ht],i)r=ft[ht++],s(r)?(t.end={line:yt,column:ht-gt-1},i=!1,Gr("Line",e,n,ht-1,t),"\r"===r&&"\n"===ft[ht]&&++ht,++yt,gt=ht,e=""):ht>=mt?(i=!1,e+=r,t.end={line:yt,column:mt-gt},Gr("Line",e,n,mt,t)):e+=r;else if(a)s(r)?("\r"===r&&"\n"===ft[ht+1]?(++ht,e+="\r\n"):e+=r,++yt,++ht,gt=ht,ht>=mt&&k({},pt.UnexpectedToken,"ILLEGAL")):(r=ft[ht++],ht>=mt&&k({},pt.UnexpectedToken,"ILLEGAL"),e+=r,"*"===r&&(r=ft[ht],"/"===r&&(e=e.substr(0,e.length-1),a=!1,++ht,t.end={line:yt,column:ht-gt},Gr("Block",e,n,ht,t),e="")));else if("/"===r)if(r=ft[ht+1],"/"===r)t={start:{line:yt,column:ht-gt}},n=ht,ht+=2,i=!0,ht>=mt&&(t.end={line:yt,column:ht-gt},i=!1,Gr("Line",e,n,ht,t));else{if("*"!==r)break;n=ht,ht+=2,a=!0,t={start:{line:yt,column:ht-gt-2}},ht>=mt&&k({},pt.UnexpectedToken,"ILLEGAL")}else if(o(r))++ht;else{if(!s(r))break;++ht,"\r"===r&&"\n"===ft[ht]&&++ht,++yt,gt=ht}}function Hr(){var e,r,t,n=[];for(e=0;xt.comments.length>e;++e)r=xt.comments[e],t={type:r.type,value:r.value},xt.range&&(t.range=r.range),xt.loc&&(t.loc=r.loc),n.push(t);xt.comments=n}function Wr(){var e,r,n,a,i;return h(),e=ht,r={start:{line:yt,column:ht-gt}},n=xt.advance(),r.end={line:yt,column:ht-gt},n.type!==ot.EOF&&(a=[n.range[0],n.range[1]],i=t(n.range[0],n.range[1]),xt.tokens.push({type:st[n.type],value:i,range:a,loc:r})),n}function Kr(){var e,r,t,n;return h(),e=ht,r={start:{line:yt,column:ht-gt}},t=xt.scanRegExp(),r.end={line:yt,column:ht-gt},xt.tokens.length>0&&(n=xt.tokens[xt.tokens.length-1],n.range[0]===e&&"Punctuator"===n.type&&("/"===n.value||"/="===n.value)&&xt.tokens.pop()),xt.tokens.push({type:"RegularExpression",value:t.literal,range:[e,ht],loc:r}),t}function zr(){var e,r,t,n=[];for(e=0;xt.tokens.length>e;++e)r=xt.tokens[e],t={type:r.type,value:r.value},xt.range&&(t.range=r.range),xt.loc&&(t.loc=r.loc),n.push(t);xt.tokens=n}function Zr(e){return{type:ut.Literal,value:e.value}}function Xr(e){return{type:ut.Literal,value:e.value,raw:t(e.range[0],e.range[1])}}function Yr(){var e={};return e.range=[ht,ht],e.loc={start:{line:yt,column:ht-gt},end:{line:yt,column:ht-gt}},e.end=function(){this.range[1]=ht,this.loc.end.line=yt,this.loc.end.column=ht-gt},e.applyGroup=function(e){xt.range&&(e.groupRange=[this.range[0],this.range[1]]),xt.loc&&(e.groupLoc={start:{line:this.loc.start.line,column:this.loc.start.column},end:{line:this.loc.end.line,column:this.loc.end.column}})},e.apply=function(e){xt.range&&(e.range=[this.range[0],this.range[1]]),xt.loc&&(e.loc={start:{line:this.loc.start.line,column:this.loc.start.column},end:{line:this.loc.end.line,column:this.loc.end.column}})},e}function Jr(){var e,r;return h(),e=Yr(),N("("),r=pr(),N(")"),e.end(),e.applyGroup(r),r}function $r(){var e,r;for(h(),e=Yr(),r=C("new")?z():G();P(".")||P("[");)P("[")?(r={type:ut.MemberExpression,computed:!0,object:r,property:K()},e.end(),e.apply(r)):(r={type:ut.MemberExpression,computed:!1,object:r,property:W()},e.end(),e.apply(r));return r}function Qr(){var e,r;for(h(),e=Yr(),r=C("new")?z():G();P(".")||P("[")||P("(");)P("(")?(r={type:ut.CallExpression,callee:r,arguments:q()},e.end(),e.apply(r)):P("[")?(r={type:ut.MemberExpression,computed:!0,object:r,property:K()},e.end(),e.apply(r)):(r={type:ut.MemberExpression,computed:!1,object:r,property:W()},e.end(),e.apply(r));return r}function et(e){var r,t,n;r="[object Array]"===Object.prototype.toString.apply(e)?[]:{};for(t in e)e.hasOwnProperty(t)&&"groupRange"!==t&&"groupLoc"!==t&&(n=e[t],r[t]=null===n||"object"!=typeof n||n instanceof RegExp?n:et(n));return r}function rt(e,r){return function(t){function n(e){return e.type===ut.LogicalExpression||e.type===ut.BinaryExpression}function a(t){var i,o;n(t.left)&&a(t.left),n(t.right)&&a(t.right),e&&(t.left.groupRange||t.right.groupRange?(i=t.left.groupRange?t.left.groupRange[0]:t.left.range[0],o=t.right.groupRange?t.right.groupRange[1]:t.right.range[1],t.range=[i,o]):t.range===void 0&&(i=t.left.range[0],o=t.right.range[1],t.range=[i,o])),r&&(t.left.groupLoc||t.right.groupLoc?(i=t.left.groupLoc?t.left.groupLoc.start:t.left.loc.start,o=t.right.groupLoc?t.right.groupLoc.end:t.right.loc.end,t.loc={start:i,end:o}):t.loc===void 0&&(t.loc={start:t.left.loc.start,end:t.right.loc.end}))}return function(){var i,o;return h(),i=Yr(),o=t.apply(null,arguments),i.end(),e&&o.range===void 0&&i.apply(o),r&&o.loc===void 0&&i.apply(o),n(o)&&a(o),o}}}function tt(){var e;xt.comments&&(xt.skipComment=h,h=qr),xt.raw&&(xt.createLiteral=Zr,Zr=Xr),(xt.range||xt.loc)&&(xt.parseGroupExpression=V,xt.parseLeftHandSideExpression=X,xt.parseLeftHandSideExpressionAllowCall=Z,V=Jr,X=$r,Z=Qr,e=rt(xt.range,xt.loc),xt.parseAdditiveExpression=Q,xt.parseAssignmentExpression=lr,xt.parseBitwiseANDExpression=nr,xt.parseBitwiseORExpression=ir,xt.parseBitwiseXORExpression=ar,xt.parseBlock=fr,xt.parseFunctionSourceElements=Ur,xt.parseCatchClause=Cr,xt.parseComputedMember=K,xt.parseConditionalExpression=ur,xt.parseConstLetDeclaration=mr,xt.parseEqualityExpression=tr,xt.parseExpression=pr,xt.parseForVariableDeclaration=wr,xt.parseFunctionDeclaration=Br,xt.parseFunctionExpression=_r,xt.parseLogicalANDExpression=or,xt.parseLogicalORExpression=sr,xt.parseMultiplicativeExpression=$,xt.parseNewExpression=z,xt.parseNonComputedProperty=H,xt.parseObjectProperty=T,xt.parseObjectPropertyKey=_,xt.parsePostfixExpression=Y,xt.parsePrimaryExpression=G,xt.parseProgram=Vr,xt.parsePropertyFunction=B,xt.parseRelationalExpression=rr,xt.parseStatement=Rr,xt.parseShiftExpression=er,xt.parseSwitchCase=Nr,xt.parseUnaryExpression=J,xt.parseVariableDeclaration=hr,xt.parseVariableIdentifier=dr,Q=e(xt.parseAdditiveExpression),lr=e(xt.parseAssignmentExpression),nr=e(xt.parseBitwiseANDExpression),ir=e(xt.parseBitwiseORExpression),ar=e(xt.parseBitwiseXORExpression),fr=e(xt.parseBlock),Ur=e(xt.parseFunctionSourceElements),Cr=e(xt.parseCatchClause),K=e(xt.parseComputedMember),ur=e(xt.parseConditionalExpression),mr=e(xt.parseConstLetDeclaration),tr=e(xt.parseEqualityExpression),pr=e(xt.parseExpression),wr=e(xt.parseForVariableDeclaration),Br=e(xt.parseFunctionDeclaration),_r=e(xt.parseFunctionExpression),X=e(X),or=e(xt.parseLogicalANDExpression),sr=e(xt.parseLogicalORExpression),$=e(xt.parseMultiplicativeExpression),z=e(xt.parseNewExpression),H=e(xt.parseNonComputedProperty),T=e(xt.parseObjectProperty),_=e(xt.parseObjectPropertyKey),Y=e(xt.parsePostfixExpression),G=e(xt.parsePrimaryExpression),Vr=e(xt.parseProgram),B=e(xt.parsePropertyFunction),rr=e(xt.parseRelationalExpression),Rr=e(xt.parseStatement),er=e(xt.parseShiftExpression),Nr=e(xt.parseSwitchCase),J=e(xt.parseUnaryExpression),hr=e(xt.parseVariableDeclaration),dr=e(xt.parseVariableIdentifier)),xt.tokens!==void 0&&(xt.advance=E,xt.scanRegExp=x,E=Wr,x=Kr)}function nt(){"function"==typeof xt.skipComment&&(h=xt.skipComment),xt.raw&&(Zr=xt.createLiteral),(xt.range||xt.loc)&&(Q=xt.parseAdditiveExpression,lr=xt.parseAssignmentExpression,nr=xt.parseBitwiseANDExpression,ir=xt.parseBitwiseORExpression,ar=xt.parseBitwiseXORExpression,fr=xt.parseBlock,Ur=xt.parseFunctionSourceElements,Cr=xt.parseCatchClause,K=xt.parseComputedMember,ur=xt.parseConditionalExpression,mr=xt.parseConstLetDeclaration,tr=xt.parseEqualityExpression,pr=xt.parseExpression,wr=xt.parseForVariableDeclaration,Br=xt.parseFunctionDeclaration,_r=xt.parseFunctionExpression,V=xt.parseGroupExpression,X=xt.parseLeftHandSideExpression,Z=xt.parseLeftHandSideExpressionAllowCall,or=xt.parseLogicalANDExpression,sr=xt.parseLogicalORExpression,$=xt.parseMultiplicativeExpression,z=xt.parseNewExpression,H=xt.parseNonComputedProperty,T=xt.parseObjectProperty,_=xt.parseObjectPropertyKey,G=xt.parsePrimaryExpression,Y=xt.parsePostfixExpression,Vr=xt.parseProgram,B=xt.parsePropertyFunction,rr=xt.parseRelationalExpression,Rr=xt.parseStatement,er=xt.parseShiftExpression,Nr=xt.parseSwitchCase,J=xt.parseUnaryExpression,hr=xt.parseVariableDeclaration,dr=xt.parseVariableIdentifier),"function"==typeof xt.scanRegExp&&(E=xt.advance,x=xt.scanRegExp)}function at(e){var r,t=e.length,n=[];for(r=0;t>r;++r)n[r]=e.charAt(r);return n}function it(e,r){var t,n;n=String,"string"==typeof e||e instanceof String||(e=n(e)),ft=e,ht=0,yt=ft.length>0?1:0,gt=0,mt=ft.length,vt=null,bt={allowIn:!0,labelSet:{},inFunctionBody:!1,inIteration:!1,inSwitch:!1},xt={},r!==void 0&&(xt.range="boolean"==typeof r.range&&r.range,xt.loc="boolean"==typeof r.loc&&r.loc,xt.raw="boolean"==typeof r.raw&&r.raw,"boolean"==typeof r.tokens&&r.tokens&&(xt.tokens=[]),"boolean"==typeof r.comment&&r.comment&&(xt.comments=[]),"boolean"==typeof r.tolerant&&r.tolerant&&(xt.errors=[])),mt>0&&ft[0]===void 0&&(e instanceof String&&(ft=e.valueOf()),ft[0]===void 0&&(ft=at(e))),tt();
try{t=Vr(),xt.comments!==void 0&&(Hr(),t.comments=xt.comments),xt.tokens!==void 0&&(zr(),t.tokens=xt.tokens),xt.errors!==void 0&&(t.errors=xt.errors),(xt.range||xt.loc)&&(t.body=et(t.body))}catch(a){throw a}finally{nt(),xt={}}return t}var ot,st,ut,lt,pt,ct,ft,dt,ht,yt,gt,mt,vt,bt,xt;ot={BooleanLiteral:1,EOF:2,Identifier:3,Keyword:4,NullLiteral:5,NumericLiteral:6,Punctuator:7,StringLiteral:8},st={},st[ot.BooleanLiteral]="Boolean",st[ot.EOF]="<end>",st[ot.Identifier]="Identifier",st[ot.Keyword]="Keyword",st[ot.NullLiteral]="Null",st[ot.NumericLiteral]="Numeric",st[ot.Punctuator]="Punctuator",st[ot.StringLiteral]="String",ut={AssignmentExpression:"AssignmentExpression",ArrayExpression:"ArrayExpression",BlockStatement:"BlockStatement",BinaryExpression:"BinaryExpression",BreakStatement:"BreakStatement",CallExpression:"CallExpression",CatchClause:"CatchClause",ConditionalExpression:"ConditionalExpression",ContinueStatement:"ContinueStatement",DoWhileStatement:"DoWhileStatement",DebuggerStatement:"DebuggerStatement",EmptyStatement:"EmptyStatement",ExpressionStatement:"ExpressionStatement",ForStatement:"ForStatement",ForInStatement:"ForInStatement",FunctionDeclaration:"FunctionDeclaration",FunctionExpression:"FunctionExpression",Identifier:"Identifier",IfStatement:"IfStatement",Literal:"Literal",LabeledStatement:"LabeledStatement",LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",NewExpression:"NewExpression",ObjectExpression:"ObjectExpression",Program:"Program",Property:"Property",ReturnStatement:"ReturnStatement",SequenceExpression:"SequenceExpression",SwitchStatement:"SwitchStatement",SwitchCase:"SwitchCase",ThisExpression:"ThisExpression",ThrowStatement:"ThrowStatement",TryStatement:"TryStatement",UnaryExpression:"UnaryExpression",UpdateExpression:"UpdateExpression",VariableDeclaration:"VariableDeclaration",VariableDeclarator:"VariableDeclarator",WhileStatement:"WhileStatement",WithStatement:"WithStatement"},lt={Data:1,Get:2,Set:4},pt={UnexpectedToken:"Unexpected token %0",UnexpectedNumber:"Unexpected number",UnexpectedString:"Unexpected string",UnexpectedIdentifier:"Unexpected identifier",UnexpectedReserved:"Unexpected reserved word",UnexpectedEOS:"Unexpected end of input",NewlineAfterThrow:"Illegal newline after throw",InvalidRegExp:"Invalid regular expression",UnterminatedRegExp:"Invalid regular expression: missing /",InvalidLHSInAssignment:"Invalid left-hand side in assignment",InvalidLHSInForIn:"Invalid left-hand side in for-in",MultipleDefaultsInSwitch:"More than one default clause in switch statement",NoCatchOrFinally:"Missing catch or finally after try",UnknownLabel:"Undefined label '%0'",Redeclaration:"%0 '%1' has already been declared",IllegalContinue:"Illegal continue statement",IllegalBreak:"Illegal break statement",IllegalReturn:"Illegal return statement",StrictModeWith:"Strict mode code may not include a with statement",StrictCatchVariable:"Catch variable may not be eval or arguments in strict mode",StrictVarName:"Variable name may not be eval or arguments in strict mode",StrictParamName:"Parameter name eval or arguments is not allowed in strict mode",StrictParamDupe:"Strict mode function may not have duplicate parameter names",StrictFunctionName:"Function name may not be eval or arguments in strict mode",StrictOctalLiteral:"Octal literals are not allowed in strict mode.",StrictDelete:"Delete of an unqualified identifier in strict mode.",StrictDuplicateProperty:"Duplicate data property in object literal not allowed in strict mode",AccessorDataProperty:"Object literal may not have data and accessor property with the same name",AccessorGetSet:"Object literal may not have multiple get/set accessors with the same name",StrictLHSAssignment:"Assignment to eval or arguments is not allowed in strict mode",StrictLHSPostfix:"Postfix increment/decrement may not have eval or arguments operand in strict mode",StrictLHSPrefix:"Prefix increment/decrement may not have eval or arguments operand in strict mode",StrictReservedWord:"Use of future reserved word in strict mode"},ct={NonAsciiIdentifierStart:RegExp("[ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԧԱ-Ֆՙա-ևא-תװ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࢠࢢ-ࢬऄ-हऽॐक़-ॡॱ-ॷॹ-ॿঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-ళవ-హఽౘౙౠౡಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೞೠೡೱೲഅ-ഌഎ-ഐഒ-ഺഽൎൠൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏼᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛰᜀ-ᜌᜎ-ᜑᜠ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡷᢀ-ᢨᢪᢰ-ᣵᤀ-ᤜᥐ-ᥭᥰ-ᥴᦀ-ᦫᧁ-ᧇᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭋᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᳩ-ᳬᳮ-ᳱᳵᳶᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞⸯ々-〇〡-〩〱-〵〸-〼ぁ-ゖゝ-ゟァ-ヺー-ヿㄅ-ㄭㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿌ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚗꚠ-ꛯꜗ-ꜟꜢ-ꞈꞋ-ꞎꞐ-ꞓꞠ-Ɦꟸ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꪀ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꯀ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼA-Za-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ]"),NonAsciiIdentifierPart:RegExp("[ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮ̀-ʹͶͷͺ-ͽΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁ҃-҇Ҋ-ԧԱ-Ֆՙա-և֑-ׇֽֿׁׂׅׄא-תװ-ײؐ-ؚؠ-٩ٮ-ۓە-ۜ۟-۪ۨ-ۼۿܐ-݊ݍ-ޱ߀-ߵߺࠀ-࠭ࡀ-࡛ࢠࢢ-ࢬࣤ-ࣾऀ-ॣ०-९ॱ-ॷॹ-ॿঁ-ঃঅ-ঌএঐও-নপ-রলশ-হ়-ৄেৈো-ৎৗড়ঢ়য়-ৣ০-ৱਁ-ਃਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹ਼ਾ-ੂੇੈੋ-੍ੑਖ਼-ੜਫ਼੦-ੵઁ-ઃઅ-ઍએ-ઑઓ-નપ-રલળવ-હ઼-ૅે-ૉો-્ૐૠ-ૣ૦-૯ଁ-ଃଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହ଼-ୄେୈୋ-୍ୖୗଡ଼ଢ଼ୟ-ୣ୦-୯ୱஂஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹா-ூெ-ைொ-்ௐௗ௦-௯ఁ-ఃఅ-ఌఎ-ఐఒ-నప-ళవ-హఽ-ౄె-ైొ-్ౕౖౘౙౠ-ౣ౦-౯ಂಃಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹ಼-ೄೆ-ೈೊ-್ೕೖೞೠ-ೣ೦-೯ೱೲംഃഅ-ഌഎ-ഐഒ-ഺഽ-ൄെ-ൈൊ-ൎൗൠ-ൣ൦-൯ൺ-ൿංඃඅ-ඖක-නඳ-රලව-ෆ්ා-ුූෘ-ෟෲෳก-ฺเ-๎๐-๙ກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ູົ-ຽເ-ໄໆ່-ໍ໐-໙ໜ-ໟༀ༘༙༠-༩༹༵༷༾-ཇཉ-ཬཱ-྄྆-ྗྙ-ྼ࿆က-၉ၐ-ႝႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚ፝-፟ᎀ-ᎏᎠ-Ᏼᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛰᜀ-ᜌᜎ-᜔ᜠ-᜴ᝀ-ᝓᝠ-ᝬᝮ-ᝰᝲᝳក-៓ៗៜ៝០-៩᠋-᠍᠐-᠙ᠠ-ᡷᢀ-ᢪᢰ-ᣵᤀ-ᤜᤠ-ᤫᤰ-᤻᥆-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉ᧐-᧙ᨀ-ᨛᨠ-ᩞ᩠-᩿᩼-᪉᪐-᪙ᪧᬀ-ᭋ᭐-᭙᭫-᭳ᮀ-᯳ᰀ-᰷᱀-᱉ᱍ-ᱽ᳐-᳔᳒-ᳶᴀ-ᷦ᷼-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼ‌‍‿⁀⁔ⁱⁿₐ-ₜ⃐-⃥⃜⃡-⃰ℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯ⵿-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞⷠ-ⷿⸯ々-〇〡-〯〱-〵〸-〼ぁ-ゖ゙゚ゝ-ゟァ-ヺー-ヿㄅ-ㄭㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿌ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘫꙀ-꙯ꙴ-꙽ꙿ-ꚗꚟ-꛱ꜗ-ꜟꜢ-ꞈꞋ-ꞎꞐ-ꞓꞠ-Ɦꟸ-ꠧꡀ-ꡳꢀ-꣄꣐-꣙꣠-ꣷꣻ꤀-꤭ꤰ-꥓ꥠ-ꥼꦀ-꧀ꧏ-꧙ꨀ-ꨶꩀ-ꩍ꩐-꩙ꩠ-ꩶꩺꩻꪀ-ꫂꫛ-ꫝꫠ-ꫯꫲ-꫶ꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꯀ-ꯪ꯬꯭꯰-꯹가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻ︀-️︠-︦︳︴﹍-﹏ﹰ-ﹴﹶ-ﻼ0-9A-Z_a-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ]")},"esprima"[0]===void 0&&(t=function(e,r){return ft.slice(e,r).join("")}),e.version="1.0.3",e.parse=it,e.Syntax=function(){var e,r={};"function"==typeof Object.create&&(r=Object.create(null));for(e in ut)ut.hasOwnProperty(e)&&(r[e]=ut[e]);return"function"==typeof Object.freeze&&Object.freeze(r),r}()})})()},{}],19:[function(e,r){"use strict";function t(e,r){for(var t=1,n=e.length,a=e[0],i=e[0],o=1;n>o;++o)if(i=a,a=e[o],r(a,i)){if(o===t){t++;continue}e[t++]=a}return e.length=t,e}function n(e){for(var r=1,t=e.length,n=e[0],a=e[0],i=1;t>i;++i,a=n)if(a=n,n=e[i],n!==a){if(i===r){r++;continue}e[r++]=n}return e.length=r,e}function a(e,r,a){return 0===e.length?[]:r?(a||e.sort(r),t(e,r)):(a||e.sort(),n(e))}r.exports=a},{}],20:[function(e,r){"use strict";function t(e,r,t){var n,a,i=e.length,o=r.arrayArgs.length,s=r.indexArgs.length>0,u=[],l=[],p=0,c=0;for(n=0;i>n;++n)l.push(["i",n,"=0"].join(""));for(a=0;o>a;++a)for(n=0;i>n;++n)c=p,p=e[n],0===n?l.push(["d",a,"s",n,"=t",a,"[",p,"]"].join("")):l.push(["d",a,"s",n,"=(t",a,"[",p,"]-s",c,"*t",a,"[",c,"])"].join(""));for(u.push("var "+l.join(",")),n=i-1;n>=0;--n)p=e[n],u.push(["for(i",n,"=0;i",n,"<s",p,";++i",n,"){"].join(""));for(u.push(t),n=0;i>n;++n){for(c=p,p=e[n],a=0;o>a;++a)u.push(["p",a,"+=d",a,"s",n].join(""));s&&(n>0&&u.push(["index[",c,"]-=s",c].join("")),u.push(["++index[",p,"]"].join(""))),u.push("}")}return u.join("\n")}function n(e,r,n,a){for(var i=r.length,o=n.arrayArgs.length,s=n.blockSize,u=n.indexArgs.length>0,l=[],p=0;o>p;++p)l.push(["var offset",p,"=p",p].join(""));for(var p=e;i>p;++p)l.push(["for(var j"+p+"=SS[",r[p],"]|0;j",p,">0;){"].join("")),l.push(["if(j",p,"<",s,"){"].join("")),l.push(["s",r[p],"=j",p].join("")),l.push(["j",p,"=0"].join("")),l.push(["}else{s",r[p],"=",s].join("")),l.push(["j",p,"-=",s,"}"].join("")),u&&l.push(["index[",r[p],"]=j",p].join(""));for(var p=0;o>p;++p){for(var c=["offset"+p],f=e;i>f;++f)c.push(["j",f,"*t",p,"[",r[f],"]"].join(""));l.push(["p",p,"=(",c.join("+"),")"].join(""))}l.push(t(r,n,a));for(var p=e;i>p;++p)l.push("}");return l.join("\n")}function a(e){for(var r=0,t=e[0].length;t>r;){for(var n=1;e.length>n;++n)if(e[n][r]!==e[0][r])return r;++r}return r}function i(e,r,t){for(var n=e.body,a=[],i=[],o=0;e.args.length>o;++o){var s=e.args[o];if(!(0>=s.count)){var u=RegExp(s.name,"g");switch(r.argTypes[o]){case"array":var l=r.arrayArgs.indexOf(o);1===s.count?"generic"===t[l]?s.lvalue?(a.push(["var l",l,"=a",l,".get(p",l,")"].join("")),n=n.replace(u,"l"+l),i.push(["a",l,".set(p",l,",l",l,")"].join(""))):n=n.replace(u,["a",l,".get(p",l,")"].join("")):n=n.replace(u,["a",l,"[p",l,"]"].join("")):"generic"===t[l]?(a.push(["var l",l,"=a",l,".get(p",l,")"].join("")),n=n.replace(u,"l"+l),s.lvalue&&i.push(["a",l,".set(p",l,",l",l,")"].join(""))):(a.push(["var l",l,"=a",l,"[p",l,"]"].join("")),n=n.replace(u,"l"+l),s.lvalue&&i.push(["a",l,"[p",l,"]=l",l].join("")));break;case"scalar":n=n.replace(u,"Y"+r.scalarArgs.indexOf(o));break;case"index":n=n.replace(u,"index");break;case"shape":n=n.replace(u,"shape")}}}return[a.join("\n"),n,i.join("\n")].join("\n").trim()}function o(e){for(var r=Array(e.length),t=!0,n=0;e.length>n;++n){var a=e[n],i=a.match(/\d+/);i=i?i[0]:"",r[n]=0===a.charAt(0)?"u"+a.charAt(1)+i:a.charAt(0)+i,n>0&&(t=t&&r[n]===r[n-1])}return t?r[0]:r.join("")}function s(e,r){for(var s=0|r[1].length,l=Array(e.arrayArgs.length),p=Array(e.arrayArgs.length),c=["SS"],f=["'use strict'"],d=[],h=0;s>h;++h)d.push(["s",h,"=SS[",h,"]"].join(""));for(var y=0;e.arrayArgs.length>y;++y)c.push("a"+y),c.push("t"+y),c.push("p"+y),p[y]=r[2*y],l[y]=r[2*y+1];for(var y=0;e.scalarArgs.length>y;++y)c.push("Y"+y);if(e.shapeArgs.length>0&&d.push("shape=SS.slice(0)"),e.indexArgs.length>0){for(var g=Array(s),y=0;s>y;++y)g[y]="0";d.push(["index=[",g.join(","),"]"].join(""))}var m=u([].concat(e.pre.thisVars).concat(e.body.thisVars).concat(e.post.thisVars));d=d.concat(m),f.push("var "+d.join(","));for(var y=0;e.arrayArgs.length>y;++y)f.push("p"+y+"|=0");e.pre.body.length>3&&f.push(i(e.pre,e,p));var v=i(e.body,e,p),b=a(l);s>b?f.push(n(b,l[0],e,v)):f.push(t(l[0],e,v)),e.post.body.length>3&&f.push(i(e.post,e,p)),e.debug&&console.log("Generated cwise routine for ",r,":\n\n",f.join("\n"));var x=[e.funcName||"unnamed","_cwise_loop_",l[0].join("s"),"m",b,o(p)].join(""),S=Function(["function ",x,"(",c.join(","),"){",f.join("\n"),"} return ",x].join(""));return S()}var u=e("uniq");r.exports=s},{uniq:22}],21:[function(e,r){"use strict";function t(e,r,t){var n,a,i=e.length,o=r.arrayArgs.length,s=r.indexArgs.length>0,u=[],l=[],p=0,c=0;for(n=0;i>n;++n)l.push(["i",n,"=0"].join(""));for(a=0;o>a;++a)for(n=0;i>n;++n)c=p,p=e[n],0===n?l.push(["d",a,"s",n,"=t",a,"[",p,"]"].join("")):l.push(["d",a,"s",n,"=(t",a,"[",p,"]-s",c,"*t",a,"[",c,"])"].join(""));for(u.push("var "+l.join(",")),n=i-1;n>=0;--n)p=e[n],u.push(["for(i",n,"=0;i",n,"<s",p,";++i",n,"){"].join(""));for(u.push(t),n=0;i>n;++n){for(c=p,p=e[n],a=0;o>a;++a)u.push(["p",a,"+=d",a,"s",n].join(""));s&&(n>0&&u.push(["index[",c,"]-=s",c].join("")),u.push(["++index[",p,"]"].join(""))),u.push("}")}return u.join("\n")}function n(e,r,n,a){for(var i=r.length,o=n.arrayArgs.length,s=n.blockSize,u=n.indexArgs.length>0,l=[],p=0;o>p;++p)l.push(["var offset",p,"=p",p].join(""));for(var p=e;i>p;++p)l.push(["for(var j"+p+"=SS[",r[p],"]|0;j",p,">0;){"].join("")),l.push(["if(j",p,"<",s,"){"].join("")),l.push(["s",r[p],"=j",p].join("")),l.push(["j",p,"=0"].join("")),l.push(["}else{s",r[p],"=",s].join("")),l.push(["j",p,"-=",s,"}"].join("")),u&&l.push(["index[",r[p],"]=j",p].join(""));for(var p=0;o>p;++p){for(var c=["offset"+p],f=e;i>f;++f)c.push(["j",f,"*t",p,"[",r[f],"]"].join(""));l.push(["p",p,"=(",c.join("+"),")"].join(""))}l.push(t(r,n,a));for(var p=e;i>p;++p)l.push("}");return l.join("\n")}function a(e){for(var r=0,t=e[0].length;t>r;){for(var n=1;e.length>n;++n)if(e[n][r]!==e[0][r])return r;++r}return r}function i(e,r,t){for(var n=e.body,a=[],i=[],o=0;e.args.length>o;++o){var s=e.args[o];if(!(0>=s.count)){var u=RegExp(s.name,"g");switch(r.argTypes[o]){case"array":var l=r.arrayArgs.indexOf(o);1===s.count?"generic"===t[l]?s.lvalue?(a.push(["var l",l,"=a",l,".get(p",l,")"].join("")),n=n.replace(u,"l"+l),i.push(["a",l,".set(p",l,",l",l,")"].join(""))):n=n.replace(u,["a",l,".get(p",l,")"].join("")):n=n.replace(u,["a",l,"[p",l,"]"].join("")):"generic"===t[l]?(a.push(["var l",l,"=a",l,".get(p",l,")"].join("")),n=n.replace(u,"l"+l),s.lvalue&&i.push(["a",l,".set(p",l,",l",l,")"].join(""))):(a.push(["var l",l,"=a",l,"[p",l,"]"].join("")),n=n.replace(u,"l"+l),s.lvalue&&i.push(["a",l,"[p",l,"]=l",l].join("")));break;case"scalar":n=n.replace(u,"Y"+r.scalarArgs.indexOf(o));break;case"index":n=n.replace(u,"index");break;case"shape":n=n.replace(u,"shape")}}}return[a.join("\n"),n,i.join("\n")].join("\n").trim()}function o(e){for(var r=Array(e.length),t=!0,n=0;e.length>n;++n){var a=e[n],i=a.match(/\d+/);i=i?i[0]:"",r[n]=0===a.charAt(0)?"u"+a.charAt(1)+i:a.charAt(0)+i,n>0&&(t=t&&r[n]===r[n-1])}return t?r[0]:r.join("")}function s(e,r){for(var s=0|r[1].length,l=Array(e.arrayArgs.length),p=Array(e.arrayArgs.length),c=["SS"],f=["'use strict'"],d=[],h=0;s>h;++h)d.push(["s",h,"=SS[",h,"]"].join(""));for(var y=0;e.arrayArgs.length>y;++y)c.push("a"+y),c.push("t"+y),c.push("p"+y),p[y]=r[2*y],l[y]=r[2*y+1];for(var y=0;e.scalarArgs.length>y;++y)c.push("Y"+y);if(e.shapeArgs.length>0&&d.push("shape=SS.slice(0)"),e.indexArgs.length>0){for(var g=Array(s),y=0;s>y;++y)g[y]="0";d.push(["index=[",g.join(","),"]"].join(""))}var m=u([].concat(e.pre.thisVars).concat(e.body.thisVars).concat(e.post.thisVars));d=d.concat(m),f.push("var "+d.join(","));for(var y=0;e.arrayArgs.length>y;++y)f.push("p"+y+"|=0");e.pre.body.length>3&&f.push(i(e.pre,e,p));var v=i(e.body,e,p),b=a(l);s>b?f.push(n(b,l[0],e,v)):f.push(t(l[0],e,v)),e.post.body.length>3&&f.push(i(e.post,e,p)),e.debug&&console.log("Generated cwise routine for ",r,":\n\n",f.join("\n"));var x=[e.funcName||"unnamed","_cwise_loop_",l[0].join("s"),"m",b,o(p)].join(""),S=Function(["function ",x,"(",c.join(","),"){",f.join("\n"),"} return ",x].join(""));return S()}var u=e("uniq");r.exports=s},{uniq:23}],22:[function(e,r){"use strict";function t(e,r){for(var t=1,n=e.length,a=e[0],i=e[0],o=1;n>o;++o)if(i=a,a=e[o],r(a,i)){if(o===t){t++;continue}e[t++]=a}return e.length=t,e}function n(e){for(var r=1,t=e.length,n=e[0],a=e[0],i=1;t>i;++i,a=n)if(a=n,n=e[i],n!==a){if(i===r){r++;continue}e[r++]=n}return e.length=r,e}function a(e,r,a){return 0===e.length?[]:r?(a||e.sort(r),t(e,r)):(a||e.sort(),n(e))}r.exports=a},{}],23:[function(e,r){"use strict";function t(e,r){for(var t=1,n=e.length,a=e[0],i=e[0],o=1;n>o;++o)if(i=a,a=e[o],r(a,i)){if(o===t){t++;continue}e[t++]=a}return e.length=t,e}function n(e){for(var r=1,t=e.length,n=e[0],a=e[0],i=1;t>i;++i,a=n)if(a=n,n=e[i],n!==a){if(i===r){r++;continue}e[r++]=n}return e.length=r,e}function a(e,r,a){return 0===e.length?[]:r?(a||e.sort(r),t(e,r)):(a||e.sort(),n(e))}r.exports=a},{}]},{},[]),require=function(e,r,t){function n(t,i){if(!r[t]){if(!e[t]){var o="function"==typeof require&&require;if(!i&&o)return o(t,!0);if(a)return a(t,!0);throw Error("Cannot find module '"+t+"'")}var s=r[t]={exports:{}};e[t][0].call(s.exports,function(r){var a=e[t][1][r];return n(a?a:r)},s,s.exports)}return r[t].exports}for(var a="function"==typeof require&&require,i=0;t.length>i;i++)n(t[i]);return n}({"ndarray-fill":[function(e,r){r.exports=e("ZgKnQ/")},{}],"ZgKnQ/":[function(e,r){"use strict";var t=e("cwise")({args:["index","array","scalar"],body:function(e,r,t){r=t.apply(void 0,e)}});r.exports=function(e,r){return t(e,r),e}},{cwise:1}],1:[function(e,r){"use strict";function t(e){for(var r in e)0>i.indexOf(r)&&0>o.indexOf(r)&&console.warn("cwise: Unknown argument '"+r+"' passed to expression compiler");for(var t=0;i.length>t;++t)if(!e[i[t]])throw Error("cwise: Missing argument: "+i[t]);return a({args:e.args,pre:n(e.pre||function(){}),body:n(e.body),post:n(e.post||function(){}),debug:!!e.printCode,funcName:e.funcName||e.body.name||"cwise",blockSize:e.blockSize||64})}var n=e("cwise-parser"),a=e("cwise-compiler"),i=["args","body"],o=["pre","post","printCode","funcName","blockSize"];r.exports=t},{"cwise-parser":2,"cwise-compiler":3}],3:[function(e,r){"use strict";function t(){this.argTypes=[],this.shimArgs=[],this.arrayArgs=[],this.scalarArgs=[],this.indexArgs=[],this.shapeArgs=[],this.funcName="",this.pre=null,this.body=null,this.post=null,this.debug=!1}function n(e){var r=new t;r.pre=e.pre,r.body=e.body,r.post=e.post;var n=e.args.slice(0);r.argTypes=n;for(var i=0;n.length>i;++i)switch(n[i]){case"array":if(r.arrayArgs.push(i),r.shimArgs.push("array"+i),r.pre.args.length>i&&r.pre.args[i].count>0)throw Error("cwise: pre() block may not reference array args");if(r.post.args.length>i&&r.post.args[i].count>0)throw Error("cwise: post() block may not reference array args");break;case"scalar":r.scalarArgs.push(i),r.shimArgs.push("scalar"+i);break;case"index":if(r.indexArgs.push(i),r.pre.args.length>i&&r.pre.args[i].count>0)throw Error("cwise: pre() block may not reference array index");if(r.body.args.length>i&&r.body.args[i].lvalue)throw Error("cwise: body() block may not write to array index");if(r.post.args.length>i&&r.post.args[i].count>0)throw Error("cwise: post() block may not reference array index");break;case"shape":if(r.shapeArgs.push(i),r.pre.args.length>i&&r.pre.args[i].lvalue)throw Error("cwise: pre() block may not write to array shape");if(r.body.args.length>i&&r.body.args[i].lvalue)throw Error("cwise: body() block may not write to array shape");if(r.post.args.length>i&&r.post.args[i].lvalue)throw Error("cwise: post() block may not write to array shape");break;default:throw Error("cwise: Unknown argument type "+n[i])}if(0>=r.arrayArgs.length)throw Error("cwise: No array arguments specified");if(r.pre.args.length>n.length)throw Error("cwise: Too many arguments in pre() block");if(r.body.args.length>n.length)throw Error("cwise: Too many arguments in body() block");if(r.post.args.length>n.length)throw Error("cwise: Too many arguments in post() block");return r.debug=!!e.printCode||!!e.debug,r.funcName=e.funcName||"cwise",r.blockSize=e.blockSize||64,a(r)}var a=e("./lib/thunk.js");r.exports=n},{"./lib/thunk.js":4}],2:[function(e,r){"use strict";function t(e,r,t){this.name=e,this.lvalue=r,this.rvalue=t,this.count=0}function n(e,r,t,n){this.body=e,this.args=r,this.thisVars=t,this.localVars=n}function a(e){if("eval"===e)throw Error("cwise-parser: eval() not allowed");return"undefined"!=typeof window?e in window:"undefined"!=typeof GLOBAL?e in GLOBAL:"undefined"!=typeof self?e in self:!1}function i(e){for(var r=e.body[0].expression.callee.params,t=Array(r.length),n=0;r.length>n;++n)t[n]=r[n].name;return t}function o(e){function r(e){var r=g+e.replace(/\_/g,"__");return E.push(r),r}function o(e){var r="this_"+e.replace(/\_/g,"__");return w.push(r),r}function p(e,r){for(var t=e.range[0],n=e.range[1],a=t+1;n>a;++a)x[a]="";x[t]=r}function c(e){return"'"+e.replace(/\_/g,"\\_").replace(/\'/g,"'")+"'"}function f(e){return x.slice(e.range[0],e.range[1]).join("")}function d(e){return"AssignmentExpression"===e.parent.type&&e.parent.left===e?"="===e.parent.operator?j:j|L:"UpdateExpression"===e.parent.type?j|L:L}for(var h=["(",e,")()"].join(""),y=s.parse(h,{range:!0}),g="_inline_"+l++ +"_",m=i(y),v=Array(m.length),b=0;m.length>b;++b)v[b]=new t([g,"arg",b,"_"].join(""),!1,!1);for(var x=Array(h.length),b=0,S=h.length;S>b;++b)x[b]=h.charAt(b);var E=[],w=[],j=1,L=2;(function k(e,t){if(e.parent=t,"MemberExpression"===e.type)e.computed?(k(e.object,e),k(e.property,e)):"ThisExpression"===e.object.type?p(e,o(e.property.name)):k(e.object,e);else{if("ThisExpression"===e.type)throw Error("cwise-parser: Computed this is not allowed");if("Identifier"===e.type){var n=e.name,i=m.indexOf(n);if(i>=0){var s=v[i],u=d(e);u&j&&(s.lvalue=!0),u&L&&(s.rvalue=!0),++s.count,p(e,s.name)}else a(n)||p(e,r(n))}else if("Literal"===e.type)"string"==typeof e.value&&p(e,c(e.value));else{if("WithStatement"===e.type)throw Error("cwise-parser: with() statements not allowed");for(var l=Object.keys(e),f=0,h=l.length;h>f;++f)if("parent"!==l[f]){var y=e[l[f]];if(y)if(y instanceof Array)for(var g=0;y.length>g;++g)y[g]&&"string"==typeof y[g].type&&k(y[g],e);else"string"==typeof y.type&&k(y,e)}}}})(y.body[0].expression.callee.body,void 0),u(E),u(w);var I=new n(f(y.body[0].expression.callee.body),v,w,E);return I}var s=e("esprima"),u=e("uniq"),l=0;r.exports=o},{esprima:5,uniq:6}],4:[function(e,r){"use strict";function t(e){var r=["'use strict'","var CACHED={}"],t=[],a=e.funcName+"_cwise_thunk";r.push(["return function ",a,"(",e.shimArgs.join(","),"){"].join(""));for(var i=[],o=[],s=[["array",e.arrayArgs[0],".shape"].join("")],u=0;e.arrayArgs.length>u;++u){var l=e.arrayArgs[u];t.push(["t",l,"=array",l,".dtype,","r",l,"=array",l,".order"].join("")),i.push("t"+l),i.push("r"+l),o.push("t"+l),o.push("r"+l+".join()"),s.push("array"+l+".data"),s.push("array"+l+".stride"),s.push("array"+l+".offset|0")}for(var u=0;e.scalarArgs.length>u;++u)s.push("scalar"+e.scalarArgs[u]);t.push(["type=[",o.join(","),"].join()"].join("")),t.push("proc=CACHED[type]"),r.push("var "+t.join(",")),r.push(["if(!proc){","CACHED[type]=proc=compile([",i.join(","),"])}","return proc(",s.join(","),")}"].join("")),e.debug&&console.log("Generated thunk:",r.join("\n"));var p=Function("compile",r.join("\n"));return p(n.bind(void 0,e))}var n=e("./compile.js");r.exports=t},{"./compile.js":7}],6:[function(e,r){"use strict";function t(e,r){for(var t=1,n=e.length,a=e[0],i=e[0],o=1;n>o;++o)if(i=a,a=e[o],r(a,i)){if(o===t){t++;continue}e[t++]=a}return e.length=t,e}function n(e){for(var r=1,t=e.length,n=e[0],a=e[0],i=1;t>i;++i,a=n)if(a=n,n=e[i],n!==a){if(i===r){r++;continue}e[r++]=n}return e.length=r,e}function a(e,r,a){return 0===e.length?[]:r?(a||e.sort(r),t(e,r)):(a||e.sort(),n(e))}r.exports=a},{}],5:[function(e,r,t){(function(){(function(e,r){"use strict";"function"==typeof define&&define.amd?define(["exports"],r):t!==void 0?r(t):r(e.esprima={})})(this,function(e){"use strict";function r(e,r){if(!e)throw Error("ASSERT: "+r)}function t(e,r){return ft.slice(e,r)}function n(e){return"0123456789".indexOf(e)>=0}function a(e){return"0123456789abcdefABCDEF".indexOf(e)>=0}function i(e){return"01234567".indexOf(e)>=0}function o(e){return" "===e||" "===e||" "===e||"\f"===e||" "===e||e.charCodeAt(0)>=5760&&" ᠎              ".indexOf(e)>=0}function s(e){return"\n"===e||"\r"===e||"\u2028"===e||"\u2029"===e}function u(e){return"$"===e||"_"===e||"\\"===e||e>="a"&&"z">=e||e>="A"&&"Z">=e||e.charCodeAt(0)>=128&&ct.NonAsciiIdentifierStart.test(e)}function l(e){return"$"===e||"_"===e||"\\"===e||e>="a"&&"z">=e||e>="A"&&"Z">=e||e>="0"&&"9">=e||e.charCodeAt(0)>=128&&ct.NonAsciiIdentifierPart.test(e)}function p(e){switch(e){case"class":case"enum":case"export":case"extends":case"import":case"super":return!0}return!1}function c(e){switch(e){case"implements":case"interface":case"package":case"private":case"protected":case"public":case"static":case"yield":case"let":return!0}return!1}function f(e){return"eval"===e||"arguments"===e}function d(e){var r=!1;switch(e.length){case 2:r="if"===e||"in"===e||"do"===e;break;case 3:r="var"===e||"for"===e||"new"===e||"try"===e;break;case 4:r="this"===e||"else"===e||"case"===e||"void"===e||"with"===e;break;case 5:r="while"===e||"break"===e||"catch"===e||"throw"===e;break;case 6:r="return"===e||"typeof"===e||"delete"===e||"switch"===e;break;case 7:r="default"===e||"finally"===e;break;case 8:r="function"===e||"continue"===e||"debugger"===e;break;case 10:r="instanceof"===e}if(r)return!0;switch(e){case"const":return!0;case"yield":case"let":return!0}return dt&&c(e)?!0:p(e)}function h(){var e,r,t;for(r=!1,t=!1;mt>ht;)if(e=ft[ht],t)e=ft[ht++],s(e)&&(t=!1,"\r"===e&&"\n"===ft[ht]&&++ht,++yt,gt=ht);else if(r)s(e)?("\r"===e&&"\n"===ft[ht+1]&&++ht,++yt,++ht,gt=ht,ht>=mt&&k({},pt.UnexpectedToken,"ILLEGAL")):(e=ft[ht++],ht>=mt&&k({},pt.UnexpectedToken,"ILLEGAL"),"*"===e&&(e=ft[ht],"/"===e&&(++ht,r=!1)));else if("/"===e)if(e=ft[ht+1],"/"===e)ht+=2,t=!0;else{if("*"!==e)break;ht+=2,r=!0,ht>=mt&&k({},pt.UnexpectedToken,"ILLEGAL")}else if(o(e))++ht;else{if(!s(e))break;++ht,"\r"===e&&"\n"===ft[ht]&&++ht,++yt,gt=ht}}function y(e){var r,t,n,i=0;for(t="u"===e?4:2,r=0;t>r;++r){if(!(mt>ht&&a(ft[ht])))return"";n=ft[ht++],i=16*i+"0123456789abcdef".indexOf(n.toLowerCase())}return String.fromCharCode(i)}function g(){var e,r,t,n;if(e=ft[ht],u(e)){if(r=ht,"\\"===e){if(++ht,"u"!==ft[ht])return;if(++ht,n=ht,e=y("u")){if("\\"===e||!u(e))return;t=e}else ht=n,t="u"}else t=ft[ht++];for(;mt>ht&&(e=ft[ht],l(e));)if("\\"===e){if(++ht,"u"!==ft[ht])return;if(++ht,n=ht,e=y("u")){if("\\"===e||!l(e))return;t+=e}else ht=n,t+="u"}else t+=ft[ht++];return 1===t.length?{type:ot.Identifier,value:t,lineNumber:yt,lineStart:gt,range:[r,ht]}:d(t)?{type:ot.Keyword,value:t,lineNumber:yt,lineStart:gt,range:[r,ht]}:"null"===t?{type:ot.NullLiteral,value:t,lineNumber:yt,lineStart:gt,range:[r,ht]}:"true"===t||"false"===t?{type:ot.BooleanLiteral,value:t,lineNumber:yt,lineStart:gt,range:[r,ht]}:{type:ot.Identifier,value:t,lineNumber:yt,lineStart:gt,range:[r,ht]}}}function m(){var e,r,t,a=ht,i=ft[ht];return";"===i||"{"===i||"}"===i?(++ht,{type:ot.Punctuator,value:i,lineNumber:yt,lineStart:gt,range:[a,ht]}):","===i||"("===i||")"===i?(++ht,{type:ot.Punctuator,value:i,lineNumber:yt,lineStart:gt,range:[a,ht]}):(e=ft[ht+1],"."!==i||n(e)?(r=ft[ht+2],t=ft[ht+3],">"===i&&">"===e&&">"===r&&"="===t?(ht+=4,{type:ot.Punctuator,value:">>>=",lineNumber:yt,lineStart:gt,range:[a,ht]}):"="===i&&"="===e&&"="===r?(ht+=3,{type:ot.Punctuator,value:"===",lineNumber:yt,lineStart:gt,range:[a,ht]}):"!"===i&&"="===e&&"="===r?(ht+=3,{type:ot.Punctuator,value:"!==",lineNumber:yt,lineStart:gt,range:[a,ht]}):">"===i&&">"===e&&">"===r?(ht+=3,{type:ot.Punctuator,value:">>>",lineNumber:yt,lineStart:gt,range:[a,ht]}):"<"===i&&"<"===e&&"="===r?(ht+=3,{type:ot.Punctuator,value:"<<=",lineNumber:yt,lineStart:gt,range:[a,ht]}):">"===i&&">"===e&&"="===r?(ht+=3,{type:ot.Punctuator,value:">>=",lineNumber:yt,lineStart:gt,range:[a,ht]}):"="===e&&"<>=!+-*%&|^/".indexOf(i)>=0?(ht+=2,{type:ot.Punctuator,value:i+e,lineNumber:yt,lineStart:gt,range:[a,ht]}):i===e&&"+-<>&|".indexOf(i)>=0&&"+-<>&|".indexOf(e)>=0?(ht+=2,{type:ot.Punctuator,value:i+e,lineNumber:yt,lineStart:gt,range:[a,ht]}):"[]<>+-*%&|^!~?:=/".indexOf(i)>=0?{type:ot.Punctuator,value:ft[ht++],lineNumber:yt,lineStart:gt,range:[a,ht]}:void 0):{type:ot.Punctuator,value:ft[ht++],lineNumber:yt,lineStart:gt,range:[a,ht]})}function v(){var e,t,o;if(o=ft[ht],r(n(o)||"."===o,"Numeric literal must start with a decimal digit or a decimal point"),t=ht,e="","."!==o){if(e=ft[ht++],o=ft[ht],"0"===e){if("x"===o||"X"===o){for(e+=ft[ht++];mt>ht&&(o=ft[ht],a(o));)e+=ft[ht++];return 2>=e.length&&k({},pt.UnexpectedToken,"ILLEGAL"),mt>ht&&(o=ft[ht],u(o)&&k({},pt.UnexpectedToken,"ILLEGAL")),{type:ot.NumericLiteral,value:parseInt(e,16),lineNumber:yt,lineStart:gt,range:[t,ht]}}if(i(o)){for(e+=ft[ht++];mt>ht&&(o=ft[ht],i(o));)e+=ft[ht++];return mt>ht&&(o=ft[ht],(u(o)||n(o))&&k({},pt.UnexpectedToken,"ILLEGAL")),{type:ot.NumericLiteral,value:parseInt(e,8),octal:!0,lineNumber:yt,lineStart:gt,range:[t,ht]}}n(o)&&k({},pt.UnexpectedToken,"ILLEGAL")}for(;mt>ht&&(o=ft[ht],n(o));)e+=ft[ht++]}if("."===o)for(e+=ft[ht++];mt>ht&&(o=ft[ht],n(o));)e+=ft[ht++];if("e"===o||"E"===o)if(e+=ft[ht++],o=ft[ht],("+"===o||"-"===o)&&(e+=ft[ht++]),o=ft[ht],n(o))for(e+=ft[ht++];mt>ht&&(o=ft[ht],n(o));)e+=ft[ht++];else o="character "+o,ht>=mt&&(o="<end>"),k({},pt.UnexpectedToken,"ILLEGAL");return mt>ht&&(o=ft[ht],u(o)&&k({},pt.UnexpectedToken,"ILLEGAL")),{type:ot.NumericLiteral,value:parseFloat(e),lineNumber:yt,lineStart:gt,range:[t,ht]}}function b(){var e,t,n,a,o,u,l="",p=!1;for(e=ft[ht],r("'"===e||'"'===e,"String literal must starts with a quote"),t=ht,++ht;mt>ht;){if(n=ft[ht++],n===e){e="";break}if("\\"===n)if(n=ft[ht++],s(n))++yt,"\r"===n&&"\n"===ft[ht]&&++ht;else switch(n){case"n":l+="\n";break;case"r":l+="\r";break;case"t":l+=" ";break;case"u":case"x":u=ht,o=y(n),o?l+=o:(ht=u,l+=n);break;case"b":l+="\b";break;case"f":l+="\f";break;case"v":l+=" ";break;default:i(n)?(a="01234567".indexOf(n),0!==a&&(p=!0),mt>ht&&i(ft[ht])&&(p=!0,a=8*a+"01234567".indexOf(ft[ht++]),"0123".indexOf(n)>=0&&mt>ht&&i(ft[ht])&&(a=8*a+"01234567".indexOf(ft[ht++]))),l+=String.fromCharCode(a)):l+=n}else{if(s(n))break;l+=n}}return""!==e&&k({},pt.UnexpectedToken,"ILLEGAL"),{type:ot.StringLiteral,value:l,octal:p,lineNumber:yt,lineStart:gt,range:[t,ht]}}function x(){var e,t,n,a,i,o,u,p=!1,c=!1;for(vt=null,h(),n=ht,t=ft[ht],r("/"===t,"Regular expression literal must start with a slash"),e=ft[ht++];mt>ht;)if(t=ft[ht++],e+=t,"\\"===t)t=ft[ht++],s(t)&&k({},pt.UnterminatedRegExp),e+=t;else if(p)"]"===t&&(p=!1);else{if("/"===t){c=!0;break}"["===t?p=!0:s(t)&&k({},pt.UnterminatedRegExp)}for(c||k({},pt.UnterminatedRegExp),a=e.substr(1,e.length-2),i="";mt>ht&&(t=ft[ht],l(t));)if(++ht,"\\"===t&&mt>ht)if(t=ft[ht],"u"===t)if(++ht,u=ht,t=y("u"))for(i+=t,e+="\\u";ht>u;++u)e+=ft[u];else ht=u,i+="u",e+="\\u";else e+="\\";else i+=t,e+=t;try{o=RegExp(a,i)}catch(f){k({},pt.InvalidRegExp)}return{literal:e,value:o,range:[n,ht]}}function S(e){return e.type===ot.Identifier||e.type===ot.Keyword||e.type===ot.BooleanLiteral||e.type===ot.NullLiteral}function E(){var e,r;return h(),ht>=mt?{type:ot.EOF,lineNumber:yt,lineStart:gt,range:[ht,ht]}:(r=m(),r!==void 0?r:(e=ft[ht],"'"===e||'"'===e?b():"."===e||n(e)?v():(r=g(),r!==void 0?r:(k({},pt.UnexpectedToken,"ILLEGAL"),void 0))))}function w(){var e;return vt?(ht=vt.range[1],yt=vt.lineNumber,gt=vt.lineStart,e=vt,vt=null,e):(vt=null,E())}function j(){var e,r,t;return null!==vt?vt:(e=ht,r=yt,t=gt,vt=E(),ht=e,yt=r,gt=t,vt)}function L(){var e,r,t,n;return e=ht,r=yt,t=gt,h(),n=yt!==r,ht=e,yt=r,gt=t,n}function k(e,r){var t,n=Array.prototype.slice.call(arguments,2),a=r.replace(/%(\d)/g,function(e,r){return n[r]||""});throw"number"==typeof e.lineNumber?(t=Error("Line "+e.lineNumber+": "+a),t.index=e.range[0],t.lineNumber=e.lineNumber,t.column=e.range[0]-gt+1):(t=Error("Line "+yt+": "+a),t.index=ht,t.lineNumber=yt,t.column=ht-gt+1),t}function I(){try{k.apply(null,arguments)}catch(e){if(!xt.errors)throw e;xt.errors.push(e)}}function A(e){if(e.type===ot.EOF&&k(e,pt.UnexpectedEOS),e.type===ot.NumericLiteral&&k(e,pt.UnexpectedNumber),e.type===ot.StringLiteral&&k(e,pt.UnexpectedString),e.type===ot.Identifier&&k(e,pt.UnexpectedIdentifier),e.type===ot.Keyword){if(p(e.value))k(e,pt.UnexpectedReserved);else if(dt&&c(e.value))return I(e,pt.StrictReservedWord),void 0;k(e,pt.UnexpectedToken,e.value)}k(e,pt.UnexpectedToken,e.value)}function N(e){var r=w();(r.type!==ot.Punctuator||r.value!==e)&&A(r)}function O(e){var r=w();(r.type!==ot.Keyword||r.value!==e)&&A(r)}function P(e){var r=j();return r.type===ot.Punctuator&&r.value===e}function C(e){var r=j();return r.type===ot.Keyword&&r.value===e}function D(){var e=j(),r=e.value;return e.type!==ot.Punctuator?!1:"="===r||"*="===r||"/="===r||"%="===r||"+="===r||"-="===r||"<<="===r||">>="===r||">>>="===r||"&="===r||"^="===r||"|="===r}function F(){var e,r;if(";"===ft[ht])return w(),void 0;if(r=yt,h(),yt===r){if(P(";"))return w(),void 0;e=j(),e.type===ot.EOF||P("}")||A(e)}}function R(e){return e.type===ut.Identifier||e.type===ut.MemberExpression}function U(){var e=[];for(N("[");!P("]");)P(",")?(w(),e.push(null)):(e.push(lr()),P("]")||N(","));return N("]"),{type:ut.ArrayExpression,elements:e}}function B(e,r){var t,n;return t=dt,n=Ur(),r&&dt&&f(e[0].name)&&I(r,pt.StrictParamName),dt=t,{type:ut.FunctionExpression,id:null,params:e,defaults:[],body:n,rest:null,generator:!1,expression:!1}}function _(){var e=w();return e.type===ot.StringLiteral||e.type===ot.NumericLiteral?(dt&&e.octal&&I(e,pt.StrictOctalLiteral),Zr(e)):{type:ut.Identifier,name:e.value}}function T(){var e,r,t,n;
return e=j(),e.type===ot.Identifier?(t=_(),"get"!==e.value||P(":")?"set"!==e.value||P(":")?(N(":"),{type:ut.Property,key:t,value:lr(),kind:"init"}):(r=_(),N("("),e=j(),e.type!==ot.Identifier?(N(")"),I(e,pt.UnexpectedToken,e.value),{type:ut.Property,key:r,value:B([]),kind:"set"}):(n=[dr()],N(")"),{type:ut.Property,key:r,value:B(n,e),kind:"set"})):(r=_(),N("("),N(")"),{type:ut.Property,key:r,value:B([]),kind:"get"})):e.type!==ot.EOF&&e.type!==ot.Punctuator?(r=_(),N(":"),{type:ut.Property,key:r,value:lr(),kind:"init"}):(A(e),void 0)}function M(){var e,r,t,n=[],a={},i=String;for(N("{");!P("}");)e=T(),r=e.key.type===ut.Identifier?e.key.name:i(e.key.value),t="init"===e.kind?lt.Data:"get"===e.kind?lt.Get:lt.Set,Object.prototype.hasOwnProperty.call(a,r)?(a[r]===lt.Data?dt&&t===lt.Data?I({},pt.StrictDuplicateProperty):t!==lt.Data&&I({},pt.AccessorDataProperty):t===lt.Data?I({},pt.AccessorDataProperty):a[r]&t&&I({},pt.AccessorGetSet),a[r]|=t):a[r]=t,n.push(e),P("}")||N(",");return N("}"),{type:ut.ObjectExpression,properties:n}}function V(){var e;return N("("),e=pr(),N(")"),e}function G(){var e=j(),r=e.type;if(r===ot.Identifier)return{type:ut.Identifier,name:w().value};if(r===ot.StringLiteral||r===ot.NumericLiteral)return dt&&e.octal&&I(e,pt.StrictOctalLiteral),Zr(w());if(r===ot.Keyword){if(C("this"))return w(),{type:ut.ThisExpression};if(C("function"))return _r()}return r===ot.BooleanLiteral?(w(),e.value="true"===e.value,Zr(e)):r===ot.NullLiteral?(w(),e.value=null,Zr(e)):P("[")?U():P("{")?M():P("(")?V():P("/")||P("/=")?Zr(x()):A(w())}function q(){var e=[];if(N("("),!P(")"))for(;mt>ht&&(e.push(lr()),!P(")"));)N(",");return N(")"),e}function H(){var e=w();return S(e)||A(e),{type:ut.Identifier,name:e.value}}function W(){return N("."),H()}function K(){var e;return N("["),e=pr(),N("]"),e}function z(){var e;return O("new"),e={type:ut.NewExpression,callee:X(),arguments:[]},P("(")&&(e.arguments=q()),e}function Z(){var e;for(e=C("new")?z():G();P(".")||P("[")||P("(");)e=P("(")?{type:ut.CallExpression,callee:e,arguments:q()}:P("[")?{type:ut.MemberExpression,computed:!0,object:e,property:K()}:{type:ut.MemberExpression,computed:!1,object:e,property:W()};return e}function X(){var e;for(e=C("new")?z():G();P(".")||P("[");)e=P("[")?{type:ut.MemberExpression,computed:!0,object:e,property:K()}:{type:ut.MemberExpression,computed:!1,object:e,property:W()};return e}function Y(){var e,r=Z();return e=j(),e.type!==ot.Punctuator?r:(!P("++")&&!P("--")||L()||(dt&&r.type===ut.Identifier&&f(r.name)&&I({},pt.StrictLHSPostfix),R(r)||I({},pt.InvalidLHSInAssignment),r={type:ut.UpdateExpression,operator:w().value,argument:r,prefix:!1}),r)}function J(){var e,r;return e=j(),e.type!==ot.Punctuator&&e.type!==ot.Keyword?Y():P("++")||P("--")?(e=w(),r=J(),dt&&r.type===ut.Identifier&&f(r.name)&&I({},pt.StrictLHSPrefix),R(r)||I({},pt.InvalidLHSInAssignment),r={type:ut.UpdateExpression,operator:e.value,argument:r,prefix:!0}):P("+")||P("-")||P("~")||P("!")?r={type:ut.UnaryExpression,operator:w().value,argument:J(),prefix:!0}:C("delete")||C("void")||C("typeof")?(r={type:ut.UnaryExpression,operator:w().value,argument:J(),prefix:!0},dt&&"delete"===r.operator&&r.argument.type===ut.Identifier&&I({},pt.StrictDelete),r):Y()}function $(){for(var e=J();P("*")||P("/")||P("%");)e={type:ut.BinaryExpression,operator:w().value,left:e,right:J()};return e}function Q(){for(var e=$();P("+")||P("-");)e={type:ut.BinaryExpression,operator:w().value,left:e,right:$()};return e}function er(){for(var e=Q();P("<<")||P(">>")||P(">>>");)e={type:ut.BinaryExpression,operator:w().value,left:e,right:Q()};return e}function rr(){var e,r;for(r=bt.allowIn,bt.allowIn=!0,e=er();P("<")||P(">")||P("<=")||P(">=")||r&&C("in")||C("instanceof");)e={type:ut.BinaryExpression,operator:w().value,left:e,right:er()};return bt.allowIn=r,e}function tr(){for(var e=rr();P("==")||P("!=")||P("===")||P("!==");)e={type:ut.BinaryExpression,operator:w().value,left:e,right:rr()};return e}function nr(){for(var e=tr();P("&");)w(),e={type:ut.BinaryExpression,operator:"&",left:e,right:tr()};return e}function ar(){for(var e=nr();P("^");)w(),e={type:ut.BinaryExpression,operator:"^",left:e,right:nr()};return e}function ir(){for(var e=ar();P("|");)w(),e={type:ut.BinaryExpression,operator:"|",left:e,right:ar()};return e}function or(){for(var e=ir();P("&&");)w(),e={type:ut.LogicalExpression,operator:"&&",left:e,right:ir()};return e}function sr(){for(var e=or();P("||");)w(),e={type:ut.LogicalExpression,operator:"||",left:e,right:or()};return e}function ur(){var e,r,t;return e=sr(),P("?")&&(w(),r=bt.allowIn,bt.allowIn=!0,t=lr(),bt.allowIn=r,N(":"),e={type:ut.ConditionalExpression,test:e,consequent:t,alternate:lr()}),e}function lr(){var e,r;return e=j(),r=ur(),D()&&(R(r)||I({},pt.InvalidLHSInAssignment),dt&&r.type===ut.Identifier&&f(r.name)&&I(e,pt.StrictLHSAssignment),r={type:ut.AssignmentExpression,operator:w().value,left:r,right:lr()}),r}function pr(){var e=lr();if(P(","))for(e={type:ut.SequenceExpression,expressions:[e]};mt>ht&&P(",");)w(),e.expressions.push(lr());return e}function cr(){for(var e,r=[];mt>ht&&!P("}")&&(e=Tr(),void 0!==e);)r.push(e);return r}function fr(){var e;return N("{"),e=cr(),N("}"),{type:ut.BlockStatement,body:e}}function dr(){var e=w();return e.type!==ot.Identifier&&A(e),{type:ut.Identifier,name:e.value}}function hr(e){var r=dr(),t=null;return dt&&f(r.name)&&I({},pt.StrictVarName),"const"===e?(N("="),t=lr()):P("=")&&(w(),t=lr()),{type:ut.VariableDeclarator,id:r,init:t}}function yr(e){var r=[];do{if(r.push(hr(e)),!P(","))break;w()}while(mt>ht);return r}function gr(){var e;return O("var"),e=yr(),F(),{type:ut.VariableDeclaration,declarations:e,kind:"var"}}function mr(e){var r;return O(e),r=yr(e),F(),{type:ut.VariableDeclaration,declarations:r,kind:e}}function vr(){return N(";"),{type:ut.EmptyStatement}}function br(){var e=pr();return F(),{type:ut.ExpressionStatement,expression:e}}function xr(){var e,r,t;return O("if"),N("("),e=pr(),N(")"),r=Rr(),C("else")?(w(),t=Rr()):t=null,{type:ut.IfStatement,test:e,consequent:r,alternate:t}}function Sr(){var e,r,t;return O("do"),t=bt.inIteration,bt.inIteration=!0,e=Rr(),bt.inIteration=t,O("while"),N("("),r=pr(),N(")"),P(";")&&w(),{type:ut.DoWhileStatement,body:e,test:r}}function Er(){var e,r,t;return O("while"),N("("),e=pr(),N(")"),t=bt.inIteration,bt.inIteration=!0,r=Rr(),bt.inIteration=t,{type:ut.WhileStatement,test:e,body:r}}function wr(){var e=w();return{type:ut.VariableDeclaration,declarations:yr(),kind:e.value}}function jr(){var e,r,t,n,a,i,o;return e=r=t=null,O("for"),N("("),P(";")?w():(C("var")||C("let")?(bt.allowIn=!1,e=wr(),bt.allowIn=!0,1===e.declarations.length&&C("in")&&(w(),n=e,a=pr(),e=null)):(bt.allowIn=!1,e=pr(),bt.allowIn=!0,C("in")&&(R(e)||I({},pt.InvalidLHSInForIn),w(),n=e,a=pr(),e=null)),n===void 0&&N(";")),n===void 0&&(P(";")||(r=pr()),N(";"),P(")")||(t=pr())),N(")"),o=bt.inIteration,bt.inIteration=!0,i=Rr(),bt.inIteration=o,n===void 0?{type:ut.ForStatement,init:e,test:r,update:t,body:i}:{type:ut.ForInStatement,left:n,right:a,body:i,each:!1}}function Lr(){var e,r=null;return O("continue"),";"===ft[ht]?(w(),bt.inIteration||k({},pt.IllegalContinue),{type:ut.ContinueStatement,label:null}):L()?(bt.inIteration||k({},pt.IllegalContinue),{type:ut.ContinueStatement,label:null}):(e=j(),e.type===ot.Identifier&&(r=dr(),Object.prototype.hasOwnProperty.call(bt.labelSet,r.name)||k({},pt.UnknownLabel,r.name)),F(),null!==r||bt.inIteration||k({},pt.IllegalContinue),{type:ut.ContinueStatement,label:r})}function kr(){var e,r=null;return O("break"),";"===ft[ht]?(w(),bt.inIteration||bt.inSwitch||k({},pt.IllegalBreak),{type:ut.BreakStatement,label:null}):L()?(bt.inIteration||bt.inSwitch||k({},pt.IllegalBreak),{type:ut.BreakStatement,label:null}):(e=j(),e.type===ot.Identifier&&(r=dr(),Object.prototype.hasOwnProperty.call(bt.labelSet,r.name)||k({},pt.UnknownLabel,r.name)),F(),null!==r||bt.inIteration||bt.inSwitch||k({},pt.IllegalBreak),{type:ut.BreakStatement,label:r})}function Ir(){var e,r=null;return O("return"),bt.inFunctionBody||I({},pt.IllegalReturn)," "===ft[ht]&&u(ft[ht+1])?(r=pr(),F(),{type:ut.ReturnStatement,argument:r}):L()?{type:ut.ReturnStatement,argument:null}:(P(";")||(e=j(),P("}")||e.type===ot.EOF||(r=pr())),F(),{type:ut.ReturnStatement,argument:r})}function Ar(){var e,r;return dt&&I({},pt.StrictModeWith),O("with"),N("("),e=pr(),N(")"),r=Rr(),{type:ut.WithStatement,object:e,body:r}}function Nr(){var e,r,t=[];for(C("default")?(w(),e=null):(O("case"),e=pr()),N(":");mt>ht&&!(P("}")||C("default")||C("case"))&&(r=Rr(),void 0!==r);)t.push(r);return{type:ut.SwitchCase,test:e,consequent:t}}function Or(){var e,r,t,n,a;if(O("switch"),N("("),e=pr(),N(")"),N("{"),r=[],P("}"))return w(),{type:ut.SwitchStatement,discriminant:e,cases:r};for(n=bt.inSwitch,bt.inSwitch=!0,a=!1;mt>ht&&!P("}");)t=Nr(),null===t.test&&(a&&k({},pt.MultipleDefaultsInSwitch),a=!0),r.push(t);return bt.inSwitch=n,N("}"),{type:ut.SwitchStatement,discriminant:e,cases:r}}function Pr(){var e;return O("throw"),L()&&k({},pt.NewlineAfterThrow),e=pr(),F(),{type:ut.ThrowStatement,argument:e}}function Cr(){var e;return O("catch"),N("("),P(")")&&A(j()),e=dr(),dt&&f(e.name)&&I({},pt.StrictCatchVariable),N(")"),{type:ut.CatchClause,param:e,body:fr()}}function Dr(){var e,r=[],t=null;return O("try"),e=fr(),C("catch")&&r.push(Cr()),C("finally")&&(w(),t=fr()),0!==r.length||t||k({},pt.NoCatchOrFinally),{type:ut.TryStatement,block:e,guardedHandlers:[],handlers:r,finalizer:t}}function Fr(){return O("debugger"),F(),{type:ut.DebuggerStatement}}function Rr(){var e,r,t=j();if(t.type===ot.EOF&&A(t),t.type===ot.Punctuator)switch(t.value){case";":return vr();case"{":return fr();case"(":return br();default:}if(t.type===ot.Keyword)switch(t.value){case"break":return kr();case"continue":return Lr();case"debugger":return Fr();case"do":return Sr();case"for":return jr();case"function":return Br();case"if":return xr();case"return":return Ir();case"switch":return Or();case"throw":return Pr();case"try":return Dr();case"var":return gr();case"while":return Er();case"with":return Ar();default:}return e=pr(),e.type===ut.Identifier&&P(":")?(w(),Object.prototype.hasOwnProperty.call(bt.labelSet,e.name)&&k({},pt.Redeclaration,"Label",e.name),bt.labelSet[e.name]=!0,r=Rr(),delete bt.labelSet[e.name],{type:ut.LabeledStatement,label:e,body:r}):(F(),{type:ut.ExpressionStatement,expression:e})}function Ur(){var e,r,n,a,i,o,s,u,l=[];for(N("{");mt>ht&&(r=j(),r.type===ot.StringLiteral)&&(e=Tr(),l.push(e),e.expression.type===ut.Literal);)n=t(r.range[0]+1,r.range[1]-1),"use strict"===n?(dt=!0,a&&I(a,pt.StrictOctalLiteral)):!a&&r.octal&&(a=r);for(i=bt.labelSet,o=bt.inIteration,s=bt.inSwitch,u=bt.inFunctionBody,bt.labelSet={},bt.inIteration=!1,bt.inSwitch=!1,bt.inFunctionBody=!0;mt>ht&&!P("}")&&(e=Tr(),void 0!==e);)l.push(e);return N("}"),bt.labelSet=i,bt.inIteration=o,bt.inSwitch=s,bt.inFunctionBody=u,{type:ut.BlockStatement,body:l}}function Br(){var e,r,t,n,a,i,o,s,u,l=[];if(O("function"),n=j(),e=dr(),dt?f(n.value)&&I(n,pt.StrictFunctionName):f(n.value)?(i=n,o=pt.StrictFunctionName):c(n.value)&&(i=n,o=pt.StrictReservedWord),N("("),!P(")"))for(u={};mt>ht&&(n=j(),r=dr(),dt?(f(n.value)&&(a=n,o=pt.StrictParamName),Object.prototype.hasOwnProperty.call(u,n.value)&&(a=n,o=pt.StrictParamDupe)):i||(f(n.value)?(i=n,o=pt.StrictParamName):c(n.value)?(i=n,o=pt.StrictReservedWord):Object.prototype.hasOwnProperty.call(u,n.value)&&(i=n,o=pt.StrictParamDupe)),l.push(r),u[r.name]=!0,!P(")"));)N(",");return N(")"),s=dt,t=Ur(),dt&&i&&k(i,o),dt&&a&&I(a,o),dt=s,{type:ut.FunctionDeclaration,id:e,params:l,defaults:[],body:t,rest:null,generator:!1,expression:!1}}function _r(){var e,r,t,n,a,i,o,s,u=null,l=[];if(O("function"),P("(")||(e=j(),u=dr(),dt?f(e.value)&&I(e,pt.StrictFunctionName):f(e.value)?(t=e,n=pt.StrictFunctionName):c(e.value)&&(t=e,n=pt.StrictReservedWord)),N("("),!P(")"))for(s={};mt>ht&&(e=j(),a=dr(),dt?(f(e.value)&&(r=e,n=pt.StrictParamName),Object.prototype.hasOwnProperty.call(s,e.value)&&(r=e,n=pt.StrictParamDupe)):t||(f(e.value)?(t=e,n=pt.StrictParamName):c(e.value)?(t=e,n=pt.StrictReservedWord):Object.prototype.hasOwnProperty.call(s,e.value)&&(t=e,n=pt.StrictParamDupe)),l.push(a),s[a.name]=!0,!P(")"));)N(",");return N(")"),o=dt,i=Ur(),dt&&t&&k(t,n),dt&&r&&I(r,n),dt=o,{type:ut.FunctionExpression,id:u,params:l,defaults:[],body:i,rest:null,generator:!1,expression:!1}}function Tr(){var e=j();if(e.type===ot.Keyword)switch(e.value){case"const":case"let":return mr(e.value);case"function":return Br();default:return Rr()}return e.type!==ot.EOF?Rr():void 0}function Mr(){for(var e,r,n,a,i=[];mt>ht&&(r=j(),r.type===ot.StringLiteral)&&(e=Tr(),i.push(e),e.expression.type===ut.Literal);)n=t(r.range[0]+1,r.range[1]-1),"use strict"===n?(dt=!0,a&&I(a,pt.StrictOctalLiteral)):!a&&r.octal&&(a=r);for(;mt>ht&&(e=Tr(),void 0!==e);)i.push(e);return i}function Vr(){var e;return dt=!1,e={type:ut.Program,body:Mr()}}function Gr(e,t,n,a,i){r("number"==typeof n,"Comment must have valid position"),xt.comments.length>0&&xt.comments[xt.comments.length-1].range[1]>n||xt.comments.push({type:e,value:t,range:[n,a],loc:i})}function qr(){var e,r,t,n,a,i;for(e="",a=!1,i=!1;mt>ht;)if(r=ft[ht],i)r=ft[ht++],s(r)?(t.end={line:yt,column:ht-gt-1},i=!1,Gr("Line",e,n,ht-1,t),"\r"===r&&"\n"===ft[ht]&&++ht,++yt,gt=ht,e=""):ht>=mt?(i=!1,e+=r,t.end={line:yt,column:mt-gt},Gr("Line",e,n,mt,t)):e+=r;else if(a)s(r)?("\r"===r&&"\n"===ft[ht+1]?(++ht,e+="\r\n"):e+=r,++yt,++ht,gt=ht,ht>=mt&&k({},pt.UnexpectedToken,"ILLEGAL")):(r=ft[ht++],ht>=mt&&k({},pt.UnexpectedToken,"ILLEGAL"),e+=r,"*"===r&&(r=ft[ht],"/"===r&&(e=e.substr(0,e.length-1),a=!1,++ht,t.end={line:yt,column:ht-gt},Gr("Block",e,n,ht,t),e="")));else if("/"===r)if(r=ft[ht+1],"/"===r)t={start:{line:yt,column:ht-gt}},n=ht,ht+=2,i=!0,ht>=mt&&(t.end={line:yt,column:ht-gt},i=!1,Gr("Line",e,n,ht,t));else{if("*"!==r)break;n=ht,ht+=2,a=!0,t={start:{line:yt,column:ht-gt-2}},ht>=mt&&k({},pt.UnexpectedToken,"ILLEGAL")}else if(o(r))++ht;else{if(!s(r))break;++ht,"\r"===r&&"\n"===ft[ht]&&++ht,++yt,gt=ht}}function Hr(){var e,r,t,n=[];for(e=0;xt.comments.length>e;++e)r=xt.comments[e],t={type:r.type,value:r.value},xt.range&&(t.range=r.range),xt.loc&&(t.loc=r.loc),n.push(t);xt.comments=n}function Wr(){var e,r,n,a,i;return h(),e=ht,r={start:{line:yt,column:ht-gt}},n=xt.advance(),r.end={line:yt,column:ht-gt},n.type!==ot.EOF&&(a=[n.range[0],n.range[1]],i=t(n.range[0],n.range[1]),xt.tokens.push({type:st[n.type],value:i,range:a,loc:r})),n}function Kr(){var e,r,t,n;return h(),e=ht,r={start:{line:yt,column:ht-gt}},t=xt.scanRegExp(),r.end={line:yt,column:ht-gt},xt.tokens.length>0&&(n=xt.tokens[xt.tokens.length-1],n.range[0]===e&&"Punctuator"===n.type&&("/"===n.value||"/="===n.value)&&xt.tokens.pop()),xt.tokens.push({type:"RegularExpression",value:t.literal,range:[e,ht],loc:r}),t}function zr(){var e,r,t,n=[];for(e=0;xt.tokens.length>e;++e)r=xt.tokens[e],t={type:r.type,value:r.value},xt.range&&(t.range=r.range),xt.loc&&(t.loc=r.loc),n.push(t);xt.tokens=n}function Zr(e){return{type:ut.Literal,value:e.value}}function Xr(e){return{type:ut.Literal,value:e.value,raw:t(e.range[0],e.range[1])}}function Yr(){var e={};return e.range=[ht,ht],e.loc={start:{line:yt,column:ht-gt},end:{line:yt,column:ht-gt}},e.end=function(){this.range[1]=ht,this.loc.end.line=yt,this.loc.end.column=ht-gt},e.applyGroup=function(e){xt.range&&(e.groupRange=[this.range[0],this.range[1]]),xt.loc&&(e.groupLoc={start:{line:this.loc.start.line,column:this.loc.start.column},end:{line:this.loc.end.line,column:this.loc.end.column}})},e.apply=function(e){xt.range&&(e.range=[this.range[0],this.range[1]]),xt.loc&&(e.loc={start:{line:this.loc.start.line,column:this.loc.start.column},end:{line:this.loc.end.line,column:this.loc.end.column}})},e}function Jr(){var e,r;return h(),e=Yr(),N("("),r=pr(),N(")"),e.end(),e.applyGroup(r),r}function $r(){var e,r;for(h(),e=Yr(),r=C("new")?z():G();P(".")||P("[");)P("[")?(r={type:ut.MemberExpression,computed:!0,object:r,property:K()},e.end(),e.apply(r)):(r={type:ut.MemberExpression,computed:!1,object:r,property:W()},e.end(),e.apply(r));return r}function Qr(){var e,r;for(h(),e=Yr(),r=C("new")?z():G();P(".")||P("[")||P("(");)P("(")?(r={type:ut.CallExpression,callee:r,arguments:q()},e.end(),e.apply(r)):P("[")?(r={type:ut.MemberExpression,computed:!0,object:r,property:K()},e.end(),e.apply(r)):(r={type:ut.MemberExpression,computed:!1,object:r,property:W()},e.end(),e.apply(r));return r}function et(e){var r,t,n;r="[object Array]"===Object.prototype.toString.apply(e)?[]:{};for(t in e)e.hasOwnProperty(t)&&"groupRange"!==t&&"groupLoc"!==t&&(n=e[t],r[t]=null===n||"object"!=typeof n||n instanceof RegExp?n:et(n));return r}function rt(e,r){return function(t){function n(e){return e.type===ut.LogicalExpression||e.type===ut.BinaryExpression}function a(t){var i,o;n(t.left)&&a(t.left),n(t.right)&&a(t.right),e&&(t.left.groupRange||t.right.groupRange?(i=t.left.groupRange?t.left.groupRange[0]:t.left.range[0],o=t.right.groupRange?t.right.groupRange[1]:t.right.range[1],t.range=[i,o]):t.range===void 0&&(i=t.left.range[0],o=t.right.range[1],t.range=[i,o])),r&&(t.left.groupLoc||t.right.groupLoc?(i=t.left.groupLoc?t.left.groupLoc.start:t.left.loc.start,o=t.right.groupLoc?t.right.groupLoc.end:t.right.loc.end,t.loc={start:i,end:o}):t.loc===void 0&&(t.loc={start:t.left.loc.start,end:t.right.loc.end}))}return function(){var i,o;return h(),i=Yr(),o=t.apply(null,arguments),i.end(),e&&o.range===void 0&&i.apply(o),r&&o.loc===void 0&&i.apply(o),n(o)&&a(o),o}}}function tt(){var e;xt.comments&&(xt.skipComment=h,h=qr),xt.raw&&(xt.createLiteral=Zr,Zr=Xr),(xt.range||xt.loc)&&(xt.parseGroupExpression=V,xt.parseLeftHandSideExpression=X,xt.parseLeftHandSideExpressionAllowCall=Z,V=Jr,X=$r,Z=Qr,e=rt(xt.range,xt.loc),xt.parseAdditiveExpression=Q,xt.parseAssignmentExpression=lr,xt.parseBitwiseANDExpression=nr,xt.parseBitwiseORExpression=ir,xt.parseBitwiseXORExpression=ar,xt.parseBlock=fr,xt.parseFunctionSourceElements=Ur,xt.parseCatchClause=Cr,xt.parseComputedMember=K,xt.parseConditionalExpression=ur,xt.parseConstLetDeclaration=mr,xt.parseEqualityExpression=tr,xt.parseExpression=pr,xt.parseForVariableDeclaration=wr,xt.parseFunctionDeclaration=Br,xt.parseFunctionExpression=_r,xt.parseLogicalANDExpression=or,xt.parseLogicalORExpression=sr,xt.parseMultiplicativeExpression=$,xt.parseNewExpression=z,xt.parseNonComputedProperty=H,xt.parseObjectProperty=T,xt.parseObjectPropertyKey=_,xt.parsePostfixExpression=Y,xt.parsePrimaryExpression=G,xt.parseProgram=Vr,xt.parsePropertyFunction=B,xt.parseRelationalExpression=rr,xt.parseStatement=Rr,xt.parseShiftExpression=er,xt.parseSwitchCase=Nr,xt.parseUnaryExpression=J,xt.parseVariableDeclaration=hr,xt.parseVariableIdentifier=dr,Q=e(xt.parseAdditiveExpression),lr=e(xt.parseAssignmentExpression),nr=e(xt.parseBitwiseANDExpression),ir=e(xt.parseBitwiseORExpression),ar=e(xt.parseBitwiseXORExpression),fr=e(xt.parseBlock),Ur=e(xt.parseFunctionSourceElements),Cr=e(xt.parseCatchClause),K=e(xt.parseComputedMember),ur=e(xt.parseConditionalExpression),mr=e(xt.parseConstLetDeclaration),tr=e(xt.parseEqualityExpression),pr=e(xt.parseExpression),wr=e(xt.parseForVariableDeclaration),Br=e(xt.parseFunctionDeclaration),_r=e(xt.parseFunctionExpression),X=e(X),or=e(xt.parseLogicalANDExpression),sr=e(xt.parseLogicalORExpression),$=e(xt.parseMultiplicativeExpression),z=e(xt.parseNewExpression),H=e(xt.parseNonComputedProperty),T=e(xt.parseObjectProperty),_=e(xt.parseObjectPropertyKey),Y=e(xt.parsePostfixExpression),G=e(xt.parsePrimaryExpression),Vr=e(xt.parseProgram),B=e(xt.parsePropertyFunction),rr=e(xt.parseRelationalExpression),Rr=e(xt.parseStatement),er=e(xt.parseShiftExpression),Nr=e(xt.parseSwitchCase),J=e(xt.parseUnaryExpression),hr=e(xt.parseVariableDeclaration),dr=e(xt.parseVariableIdentifier)),xt.tokens!==void 0&&(xt.advance=E,xt.scanRegExp=x,E=Wr,x=Kr)}function nt(){"function"==typeof xt.skipComment&&(h=xt.skipComment),xt.raw&&(Zr=xt.createLiteral),(xt.range||xt.loc)&&(Q=xt.parseAdditiveExpression,lr=xt.parseAssignmentExpression,nr=xt.parseBitwiseANDExpression,ir=xt.parseBitwiseORExpression,ar=xt.parseBitwiseXORExpression,fr=xt.parseBlock,Ur=xt.parseFunctionSourceElements,Cr=xt.parseCatchClause,K=xt.parseComputedMember,ur=xt.parseConditionalExpression,mr=xt.parseConstLetDeclaration,tr=xt.parseEqualityExpression,pr=xt.parseExpression,wr=xt.parseForVariableDeclaration,Br=xt.parseFunctionDeclaration,_r=xt.parseFunctionExpression,V=xt.parseGroupExpression,X=xt.parseLeftHandSideExpression,Z=xt.parseLeftHandSideExpressionAllowCall,or=xt.parseLogicalANDExpression,sr=xt.parseLogicalORExpression,$=xt.parseMultiplicativeExpression,z=xt.parseNewExpression,H=xt.parseNonComputedProperty,T=xt.parseObjectProperty,_=xt.parseObjectPropertyKey,G=xt.parsePrimaryExpression,Y=xt.parsePostfixExpression,Vr=xt.parseProgram,B=xt.parsePropertyFunction,rr=xt.parseRelationalExpression,Rr=xt.parseStatement,er=xt.parseShiftExpression,Nr=xt.parseSwitchCase,J=xt.parseUnaryExpression,hr=xt.parseVariableDeclaration,dr=xt.parseVariableIdentifier),"function"==typeof xt.scanRegExp&&(E=xt.advance,x=xt.scanRegExp)}function at(e){var r,t=e.length,n=[];for(r=0;t>r;++r)n[r]=e.charAt(r);return n}function it(e,r){var t,n;n=String,"string"==typeof e||e instanceof String||(e=n(e)),ft=e,ht=0,yt=ft.length>0?1:0,gt=0,mt=ft.length,vt=null,bt={allowIn:!0,labelSet:{},inFunctionBody:!1,inIteration:!1,inSwitch:!1},xt={},r!==void 0&&(xt.range="boolean"==typeof r.range&&r.range,xt.loc="boolean"==typeof r.loc&&r.loc,xt.raw="boolean"==typeof r.raw&&r.raw,"boolean"==typeof r.tokens&&r.tokens&&(xt.tokens=[]),"boolean"==typeof r.comment&&r.comment&&(xt.comments=[]),"boolean"==typeof r.tolerant&&r.tolerant&&(xt.errors=[])),mt>0&&ft[0]===void 0&&(e instanceof String&&(ft=e.valueOf()),ft[0]===void 0&&(ft=at(e))),tt();try{t=Vr(),xt.comments!==void 0&&(Hr(),t.comments=xt.comments),xt.tokens!==void 0&&(zr(),t.tokens=xt.tokens),xt.errors!==void 0&&(t.errors=xt.errors),(xt.range||xt.loc)&&(t.body=et(t.body))}catch(a){throw a}finally{nt(),xt={}}return t}var ot,st,ut,lt,pt,ct,ft,dt,ht,yt,gt,mt,vt,bt,xt;ot={BooleanLiteral:1,EOF:2,Identifier:3,Keyword:4,NullLiteral:5,NumericLiteral:6,Punctuator:7,StringLiteral:8},st={},st[ot.BooleanLiteral]="Boolean",st[ot.EOF]="<end>",st[ot.Identifier]="Identifier",st[ot.Keyword]="Keyword",st[ot.NullLiteral]="Null",st[ot.NumericLiteral]="Numeric",st[ot.Punctuator]="Punctuator",st[ot.StringLiteral]="String",ut={AssignmentExpression:"AssignmentExpression",ArrayExpression:"ArrayExpression",BlockStatement:"BlockStatement",BinaryExpression:"BinaryExpression",BreakStatement:"BreakStatement",CallExpression:"CallExpression",CatchClause:"CatchClause",ConditionalExpression:"ConditionalExpression",ContinueStatement:"ContinueStatement",DoWhileStatement:"DoWhileStatement",DebuggerStatement:"DebuggerStatement",EmptyStatement:"EmptyStatement",ExpressionStatement:"ExpressionStatement",ForStatement:"ForStatement",ForInStatement:"ForInStatement",FunctionDeclaration:"FunctionDeclaration",FunctionExpression:"FunctionExpression",Identifier:"Identifier",IfStatement:"IfStatement",Literal:"Literal",LabeledStatement:"LabeledStatement",LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",NewExpression:"NewExpression",ObjectExpression:"ObjectExpression",Program:"Program",Property:"Property",ReturnStatement:"ReturnStatement",SequenceExpression:"SequenceExpression",SwitchStatement:"SwitchStatement",SwitchCase:"SwitchCase",ThisExpression:"ThisExpression",ThrowStatement:"ThrowStatement",TryStatement:"TryStatement",UnaryExpression:"UnaryExpression",UpdateExpression:"UpdateExpression",VariableDeclaration:"VariableDeclaration",VariableDeclarator:"VariableDeclarator",WhileStatement:"WhileStatement",WithStatement:"WithStatement"},lt={Data:1,Get:2,Set:4},pt={UnexpectedToken:"Unexpected token %0",UnexpectedNumber:"Unexpected number",UnexpectedString:"Unexpected string",UnexpectedIdentifier:"Unexpected identifier",UnexpectedReserved:"Unexpected reserved word",UnexpectedEOS:"Unexpected end of input",NewlineAfterThrow:"Illegal newline after throw",InvalidRegExp:"Invalid regular expression",UnterminatedRegExp:"Invalid regular expression: missing /",InvalidLHSInAssignment:"Invalid left-hand side in assignment",InvalidLHSInForIn:"Invalid left-hand side in for-in",MultipleDefaultsInSwitch:"More than one default clause in switch statement",NoCatchOrFinally:"Missing catch or finally after try",UnknownLabel:"Undefined label '%0'",Redeclaration:"%0 '%1' has already been declared",IllegalContinue:"Illegal continue statement",IllegalBreak:"Illegal break statement",IllegalReturn:"Illegal return statement",StrictModeWith:"Strict mode code may not include a with statement",StrictCatchVariable:"Catch variable may not be eval or arguments in strict mode",StrictVarName:"Variable name may not be eval or arguments in strict mode",StrictParamName:"Parameter name eval or arguments is not allowed in strict mode",StrictParamDupe:"Strict mode function may not have duplicate parameter names",StrictFunctionName:"Function name may not be eval or arguments in strict mode",StrictOctalLiteral:"Octal literals are not allowed in strict mode.",StrictDelete:"Delete of an unqualified identifier in strict mode.",StrictDuplicateProperty:"Duplicate data property in object literal not allowed in strict mode",AccessorDataProperty:"Object literal may not have data and accessor property with the same name",AccessorGetSet:"Object literal may not have multiple get/set accessors with the same name",StrictLHSAssignment:"Assignment to eval or arguments is not allowed in strict mode",StrictLHSPostfix:"Postfix increment/decrement may not have eval or arguments operand in strict mode",StrictLHSPrefix:"Prefix increment/decrement may not have eval or arguments operand in strict mode",StrictReservedWord:"Use of future reserved word in strict mode"},ct={NonAsciiIdentifierStart:RegExp("[ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԧԱ-Ֆՙա-ևא-תװ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࢠࢢ-ࢬऄ-हऽॐक़-ॡॱ-ॷॹ-ॿঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-ళవ-హఽౘౙౠౡಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೞೠೡೱೲഅ-ഌഎ-ഐഒ-ഺഽൎൠൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏼᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛰᜀ-ᜌᜎ-ᜑᜠ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡷᢀ-ᢨᢪᢰ-ᣵᤀ-ᤜᥐ-ᥭᥰ-ᥴᦀ-ᦫᧁ-ᧇᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭋᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᳩ-ᳬᳮ-ᳱᳵᳶᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞⸯ々-〇〡-〩〱-〵〸-〼ぁ-ゖゝ-ゟァ-ヺー-ヿㄅ-ㄭㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿌ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚗꚠ-ꛯꜗ-ꜟꜢ-ꞈꞋ-ꞎꞐ-ꞓꞠ-Ɦꟸ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꪀ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꯀ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼA-Za-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ]"),NonAsciiIdentifierPart:RegExp("[ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮ̀-ʹͶͷͺ-ͽΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁ҃-҇Ҋ-ԧԱ-Ֆՙա-և֑-ׇֽֿׁׂׅׄא-תװ-ײؐ-ؚؠ-٩ٮ-ۓە-ۜ۟-۪ۨ-ۼۿܐ-݊ݍ-ޱ߀-ߵߺࠀ-࠭ࡀ-࡛ࢠࢢ-ࢬࣤ-ࣾऀ-ॣ०-९ॱ-ॷॹ-ॿঁ-ঃঅ-ঌএঐও-নপ-রলশ-হ়-ৄেৈো-ৎৗড়ঢ়য়-ৣ০-ৱਁ-ਃਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹ਼ਾ-ੂੇੈੋ-੍ੑਖ਼-ੜਫ਼੦-ੵઁ-ઃઅ-ઍએ-ઑઓ-નપ-રલળવ-હ઼-ૅે-ૉો-્ૐૠ-ૣ૦-૯ଁ-ଃଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହ଼-ୄେୈୋ-୍ୖୗଡ଼ଢ଼ୟ-ୣ୦-୯ୱஂஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹா-ூெ-ைொ-்ௐௗ௦-௯ఁ-ఃఅ-ఌఎ-ఐఒ-నప-ళవ-హఽ-ౄె-ైొ-్ౕౖౘౙౠ-ౣ౦-౯ಂಃಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹ಼-ೄೆ-ೈೊ-್ೕೖೞೠ-ೣ೦-೯ೱೲംഃഅ-ഌഎ-ഐഒ-ഺഽ-ൄെ-ൈൊ-ൎൗൠ-ൣ൦-൯ൺ-ൿංඃඅ-ඖක-නඳ-රලව-ෆ්ා-ුූෘ-ෟෲෳก-ฺเ-๎๐-๙ກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ູົ-ຽເ-ໄໆ່-ໍ໐-໙ໜ-ໟༀ༘༙༠-༩༹༵༷༾-ཇཉ-ཬཱ-྄྆-ྗྙ-ྼ࿆က-၉ၐ-ႝႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚ፝-፟ᎀ-ᎏᎠ-Ᏼᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛰᜀ-ᜌᜎ-᜔ᜠ-᜴ᝀ-ᝓᝠ-ᝬᝮ-ᝰᝲᝳក-៓ៗៜ៝០-៩᠋-᠍᠐-᠙ᠠ-ᡷᢀ-ᢪᢰ-ᣵᤀ-ᤜᤠ-ᤫᤰ-᤻᥆-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉ᧐-᧙ᨀ-ᨛᨠ-ᩞ᩠-᩿᩼-᪉᪐-᪙ᪧᬀ-ᭋ᭐-᭙᭫-᭳ᮀ-᯳ᰀ-᰷᱀-᱉ᱍ-ᱽ᳐-᳔᳒-ᳶᴀ-ᷦ᷼-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼ‌‍‿⁀⁔ⁱⁿₐ-ₜ⃐-⃥⃜⃡-⃰ℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯ⵿-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞⷠ-ⷿⸯ々-〇〡-〯〱-〵〸-〼ぁ-ゖ゙゚ゝ-ゟァ-ヺー-ヿㄅ-ㄭㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿌ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘫꙀ-꙯ꙴ-꙽ꙿ-ꚗꚟ-꛱ꜗ-ꜟꜢ-ꞈꞋ-ꞎꞐ-ꞓꞠ-Ɦꟸ-ꠧꡀ-ꡳꢀ-꣄꣐-꣙꣠-ꣷꣻ꤀-꤭ꤰ-꥓ꥠ-ꥼꦀ-꧀ꧏ-꧙ꨀ-ꨶꩀ-ꩍ꩐-꩙ꩠ-ꩶꩺꩻꪀ-ꫂꫛ-ꫝꫠ-ꫯꫲ-꫶ꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꯀ-ꯪ꯬꯭꯰-꯹가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻ︀-️︠-︦︳︴﹍-﹏ﹰ-ﹴﹶ-ﻼ0-9A-Z_a-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ]")},"esprima"[0]===void 0&&(t=function(e,r){return ft.slice(e,r).join("")}),e.version="1.0.4",e.parse=it,e.Syntax=function(){var e,r={};"function"==typeof Object.create&&(r=Object.create(null));for(e in ut)ut.hasOwnProperty(e)&&(r[e]=ut[e]);return"function"==typeof Object.freeze&&Object.freeze(r),r}()})})()},{}],7:[function(e,r){"use strict";function t(e,r,t){var n,a,i=e.length,o=r.arrayArgs.length,s=r.indexArgs.length>0,u=[],l=[],p=0,c=0;for(n=0;i>n;++n)l.push(["i",n,"=0"].join(""));for(a=0;o>a;++a)for(n=0;i>n;++n)c=p,p=e[n],0===n?l.push(["d",a,"s",n,"=t",a,"[",p,"]"].join("")):l.push(["d",a,"s",n,"=(t",a,"[",p,"]-s",c,"*t",a,"[",c,"])"].join(""));for(u.push("var "+l.join(",")),n=i-1;n>=0;--n)p=e[n],u.push(["for(i",n,"=0;i",n,"<s",p,";++i",n,"){"].join(""));for(u.push(t),n=0;i>n;++n){for(c=p,p=e[n],a=0;o>a;++a)u.push(["p",a,"+=d",a,"s",n].join(""));s&&(n>0&&u.push(["index[",c,"]-=s",c].join("")),u.push(["++index[",p,"]"].join(""))),u.push("}")}return u.join("\n")}function n(e,r,n,a){for(var i=r.length,o=n.arrayArgs.length,s=n.blockSize,u=n.indexArgs.length>0,l=[],p=0;o>p;++p)l.push(["var offset",p,"=p",p].join(""));for(var p=e;i>p;++p)l.push(["for(var j"+p+"=SS[",r[p],"]|0;j",p,">0;){"].join("")),l.push(["if(j",p,"<",s,"){"].join("")),l.push(["s",r[p],"=j",p].join("")),l.push(["j",p,"=0"].join("")),l.push(["}else{s",r[p],"=",s].join("")),l.push(["j",p,"-=",s,"}"].join("")),u&&l.push(["index[",r[p],"]=j",p].join(""));for(var p=0;o>p;++p){for(var c=["offset"+p],f=e;i>f;++f)c.push(["j",f,"*t",p,"[",r[f],"]"].join(""));l.push(["p",p,"=(",c.join("+"),")"].join(""))}l.push(t(r,n,a));for(var p=e;i>p;++p)l.push("}");return l.join("\n")}function a(e){for(var r=0,t=e[0].length;t>r;){for(var n=1;e.length>n;++n)if(e[n][r]!==e[0][r])return r;++r}return r}function i(e,r,t){for(var n=e.body,a=[],i=[],o=0;e.args.length>o;++o){var s=e.args[o];if(!(0>=s.count)){var u=RegExp(s.name,"g");switch(r.argTypes[o]){case"array":var l=r.arrayArgs.indexOf(o);1===s.count?"generic"===t[l]?s.lvalue?(a.push(["var l",l,"=a",l,".get(p",l,")"].join("")),n=n.replace(u,"l"+l),i.push(["a",l,".set(p",l,",l",l,")"].join(""))):n=n.replace(u,["a",l,".get(p",l,")"].join("")):n=n.replace(u,["a",l,"[p",l,"]"].join("")):"generic"===t[l]?(a.push(["var l",l,"=a",l,".get(p",l,")"].join("")),n=n.replace(u,"l"+l),s.lvalue&&i.push(["a",l,".set(p",l,",l",l,")"].join(""))):(a.push(["var l",l,"=a",l,"[p",l,"]"].join("")),n=n.replace(u,"l"+l),s.lvalue&&i.push(["a",l,"[p",l,"]=l",l].join("")));break;case"scalar":n=n.replace(u,"Y"+r.scalarArgs.indexOf(o));break;case"index":n=n.replace(u,"index");break;case"shape":n=n.replace(u,"shape")}}}return[a.join("\n"),n,i.join("\n")].join("\n").trim()}function o(e){for(var r=Array(e.length),t=!0,n=0;e.length>n;++n){var a=e[n],i=a.match(/\d+/);i=i?i[0]:"",r[n]=0===a.charAt(0)?"u"+a.charAt(1)+i:a.charAt(0)+i,n>0&&(t=t&&r[n]===r[n-1])}return t?r[0]:r.join("")}function s(e,r){for(var s=0|r[1].length,l=Array(e.arrayArgs.length),p=Array(e.arrayArgs.length),c=["SS"],f=["'use strict'"],d=[],h=0;s>h;++h)d.push(["s",h,"=SS[",h,"]"].join(""));for(var y=0;e.arrayArgs.length>y;++y)c.push("a"+y),c.push("t"+y),c.push("p"+y),p[y]=r[2*y],l[y]=r[2*y+1];for(var y=0;e.scalarArgs.length>y;++y)c.push("Y"+y);if(e.shapeArgs.length>0&&d.push("shape=SS.slice(0)"),e.indexArgs.length>0){for(var g=Array(s),y=0;s>y;++y)g[y]="0";d.push(["index=[",g.join(","),"]"].join(""))}var m=u([].concat(e.pre.thisVars).concat(e.body.thisVars).concat(e.post.thisVars));d=d.concat(m),f.push("var "+d.join(","));for(var y=0;e.arrayArgs.length>y;++y)f.push("p"+y+"|=0");e.pre.body.length>3&&f.push(i(e.pre,e,p));var v=i(e.body,e,p),b=a(l);s>b?f.push(n(b,l[0],e,v)):f.push(t(l[0],e,v)),e.post.body.length>3&&f.push(i(e.post,e,p)),e.debug&&console.log("Generated cwise routine for ",r,":\n\n",f.join("\n"));var x=[e.funcName||"unnamed","_cwise_loop_",l[0].join("s"),"m",b,o(p)].join(""),S=Function(["function ",x,"(",c.join(","),"){",f.join("\n"),"} return ",x].join(""));return S()}var u=e("uniq");r.exports=s},{uniq:8}],8:[function(e,r){"use strict";function t(e,r){for(var t=1,n=e.length,a=e[0],i=e[0],o=1;n>o;++o)if(i=a,a=e[o],r(a,i)){if(o===t){t++;
continue}e[t++]=a}return e.length=t,e}function n(e){for(var r=1,t=e.length,n=e[0],a=e[0],i=1;t>i;++i,a=n)if(a=n,n=e[i],n!==a){if(i===r){r++;continue}e[r++]=n}return e.length=r,e}function a(e,r,a){return 0===e.length?[]:r?(a||e.sort(r),t(e,r)):(a||e.sort(),n(e))}r.exports=a},{}]},{},[]);var render=require("ndarray-canvas"),zeros=require("zeros"),cave=require("cave-automata-2d"),fill=require("ndarray-fill"),canvas=document.createElement("canvas"),array=zeros([500,300]);canvas.width=500,canvas.height=300,up(),document.body.appendChild(canvas);
<style type='text/css'>html, body { margin: 0; padding: 0; border: 0; }
body, html { height: 100%; width: 100%; }</style>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment